@tanlinfeng/project-docs-workflow 0.0.0-stage → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +52 -0
  3. package/README.md +162 -2
  4. package/bin/install.js +695 -0
  5. package/package.json +20 -4
  6. package/skills/deepwork/SKILL.md +15 -0
  7. package/skills/doc-opt/EXAMPLES.md +77 -0
  8. package/skills/doc-opt/SKILL.md +83 -0
  9. package/skills/doc-opt/agents/openai.yaml +5 -0
  10. package/skills/domain-modeling/SKILL.md +83 -0
  11. package/skills/domain-modeling/agents/openai.yaml +3 -0
  12. package/skills/grill-me/SKILL.md +13 -0
  13. package/skills/grill-with-docs/SKILL.md +18 -0
  14. package/skills/grilling/SKILL.md +46 -0
  15. package/skills/grilling/agents/openai.yaml +3 -0
  16. package/skills/improve-codebase-architecture/SKILL.md +15 -0
  17. package/skills/project-docs-workflow/SKILL.md +108 -0
  18. package/skills/project-docs-workflow/agents/openai.yaml +5 -0
  19. package/skills/project-docs-workflow/assets/templates/entries/adr-entry.md +27 -0
  20. package/skills/project-docs-workflow/assets/templates/entries/issue-entry.md +28 -0
  21. package/skills/project-docs-workflow/assets/templates/entries/pdr-current.md +19 -0
  22. package/skills/project-docs-workflow/assets/templates/entries/pdr-interfaces.md +28 -0
  23. package/skills/project-docs-workflow/assets/templates/entries/pdr-module-readme.md +34 -0
  24. package/skills/project-docs-workflow/assets/templates/entries/pdr-nfr.md +22 -0
  25. package/skills/project-docs-workflow/assets/templates/entries/pdr-spec.md +20 -0
  26. package/skills/project-docs-workflow/assets/templates/entries/term-entry.md +22 -0
  27. package/skills/project-docs-workflow/assets/templates/project/adr-readme.md +31 -0
  28. package/skills/project-docs-workflow/assets/templates/project/agents-block.md +15 -0
  29. package/skills/project-docs-workflow/assets/templates/project/agents-domain.md +44 -0
  30. package/skills/project-docs-workflow/assets/templates/project/agents-issues.md +65 -0
  31. package/skills/project-docs-workflow/assets/templates/project/agents-workflow.md +61 -0
  32. package/skills/project-docs-workflow/assets/templates/project/context.md +21 -0
  33. package/skills/project-docs-workflow/assets/templates/project/pdr-00-readme.md +36 -0
  34. package/skills/project-docs-workflow/references/adr.md +53 -0
  35. package/skills/project-docs-workflow/references/coexistence.md +49 -0
  36. package/skills/project-docs-workflow/references/deps/boundaries.md +29 -0
  37. package/skills/project-docs-workflow/references/deps/doc-opt.md +17 -0
  38. package/skills/project-docs-workflow/references/deps/domain-modeling.md +51 -0
  39. package/skills/project-docs-workflow/references/deps/grilling.md +31 -0
  40. package/skills/project-docs-workflow/references/deps/tdd.md +35 -0
  41. package/skills/project-docs-workflow/references/issues.md +51 -0
  42. package/skills/project-docs-workflow/references/pdr.md +33 -0
  43. package/skills/project-docs-workflow/references/terminology.md +21 -0
  44. package/skills/project-docs-workflow/references/workflow.md +45 -0
  45. package/skills/retro/SKILL.md +19 -0
  46. package/skills/tdd/SKILL.md +50 -0
  47. package/skills/tdd/agents/openai.yaml +3 -0
@@ -0,0 +1,34 @@
1
+ <!-- 模块目录名:`NN-<模块>/`,编号即阅读顺序;本文件位于模块根,命名为 00-README.md。 -->
2
+
3
+ # <模块> 模块
4
+
5
+ > 定位:<一句话——该模块在产品中的角色与核心价值。>
6
+
7
+ ## 形态
8
+
9
+ <可选:该模块的形态 / 运行方式 / 与其他模块的关系。无内容可删本节。>
10
+
11
+ ## 范围与边界
12
+
13
+ | 交付(范围内) | 边界(不做) |
14
+ | :--- | :--- |
15
+ | <本模块负责什么> | <明确不做什么,防止职责蔓延> |
16
+
17
+ ## 依赖
18
+
19
+ | 依赖 | 用途 | 契约入口 |
20
+ | :--- | :--- | :--- |
21
+ | <依赖方 / 模块> | <用途> | [02-interfaces.md](02-interfaces.md) §… |
22
+
23
+ (无依赖则删行;契约入口只保留将真实存在的文件链接。)
24
+
25
+ ## 文档地图
26
+
27
+ | 文件 | 内容 |
28
+ | :--- | :--- |
29
+ | [01-spec.md](01-spec.md) | 功能规格(FR-<模块>-NN + 验收判据) |
30
+ | [02-interfaces.md](02-interfaces.md) | 对外接口与契约 |
31
+ | [03-nfr.md](03-nfr.md) | 非功能约束 |
32
+ | [design/](design/) | 机制级设计(可选,不参与编号;无则删行) |
33
+
34
+ (表中只保留实际存在的文件;`design/` 等可选部分(无则删行)。)
@@ -0,0 +1,22 @@
1
+ <!-- 非功能规格:与功能无关、但约束产品形态的横切要求(性能 / 可观测 / 安全 / 可复现 / 隔离等)。 -->
2
+
3
+ # <模块> 非功能规格
4
+
5
+ > 定位:<模块> 的非功能约束。
6
+
7
+ ## 1. <维度,如 可复现性>
8
+
9
+ - <约束 / 字段 / 阈值。>
10
+ - 判据:<如何判定满足。>
11
+
12
+ ## 2. <维度,如 可观测性>
13
+
14
+ - <约束。>
15
+ - 判据:<…>
16
+
17
+ ## 3. <维度,如 安全 / fail-safe>
18
+
19
+ - <约束。>
20
+ - 判据:<…>
21
+
22
+ <!-- 每条约束尽量落到可检查的判据;无判据的条目说明尚未定案,标注「待决」。 -->
@@ -0,0 +1,20 @@
1
+ <!-- FR 编号:`FR-<模块>-NN`,模块用大写短名;同一模块内编号连续、不复用。 -->
2
+
3
+ # <模块> 功能规格
4
+
5
+ > 定位:<模块> 目标态功能规格(FR-<模块>-NN,逐条给验收判据)。依据见 [design/](design/)(无 design/ 目录则删去该链接)与相关 ADR。
6
+
7
+ ## 1. <功能分组>
8
+
9
+ | FR | 功能 | 验收判据 |
10
+ | :--- | :--- | :--- |
11
+ | FR-<模块>-01 | <功能一句话> | <可判定、可验证的条件> |
12
+ | FR-<模块>-02 | <功能> | <判据> |
13
+
14
+ ## 2. <另一分组>
15
+
16
+ | FR | 功能 | 验收判据 |
17
+ | :--- | :--- | :--- |
18
+ | FR-<模块>-NN | <功能> | <判据> |
19
+
20
+ <!-- 验收判据要能被检查(阈值 / 区间 / 状态谓词),不写「体验良好」这类不可判定的描述。 -->
@@ -0,0 +1,22 @@
1
+ <!-- 术语条目:按落点二选一。 -->
2
+
3
+ ## 用于 CONTEXT.md(主术语表)
4
+
5
+ **<术语>**:
6
+ <一到两句定义,说明概念「是什么」,不写实现细节。>
7
+ _Avoid_: <应回避的同义词 / 近义词>
8
+
9
+ <!-- 只收项目特定概念;同义词归入 _Avoid_,不并存。 -->
10
+
11
+ ## 用于领域术语表(编号索引式,如 docs/common/glossary.md)
12
+
13
+ 先在术语索引表追加一行:
14
+
15
+ | <# > | <术语> | <一句话> |
16
+ | :--- | :--- | :--- |
17
+
18
+ 再补词条小节:
19
+
20
+ ## <#>. <术语>
21
+
22
+ <定义与口径;需要时附交叉链接与外部来源。>
@@ -0,0 +1,31 @@
1
+ > 模板来源:project-docs-workflow v2(模板演进后可重跑幂等 init 对齐;本文件可按项目实际修改)
2
+
3
+ # ADR 规则与目录
4
+
5
+ ## 规则
6
+
7
+ - 文件名:`NNNN-精炼 slug.md`(4 位零填充;**编号永不复用**:新增 = 当前最大编号 + 1,墓碑桩计入);slug(文件名)不可变,墓碑桩化只清空内容、不改文件名;标题写在文件内 H1。
8
+ - 维护范围:**未删除**的条目(含已失效标注者)均在册;允许修改与删除,完整历史由 git 兜底。
9
+ - **语义修改**(结论 / 约束 / 范围变化)就地修改,并在条目 `## Log` 追加一行 `- YYYY-MM-DD <一句话原因>`。
10
+ - **非语义修改**(错字、格式、补链接)直接改,无需 Log。
11
+ - 默认就地改;仅当变更是"方向性 / 值得长期单独引用"时才新增条目,旧条目加注记。新增时若编号已被占用(并发写入),顺延 +1 并 sweep 更新引用。
12
+ - **删除**优先用 `> 已废弃(日期):原因` 标注(内容保留);仅当项目**人类 owner**(或经其明确授权)判定"无借鉴价值 / 纯噪音"时才删除,agent 不得自行判定。
13
+ - 删除 = **墓碑桩化**:文件内容清空为两行 `# <原标题>` + `> 已删除(YYYY-MM-DD):原因`,**保留编号与文件名**;墓碑桩不再删除(编号永久退役)。
14
+ - 删除顺序:①墓碑桩化(改写文件)→ ②目录移除该行 → ③全仓库 sweep;重试 / 重跑前先核对,避免重复 Log 或注记。
15
+ - 失效标注(H1 之后,活跃条目无标注;**每个退役事件一行、可叠加**;只允许下列既定集合,不允许自由文本注记):
16
+ - `> 已被 ADR-XXXX 取代(日期):一句话`
17
+ - `> 经 ADR-XXXX 修订(日期):一句话`
18
+ - `> 已废弃(日期):原因`
19
+ - `> 已删除(日期):原因`(墓碑桩)
20
+ - **删除或语义修改**触发引用核查:优先派 subagent,无则自行 grep `ADR-\d{4}`(范围 = 全仓库;`docs/` 必改,代码注释逐一判定:保留 / 更新 / 就地注释;逐一处理后再收尾)。引用优先改指替代 ADR 编号;无替代则删去该句或就地注明「(ADR-XXXX 已删除)」。
21
+
22
+ ## 目录
23
+
24
+ | 编号 | 标题 | 一句话 |
25
+ | --- | --- | --- |
26
+
27
+ 新增 ADR 后在此登记一行。
28
+
29
+ 只列**未删除**的条目(含已失效标注者);删除则移除该行;编号空缺 = 已删除(见对应墓碑桩文件 / git)。可在「一句话」列为已失效条目注明状态(如「已被 ADR-XXXX 取代」)。
30
+
31
+ 新增条目骨架(若已安装 project-docs-workflow):~/.agents/skills/project-docs-workflow/assets/templates/entries/adr-entry.md。
@@ -0,0 +1,15 @@
1
+ ## Agent skills
2
+
3
+ > 模板来源:project-docs-workflow v2(模板演进后可重跑幂等 init 对齐;本文件可按项目实际修改)
4
+
5
+ ### Issue tracker
6
+
7
+ 工作条目位于 `docs/issues/<类型>/{human,agent}/`(类型:bug / feature / chore / suggestion)。任何工作开始前,先在对应子目录创建或更新条目,明确任务与责任,再动手;约定见 `docs/agents/issues.md`。
8
+
9
+ ### Domain docs
10
+
11
+ 单 context:仓库根目录 `CONTEXT.md`,ADR 位于 `docs/adr/`。约定见 `docs/agents/domain.md`。
12
+
13
+ ### Development workflow
14
+
15
+ 推荐五步流程:规划 / 骨架 / 细节 / 异常 / 回顾。开工前先读 PDR 目标与现状(各模块 `04-current.md`),与用户对齐本次范围与粒度;步骤记录在 issue 的 `## 步骤`。约定见 `docs/agents/workflow.md`。
@@ -0,0 +1,44 @@
1
+ > 模板来源:project-docs-workflow v2(模板演进后可重跑幂等 init 对齐;本文件可按项目实际修改)
2
+
3
+ # Domain Docs
4
+
5
+ 工程类技能在探索本代码库时应如何消费本仓库的领域文档。
6
+
7
+ 本模板覆盖单 context 布局;多 context(CONTEXT-MAP.md)暂未纳入。
8
+
9
+ ## Before exploring, read these
10
+
11
+ - 根目录的 **`CONTEXT.md`**。
12
+ - **`docs/adr/`**:读取与将要改动的领域相关的 ADR;规则与目录见 `docs/adr/README.md`。
13
+
14
+ 如果这些文件不存在,**静默继续**:不要提示缺失,也不要主动建议创建它们。`/domain-modeling`(未安装则按 `docs/agents/deps/domain-modeling.md` 执行;经 `/grill-with-docs` 与 `/improve-codebase-architecture` 到达,后者未安装则按 `docs/agents/deps/boundaries.md` 执行)会在词条或决策真正定案时按需创建。
15
+
16
+ 外部技能未安装时的兜底流程物化在 `docs/agents/deps/`。
17
+
18
+ ## File structure
19
+
20
+ 按项目实际结构填写(单 context 仓库的典型布局如下,据实替换):
21
+
22
+ ```
23
+ /
24
+ ├── CONTEXT.md
25
+ ├── docs/
26
+ │ ├── adr/
27
+ │ ├── agents/
28
+ │ ├── common/
29
+ │ ├── issues/
30
+ │ └── pdr/
31
+ └── <源码目录…>
32
+ ```
33
+
34
+ ## Use the glossary's vocabulary
35
+
36
+ 当你的产出提到某个领域概念(issue 标题、重构提案、假设、测试名)时,使用 `CONTEXT.md` 中定义的术语。不要漂移到术语表明确回避的同义词。
37
+
38
+ 如果你需要的概念还不在术语表里,这本身是一个信号:要么你在发明项目不使用的语言(重新考虑),要么存在真实缺口(记下来,交给 `/domain-modeling`;未安装则按 `docs/agents/deps/domain-modeling.md` 执行)。
39
+
40
+ ## Flag ADR conflicts
41
+
42
+ 如果你的产出与既有 ADR 冲突,显式指出,不要默默覆盖:
43
+
44
+ > _与 ADR-XXXX(<决策短标题>)冲突,但值得重新讨论,因为……_
@@ -0,0 +1,65 @@
1
+ > 模板来源:project-docs-workflow v2(模板演进后可重跑幂等 init 对齐;本文件可按项目实际修改)
2
+
3
+ # Issue 体系(仓库内工作跟踪)
4
+
5
+ 工作条目的存放与流转规范。**任何工作(人 / agent)开始前,先在对应子目录创建或更新条目,明确任务与责任,再动手。**
6
+
7
+ ## 目录结构
8
+
9
+ ```
10
+ docs/issues/
11
+ ├── bug/{human,agent}/ # 缺陷修复
12
+ ├── feature/{human,agent}/ # 新功能
13
+ ├── chore/{human,agent}/ # 维护 / 重构 / 杂务
14
+ ├── suggestion/{human,agent}/ # 改进建议(无 history、无状态;归宿 adr / pdr)
15
+ └── <bug|feature|chore>/history/ # 归档:文件名尾部带 -done(完成)/ -drop(放弃)
16
+ ```
17
+
18
+ - `human/` 与 `agent/` = 当前责任方;责任移交时把文件 `git mv` 到对方目录。
19
+ - 仅保留近期待办(约一周窗口);完成或放弃的条目由完成者随手归档,人定期巡检。
20
+ - `suggestion` 特殊:处理完成后——采纳 → 结论落 adr(或更新 pdr),随后删除本条目;不采纳 → 仅当 human 明确要求时才落否决 ADR,否则直接删除;本质是 bug / feature / chore 的 → 挪到对应目录。
21
+
22
+ ## 条目格式
23
+
24
+ 文件名:项目语言短标题,无编号(例:`修复-首屏加载卡顿.md`)。归档时在末尾加状态后缀:`…-done.md` / `…-drop.md`。
25
+
26
+ ```md
27
+ # <标题>
28
+ > Status: open|doing|blocked | 责任: human|agent | 创建: YYYY-MM-DD | 关联: ADR-XXXX / 其他条目
29
+
30
+ <背景与目标>
31
+
32
+ ## 完成判据
33
+ - …
34
+
35
+ ## 步骤
36
+ - [ ] 规划(完成判据与方案已对齐)
37
+ - [ ] 骨架(最小可运行切片 + 证据;纯修复可跳过并注明理由)
38
+ - [ ] 细节(主路径实现与质量)
39
+ - [ ] 异常(失败路径、边界与稳定性)
40
+ - [ ] 回顾(收尾回顾:文档同步)
41
+
42
+ ## 结果(完成后填写,可选)
43
+ - …
44
+
45
+ ## Log
46
+ - YYYY-MM-DD ……
47
+ ```
48
+
49
+ (若本机安装了 project-docs-workflow:条目骨架 ~/.agents/skills/project-docs-workflow/assets/templates/entries/issue-entry.md;未安装则按本文格式创建。)
50
+
51
+ - `Status` 就地更新;`## Log` 追加式记录,不改历史行。
52
+ - 涉及 adr / pdr 的改动,须同步更新对应文档。
53
+ - 推进流程见 `workflow.md`(推荐五步:规划 / 骨架 / 细节 / 异常 / 回顾);步骤状态就地更新,变更记 Log。
54
+
55
+ ## 与开发流程的衔接
56
+
57
+ - 开工前与用户对齐本次范围与粒度(差距候选来自 PDR 目标与现状)。
58
+ - 步骤按 `docs/agents/workflow.md` 推荐流程推进,状态就地更新,变更记 Log。
59
+ - 收尾回顾时更新受影响模块的 `04-current.md`。
60
+
61
+ ## 相关
62
+
63
+ - ADR 规则与目录:`../adr/README.md`
64
+ - 域文档约定:`domain.md`
65
+ - 开发流程(推荐):`workflow.md`
@@ -0,0 +1,61 @@
1
+ > 模板来源:project-docs-workflow v2(模板演进后可重跑幂等 init 对齐;本文件可按项目实际修改)
2
+
3
+ # 开发流程(推荐)
4
+
5
+ 本文件是推荐的单 issue 开发流程;项目可按实际覆盖。核心:小步推进、随时可 review、与用户对齐后再动手。
6
+
7
+ ## 工作单元
8
+
9
+ 一条 issue = 一个可独立交付的工作单元(通常 feature 级;bug / chore 同构,形态相应简化)。
10
+
11
+ 粒度建议(非强制):切到「可单次 review 的推进单元」,≈0.5 人天仅启发式参考,按任务弹性调整。工作如何切分由 agent 自行感知,阶段不落盘(必要时可在当前 issue 内记一句)。
12
+
13
+ ## 开工前对齐
14
+
15
+ 读 PDR 目标与现状(`docs/pdr/` 的 `01-spec` 与各模块 `04-current.md`),列出差距候选(模块 / FR、类型、切片、完成判据),与用户确认要做哪条并落 issue。
16
+
17
+ - 对话确认即可:不冻结、不设仪式行。
18
+ - 需求变化时主动重对齐,并更新 issue 内的计划与完成判据。
19
+ - 方向有歧义 → 调用 `grilling`(未安装则按 `docs/agents/deps/grilling.md` 执行);`grill-me` 仅入口别名。
20
+ - 不要吞并超出对齐范围的工作。
21
+
22
+ ## 五步流程(规划 / 骨架 / 细节 / 异常 / 回顾)
23
+
24
+ ### 规划
25
+
26
+ 细化完成判据与步骤状态,给出 1–2 句方案。产出最小,不新开章节。PDR 的目标 / 现状差距分析在此完成(候选带模块 / FR、类型、切片、完成判据;用户挑选后才落 issue)。
27
+
28
+ ### 骨架
29
+
30
+ 实现最小可运行的垂直切片(忽略输出 / 格式细节),留下一条运行证据,并把证据展示给用户(首个 review 点)。纯修复可跳过(在 Log 注明理由);feature / 结构性改动必做。
31
+
32
+ ### 细节
33
+
34
+ 主路径实现、细节打磨与代码质量。`tdd` 可作内部循环(可选;未安装则按 `docs/agents/deps/tdd.md` 执行)。
35
+
36
+ ### 异常
37
+
38
+ 两点含义:作为流程步骤,主路径完成后再处理失败路径、边界与稳定性;作为开发现实,真实的开发阻塞立即处理并记 Log,不排队到本步。
39
+
40
+ ### 回顾(收尾回顾)
41
+
42
+ issue 完成时做一次轻量的文档同步清单(`pdr/current`、`adr`、`context`、`issues`、`agents` 是否有需更新);若无,一行 Log 即可。仅做文档同步;会话复盘属于 `retro`(未安装则按 `docs/agents/deps/boundaries.md` 执行)。
43
+
44
+ ## 进度与续接
45
+
46
+ - 步骤记录在 issue 的 `## 步骤` 清单(就地更新);步骤变更追加一行 Log。
47
+ - session 为软约束:session = 用户注意力窗口,节奏由用户掌握;agent 不得吞并超出对齐范围的工作。
48
+ - 恢复时先读 issue 的 `## 步骤` 与 `## Log`,与用户确认续点后再继续。
49
+ - issue 收尾时更新受影响模块的 `04-current.md`,并按 `issues.md` 归档。
50
+
51
+ ## 边界
52
+
53
+ - 高风险 / 大规模多阶段 → `deepwork`(未安装则按 `docs/agents/deps/boundaries.md` 执行),不叠加。
54
+ - `tdd` 可作细节内循环(seam 确认并入规划对齐;未安装则按 `docs/agents/deps/tdd.md` 执行)。
55
+ - `grilling` 为对齐访谈(`grill-me` 仅入口别名;未安装则按 `docs/agents/deps/grilling.md` 执行)。
56
+
57
+ ## 相关
58
+
59
+ - Issue 体系:`issues.md`
60
+ - PDR 文档集:`../pdr/00-README.md`
61
+ - 依赖兜底文档(外部技能未安装时):`docs/agents/deps/`
@@ -0,0 +1,21 @@
1
+ > 模板来源:project-docs-workflow v2(模板演进后可重跑幂等 init 对齐;本文件可按项目实际修改)
2
+
3
+ # <项目名> 上下文
4
+
5
+ <一两句话说明本 context 是什么、为什么存在。项目特定概念与词汇的单一事实源,不含实现细节。>
6
+
7
+ ## Language
8
+
9
+ <按自然聚类分组;无聚类时可扁平列出。只收项目特定概念,不收通用编程概念(超时、错误类型、工具函数等不进本表)。定义说明概念「是什么」,不写「怎么做」,一到两句。>
10
+
11
+ ### <分组示例>
12
+
13
+ **<术语>**:
14
+ <一到两句定义。>
15
+ _Avoid_: <应回避的同义词 / 近义词>
16
+
17
+ **<另一术语>**:
18
+ <定义。>
19
+ _Avoid_: <…>
20
+
21
+ <新增术语时照此追加;同义词归入 `_Avoid_`,措辞有歧义时优先消歧而不是并存。>
@@ -0,0 +1,36 @@
1
+ > 模板来源:project-docs-workflow v2(模板演进后可重跑幂等 init 对齐;本文件可按项目实际修改)
2
+
3
+ # PDR 文档集
4
+
5
+ PDR(Product Design Requirements)= 产品最终功能与形态规格书(目标态):描述产品最终要长成什么样、由哪些模块构成、各模块对外契约与机制设计。
6
+
7
+ ## 最终目标
8
+
9
+ <一段话描述产品的最终形态;各模块的细化目标见其 `01-spec.md`。>
10
+
11
+ ## 当前进展
12
+
13
+ <每个模块一行概览,并指向该模块的 `04-current.md`;只记状态与差距,不写流水账。>
14
+
15
+ ## 模块索引
16
+
17
+ | 区 / 模块 | 定位 | 入口 |
18
+ | :--- | :--- | :--- |
19
+
20
+ <!-- 示例(新增模块时替换并删除本行):| <区 / 模块名> | <一句话定位> | <目录>/00-README.md | -->
21
+
22
+ ## 组织约定
23
+
24
+ - 编号即阅读顺序:每模块 = 规格层(`00-README` / `01-spec` / `02-interfaces` / `03-nfr`)+ 现状快照(`04-current.md`,与目标的差距用于派生 issue)+ 设计子区(`design/`,机制级设计,不参与编号)。
25
+ - 模块外区:架构总纲、调研等跨模块材料按需单列,不占模块编号。
26
+
27
+ ## 阅读顺序
28
+
29
+ <先读什么建立整体基线与公共契约,再按模块读规格层,最后看调研 / 场景等附加材料。>
30
+
31
+ ## 新增模块
32
+
33
+ - 在 `docs/pdr/` 下建编号目录(编号沿用阅读顺序,不插号);
34
+ - 补齐规格层四件套(`00-README` / `01-spec` / `02-interfaces` / `03-nfr`)与现状快照 `04-current.md`,机制细节进 `design/`;
35
+ - 在上方模块索引与阅读顺序中登记入口,明确对外接口的提供方归属;
36
+ - 涉及产品形态的决策,同步落 ADR。
@@ -0,0 +1,53 @@
1
+ # ADR conventions
2
+
3
+ Default profile. Projects may override in their materialized `docs/adr/README.md`; that copy governs runtime behavior.
4
+
5
+ ## Files
6
+
7
+ - Filename `NNNN-slug.md`: 4-digit zero-padded. **Numbers are never reused** — a new entry takes the current maximum number + 1 (tombstone stubs count). H1 title in the project language.
8
+ - The slug (filename) is **immutable**: tombstoning clears the body only, it never renames the file.
9
+ - Numbering race: when adding, if the number is already taken (concurrent write), shift +1 and sweep references (see Reference sweep).
10
+
11
+ ## Lifecycle
12
+
13
+ The ADR set keeps current entries plus retired marker lines; editing and deleting are both allowed. Full history is held by git.
14
+
15
+ - **Semantic change** (conclusion / constraint / scope): edit in place and append one line to `## Log` — `- YYYY-MM-DD <one-line reason>` (canonical format: the date then the reason, no prefix label).
16
+ - **Non-semantic change** (typos, format, links): edit directly, no Log.
17
+ - Default is in-place editing. Write a **new** ADR only when the change is direction-defining or worth citing on its own long-term; then annotate the old entry (see Annotations).
18
+
19
+ ## Deletion
20
+
21
+ - Prefer an annotation first: `> 已废弃(日期):原因` keeps the content. Delete only when the project's **human owner** (or someone explicitly authorized by them) judges the entry has no reference value / is pure noise — agents must not decide deletion on their own.
22
+ - Deletion = **tombstone stub**: clear the file body to two lines — `# <original title>` and `> 已删除(YYYY-MM-DD):原因` — keeping the number and filename (existing path links stay valid).
23
+ - **Tombstones are final**: a tombstone stub is never deleted; the number retires permanently.
24
+ - Deletion order: ① tombstone-stub the file (rewrite the body) → ② remove the row from the catalog → ③ run the whole-repo reference sweep. On retry / re-run, check first to avoid duplicate Log lines or annotations.
25
+
26
+ ## Annotations
27
+
28
+ Status block on the first lines after the H1. Active entries carry none. Retired entries carry **only marker lines from this fixed set** — one line per retirement event, stackable; no free-form notes:
29
+
30
+ | Marker | Meaning |
31
+ | --- | --- |
32
+ | `> 已被 ADR-XXXX 取代(日期):原因` | superseded by a newer ADR (a new entry was written) |
33
+ | `> 经 ADR-XXXX 修订(日期):说明` | amended in place by a newer ADR |
34
+ | `> 已废弃(日期):原因` | deprecated; content retained |
35
+ | `> 已删除(日期):原因` | deleted; tombstone stub |
36
+
37
+ ## Reference sweep
38
+
39
+ `ADR-XXXX` (4-digit zero-padded) is the only reference notation. Whenever an entry is **deleted or semantically edited**, the executor must sweep references: prefer a subagent; without one, grep directly. Pattern `ADR-\d{4}`; scope = the whole repository (`docs/` must be updated; code comments judged one by one: keep / update / annotate in place). Handle every hit before finishing. When a reference points at a deleted entry, prefer retargeting it to the replacing ADR number; with no replacement, drop the sentence or annotate it in place `(ADR-XXXX deleted)`.
40
+
41
+ ## Index (README)
42
+
43
+ `docs/adr/README.md` is a **catalog**, not a status authority: table `| 编号 | 标题 | 一句话 |`. It lists every **not-deleted** entry — including entries carrying a retired marker; deleting removes the row, and a gap in the numbering means deleted (see the matching tombstone stub / git). The one-line column may note a retired entry's status (e.g. "superseded by ADR-XXXX"). Its rules section states this v2 lifecycle. After adding an entry, register a row in the catalog.
44
+
45
+ ## Body shape
46
+
47
+ H1 title → decision + rationale + trade-off (`代价:…`) → optional `## Log` (appended on every semantic change) → optional `## Considered Options`.
48
+
49
+ An ADR can be a single paragraph; the value is recording *that* a decision was made and *why*.
50
+
51
+ ## Relationship to domain-modeling
52
+
53
+ The base ADR format is compatible with the `domain-modeling` skill's ADR-FORMAT (未安装则按 `references/deps/domain-modeling.md` 执行). That skill forbids neither edits nor deletes and carries its own `proposed | accepted | deprecated | superseded` status words; this profile is a superset (reference sweep, tombstone stubs, catalog-style README), and the two coexist. See `coexistence.md`.
@@ -0,0 +1,49 @@
1
+ # Coexistence with other skills
2
+
3
+ ## Scope
4
+
5
+ Single-context layouts. Multi-context (`CONTEXT-MAP.md`) is not covered by this profile.
6
+
7
+ ## `domain-modeling`
8
+
9
+ Active model-sharpening conversations. The base CONTEXT and ADR formats are compatible. Where both apply, **this profile's materialized rules govern project docs** — it is a superset of the base formats (ADR lifecycle v2 (in-place edit + Log, delete→tombstone stub, reference sweep, catalog-style README); issue routing). Do not fork or redefine the base formats beyond this house variant.
10
+
11
+ Bundled lite version ships with the package; fallback doc `references/deps/domain-modeling.md`.
12
+
13
+ ## `grill-with-docs`
14
+
15
+ A wrapper: `grilling` + `domain-modeling`. Unaffected. `grill-me` is only an entry alias of `grilling`.
16
+
17
+ Bundled lite `grilling` ships with the package; fallback doc `references/deps/grilling.md` (and `references/deps/domain-modeling.md`).
18
+
19
+ ## `deepwork`
20
+
21
+ Large or high-risk multi-phase efforts run under `deepwork`. This profile's `workflow.md` is for routine single-issue development; the two are never stacked — pick one per effort.
22
+
23
+ Bundled lite version ships with the package; fallback doc `references/deps/boundaries.md`.
24
+
25
+ ## `tdd`
26
+
27
+ Nests inside the Details step of `workflow.md` (red → green loop). Seam confirmation is folded into the Plan alignment — no second gate.
28
+
29
+ Bundled lite version ships with the package; fallback doc `references/deps/tdd.md`.
30
+
31
+ ## `retro`
32
+
33
+ The workflow's fifth step 收尾回顾 is documentation sync only. Session / agent retrospectives belong to `retro`, not here.
34
+
35
+ Bundled lite version ships with the package; fallback doc `references/deps/boundaries.md`.
36
+
37
+ ## `doc-opt`
38
+
39
+ Post-hoc prose polishing of named files. Ships with the package as a full bonus skill (`skills/doc-opt`), plus the fallback doc `references/deps/doc-opt.md`. Chain it after authoring if desired; explicit invocation only.
40
+
41
+ ## Older `.scratch`-style trackers
42
+
43
+ Not used for issue tracking in these projects (DA_AGENT precedent: ADR-0012, refined by ADR-0026). This skill's `docs/issues` conventions supersede older `.scratch`-style tracking conventions.
44
+
45
+ A generic scaffolder writing the same surfaces (`docs/agents/domain.md`, an `## Agent skills` block, `CLAUDE.md` preference) is not used for scaffolding in projects on this profile; if one ran before, review its leftovers against this profile's rules (init reports diffs; never overwrites).
46
+
47
+ ## Invocation
48
+
49
+ This skill is manual-invocation only. Runtime compliance for agents comes from the project's materialized files (`AGENTS.md` + `docs/agents/*`), not from auto-loading this skill.
@@ -0,0 +1,29 @@
1
+ # 回退:边界类 skill(deepwork / retro / improve-codebase-architecture)
2
+
3
+ > 当某个边界类 skill 被引用但环境未安装时,按对应小节执行。
4
+
5
+ ## deepwork
6
+
7
+ 用于成本高、风险大、需跨多个阶段推进的整块工作。与 `project-docs-workflow` 的五步流程(规划 / 骨架 / 细节 / 异常 / 回顾)**互斥**:同一个 effort 只能选一个,绝不叠加。
8
+
9
+ **无完整 deepwork 时**:退回到一个最小的分阶段计划,每个阶段设评审闸门——**计划 → 实现 → 评审**,逐阶段推进。把每个阶段当作一次可评审的推送,评审通过才进入下一阶段。
10
+
11
+ ## retro
12
+
13
+ 会话/agent 回顾的所有权。第五步「回顾」只是文档同步,不在此列。
14
+
15
+ **最小三问回顾**:
16
+
17
+ 1. **发生了什么**:读指定会话的原始记录(未指定则默认当前会话)。
18
+ 2. **保留什么**:哪些做法或环境配置有效。
19
+ 3. **改变什么**:给出针对 agent 环境的改进候选,按严重程度排序。
20
+
21
+ ## improve-codebase-architecture
22
+
23
+ 代码库架构改进的路线(找出「深化模块」的机会,把浅模块变深,提升可测试性与 AI 可导航性),建立在领域模型与架构词汇之上。
24
+
25
+ **无完整流程时**:本技能包不提供扫描与 HTML 报告流程;需要术语或 ADR 支持时,**转 `domain-modeling`**(未安装则见同目录 `domain-modeling.md`)。
26
+
27
+ ## doc-opt
28
+
29
+ `doc-opt` 随包附带于 `skills/doc-opt`(完整版);环境未安装时可参考同目录 `doc-opt.md` 的最小回退。
@@ -0,0 +1,17 @@
1
+ # 回退:doc-opt
2
+
3
+ > 当需要调用 `doc-opt` 但环境未安装该 skill 时,按本文执行。
4
+
5
+ > doc-opt 随包附带于 `skills/doc-opt`(完整版)。
6
+
7
+ 对**指定的** markdown 文档做后置润色:读整篇文档,在不改变原意的前提下提升清晰度与结构;只改被点名的文件,绝不扫全仓。
8
+
9
+ ## 步骤
10
+
11
+ 1. **读整篇**:标出 frontmatter 与代码块——它们必须逐字节不变。
12
+ 2. **计划结构改动**(删小节、重排、合并图):先出计划,等确认再动手。
13
+ 3. **改写**:按「风格 → 图 → 引用」的顺序。删无信息的冗词(其实、值得注意的是、说白了、basically、actually 等);短句、主动语态、动词优于名词化;枚举内容用列表/表格;术语保持精确。
14
+ 4. **自检**:确认无冗词残留、无裸数字引用(`[1]`)、无遗留 ASCII 图;每个 mermaid 块有声明行与闭合围栏。
15
+ 5. **报告**:文件、改动类别、`待补充来源`、自检证据。
16
+
17
+ 引用必须可跳转(同文档 `#anchor`、仓库内相对路径、或完整 URL),否则把来源写进句内。
@@ -0,0 +1,51 @@
1
+ # 回退:domain-modeling
2
+
3
+ > 当需要调用 `domain-modeling` 但环境未安装该 skill 时,按本文执行。
4
+
5
+ > 轻量精简版,裁剪自 [mattpocock/skills](https://github.com/mattpocock/skills) 的 domain-modeling(MIT License, Copyright (c) 2026 Matt Pocock)。若环境已安装同名完整 skill,请优先使用完整版。
6
+
7
+ 主动构建并打磨项目的领域模型:挑战术语、构造边界场景、在术语与决策成型时立刻写下。**修改**模型才算本流程;只是为查词而读 `CONTEXT.md` 不算。
8
+
9
+ ## 步骤
10
+
11
+ 1. **定位文件**:根目录有 `CONTEXT-MAP.md` → 多上下文,按它找到相关 `CONTEXT.md`;只有根 `CONTEXT.md` → 单上下文;都没有 → 在第一个术语确定时惰性创建。
12
+ 2. **质疑与锐化**:
13
+ - 用词与 `CONTEXT.md` 冲突 → 立刻指出,问「到底是哪个」。
14
+ - 用词含糊或一词多义 → 提出精确的规范术语。
15
+ - 讨论领域关系 → 用具体场景压力测试,逼清概念边界。
16
+ - 用户描述行为 → 与代码交叉核对,矛盾当面提出。
17
+ 3. **当场更新 `CONTEXT.md`**(不要攒批),沿用下方格式。
18
+ 4. **按需记录 ADR**,沿用下方规则与格式。
19
+
20
+ ## CONTEXT.md 格式
21
+
22
+ ```md
23
+ # {上下文名称}
24
+
25
+ {一两句话说明这是什么上下文、为什么存在。}
26
+
27
+ ## Language
28
+
29
+ **Order**:
30
+ {一或两句话的术语描述}
31
+ _Avoid_: Purchase, transaction
32
+ ```
33
+
34
+ - 有主见:多词指同一概念时选最好的一个,其余列入 `_Avoid_`。
35
+ - 定义紧致:最多一两句,说它**是什么**,不是**做什么**。
36
+ - 只收本项目特有概念;通用编程概念不进。
37
+ - 完全不含实现细节:它是词汇表,不是 spec。
38
+
39
+ ## ADR 格式
40
+
41
+ 位置 `docs/adr/`,顺序编号 `0001-slug.md`,取现有最大号加一。
42
+
43
+ ```md
44
+ # {决策的简短标题}
45
+
46
+ {1-3 句:背景是什么、决定了什么、为什么。}
47
+ ```
48
+
49
+ 可选小节仅在确有价值时加:`Status`(`proposed | accepted | deprecated | superseded by ADR-NNNN`)、Considered Options、Consequences。
50
+
51
+ **仅当三条同时成立才写 ADR**:难以逆转;无背景会令人意外;是真实取舍的结果。缺一即跳过。
@@ -0,0 +1,31 @@
1
+ # 回退:grilling
2
+
3
+ > 当需要调用 `grilling` 但环境未安装该 skill 时,按本文执行。
4
+
5
+ > 轻量精简版,裁剪自 [mattpocock/skills](https://github.com/mattpocock/skills) 的 grilling(MIT License, Copyright (c) 2026 Matt Pocock)。若环境已安装同名完整 skill,请优先使用完整版。
6
+
7
+ 持续追问用户,直到对方案达成共同理解。把它建模成一棵**设计树**:每个决策分叉出依赖它的子决策。用**轮次**遍历这棵树。
8
+
9
+ ## 步骤
10
+
11
+ 1. **算 frontier**:frontier = 前置条件已确定、现在就能问的问题(不必臆测尚未听到的答案)。答案依赖本轮其他未决问题者,属于后续轮次。
12
+ 2. **整轮提问**:把当前 frontier 一次性全部提出;每个问题编号,并给出**你推荐的答案**。
13
+ ```
14
+ ❓ **Q1** - **<问题标题>**:<正文,可多段、可含多选项>
15
+
16
+ ➡️ <推荐答案>
17
+
18
+ ---
19
+
20
+ ❓ **Q2** - **<问题标题>**:<正文>
21
+
22
+ ➡️ <推荐答案>
23
+ ```
24
+ 3. **等用户回答**,然后回到第 1 步重算 frontier:已确定的决策把 frontier 向外推,解锁下游问题。
25
+ 4. **拆事实与决策**:环境中的事实(文件系统、工具、文档)由**你**派子 agent 去查,绝不问用户;只有依赖该探查的下游问题需要等回报,frontier 其余问题现在就问。决策一律摆到用户面前并等待,不替用户拍板。
26
+ 5. **收尾**:frontier 为空(每条分支都走过、无默认假设)即结束。
27
+
28
+ ## 硬规则
29
+
30
+ - 在用户确认已达成共同理解之前,**不要动手实施**。
31
+ - 绝不问用户你本可以自己查的事实。