@tanlinfeng/project-docs-workflow 0.0.0-stage → 2.0.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.
- package/LICENSE +21 -0
- package/NOTICE +52 -0
- package/README.md +97 -2
- package/bin/install.js +227 -0
- package/package.json +20 -4
- package/skills/deepwork/SKILL.md +15 -0
- package/skills/doc-opt/EXAMPLES.md +77 -0
- package/skills/doc-opt/SKILL.md +83 -0
- package/skills/doc-opt/agents/openai.yaml +5 -0
- package/skills/domain-modeling/SKILL.md +83 -0
- package/skills/domain-modeling/agents/openai.yaml +3 -0
- package/skills/grill-me/SKILL.md +13 -0
- package/skills/grill-with-docs/SKILL.md +18 -0
- package/skills/grilling/SKILL.md +46 -0
- package/skills/grilling/agents/openai.yaml +3 -0
- package/skills/improve-codebase-architecture/SKILL.md +15 -0
- package/skills/project-docs-workflow/SKILL.md +108 -0
- package/skills/project-docs-workflow/agents/openai.yaml +5 -0
- package/skills/project-docs-workflow/assets/templates/entries/adr-entry.md +27 -0
- package/skills/project-docs-workflow/assets/templates/entries/issue-entry.md +28 -0
- package/skills/project-docs-workflow/assets/templates/entries/pdr-current.md +19 -0
- package/skills/project-docs-workflow/assets/templates/entries/pdr-interfaces.md +28 -0
- package/skills/project-docs-workflow/assets/templates/entries/pdr-module-readme.md +34 -0
- package/skills/project-docs-workflow/assets/templates/entries/pdr-nfr.md +22 -0
- package/skills/project-docs-workflow/assets/templates/entries/pdr-spec.md +20 -0
- package/skills/project-docs-workflow/assets/templates/entries/term-entry.md +22 -0
- package/skills/project-docs-workflow/assets/templates/project/adr-readme.md +31 -0
- package/skills/project-docs-workflow/assets/templates/project/agents-block.md +15 -0
- package/skills/project-docs-workflow/assets/templates/project/agents-domain.md +44 -0
- package/skills/project-docs-workflow/assets/templates/project/agents-issues.md +65 -0
- package/skills/project-docs-workflow/assets/templates/project/agents-workflow.md +61 -0
- package/skills/project-docs-workflow/assets/templates/project/context.md +21 -0
- package/skills/project-docs-workflow/assets/templates/project/pdr-00-readme.md +36 -0
- package/skills/project-docs-workflow/references/adr.md +53 -0
- package/skills/project-docs-workflow/references/coexistence.md +49 -0
- package/skills/project-docs-workflow/references/deps/boundaries.md +29 -0
- package/skills/project-docs-workflow/references/deps/doc-opt.md +17 -0
- package/skills/project-docs-workflow/references/deps/domain-modeling.md +51 -0
- package/skills/project-docs-workflow/references/deps/grilling.md +31 -0
- package/skills/project-docs-workflow/references/deps/tdd.md +35 -0
- package/skills/project-docs-workflow/references/issues.md +51 -0
- package/skills/project-docs-workflow/references/pdr.md +33 -0
- package/skills/project-docs-workflow/references/terminology.md +21 -0
- package/skills/project-docs-workflow/references/workflow.md +45 -0
- package/skills/retro/SKILL.md +19 -0
- package/skills/tdd/SKILL.md +50 -0
- package/skills/tdd/agents/openai.yaml +3 -0
|
@@ -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
|
+
- 绝不问用户你本可以自己查的事实。
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 回退:tdd
|
|
2
|
+
|
|
3
|
+
> 当需要调用 `tdd` 但环境未安装该 skill 时,按本文执行。
|
|
4
|
+
|
|
5
|
+
> 轻量精简版,裁剪自 [mattpocock/skills](https://github.com/mattpocock/skills) 的 tdd(MIT License, Copyright (c) 2026 Matt Pocock)。若环境已安装同名完整 skill,请优先使用完整版。
|
|
6
|
+
|
|
7
|
+
以测试先行的方式构建功能或修 bug:red → green 循环。
|
|
8
|
+
|
|
9
|
+
## 步骤
|
|
10
|
+
|
|
11
|
+
1. **先定 seam**:seam 是你据以测试的公共边界(无需伸手进内部即可观察行为)。写测试前先写下待测 seam 并与用户确认;**未确认的 seam 上不写测试**。
|
|
12
|
+
2. **红**:写一个失败的测试。测试通过公共接口验证行为,读起来像规格(描述 WHAT 而非 HOW),每个测试一个逻辑断言。不要 mock 内部协作者,不要走旁路(绕过接口查数据库)。
|
|
13
|
+
3. **绿**:只写刚好让这个测试通过的实现。不加预判未来测试的投机功能。
|
|
14
|
+
4. **重复**:以**纵向切片**推进——一个测试 → 一个实现 → 重复,每个测试是回应上一轮所学的一发**曳光弹**。不要「先写完所有测试再写所有实现」。
|
|
15
|
+
5. **重构**不属于 red → green 循环;它属于评审阶段。
|
|
16
|
+
|
|
17
|
+
探索代码库时读 `CONTEXT.md`(若存在),让测试名匹配领域语言,并遵守相关 ADR。
|
|
18
|
+
|
|
19
|
+
## 期望值
|
|
20
|
+
|
|
21
|
+
期望值必须来自**独立真相源**:已知良好的字面量、算好的例子、规格。不要以代码的算法重算期望值(`expect(add(a, b)).toBe(a + b)`、手工按同样方式推出的快照)——那是同义反复,只会通过,永远无法与代码唱反调。
|
|
22
|
+
|
|
23
|
+
## mock
|
|
24
|
+
|
|
25
|
+
**只在系统边界 mock**:外部 API、数据库(有时——优先测试库)、时间/随机性、文件系统(有时)。**不要 mock** 你自己的类/模块、内部协作者、任何你控制得了的东西。
|
|
26
|
+
|
|
27
|
+
便于 mock 的边界设计:用依赖注入把外部依赖传进来;优先 SDK 式接口(每个操作一个具体函数)而非带条件的通用 fetcher。
|
|
28
|
+
|
|
29
|
+
## 反模式速查
|
|
30
|
+
|
|
31
|
+
- 耦合实现:重构后行为未变测试却坏。
|
|
32
|
+
- 同义反复:断言由构造保证为真。
|
|
33
|
+
- 横切切片:批量测试验证想象的行为,测的是形状而非用户行为。
|
|
34
|
+
|
|
35
|
+
当 seam 形状本身存疑(模块多深、seam 在哪、接口暴露什么)时,参考 `codebase-design` 的 module / interface / depth / seam / adapter / leverage / locality 词汇。
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Issue tracker
|
|
2
|
+
|
|
3
|
+
Default profile. Projects may override in their materialized `docs/agents/issues.md`; that copy governs runtime behavior.
|
|
4
|
+
|
|
5
|
+
## Directory contract
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
docs/issues/
|
|
9
|
+
├── bug/{human,agent}/ # defect fixes
|
|
10
|
+
├── feature/{human,agent}/ # new features
|
|
11
|
+
├── chore/{human,agent}/ # maintenance / refactor / misc
|
|
12
|
+
├── suggestion/{human,agent}/ # improvement ideas (no history, no status; terminus ADR / PDR)
|
|
13
|
+
└── <bug|feature|chore>/history/ # archived: filename suffixed -done / -drop
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
- `human/` and `agent/` = current responsible party. Transfer responsibility with `git mv` to the other directory.
|
|
17
|
+
- Keep near-term work only (~1-week window). Whoever finishes or abandons an entry archives it; humans sweep periodically.
|
|
18
|
+
- `history/` holds archived entries: suffix the filename `-done.md` (completed) or `-drop.md` (abandoned).
|
|
19
|
+
- `suggestion` is special: no `history/`, no status.
|
|
20
|
+
|
|
21
|
+
## Entry format
|
|
22
|
+
|
|
23
|
+
- An issue is the workflow's work unit: one feature-level deliverable (bug / chore share the shape, simplified). See `workflow.md`.
|
|
24
|
+
- Filename: short title in the project language, no number (e.g. `修复-波形首屏卡顿.md`). Archive by adding the status suffix.
|
|
25
|
+
- Metadata line: `> Status: open|doing|blocked | 责任: human|agent | 创建: YYYY-MM-DD | 关联: ...` (关联 holds links such as `ADR-XXXX` or other entries).
|
|
26
|
+
- Body: background and goal, as prose.
|
|
27
|
+
- `## 完成判据` — completion criteria.
|
|
28
|
+
- `## 结果(完成后填写,可选)` — outcome, filled in on completion (optional).
|
|
29
|
+
- `## 步骤` — the five-step checklist from `workflow.md`; update it in place, and append a Log line on every step change. Materialized (Chinese) copies show:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
## 步骤
|
|
33
|
+
- [ ] 规划(完成判据与方案已对齐)
|
|
34
|
+
- [ ] 骨架(最小可运行切片 + 证据;纯修复可跳过并注明理由)
|
|
35
|
+
- [ ] 细节(主路径实现与质量)
|
|
36
|
+
- [ ] 异常(失败路径、边界与稳定性)
|
|
37
|
+
- [ ] 回顾(收尾回顾:文档同步)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- `## Log` — dated lines appended in place; never rewrite history lines.
|
|
41
|
+
- `Status` is updated in place.
|
|
42
|
+
- Work that changes an ADR or PDR must sync those documents.
|
|
43
|
+
- If the skill is installed, the skeleton lives at `~/.agents/skills/project-docs-workflow/assets/templates/entries/issue-entry.md`; otherwise create from the format above.
|
|
44
|
+
|
|
45
|
+
## `suggestion` routing
|
|
46
|
+
|
|
47
|
+
When a suggestion is resolved:
|
|
48
|
+
|
|
49
|
+
- Accepted → land the conclusion in an ADR (or update the PDR), then remove the entry (`采纳 → 结论落 adr(或更新 pdr),随后删除本条目;`).
|
|
50
|
+
- Rejected → delete it. Record a rejection ADR only if a human explicitly asks.
|
|
51
|
+
- Actually a bug / feature / chore → move it to that directory.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# PDR product specs
|
|
2
|
+
|
|
3
|
+
PDR = target-state product spec ("产品规格书"): what the product should become, its modules, outward contracts, and mechanism design. Default profile; overridable in project copies.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
- Module directories numbered by reading order (e.g. `01-architecture/`, `02-ui/`). Root `00-README.md` = module index + reading order.
|
|
8
|
+
- Each module:
|
|
9
|
+
- `00-README.md` — role / scope-boundary / dependencies / doc map.
|
|
10
|
+
- `01-spec.md` — functional requirements, each with an `FR-<MODULE>-NN` ID and 验收判据 (acceptance criteria). FR IDs are stable and never reused; numbering is continuous per module.
|
|
11
|
+
- `02-interfaces.md` — interface contracts. The providing module owns its outward interfaces; consumers reference them.
|
|
12
|
+
- `03-nfr.md` — non-functional requirements.
|
|
13
|
+
- `04-current.md` — current-state snapshot vs the spec; dated, ≤1 page, conclusions and gaps only. See "Goal / current & gap→issues".
|
|
14
|
+
- `design/` — optional mechanism-level design, **not numbered**.
|
|
15
|
+
- Cross-module architecture and research material may live in module-external directories.
|
|
16
|
+
|
|
17
|
+
## Goal / current & gap→issues
|
|
18
|
+
|
|
19
|
+
- **The spec is the goal.** `NN/01-spec.md` is the target state; there are no separate goal files — the details of the end state live in the module specs, not in root docs.
|
|
20
|
+
- **Root README carries two sections.** `docs/pdr/00-README.md` gains 「最终目标」(one-paragraph end state; details live in the module specs) and 「当前进展」(one line of status per module, each pointing to that module's `04-current.md`).
|
|
21
|
+
- **Per-module `04-current.md`** is a current-state snapshot measured against the spec: dated, ≤1 page, conclusions and gaps only (never a log). Updated by the agent at issue completion, as part of the wrap-up review (see `workflow.md`).
|
|
22
|
+
- **Scope & adoption.** Applies to numbered modules. Existing projects adopt it lazily — per module, when that module is next touched; init reports the diff and never overwrites.
|
|
23
|
+
- **Gap → issue.** At the Plan step the agent reads goal (spec) plus current, derives gap candidates (module / FR, suggested type, slice, acceptance criteria), and the user picks. Accepted candidates land as entries in `docs/issues/` whose 关联 records the module / FR. No idle auto-creation of issues.
|
|
24
|
+
|
|
25
|
+
## PDR ↔ ADR boundary
|
|
26
|
+
|
|
27
|
+
- PDR = what the product should be (target state).
|
|
28
|
+
- ADR = decisions with rationale and trade-offs.
|
|
29
|
+
- A suggestion's acceptance routes into an ADR or the PDR (see `issues.md`).
|
|
30
|
+
|
|
31
|
+
## Example (DA_AGENT) — not part of the general rules
|
|
32
|
+
|
|
33
|
+
DA_AGENT is a concrete instance of this pattern: modules ui / agent / cpp-core / FPGA, plus architect and research as module-external areas; each module uses the spec layer `00-README / 01-spec / 02-interfaces / 03-nfr` with an unnumbered `design/` sub-area; FR prefixes read `FR-AGENT-NN`, `FR-UI-NN`, …; product scenarios sit in a separate `07-scenarios.md`. Source: DA_AGENT ADR-0026.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Domain terminology
|
|
2
|
+
|
|
3
|
+
Two layers. Default profile; overridable in project copies.
|
|
4
|
+
|
|
5
|
+
## 1. Primary glossary — `CONTEXT.md`
|
|
6
|
+
|
|
7
|
+
- Per term: `**Term**:definition` followed by `_Avoid_: synonyms`.
|
|
8
|
+
- Group terms under sections when clusters emerge; a flat list is fine for a single cohesive area.
|
|
9
|
+
- Project-specific concepts only — zero implementation detail.
|
|
10
|
+
|
|
11
|
+
## 2. Domain glossary — e.g. `docs/common/glossary.md`
|
|
12
|
+
|
|
13
|
+
- Numbered index table (one line per term) + per-term sections + cross-links.
|
|
14
|
+
|
|
15
|
+
## Usage rules
|
|
16
|
+
|
|
17
|
+
- Read `CONTEXT.md` plus the relevant ADRs before exploring.
|
|
18
|
+
- Use glossary vocabulary in every artifact (issue titles, refactor proposals, hypotheses, test names). Never drift to `_Avoid_` synonyms.
|
|
19
|
+
- A novel concept is a signal: rethink whether you are inventing language the project does not use, or record the gap (hand it to `domain-modeling`, 未安装则按 `references/deps/domain-modeling.md` 执行).
|
|
20
|
+
- If these files are missing, continue silently; creation happens when terms or decisions finalize, typically via `domain-modeling`(兜底 `references/deps/domain-modeling.md`).
|
|
21
|
+
- Flag ADR conflicts explicitly (`> _与 ADR-XXXX … 冲突,但…_`); never silently override.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Development workflow
|
|
2
|
+
|
|
3
|
+
Default profile. Projects may override in their materialized `docs/agents/workflow.md`; that copy governs runtime behavior.
|
|
4
|
+
|
|
5
|
+
The default shape for developing a single issue: align, build a thin slice, fill it in, harden it, then sync docs. The flow is a recommendation — projects may override any step — but while it is in use, its one hard rule is that alignment and planning come before implementation.
|
|
6
|
+
|
|
7
|
+
## Work unit & granularity
|
|
8
|
+
|
|
9
|
+
- The work unit is the **issue** (see `issues.md`): one feature-level deliverable. Bug / chore use the same shape, simplified.
|
|
10
|
+
- **Granularity is a suggestion**, never forced: size a slice for a single reviewable push (heuristic ≈ 0.5 person-day), elastic per task.
|
|
11
|
+
- **Stage slicing is agent-perceived** — which slice of the feature to take next never becomes directories or files; the only materialized tracking is the issue's own `## 步骤` checklist. An optional one-line note inside the issue can make the current stage explicit.
|
|
12
|
+
|
|
13
|
+
## Alignment
|
|
14
|
+
|
|
15
|
+
- **Align before building**: implementation starts only after the alignment is done and the plan / steps are written (align → plan & steps → build).
|
|
16
|
+
- Alignment is **conversational and soft**: no freeze, no ceremonial "aligned" record. Re-align proactively when needs change (feature-requirement drift).
|
|
17
|
+
- On an ambiguous direction, invoke `grilling`(未安装则按 `references/deps/grilling.md` 执行); `grill-me` is only an entry alias; `grill-with-docs` = `grilling` + `domain-modeling`(兜底 `references/deps/grilling.md` + `references/deps/domain-modeling.md`).
|
|
18
|
+
- **Gap analysis** happens here, at Plan: read the goal (spec) plus current state, derive gap candidates (module / FR, suggested type, slice, acceptance criteria), and let the user pick. No idle auto-creation of issues.
|
|
19
|
+
|
|
20
|
+
## The five steps
|
|
21
|
+
|
|
22
|
+
1. **规划 / Plan** — refine acceptance criteria, set the step checklist status, and write a 1–2 sentence approach. Minimal output; no new sections. Gap analysis happens here.
|
|
23
|
+
2. **骨架 / Skeleton** — a minimal runnable vertical slice (ignore output / formatting polish); leave one piece of run evidence and show it to the user — the first review point. Skippable for pure fixes (Log the reason); mandatory for features and structural work.
|
|
24
|
+
3. **细节 / Details** — main-path implementation, detail completion, code quality. `tdd`(未安装则按 `references/deps/tdd.md` 执行)is an optional internal loop.
|
|
25
|
+
4. **异常 / Exceptions** — failure paths, boundaries, and stability after the main path. Real development blockers are handled immediately and Logged, never queued for this step.
|
|
26
|
+
5. **回顾 / Wrap-up review** (收尾回顾) — a lightweight docs-sync checklist at issue completion (pdr/current, adr, context, issues, agents); if nothing needs updating, one Log line. Doc sync only; session / agent retrospectives belong to `retro`(未安装则按 `references/deps/boundaries.md` 执行).
|
|
27
|
+
|
|
28
|
+
## Progress & resume
|
|
29
|
+
|
|
30
|
+
- The issue entry carries a `## 步骤` checklist (the five steps); update it **in place**. Every step change appends a Log line.
|
|
31
|
+
- **Sessions are soft.** A session is the user's attention window; the user controls pace (they may new / compact between issues). The agent must not absorb work beyond the aligned scope.
|
|
32
|
+
- **On resume**, read the issue's 步骤 plus Log first, then confirm the continuation point with the user.
|
|
33
|
+
|
|
34
|
+
## Docs sync hooks
|
|
35
|
+
|
|
36
|
+
- **Plan**: gap → issue candidates land in `docs/issues`; the entry's 关联 records the module / FR.
|
|
37
|
+
- **Wrap-up review**: update the module's `04-current.md` as part of completing the issue (see `pdr.md`); touch `adr` / `context` / `issues` / `agents` when the change warrants it.
|
|
38
|
+
- **Archival**: archive the issue per `issues.md` when done / dropped.
|
|
39
|
+
|
|
40
|
+
## Boundaries
|
|
41
|
+
|
|
42
|
+
- Large or high-risk multi-phase work → `deepwork`(未安装则按 `references/deps/boundaries.md` 执行); never stack it with this flow.
|
|
43
|
+
- `tdd`(未安装则按 `references/deps/tdd.md` 执行)nests inside Details; seam confirmation folds into the Plan alignment (no second gate).
|
|
44
|
+
- `retro`(未安装则按 `references/deps/boundaries.md` 执行)owns session / agent retrospectives; the fifth step is docs sync only.
|
|
45
|
+
- See `coexistence.md` for how this profile sits beside these skills.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: retro
|
|
3
|
+
description: 对编码会话或 agent 表现做回顾,输出针对 agent 环境的改进建议。
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Retro(会话回顾)
|
|
8
|
+
|
|
9
|
+
> 轻量精简版,裁剪自 [mattpocock/skills](https://github.com/mattpocock/skills) 的 retro(MIT License, Copyright (c) 2026 Matt Pocock)。若环境已安装同名完整 skill,请优先使用完整版。
|
|
10
|
+
|
|
11
|
+
会话/agent 回顾的所有权属于本 skill;`project-docs-workflow` 第五步「回顾」只是文档同步,不做会话回顾。
|
|
12
|
+
|
|
13
|
+
最小回顾至少覆盖三问:
|
|
14
|
+
|
|
15
|
+
1. **发生了什么**:读指定会话的原始记录(未指定则默认当前会话),尽量取原始来源。
|
|
16
|
+
2. **保留什么**:哪些做法或环境配置有效,值得延续。
|
|
17
|
+
3. **改变什么**:给出针对 agent **环境**的改进候选(导航指针、自动化检查、编码规范、全局指令瘦身、工具经济性、多余指令、信息可达性),按严重程度排序呈现给用户。
|
|
18
|
+
|
|
19
|
+
若环境未安装完整 skill,按 `project-docs-workflow/references/deps/boundaries.md` 的最小三问回顾执行。
|