[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71J4HNP6VGTYAR4HRVSPGJ4":3,"skill-same:01M71J4HNP6VGTYAR4HRVSPGJ4":67},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":50,"ownerHtmlUrl":51,"ownerBlogUrl":52,"ownerDescription":6,"updatedAt":53,"install":54,"resources":66},"01M71J4HNP6VGTYAR4HRVSPGJ4","run-planning",null,"DISCOVER-PHASE ADVANCER — Drive the discover-phase checklist (specs\u002Fplanning-status.yaml) through survey-context → scope-work → research-first → elaborate-spec → plan-release → slice-tasks. NOT a duplicate of plan-work or the planning spine; it orchestrates the pre-coding discover phase only.","danielvm-git\u002Fbigpowers","danielvm-git","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1020864?v=4","01M71H1N1CTQ529S0KN7KETVG6","Daniel V M","01M71H1N218Y3S8WHCJ58NPRSW",290,"MIT","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002F.gemini\u002Fextensions\u002Fbigpowers\u002Fskills\u002Frun-planning\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"run planning","run","planning","only","slice","phase","true","sonnet","spine","duplicate","scope","discover","status","survey","context","work","coding","plan","release","tasks","2026-11-10 10:12:30",false,"---\nname: run-planning\nmodel: sonnet\ndescription: \"DISCOVER-PHASE ADVANCER — Drive the discover-phase checklist (specs\u002Fplanning-status.yaml) through survey-context → scope-work → research-first → elaborate-spec → plan-release → slice-tasks. NOT a duplicate of plan-work or the planning spine; it orchestrates the pre-coding discover phase only.\"\ndisable-model-invocation: true\n---\n\n\u003C!-- story: e24s03 -->\n\n# Run Planning\n\n> **HARD GATE** — Before running planning skills, confirm the epic capsule exists and the active story is clear. Planning without a target is noise.\n>\n> **Role:** DISCOVER-PHASE ADVANCER — orchestrates the discover-phase sequence; hands off to the scope-work → slice-tasks → plan-work spine for implementation planning.\n\nUpdates `specs\u002Fplanning-status.yaml` as discover-phase skills complete. This is NOT a duplicate of plan-work — it orchestrates the *pre-coding* discovery phase only (Discover phase in the 6-phase PMBOK lifecycle), handing off to the planning spine for implementation detail.\n\n## When to use\n\n- Starting a brand-new feature or initiative with no prior planning artifacts\n- Returning to a stalled initiative and needing to resume the discovery workflow\n- After `orchestrate-project` hands off to the Discover phase\n- When a new epic emerges from `change-request` and needs to go through full discovery\n\n## Pre-flight\n\n- [ ] Does `specs\u002Fplanning-status.yaml` exist? If not, create it with the default workflow keys.\n- [ ] Does `specs\u002Fstate.yaml` have `active_flow: planning`? Set it if not already.\n- [ ] Is the epic identified in `release-plan.yaml`? The epic must exist before discovery begins.\n\n## Workflows (default keys)\n\n- `survey-context` → `scope-work` → `research-first` → `elaborate-spec` (optional) → `plan-release` → `slice-tasks`\n\nEach key maps to a skill invocation. Optional keys can be skipped; required keys must complete before the phase advances.\n\n## Process\n\n1. **Read state** — Read `specs\u002Fplanning-status.yaml` and `specs\u002Fstate.yaml`. Understand where discovery stands: which workflow keys are `done`, which are `pending`, and which are `optional` (can be skipped).\n\n2. **Find next step** — Find the first workflow key with `status: pending`. If the key is `optional`, check if the user wants to run it. If not, mark it `skipped`.\n\n2a. **Context capsule check** — Before invoking `elaborate-spec`, check whether a fresh `specs\u002Fplanning-context.yaml` exists:\n   ```bash\n   test -f specs\u002Fplanning-context.yaml && python3 -c \"\nimport yaml, datetime\nd = yaml.safe_load(open('specs\u002Fplanning-context.yaml'))\nwritten = d.get('written_at','')\nif written:\n    age = (datetime.datetime.now(datetime.timezone.utc) - datetime.datetime.fromisoformat(written)).total_seconds() \u002F 3600\n    print(f'Context age: {age:.1f}h')\n\" 2>\u002Fdev\u002Fnull || echo \"No context or no written_at\"\n   ```\n   - If context is **\u003C 24h old**, ask: `\"Planning context from Xh ago exists for '\u003Cfeature_name>'. Re-run elaborate-spec? [y\u002FN]\"`. Skip elaborate-spec on N.\n   - If context is **≥ 24h old** or absent, run elaborate-spec normally.\n   - On planning cycle completion (all required keys done), clear the capsule: delete `specs\u002Fplanning-context.yaml` and set `planning-status.yaml` `context_capsule: null`.\n\n3. **Invoke the matching skill** — Run the skill that matches the workflow key:\n   - `survey-context` — where are we?\n   - `scope-work` — what's in and out?\n   - `research-first` — what already exists?\n   - `elaborate-spec` — refine the idea (optional)\n   - `plan-release` — sequence epics by WSJF\n   - `slice-tasks` — cut vertical slices\n\n4. **Mechanical artifact assertion before status update (HARD GATE — Issue #183):**\n   Before marking any workflow key `status: done`, run:\n   ```bash\n   bash scripts\u002Flib\u002Fassert-planning-artifacts.sh \u003Cworkflow-key>\n   ```\n   If the artifact assertion fails, do NOT advance status. Remediate missing output files before continuing. On success, set `status: done` for that workflow key in `planning-status.yaml`.\n\n5. **Advance** — Set `state.yaml` `active_flow: planning` while in this chain. When all required keys are done, set `handoff.next_skill` to `plan-work`.\n\n## Workflow Keys Schema\n\nIn `specs\u002Fplanning-status.yaml`:\n```yaml\ncontext_capsule:             # written by elaborate-spec; cleared on cycle completion\n  written_at: \"2026-06-22T03:00:00Z\"\n  written_by: elaborate-spec\n  feature_name: \"add dark mode\"\nworkflows:\n  survey-context:\n    required: true\n    status: done\n  scope-work:\n    required: true\n    status: pending\n  research-first:\n    required: false\n    status: optional\n    note: \"Skip if no external dependencies\"\n  elaborate-spec:\n    required: false\n    status: optional\n  plan-release:\n    required: true\n    status: pending\n  slice-tasks:\n    required: true\n    status: pending\n```\n\n## Verify\n\n→ verify: `test -f specs\u002Fplanning-status.yaml && [ \"$(grep -c 'status: done' specs\u002Fplanning-status.yaml)\" -ge 3 ]`\n","\u003C!-- story: e24s03 -->\n\n# Run Planning\n\n> **HARD GATE** — Before running planning skills, confirm the epic capsule exists and the active story is clear. Planning without a target is noise.\n>\n> **Role:** DISCOVER-PHASE ADVANCER — orchestrates the discover-phase sequence; hands off to the scope-work → slice-tasks → plan-work spine for implementation planning.\n\nUpdates `specs\u002Fplanning-status.yaml` as discover-phase skills complete. This is NOT a duplicate of plan-work — it orchestrates the *pre-coding* discovery phase only (Discover phase in the 6-phase PMBOK lifecycle), handing off to the planning spine for implementation detail.\n\n## When to use\n\n- Starting a brand-new feature or initiative with no prior planning artifacts\n- Returning to a stalled initiative and needing to resume the discovery workflow\n- After `orchestrate-project` hands off to the Discover phase\n- When a new epic emerges from `change-request` and needs to go through full discovery\n\n## Pre-flight\n\n- [ ] Does `specs\u002Fplanning-status.yaml` exist? If not, create it with the default workflow keys.\n- [ ] Does `specs\u002Fstate.yaml` have `active_flow: planning`? Set it if not already.\n- [ ] Is the epic identified in `release-plan.yaml`? The epic must exist before discovery begins.\n\n## Workflows (default keys)\n\n- `survey-context` → `scope-work` → `research-first` → `elaborate-spec` (optional) → `plan-release` → `slice-tasks`\n\nEach key maps to a skill invocation. Optional keys can be skipped; required keys must complete before the phase advances.\n\n## Process\n\n1. **Read state** — Read `specs\u002Fplanning-status.yaml` and `specs\u002Fstate.yaml`. Understand where discovery stands: which workflow keys are `done`, which are `pending`, and which are `optional` (can be skipped).\n\n2. **Find next step** — Find the first workflow key with `status: pending`. If the key is `optional`, check if the user wants to run it. If not, mark it `skipped`.\n\n2a. **Context capsule check** — Before invoking `elaborate-spec`, check whether a fresh `specs\u002Fplanning-context.yaml` exists:\n   ```bash\n   test -f specs\u002Fplanning-context.yaml && python3 -c \"\nimport yaml, datetime\nd = yaml.safe_load(open('specs\u002Fplanning-context.yaml'))\nwritten = d.get('written_at','')\nif written:\n    age = (datetime.datetime.now(datetime.timezone.utc) - datetime.datetime.fromisoformat(written)).total_seconds() \u002F 3600\n    print(f'Context age: {age:.1f}h')\n\" 2>\u002Fdev\u002Fnull || echo \"No context or no written_at\"\n   ```\n   - If context is **\u003C 24h old**, ask: `\"Planning context from Xh ago exists for '\u003Cfeature_name>'. Re-run elaborate-spec? [y\u002FN]\"`. Skip elaborate-spec on N.\n   - If context is **≥ 24h old** or absent, run elaborate-spec normally.\n   - On planning cycle completion (all required keys done), clear the capsule: delete `specs\u002Fplanning-context.yaml` and set `planning-status.yaml` `context_capsule: null`.\n\n3. **Invoke the matching skill** — Run the skill that matches the workflow key:\n   - `survey-context` — where are we?\n   - `scope-work` — what's in and out?\n   - `research-first` — what already exists?\n   - `elaborate-spec` — refine the idea (optional)\n   - `plan-release` — sequence epics by WSJF\n   - `slice-tasks` — cut vertical slices\n\n4. **Mechanical artifact assertion before status update (HARD GATE — Issue #183):**\n   Before marking any workflow key `status: done`, run:\n   ```bash\n   bash scripts\u002Flib\u002Fassert-planning-artifacts.sh \u003Cworkflow-key>\n   ```\n   If the artifact assertion fails, do NOT advance status. Remediate missing output files before continuing. On success, set `status: done` for that workflow key in `planning-status.yaml`.\n\n5. **Advance** — Set `state.yaml` `active_flow: planning` while in this chain. When all required keys are done, set `handoff.next_skill` to `plan-work`.\n\n## Workflow Keys Schema\n\nIn `specs\u002Fplanning-status.yaml`:\n```yaml\ncontext_capsule:             # written by elaborate-spec; cleared on cycle completion\n  written_at: \"2026-06-22T03:00:00Z\"\n  written_by: elaborate-spec\n  feature_name: \"add dark mode\"\nworkflows:\n  survey-context:\n    required: true\n    status: done\n  scope-work:\n    required: true\n    status: pending\n  research-first:\n    required: false\n    status: optional\n    note: \"Skip if no external dependencies\"\n  elaborate-spec:\n    required: false\n    status: optional\n  plan-release:\n    required: true\n    status: pending\n  slice-tasks:\n    required: true\n    status: pending\n```\n\n## Verify\n\n→ verify: `test -f specs\u002Fplanning-status.yaml && [ \"$(grep -c 'status: done' specs\u002Fplanning-status.yaml)\" -ge 3 ]`\n",{"name":5,"model":26,"description":7,"disable-model-invocation":44},true,"main","72f5e4c8b43f60cf86b37078ad8cd7e22daf67aa",".gemini\u002Fextensions\u002Fbigpowers\u002Fskills\u002Frun-planning",24,"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":55,"prompt":65,"zipAvailable":44},[56,59,62],{"tool":57,"command":58},"npx","npx skills add danielvm-git\u002Fbigpowers --skill run-planning",{"tool":60,"command":61},"bunx","bunx skills add danielvm-git\u002Fbigpowers --skill run-planning",{"tool":63,"command":64},"pnpm","pnpm dlx skills add danielvm-git\u002Fbigpowers --skill run-planning","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002F.gemini\u002Fextensions\u002Fbigpowers\u002Fskills\u002Frun-planning\u002FSKILL.md",[],[68,88,95,124,146,167],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":79,"publishedAt":39},"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",[74],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[80,81,82,83,84,85,20,86,87],"fixture","open","verify","skill verify fail open fixture","skill verify","path","for","never",{"skillNo":89,"name":90,"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":91,"categories":92,"keywords":93,"publishedAt":39},"01M71KBE3BKEMKNE0C5DGVDWZH","negative-path","https:\u002F\u002Fgithub.com\u002Fdanielvm-git\u002Fbigpowers\u002Fblob\u002Fmain\u002Fspecs\u002Fverifications\u002Ffixtures\u002Fnegative-path\u002FSKILL.md",[],[94,85],"negative path",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":104,"publishedAt":39},"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",[101],{"categoryNo":102,"categoryName":103,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000002","文档处理",[105,106,107,108,109,110,111,112,113,114,115,116,117,118,26,119,120,121,122,123],"write","write document","document","documents","actionable","technical","methodology","high","bmad","standard","use","when","minimal","bold","integrity","organize","sync","directory","guides",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":39},"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",[],[131,132,133,114,134,115,135,136,137,138,26,139,140,141,142,143,24,116,144,145],"observability","wire observability","readiness","commands","development","as","logging","add","instrumentation","at","structured logging","production-readiness","idempotent","project","scripts",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":39},"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",[],[153,154,155,156,157,158,159,160,161,162,163,114,164,86,131,26,165,166],"wire ci","ci","remote","local","pipeline","forge","validation","setup","templates","REST","with","ci pipeline setup","git","workflows",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":184,"publishedAt":39},"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",[173,176,181],{"categoryNo":174,"categoryName":175,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":177,"categoryName":178,"taxonomyType":179,"taxonomyTypeDesc":180},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":182,"categoryName":183,"taxonomyType":179,"taxonomyTypeDesc":180},"01JBSEEDCAT000000000000033","数据分析师",[185,186,187,31,188,189,190,21,191,26,192,37,193,36,194,195,196,144,197,198],"dashboard","visual","visual dashboard","artifacts","http","plans","panel","start","opencode","browser","api","architecture","project status","http api"]