[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7AB3RFQCHR7RCRXMYGPPDGW":3,"skill-same:01M7AB3RFQCHR7RCRXMYGPPDGW":54},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":6,"ownerHtmlUrl":30,"ownerBlogUrl":31,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M7AB3RFQCHR7RCRXMYGPPDGW","think",null,"Think a vague feature idea into a buildable spec by working backwards (the idea→spec leg; drives the `devague` CLI). Start from the announcement (\"pretend it shipped\"), capture and classify claims, interrogate them with honesty conditions and hard questions, park open vagueness as a first-class object, and export a spec only once the frame *converges*. Use when the user says \"think this through\", \"spec this\", \"work backwards\", \"turn this idea into a spec\", \"announcement frame\", or \"devague\", or when a feature request is too vague to build yet. Once a spec exports, hand off to the sibling \u002Fspec-to-plan skill to turn it into a plan. Authored and maintained in agentculture\u002Fdevague (origin = devague); steward pulls this skill from here and broadcasts it to the AgentCulture mesh — it is NOT vendored from steward like the other skills here.","agentculture\u002Fculture-nodes","agentculture","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F277824871?v=4","01M7AAZDPCFA8RDCA27DQKKWCJ","AgentCulture","01M7AAZDQ1B6FYE24021YCDAPR",3,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fculture-nodes\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fthink\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: think\ntype: command\ndescription: >\n  Think a vague feature idea into a buildable spec by working backwards (the\n  idea→spec leg; drives the `devague` CLI). Start from the announcement\n  (\"pretend it shipped\"), capture and classify claims, interrogate them with\n  honesty conditions and hard questions, park open vagueness as a first-class\n  object, and export a spec only once the frame *converges*. Use when the user\n  says \"think this through\", \"spec this\", \"work backwards\", \"turn this idea into\n  a spec\", \"announcement frame\", or \"devague\", or when a feature request is too\n  vague to build yet. Once a spec exports, hand off to the sibling \u002Fspec-to-plan\n  skill to turn it into a plan. Authored and maintained in agentculture\u002Fdevague\n  (origin = devague); steward pulls this skill from here and broadcasts it to the\n  AgentCulture mesh — it is NOT vendored from steward like the other skills here.\n---\n\n# think — work an idea backwards into a buildable spec\n\nThe skill is named **`think`**; the product\u002FCLI it drives is **`devague`**. (The\nforward leg — turning a converged spec into a plan — is the sibling\n**`\u002Fspec-to-plan`** skill, which drives `devague plan`.)\n\n`think` turns a vague feature idea into a buildable spec by **working\nbackwards**: you start from the announcement you'd make if it had already\nshipped, then build an **Announcement Frame** by capturing claims, pressure\n-testing them, parking what's still genuinely unknown, and only exporting once\nthe frame converges.\n\nThe CLI is **deterministic and move-driven** — it is *not* a wizard. There is no\nfixed sequence of prompts. **You (the agent) choose the next move; the CLI just\ntracks state and tells you what's still missing.** Run `devague learn` for the\ncanonical ten-stage arc and `devague explain \u003Cmove>` for any single move.\n\nThis skill is the operator: a portable wrapper that resolves the CLI and\nforwards every move verbatim — including `status`, the read-only verb that reads\nthe convergence gate and tells you the recommended next move.\n\n## How to run\n\nThe entry point is `scripts\u002Fthink.sh`. Invoke it from the repository you are\nspeccing (frames persist under `.devague\u002F` in the current directory):\n\n```bash\nbash .claude\u002Fskills\u002Fthink\u002Fscripts\u002Fthink.sh \u003Cmove> [args...]\nbash .claude\u002Fskills\u002Fthink\u002Fscripts\u002Fthink.sh status\n```\n\nIt resolves the CLI portably — an installed `devague` on `PATH` (the normal\ncase), falling back to `uv run devague` when you are inside the devague checkout.\nIf neither resolves it prints an install hint (`uv tool install devague`). Every\nmove — including `status` — is forwarded verbatim, so you can equally call the\nCLI directly (`devague \u003Cmove> …`) when it is installed; the wrapper exists only\nfor portable resolution.\n\n### Moves\n\n| Move | What it does |\n|------|--------------|\n| `new \"\u003Cannouncement>\"` | Start a frame from the announcement (the first move). Seeds an auto-confirmed `announcement` claim. |\n| `capture --kind \u003Ckind> \"\u003Ctext>\"` | Record + classify a claim. `--origin llm` lands it as `proposed`. |\n| `interrogate \u003Cid> --honesty \"…\"` | Attach an honesty condition (what must be true). Also `--hard-question`, `--risk`, `--contradicts`, `--blocking`. |\n| `confirm \u003Cid> [\u003Cid>…]` \u002F `reject \u003Cid> [\u003Cid>…]` | Resolve one or more claims (`c*`) \u002F honesty conditions (`h*`) in one **transactional** call. **User-only decision.** Also `confirm --from-review \u003Cfile>` to apply an edited review artifact. |\n| `review` | List every **proposed** (unconfirmed) claim + honesty condition with ids (`--json` too); writes a non-authoritative artifact to `.devague\u002Freviews\u002F\u003Cslug>.md`. Un-gated; never mutates. |\n| `question \"\u003Ctext>\"` | Record \u002F list \u002F `--resolve` a pending user decision as durable working state in `.devague\u002Fquestions\u002F\u003Cslug>.md`. |\n| `park \"\u003Ctext>\" --kind \u003Ckind>` | Move uncertainty into first-class open vagueness instead of forcing an answer. |\n| `converge` | Evaluate the gate; list remaining gaps. |\n| `export` | Write the buildable spec to `docs\u002Fspecs\u002F` — only after `converge` passes. |\n| `status` | Read-only: where the frame stands + the recommended next move (`--json` too). |\n| `show` \u002F `list` | Render a frame \u002F list frames (`--json` for raw state). |\n| `learn` \u002F `explain \u003Cmove>` | Teach the method \u002F explain one move. |\n\nClaim kinds: `announcement`, `audience`, `after_state`, `before_state`,\n`why_it_matters`, `boundary`, `success_signal`, `open_question`, `non_goal`,\n`requirement`, `assumption`, `decision`. Vagueness kinds: `unknown_nonblocking`,\n`unknown_blocking`, `out_of_scope`, `follow_up`.\n\nThese are exactly the kinds the **shipped CLI enforces** (`CLAIM_KINDS` \u002F\n`VAGUENESS_KINDS` in `devague\u002Fframe.py`) — the skill documents the surface as\nbuilt, so every command here passes the CLI's `choices=` validation. `requirement`\nis spec-affecting (needs a confirmed honesty condition); `non_goal` \u002F `decision`\nare descriptive; an unconfirmed `assumption` is a convergence *warning*, not a\nblocker. The formal entity model, the `(state × origin)` vocabulary, and the\nper-move input\u002Foutput\u002Ftransition\u002Ferror contract are documented in\n[`docs\u002Fspec-contract.md`](..\u002F..\u002F..\u002Fdocs\u002Fspec-contract.md) (issue\n[#5](https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fdevague\u002Fissues\u002F5)); for the authoritative\nlive shape of any move, run it with `--json` (or `devague learn --json` \u002F\n`devague explain \u003Cmove>`).\n\n### `status` — the next-move verb\n\n`status` is a first-class, **read-only** CLI verb (`devague status`, internalised\nfrom this wrapper in 0.11.0 — issue\n[#30](https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fdevague\u002Fissues\u002F30)). It composes\n`list` + `converge` and prints where the current frame stands, the remaining\ngaps, and the recommended next move; it never mutates state (the\n`drafting`↔`converged` transition stays in `converge`). It reports\n`ready_for_spec`, lists the `blockers` and `warnings`, and shows\n`required_next_moves[0]` as the recommended move. Pass `--json` for the same\nfields as a structured payload (`{frame, total, ready_for_spec, blockers,\nwarnings, parked_items, required_next_moves}`).\n\n```text\nframe: my-feature    (1 frame total)\nconvergence: NOT passed — 2 gap(s):\n  - missing a 'boundary' \u002F non-goal claim\n  - claim c2 has no confirmed honesty condition\n\nrecommended next move (first gap):\n  devague capture --kind boundary \"\u003Ctext>\"\n```\n\nRun it whenever you're unsure what to do next.\n\n## Hard rules (do not violate)\n\nThese are the point of the method — convergence must mean something.\n\n- **LLM proposals stay proposed.** A claim captured with `--origin llm`, and any\n  honesty condition you (the agent) propose, lands as `proposed`. **Never\n  `confirm` your own proposal.** Confirmation is a user-only decision — surface\n  the proposal and let the user confirm or reject it. Proposed content must not\n  silently become an authoritative requirement.\n- **Honesty conditions route through the user.** Propose them freely with\n  `interrogate --honesty`; the user owns whether they hold.\n- **Converge, don't vibe.** `export` is gated on `converge` passing. Never claim\n  the frame is ready on a hunch — run `converge` (or `status`) and resolve every\n  listed gap. The gate requires confirmed `announcement` \u002F `audience` \u002F\n  `after_state`, a `before_state` or `why_it_matters`, a `boundary`, a\n  `success_signal`, a confirmed honesty condition on every spec-affecting claim,\n  and no unresolved blocking vagueness or hard question.\n- **Park real unknowns; don't paper over them.** If something is genuinely\n  unknown, `park` it (blocking or non-blocking) rather than fabricating an\n  answer. Blocking vagueness holds back convergence — by design.\n\n## Output contract\n\nResults go to **stdout**, diagnostics and errors to **stderr** — a strict split\nyou can rely on when parsing. Pass `--json` to any move for a structured payload\non the same stream. Exit code `0` on success, non-zero on user error (with a\n`hint:` line). Frames live under `.devague\u002F` in the current directory.\n\n## Worked example\n\nA short end-to-end session (the kind you'd run to spec a feature like\n[devague#5](https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fdevague\u002Fissues\u002F5)):\n\n```bash\nd() { bash .claude\u002Fskills\u002Fthink\u002Fscripts\u002Fthink.sh \"$@\"; }\n\nd new \"Devague ships a documented spec contract\"\nd capture --kind audience \"devague + the assisting LLM\"\nd capture --kind after_state \"a vague idea becomes a buildable, pressure-tested spec\"\nd capture --kind why_it_matters \"specs converge on evidence, not vibes\"\nd capture --kind boundary \"not a full PRD generator; no fixed wizard\"\nd capture --kind success_signal \"a frame exports only after the gate passes\"\n\n# Pressure-test a claim, then let the USER confirm the condition:\nd interrogate c1 --honesty \"the contract round-trips: save -> load -> identical frame\"\n# ...user reviews and runs: d confirm h1\n\n# Park a genuine unknown instead of guessing:\nd park \"exact JSON schema versioning policy\" --kind unknown_nonblocking\n\nd status        # what's left + the next move\nd converge      # gate; resolve any listed gaps\nd export        # writes docs\u002Fspecs\u002F\u003Cslug>.md once converged\n```\n\nThe exported spec-md is a buildable artifact.\n\n## After export — commit, then hand off\n\nOnce `export` writes the spec **and the user has reviewed it**, close the\nidea→spec leg cleanly before moving on:\n\n1. **Commit the spec.** Commit the exported `docs\u002Fspecs\u002F\u003Cslug>.md` (along with\n   the `.devague\u002F\u003Cslug>.json` frame state and any review artifact under\n   `docs\u002Freviews\u002F`) so the converged frame is durable in history, not just on\n   disk. Use a focused message, e.g. `git commit -m \"spec: \u003Cslug> (devague\n   \u002Fthink)\"`. The frame and the spec are the evidence trail for every confirmed\n   claim — keep them together. (Per the repo's standing convention this normally\n   becomes a branch + PR via the `cicd` skill; commit-only is fine when the user\n   asks for it.)\n2. **Hand off to `\u002Fspec-to-plan`.** The forward leg is the sibling skill:\n   `devague plan new --frame \u003Cslug>` seeds a plan from the converged frame and\n   works it forward into a buildable plan (it can equally feed\n   `superpowers:writing-plans` or a normal implementation PR).\n\nDon't pause for a \"what next?\" menu after a reviewed export — the standing flow\nis **commit, then `\u002Fspec-to-plan`**.\n\n## Provenance\n\nThis is a **first-party** skill — its origin is `agentculture\u002Fdevague`, where the\ndevague agent maintains it alongside the tool it operates (dogfooding). It is the\n*inverse* of the other skills under `.claude\u002Fskills\u002F`, which devague vendors\n**from** steward. When this skill is ready, steward pulls it **from** devague and\nbroadcasts it to the rest of the AgentCulture mesh. The `cite, don't import`\npolicy still holds: downstream repos copy it, they don't symlink or depend on it.\nSee `docs\u002Fskill-sources.md`.\n","# think — work an idea backwards into a buildable spec\n\nThe skill is named **`think`**; the product\u002FCLI it drives is **`devague`**. (The\nforward leg — turning a converged spec into a plan — is the sibling\n**`\u002Fspec-to-plan`** skill, which drives `devague plan`.)\n\n`think` turns a vague feature idea into a buildable spec by **working\nbackwards**: you start from the announcement you'd make if it had already\nshipped, then build an **Announcement Frame** by capturing claims, pressure\n-testing them, parking what's still genuinely unknown, and only exporting once\nthe frame converges.\n\nThe CLI is **deterministic and move-driven** — it is *not* a wizard. There is no\nfixed sequence of prompts. **You (the agent) choose the next move; the CLI just\ntracks state and tells you what's still missing.** Run `devague learn` for the\ncanonical ten-stage arc and `devague explain \u003Cmove>` for any single move.\n\nThis skill is the operator: a portable wrapper that resolves the CLI and\nforwards every move verbatim — including `status`, the read-only verb that reads\nthe convergence gate and tells you the recommended next move.\n\n## How to run\n\nThe entry point is `scripts\u002Fthink.sh`. Invoke it from the repository you are\nspeccing (frames persist under `.devague\u002F` in the current directory):\n\n```bash\nbash .claude\u002Fskills\u002Fthink\u002Fscripts\u002Fthink.sh \u003Cmove> [args...]\nbash .claude\u002Fskills\u002Fthink\u002Fscripts\u002Fthink.sh status\n```\n\nIt resolves the CLI portably — an installed `devague` on `PATH` (the normal\ncase), falling back to `uv run devague` when you are inside the devague checkout.\nIf neither resolves it prints an install hint (`uv tool install devague`). Every\nmove — including `status` — is forwarded verbatim, so you can equally call the\nCLI directly (`devague \u003Cmove> …`) when it is installed; the wrapper exists only\nfor portable resolution.\n\n### Moves\n\n| Move | What it does |\n|------|--------------|\n| `new \"\u003Cannouncement>\"` | Start a frame from the announcement (the first move). Seeds an auto-confirmed `announcement` claim. |\n| `capture --kind \u003Ckind> \"\u003Ctext>\"` | Record + classify a claim. `--origin llm` lands it as `proposed`. |\n| `interrogate \u003Cid> --honesty \"…\"` | Attach an honesty condition (what must be true). Also `--hard-question`, `--risk`, `--contradicts`, `--blocking`. |\n| `confirm \u003Cid> [\u003Cid>…]` \u002F `reject \u003Cid> [\u003Cid>…]` | Resolve one or more claims (`c*`) \u002F honesty conditions (`h*`) in one **transactional** call. **User-only decision.** Also `confirm --from-review \u003Cfile>` to apply an edited review artifact. |\n| `review` | List every **proposed** (unconfirmed) claim + honesty condition with ids (`--json` too); writes a non-authoritative artifact to `.devague\u002Freviews\u002F\u003Cslug>.md`. Un-gated; never mutates. |\n| `question \"\u003Ctext>\"` | Record \u002F list \u002F `--resolve` a pending user decision as durable working state in `.devague\u002Fquestions\u002F\u003Cslug>.md`. |\n| `park \"\u003Ctext>\" --kind \u003Ckind>` | Move uncertainty into first-class open vagueness instead of forcing an answer. |\n| `converge` | Evaluate the gate; list remaining gaps. |\n| `export` | Write the buildable spec to `docs\u002Fspecs\u002F` — only after `converge` passes. |\n| `status` | Read-only: where the frame stands + the recommended next move (`--json` too). |\n| `show` \u002F `list` | Render a frame \u002F list frames (`--json` for raw state). |\n| `learn` \u002F `explain \u003Cmove>` | Teach the method \u002F explain one move. |\n\nClaim kinds: `announcement`, `audience`, `after_state`, `before_state`,\n`why_it_matters`, `boundary`, `success_signal`, `open_question`, `non_goal`,\n`requirement`, `assumption`, `decision`. Vagueness kinds: `unknown_nonblocking`,\n`unknown_blocking`, `out_of_scope`, `follow_up`.\n\nThese are exactly the kinds the **shipped CLI enforces** (`CLAIM_KINDS` \u002F\n`VAGUENESS_KINDS` in `devague\u002Fframe.py`) — the skill documents the surface as\nbuilt, so every command here passes the CLI's `choices=` validation. `requirement`\nis spec-affecting (needs a confirmed honesty condition); `non_goal` \u002F `decision`\nare descriptive; an unconfirmed `assumption` is a convergence *warning*, not a\nblocker. The formal entity model, the `(state × origin)` vocabulary, and the\nper-move input\u002Foutput\u002Ftransition\u002Ferror contract are documented in\n[`docs\u002Fspec-contract.md`](..\u002F..\u002F..\u002Fdocs\u002Fspec-contract.md) (issue\n[#5](https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fdevague\u002Fissues\u002F5)); for the authoritative\nlive shape of any move, run it with `--json` (or `devague learn --json` \u002F\n`devague explain \u003Cmove>`).\n\n### `status` — the next-move verb\n\n`status` is a first-class, **read-only** CLI verb (`devague status`, internalised\nfrom this wrapper in 0.11.0 — issue\n[#30](https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fdevague\u002Fissues\u002F30)). It composes\n`list` + `converge` and prints where the current frame stands, the remaining\ngaps, and the recommended next move; it never mutates state (the\n`drafting`↔`converged` transition stays in `converge`). It reports\n`ready_for_spec`, lists the `blockers` and `warnings`, and shows\n`required_next_moves[0]` as the recommended move. Pass `--json` for the same\nfields as a structured payload (`{frame, total, ready_for_spec, blockers,\nwarnings, parked_items, required_next_moves}`).\n\n```text\nframe: my-feature    (1 frame total)\nconvergence: NOT passed — 2 gap(s):\n  - missing a 'boundary' \u002F non-goal claim\n  - claim c2 has no confirmed honesty condition\n\nrecommended next move (first gap):\n  devague capture --kind boundary \"\u003Ctext>\"\n```\n\nRun it whenever you're unsure what to do next.\n\n## Hard rules (do not violate)\n\nThese are the point of the method — convergence must mean something.\n\n- **LLM proposals stay proposed.** A claim captured with `--origin llm`, and any\n  honesty condition you (the agent) propose, lands as `proposed`. **Never\n  `confirm` your own proposal.** Confirmation is a user-only decision — surface\n  the proposal and let the user confirm or reject it. Proposed content must not\n  silently become an authoritative requirement.\n- **Honesty conditions route through the user.** Propose them freely with\n  `interrogate --honesty`; the user owns whether they hold.\n- **Converge, don't vibe.** `export` is gated on `converge` passing. Never claim\n  the frame is ready on a hunch — run `converge` (or `status`) and resolve every\n  listed gap. The gate requires confirmed `announcement` \u002F `audience` \u002F\n  `after_state`, a `before_state` or `why_it_matters`, a `boundary`, a\n  `success_signal`, a confirmed honesty condition on every spec-affecting claim,\n  and no unresolved blocking vagueness or hard question.\n- **Park real unknowns; don't paper over them.** If something is genuinely\n  unknown, `park` it (blocking or non-blocking) rather than fabricating an\n  answer. Blocking vagueness holds back convergence — by design.\n\n## Output contract\n\nResults go to **stdout**, diagnostics and errors to **stderr** — a strict split\nyou can rely on when parsing. Pass `--json` to any move for a structured payload\non the same stream. Exit code `0` on success, non-zero on user error (with a\n`hint:` line). Frames live under `.devague\u002F` in the current directory.\n\n## Worked example\n\nA short end-to-end session (the kind you'd run to spec a feature like\n[devague#5](https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fdevague\u002Fissues\u002F5)):\n\n```bash\nd() { bash .claude\u002Fskills\u002Fthink\u002Fscripts\u002Fthink.sh \"$@\"; }\n\nd new \"Devague ships a documented spec contract\"\nd capture --kind audience \"devague + the assisting LLM\"\nd capture --kind after_state \"a vague idea becomes a buildable, pressure-tested spec\"\nd capture --kind why_it_matters \"specs converge on evidence, not vibes\"\nd capture --kind boundary \"not a full PRD generator; no fixed wizard\"\nd capture --kind success_signal \"a frame exports only after the gate passes\"\n\n# Pressure-test a claim, then let the USER confirm the condition:\nd interrogate c1 --honesty \"the contract round-trips: save -> load -> identical frame\"\n# ...user reviews and runs: d confirm h1\n\n# Park a genuine unknown instead of guessing:\nd park \"exact JSON schema versioning policy\" --kind unknown_nonblocking\n\nd status        # what's left + the next move\nd converge      # gate; resolve any listed gaps\nd export        # writes docs\u002Fspecs\u002F\u003Cslug>.md once converged\n```\n\nThe exported spec-md is a buildable artifact.\n\n## After export — commit, then hand off\n\nOnce `export` writes the spec **and the user has reviewed it**, close the\nidea→spec leg cleanly before moving on:\n\n1. **Commit the spec.** Commit the exported `docs\u002Fspecs\u002F\u003Cslug>.md` (along with\n   the `.devague\u002F\u003Cslug>.json` frame state and any review artifact under\n   `docs\u002Freviews\u002F`) so the converged frame is durable in history, not just on\n   disk. Use a focused message, e.g. `git commit -m \"spec: \u003Cslug> (devague\n   \u002Fthink)\"`. The frame and the spec are the evidence trail for every confirmed\n   claim — keep them together. (Per the repo's standing convention this normally\n   becomes a branch + PR via the `cicd` skill; commit-only is fine when the user\n   asks for it.)\n2. **Hand off to `\u002Fspec-to-plan`.** The forward leg is the sibling skill:\n   `devague plan new --frame \u003Cslug>` seeds a plan from the converged frame and\n   works it forward into a buildable plan (it can equally feed\n   `superpowers:writing-plans` or a normal implementation PR).\n\nDon't pause for a \"what next?\" menu after a reviewed export — the standing flow\nis **commit, then `\u002Fspec-to-plan`**.\n\n## Provenance\n\nThis is a **first-party** skill — its origin is `agentculture\u002Fdevague`, where the\ndevague agent maintains it alongside the tool it operates (dogfooding). It is the\n*inverse* of the other skills under `.claude\u002Fskills\u002F`, which devague vendors\n**from** steward. When this skill is ready, steward pulls it **from** devague and\nbroadcasts it to the rest of the AgentCulture mesh. The `cite, don't import`\npolicy still holds: downstream repos copy it, they don't symlink or depend on it.\nSee `docs\u002Fskill-sources.md`.\n",{"name":5,"type":24,"description":7},"command","main","a2056e6191a4e106faf886773efed2f44ff120b2",".claude\u002Fskills\u002Fthink",0,"https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fculture-nodes","https:\u002F\u002Fgithub.com\u002Fagentculture","https:\u002F\u002Fagentculture.org","Agent first OSS software","2026-09-29 08:50:58",{"source":8,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add agentculture\u002Fculture-nodes --skill think",{"tool":40,"command":41},"bunx","bunx skills add agentculture\u002Fculture-nodes --skill think",{"tool":43,"command":44},"pnpm","pnpm dlx skills add agentculture\u002Fculture-nodes --skill think","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fculture-nodes\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fthink\u002FSKILL.md",true,[48],{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"scripts\u002Fthink.sh","SCRIPT","脚本",4111,"https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fculture-nodes\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fthink\u002Fscripts\u002Fthink.sh",[55,62,67,72,78,85],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":19},"01M7AB6FGWR0P3SPYFX2W801D5","sample","Fixture skill proving the .qwen\u002Fskills leg carries at least one skill.","https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fculture-nodes\u002Fblob\u002Fmain\u002Fadapters\u002Fqwen\u002Ftests\u002Ffixtures\u002Fconfig-repo-no-culture-yaml\u002F.qwen\u002Fskills\u002Fsample\u002FSKILL.md",[],[],{"skillNo":63,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":19},"01M7AB6E9PFCDZE193CGPM0K35","https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fculture-nodes\u002Fblob\u002Fmain\u002Fadapters\u002Fqwen\u002Ftests\u002Ffixtures\u002Fconfig-repo-no-agents-md\u002F.qwen\u002Fskills\u002Fsample\u002FSKILL.md",[],[],{"skillNo":68,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":19},"01M7AB6CJ3G1ZZJD63NEZZK1JH","https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fculture-nodes\u002Fblob\u002Fmain\u002Fadapters\u002Fqwen\u002Ftests\u002Ffixtures\u002Fconfig-repo-complete\u002F.qwen\u002Fskills\u002Fsample\u002FSKILL.md",[],[],{"skillNo":73,"name":5,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":19},"01M7AB64WWKV9H2J7JDV5KXGPA","Think a vague feature idea into a buildable spec by working backwards (the idea→spec leg; drives the `devague` CLI). Start from the announcement (\"pretend it shipped\"), capture and classify claims, interrogate them with honesty conditions and hard questions, park open vagueness as a first-class object, and export a spec only once the frame *converges*. Use when the user says \"think this through\", \"spec this\", \"work backwards\", \"turn this idea into a spec\", \"announcement frame\", or \"devague\", or when a feature request is too vague to build yet. Explore scope first when the idea touches an existing codebase — the sibling `scope` skill is the optional opening leg ahead of `think`. Once a spec exports, hand off to the sibling `spec-to-plan` skill to turn it into a plan. Authored and maintained in agentculture\u002Fdevague (origin = devague); guildmaster pulls this skill from here and broadcasts it to the AgentCulture mesh — it is NOT vendored from guildmaster like the other skills here.","https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fculture-nodes\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Fthink\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":19},"01M7AB5X0FTZ081AFH3BTGQKVA","summarize-delivery","Close the loop after an `assign-to-workforce` run by turning what actually happened into an accountability artifact — planned versus actual delivery, mid-work decisions, plan drift, evidence-backed delivery claims, and remaining work. The plan the user confirmed is the contract; this skill records where execution obeyed it, where it changed, and what is genuinely safe to claim as delivered. Runs on complete, partial, AND failed runs — failure is reported faithfully, never smoothed over. Use when the user says \"summarize delivery\", \"delivery summary\", \"wrap up\", \"close the loop\", \"what did we actually ship\", or \"plan versus actual\", or after `assign-to-workforce` merges (or fails to merge) a plan's waves. Authored and maintained in agentculture\u002Fdevague (origin = devague); guildmaster pulls this skill from here and broadcasts it to the AgentCulture mesh — it is NOT vendored from guildmaster like the inbound skills here.","https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fculture-nodes\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Fsummarize-delivery\u002FSKILL.md",[],[],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":19},"01M7AB5NA0QY9NN076N24NJPJQ","spec-to-plan","Turn a converged devague spec into a buildable plan by working forwards (the spec→plan leg; drives the `devague plan` CLI group). Seed a plan from a converged frame, add tasks that collectively cover every coverage target (the frame's confirmed claims + honesty conditions), give each task acceptance criteria and an honest dependency order, park genuine unknowns as first-class risks, and export a plan only once it *converges*. Use when the user says \"spec to plan\", \"stp\", \"turn this spec into a plan\", \"plan this spec\", \"make a build plan\", or after the `think` skill exports a spec. Authored and maintained in agentculture\u002Fdevague (origin = devague); guildmaster pulls this skill from here and broadcasts it to the AgentCulture mesh — it is NOT vendored from guildmaster like the other skills here.","https:\u002F\u002Fgithub.com\u002Fagentculture\u002Fculture-nodes\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Fspec-to-plan\u002FSKILL.md",[],[]]