npx skills add https://github.com/codestable/codestable
dafang/codestable · Archived
cs-feat-ff
Feature 快速通道。触发:快速模式/直接开干,且需求小到不值得 design。
Installation
npx skills add dafang/codestable --skill cs-feat-ff
Stronger alternatives
This repository is archived — consider an actively maintained alternative.
Feature QA gate。触发:code review passed 后跑验证,或用户要求 QA。
4 installsFeature 实现。触发:approved design/checklist 后开工,或修 review/QA blocking。
4 installsFeature design review gate。触发:人审前审 design/checklist,或用户要求方案审查。
4 installsFeature acceptance。触发:实现、review、QA 后最终验收,或准备 merge/出验收报告。
4 installsSimilar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Guidance for distinctive, intentional visual design when building new UI or reshaping an existi…
866.4K installsBrowser automation CLI for AI agents. Use when the user needs to interact with websites, includ…
810.4K installsReview UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "chec…
617.3K installsBuild, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and …
576.5K installsDebug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe …
568.9K installsAlso in this package
Other skills from dafang/codestable · top by installs.
npx skills add dafang/codestable
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
main
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md9,518 B -
docs
SUMMARY.md112 B
History
- First seen on skills.sh
- First recorded snapshot · 3 installs
SKILL.md
cs-feat-ff
启动必读
开始任何判断或动作前,先执行 CodeStable preflight:读 .codestable/attention.md;缺失先 cs-onboard;不读外部 AI 入口替代(详见 .codestable/reference/execution-conventions.md)。
用户让你做小功能时本来 AI 就会直接动手——这个技能不改变这件事。它只做一件事:动手前把项目里已沉淀的 CodeStable 知识指给你,按需搜一下,写出来的代码就比裸写多一层保护;动手后回写一份最简的 {slug}-ff-note.md 让这次工作可追溯、可被 cs-req / cs-domain backfill 看到、能纳入 scoped-commit 提交。
很轻:没有 design doc / checklist / 验收清单 / 动手前的用户确认。看完指引,该读代码读、该写代码写、写完回写一段话。
动手前先扫一眼 .codestable/
Glob .codestable/ 发现可用目录和文档,按需取用:
requirements/CONTEXT.md— 领域术语;用项目术语命名,不自己造名requirements/adrs/— 已拍板的架构决策;改跨模块的东西前 grep 相关 adr 避免违反compound/— 沉淀的坑点 / 技巧 / 调研:
``bash grep -r "关键词" .codestable/compound/ ``
requirements/{slug}.md— 有相关 req 时读边界features/— 有同类 feature 时参考其 designreference/— shared-conventions.md / tools.md
怎么用
动手前问 2 个问题:
- 这块代码以前有人栽过跟头吗? →
grep -r "关键词" .codestable/compound/ - 这块代码有没有已经拍板的写法约束? → 看
requirements/adrs/相关 ADR + grepcompound/找写法沉淀
命中就把结论融进实现(按约束来写,不是抄)。没命中按自己判断写很正常。搜不到换几个关键词再试。
执行 gate(worktree + commit)
fastforward 直接改项目源码且是快速通道末端,两道 gate 仍要走。slug 未定时先按动作敲定(见下文"自动生成 slug"),unit 路径用 .codestable/features/YYYY-MM-DD-{slug}。
动手前运行 start gate:
python3 .codestable/tools/codestable-worktree-gate.py --root . --json start --unit .codestable/features/YYYY-MM-DD-{slug}
gate 不通过就不要开始改代码;用户批准 override 时先在 unit 目录写 worktree-override.md(reason / scope / approval)。
ff-note 落盘、收尾提交前运行 commit gate:
python3 .codestable/tools/codestable-worktree-gate.py --root . --json commit --unit .codestable/features/YYYY-MM-DD-{slug}
gate 不通过就先处理 findings,不把"验证已过"当成完成。gate 工具的安装与 branch-guard hook 说明见 .codestable/reference/branch-guard-hooks.md。
写代码时守住这几条
design / implement 的硬约束在 fastforward 的精简版。没 design doc 不代表可以不讲——这些是让你"直接动手"时不偏向 AI 默认会踩的坑。
先想"放在哪儿"再写
30 秒回答:这次要加的东西在项目结构里属于哪儿?
- 现有模块本该承担?→ 在那扩展,别另起
- 横跨多个模块?→ 抽公共层 / 让某一方主导
- 已有模块叫法不同?→ grep 同义词
- 跟现有都不像?→ 多半该切回完整 design 流程
默认坑:不思考就往眼前最顺手的文件里加——加完就成"什么都装的筐"。
扫一眼要改的文件现在什么状况
开写前看一眼:文件多长?承担几件事?类有多少方法?新加的是自然扩展还是把它推向"什么都能干"?
健康就直接加;要先收拾(拆长文件 / 抽重函数)就先收拾再加,范围锁死为"只搬不改行为";结构性问题(职责重划 / 模块拆合)→ 停下来回 design 流程。
默认写最少的代码
只写用户明确要的。不顺手加:
- "以后可能要"的配置项 / 参数开关 / 抽象层 / 接口 / 工厂
- 没人要的防御性兜底 / try-catch
- 用户没提的边界处理
判据:写完觉得"是不是还得加点 X"——X 是不是用户能感知到的?不是就别加。多出来的代码不是中性的,是后人维护的负担。
只动该动的
只改要改的函数。同文件里别的函数丑 / 命名怪——除非和这次冲突,否则别碰。新代码风格匹配当前文件已有写法。看到值得改的别处 → "顺手发现:{文件:行号} {问题},不在本次范围"让用户决定。
新逻辑默认放新文件
会被其他地方引用 → 新文件;只一处用的小工具函数 → 就近放。
不打补丁分支
冒出 if (特殊情况) { 特殊处理 } → 停。这种分支基本只因为思路没覆盖到这种情况,硬写下去得到的是"为让代码能跑而加的特殊逻辑"。要么改数据结构让它不需要特殊处理,要么明确承认是边界情况并注释说明为什么特殊。
反射信号触发就停
- 往 > 300 行文件追加 / 往 > 10 个方法的类加方法
- 函数做的事越来越多超过一屏
- 写第二段"跟上面那段基本一样改了两个变量"的代码
- 函数参数加到第 4 个
- 往
utils.ts/helpers.ts万能 util 堆东西 - 新起概念名时先 grep 同名 / 近义命名
完整清单看 .codestable/reference/shared-conventions.md 第 7 节。
写完回写 {slug}-ff-note.md
代码写完、验证完、用户确认效果 OK 之后才动这一步——动手前先建空壳会破坏 ff 的轻体感。
自动生成 slug
不问用户。规则:
- 从用户最初的请求里抽 2-4 个英文 kebab-case 词概括动作 / 对象(如 "rename-cwd-helper"、"add-export-button"、"fix-toolbar-layout")
- 不抽业务名词缩写、不音译中文、保持小写连字符
- 拿不准就保守一点:"tweak-{对象}" / "small-{动作}" 也比强求精准好
最终路径:.codestable/features/YYYY-MM-DD-{slug}/{slug}-ff-note.md,日期用今天。
模板
---
doc_type: feature-ff-note
feature: {slug}
date: YYYY-MM-DD
requirement: {req-slug 或留空}
tags: [...]
---
## 做了什么
{1-3 句:解决什么需求 / 加了什么能力,业务视角}
## 改了哪些
- {file:行号区间或函数名} — {一句话说改了什么}
- ...
## 怎么验证的
{1-2 句:跑了哪些验证 / 浏览器走通了哪条路径 / 跑了什么测试}
## 顺手发现(可选,不阻塞)
- {文件:行号} {问题简述} — 不在本次范围
写得真的轻:每节就那么几行,不要把它写成迷你 design / 迷你 acceptance。这份文档的目标是"半年后有人看 git log 能跳进来 30 秒搞清楚做了啥",不是替代标准流程。
落盘后告诉用户:"已写 {slug}-ff-note.md,本次 fastforward 闭环。"
不做什么
- 不写 design doc / checklist / acceptance——这就是 fastforward 的意义。要写就去
cs-feat-design - 不跟用户确认方案——用户让你做小功能就是不想等你开会
- 不在
.codestable/里留{slug}-ff-note.md之外的新文件——除非发现值得沉淀的坑 / 技巧,另起对话用cs-keep写
什么时候跳出 fastforward
干到一半发现下面任一情况,停下来告诉用户"这比想象的复杂,建议切回完整流程":
- 改动涉及 3 个以上子系统
- 需要引入新术语或和现有术语冲突
- 要打破
.codestable/requirements/adrs/既定的模块边界 ADR - 用户追加的要求让范围翻倍
切回方式:触发 cs-feat-design。已写的代码在 design 里标"已部分实现"即可。
退出条件
- 代码写完且用户确认效果 OK
-
{slug}-ff-note.md已落盘且四节填齐(顺手发现可省) - 没有未对齐的"顺手发现"(都进 ff-note 末节,留给后续)
收尾提交
按 .codestable/reference/shared-conventions.md 第 4 节"scoped-commit"规则执行。本通道:
- 提交范围:本次代码改动 +
{slug}-ff-note.md - ff-note 落盘后告诉用户"已就绪,是否代为 commit?",用户明确同意才执行
收尾 commit 前先进入 cs-code-review 做一轮独立 diff 评审,Critical / Important 未清零不进 commit;scoped-commit 发起权归 cs-code-review。
按 shared-conventions.md 第 3 节"feature-ff"收尾推荐顺序逐项一句话提示(用户"不用"立即跳过):
- 暴露的坑或拍板的长期约束 → "沉淀到 compound?(
cs-keep)" - 最后问是否代为 scoped-commit
容易踩的坑
- 完全跳过知识检索就写——这个技能的唯一理由就是让你搜一下再写
- 把搜到的 learning / decision 当"参考"而不是"约束"——decision 拍过板,违反要么重新 decision 要么别做
- 开始写 design doc——fastforward 就是不写 design
- 发现任务变复杂还硬在 fastforward 推——切回成本远低于带着错误方案改到底
- 动手前就建 ff-note 空壳——破坏 fastforward 的轻体感,必须代码 + 验证完才回写
- 把 ff-note 写成迷你 design / 迷你 acceptance——四节加一起十几行就够,多了说明这事不该走 fastforward
- 跳过 ff-note 直接 commit——和 issue-ff 强制 fix-note 同样的理由:没记录后人追溯不了