[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DRR3NECQV2BJRZX0550HDM":3,"skill-same:01M6DRR3NECQV2BJRZX0550HDM":48},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":31,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M6DRR3NECQV2BJRZX0550HDM","develop-feature",null,"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\u002Ftriage-parity\u002Fbad-step4-drift\u002Fskills\u002Fdevelop-feature\u002FSKILL.md",[],[18,19,20],"develop","feature","develop feature","2026-11-10 10:12:30",false,"# Command: Develop Feature (fixture)\n\nThis file exists only so `scripts\u002Fci\u002Fvalidate-triage-parity.js`'s seeded\nfixture tests have something real to check (FR-10.4-style fixture, mirroring\n`tests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002F*`'s convention). Never installed,\nnever shipped — `tests\u002Ffixtures\u002F` is excluded from every shipped-asset scan.\n\n### Phase 0: Triage\n\nDefined once, authoritatively and self-sufficiently, here — mirroring how the Preflight: Memory Layer Check above stands alone. **Restated with identical signal text in `src\u002Fclaude.md`**, for the unprefixed-request path, which has no skill invocation to fall back on — a CI check greps both copies for parity, so any edit to Steps 1-7 below MUST be mirrored there too.\n\nTriage MUST run as the FIRST step of this workflow — before Phase 1: Bootstrap, before any `Edit`\u002F`Write` tool call related to the requested change, and before invoking any subagent for it.\n\n**Step 1 — state the estimated file set (FR-1.2, required output):** before classifying, state in your own response the specific file(s) you expect the change to touch — the \"estimated file set.\" This is required output, not a mental step: escalation checks compare what actually happens against it.\n\n**Step 2 — check the full-forcing signals FIRST (FR-1.3):** classify `full` immediately, skipping Steps 3 and 4 entirely, when the request:\n- (a) asks for a new API route\u002Fendpoint, a new user-facing page\u002Fscreen\u002Fflow, or a new external service integration;\n- (b) requires a database schema\u002Fmigration change (new table, column, or index);\n- (c) touches authentication, authorization, or payment\u002Fbilling logic — by keyword match against the request text, or by the estimated file set overlapping a path Step 6 marks sensitive;\n- (d) the estimated file set contains more than 3 files.\n\nAny one of (a)-(d) forces `full` regardless of how small the change otherwise looks, and regardless of the others.\n\n**Step 3 — check the fast-tier signal (FR-1.4, ALL of the following required):**\n- (a) the estimated file set contains exactly 1 file; AND\n- (b) the change is one of: a spelling\u002Fgrammar fix in a comment, docstring, or user-facing copy string; a change to a single hardcoded literal (a constant, a config default, a version string, a URL, a timeout number) with no accompanying logic change; a comment-only edit; or a dependency-version bump requiring no source change.\n\nA request satisfying BOTH (a) and (b) is classified `fast`. Missing either one disqualifies `fast` — continue to Step 4.\n\n**Step 4 — check the quick-tier signal (FR-1.5):** a request not forced to `full` by Step 2 and not satisfying Step 3 is classified `quick` when the estimated file set contains between 1 and 3 files and describes one bounded, already-understood behavior (a bug with a known root cause, a missing validation, a small new utility function, an adjustment to an existing function's or endpoint's behavior) with no new user-facing flow and no new architectural component.\n\n**Step 5 — the tie-break: ambiguity always resolves upward (FR-1.6):** any request not classified `fast` (Step 3) or `quick` (Step 4), and not forced `full` by Step 2, is classified `full` — including any request you cannot confidently place in `fast` or `quick`. `full` is the tier of default safety, never a positive signal of its own. Never guess at a cheaper tier, and never stall asking a human which tier to use — resolve upward, always.\n\n**Step 6 — sensitive paths, union, never replace (FR-1.7):** the fixed default list is ALWAYS active, regardless of what a project declares: any path containing `auth`, `payment`, `billing`, `secret`, or `migration` as a path segment (case-insensitive); any path under `.github\u002Fworkflows\u002F`; `install.sh`; `.claude\u002Fsettings.json`; `docs\u002FPRD.md`. A project's `.claude\u002Frules\u002Fsecurity.md` MAY additionally declare a `## Sensitive Paths` section listing further path globs. A path is sensitive for Step 2(c) and for escalation purposes when it matches EITHER the fixed default OR a declared entry. **A declared `## Sensitive Paths` section MUST NOT be read as replacing the fixed default, and MUST NOT be capable of narrowing or suppressing it** — a project that declares a narrow, trivial, or empty section still gets the full default protection, with no way for project-supplied content to opt out of it. `.claude\u002Frules\u002Fsecurity.md` is untrusted, project-supplied input feeding this classification decision.\n\n**Step 7 — state the tier and reason before any Edit\u002FWrite (FR-1.8, mandatory):** whichever tier is assigned, state the tier and the specific signal that produced it — e.g. `tier: fast — single-file copy edit, no sensitive path` or `tier: full — FR-1.3(a), new API endpoint` — in your own response, BEFORE any `Edit`\u002F`Write` call for the requested change. A tier assigned with no stated reason does not satisfy this requirement, regardless of whether the tier itself was correct.\n\n**Tier branch — act on this immediately, in the same response as Step 7:**\n\n- **`tier: fast`** — proceed to Fast Tier Execution below.\n- **`tier: quick`** — proceed to Quick Tier Execution below.\n- **`tier: full`** — or `## Tier:` absent on a legacy, pre-F4 scratchpad — proceed to Phase 1: Bootstrap below, unchanged.\n",{},"main","262994376445c2281eca0784698159bb6e1bf1a3","tests\u002Ffixtures\u002Fci\u002Ftriage-parity\u002Fbad-step4-drift\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":7,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add Koroqe\u002Fclaude-code-sdlc --skill develop-feature",{"tool":40,"command":41},"bunx","bunx skills add Koroqe\u002Fclaude-code-sdlc --skill develop-feature",{"tool":43,"command":44},"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\u002Ftriage-parity\u002Fbad-step4-drift\u002Fskills\u002Fdevelop-feature\u002FSKILL.md",true,[],[49,92,110,123,144,153],{"skillNo":50,"name":51,"nameZh":6,"description":52,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":53,"categories":54,"keywords":71,"publishedAt":21},"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",[55,60,63,68],{"categoryNo":56,"categoryName":57,"taxonomyType":58,"taxonomyTypeDesc":59},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":61,"categoryName":62,"taxonomyType":58,"taxonomyTypeDesc":59},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":64,"categoryName":65,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":69,"categoryName":70,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000032","设计师",[72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91],"merge","ready","merge ready","code review","review","documentation","run","code","git","verification","changelog","ux","audit","doc","security audit","Bash","read","write","edit","goal",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":99,"publishedAt":21},"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",[98],{"categoryNo":64,"categoryName":65,"taxonomyType":66,"taxonomyTypeDesc":67},[100,101,102,103,79,81,82,104,87,105,106,88,89,90,107,108,109],"implement","implement slice","tdd","commit","first","plan","grep","next","atomic commit","tests",{"skillNo":111,"name":5,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":21},"01M6DRTPT1Y4NPEQM56VA4PP0Q","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.","https:\u002F\u002Fgithub.com\u002FKoroqe\u002Fclaude-code-sdlc\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002Fbad-verifier-verdicts\u002Fskills\u002Fdevelop-feature\u002FSKILL.md",[],[18,19,20,100,102,72,77,116,87,117,106,88,89,90,73,118,119,120,121,122],"quality gates","quality","implementation","human","gates","input","complete",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":133,"publishedAt":21},"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",[129,130],{"categoryNo":64,"categoryName":65,"taxonomyType":66,"taxonomyTypeDesc":67},{"categoryNo":131,"categoryName":132,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000031","产品经理",[134,135,19,76,136,77,137,78,79,138,139,140,87,105,141,88,89,90,142,143],"bootstrap","bootstrap feature","architecture","architecture review","qa","pipeline","qa test","branch","use","no code",{"skillNo":145,"name":51,"nameZh":6,"description":52,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":152,"publishedAt":21},"01M6DRTDYFS4S3T8MQE4PZHZ7X","https:\u002F\u002Fgithub.com\u002FKoroqe\u002Fclaude-code-sdlc\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002Fbad-verifier-tools\u002Fskills\u002Fmerge-ready\u002FSKILL.md",[148,149,150,151],{"categoryNo":56,"categoryName":57,"taxonomyType":58,"taxonomyTypeDesc":59},{"categoryNo":61,"categoryName":62,"taxonomyType":58,"taxonomyTypeDesc":59},{"categoryNo":64,"categoryName":65,"taxonomyType":66,"taxonomyTypeDesc":67},{"categoryNo":69,"categoryName":70,"taxonomyType":66,"taxonomyTypeDesc":67},[72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91],{"skillNo":154,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":158,"publishedAt":21},"01M6DRTAW68GF6JGNDEWTF6B4V","https:\u002F\u002Fgithub.com\u002FKoroqe\u002Fclaude-code-sdlc\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fci\u002Fverification-upgrade\u002Fbad-verifier-tools\u002Fskills\u002Fimplement-slice\u002FSKILL.md",[157],{"categoryNo":64,"categoryName":65,"taxonomyType":66,"taxonomyTypeDesc":67},[100,101,102,103,79,81,82,104,87,105,106,88,89,90,107,108,109]]