[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CQVX5MJQWPEEWDMRC21ZEJ":3,"skill-same:01M6CQVX5MJQWPEEWDMRC21ZEJ":72},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":6,"updatedAt":52,"install":53,"resources":65},"01M6CQVX5MJQWPEEWDMRC21ZEJ","setup",null,"Bootstrap the gener8v pipeline in a project: create .gener8v\u002F, copy the conventions, generate pipeline-state.yaml, and add the pipeline directives to CLAUDE.md. Use when the user says 'set up gener8v' or 'initialize the pipeline', when a project has no .gener8v\u002Fprd.md, or after a plugin upgrade to refresh the conventions. Not for deciding what to do next on a project already on the pipeline (orchestrate).","gener8v\u002Fgener8v.claude-skills","gener8v","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F262388633?v=4","01M6CQT9VAG2MX3NN1CBMGR2T8","GENER8V","01M6CQT9YZXXYFF41ZYFW774DQ",3,"MIT","https:\u002F\u002Fgithub.com\u002Fgener8v\u002Fgener8v.claude-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsetup\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"SET","upgrade","next","do","up","use","refresh","initialize","python3","Bash","pipeline","prd","yaml","orchestrate","state","generate","create","bootstrap","plugin","2026-11-10 10:12:30",false,"---\nname: setup\ndescription: \"Bootstrap the gener8v pipeline in a project: create .gener8v\u002F, copy the conventions, generate pipeline-state.yaml, and add the pipeline directives to CLAUDE.md. Use when the user says 'set up gener8v' or 'initialize the pipeline', when a project has no .gener8v\u002Fprd.md, or after a plugin upgrade to refresh the conventions. Not for deciding what to do next on a project already on the pipeline (orchestrate).\"\ndisable-model-invocation: true\nallowed-tools: Bash(python3 ${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fgener8v-state.py *)\n---\n\n# Setup Skill\n\n## Purpose\n\nBootstrap the gener8v pipeline in a project. This skill creates the `.gener8v\u002F` directory structure, installs the shared conventions, generates the initial pipeline state file, and patches the project's `CLAUDE.md` with a short set of pipeline directives. After setup, the pipeline's state is in front of every session — mechanically, through the plugin's `SessionStart` hook when the plugin is installed, or through `\u002Forchestrate` when it is not — and code changes flow through Delivery on tickets.\n\n## When to Use\n\nUse this skill when:\n- Starting a new project that will use the gener8v pipeline\n- Onboarding an existing project to the pipeline for the first time\n- The project has no `.gener8v\u002Fprd.md` and no `## gener8v Pipeline` section in `CLAUDE.md`\n- The user says \"set up gener8v\" or \"initialize the pipeline\"\n\nDo **not** use this skill when:\n- `.gener8v\u002Fprd.md` already exists and the question is what to do next — use the Orchestrate skill. Re-running Setup there after a plugin upgrade is still right: it refreshes only `CONVENTIONS.md`, the `CLAUDE.md` section and missing directories. (A `.gener8v\u002F` directory holding only `sweeps\u002F` or `flows\u002F` is *not* an onboarded project; Setup is the right call and keeps those standalone artifacts.)\n- The user wants to start building immediately — run Planning (greenfield) or Brownfield (existing code) directly; each creates what it needs.\n\n## Input\n\n**Source:** The project root directory\n**Read from:**\n- `CLAUDE.md` in the project root (if it exists)\n- `.gener8v\u002F` (to see what already exists)\n- `${CLAUDE_SKILL_DIR}\u002Freferences\u002Fconventions.md` — resolves under both the plugin and a copied install\n- The plugin's `scripts\u002Fgener8v-state.py` (plugin install only)\n\n**Expects:** A project directory. May or may not have existing code, documentation, or a `CLAUDE.md`.\n\n## Output\n\n**Produces:**\n1. `.gener8v\u002F` directory structure (9 subdirectories, including `changes\u002F` — the home of every change set)\n2. `.gener8v\u002FCONVENTIONS.md` — the shared rules every skill reads (copied unchanged from this skill's `references\u002Fconventions.md`)\n3. `.gener8v\u002Fpipeline-state.yaml` — generated by `scripts\u002Fgener8v-state.py`, or written by hand in the fallback format below when the script is unavailable\n4. `CLAUDE.md` with a `## gener8v Pipeline` section (created, appended, or replaced in place)\n\n**Not produced by Setup:** `.gener8v\u002Fruns.jsonl`. The plugin's hooks append one line to it at each session start, artifact write and state regeneration; the model never writes it, and `scripts\u002Fgener8v-state.py metrics` reads it for session counts. Setup does not create it — under a copied install there are no hooks, so the file never appears.\n\n## Process\n\n1. **Check Existing State**: Look for `.gener8v\u002Fprd.md` and for a `## gener8v Pipeline` section in `CLAUDE.md`. If `prd.md` exists the project is already on the pipeline: refresh only what Setup owns — steps 2, 3 and 5 (missing directories, `CONVENTIONS.md`, the `CLAUDE.md` section) — leave every artifact alone, then recommend `\u002Forchestrate`. Note any standalone artifacts already present (`sweeps\u002F`, `flows\u002F`, `reviews\u002F*-assessment.md`) — they are kept, never moved. A legacy layout (top-level ticket, delivery and per-ticket review directories) is likewise left where it is; Orchestrate recommends the one-time move to `changes\u002Finitial\u002F`, and Setup never scaffolds those legacy directories.\n\n2. **Create Directory Structure**: Create any of these that do not exist (existing directories and files are left untouched):\n   ```\n   .gener8v\u002F\n     specifications\u002F   # living: one per capability area, amended in place\n     constraints\u002F\n     dependencies\u002F\n     technical-design\u002F\n     changes\u002F          # one change set per initiative: changes\u002F\u003Cchange-slug>\u002F{change.md,tickets,delivery,reviews}\n     reviews\u002F          # system-level assessments only (OWASP, OWASP LLM, architecture)\n     audits\u002F\n     flows\u002F            # Flow Mapping\n     sweeps\u002F           # Defect Sweep\n   ```\n   `changes\u002F` is created empty. Planning creates each `changes\u002F\u003Cchange-slug>\u002F` when it opens a change, and the per-change tickets, delivery records and reviews live inside it — there is no top-level home for them.\n\n3. **Install Conventions**: Copy `${CLAUDE_SKILL_DIR}\u002Freferences\u002Fconventions.md` to `.gener8v\u002FCONVENTIONS.md`. If the file already exists, replace it — it is owned by Setup and versioned with the plugin.\n\n4. **Generate Pipeline State**: Run the deterministic generator when it is available:\n   ```bash\n   python3 ${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fgener8v-state.py state\n   ```\n   Under a copied install the script is not present and the command fails with No such file; write the fallback file instead:\n   ```yaml\n   # gener8v pipeline state — GENERATED; do not edit by hand.\n   # Regenerate with scripts\u002Fgener8v-state.py (plugin) or \u002Forchestrate.\n   generated: \"[ISO 8601 timestamp]\"\n   schema_version: 4\n   stage: not_started\n   prd_title: null\n   system_context: false\n   has_source: [true or false — whether the root holds source code]\n   active_changes: []\n   approvals_pending: 0\n   capability_areas: {}\n   changes: {}\n   cross_cutting: {}\n   next_steps:\n     - skill: planning\n       target: user prompt\n       reason: \"No PRD yet — or run brownfield for an existing codebase\"\n   warnings: []\n   totals: {}\n   ```\n\n5. **Patch CLAUDE.md**: If `CLAUDE.md` does not exist, create it containing only the directives below. If it exists and has no `## gener8v Pipeline` heading, append the directives. If it already has that heading, replace everything from the heading up to the next `## ` heading (or end of file) with the current directives — never duplicate the section, never ask. Leave every other line of the file exactly as it was.\n\n6. **Present Summary**: Say what was created, replaced, and left alone, then recommend the entry point:\n   - **Greenfield** (no source code yet): `\u002Fplanning`\n   - **Brownfield** (existing code): `\u002Fbrownfield`\n   - Mention the invocation form that applies: `\u002Fplanning` under a copied install, `\u002Fgener8v:planning` under the plugin.\n\n## CLAUDE.md Directives\n\nWrite this section (verbatim, apart from nothing) into the project's `CLAUDE.md`:\n\n````markdown\n## gener8v Pipeline\n\nThis project uses the [gener8v pipeline](https:\u002F\u002Fgithub.com\u002Fgener8v\u002Fgener8v.claude-skills). Skills are `\u002F\u003Cskill>` under a copied install or `\u002Fgener8v:\u003Cskill>` under the plugin; this file uses the short form. The rules every skill follows are in `.gener8v\u002FCONVENTIONS.md`.\n\n- **Where things stand.** `.gener8v\u002Fpipeline-state.yaml` is generated from the artifacts — never hand-edit it. With the plugin installed a SessionStart hook puts the current state and next steps in front of every session; without it, run `\u002Forchestrate` at session start and after any pipeline skill.\n- **Who writes code.** Delivery writes source, on a ticket, after an approved plan. Brownfield adds `@spec` annotations only. Reviews change code only during interactive resolution, with approval, and record it in the delivery record. Anything else in source is a trivial fix (typo, formatting, config) or it becomes a ticket.\n- **Traceability.** Every function, class or handler that implements a requirement carries `@spec \u003CPREFIX>-REQ-XXX` on the line above it. Preserve and update annotations when code moves. `grep -rn \"@spec\"` audits coverage.\n- **Artifacts and IDs.** Everything the pipeline produces lives in `.gener8v\u002F` at the root you work from — a single repository or a workspace holding several, with every code path root-relative — and is written by the skill that owns it. Requirement, constraint, decision and ticket IDs are append-only — never renumber; mark removed items Withdrawn.\n- **Changes.** Work is organised in changes under `.gener8v\u002Fchanges\u002F\u003Cslug>\u002F`; living specifications are amended, never regenerated.\n- **Scale.** 1–2 capability areas: Planning → Specification → Ticket Breakdown → Delivery → Reviews. 3–5: add Constraints, Dependencies, Technical Design. 6+: parallel specification passes and sub-pipelines. Depth follows correctness risk (data integrity, tenant isolation, security), not just area count.\n````\n\n## Principles\n\n### Non-Destructive\nNever change `CLAUDE.md` content outside the `## gener8v Pipeline` section, never delete existing `.gener8v\u002F` files. The one thing Setup owns and may overwrite is that section and `CONVENTIONS.md`.\n\n### Deterministic Idempotence\nRunning Setup twice yields the same files. The section is replaced in place rather than appended, the state file is regenerated rather than re-initialised, directories are created only if missing. There is nothing to ask the user.\n\n### Prose Is Not Enforcement\nThe directives tell the model what the pipeline expects. What is actually enforced comes from the plugin's hooks (`hooks\u002Fhooks.json`): state injected at session start, `pipeline-state.yaml` protected from hand edits, the state regenerated after every artifact write, a reminder when source is edited with no delivery in progress, and `runs.jsonl` appended at each session start, artifact write and state regeneration. Setup names both so a reader knows which is which.\n\n### Immediate Value\nAfter setup, the user knows exactly what to run next, in the invocation form that applies to their install.\n\n## Example\n\n### Input\n\nA project with an existing `CLAUDE.md` containing coding conventions and a stale `## gener8v Pipeline` section from an earlier version.\n\n### Output\n\n```\nSetup complete:\n\n  Created:\n  - .gener8v\u002Fchanges\u002F, .gener8v\u002Fflows\u002F, .gener8v\u002Fsweeps\u002F (6 other directories already existed)\n  - .gener8v\u002FCONVENTIONS.md\n  - .gener8v\u002Fpipeline-state.yaml (generated: stage not_started)\n\n  Replaced:\n  - CLAUDE.md ## gener8v Pipeline section (everything else untouched)\n\n  Next:\n  - This project has source code and no .gener8v\u002Fprd.md. Run \u002Fgener8v:brownfield to map it into the pipeline.\n```\n\n---\n\n## Troubleshooting\n\n- **The state command fails with No such file.** A copied install — the skill was invoked as `\u002Fsetup`, not `\u002Fgener8v:setup`. `${CLAUDE_PLUGIN_ROOT}` is substituted only for plugin skills, so the path collapses to `\u002Fscripts\u002Fgener8v-state.py`. Write the fallback file from step 4; from then on Orchestrate keeps the state file by hand.\n- **The state command fails with `python3: command not found` under the plugin.** Install Python 3.8 or later and re-run step 4. The plugin's SessionStart and PostToolUse hooks call `python3` as well and exit silently without it, so nothing regenerates the state until it is installed.\n- **Setup refreshed only the conventions and recommended Orchestrate.** `.gener8v\u002Fprd.md` exists: the project is already on the pipeline, so step 1 limits the run to what Setup owns. That is the intended outcome — it is how a plugin upgrade reaches `CONVENTIONS.md` — not an error.\n- **Local edits to the `## gener8v Pipeline` section are gone after a re-run.** Step 5 replaces the section wholesale, by design. Recover the lines from git and keep them under a heading of their own, outside the section.\n- **Both `\u002Fsetup` and `\u002Fgener8v:setup` are listed.** A copied install lingers beside the plugin; the copy shadows the plugin's skills and never updates. `scripts\u002Fcheck-install.sh` in the plugin lists each lingering directory — move them aside (README: Upgrading from a copied install).\n\n## Integration with Other Skills\n\n**Upstream:**\n- None — this is the first skill to run in any project\n\n**Downstream:**\n- **Planning** \u002F **Brownfield**: the entry points Setup recommends\n- **Orchestrate**: reads the state file Setup generates\n- **Every skill**: reads `.gener8v\u002FCONVENTIONS.md`\n\n## Revisions\n\n- Re-run Setup after upgrading the plugin: it refreshes `CONVENTIONS.md`, the `CLAUDE.md` section and any newly scaffolded directories without touching artifacts\n- If the directives are customised locally, keep the customisation outside the `## gener8v Pipeline` section — Setup replaces that section wholesale\n\n## Notes\n\n- `.gener8v\u002F` should be committed so pipeline artifacts are shared across the team. `pipeline-state.yaml` is derived; committing it is optional — the hook regenerates it on every session start\n- `runs.jsonl` is derived too. The hooks append it (session start, artifact writes, state regeneration); no skill and no person writes it, and `scripts\u002Fgener8v-state.py metrics` reads it for session counts. Committing it is optional; without the plugin's hooks it never exists\n- Under the plugin install, `${CLAUDE_PLUGIN_ROOT}` resolves to the plugin directory and `scripts\u002Fgener8v-state.py` is available; under a copied install only `skills\u002F` exist and Orchestrate maintains the state file by hand\n- `scripts\u002Fcheck-install.sh` (plugin) reports drift between the repository and a copied `~\u002F.claude\u002Fskills\u002F` install\n","# Setup Skill\n\n## Purpose\n\nBootstrap the gener8v pipeline in a project. This skill creates the `.gener8v\u002F` directory structure, installs the shared conventions, generates the initial pipeline state file, and patches the project's `CLAUDE.md` with a short set of pipeline directives. After setup, the pipeline's state is in front of every session — mechanically, through the plugin's `SessionStart` hook when the plugin is installed, or through `\u002Forchestrate` when it is not — and code changes flow through Delivery on tickets.\n\n## When to Use\n\nUse this skill when:\n- Starting a new project that will use the gener8v pipeline\n- Onboarding an existing project to the pipeline for the first time\n- The project has no `.gener8v\u002Fprd.md` and no `## gener8v Pipeline` section in `CLAUDE.md`\n- The user says \"set up gener8v\" or \"initialize the pipeline\"\n\nDo **not** use this skill when:\n- `.gener8v\u002Fprd.md` already exists and the question is what to do next — use the Orchestrate skill. Re-running Setup there after a plugin upgrade is still right: it refreshes only `CONVENTIONS.md`, the `CLAUDE.md` section and missing directories. (A `.gener8v\u002F` directory holding only `sweeps\u002F` or `flows\u002F` is *not* an onboarded project; Setup is the right call and keeps those standalone artifacts.)\n- The user wants to start building immediately — run Planning (greenfield) or Brownfield (existing code) directly; each creates what it needs.\n\n## Input\n\n**Source:** The project root directory\n**Read from:**\n- `CLAUDE.md` in the project root (if it exists)\n- `.gener8v\u002F` (to see what already exists)\n- `${CLAUDE_SKILL_DIR}\u002Freferences\u002Fconventions.md` — resolves under both the plugin and a copied install\n- The plugin's `scripts\u002Fgener8v-state.py` (plugin install only)\n\n**Expects:** A project directory. May or may not have existing code, documentation, or a `CLAUDE.md`.\n\n## Output\n\n**Produces:**\n1. `.gener8v\u002F` directory structure (9 subdirectories, including `changes\u002F` — the home of every change set)\n2. `.gener8v\u002FCONVENTIONS.md` — the shared rules every skill reads (copied unchanged from this skill's `references\u002Fconventions.md`)\n3. `.gener8v\u002Fpipeline-state.yaml` — generated by `scripts\u002Fgener8v-state.py`, or written by hand in the fallback format below when the script is unavailable\n4. `CLAUDE.md` with a `## gener8v Pipeline` section (created, appended, or replaced in place)\n\n**Not produced by Setup:** `.gener8v\u002Fruns.jsonl`. The plugin's hooks append one line to it at each session start, artifact write and state regeneration; the model never writes it, and `scripts\u002Fgener8v-state.py metrics` reads it for session counts. Setup does not create it — under a copied install there are no hooks, so the file never appears.\n\n## Process\n\n1. **Check Existing State**: Look for `.gener8v\u002Fprd.md` and for a `## gener8v Pipeline` section in `CLAUDE.md`. If `prd.md` exists the project is already on the pipeline: refresh only what Setup owns — steps 2, 3 and 5 (missing directories, `CONVENTIONS.md`, the `CLAUDE.md` section) — leave every artifact alone, then recommend `\u002Forchestrate`. Note any standalone artifacts already present (`sweeps\u002F`, `flows\u002F`, `reviews\u002F*-assessment.md`) — they are kept, never moved. A legacy layout (top-level ticket, delivery and per-ticket review directories) is likewise left where it is; Orchestrate recommends the one-time move to `changes\u002Finitial\u002F`, and Setup never scaffolds those legacy directories.\n\n2. **Create Directory Structure**: Create any of these that do not exist (existing directories and files are left untouched):\n   ```\n   .gener8v\u002F\n     specifications\u002F   # living: one per capability area, amended in place\n     constraints\u002F\n     dependencies\u002F\n     technical-design\u002F\n     changes\u002F          # one change set per initiative: changes\u002F\u003Cchange-slug>\u002F{change.md,tickets,delivery,reviews}\n     reviews\u002F          # system-level assessments only (OWASP, OWASP LLM, architecture)\n     audits\u002F\n     flows\u002F            # Flow Mapping\n     sweeps\u002F           # Defect Sweep\n   ```\n   `changes\u002F` is created empty. Planning creates each `changes\u002F\u003Cchange-slug>\u002F` when it opens a change, and the per-change tickets, delivery records and reviews live inside it — there is no top-level home for them.\n\n3. **Install Conventions**: Copy `${CLAUDE_SKILL_DIR}\u002Freferences\u002Fconventions.md` to `.gener8v\u002FCONVENTIONS.md`. If the file already exists, replace it — it is owned by Setup and versioned with the plugin.\n\n4. **Generate Pipeline State**: Run the deterministic generator when it is available:\n   ```bash\n   python3 ${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fgener8v-state.py state\n   ```\n   Under a copied install the script is not present and the command fails with No such file; write the fallback file instead:\n   ```yaml\n   # gener8v pipeline state — GENERATED; do not edit by hand.\n   # Regenerate with scripts\u002Fgener8v-state.py (plugin) or \u002Forchestrate.\n   generated: \"[ISO 8601 timestamp]\"\n   schema_version: 4\n   stage: not_started\n   prd_title: null\n   system_context: false\n   has_source: [true or false — whether the root holds source code]\n   active_changes: []\n   approvals_pending: 0\n   capability_areas: {}\n   changes: {}\n   cross_cutting: {}\n   next_steps:\n     - skill: planning\n       target: user prompt\n       reason: \"No PRD yet — or run brownfield for an existing codebase\"\n   warnings: []\n   totals: {}\n   ```\n\n5. **Patch CLAUDE.md**: If `CLAUDE.md` does not exist, create it containing only the directives below. If it exists and has no `## gener8v Pipeline` heading, append the directives. If it already has that heading, replace everything from the heading up to the next `## ` heading (or end of file) with the current directives — never duplicate the section, never ask. Leave every other line of the file exactly as it was.\n\n6. **Present Summary**: Say what was created, replaced, and left alone, then recommend the entry point:\n   - **Greenfield** (no source code yet): `\u002Fplanning`\n   - **Brownfield** (existing code): `\u002Fbrownfield`\n   - Mention the invocation form that applies: `\u002Fplanning` under a copied install, `\u002Fgener8v:planning` under the plugin.\n\n## CLAUDE.md Directives\n\nWrite this section (verbatim, apart from nothing) into the project's `CLAUDE.md`:\n\n````markdown\n## gener8v Pipeline\n\nThis project uses the [gener8v pipeline](https:\u002F\u002Fgithub.com\u002Fgener8v\u002Fgener8v.claude-skills). Skills are `\u002F\u003Cskill>` under a copied install or `\u002Fgener8v:\u003Cskill>` under the plugin; this file uses the short form. The rules every skill follows are in `.gener8v\u002FCONVENTIONS.md`.\n\n- **Where things stand.** `.gener8v\u002Fpipeline-state.yaml` is generated from the artifacts — never hand-edit it. With the plugin installed a SessionStart hook puts the current state and next steps in front of every session; without it, run `\u002Forchestrate` at session start and after any pipeline skill.\n- **Who writes code.** Delivery writes source, on a ticket, after an approved plan. Brownfield adds `@spec` annotations only. Reviews change code only during interactive resolution, with approval, and record it in the delivery record. Anything else in source is a trivial fix (typo, formatting, config) or it becomes a ticket.\n- **Traceability.** Every function, class or handler that implements a requirement carries `@spec \u003CPREFIX>-REQ-XXX` on the line above it. Preserve and update annotations when code moves. `grep -rn \"@spec\"` audits coverage.\n- **Artifacts and IDs.** Everything the pipeline produces lives in `.gener8v\u002F` at the root you work from — a single repository or a workspace holding several, with every code path root-relative — and is written by the skill that owns it. Requirement, constraint, decision and ticket IDs are append-only — never renumber; mark removed items Withdrawn.\n- **Changes.** Work is organised in changes under `.gener8v\u002Fchanges\u002F\u003Cslug>\u002F`; living specifications are amended, never regenerated.\n- **Scale.** 1–2 capability areas: Planning → Specification → Ticket Breakdown → Delivery → Reviews. 3–5: add Constraints, Dependencies, Technical Design. 6+: parallel specification passes and sub-pipelines. Depth follows correctness risk (data integrity, tenant isolation, security), not just area count.\n````\n\n## Principles\n\n### Non-Destructive\nNever change `CLAUDE.md` content outside the `## gener8v Pipeline` section, never delete existing `.gener8v\u002F` files. The one thing Setup owns and may overwrite is that section and `CONVENTIONS.md`.\n\n### Deterministic Idempotence\nRunning Setup twice yields the same files. The section is replaced in place rather than appended, the state file is regenerated rather than re-initialised, directories are created only if missing. There is nothing to ask the user.\n\n### Prose Is Not Enforcement\nThe directives tell the model what the pipeline expects. What is actually enforced comes from the plugin's hooks (`hooks\u002Fhooks.json`): state injected at session start, `pipeline-state.yaml` protected from hand edits, the state regenerated after every artifact write, a reminder when source is edited with no delivery in progress, and `runs.jsonl` appended at each session start, artifact write and state regeneration. Setup names both so a reader knows which is which.\n\n### Immediate Value\nAfter setup, the user knows exactly what to run next, in the invocation form that applies to their install.\n\n## Example\n\n### Input\n\nA project with an existing `CLAUDE.md` containing coding conventions and a stale `## gener8v Pipeline` section from an earlier version.\n\n### Output\n\n```\nSetup complete:\n\n  Created:\n  - .gener8v\u002Fchanges\u002F, .gener8v\u002Fflows\u002F, .gener8v\u002Fsweeps\u002F (6 other directories already existed)\n  - .gener8v\u002FCONVENTIONS.md\n  - .gener8v\u002Fpipeline-state.yaml (generated: stage not_started)\n\n  Replaced:\n  - CLAUDE.md ## gener8v Pipeline section (everything else untouched)\n\n  Next:\n  - This project has source code and no .gener8v\u002Fprd.md. Run \u002Fgener8v:brownfield to map it into the pipeline.\n```\n\n---\n\n## Troubleshooting\n\n- **The state command fails with No such file.** A copied install — the skill was invoked as `\u002Fsetup`, not `\u002Fgener8v:setup`. `${CLAUDE_PLUGIN_ROOT}` is substituted only for plugin skills, so the path collapses to `\u002Fscripts\u002Fgener8v-state.py`. Write the fallback file from step 4; from then on Orchestrate keeps the state file by hand.\n- **The state command fails with `python3: command not found` under the plugin.** Install Python 3.8 or later and re-run step 4. The plugin's SessionStart and PostToolUse hooks call `python3` as well and exit silently without it, so nothing regenerates the state until it is installed.\n- **Setup refreshed only the conventions and recommended Orchestrate.** `.gener8v\u002Fprd.md` exists: the project is already on the pipeline, so step 1 limits the run to what Setup owns. That is the intended outcome — it is how a plugin upgrade reaches `CONVENTIONS.md` — not an error.\n- **Local edits to the `## gener8v Pipeline` section are gone after a re-run.** Step 5 replaces the section wholesale, by design. Recover the lines from git and keep them under a heading of their own, outside the section.\n- **Both `\u002Fsetup` and `\u002Fgener8v:setup` are listed.** A copied install lingers beside the plugin; the copy shadows the plugin's skills and never updates. `scripts\u002Fcheck-install.sh` in the plugin lists each lingering directory — move them aside (README: Upgrading from a copied install).\n\n## Integration with Other Skills\n\n**Upstream:**\n- None — this is the first skill to run in any project\n\n**Downstream:**\n- **Planning** \u002F **Brownfield**: the entry points Setup recommends\n- **Orchestrate**: reads the state file Setup generates\n- **Every skill**: reads `.gener8v\u002FCONVENTIONS.md`\n\n## Revisions\n\n- Re-run Setup after upgrading the plugin: it refreshes `CONVENTIONS.md`, the `CLAUDE.md` section and any newly scaffolded directories without touching artifacts\n- If the directives are customised locally, keep the customisation outside the `## gener8v Pipeline` section — Setup replaces that section wholesale\n\n## Notes\n\n- `.gener8v\u002F` should be committed so pipeline artifacts are shared across the team. `pipeline-state.yaml` is derived; committing it is optional — the hook regenerates it on every session start\n- `runs.jsonl` is derived too. The hooks append it (session start, artifact writes, state regeneration); no skill and no person writes it, and `scripts\u002Fgener8v-state.py metrics` reads it for session counts. Committing it is optional; without the plugin's hooks it never exists\n- Under the plugin install, `${CLAUDE_PLUGIN_ROOT}` resolves to the plugin directory and `scripts\u002Fgener8v-state.py` is available; under a copied install only `skills\u002F` exist and Orchestrate maintains the state file by hand\n- `scripts\u002Fcheck-install.sh` (plugin) reports drift between the repository and a copied `~\u002F.claude\u002Fskills\u002F` install\n",{"name":5,"description":7,"allowed-tools":43,"disable-model-invocation":44},"Bash(python3 ${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fgener8v-state.py *)",true,"main","26f591c601503d32ccba54a6ddbcba75a00910c0","skills\u002Fsetup",0,"https:\u002F\u002Fgithub.com\u002Fgener8v\u002Fgener8v.claude-skills","https:\u002F\u002Fgithub.com\u002Fgener8v","gener8v.com","2026-10-22 20:18:28",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":44},[55,58,61],{"tool":56,"command":57},"npx","npx skills add gener8v\u002Fgener8v.claude-skills --skill setup",{"tool":59,"command":60},"bunx","bunx skills add gener8v\u002Fgener8v.claude-skills --skill setup",{"tool":62,"command":63},"pnpm","pnpm dlx skills add gener8v\u002Fgener8v.claude-skills --skill setup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgener8v\u002Fgener8v.claude-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsetup\u002FSKILL.md",[66],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"references\u002Fconventions.md","REFERENCE","参考文档",18676,"https:\u002F\u002Fgithub.com\u002Fgener8v\u002Fgener8v.claude-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsetup\u002Freferences\u002Fconventions.md",[73,97,127,142,169,190],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":38},"01M6CQW5KKZVDJTN9VREPRFT06","ticket-breakdown","Decompose one capability area's requirements for one change into implementable tickets with Priority, Value, acceptance criteria, Prior Art, Output contracts, Known Hazards, dependency ordering and relative sizing: one TICKET-NNN.md per ticket plus backlog.md, in the change's tickets directory. Use when a specification is approved and the team needs work items, such as 'break this spec into tickets' or 'create the backlog for search'. Not for implementing a ticket (delivery) or ordering whole capability areas (dependencies).","https:\u002F\u002Fgithub.com\u002Fgener8v\u002Fgener8v.claude-skills\u002Fblob\u002Fmain\u002Fskills\u002Fticket-breakdown\u002FSKILL.md",[],[80,81,82,83,35,84,85,86,87,24,88,89,90,91,92,93,94,95,96],"ticket breakdown","directory","spec","change","acceptance","search","team","work","dependency","decompose","Art","specification","contracts","acceptance criteria","backlog","dependencies","delivery",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":113,"publishedAt":38},"01M6CQW2XD2Q1JD7KFX944EH4W","technical-design","Translate specifications, constraints and dependencies into architecture decisions (AD-XXX), component boundaries, data model and interface contracts under .gener8v\u002Ftechnical-design\u002F. Use when technology or architecture choices must be settled before tickets are written, such as 'which datastore should we use' or 'design the components for search'. Skip it when the approach is obvious and uncontested. Not for judging an architecture that has already shipped (architecture-review).","https:\u002F\u002Fgithub.com\u002Fgener8v\u002Fgener8v.claude-skills\u002Fblob\u002Fmain\u002Fskills\u002Ftechnical-design\u002FSKILL.md",[103,108],{"categoryNo":104,"categoryName":105,"taxonomyType":106,"taxonomyTypeDesc":107},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[114,115,116,117,118,119,120,121,85,122,123,124,125,126,24,92,95],"design","technical","technical design","review","translate","components","component","architecture","data","constraints","system","model","decisions",{"skillNo":128,"name":91,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":135,"publishedAt":38},"01M6CQVZY5JC08BEMTSSST1464","Expand one capability area from .gener8v\u002Fprd.md into a functional specification with atomic, testable [PREFIX]-REQ-XXX requirements, behaviors, edge cases and open questions under .gener8v\u002Fspecifications\u002F. Use when a PRD capability area needs elaboration before constraints, technical design or tickets, or a change brief still marks an area as pending specification, such as 'spec out the search area' or 'write the requirements for billing'. Not for the whole product (planning) or work items (ticket-breakdown).","https:\u002F\u002Fgithub.com\u002Fgener8v\u002Fgener8v.claude-skills\u002Fblob\u002Fmain\u002Fskills\u002Fspecification\u002FSKILL.md",[132],{"categoryNo":133,"categoryName":134,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000031","产品经理",[91,114,82,83,136,137,85,138,139,30,123,140,87,115,141,24],"planning","product","edge","brief","open","write",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":151,"publishedAt":38},"01M6CQVT9PZZ64TC456Y1FWF55","security-review","OWASP-informed, code-level security review of delivered code: injection, authentication and authorization, data exposure, configuration, dependencies, cryptography and logging, with attack scenarios for Medium+ findings and compliance constraints (CC-XXX) treated as Critical. Use after a delivery, especially one touching input handling, auth, sensitive data or external integrations, such as 'security review TICKET-007' or 'check what this delivery shipped for injection or auth bypass before we merge'. Not for a whole-codebase OWASP posture assessment (owasp-top10-review) or prompt-injection risk in LLM features (owasp-llm-top10-review).","https:\u002F\u002Fgithub.com\u002Fgener8v\u002Fgener8v.claude-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsecurity-review\u002FSKILL.md",[148],{"categoryNo":149,"categoryName":150,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000037","律师与法务",[117,152,153,83,154,155,156,157,158,159,160,161,162,163,164,165,166,24,167,168],"security","security review","auth","merge","assessment","code","authentication","compliance","owasp-llm-top10","prompt-injection","owasp-llm","risk","integrations","prompt","check","files","007",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":175,"publishedAt":38},"01M6CQVPP78PF4SB9H5WAD3837","rot-watch","Detect decay in code that is being actively written: measure six signals (packaging drift, dependency direction, comment language, growth slopes, tests, the detectable subset of SOLID) against a recorded baseline and report only what moved, at .gener8v\u002Frot\u002F. Use once code has been delivered and again every few deliveries, before a release, or when asked 'is the codebase getting worse' or 'has this module drifted'. The first run records the baseline and reports nothing. Not for one delivery's quality (quality-review), defects (defect-sweep) or whether the architecture was right (architecture-review).","https:\u002F\u002Fgithub.com\u002Fgener8v\u002Fgener8v.claude-skills\u002Fblob\u002Fmain\u002Fskills\u002Frot-watch\u002FSKILL.md",[],[176,117,177,121,178,157,179,180,181,182,183,184,185,186,24,187,88,188,189,96],"rot watch","solid","run","report","release","first","baseline","sweep","quality","growth","packaging","only","reports","drift",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":196,"publishedAt":38},"01M6CQVKYZXHVW9DJHWHF08TKK","quality-review","Review delivered code for engineering quality (organization, readability, error handling, tests, consistency with the codebase's patterns) independent of the specification. Use after a delivery in parallel with code-review and security-review, or on any files the user points at, such as 'is this module maintainable' or 'review this file for readability and tests'. Not for checking a delivery against its ticket (code-review), vulnerabilities (security-review) or decay across many deliveries (rot-watch).","https:\u002F\u002Fgithub.com\u002Fgener8v\u002Fgener8v.claude-skills\u002Fblob\u002Fmain\u002Fskills\u002Fquality-review\u002FSKILL.md",[],[117,184,197,152,198,83,157,199,200,201,202,144,203,204,24,167,91,205,206,96],"quality review","vulnerabilities","error handling","code-review","file","engineering","parallel","user","patterns","organization"]