[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DRT6DPV0H8KDF3J0XYJ051":3,"skill-same:01M6DRT6DPV0H8KDF3J0XYJ051":70},{"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":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M6DRT6DPV0H8KDF3J0XYJ051","develop-feature",null,"Autonomously implement a complete feature from request to merge-ready — documentation phase, wave-based TDD implementation, then all quality gates, without stopping for human input.","Koroqe\u002Fclaude-code-sdlc","Koroqe","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F24411116?v=4","01M6DRMM7GVYYXKEW474YPDVNG","Aleksei Korobeinikov","01M6DRMMBZ82MW04MVQ3Q9M5N5",53,"MIT","https:\u002F\u002Fgithub.com\u002FKoroqe\u002Fclaude-code-sdlc\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002Fbad-verifier-tools\u002Fskills\u002Fdevelop-feature\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"develop feature","feature","develop","write","complete","input","gates","human","implementation","ready","edit","implement","read","grep","quality","Bash","quality gates","documentation","merge","tdd","2026-11-10 10:12:30",false,"---\ndescription: Autonomously implement a complete feature from request to merge-ready — documentation phase, wave-based TDD implementation, then all quality gates, without stopping for human input.\nargument-hint: \"\u003Cfeature description>\"\narguments: [feature]\nallowed-tools: Read, Glob, Grep, Edit, Write, Bash, Agent, TodoWrite\n---\n\n# Command: Develop Feature\n\nAutonomously implement a complete feature from request to merge-ready. This command chains the full agency SDLC pipeline without stopping for human input.\n\n## Arguments\n\nThe feature to build is `$feature` (also available as `$ARGUMENTS`). When it is empty, ask the user what to build before starting Phase 1 — do NOT infer a feature from surrounding context.\n\n**Literal-token flag rule:** a documented flag is active ONLY if its literal token appears in `$ARGUMENTS`. Never infer that a flag was passed because the documentation describes it.\n\n## Preflight: Memory Layer Check\n\nRun this FIRST, before Phase 1. It takes one Read.\n\n1. Check that `~\u002F.claude\u002Fclaude.md` exists and contains the marker heading `## Autonomous Development Workflow (MANDATORY)`.\n2. If the file is missing, or the marker is absent, print this warning verbatim and **continue anyway**:\n\n   > WARNING: the SDLC memory layer is not installed. `~\u002F.claude\u002Fclaude.md` is missing or does not\n   > contain the pipeline instruction, so the autonomous workflow is not active for unprefixed\n   > requests in this session. Installing the plugin alone is not sufficient — run\n   > `bash install.sh` from the claude-code-sdlc repo to install the memory layer.\n\n3. **Never block on this check.** A missing memory layer degrades autonomy; it does not invalidate this run. Warn once and proceed to Phase 1.\n\nKnown limitation: this preflight only fires when this skill is invoked explicitly. An unprefixed natural-language feature request bypasses it entirely, because nothing runs. That gap closes when the SessionStart hook lands (roadmap F2a).\n\n## Pipeline\n\n*(The workflows named below — `\u002Fbootstrap-feature`, `\u002Fimplement-slice`, `\u002Fmerge-ready` — are plugin skills, resolvable in full as `\u002Fclaude-code-sdlc:\u003Cname>`. The bare form used throughout this file works automatically as long as no other installed plugin defines a skill by the same name.)*\n\n### Phase 1: Bootstrap (Documentation)\nFollow the `\u002Fbootstrap-feature` workflow for the requested feature.\nThis produces: PRD section, use-case document, architecture review, QA test cases, implementation plan, feature branch, and initialized scratchpad.\n\n### Phase 1.5: Implementation Review\nAfter the plan is created by the Tech Lead:\n- **Architect** reviews slices flagged for architectural complexity — validates technical design for each\n- **Security Engineer** (security-auditor) reviews slices touching auth, financial data, or external APIs — flags security requirements\n- Incorporate review feedback into slice implementation notes in the scratchpad\n\n### Phase 2: Implement All Slices (Wave-Aware)\n\nRead `.claude\u002Fscratchpad.md` to identify the current wave and its pending slices. Process waves in order (Wave 1 → Wave 2 → ... → Wave N).\n\n**Tracer gate (checked before dispatching Wave 1, and enforced at every subsequent wave transition — applies identically to the single-slice direct path and the multi-slice parallel path below):**\n\nCheck whether the plan contains a slice marked `**Tracer:** yes`.\n\n- **If it does:** no slice other than the tracer may be dispatched until the tracer slice's `Verify:` condition has been run and has passed. The wave-advance condition is explicit: Wave N+1 dispatches only after every Wave N slice's `Verify:` has been run and has passed — this holds for both dispatch paths below. A slice merely being committed, or an implementation attempt merely having been made, is NOT sufficient to advance the wave; only a passing `Verify:` result is. This is deliberate: \"committed\" or \"attempted\" is not sufficient — that gap is exactly how a broken tracer could slip through the single-slice direct path (which has no parallel-subagent result-collection step to catch it).\n- **Tracer failure halts the phase:** if the tracer slice's `Verify:` condition still fails after the existing 3-retry budget (`error-recovery.md`) is exhausted, halt Phase 2 before dispatching any expansion-slice work — single or parallel — and escalate through the existing Rule 3 \u002F Rule 4 error-recovery path. Do NOT proceed to Slice 2 (or any later slice) with the tracer left broken.\n- **If the plan carries no `**Tracer:** yes` marker anywhere** (a legacy, pre-F3 plan), print this line verbatim before proceeding to any slice:\n\n  `tracer gate inactive — no **Tracer:** yes marker found; treating as pre-F3 plan.`\n\n  Then proceed exactly as before this feature shipped — a plan with no tracer marker executes in its existing slice order with no tracer-gate applied. This notice makes the fallback visible rather than silent; it MUST always accompany the fallback, never be omitted, even though the run itself is unaffected.\n\n**Single-slice wave (or no `Wave:` fields in plan):**\nFollow the `\u002Fimplement-slice` workflow directly — identical to current sequential behavior. Invoke `\u002Fimplement-slice` WITH the `no-changelog` suppression flag so that even this direct, no-wave-context path does NOT write a CHANGELOG.md entry — the single feature changelog entry is owned by merge-ready (see Phase 3).\n\n**Multi-slice wave (2+ pending slices in same wave):**\n\n**Dispatch-time write-surface disjointness check — run this immediately before issuing any `Agent` tool call for a wave with 2+ pending slices:**\n- Re-derive that wave's slices' `Files:` lists fresh from the plan file — re-read the plan file now; do NOT reuse `Files:` lists recalled from memory or from an earlier read in this session, since the plan may have been replanned or hand-edited since then.\n- Check pairwise disjointness across those lists, always case-insensitively — do not attempt to detect whether the underlying filesystem is case-sensitive. A false conflict merely triggers the replan recovery path below, which is safe; a missed conflict corrupts a wave, which is not. Treat any `Files:` entry ending in a trailing slash as owning that entire directory subtree, so a path-prefix relationship (e.g. `src\u002Fhandlers\u002F` vs. `src\u002Fhandlers\u002Fwidgets.ts`) counts as a conflict too, not only an exact string match.\n- **A single-slice wave requires no check** — there is nothing to conflict with. This step applies only when the wave has 2 or more pending slices; skip it entirely for single-slice waves.\n\n**On conflict — refusal and recovery:**\n- If any file path appears in 2 or more of the about-to-be-dispatched slices' `Files:` lists, refuse to dispatch this wave: issue ZERO `Agent` tool calls for it, and report the specific conflicting file path together with the slice numbers that both declare it.\n- Recover immediately — this must never dead-end an unattended run. Treat it as a Rule 3 auto-resolve first: re-invoke `planner`, flagging the conflicting slice pair and the shared path, so it can rewave the offending slice into a later wave or split file ownership so the lists no longer overlap. Re-derive the (now-revised) wave's `Files:` lists fresh from the plan and re-check disjointness before dispatching.\n- Only escalate to Rule 4 if `planner` cannot resolve the conflict automatically after the Rule 3 attempt.\n\nOnce the wave's slices are confirmed disjoint (or the wave has only 1 slice), spawn parallel subagents — one Agent tool call per slice in a single message:\n\n```\nFor each pending slice in the current wave, spawn an Agent with this prompt:\n\n\"You are implementing Slice [N]: [description].\nFollow the \u002Fimplement-slice TDD workflow for this slice ONLY.\n\nSlice specification:\n- Wave: [W] (sibling slices: [list])\n- Files: [files]\n- Changes: [changes]\n- Verify: [verify command]\n- Done when: [condition]\n\nCRITICAL RULES FOR PARALLEL EXECUTION:\n1. Do NOT write to .claude\u002Fscratchpad.md — the orchestrator handles scratchpad updates\n2. Do NOT auto-continue to the next slice — return to the orchestrator after committing\n3. Chain git commands: git add \u003Cfiles> && git commit -m '...' (single command to prevent staging conflicts)\n4. Read the project's CLAUDE.md at .claude\u002FCLAUDE.md for conventions\n5. This slice runs under a `no-changelog` suppression flag — do NOT write a CHANGELOG.md entry. The single feature changelog entry is owned by merge-ready (Phase 3)\n\nReport your result: PASS (with commit hash) or FAIL (with error details).\"\n```\n\nAfter all subagents complete:\n1. **Collect results** — which slices succeeded (commit hashes), which failed (errors)\n2. **Update scratchpad** — mark succeeded slices DONE with commit hashes, mark failed slices with FAILED and reason. Update `## Status:` to reflect current wave progress\n3. **Handle failures** (per error-recovery parallel wave rules):\n   - All succeeded → proceed to next wave\n   - Some failed → keep successful sibling commits (independent files), report failures, ask user: retry \u002F continue \u002F abort\n   - All failed → report as blocker, stop\n\n**Continue until all waves show complete in the scratchpad.**\n\n**Backward compatibility:** When slices have no `Wave:` fields, treat each slice as its own wave — sequential execution, identical to current behavior.\n\n### Phase 2.5: Code Cleanup (if 4+ slices were implemented)\nDelegate to `refactor-cleaner` agent to review the accumulated changes:\n- **Step 0**: Remove dead code, unused imports, and debug logs first — verify typecheck passes on the clean baseline before proceeding\n- Consolidate duplicated patterns across slices\n- Improve type safety where obvious\nThen commit cleanup as a single `chore(core): clean up \u003Cfeature> implementation` commit.\n\n### Phase 3: Quality Gates\nFollow the `\u002Fmerge-ready` workflow to run all quality gates.\n- **Changelog**: the single `CHANGELOG.md` entry for the feature is written here by merge-ready — NOT by any individual slice. Each slice ran under the `no-changelog` suppression flag, so merge-ready is the sole owner of the feature changelog entry.\n- If any gate FAILS: the main agent reads the gate's output and fixes the issues directly, then reruns only the failed gate(s) — **except** that any fix which produced a commit invalidates the earlier Gate 2 and Gate 3 passes, so those two re-run over the new commits. This is what stops Gate 6's `--gaps` replan loop from committing code that no reviewer ever inspects.\n- Repeat until all gates pass OR 3 fix attempts exhausted per gate\n- Output final MERGE READY \u002F NOT MERGE READY verdict\n\n## Rules\n\n- NEVER stop to ask the user unless truly stuck (3 retries exhausted on a critical blocker)\n- NEVER skip PRD, Use Cases, or QA documentation steps\n- ALWAYS update scratchpad after each slice (enforced by scratchpad rule)\n- ALWAYS commit each slice atomically (1 slice = 1 commit)\n- NEVER add \"Co-Authored-By\" or AI attribution\n","# Command: Develop Feature\n\nAutonomously implement a complete feature from request to merge-ready. This command chains the full agency SDLC pipeline without stopping for human input.\n\n## Arguments\n\nThe feature to build is `$feature` (also available as `$ARGUMENTS`). When it is empty, ask the user what to build before starting Phase 1 — do NOT infer a feature from surrounding context.\n\n**Literal-token flag rule:** a documented flag is active ONLY if its literal token appears in `$ARGUMENTS`. Never infer that a flag was passed because the documentation describes it.\n\n## Preflight: Memory Layer Check\n\nRun this FIRST, before Phase 1. It takes one Read.\n\n1. Check that `~\u002F.claude\u002Fclaude.md` exists and contains the marker heading `## Autonomous Development Workflow (MANDATORY)`.\n2. If the file is missing, or the marker is absent, print this warning verbatim and **continue anyway**:\n\n   > WARNING: the SDLC memory layer is not installed. `~\u002F.claude\u002Fclaude.md` is missing or does not\n   > contain the pipeline instruction, so the autonomous workflow is not active for unprefixed\n   > requests in this session. Installing the plugin alone is not sufficient — run\n   > `bash install.sh` from the claude-code-sdlc repo to install the memory layer.\n\n3. **Never block on this check.** A missing memory layer degrades autonomy; it does not invalidate this run. Warn once and proceed to Phase 1.\n\nKnown limitation: this preflight only fires when this skill is invoked explicitly. An unprefixed natural-language feature request bypasses it entirely, because nothing runs. That gap closes when the SessionStart hook lands (roadmap F2a).\n\n## Pipeline\n\n*(The workflows named below — `\u002Fbootstrap-feature`, `\u002Fimplement-slice`, `\u002Fmerge-ready` — are plugin skills, resolvable in full as `\u002Fclaude-code-sdlc:\u003Cname>`. The bare form used throughout this file works automatically as long as no other installed plugin defines a skill by the same name.)*\n\n### Phase 1: Bootstrap (Documentation)\nFollow the `\u002Fbootstrap-feature` workflow for the requested feature.\nThis produces: PRD section, use-case document, architecture review, QA test cases, implementation plan, feature branch, and initialized scratchpad.\n\n### Phase 1.5: Implementation Review\nAfter the plan is created by the Tech Lead:\n- **Architect** reviews slices flagged for architectural complexity — validates technical design for each\n- **Security Engineer** (security-auditor) reviews slices touching auth, financial data, or external APIs — flags security requirements\n- Incorporate review feedback into slice implementation notes in the scratchpad\n\n### Phase 2: Implement All Slices (Wave-Aware)\n\nRead `.claude\u002Fscratchpad.md` to identify the current wave and its pending slices. Process waves in order (Wave 1 → Wave 2 → ... → Wave N).\n\n**Tracer gate (checked before dispatching Wave 1, and enforced at every subsequent wave transition — applies identically to the single-slice direct path and the multi-slice parallel path below):**\n\nCheck whether the plan contains a slice marked `**Tracer:** yes`.\n\n- **If it does:** no slice other than the tracer may be dispatched until the tracer slice's `Verify:` condition has been run and has passed. The wave-advance condition is explicit: Wave N+1 dispatches only after every Wave N slice's `Verify:` has been run and has passed — this holds for both dispatch paths below. A slice merely being committed, or an implementation attempt merely having been made, is NOT sufficient to advance the wave; only a passing `Verify:` result is. This is deliberate: \"committed\" or \"attempted\" is not sufficient — that gap is exactly how a broken tracer could slip through the single-slice direct path (which has no parallel-subagent result-collection step to catch it).\n- **Tracer failure halts the phase:** if the tracer slice's `Verify:` condition still fails after the existing 3-retry budget (`error-recovery.md`) is exhausted, halt Phase 2 before dispatching any expansion-slice work — single or parallel — and escalate through the existing Rule 3 \u002F Rule 4 error-recovery path. Do NOT proceed to Slice 2 (or any later slice) with the tracer left broken.\n- **If the plan carries no `**Tracer:** yes` marker anywhere** (a legacy, pre-F3 plan), print this line verbatim before proceeding to any slice:\n\n  `tracer gate inactive — no **Tracer:** yes marker found; treating as pre-F3 plan.`\n\n  Then proceed exactly as before this feature shipped — a plan with no tracer marker executes in its existing slice order with no tracer-gate applied. This notice makes the fallback visible rather than silent; it MUST always accompany the fallback, never be omitted, even though the run itself is unaffected.\n\n**Single-slice wave (or no `Wave:` fields in plan):**\nFollow the `\u002Fimplement-slice` workflow directly — identical to current sequential behavior. Invoke `\u002Fimplement-slice` WITH the `no-changelog` suppression flag so that even this direct, no-wave-context path does NOT write a CHANGELOG.md entry — the single feature changelog entry is owned by merge-ready (see Phase 3).\n\n**Multi-slice wave (2+ pending slices in same wave):**\n\n**Dispatch-time write-surface disjointness check — run this immediately before issuing any `Agent` tool call for a wave with 2+ pending slices:**\n- Re-derive that wave's slices' `Files:` lists fresh from the plan file — re-read the plan file now; do NOT reuse `Files:` lists recalled from memory or from an earlier read in this session, since the plan may have been replanned or hand-edited since then.\n- Check pairwise disjointness across those lists, always case-insensitively — do not attempt to detect whether the underlying filesystem is case-sensitive. A false conflict merely triggers the replan recovery path below, which is safe; a missed conflict corrupts a wave, which is not. Treat any `Files:` entry ending in a trailing slash as owning that entire directory subtree, so a path-prefix relationship (e.g. `src\u002Fhandlers\u002F` vs. `src\u002Fhandlers\u002Fwidgets.ts`) counts as a conflict too, not only an exact string match.\n- **A single-slice wave requires no check** — there is nothing to conflict with. This step applies only when the wave has 2 or more pending slices; skip it entirely for single-slice waves.\n\n**On conflict — refusal and recovery:**\n- If any file path appears in 2 or more of the about-to-be-dispatched slices' `Files:` lists, refuse to dispatch this wave: issue ZERO `Agent` tool calls for it, and report the specific conflicting file path together with the slice numbers that both declare it.\n- Recover immediately — this must never dead-end an unattended run. Treat it as a Rule 3 auto-resolve first: re-invoke `planner`, flagging the conflicting slice pair and the shared path, so it can rewave the offending slice into a later wave or split file ownership so the lists no longer overlap. Re-derive the (now-revised) wave's `Files:` lists fresh from the plan and re-check disjointness before dispatching.\n- Only escalate to Rule 4 if `planner` cannot resolve the conflict automatically after the Rule 3 attempt.\n\nOnce the wave's slices are confirmed disjoint (or the wave has only 1 slice), spawn parallel subagents — one Agent tool call per slice in a single message:\n\n```\nFor each pending slice in the current wave, spawn an Agent with this prompt:\n\n\"You are implementing Slice [N]: [description].\nFollow the \u002Fimplement-slice TDD workflow for this slice ONLY.\n\nSlice specification:\n- Wave: [W] (sibling slices: [list])\n- Files: [files]\n- Changes: [changes]\n- Verify: [verify command]\n- Done when: [condition]\n\nCRITICAL RULES FOR PARALLEL EXECUTION:\n1. Do NOT write to .claude\u002Fscratchpad.md — the orchestrator handles scratchpad updates\n2. Do NOT auto-continue to the next slice — return to the orchestrator after committing\n3. Chain git commands: git add \u003Cfiles> && git commit -m '...' (single command to prevent staging conflicts)\n4. Read the project's CLAUDE.md at .claude\u002FCLAUDE.md for conventions\n5. This slice runs under a `no-changelog` suppression flag — do NOT write a CHANGELOG.md entry. The single feature changelog entry is owned by merge-ready (Phase 3)\n\nReport your result: PASS (with commit hash) or FAIL (with error details).\"\n```\n\nAfter all subagents complete:\n1. **Collect results** — which slices succeeded (commit hashes), which failed (errors)\n2. **Update scratchpad** — mark succeeded slices DONE with commit hashes, mark failed slices with FAILED and reason. Update `## Status:` to reflect current wave progress\n3. **Handle failures** (per error-recovery parallel wave rules):\n   - All succeeded → proceed to next wave\n   - Some failed → keep successful sibling commits (independent files), report failures, ask user: retry \u002F continue \u002F abort\n   - All failed → report as blocker, stop\n\n**Continue until all waves show complete in the scratchpad.**\n\n**Backward compatibility:** When slices have no `Wave:` fields, treat each slice as its own wave — sequential execution, identical to current behavior.\n\n### Phase 2.5: Code Cleanup (if 4+ slices were implemented)\nDelegate to `refactor-cleaner` agent to review the accumulated changes:\n- **Step 0**: Remove dead code, unused imports, and debug logs first — verify typecheck passes on the clean baseline before proceeding\n- Consolidate duplicated patterns across slices\n- Improve type safety where obvious\nThen commit cleanup as a single `chore(core): clean up \u003Cfeature> implementation` commit.\n\n### Phase 3: Quality Gates\nFollow the `\u002Fmerge-ready` workflow to run all quality gates.\n- **Changelog**: the single `CHANGELOG.md` entry for the feature is written here by merge-ready — NOT by any individual slice. Each slice ran under the `no-changelog` suppression flag, so merge-ready is the sole owner of the feature changelog entry.\n- If any gate FAILS: the main agent reads the gate's output and fixes the issues directly, then reruns only the failed gate(s) — **except** that any fix which produced a commit invalidates the earlier Gate 2 and Gate 3 passes, so those two re-run over the new commits. This is what stops Gate 6's `--gaps` replan loop from committing code that no reviewer ever inspects.\n- Repeat until all gates pass OR 3 fix attempts exhausted per gate\n- Output final MERGE READY \u002F NOT MERGE READY verdict\n\n## Rules\n\n- NEVER stop to ask the user unless truly stuck (3 retries exhausted on a critical blocker)\n- NEVER skip PRD, Use Cases, or QA documentation steps\n- ALWAYS update scratchpad after each slice (enforced by scratchpad rule)\n- ALWAYS commit each slice atomically (1 slice = 1 commit)\n- NEVER add \"Co-Authored-By\" or AI attribution\n",{"arguments":44,"description":7,"allowed-tools":45,"argument-hint":46},[20],"Read, Glob, Grep, Edit, Write, Bash, Agent, TodoWrite","\u003Cfeature description>","main","262994376445c2281eca0784698159bb6e1bf1a3","tests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002Fbad-verifier-tools\u002Fskills\u002Fdevelop-feature",3,"https:\u002F\u002Fgithub.com\u002FKoroqe\u002Fclaude-code-sdlc","https:\u002F\u002Fgithub.com\u002FKoroqe","https:\u002F\u002Fcone.red\u002Fteam\u002Faleksei-korobeinikov","Co-founder of GetDeal.ai and CONE RED. Author of claude-code-sdlc and OPOS.","2026-10-23 20:51:28",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add Koroqe\u002Fclaude-code-sdlc --skill develop-feature",{"tool":62,"command":63},"bunx","bunx skills add Koroqe\u002Fclaude-code-sdlc --skill develop-feature",{"tool":65,"command":66},"pnpm","pnpm dlx skills add Koroqe\u002Fclaude-code-sdlc --skill develop-feature","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKoroqe\u002Fclaude-code-sdlc\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002Fbad-verifier-tools\u002Fskills\u002Fdevelop-feature\u002FSKILL.md",true,[],[71,107,122,127,148,157],{"skillNo":72,"name":73,"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":93,"publishedAt":39},"01M6DRTXKTXP8HYDW2G274KAKK","merge-ready","Run all quality gates before merge — git hygiene, documentation completeness, code review, security audit, build, E2E, goal-backward verification, doc accuracy and UI\u002FUX — then write the changelog entry.","https:\u002F\u002Fgithub.com\u002FKoroqe\u002Fclaude-code-sdlc\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002Fbad-verifier-verdicts\u002Fskills\u002Fmerge-ready\u002FSKILL.md",[77,82,85,90],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":83,"categoryName":84,"taxonomyType":80,"taxonomyTypeDesc":81},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":91,"categoryName":92,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000032","设计师",[37,28,94,95,96,36,97,98,99,100,101,102,103,104,105,34,31,22,29,106],"merge ready","code review","review","run","code","git","verification","changelog","ux","audit","doc","security audit","goal",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":114,"publishedAt":39},"01M6DRTT500DJJ8XNQX16037VM","implement-slice","Implement the next smallest slice from the current plan using TDD — tests first, then code, then verification, then an atomic commit. Reads the plan from the scratchpad.","https:\u002F\u002Fgithub.com\u002FKoroqe\u002Fclaude-code-sdlc\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002Fbad-verifier-verdicts\u002Fskills\u002Fimplement-slice\u002FSKILL.md",[113],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},[30,115,38,116,98,100,101,117,34,118,32,31,22,29,119,120,121],"implement slice","commit","first","plan","next","atomic commit","tests",{"skillNo":123,"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":124,"categories":125,"keywords":126,"publishedAt":39},"01M6DRTPT1Y4NPEQM56VA4PP0Q","https:\u002F\u002Fgithub.com\u002FKoroqe\u002Fclaude-code-sdlc\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002Fbad-verifier-verdicts\u002Fskills\u002Fdevelop-feature\u002FSKILL.md",[],[21,20,19,30,38,37,36,35,34,33,32,31,22,29,28,27,26,25,24,23],{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":137,"publishedAt":39},"01M6DRTHJG9KBEG33WNJBRBAFH","bootstrap-feature","Run the documentation phase of the SDLC pipeline for a feature — PRD, use cases, architecture review, QA test cases, implementation plan, feature branch and scratchpad. Produces no code.","https:\u002F\u002Fgithub.com\u002FKoroqe\u002Fclaude-code-sdlc\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002Fbad-verifier-verdicts\u002Fskills\u002Fbootstrap-feature\u002FSKILL.md",[133,134],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},{"categoryNo":135,"categoryName":136,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000031","产品经理",[138,139,20,96,140,36,141,97,98,142,143,144,34,118,145,31,22,29,146,147],"bootstrap","bootstrap feature","architecture","architecture review","qa","pipeline","qa test","branch","use","no code",{"skillNo":149,"name":73,"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":150,"categories":151,"keywords":156,"publishedAt":39},"01M6DRTDYFS4S3T8MQE4PZHZ7X","https:\u002F\u002Fgithub.com\u002FKoroqe\u002Fclaude-code-sdlc\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002Fbad-verifier-tools\u002Fskills\u002Fmerge-ready\u002FSKILL.md",[152,153,154,155],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},{"categoryNo":83,"categoryName":84,"taxonomyType":80,"taxonomyTypeDesc":81},{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},{"categoryNo":91,"categoryName":92,"taxonomyType":88,"taxonomyTypeDesc":89},[37,28,94,95,96,36,97,98,99,100,101,102,103,104,105,34,31,22,29,106],{"skillNo":158,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":162,"publishedAt":39},"01M6DRTAW68GF6JGNDEWTF6B4V","https:\u002F\u002Fgithub.com\u002FKoroqe\u002Fclaude-code-sdlc\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002Fbad-verifier-tools\u002Fskills\u002Fimplement-slice\u002FSKILL.md",[161],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},[30,115,38,116,98,100,101,117,34,118,32,31,22,29,119,120,121]]