[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71FA9THHXDX79PQTJ9CZX9E":3,"skill-same:01M71FA9THHXDX79PQTJ9CZX9E":71},{"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":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M71FA9THHXDX79PQTJ9CZX9E","openspec-propose",null,"Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.","Wizarck\u002Fai-playbook","Wizarck","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F23051550?v=4","01M71B3AAVR67GRWFV5ZXXZP31","arturo6ramirez","01M71F5FHXDSX3G2F52R1YS77J",6,"MIT","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fopenspec-propose\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"openspec propose","openspec","tasks","artifacts","when","use","describe","generated","implementation","new","design","complete","for","build","get","cli","change","proposal","ready","with","2026-11-10 10:12:30",false,"---\nname: openspec-propose\ndescription: Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.\nlicense: MIT\ncompatibility: Requires openspec CLI.\nmetadata:\n  author: openspec\n  version: \"1.0\"\n  generatedBy: \"1.3.0\"\n---\n\nPropose a new change - create the change and generate all artifacts in one step.\n\nI'll create a change with artifacts:\n- proposal.md (what & why)\n- design.md (how)\n- tasks.md (implementation steps)\n\nWhen ready to implement, run \u002Fopsx:apply\n\nThis skill is the Phase 2 → Phase 3 entry point of the BMAD+OpenSpec runbook. Default flow reads the canonical slicing artefact `docs\u002Fopenspec-slice.md` (per [bmad-openspec-bridge.md](..\u002F..\u002Fdocs\u002Fconcepts\u002Fbmad-openspec-bridge.md)) so each `\u003Cchange-id>` is scaffolded with the FRs, dependencies, components, and scope note already approved at Gate C. Use `--no-slice` for ad-hoc changes that bypass the contract (legacy v0.6.x behaviour).\n\n---\n\n**Input**: A `\u003Cchange-id>` that exists as a row in `docs\u002Fopenspec-slice.md`. For ad-hoc changes outside the slice contract, pass `--no-slice` plus a kebab-case name OR a description.\n\n**Flags**:\n- `--slice-file \u003Cpath>` — override the default slice file location.\n- `--no-slice` — opt out of the slice contract; ask the user inline for name + description (legacy v0.6.x flow).\n- `--batch` — iterate every row in the slice file in dependency order; idempotent (already-scaffolded folders are skipped).\n\n**Steps**\n\n1. **Read and validate the slice artefact** (default flow; skipped only when `--no-slice` is passed)\n\n   a. Locate the slice file:\n      - Default: `docs\u002Fopenspec-slice.md`.\n      - Fallback: if the default does not exist, pick the most recent `docs\u002Fopenspec-slice-*.md` by mtime.\n      - Override: `--slice-file \u003Cpath>` wins over both.\n      - If none of the above resolve to an existing file, refuse with: \"no slice file found at `docs\u002Fopenspec-slice.md` (or `docs\u002Fopenspec-slice-*.md`); either run BMAD slicing per `runbook-bmad-openspec.md` §2.4 first, or pass `--no-slice` for ad-hoc changes\".\n\n   b. Parse the \"Approved change list\" table and the \"Scope notes\" section per the schema in [bmad-openspec-bridge.md](..\u002F..\u002Fdocs\u002Fconcepts\u002Fbmad-openspec-bridge.md) §3.1.\n\n   c. Locate the row whose `Change ID` equals the requested `\u003Cchange-id>`.\n\n   d. **If `\u003Cchange-id>` is not in the slice list**, refuse with: \"change-id `\u003Cchange-id>` not in slice list at `\u003Cresolved slice file>`; either add it (re-slice + re-approve Gate C) or pass `--no-slice` for ad-hoc changes\". Do NOT auto-add the row.\n\n   e. Extract for downstream steps:\n      - The row's **scope note** (the one-paragraph entry under `## Scope notes` for this change ID) — this is the proposal's initial framing.\n      - The **Depends on** column — these become the proposal's \"Prerequisites\" section.\n      - The **FRs** column — these become the proposal's \"Capability coverage\" section.\n      - The **Components** column (if present, UI changes only) — these populate `design.md` design-token \u002F state references against `docs\u002Fux\u002Fcomponents.md`.\n      - The **Journeys** column (if present) — these enrich `design.md` with per-journey anchors from `docs\u002Fux\u002FjN.md`.\n\n1b. **If `--no-slice` is passed (legacy \u002F ad-hoc)**\n\n   Ask what they want to build using **AskUserQuestion tool** (open-ended, no preset options):\n   > \"What change do you want to work on? Describe what you want to build or fix.\"\n\n   From their description, derive a kebab-case name (e.g., \"add user authentication\" → `add-user-auth`).\n\n   **IMPORTANT**: Do NOT proceed without understanding what the user wants to build. The downstream steps run without the FRs \u002F dependencies \u002F components enrichment — the user is responsible for filling those in by hand.\n\n1c. **If `--batch` is passed**\n\n   Iterate every row of the slice file in dependency order (foundations first; topologically sorted on `Depends on`). For each row, run steps 2-5 below as if `\u003Cchange-id>` were that row. Skip rows whose folder `openspec\u002Fchanges\u002F\u003Cchange-id>\u002F` already exists (emit a notice). Emit one summary at the end (scaffolded \u002F skipped \u002F failed counts) instead of N separate confirmations.\n\n2. **Create the change directory**\n   ```bash\n   openspec new change \"\u003Cchange-id>\"\n   ```\n   This creates a scaffolded change at `openspec\u002Fchanges\u002F\u003Cchange-id>\u002F` with `.openspec.yaml`. Use the `\u003Cchange-id>` from the slice row (not a re-derived name) to keep folder identity consistent with the contract.\n\n3. **Get the artifact build order**\n   ```bash\n   openspec status --change \"\u003Cname>\" --json\n   ```\n   Parse the JSON to get:\n   - `applyRequires`: array of artifact IDs needed before implementation (e.g., `[\"tasks\"]`)\n   - `artifacts`: list of all artifacts with their status and dependencies\n\n4. **Create artifacts in sequence until apply-ready**\n\n   Use the **TodoWrite tool** to track progress through the artifacts.\n\n   Loop through artifacts in dependency order (artifacts with no pending dependencies first):\n\n   a. **For each artifact that is `ready` (dependencies satisfied)**:\n      - Get instructions:\n        ```bash\n        openspec instructions \u003Cartifact-id> --change \"\u003Cname>\" --json\n        ```\n      - The instructions JSON includes:\n        - `context`: Project background (constraints for you - do NOT include in output)\n        - `rules`: Artifact-specific rules (constraints for you - do NOT include in output)\n        - `template`: The structure to use for your output file\n        - `instruction`: Schema-specific guidance for this artifact type\n        - `outputPath`: Where to write the artifact\n        - `dependencies`: Completed artifacts to read for context\n      - Read any completed dependency files for context\n      - Create the artifact file using `template` as the structure\n      - Apply `context` and `rules` as constraints - but do NOT copy them into the file\n      - **When the slice contract is in effect** (i.e. `--no-slice` was NOT passed), enrich the artefact from the extracted slice row (per step 1e):\n        - `proposal.md` — initial framing = the scope note paragraph; \"Prerequisites\" = `Depends on`; \"Capability coverage\" = `FRs`.\n        - `design.md` — for UI changes, cite the `Components` column against `docs\u002Fux\u002Fcomponents.md` for design-token + state references; cite the `Journeys` column against `docs\u002Fux\u002FjN.md`.\n      - Show brief progress: \"Created \u003Cartifact-id>\"\n\n   b. **Continue until all `applyRequires` artifacts are complete**\n      - After creating each artifact, re-run `openspec status --change \"\u003Cname>\" --json`\n      - Check if every artifact ID in `applyRequires` has `status: \"done\"` in the artifacts array\n      - Stop when all `applyRequires` artifacts are done\n\n   c. **If an artifact requires user input** (unclear context):\n      - Use **AskUserQuestion tool** to clarify\n      - Then continue with creation\n\n5. **Show final status**\n   ```bash\n   openspec status --change \"\u003Cname>\"\n   ```\n\n**Output**\n\nAfter completing all artifacts, summarize:\n- Change name and location\n- List of artifacts created with brief descriptions\n- What's ready: \"All artifacts created! Ready for implementation.\"\n- Prompt: \"Run `\u002Fopsx:apply` or ask me to implement to start working on the tasks.\"\n\n**Artifact Creation Guidelines**\n\n- Follow the `instruction` field from `openspec instructions` for each artifact type\n- The schema defines what each artifact should contain - follow it\n- Read dependency artifacts for context before creating new ones\n- Use `template` as the structure for your output file - fill in its sections\n- **IMPORTANT**: `context` and `rules` are constraints for YOU, not content for the file\n  - Do NOT copy `\u003Ccontext>`, `\u003Crules>`, `\u003Cproject_context>` blocks into the artifact\n  - These guide what you write, but should never appear in the output\n\n**Guardrails**\n- Create ALL artifacts needed for implementation (as defined by schema's `apply.requires`)\n- Always read dependency artifacts before creating a new one\n- If context is critically unclear, ask the user - but prefer making reasonable decisions to keep momentum\n- If a change with that name already exists, ask if user wants to continue it or create a new one\n- Verify each artifact file exists after writing before proceeding to next\n","Propose a new change - create the change and generate all artifacts in one step.\n\nI'll create a change with artifacts:\n- proposal.md (what & why)\n- design.md (how)\n- tasks.md (implementation steps)\n\nWhen ready to implement, run \u002Fopsx:apply\n\nThis skill is the Phase 2 → Phase 3 entry point of the BMAD+OpenSpec runbook. Default flow reads the canonical slicing artefact `docs\u002Fopenspec-slice.md` (per [bmad-openspec-bridge.md](..\u002F..\u002Fdocs\u002Fconcepts\u002Fbmad-openspec-bridge.md)) so each `\u003Cchange-id>` is scaffolded with the FRs, dependencies, components, and scope note already approved at Gate C. Use `--no-slice` for ad-hoc changes that bypass the contract (legacy v0.6.x behaviour).\n\n---\n\n**Input**: A `\u003Cchange-id>` that exists as a row in `docs\u002Fopenspec-slice.md`. For ad-hoc changes outside the slice contract, pass `--no-slice` plus a kebab-case name OR a description.\n\n**Flags**:\n- `--slice-file \u003Cpath>` — override the default slice file location.\n- `--no-slice` — opt out of the slice contract; ask the user inline for name + description (legacy v0.6.x flow).\n- `--batch` — iterate every row in the slice file in dependency order; idempotent (already-scaffolded folders are skipped).\n\n**Steps**\n\n1. **Read and validate the slice artefact** (default flow; skipped only when `--no-slice` is passed)\n\n   a. Locate the slice file:\n      - Default: `docs\u002Fopenspec-slice.md`.\n      - Fallback: if the default does not exist, pick the most recent `docs\u002Fopenspec-slice-*.md` by mtime.\n      - Override: `--slice-file \u003Cpath>` wins over both.\n      - If none of the above resolve to an existing file, refuse with: \"no slice file found at `docs\u002Fopenspec-slice.md` (or `docs\u002Fopenspec-slice-*.md`); either run BMAD slicing per `runbook-bmad-openspec.md` §2.4 first, or pass `--no-slice` for ad-hoc changes\".\n\n   b. Parse the \"Approved change list\" table and the \"Scope notes\" section per the schema in [bmad-openspec-bridge.md](..\u002F..\u002Fdocs\u002Fconcepts\u002Fbmad-openspec-bridge.md) §3.1.\n\n   c. Locate the row whose `Change ID` equals the requested `\u003Cchange-id>`.\n\n   d. **If `\u003Cchange-id>` is not in the slice list**, refuse with: \"change-id `\u003Cchange-id>` not in slice list at `\u003Cresolved slice file>`; either add it (re-slice + re-approve Gate C) or pass `--no-slice` for ad-hoc changes\". Do NOT auto-add the row.\n\n   e. Extract for downstream steps:\n      - The row's **scope note** (the one-paragraph entry under `## Scope notes` for this change ID) — this is the proposal's initial framing.\n      - The **Depends on** column — these become the proposal's \"Prerequisites\" section.\n      - The **FRs** column — these become the proposal's \"Capability coverage\" section.\n      - The **Components** column (if present, UI changes only) — these populate `design.md` design-token \u002F state references against `docs\u002Fux\u002Fcomponents.md`.\n      - The **Journeys** column (if present) — these enrich `design.md` with per-journey anchors from `docs\u002Fux\u002FjN.md`.\n\n1b. **If `--no-slice` is passed (legacy \u002F ad-hoc)**\n\n   Ask what they want to build using **AskUserQuestion tool** (open-ended, no preset options):\n   > \"What change do you want to work on? Describe what you want to build or fix.\"\n\n   From their description, derive a kebab-case name (e.g., \"add user authentication\" → `add-user-auth`).\n\n   **IMPORTANT**: Do NOT proceed without understanding what the user wants to build. The downstream steps run without the FRs \u002F dependencies \u002F components enrichment — the user is responsible for filling those in by hand.\n\n1c. **If `--batch` is passed**\n\n   Iterate every row of the slice file in dependency order (foundations first; topologically sorted on `Depends on`). For each row, run steps 2-5 below as if `\u003Cchange-id>` were that row. Skip rows whose folder `openspec\u002Fchanges\u002F\u003Cchange-id>\u002F` already exists (emit a notice). Emit one summary at the end (scaffolded \u002F skipped \u002F failed counts) instead of N separate confirmations.\n\n2. **Create the change directory**\n   ```bash\n   openspec new change \"\u003Cchange-id>\"\n   ```\n   This creates a scaffolded change at `openspec\u002Fchanges\u002F\u003Cchange-id>\u002F` with `.openspec.yaml`. Use the `\u003Cchange-id>` from the slice row (not a re-derived name) to keep folder identity consistent with the contract.\n\n3. **Get the artifact build order**\n   ```bash\n   openspec status --change \"\u003Cname>\" --json\n   ```\n   Parse the JSON to get:\n   - `applyRequires`: array of artifact IDs needed before implementation (e.g., `[\"tasks\"]`)\n   - `artifacts`: list of all artifacts with their status and dependencies\n\n4. **Create artifacts in sequence until apply-ready**\n\n   Use the **TodoWrite tool** to track progress through the artifacts.\n\n   Loop through artifacts in dependency order (artifacts with no pending dependencies first):\n\n   a. **For each artifact that is `ready` (dependencies satisfied)**:\n      - Get instructions:\n        ```bash\n        openspec instructions \u003Cartifact-id> --change \"\u003Cname>\" --json\n        ```\n      - The instructions JSON includes:\n        - `context`: Project background (constraints for you - do NOT include in output)\n        - `rules`: Artifact-specific rules (constraints for you - do NOT include in output)\n        - `template`: The structure to use for your output file\n        - `instruction`: Schema-specific guidance for this artifact type\n        - `outputPath`: Where to write the artifact\n        - `dependencies`: Completed artifacts to read for context\n      - Read any completed dependency files for context\n      - Create the artifact file using `template` as the structure\n      - Apply `context` and `rules` as constraints - but do NOT copy them into the file\n      - **When the slice contract is in effect** (i.e. `--no-slice` was NOT passed), enrich the artefact from the extracted slice row (per step 1e):\n        - `proposal.md` — initial framing = the scope note paragraph; \"Prerequisites\" = `Depends on`; \"Capability coverage\" = `FRs`.\n        - `design.md` — for UI changes, cite the `Components` column against `docs\u002Fux\u002Fcomponents.md` for design-token + state references; cite the `Journeys` column against `docs\u002Fux\u002FjN.md`.\n      - Show brief progress: \"Created \u003Cartifact-id>\"\n\n   b. **Continue until all `applyRequires` artifacts are complete**\n      - After creating each artifact, re-run `openspec status --change \"\u003Cname>\" --json`\n      - Check if every artifact ID in `applyRequires` has `status: \"done\"` in the artifacts array\n      - Stop when all `applyRequires` artifacts are done\n\n   c. **If an artifact requires user input** (unclear context):\n      - Use **AskUserQuestion tool** to clarify\n      - Then continue with creation\n\n5. **Show final status**\n   ```bash\n   openspec status --change \"\u003Cname>\"\n   ```\n\n**Output**\n\nAfter completing all artifacts, summarize:\n- Change name and location\n- List of artifacts created with brief descriptions\n- What's ready: \"All artifacts created! Ready for implementation.\"\n- Prompt: \"Run `\u002Fopsx:apply` or ask me to implement to start working on the tasks.\"\n\n**Artifact Creation Guidelines**\n\n- Follow the `instruction` field from `openspec instructions` for each artifact type\n- The schema defines what each artifact should contain - follow it\n- Read dependency artifacts for context before creating new ones\n- Use `template` as the structure for your output file - fill in its sections\n- **IMPORTANT**: `context` and `rules` are constraints for YOU, not content for the file\n  - Do NOT copy `\u003Ccontext>`, `\u003Crules>`, `\u003Cproject_context>` blocks into the artifact\n  - These guide what you write, but should never appear in the output\n\n**Guardrails**\n- Create ALL artifacts needed for implementation (as defined by schema's `apply.requires`)\n- Always read dependency artifacts before creating a new one\n- If context is critically unclear, ask the user - but prefer making reasonable decisions to keep momentum\n- If a change with that name already exists, ask if user wants to continue it or create a new one\n- Verify each artifact file exists after writing before proceeding to next\n",{"name":5,"license":15,"metadata":44,"description":7,"compatibility":47},{"author":20,"version":45,"generatedBy":46},"1.0","1.3.0","Requires openspec CLI.","main","08fe7aa0f06bc1a3f592ec82360e46b854846968","skills\u002Fopenspec-propose",1,"https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook","https:\u002F\u002Fgithub.com\u002FWizarck","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Framirezarturo\u002F","Geek by birth, with not much to say but plenty to talk about.","2026-11-09 19:34:21",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add Wizarck\u002Fai-playbook --skill openspec-propose",{"tool":63,"command":64},"bunx","bunx skills add Wizarck\u002Fai-playbook --skill openspec-propose",{"tool":66,"command":67},"pnpm","pnpm dlx skills add Wizarck\u002Fai-playbook --skill openspec-propose","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fopenspec-propose\u002FSKILL.md",true,[],[72,95,114,138,157,170],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":39},"01M71FATTWS9W3BME3S94SA1QR","sweep","Use when the user wants to find code that has quietly stopped being used — types \u002Fsweep, asks for a \"dead code sweep\", \"repo entropy\", \"what can we delete\", \"orphan files\", \"unused code\", or asks to review a sweep ledger. Adjudicates candidates a deterministic scanner already produced; it never deletes anything and never re-derives findings from raw source. Pairs with ponytail, which gates what gets written rather than what rots.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fsweep\u002FSKILL.md",[],[74,79,80,81,82,83,31,84,85,86,87,88,89,24,23,90,91,92,93,94],"deterministic","which","never","entropy","types","repo","re","ponytail","orphan","files","unused","code","can","gates","review","candidates",{"skillNo":96,"name":86,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":39},"01M71FAQKVDA209G7G5NMY9H1E","Use when the user wants the laziest solution that actually works — types \u002Fponytail, says \"be lazy\", \"lazy mode\", \"simplest solution\", \"minimal solution\", \"yagni\", \"do less\", or \"shortest path\", or complains about over-engineering, bloat, boilerplate, or unnecessary dependencies. Supports intensity levels lite, full, ultra (default). Pairs with caveman, which compresses prose, not code.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail\u002FSKILL.md",[],[86,101,102,80,103,83,104,105,106,107,24,23,90,38,108,109,110,111,112,113],"notice","do","lazy","mode","default","minimal","intensity","yagni","about","dependencies","2026","playbook","boilerplate",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":125,"publishedAt":39},"01M71FAMS250NKNF1PET9KNBBV","ponytail-review","Use when the user wants a code review focused exclusively on over-engineering — says \"review for over-engineering\", \"what can we delete\", \"is this over-engineered\", \"simplify review\", or invokes \u002Fponytail-review. Complements correctness\u002Fsecurity review; this one only hunts complexity in the current diff. Gated by the ponytail review_ponytail component.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-review\u002FSKILL.md",[120],{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[126,86,93,127,128,31,129,130,24,23,131,132,90,133,91,134,135,136,137,112],"ponytail review","complexity","diff","code review","only","simplify","correctness","one","delete","component","security review","gated",{"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":144,"publishedAt":39},"01M71FAG53ZPCSWE272P6S9JFN","ponytail-debt","Use when the user wants to harvest every `ponytail:` comment in the codebase into a tracked debt ledger — says \"ponytail debt\", \"\u002Fponytail-debt\", \"what did ponytail defer\", \"list the shortcuts\", \"ponytail ledger\", or \"what did we mark to do later\". One-shot report, changes nothing. Gated by the ponytail debt_ponytail component.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-debt\u002FSKILL.md",[],[145,86,146,147,102,148,149,135,150,151,137,152,153,112,154,155,24,23,156,133],"ponytail debt","debt","shortcuts","mark","to do","changes","later","report","codebase","harvest","list","ledger",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":39},"01M71FACJW88WCS2JGX3MQ3KV9","ponytail-audit","Use when the user wants a whole-repo audit for over-engineering — says \"audit this codebase\", \"audit for over-engineering\", \"what can I delete from this repo\", \"find bloat\", or invokes \u002Fponytail-audit. Like ponytail-review but scans the entire tree, not a diff. One-shot report, applies no fixes. Gated by the ponytail audit_ponytail component.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-audit\u002FSKILL.md",[],[164,86,165,166,128,167,31,84,24,23,168,133,91,93,134,135,137,169,152,153],"ponytail audit","audit","tree","fixes","entire","find",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":176,"publishedAt":39},"01M71FA80MEBSWG2G43YT4C825","openspec-explore","Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fopenspec-explore\u002FSKILL.md",[],[20,177,178,179,180,181,31,104,24,23,182,35,34,183,184,185],"explore","openspec explore","thinking","ideas","thinking partner","requirements","partner","think","user"]