[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CAZA482MTZQDW44VVCSVBH":3,"skill-same:01M6CAZA482MTZQDW44VVCSVBH":83},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":58,"install":59,"resources":72},"01M6CAZA482MTZQDW44VVCSVBH","modal-serverless-gpu",null,"Serverless GPU cloud platform for running ML workloads. Use when you need on-demand GPU access without infrastructure management, deploying ML models as APIs, or running batch jobs with automatic scaling.","adnichols\u002Fai-configs","adnichols","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F493746?v=4","01M6C33VRY9WF6XWYPT1AFA7JJ","Aaron Nichols","01M6C33VWTNKGRM92E9G643V4W",5,"MIT","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fmlops\u002Fcloud\u002Fmodal\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"gpu","modal","serverless","modal serverless gpu","research","ml","infrastructure","deployment","batch","cloud","GPU Cloud","access","management","use","models","2026-11-10 10:12:30",false,"---\nname: modal-serverless-gpu\ndescription: Serverless GPU cloud platform for running ML workloads. Use when you need on-demand GPU access without infrastructure management, deploying ML models as APIs, or running batch jobs with automatic scaling.\nversion: 1.0.0\nauthor: Orchestra Research\nlicense: MIT\ndependencies: [modal>=0.64.0]\nmetadata:\n  hermes:\n    tags: [Infrastructure, Serverless, GPU, Cloud, Deployment, Modal]\n\n---\n\n# Modal Serverless GPU\n\nComprehensive guide to running ML workloads on Modal's serverless GPU cloud platform.\n\n## When to use Modal\n\n**Use Modal when:**\n- Running GPU-intensive ML workloads without managing infrastructure\n- Deploying ML models as auto-scaling APIs\n- Running batch processing jobs (training, inference, data processing)\n- Need pay-per-second GPU pricing without idle costs\n- Prototyping ML applications quickly\n- Running scheduled jobs (cron-like workloads)\n\n**Key features:**\n- **Serverless GPUs**: T4, L4, A10G, L40S, A100, H100, H200, B200 on-demand\n- **Python-native**: Define infrastructure in Python code, no YAML\n- **Auto-scaling**: Scale to zero, scale to 100+ GPUs instantly\n- **Sub-second cold starts**: Rust-based infrastructure for fast container launches\n- **Container caching**: Image layers cached for rapid iteration\n- **Web endpoints**: Deploy functions as REST APIs with zero-downtime updates\n\n**Use alternatives instead:**\n- **RunPod**: For longer-running pods with persistent state\n- **Lambda Labs**: For reserved GPU instances\n- **SkyPilot**: For multi-cloud orchestration and cost optimization\n- **Kubernetes**: For complex multi-service architectures\n\n## Quick start\n\n### Installation\n\n```bash\npip install modal\nmodal setup  # Opens browser for authentication\n```\n\n### Hello World with GPU\n\n```python\nimport modal\n\napp = modal.App(\"hello-gpu\")\n\n@app.function(gpu=\"T4\")\ndef gpu_info():\n    import subprocess\n    return subprocess.run([\"nvidia-smi\"], capture_output=True, text=True).stdout\n\n@app.local_entrypoint()\ndef main():\n    print(gpu_info.remote())\n```\n\nRun: `modal run hello_gpu.py`\n\n### Basic inference endpoint\n\n```python\nimport modal\n\napp = modal.App(\"text-generation\")\nimage = modal.Image.debian_slim().pip_install(\"transformers\", \"torch\", \"accelerate\")\n\n@app.cls(gpu=\"A10G\", image=image)\nclass TextGenerator:\n    @modal.enter()\n    def load_model(self):\n        from transformers import pipeline\n        self.pipe = pipeline(\"text-generation\", model=\"gpt2\", device=0)\n\n    @modal.method()\n    def generate(self, prompt: str) -> str:\n        return self.pipe(prompt, max_length=100)[0][\"generated_text\"]\n\n@app.local_entrypoint()\ndef main():\n    print(TextGenerator().generate.remote(\"Hello, world\"))\n```\n\n## Core concepts\n\n### Key components\n\n| Component | Purpose |\n|-----------|---------|\n| `App` | Container for functions and resources |\n| `Function` | Serverless function with compute specs |\n| `Cls` | Class-based functions with lifecycle hooks |\n| `Image` | Container image definition |\n| `Volume` | Persistent storage for models\u002Fdata |\n| `Secret` | Secure credential storage |\n\n### Execution modes\n\n| Command | Description |\n|---------|-------------|\n| `modal run script.py` | Execute and exit |\n| `modal serve script.py` | Development with live reload |\n| `modal deploy script.py` | Persistent cloud deployment |\n\n## GPU configuration\n\n### Available GPUs\n\n| GPU | VRAM | Best For |\n|-----|------|----------|\n| `T4` | 16GB | Budget inference, small models |\n| `L4` | 24GB | Inference, Ada Lovelace arch |\n| `A10G` | 24GB | Training\u002Finference, 3.3x faster than T4 |\n| `L40S` | 48GB | Recommended for inference (best cost\u002Fperf) |\n| `A100-40GB` | 40GB | Large model training |\n| `A100-80GB` | 80GB | Very large models |\n| `H100` | 80GB | Fastest, FP8 + Transformer Engine |\n| `H200` | 141GB | Auto-upgrade from H100, 4.8TB\u002Fs bandwidth |\n| `B200` | Latest | Blackwell architecture |\n\n### GPU specification patterns\n\n```python\n# Single GPU\n@app.function(gpu=\"A100\")\n\n# Specific memory variant\n@app.function(gpu=\"A100-80GB\")\n\n# Multiple GPUs (up to 8)\n@app.function(gpu=\"H100:4\")\n\n# GPU with fallbacks\n@app.function(gpu=[\"H100\", \"A100\", \"L40S\"])\n\n# Any available GPU\n@app.function(gpu=\"any\")\n```\n\n## Container images\n\n```python\n# Basic image with pip\nimage = modal.Image.debian_slim(python_version=\"3.11\").pip_install(\n    \"torch==2.1.0\", \"transformers==4.36.0\", \"accelerate\"\n)\n\n# From CUDA base\nimage = modal.Image.from_registry(\n    \"nvidia\u002Fcuda:12.1.0-cudnn8-devel-ubuntu22.04\",\n    add_python=\"3.11\"\n).pip_install(\"torch\", \"transformers\")\n\n# With system packages\nimage = modal.Image.debian_slim().apt_install(\"git\", \"ffmpeg\").pip_install(\"whisper\")\n```\n\n## Persistent storage\n\n```python\nvolume = modal.Volume.from_name(\"model-cache\", create_if_missing=True)\n\n@app.function(gpu=\"A10G\", volumes={\"\u002Fmodels\": volume})\ndef load_model():\n    import os\n    model_path = \"\u002Fmodels\u002Fllama-7b\"\n    if not os.path.exists(model_path):\n        model = download_model()\n        model.save_pretrained(model_path)\n        volume.commit()  # Persist changes\n    return load_from_path(model_path)\n```\n\n## Web endpoints\n\n### FastAPI endpoint decorator\n\n```python\n@app.function()\n@modal.fastapi_endpoint(method=\"POST\")\ndef predict(text: str) -> dict:\n    return {\"result\": model.predict(text)}\n```\n\n### Full ASGI app\n\n```python\nfrom fastapi import FastAPI\nweb_app = FastAPI()\n\n@web_app.post(\"\u002Fpredict\")\nasync def predict(text: str):\n    return {\"result\": await model.predict.remote.aio(text)}\n\n@app.function()\n@modal.asgi_app()\ndef fastapi_app():\n    return web_app\n```\n\n### Web endpoint types\n\n| Decorator | Use Case |\n|-----------|----------|\n| `@modal.fastapi_endpoint()` | Simple function → API |\n| `@modal.asgi_app()` | Full FastAPI\u002FStarlette apps |\n| `@modal.wsgi_app()` | Django\u002FFlask apps |\n| `@modal.web_server(port)` | Arbitrary HTTP servers |\n\n## Dynamic batching\n\n```python\n@app.function()\n@modal.batched(max_batch_size=32, wait_ms=100)\nasync def batch_predict(inputs: list[str]) -> list[dict]:\n    # Inputs automatically batched\n    return model.batch_predict(inputs)\n```\n\n## Secrets management\n\n```bash\n# Create secret\nmodal secret create huggingface HF_TOKEN=hf_xxx\n```\n\n```python\n@app.function(secrets=[modal.Secret.from_name(\"huggingface\")])\ndef download_model():\n    import os\n    token = os.environ[\"HF_TOKEN\"]\n```\n\n## Scheduling\n\n```python\n@app.function(schedule=modal.Cron(\"0 0 * * *\"))  # Daily midnight\ndef daily_job():\n    pass\n\n@app.function(schedule=modal.Period(hours=1))\ndef hourly_job():\n    pass\n```\n\n## Performance optimization\n\n### Cold start mitigation\n\n```python\n@app.function(\n    container_idle_timeout=300,  # Keep warm 5 min\n    allow_concurrent_inputs=10,  # Handle concurrent requests\n)\ndef inference():\n    pass\n```\n\n### Model loading best practices\n\n```python\n@app.cls(gpu=\"A100\")\nclass Model:\n    @modal.enter()  # Run once at container start\n    def load(self):\n        self.model = load_model()  # Load during warm-up\n\n    @modal.method()\n    def predict(self, x):\n        return self.model(x)\n```\n\n## Parallel processing\n\n```python\n@app.function()\ndef process_item(item):\n    return expensive_computation(item)\n\n@app.function()\ndef run_parallel():\n    items = list(range(1000))\n    # Fan out to parallel containers\n    results = list(process_item.map(items))\n    return results\n```\n\n## Common configuration\n\n```python\n@app.function(\n    gpu=\"A100\",\n    memory=32768,              # 32GB RAM\n    cpu=4,                     # 4 CPU cores\n    timeout=3600,              # 1 hour max\n    container_idle_timeout=120,# Keep warm 2 min\n    retries=3,                 # Retry on failure\n    concurrency_limit=10,      # Max concurrent containers\n)\ndef my_function():\n    pass\n```\n\n## Debugging\n\n```python\n# Test locally\nif __name__ == \"__main__\":\n    result = my_function.local()\n\n# View logs\n# modal app logs my-app\n```\n\n## Common issues\n\n| Issue | Solution |\n|-------|----------|\n| Cold start latency | Increase `container_idle_timeout`, use `@modal.enter()` |\n| GPU OOM | Use larger GPU (`A100-80GB`), enable gradient checkpointing |\n| Image build fails | Pin dependency versions, check CUDA compatibility |\n| Timeout errors | Increase `timeout`, add checkpointing |\n\n## References\n\n- **[Advanced Usage](references\u002Fadvanced-usage.md)** - Multi-GPU, distributed training, cost optimization\n- **[Troubleshooting](references\u002Ftroubleshooting.md)** - Common issues and solutions\n\n## Resources\n\n- **Documentation**: https:\u002F\u002Fmodal.com\u002Fdocs\n- **Examples**: https:\u002F\u002Fgithub.com\u002Fmodal-labs\u002Fmodal-examples\n- **Pricing**: https:\u002F\u002Fmodal.com\u002Fpricing\n- **Discord**: https:\u002F\u002Fdiscord.gg\u002Fmodal\n","# Modal Serverless GPU\n\nComprehensive guide to running ML workloads on Modal's serverless GPU cloud platform.\n\n## When to use Modal\n\n**Use Modal when:**\n- Running GPU-intensive ML workloads without managing infrastructure\n- Deploying ML models as auto-scaling APIs\n- Running batch processing jobs (training, inference, data processing)\n- Need pay-per-second GPU pricing without idle costs\n- Prototyping ML applications quickly\n- Running scheduled jobs (cron-like workloads)\n\n**Key features:**\n- **Serverless GPUs**: T4, L4, A10G, L40S, A100, H100, H200, B200 on-demand\n- **Python-native**: Define infrastructure in Python code, no YAML\n- **Auto-scaling**: Scale to zero, scale to 100+ GPUs instantly\n- **Sub-second cold starts**: Rust-based infrastructure for fast container launches\n- **Container caching**: Image layers cached for rapid iteration\n- **Web endpoints**: Deploy functions as REST APIs with zero-downtime updates\n\n**Use alternatives instead:**\n- **RunPod**: For longer-running pods with persistent state\n- **Lambda Labs**: For reserved GPU instances\n- **SkyPilot**: For multi-cloud orchestration and cost optimization\n- **Kubernetes**: For complex multi-service architectures\n\n## Quick start\n\n### Installation\n\n```bash\npip install modal\nmodal setup  # Opens browser for authentication\n```\n\n### Hello World with GPU\n\n```python\nimport modal\n\napp = modal.App(\"hello-gpu\")\n\n@app.function(gpu=\"T4\")\ndef gpu_info():\n    import subprocess\n    return subprocess.run([\"nvidia-smi\"], capture_output=True, text=True).stdout\n\n@app.local_entrypoint()\ndef main():\n    print(gpu_info.remote())\n```\n\nRun: `modal run hello_gpu.py`\n\n### Basic inference endpoint\n\n```python\nimport modal\n\napp = modal.App(\"text-generation\")\nimage = modal.Image.debian_slim().pip_install(\"transformers\", \"torch\", \"accelerate\")\n\n@app.cls(gpu=\"A10G\", image=image)\nclass TextGenerator:\n    @modal.enter()\n    def load_model(self):\n        from transformers import pipeline\n        self.pipe = pipeline(\"text-generation\", model=\"gpt2\", device=0)\n\n    @modal.method()\n    def generate(self, prompt: str) -> str:\n        return self.pipe(prompt, max_length=100)[0][\"generated_text\"]\n\n@app.local_entrypoint()\ndef main():\n    print(TextGenerator().generate.remote(\"Hello, world\"))\n```\n\n## Core concepts\n\n### Key components\n\n| Component | Purpose |\n|-----------|---------|\n| `App` | Container for functions and resources |\n| `Function` | Serverless function with compute specs |\n| `Cls` | Class-based functions with lifecycle hooks |\n| `Image` | Container image definition |\n| `Volume` | Persistent storage for models\u002Fdata |\n| `Secret` | Secure credential storage |\n\n### Execution modes\n\n| Command | Description |\n|---------|-------------|\n| `modal run script.py` | Execute and exit |\n| `modal serve script.py` | Development with live reload |\n| `modal deploy script.py` | Persistent cloud deployment |\n\n## GPU configuration\n\n### Available GPUs\n\n| GPU | VRAM | Best For |\n|-----|------|----------|\n| `T4` | 16GB | Budget inference, small models |\n| `L4` | 24GB | Inference, Ada Lovelace arch |\n| `A10G` | 24GB | Training\u002Finference, 3.3x faster than T4 |\n| `L40S` | 48GB | Recommended for inference (best cost\u002Fperf) |\n| `A100-40GB` | 40GB | Large model training |\n| `A100-80GB` | 80GB | Very large models |\n| `H100` | 80GB | Fastest, FP8 + Transformer Engine |\n| `H200` | 141GB | Auto-upgrade from H100, 4.8TB\u002Fs bandwidth |\n| `B200` | Latest | Blackwell architecture |\n\n### GPU specification patterns\n\n```python\n# Single GPU\n@app.function(gpu=\"A100\")\n\n# Specific memory variant\n@app.function(gpu=\"A100-80GB\")\n\n# Multiple GPUs (up to 8)\n@app.function(gpu=\"H100:4\")\n\n# GPU with fallbacks\n@app.function(gpu=[\"H100\", \"A100\", \"L40S\"])\n\n# Any available GPU\n@app.function(gpu=\"any\")\n```\n\n## Container images\n\n```python\n# Basic image with pip\nimage = modal.Image.debian_slim(python_version=\"3.11\").pip_install(\n    \"torch==2.1.0\", \"transformers==4.36.0\", \"accelerate\"\n)\n\n# From CUDA base\nimage = modal.Image.from_registry(\n    \"nvidia\u002Fcuda:12.1.0-cudnn8-devel-ubuntu22.04\",\n    add_python=\"3.11\"\n).pip_install(\"torch\", \"transformers\")\n\n# With system packages\nimage = modal.Image.debian_slim().apt_install(\"git\", \"ffmpeg\").pip_install(\"whisper\")\n```\n\n## Persistent storage\n\n```python\nvolume = modal.Volume.from_name(\"model-cache\", create_if_missing=True)\n\n@app.function(gpu=\"A10G\", volumes={\"\u002Fmodels\": volume})\ndef load_model():\n    import os\n    model_path = \"\u002Fmodels\u002Fllama-7b\"\n    if not os.path.exists(model_path):\n        model = download_model()\n        model.save_pretrained(model_path)\n        volume.commit()  # Persist changes\n    return load_from_path(model_path)\n```\n\n## Web endpoints\n\n### FastAPI endpoint decorator\n\n```python\n@app.function()\n@modal.fastapi_endpoint(method=\"POST\")\ndef predict(text: str) -> dict:\n    return {\"result\": model.predict(text)}\n```\n\n### Full ASGI app\n\n```python\nfrom fastapi import FastAPI\nweb_app = FastAPI()\n\n@web_app.post(\"\u002Fpredict\")\nasync def predict(text: str):\n    return {\"result\": await model.predict.remote.aio(text)}\n\n@app.function()\n@modal.asgi_app()\ndef fastapi_app():\n    return web_app\n```\n\n### Web endpoint types\n\n| Decorator | Use Case |\n|-----------|----------|\n| `@modal.fastapi_endpoint()` | Simple function → API |\n| `@modal.asgi_app()` | Full FastAPI\u002FStarlette apps |\n| `@modal.wsgi_app()` | Django\u002FFlask apps |\n| `@modal.web_server(port)` | Arbitrary HTTP servers |\n\n## Dynamic batching\n\n```python\n@app.function()\n@modal.batched(max_batch_size=32, wait_ms=100)\nasync def batch_predict(inputs: list[str]) -> list[dict]:\n    # Inputs automatically batched\n    return model.batch_predict(inputs)\n```\n\n## Secrets management\n\n```bash\n# Create secret\nmodal secret create huggingface HF_TOKEN=hf_xxx\n```\n\n```python\n@app.function(secrets=[modal.Secret.from_name(\"huggingface\")])\ndef download_model():\n    import os\n    token = os.environ[\"HF_TOKEN\"]\n```\n\n## Scheduling\n\n```python\n@app.function(schedule=modal.Cron(\"0 0 * * *\"))  # Daily midnight\ndef daily_job():\n    pass\n\n@app.function(schedule=modal.Period(hours=1))\ndef hourly_job():\n    pass\n```\n\n## Performance optimization\n\n### Cold start mitigation\n\n```python\n@app.function(\n    container_idle_timeout=300,  # Keep warm 5 min\n    allow_concurrent_inputs=10,  # Handle concurrent requests\n)\ndef inference():\n    pass\n```\n\n### Model loading best practices\n\n```python\n@app.cls(gpu=\"A100\")\nclass Model:\n    @modal.enter()  # Run once at container start\n    def load(self):\n        self.model = load_model()  # Load during warm-up\n\n    @modal.method()\n    def predict(self, x):\n        return self.model(x)\n```\n\n## Parallel processing\n\n```python\n@app.function()\ndef process_item(item):\n    return expensive_computation(item)\n\n@app.function()\ndef run_parallel():\n    items = list(range(1000))\n    # Fan out to parallel containers\n    results = list(process_item.map(items))\n    return results\n```\n\n## Common configuration\n\n```python\n@app.function(\n    gpu=\"A100\",\n    memory=32768,              # 32GB RAM\n    cpu=4,                     # 4 CPU cores\n    timeout=3600,              # 1 hour max\n    container_idle_timeout=120,# Keep warm 2 min\n    retries=3,                 # Retry on failure\n    concurrency_limit=10,      # Max concurrent containers\n)\ndef my_function():\n    pass\n```\n\n## Debugging\n\n```python\n# Test locally\nif __name__ == \"__main__\":\n    result = my_function.local()\n\n# View logs\n# modal app logs my-app\n```\n\n## Common issues\n\n| Issue | Solution |\n|-------|----------|\n| Cold start latency | Increase `container_idle_timeout`, use `@modal.enter()` |\n| GPU OOM | Use larger GPU (`A100-80GB`), enable gradient checkpointing |\n| Image build fails | Pin dependency versions, check CUDA compatibility |\n| Timeout errors | Increase `timeout`, add checkpointing |\n\n## References\n\n- **[Advanced Usage](references\u002Fadvanced-usage.md)** - Multi-GPU, distributed training, cost optimization\n- **[Troubleshooting](references\u002Ftroubleshooting.md)** - Common issues and solutions\n\n## Resources\n\n- **Documentation**: https:\u002F\u002Fmodal.com\u002Fdocs\n- **Examples**: https:\u002F\u002Fgithub.com\u002Fmodal-labs\u002Fmodal-examples\n- **Pricing**: https:\u002F\u002Fmodal.com\u002Fpricing\n- **Discord**: https:\u002F\u002Fdiscord.gg\u002Fmodal\n",{"name":5,"author":39,"license":15,"version":40,"metadata":41,"description":7,"dependencies":50},"Orchestra Research","1.0.0",{"hermes":42},{"tags":43},[44,45,46,47,48,49],"Infrastructure","Serverless","GPU","Cloud","Deployment","Modal",[51],"modal>=0.64.0","main","64e2fc9afa7bb3da1138eb73399144d0e7e73e9d","_hermes\u002Fdefault\u002Fskills\u002Fmlops\u002Fcloud\u002Fmodal",4,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs","https:\u002F\u002Fgithub.com\u002Fadnichols","2026-11-06 00:28:38",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add adnichols\u002Fai-configs --skill modal-serverless-gpu",{"tool":65,"command":66},"bunx","bunx skills add adnichols\u002Fai-configs --skill modal-serverless-gpu",{"tool":68,"command":69},"pnpm","pnpm dlx skills add adnichols\u002Fai-configs --skill modal-serverless-gpu","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fmlops\u002Fcloud\u002Fmodal\u002FSKILL.md",true,[73,79],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fadvanced-usage.md","REFERENCE","参考文档",10903,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fmlops\u002Fcloud\u002Fmodal\u002Freferences\u002Fadvanced-usage.md",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Ftroubleshooting.md",10516,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fmlops\u002Fcloud\u002Fmodal\u002Freferences\u002Ftroubleshooting.md",[84,104,138,163,174,190],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":34},"01M6CB7RN791P5RRRCJWWC7DAR","blocked-page-recovery","Use when a fetch fails: 403\u002F429, paywall, WAF, bot wall.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fweb\u002Fblocked-page-recovery\u002FSKILL.md",[],[91,92,93,94,95,32,96,97,98,99,100,101,23,102,103],"recovery","page","blocked page recovery","bot","fallback","fetch","hermes agent","hermes","Citations","waf","windows","linux","macos",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":123,"publishedAt":34},"01M6CB7NQY2VVYCQJ1QBXACQF4","writing-plans","Use when creating or updating executable software plans. Keep plans as local files unless the user explicitly asks to register them in Doct.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[110,115,118],{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":116,"categoryName":117,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[124,125,126,127,128,129,130,131,132,133,134,135,32,136,97,98,137],"writing","writing plans","documentation","test","workflow","design","user","development","planning","files","implementation","html","ops","plan",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":153,"publishedAt":34},"01M6CB7JME246KZQHP73Z2STDF","test-driven-development","TDD: enforce RED-GREEN-REFACTOR, tests before code.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[144,147,150],{"categoryNo":145,"categoryName":146,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":148,"categoryName":149,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":151,"categoryName":152,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000037","律师与法务",[127,131,154,155,156,97,98,157,137,158,159,160,103,161,102,162,101],"test driven development","red-green-refactor","superpowers","quality","refactor","code","debugging","tdd","testing",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":170,"publishedAt":34},"01M6CB7FQ407KQTD4Z9VAWKY54","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[169],{"categoryNo":148,"categoryName":149,"taxonomyType":113,"taxonomyTypeDesc":114},[160,171,131,156,97,98,172,137,173,101,127,102,103],"systematic debugging","troubleshooting","investigation",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":183,"publishedAt":34},"01M6CB7D57MK88HE5YPZHKH68Q","spike","Throwaway experiments to validate an idea before build.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fspike\u002FSKILL.md",[180],{"categoryNo":181,"categoryName":182,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000021","资料检索与研究",[176,101,184,185,23,186,102,103,187,188,189,97,98,137,132],"validate","experiments","prototype","feasibility","sketch","experiment",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":200,"publishedAt":34},"01M6CB7APAQ37YE5YE1MAAFT42","simplify-code","Parallel 3-agent cleanup of recent code changes.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fsimplify-code\u002FSKILL.md",[196,197],{"categoryNo":116,"categoryName":117,"taxonomyType":113,"taxonomyTypeDesc":114},{"categoryNo":198,"categoryName":199,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000030","开发工程师",[201,202,159,203,97,98,204,137,158,205,206,207,131,101,127,102,208,103],"simplify code","simplify","subagent","parallel","code-review","delegation","cleanup","review"]