[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71HAMNBHCVA5739ZWXZESYV":3,"skill-same:01M71HAMNBHCVA5739ZWXZESYV":74},{"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":26,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":56,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M71HAMNBHCVA5739ZWXZESYV","deploy",null,"Build → verify artifact → deploy → wait → smoke deployment pipeline. Platform-agnostic (MCP or CLI), with configurable timeout, retry with exponential backoff, and integrated health-check. The deploy half of CI\u002FCD: run after build to push to production.","danielvm-git\u002Fbigpowers","danielvm-git","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1020864?v=4","01M71H1N1CTQ529S0KN7KETVG6","Daniel V M","01M71H1N218Y3S8WHCJ58NPRSW",292,"MIT","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002F.codebuddy\u002Fskills\u002Fdeploy\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[5,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"wait","with","health","check","backoff","deployment","platform","smoke","push","sonnet","CI\u002FCD","run","cli","artifact","health-check","MCP","ci","pipeline","retry","2026-11-10 10:12:30",false,"---\nname: deploy\nmodel: sonnet\ndescription: \"Build → verify artifact → deploy → wait → smoke deployment pipeline. Platform-agnostic (MCP or CLI), with configurable timeout, retry with exponential backoff, and integrated health-check. The deploy half of CI\u002FCD: run after build to push to production.\"\n---\n\n# Deploy\n\n> **HARD GATE** — Do not deploy without running tests first. Run `test` or your CI suite before this skill.\n>\n> **HARD GATE** — Use this skill from a CI\u002FCD pipeline or post-merge on `main`\u002F`master`. Never deploy from a feature branch.\n>\n> **HARD GATE** — The deploy skill orchestrates deployment; the `smoke-test` skill validates post-deploy health. Chain them: `deploy → smoke-test`.\n\nOrchestrate a full build-to-deployment pipeline: build the artifact, verify it exists and is non-empty, invoke a platform deploy tool (MCP or CLI), poll until the deploy completes or times out, then run a baseline smoke test against the live URL.\n\n## Pipeline Stages\n\n```\nbuild → verify artifact → deploy → wait\u002Fretry → smoke\n```\n\n| Stage | Description | Failure mode |\n|-------|-------------|-------------|\n| Build | Execute the project's build command | Non-zero exit: report build error |\n| Verify | Check artifact exists and is non-empty | Missing\u002Fempty: report artifact path |\n| Deploy | Invoke platform deploy tool (MCP, Vercel CLI, rsync, etc.) | Non-zero exit: report deploy error |\n| Wait | Poll deploy status every 30s up to `DEPLOY_TIMEOUT` (default 5 min) | Timeout: report exceeded |\n| Smoke | `curl -sSf $DEPLOY_URL` as baseline health check | Non-200: report failure |\n\n## Process\n\n### 1. Detect build command\n\nRead project manifest files in order to determine the build command:\n\n| Manifest | Build command |\n|----------|--------------|\n| `package.json` | `npm run build` (or `scripts.build` value) |\n| `Cargo.toml` | `cargo build --release` |\n| `pyproject.toml` \u002F `setup.py` | Depends on build backend (`poetry build`, `pip install -e .`, etc.) |\n| `Makefile` | `make build` or first target named `build` |\n| `AGENTS.md` \u002F `CLAUDE.md` | Look for `build:` in project commands section |\n\nIf no manifest is found, prompt the user with: \"No detected build command. Pass `--build 'npm run build'` or specify the command.\"\n\n### 2. Build the artifact\n\n```bash\nnpm run build\n```\n\nOr the detected command from step 1. If the build fails, exit non-zero and report the build output.\n\n### 3. Verify the artifact\n\n```bash\nARTIFACT_DIR=\"${ARTIFACT_DIR:-dist}\"\nif [ ! -d \"$ARTIFACT_DIR\" ] || [ -z \"$(ls -A \"$ARTIFACT_DIR\" 2>\u002Fdev\u002Fnull)\" ]; then\n  echo \"FAIL: build artifact not found at $ARTIFACT_DIR\"\n  exit 1\nfi\n```\n\nConfigurable via `$ARTIFACT_DIR` environment variable (default: `dist\u002F`).\n\n### 4. Deploy to platform\n\nPlatform-agnostic — supports multiple deployment targets via environment variables:\n\n| Platform | Env var | Example |\n|----------|---------|---------|\n| Vercel | `VERCEL_TOKEN`, `VERCEL_PROJECT_ID` | `vercel deploy --prod --token $VERCEL_TOKEN` |\n| Netlify | `NETLIFY_AUTH_TOKEN`, `NETLIFY_SITE_ID` | `netlify deploy --prod --auth $NETLIFY_AUTH_TOKEN --dir $ARTIFACT_DIR` |\n| Platform MCP | MCP tool call | `mcp deploy` via your platform MCP server |\n| rsync\u002FSSH | `DEPLOY_SSH_USER`, `DEPLOY_SSH_HOST`, `DEPLOY_SSH_PATH` | `rsync -avz $ARTIFACT_DIR\u002F $DEPLOY_SSH_USER@$DEPLOY_SSH_HOST:$DEPLOY_SSH_PATH` |\n| Custom | `DEPLOY_COMMAND` | Run any deploy command string |\n\nThe deploy tool is selected by which environment variables are set. If none are configured:\n\n```bash\necho \"No deploy target configured. Set one of: VERCEL_TOKEN, NETLIFY_AUTH_TOKEN, DEPLOY_SSH_USER+DEPLOY_SSH_HOST, DEPLOY_COMMAND, or MCP deploy tool.\"\nexit 1\n```\n\n### 5. Wait and poll status\n\nAfter invoking the deploy command, poll for completion:\n\nSee [REFERENCE.md](REFERENCE.md)\n\nUse exponential backoff for retries on transient failures:\n\nSee [REFERENCE.md](REFERENCE.md)\n\n### 6. Baseline smoke test\n\nSee [REFERENCE.md](REFERENCE.md)\n\nFor comprehensive health-checking, chain to the `smoke-test` skill:\n\n```bash\n# After deploy success\nbash scripts\u002Frun-smoke.sh \"$DEPLOY_URL\"\n```\n\n### 7. Three-independent-facts verification (e45s15)\n\nBefore declaring deploy success, verify **three independent facts** — build artifact, platform accept, live\u002Fregistry reachability. See [REFERENCE.md](REFERENCE.md#three-independent-facts).\n\n## Verify\n\n→ verify: `command -v curl >\u002Fdev\u002Fnull 2>&1 && test -f skills\u002Fsmoke-test\u002FSKILL.md`\n\n---\n\n# Deploy — Reference\n\n## Configuration\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `ARTIFACT_DIR` | `dist` | Build output directory |\n| `DEPLOY_URL` | *(required)* | Live URL for smoke test |\n| `DEPLOY_TIMEOUT` | `300` | Max wait for deploy completion (seconds) |\n| `DEPLOY_POLL_INTERVAL` | `30` | Polling interval (seconds) |\n| `RETRY_MAX` | `3` | Max deploy retry attempts |\n| `BUILD_COMMAND` | *(auto-detect)* | Override build command |\n\n\n---\n\n## Verification\n\n→ verify: `test -f deploy\u002FSKILL.md && grep -q 'name: deploy' deploy\u002FSKILL.md && echo OK`\n→ verify: `grep -qi 'build\\|artifact\\|deploy\\|smoke' deploy\u002FSKILL.md && echo OK`\n→ verify: `grep -ci 'package.json\\|Cargo.toml\\|Makefile\\|manifest' deploy\u002FSKILL.md | awk '{if($1>=1) print \"OK\"; else print \"FAIL\"}'`\n→ verify: `grep -ci 'timeout\\|poll\\|status\\|retry\\|backoff' deploy\u002FSKILL.md | awk '{if($1>=2) print \"OK\"; else print \"FAIL\"}'`\n→ verify: `grep -q 'curl.*DEPLOY_URL\\|smoke\\|health' deploy\u002FSKILL.md && echo OK`\n\n---\n\n## Reference block 1\n\n```bash\nDEPLOY_TIMEOUT=\"${DEPLOY_TIMEOUT:-300}\"   # seconds (default 5 minutes)\nDEPLOY_POLL_INTERVAL=\"${DEPLOY_POLL_INTERVAL:-30}\"  # seconds\n\nstart_time=$(date +%s)\nwhile true; do\n  elapsed=$(( $(date +%s) - start_time ))\n  if [ \"$elapsed\" -ge \"$DEPLOY_TIMEOUT\" ]; then\n    echo \"FAIL: deploy status polling timed out after ${DEPLOY_TIMEOUT}s\"\n    exit 1\n  fi\n  \n  status=$(get_deploy_status)  # platform-specific status check\n  if [ \"$status\" = \"ready\" ] || [ \"$status\" = \"done\" ]; then\n    echo \"Deploy completed in ${elapsed}s\"\n    break\n  fi\n  \n  sleep \"$DEPLOY_POLL_INTERVAL\"\ndone\n```\n\n---\n\n## Reference block 2\n\n```bash\nRETRY_MAX=\"${RETRY_MAX:-3}\"\nbase_delay=2\nfor attempt in $(seq 1 \"$RETRY_MAX\"); do\n  if deploy_command; then\n    break\n  fi\n  if [ \"$attempt\" -eq \"$RETRY_MAX\" ]; then\n    echo \"FAIL: deploy failed after ${RETRY_MAX} attempts\"\n    exit 1\n  fi\n  sleep $(( base_delay * 2 ** (attempt - 1) ))\ndone\n```\n\n---\n\n## Reference block 3\n\n```bash\nDEPLOY_URL=\"${DEPLOY_URL:?DEPLOY_URL must be set}\"\nif curl -sSf \"$DEPLOY_URL\" > \u002Fdev\u002Fnull 2>&1; then\n  echo \"OK: $DEPLOY_URL responds with HTTP 200\"\nelse\n  echo \"FAIL: $DEPLOY_URL is not responding with HTTP 200\"\n  exit 1\nfi\n```\n","# Deploy\n\n> **HARD GATE** — Do not deploy without running tests first. Run `test` or your CI suite before this skill.\n>\n> **HARD GATE** — Use this skill from a CI\u002FCD pipeline or post-merge on `main`\u002F`master`. Never deploy from a feature branch.\n>\n> **HARD GATE** — The deploy skill orchestrates deployment; the `smoke-test` skill validates post-deploy health. Chain them: `deploy → smoke-test`.\n\nOrchestrate a full build-to-deployment pipeline: build the artifact, verify it exists and is non-empty, invoke a platform deploy tool (MCP or CLI), poll until the deploy completes or times out, then run a baseline smoke test against the live URL.\n\n## Pipeline Stages\n\n```\nbuild → verify artifact → deploy → wait\u002Fretry → smoke\n```\n\n| Stage | Description | Failure mode |\n|-------|-------------|-------------|\n| Build | Execute the project's build command | Non-zero exit: report build error |\n| Verify | Check artifact exists and is non-empty | Missing\u002Fempty: report artifact path |\n| Deploy | Invoke platform deploy tool (MCP, Vercel CLI, rsync, etc.) | Non-zero exit: report deploy error |\n| Wait | Poll deploy status every 30s up to `DEPLOY_TIMEOUT` (default 5 min) | Timeout: report exceeded |\n| Smoke | `curl -sSf $DEPLOY_URL` as baseline health check | Non-200: report failure |\n\n## Process\n\n### 1. Detect build command\n\nRead project manifest files in order to determine the build command:\n\n| Manifest | Build command |\n|----------|--------------|\n| `package.json` | `npm run build` (or `scripts.build` value) |\n| `Cargo.toml` | `cargo build --release` |\n| `pyproject.toml` \u002F `setup.py` | Depends on build backend (`poetry build`, `pip install -e .`, etc.) |\n| `Makefile` | `make build` or first target named `build` |\n| `AGENTS.md` \u002F `CLAUDE.md` | Look for `build:` in project commands section |\n\nIf no manifest is found, prompt the user with: \"No detected build command. Pass `--build 'npm run build'` or specify the command.\"\n\n### 2. Build the artifact\n\n```bash\nnpm run build\n```\n\nOr the detected command from step 1. If the build fails, exit non-zero and report the build output.\n\n### 3. Verify the artifact\n\n```bash\nARTIFACT_DIR=\"${ARTIFACT_DIR:-dist}\"\nif [ ! -d \"$ARTIFACT_DIR\" ] || [ -z \"$(ls -A \"$ARTIFACT_DIR\" 2>\u002Fdev\u002Fnull)\" ]; then\n  echo \"FAIL: build artifact not found at $ARTIFACT_DIR\"\n  exit 1\nfi\n```\n\nConfigurable via `$ARTIFACT_DIR` environment variable (default: `dist\u002F`).\n\n### 4. Deploy to platform\n\nPlatform-agnostic — supports multiple deployment targets via environment variables:\n\n| Platform | Env var | Example |\n|----------|---------|---------|\n| Vercel | `VERCEL_TOKEN`, `VERCEL_PROJECT_ID` | `vercel deploy --prod --token $VERCEL_TOKEN` |\n| Netlify | `NETLIFY_AUTH_TOKEN`, `NETLIFY_SITE_ID` | `netlify deploy --prod --auth $NETLIFY_AUTH_TOKEN --dir $ARTIFACT_DIR` |\n| Platform MCP | MCP tool call | `mcp deploy` via your platform MCP server |\n| rsync\u002FSSH | `DEPLOY_SSH_USER`, `DEPLOY_SSH_HOST`, `DEPLOY_SSH_PATH` | `rsync -avz $ARTIFACT_DIR\u002F $DEPLOY_SSH_USER@$DEPLOY_SSH_HOST:$DEPLOY_SSH_PATH` |\n| Custom | `DEPLOY_COMMAND` | Run any deploy command string |\n\nThe deploy tool is selected by which environment variables are set. If none are configured:\n\n```bash\necho \"No deploy target configured. Set one of: VERCEL_TOKEN, NETLIFY_AUTH_TOKEN, DEPLOY_SSH_USER+DEPLOY_SSH_HOST, DEPLOY_COMMAND, or MCP deploy tool.\"\nexit 1\n```\n\n### 5. Wait and poll status\n\nAfter invoking the deploy command, poll for completion:\n\nSee [REFERENCE.md](REFERENCE.md)\n\nUse exponential backoff for retries on transient failures:\n\nSee [REFERENCE.md](REFERENCE.md)\n\n### 6. Baseline smoke test\n\nSee [REFERENCE.md](REFERENCE.md)\n\nFor comprehensive health-checking, chain to the `smoke-test` skill:\n\n```bash\n# After deploy success\nbash scripts\u002Frun-smoke.sh \"$DEPLOY_URL\"\n```\n\n### 7. Three-independent-facts verification (e45s15)\n\nBefore declaring deploy success, verify **three independent facts** — build artifact, platform accept, live\u002Fregistry reachability. See [REFERENCE.md](REFERENCE.md#three-independent-facts).\n\n## Verify\n\n→ verify: `command -v curl >\u002Fdev\u002Fnull 2>&1 && test -f skills\u002Fsmoke-test\u002FSKILL.md`\n\n---\n\n# Deploy — Reference\n\n## Configuration\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `ARTIFACT_DIR` | `dist` | Build output directory |\n| `DEPLOY_URL` | *(required)* | Live URL for smoke test |\n| `DEPLOY_TIMEOUT` | `300` | Max wait for deploy completion (seconds) |\n| `DEPLOY_POLL_INTERVAL` | `30` | Polling interval (seconds) |\n| `RETRY_MAX` | `3` | Max deploy retry attempts |\n| `BUILD_COMMAND` | *(auto-detect)* | Override build command |\n\n\n---\n\n## Verification\n\n→ verify: `test -f deploy\u002FSKILL.md && grep -q 'name: deploy' deploy\u002FSKILL.md && echo OK`\n→ verify: `grep -qi 'build\\|artifact\\|deploy\\|smoke' deploy\u002FSKILL.md && echo OK`\n→ verify: `grep -ci 'package.json\\|Cargo.toml\\|Makefile\\|manifest' deploy\u002FSKILL.md | awk '{if($1>=1) print \"OK\"; else print \"FAIL\"}'`\n→ verify: `grep -ci 'timeout\\|poll\\|status\\|retry\\|backoff' deploy\u002FSKILL.md | awk '{if($1>=2) print \"OK\"; else print \"FAIL\"}'`\n→ verify: `grep -q 'curl.*DEPLOY_URL\\|smoke\\|health' deploy\u002FSKILL.md && echo OK`\n\n---\n\n## Reference block 1\n\n```bash\nDEPLOY_TIMEOUT=\"${DEPLOY_TIMEOUT:-300}\"   # seconds (default 5 minutes)\nDEPLOY_POLL_INTERVAL=\"${DEPLOY_POLL_INTERVAL:-30}\"  # seconds\n\nstart_time=$(date +%s)\nwhile true; do\n  elapsed=$(( $(date +%s) - start_time ))\n  if [ \"$elapsed\" -ge \"$DEPLOY_TIMEOUT\" ]; then\n    echo \"FAIL: deploy status polling timed out after ${DEPLOY_TIMEOUT}s\"\n    exit 1\n  fi\n  \n  status=$(get_deploy_status)  # platform-specific status check\n  if [ \"$status\" = \"ready\" ] || [ \"$status\" = \"done\" ]; then\n    echo \"Deploy completed in ${elapsed}s\"\n    break\n  fi\n  \n  sleep \"$DEPLOY_POLL_INTERVAL\"\ndone\n```\n\n---\n\n## Reference block 2\n\n```bash\nRETRY_MAX=\"${RETRY_MAX:-3}\"\nbase_delay=2\nfor attempt in $(seq 1 \"$RETRY_MAX\"); do\n  if deploy_command; then\n    break\n  fi\n  if [ \"$attempt\" -eq \"$RETRY_MAX\" ]; then\n    echo \"FAIL: deploy failed after ${RETRY_MAX} attempts\"\n    exit 1\n  fi\n  sleep $(( base_delay * 2 ** (attempt - 1) ))\ndone\n```\n\n---\n\n## Reference block 3\n\n```bash\nDEPLOY_URL=\"${DEPLOY_URL:?DEPLOY_URL must be set}\"\nif curl -sSf \"$DEPLOY_URL\" > \u002Fdev\u002Fnull 2>&1; then\n  echo \"OK: $DEPLOY_URL responds with HTTP 200\"\nelse\n  echo \"FAIL: $DEPLOY_URL is not responding with HTTP 200\"\n  exit 1\nfi\n```\n",{"name":5,"model":36,"description":7},"main","72f5e4c8b43f60cf86b37078ad8cd7e22daf67aa",".codebuddy\u002Fskills\u002Fdeploy",23,"https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers","https:\u002F\u002Fdanielvm-git.github.io\u002Fbigpowers\u002F","https:\u002F\u002Fgithub.com\u002Fdanielvm-git","danielvm.net","2026-11-10 01:18:54",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add danielvm-git\u002Fbigpowers --skill deploy",{"tool":66,"command":67},"bunx","bunx skills add danielvm-git\u002Fbigpowers --skill deploy",{"tool":69,"command":70},"pnpm","pnpm dlx skills add danielvm-git\u002Fbigpowers --skill deploy","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002F.codebuddy\u002Fskills\u002Fdeploy\u002FSKILL.md",true,[],[75,91,98,127,150,168],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":82,"publishedAt":46},"01M71KBG9F8X644MJB16H4V8M7","skill-verify-fail-open-fixture","Negative-path fixture for run-skill-verify.sh — must never PASS.","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fspecs\u002Fverifications\u002Ffixtures\u002Fskill-verify-fail-open\u002FSKILL.md",[81],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[83,84,85,86,87,88,38,89,90],"fixture","open","verify","skill verify fail open fixture","skill verify","path","for","never",{"skillNo":92,"name":93,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":46},"01M71KBE3BKEMKNE0C5DGVDWZH","negative-path","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fspecs\u002Fverifications\u002Ffixtures\u002Fnegative-path\u002FSKILL.md",[],[97,88],"negative path",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":107,"publishedAt":46},"01M71KBBGF7Y4EB4AMHBZ8CJFC","write-document","Write, organize, and sync high-integrity technical documents using the BMAD methodology. Ensures every document is Bold, Minimal, Actionable, and Durable. Use when creating architectural docs, technical guides, or organizing the specs\u002F directory.","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-document\u002FSKILL.md",[104],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[108,109,110,111,112,113,114,115,116,117,118,119,120,121,36,122,123,124,125,126],"write","write document","document","documents","actionable","technical","methodology","high","bmad","standard","use","when","minimal","bold","integrity","organize","sync","directory","guides",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":46},"01M71KB8TM089JJD5AY5KAFSDM","wire-observability","Add structured JSON logging, observability commands, and idempotent setup scripts to a project. Use when a project needs production-readiness instrumentation, when user wants structured logging, or as a production-readiness gate at any phase of development.","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fskills\u002Fwire-observability\u002FSKILL.md",[],[134,135,136,117,137,118,138,139,140,141,36,142,143,144,145,146,147,119,148,149],"observability","wire observability","readiness","commands","development","as","logging","add","instrumentation","at","structured logging","production-readiness","idempotent","phase","project","scripts",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":46},"01M71KB6CNRANP449DQA3NJZ96","wire-ci","CI pipeline setup with bundled, forge-neutral templates and local validation. Detects the forge from the git remote, generates workflows for supported forges, and skips honestly for the rest. The CI equivalent of wire-observability.","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fskills\u002Fwire-ci\u002FSKILL.md",[],[157,43,158,159,44,160,161,162,163,164,28,117,165,89,134,36,166,167],"wire ci","remote","local","forge","validation","setup","templates","REST","ci pipeline setup","git","workflows",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":185,"publishedAt":46},"01M71KB2ZV98P03X88QR8MT9F1","visual-dashboard","Start a browser-based dashboard that visualizes architecture, implementation plans, and project status. Persists artifacts in .bigpowers\u002Fdashboard\u002F. Reads specs\u002Fstate.yaml, release-plan.yaml, epics, and planning-status via HTTP API or opencode panel.","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-dashboard\u002FSKILL.md",[174,177,182],{"categoryNo":175,"categoryName":176,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":178,"categoryName":179,"taxonomyType":180,"taxonomyTypeDesc":181},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":183,"categoryName":184,"taxonomyType":180,"taxonomyTypeDesc":181},"01JBSEEDCAT000000000000033","数据分析师",[186,187,188,189,190,191,192,193,194,36,195,196,197,198,199,200,201,148,202,203],"dashboard","visual","visual dashboard","status","artifacts","http","plans","planning","panel","start","release","opencode","plan","browser","api","architecture","project status","http api"]