This is the disciplined counterpart to cs-learn and cs-trick. It appends one-line project facts to a fixed section in `.codestable/attention.md`, the file that CodeStable skills read on startup. The three-part filter is smart: length (one or two lines), frequency (needed almost every session), and stability (long-term constraints, not temporary workarounds). Typical entries are "run `pnpm gen` before build" or "don't use npm, project uses yarn berry." It won't let you bloat the file with background or multi-step guides, enforces a fixed set of subsections like "Build," "Environment Variables," and "Path Conventions," and checks for duplicates before writing. The 150-line soft cap keeps attention.md from becoming another junk drawer. One note per invocation, no batch writing.
npx -y skills add liuzhengdongfortest/codestable --skill cs-note --agent claude-codeInstalls into .claude/skills of the current project.
开始任何判断或动作前,先检查 .codestable/attention.md:存在就读取;缺 .codestable/ 就提示先运行 cs-onboard;只有 attention.md 缺失时,本技能可以先创建固定分节骨架再写入。不要回退到外部 AI 入口文件。
cs-learn / cs-trick / cs-decide 产出独立 markdown 文件,通过检索被读到;.codestable/attention.md 是 CodeStable 技能启动时的强制必读上下文。这两类信息归宿不同——本技能专管后者:把"短、稳、每次都要知道"的碎片追加到 attention 文件里。
不替代沉淀类技能,是补一个之前缺的入口。
判据:长度 + 频次 + 稳定度——三条都过才走 cs-note。
| 项 | 进 cs-note | 走别处 |
|---|---|---|
| 长度 | 一两行能讲清 | 超过半屏 / 需要展开背景 → cs-learn |
| 频次 | 几乎每次会话都用得上 | 只在某类具体任务相关 → cs-trick |
| 稳定度 | 项目长期生效的硬约束 | 临时绕过 / 短期 workaround → 写到 issue spec 或 feature spec |
| 拍板状态 | 已既成事实(不需要决策记录) | 需要记选型理由 / 拒方案 → cs-decide |
✅ 典型该进:
pnpm run gen 生成 schema"docker compose up redis"npm install"bun test,不是 npm test"OPENAI_KEY 走 1Password,别从 .env.example 复制"❌ 典型不该进(会让 attention.md 膨胀):
判不准就反问用户一句:"这条以后是不是每次会话都要让 AI 知道?"答"不一定" → 不是 cs-note。
目标文件固定为 .codestable/attention.md。不再兼容 AGENTS.md / CLAUDE.md / .cursorrules 等外部 AI 工具入口。
.codestable/ 不存在 → 本仓库还没接入 CodeStable,先提示用户运行 cs-onboard.codestable/attention.md 不存在 → 视为骨架缺失,先创建最小骨架再写入AGENTS.md / CLAUDE.md 即使存在也不读取、不写入、不询问用户偏好attention.md 是 CodeStable 自己的启动注意事项入口,价值来自所有 CodeStable 技能都明确要求读取它,而不是依赖外部工具的自动注入。
为了防止文件膨胀成另一个胖文件,分节写死一组(不在列表里的不开新节):
## 项目碎片知识
<!-- cs-note managed: 用 cs-note 维护,新条目按下面分节追加 -->
### 编译与构建
### 运行与本地起服务
### 测试
### 命令与脚本陷阱
### 路径与目录约定
### 环境变量与凭证
### 其他
规则:
<!-- cs-note managed --> 是本技能的识别锚——找不到就在文件末尾插入整块结构按上面"判据"表对一遍。任一项不过 → 引导到对应别的技能,本轮结束。
检查 .codestable/attention.md。缺 .codestable/ 就停止并提示先 cs-onboard;只缺 attention.md 就创建本技能的固定分节骨架。
.codestable/attention.md,找 <!-- cs-note managed --> 锚定位每条格式:
- {一句话事实 + 必要时一句话原因}
例:
- 编译前要先 `pnpm run gen`,否则 schema 类型对不上
- 别用 `npm install`,项目锁文件是 yarn berry 的
- src/legacy/ 是 2023 前的老代码,改之前先和 @ldz 确认
写完用户 review 一句确认就退出。不主动连写多条——一次一条,避免顺手把没拍板的也塞进去。
写完看一眼"项目碎片知识"段总行数:
只是提示,不替用户决定。
不要每次都问。只在两个明确信号触发时推一句:
cs-note 一下?以后 AI 每次都能看到。"cs-note 记一笔,下次会话直接知道。"用户说"不用了"立刻跳过,不重复推。
AGENTS.md / CLAUDE.md——CodeStable 不再兼容这些外部入口juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills