PluginBench
Skill
Pass
Audit score 90

cs-feat

liuzhengdongfortest/codestable

Route new feature requests through design, implementation, review, QA, and acceptance phases.

What is cs-feat?

cs-feat is a workflow router for feature development that guides requests from initial idea through verification closure. It reads existing artifacts in `.codestable/features/` and directs users to the appropriate sub-skill (brainstorm, design, design-review, fastforward, implement, code-review, QA, acceptance) based on current progress.

  • Routes feature requests to the correct sub-skill based on existing design, implementation, and review artifacts
  • Enforces phase gates to prevent skipping design review or QA before acceptance
  • Supports both standard multi-phase workflow and fastforward mode for small, clear-scope changes
  • Distinguishes between feature development and bug fixes, routing bugs to issue workflow instead
  • Reads `.codestable/attention.md` before any action to ensure project skeleton is complete

How to install cs-feat

npx skills add https://github.com/liuzhengdongfortest/codestable --skill cs-feat
Prerequisites
  • `.codestable/` directory structure initialized
  • `.codestable/attention.md` file present (or run cs-onboard to create it)
  • Feature directory at `.codestable/features/{YYYY-MM-DD-slug}/`
Claude Code
Cursor
Windsurf
Cline

How to use cs-feat

  1. 1.Run the skill when user requests a new feature or says 'add X capability'
  2. 2.Glob `.codestable/features/` to inspect existing artifacts (brainstorm.md, design.md, design-review.md, checklist.yaml, review.md, qa.md, acceptance.md)
  3. 3.Match current state against the routing table to determine next sub-skill
  4. 4.If state is unclear, read the design.md file directly rather than trusting user description
  5. 5.Direct user to appropriate sub-skill: cs-brainstorm, cs-feat-design, cs-feat-design-review, cs-feat-ff, cs-feat-impl, cs-code-review, cs-feat-qa, or cs-feat-accept

Use cases

Good for
  • User says 'add a new feature' — router checks for design.md and directs to design or implementation phase
  • User submits code claiming it's done but no code-review.md exists — router requires code review before QA
  • User wants to skip design review for a cross-system change — router blocks fastforward and enforces standard workflow
  • User has written intent.md draft — router passes it to design skill as input
  • Brainstorm identifies a large roadmap item — router transfers to cs-roadmap, not back to feature flow
Who it's for
  • Development teams using CodeStable workflow
  • AI agents (Claude Code, Cursor) executing feature development
  • Project leads enforcing design-before-code discipline

cs-feat FAQ

When should I route to cs-brainstorm vs. cs-feat-design?

Route to brainstorm if the user cannot clearly articulate the real problem, core behavior, or what not to do. If the user says 'I've thought it through, let's design' or has written intent.md, go straight to design. Ask when uncertain rather than forcing brainstorm on a prepared user.

What is fastforward mode and when should I use it?

Fastforward compresses design into 4 sections (summary, solution, acceptance criteria, steps) for small, clear-scope changes. Skip it if the feature crosses multiple subsystems, has naming conflicts, or requires more than 4 implementation steps — those cases need full design review to align AI and user understanding.

Can I skip code review or QA to get to acceptance faster?

No. The routing table enforces gates: code review must pass before QA, and QA must pass before acceptance. If user claims code is done but review.md doesn't exist, route to cs-code-review first.

What happens if brainstorm identifies a large roadmap item?

Brainstorm skill will classify it as case 3 and transfer it to cs-roadmap. Do not route back to feature flow. When roadmap later breaks it into sub-features, those enter feature flow at cs-feat-design with 'from roadmap' context.

Should I fix bugs discovered during feature implementation in the same PR?

No. Record bugs as new issues in `.codestable/issues/` instead. Feature PRs must stay within approved scope so verification and git blame remain clear.

Full instructions (SKILL.md)

Source of truth, from liuzhengdongfortest/codestable.


name: cs-feat description: 新功能开发的子流程入口,把"加个 X 能力"从想法走到验收闭环。触发:用户说"做新功能"、"加个 X"、"实现 XX"。只做路由,根据已有产物决定走 brainstorm / design / design-review / fastforward / implement / code-review / QA / acceptance。不处理 bug。

cs-feat

启动必读

开始任何判断或动作前,先读取 .codestable/attention.md;缺失则视为骨架不完整,提示先补齐或运行 cs-onboard,不要回退到外部 AI 入口文件。

新功能流程在"需求"和"代码"之间塞了一份方案文件,让两边有交接点——AI 直接拿到需求就写代码会出三个老问题:名字跟原代码对不上、改着改着改出范围、改完不留存档。

(想法模糊先去 cs-brainstorm 分诊) → 方案设计(名词层 + 编排层 + 验收契约 + 推进策略切片)→ 分步实现 → 代码审查 → QA 验证 → 验收闭环

brainstorm 是讨论层独立入口,会分诊:case 1(清楚 → 直接 design)/ case 2(小需求继续讨论 → 落 brainstorm note)/ case 3(大需求 → 移交 cs-roadmap)。只有 case 2 在 feature 目录产出 brainstorm note。

本技能不写代码不写文档,只做一件事:看当前 feature 走到哪步,告诉用户该触发哪个子技能。


文件放哪儿

.codestable/features/{feature}/
├── {slug}-brainstorm.md       ← 阶段 0 产物(仅 case 2 落盘)
├── {slug}-intent.md           ← 阶段 1 可选前置草稿(用户自己写半成品)
├── {slug}-design.md           ← 阶段 1 方案文件
├── {slug}-design-review.md    ← 阶段 1.5 人审前方案审查报告
├── {slug}-checklist.yaml      ← 阶段 1 生成 steps + checks,2/3 阶段更新 status
├── {slug}-review.md           ← 阶段 2.5 代码审查报告
├── {slug}-qa.md               ← 阶段 2.6 QA 验证报告
└── {slug}-acceptance.md       ← 阶段 3 验收报告

目录命名 YYYY-MM-DD-{英文 slug},日期取首次创建当天定了不动;slug 小写字母 / 数字 / 连字符。

为什么聚一起:以后查"那个导出 CSV 功能当时怎么决定的",brainstorm / design / review / QA / acceptance 都在一处。feature 和 issue 分别放在 .codestable/features/ 和 .codestable/issues/ 因为归档逻辑不一样。

实现 feature 时顺手发现的 bug → 记成新 issue,不在 feature PR 里偷偷修——验收时分不清范围,git blame 找不到为什么改。


标准阶段

阶段子技能产出谁主导
0 brainstorm(可选,独立入口)cs-brainstormcase 2 时产出 brainstorm noteAI 思考伙伴,用户拍板
1 方案设计cs-feat-designdesign.md + checklist.yamlAI 起草候选方案
1.5 方案审查cs-feat-design-reviewdesign-review.md独立 agent / AI 人审前审查
2 分步实现cs-feat-impl代码 + 阶段汇报AI 按方案执行
2.5 代码审查cs-code-reviewreview.mdAI 只读审查,用户决定是否修
2.6 QA 验证cs-feat-qaqa.mdAI 运行证据,用户确认风险
3 验收闭环cs-feat-acceptacceptance.mdAI 逐层核对,用户终审

阶段间有 gate 和人工 checkpoint。方案先过 design-review,再交给用户整体确认;用户没明确放行,下一阶段别开始——防止 AI 一口气从需求跑到代码、跑出来才发现走偏。

阶段 0 可选且是 feature 流程的外部入口——cs-brainstorm 同时服务 feature 和 roadmap。case 3(大需求)讨论被移交给 cs-roadmap 不再回 feature 流程;roadmap 拆出子 feature 后从 cs-feat-design 的"从 roadmap 条目起头"入口进来。

Fastforward 模式

需求清楚 + 范围小时走标准流程太啰嗦。fastforward 把 design 压成 4 节(需求摘要 / 设计方案 / 验收标准 / 推进步骤),用户一次确认后直接实现。触发:"快速模式"、"fastforward"、"直接开干"、"别那么多步骤",去 cs-feat-ff。

别走 fastforward:跨多个子系统、有术语冲突风险、推进步骤超过 4 步——这些情况跳过 design 意味着 AI 和用户没共同确认过同一份方案,实现完容易发现彼此理解不一样。


路由:用户现在该走哪个子技能

进入本技能先 Glob 一下 .codestable/features/ 看已有产物。不要只听用户口头描述——用户说"设计写完了"不一定真完整,自己读一遍。

当前状态触发哪个子技能
想法模糊,说不清真问题 / 边界 / 不做什么cs-brainstorm
想法清晰(知道做什么 / 为谁 / 怎么算成功)cs-feat-design
用户说"开一个新需求 / 起草稿 / 新建 feature"想自己写半成品cs-feat-design 的"初始化模式"(建目录 + 空 intent,让用户填完再回)
用户主动说"先 brainstorm 一下"、"有个想法没想清楚"cs-brainstorm
{slug}-intent.md 已填好cs-feat-design(读 intent 作输入)
用户说"快速模式 / fastforward"cs-feat-ff
{slug}-brainstorm.md 已存在,要进设计cs-feat-design
{slug}-design.md 是 draft 且没有 {slug}-design-review.mdcs-feat-design-review
{slug}-design-review.md changes-requested / blockedcs-feat-design 修订后重跑 cs-feat-design-review
{slug}-design-review.md passed,但 design 还没 approved交给用户整体 review,确认后回 cs-feat-design 标 approved
{slug}-design.md 已 approved、代码没动cs-feat-impl
fastforward design 已确认cs-feat-impl
代码已写完但没有 {slug}-review.mdcs-code-review
{slug}-review.md 有 unresolved blocking findingscs-feat-impl 的 review-fix 模式
{slug}-review.md 已 passed,但没有 {slug}-qa.mdcs-feat-qa
{slug}-qa.md failed / blockedcs-feat-impl 的 qa-fix 模式(修完重跑 review → QA)
{slug}-qa.md 已 passed,代码要验收cs-feat-accept
用户直接说"代码已写完要验收"但没有 review 报告先 cs-code-review,不要跳到 accept
用户直接说"代码已写完要验收"但没有 QA 报告review passed 后先 cs-feat-qa,不要跳到 accept
用户说"我想要一个 X 系统"大需求转 cs-brainstorm 分诊(大概率 case 3 → cs-roadmap)
roadmap 里某条子 feature 该启动cs-feat-design 的"从 roadmap 条目起头"入口
不确定 design 是否完整自己读一遍,按上面对号

怎么判断该不该走阶段 0

判断信号不是"用户描述字数少",是用户能不能清楚说出三件事:要解决的真问题 / 核心行为 / 一条明确的"不做什么"。三项有一项模糊就值得 brainstorm。

但别强推——用户明确说"想清楚了直接做设计"就尊重。不确定时问一句让用户选。宁可漏判,别误判——逼一个想清楚的用户做发散是浪费。

brainstorm vs intent

两者都是 design 前置,区别在谁在主导收敛:

  • brainstorm:用户脑子里模糊,AI 问用户答。判 case 3 时移交 cs-roadmap 不回 feature;只有 case 2 产出 brainstorm note
  • intent:用户自己想好大致做法(100 字描述 + 相关数据结构),懒得口述就写成 {slug}-intent.md 给 AI 读

用户模糊触发"开一个新需求"时默认问"你想先聊清楚(brainstorm)还是自己写草稿(intent)?",别自己挑。


与 issue 工作流的边界

  • feature:从来没有的东西要加进来(新功能 / 新能力)
  • issue:本来应该好的东西坏了(bug / 异常 / 文档错误)

灰色地带:feature 实现时发现的 bug 记成新 issue,不在 feature PR 顺手修。


相关文档

  • .codestable/reference/system-overview.md — CodeStable 体系总览
  • .codestable/reference/shared-conventions.md — 跨阶段共享口径、目录结构、checklist 生命周期
  • .codestable/attention.md — CodeStable 启动注意事项和项目硬约束
  • .codestable/requirements/CONTEXT.md + requirements/adrs/ — 方案设计阶段需要查的领域术语与拍板决策