@tanlinfeng/project-docs-workflow 2.2.0 → 3.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/NOTICE +8 -10
- package/README.md +97 -143
- package/bin/install.js +731 -139
- package/package.json +2 -2
- package/skills/docs-html-view/SKILL.md +119 -0
- package/skills/docs-html-view/agents/openai.yaml +5 -0
- package/skills/docs-html-view/assets/conf.py.template +44 -0
- package/skills/docs-html-view/assets/guard.py +128 -0
- package/skills/docs-html-view/references/technical.md +151 -0
- package/skills/docs-html-view/requirements.txt +5 -0
- package/skills/docs-html-view/scripts/gen_nav.py +306 -0
- package/skills/docs-html-view/scripts/prepare_env.py +154 -0
- package/skills/project-docs-workflow/SKILL.md +27 -12
- package/skills/project-docs-workflow/assets/templates/entries/current-module.md +19 -0
- package/skills/project-docs-workflow/assets/templates/entries/pdr-spec.md +1 -1
- package/skills/project-docs-workflow/assets/templates/project/adr-readme.md +2 -1
- package/skills/project-docs-workflow/assets/templates/project/agents-block.md +1 -1
- package/skills/project-docs-workflow/assets/templates/project/agents-domain.md +3 -3
- package/skills/project-docs-workflow/assets/templates/project/agents-issues.md +6 -5
- package/skills/project-docs-workflow/assets/templates/project/agents-workflow.md +9 -6
- package/skills/project-docs-workflow/assets/templates/project/current-00-readme.md +42 -0
- package/skills/project-docs-workflow/assets/templates/project/pdr-00-readme.md +6 -7
- package/skills/project-docs-workflow/references/adr.md +5 -1
- package/skills/project-docs-workflow/references/coexistence.md +8 -6
- package/skills/project-docs-workflow/references/current.md +39 -0
- package/skills/project-docs-workflow/references/deps/boundaries.md +4 -2
- package/skills/project-docs-workflow/references/deps/domain-modeling.md +1 -1
- package/skills/project-docs-workflow/references/deps/grilling.md +3 -1
- package/skills/project-docs-workflow/references/deps/tdd.md +2 -2
- package/skills/project-docs-workflow/references/issues.md +3 -2
- package/skills/project-docs-workflow/references/pdr.md +15 -10
- package/skills/project-docs-workflow/references/rendering.md +29 -0
- package/skills/project-docs-workflow/references/workflow.md +6 -5
- package/skills/deepwork/SKILL.md +0 -15
- package/skills/domain-modeling/SKILL.md +0 -83
- package/skills/domain-modeling/agents/openai.yaml +0 -3
- package/skills/grill-me/SKILL.md +0 -13
- package/skills/grill-with-docs/SKILL.md +0 -18
- package/skills/grilling/SKILL.md +0 -46
- package/skills/grilling/agents/openai.yaml +0 -3
- package/skills/improve-codebase-architecture/SKILL.md +0 -15
- package/skills/project-docs-workflow/assets/templates/entries/pdr-current.md +0 -19
- package/skills/retro/SKILL.md +0 -19
- package/skills/tdd/SKILL.md +0 -50
- package/skills/tdd/agents/openai.yaml +0 -3
package/NOTICE
CHANGED
|
@@ -8,22 +8,20 @@ Licensed under the MIT License (see LICENSE).
|
|
|
8
8
|
Third-party attribution
|
|
9
9
|
-----------------------
|
|
10
10
|
|
|
11
|
-
Portions of the
|
|
11
|
+
Portions of the internal fallback references in this package are trimmed / adapted from:
|
|
12
12
|
|
|
13
13
|
https://github.com/mattpocock/skills
|
|
14
14
|
MIT License
|
|
15
15
|
Copyright (c) 2026 Matt Pocock
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
This package does not bundle standalone dependency skills. The following internal fallback
|
|
18
|
+
references (used when the standalone skill is absent) contain material derived from the
|
|
19
|
+
project above:
|
|
18
20
|
|
|
19
|
-
- skills/grilling
|
|
20
|
-
- skills/
|
|
21
|
-
- skills/
|
|
22
|
-
- skills/
|
|
23
|
-
- skills/tdd
|
|
24
|
-
- skills/deepwork
|
|
25
|
-
- skills/retro
|
|
26
|
-
- skills/improve-codebase-architecture
|
|
21
|
+
- skills/project-docs-workflow/references/deps/grilling.md
|
|
22
|
+
- skills/project-docs-workflow/references/deps/domain-modeling.md
|
|
23
|
+
- skills/project-docs-workflow/references/deps/tdd.md
|
|
24
|
+
- skills/project-docs-workflow/references/deps/boundaries.md
|
|
27
25
|
|
|
28
26
|
The MIT permission notice for the upstream material is reproduced below.
|
|
29
27
|
|
package/README.md
CHANGED
|
@@ -1,198 +1,152 @@
|
|
|
1
1
|
# @tanlinfeng/project-docs-workflow
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
面向 AI agent 的项目文档工作流 skill:帮助项目建立并维护 issue tracker、ADR、PDR、领域术语和开发工作流。主 skill 自带依赖兜底材料,可独立使用。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 快速开始
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**前置条件:** Node.js >= 18,并可使用 `npx`。安装器默认将 skill 安装到 `~/.agents/skills`。
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- **terminology**:领域术语表,统一团队与 agent 的词汇
|
|
13
|
-
- **workflow**:上述文档之间的协作与更新流程
|
|
9
|
+
```bash
|
|
10
|
+
# 默认动作即安装;@latest 是 dist-tag,不保证等于最高版本
|
|
11
|
+
npx @tanlinfeng/project-docs-workflow@latest install
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
# 也可指定一个实际已发布的确切版本(示例)
|
|
14
|
+
npx @tanlinfeng/project-docs-workflow@2.2.0 install
|
|
15
|
+
```
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
不带版本时,`npx` 可能**优先使用当前项目已安装的版本**;要选择安装器版本,请显式写 `@latest` 或 `@<版本>`(缓存 / 网络策略另计)。安装器自身**不获取版本**,而是从所选源包同步内容。
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
**兼容性限定:** `npx <pkg>@<版本> install` 运行的是**该版本自带的安装器代码**。本页描述的自动同步 / `--force` 等语义**仅适用于包含本安装策略的包版本**;更早的已发布版本保留其当时的行为(例如 `--force` 可能只覆盖主 skill)。因此「指定较旧版本」只在这类兼容版本内才是等价回滚。示例中的 `@2.2.0` 仅用于说明 npm 语法(须为实际已发布的版本),不表示该版本具备上述新语义。
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
npx @tanlinfeng/project-docs-workflow
|
|
23
|
-
```
|
|
21
|
+
这一步只安装 skill,**不会初始化任何项目文档**。安装完成后,进入要设置文档的**目标项目根目录**,使用当前 agent 自己的 skill 调用方式手动运行 `project-docs-workflow`。例如可以这样请求:
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
> 请使用 project-docs-workflow skill,为当前项目初始化项目文档工作流。
|
|
26
24
|
|
|
27
|
-
|
|
28
|
-
| --- | --- |
|
|
29
|
-
| `npx @tanlinfeng/project-docs-workflow` | 默认动作 `install`:安装主 skill 及所有依赖 skill |
|
|
30
|
-
| `npx @tanlinfeng/project-docs-workflow --dir <path>` | 指定 skills 根目录(默认 `~/.agents/skills`) |
|
|
31
|
-
| `npx @tanlinfeng/project-docs-workflow --force` | 覆盖已存在的 `project-docs-workflow`(**仅主 skill**;依赖 skill 仍不覆盖) |
|
|
32
|
-
| `npx @tanlinfeng/project-docs-workflow --dry-run` | 只打印将执行的操作,不写入任何文件 |
|
|
33
|
-
| `npx @tanlinfeng/project-docs-workflow --with-matt-skills` | 可选:依赖 skill 改从上游 `mattpocock/skills` 安装**完整版**(需 Node >= 22.20) |
|
|
34
|
-
| `npx @tanlinfeng/project-docs-workflow --matt-agent <name>` | 上游安装使用的 agent(默认 `codex`,落盘到其全局目录 `~/.agents/skills`) |
|
|
35
|
-
| `npx @tanlinfeng/project-docs-workflow check` | 检查依赖 skill 的解析状态,全部可解析时退出码为 0,否则为 1 |
|
|
36
|
-
| `npx @tanlinfeng/project-docs-workflow uninstall` | 依据**安装清单**卸载本包安装的 skill(只删本包装的,见下文「卸载」) |
|
|
37
|
-
| `npx @tanlinfeng/project-docs-workflow uninstall --dry-run` | 只打印卸载计划(将删除 / 保留哪些),不写入 |
|
|
38
|
-
| `npx @tanlinfeng/project-docs-workflow uninstall --force` | 跳过交互确认;非 TTY 场景下**必须**加此参数 |
|
|
25
|
+
skill 会检查并创建缺少的内容,包括:
|
|
39
26
|
|
|
40
|
-
|
|
27
|
+
- `AGENTS.md` 中的 `## Agent skills` 区块
|
|
28
|
+
- `docs/agents/issues.md`、`docs/agents/domain.md`、`docs/agents/workflow.md`
|
|
29
|
+
- `docs/agents/deps/` 依赖兜底文件
|
|
30
|
+
- `docs/issues/` issue 目录树
|
|
31
|
+
- `docs/adr/README.md`、`docs/pdr/00-README.md`、`docs/current/00-README.md` 和 `CONTEXT.md`
|
|
41
32
|
|
|
42
|
-
|
|
33
|
+
每个项目手动运行一次即可。以后模板更新时可以再次运行,以检查对齐情况并报告差异;运行是幂等的,不会改写已有内容。例外是:若 `AGENTS.md` 已存在但没有 `## Agent skills`,skill 会在文件末尾追加该区块;若区块已存在,则只比较、不重写。
|
|
43
34
|
|
|
44
|
-
|
|
35
|
+
## 命令与选项
|
|
45
36
|
|
|
46
|
-
|
|
37
|
+
| 场景 | 命令 / 选项 | 说明 |
|
|
38
|
+
| --- | --- | --- |
|
|
39
|
+
| 安装到默认目录 | `npx @tanlinfeng/project-docs-workflow` | 默认动作是安装,目标为 `~/.agents/skills`。 |
|
|
40
|
+
| 预览安装 | `npx @tanlinfeng/project-docs-workflow --dry-run` | 仅显示计划:不写文件、不询问、不执行上游;Node 相关判断(如上游可用性)如实反映。 |
|
|
41
|
+
| 指定 skills 根目录 | `npx @tanlinfeng/project-docs-workflow --dir <path>` | 覆盖默认目录。 |
|
|
42
|
+
| 覆盖第一方 skill | `npx @tanlinfeng/project-docs-workflow --force` | 当第一方条目无法被有效清单确认为包内安装时,显式替换它;**不**更新外部依赖(外部更新需显式 `--with-matt-skills`)。卸载时表示跳过交互确认。 |
|
|
43
|
+
| 显式刷新上游依赖 | `npx @tanlinfeng/project-docs-workflow --with-matt-skills` | 可选增强:通过 `npx` 安装缺失 + 更新已存在的 8 个外部上游完整版;仅在默认 codex 全局目标可执行,其他组合在写入前拒绝。需 Node.js >= 22.20;失败不复制独立轻量版。 |
|
|
44
|
+
| 检查依赖 | `npx @tanlinfeng/project-docs-workflow check` | 逐项检查:目标目录存在同名 skill(按名解析,**不**验证是否为完整版)**或**主 skill 内置回退 `references/deps/*` 可用即通过;全新安装(未装任何独立依赖)也会通过。不检查主 skill 是否安装,也不检查项目文档是否初始化。 |
|
|
45
|
+
| 预览卸载 | `npx @tanlinfeng/project-docs-workflow uninstall --dry-run` | 只显示删除计划,不询问、不删除。 |
|
|
46
|
+
| 交互卸载 | `npx @tanlinfeng/project-docs-workflow uninstall` | 根据安装清单卸载本包记录的内容;TTY 下询问确认(默认否)。 |
|
|
47
|
+
| 非交互卸载 | `npx @tanlinfeng/project-docs-workflow uninstall --force` | 跳过确认;非 TTY 下必须显式传入 `--force`。 |
|
|
47
48
|
|
|
48
|
-
|
|
49
|
-
npx --yes skills@latest add mattpocock/skills -g -y -a <agent> -s <name1> <name2> ...
|
|
50
|
-
```
|
|
49
|
+
更多安装依赖的选项及行为见下方「高级细节」。
|
|
51
50
|
|
|
52
|
-
|
|
53
|
-
- **受管集合**:仅这 8 个名字参与上游安装:`grilling`、`grill-me`、`grill-with-docs`、`domain-modeling`、`tdd`、`deepwork`、`retro`、`improve-codebase-architecture`;`doc-opt` 与主 skill 不属于上游集合,维持原有行为。
|
|
54
|
-
- **永不覆盖**:调用上游前会先检测这 8 个名字里哪些在目标目录中**已存在**,已存在者**原样保留、绝不提交给上游**;只有缺失的名字才会通过 `-s` 传给上游。
|
|
55
|
-
- **顺序与去重**:先跑上游;随后复核上游目标目录,仍然缺失的名字才回退复制本包的轻量版。启用上游时,由上游负责的名字不会再复制轻量版;未启用时(默认)行为与之前完全一致。
|
|
56
|
-
- **降级、绝不失败**:Node < 22.20、找不到 `npx`、上游非 0 退出或网络错误时,只打印中文告警并回退到缺失项的轻量版安装,整体仍以退出码 0 结束。
|
|
57
|
-
- **agent 与目录注意**:上游固定以 `-a <agent> -g` 安装到该 agent 的**全局目录**(默认 `codex` → `~/.agents/skills`,正好与默认目标一致)。可用 `--matt-agent <name>` 覆盖 agent。若你传入了非默认的 `--dir`,上游部分**无法跟随 `--dir`**(仍落到 agent 全局目录),安装器会明确告警,同时 `--dir` 下的轻量版仍按原逻辑处理。
|
|
58
|
-
- **dry-run**:`--dry-run --with-matt-skills` 只打印将执行的上游命令、以及哪些名字因已存在而跳过,不实际执行。
|
|
51
|
+
## 安装与更新语义
|
|
59
52
|
|
|
60
|
-
|
|
53
|
+
普通安装(默认动作)对**第一方 skill**(`project-docs-workflow`、`doc-opt`、`docs-html-view`)执行**全目录同步**:
|
|
61
54
|
|
|
62
|
-
|
|
55
|
+
- 若上一份**有效清单**确认该路径由本包安装(`installed` / `forced`、本地),安装会用源包内容覆盖该目录——**可能覆盖你对本地文件所做的修改**。第一方受管安装目录是可整体替换的分发副本。
|
|
56
|
+
- 若某第一方路径无法被有效清单确认为包内安装(手工复制、清单记为 `skipped`、清单缺失、清单损坏 / 不可解析、符号链接),默认**保留**不动;只有显式 `--force` 才替换该第一方条目。替换的是该路径本身,符号链接指向的 referent 不被改动。
|
|
63
57
|
|
|
64
|
-
|
|
58
|
+
**外部依赖默认不分发、不自动安装**:普通安装与 `--force` 默认都**不**安装或更新独立外部依赖(`--force` 只作用于第一方);唯一的例外是用户在上文「可选增强」中明确同意安装缺失的上游完整版。缺失的独立名称**不等于能力缺失**——主 skill 内置回退 `references/deps/*` 已可用,全新安装即可独立工作。安装**先检查 / 列出**依赖:已存在的独立依赖一律保留;对**缺失**的受支持名称,仅在交互式安装(stdin 与 stdout 均为 TTY、非 dry-run)且上游目标安全、Node 达标时,**可选**询问一次是否安装上游完整版(回答 yes 只安装缺失项、不更新已有)。No / 回车 / 非 TTY / 非等价的自定义 `--dir` / Node 不足 → 直接使用内部回退,**不**复制任何独立轻量 skill。要**刷新已有外部依赖**,须显式 `--with-matt-skills`(见「可选上游依赖」)或自行手动更新。主 skill 的内部引用(`references/deps/*`)随主 skill 一起更新,不当作独立外部依赖单独管理。
|
|
65
59
|
|
|
66
|
-
|
|
67
|
-
{
|
|
68
|
-
"version": "2.2.0",
|
|
69
|
-
"target": "/home/me/.agents/skills",
|
|
70
|
-
"updatedAt": "2026-10-12T05:24:36.386Z",
|
|
71
|
-
"entries": {
|
|
72
|
-
"project-docs-workflow": { "kind": "main", "action": "installed", "at": "…" },
|
|
73
|
-
"tdd": { "kind": "lite", "action": "installed", "at": "…" },
|
|
74
|
-
"doc-opt": { "kind": "doc-opt", "action": "installed", "at": "…" },
|
|
75
|
-
"deepwork": { "kind": "lite", "action": "skipped", "at": "…" },
|
|
76
|
-
"retro": { "kind": "upstream", "action": "installed", "agent": "codex", "at": "…" }
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
```
|
|
60
|
+
安装只处理 skills 目录,**不会**初始化或改写目标项目内已物化的文档(`AGENTS.md`、`docs/agents/*` 等);项目文档需要显式运行 skill 对齐 / 迁移。`--dry-run` 不写任何文件、不询问、不执行上游,逐条显示将执行的精确动作。本包不提供独立的 `update` 命令;更新即重新运行安装。
|
|
80
61
|
|
|
81
|
-
|
|
82
|
-
- `action`:`installed`(本次由本包创建)、`forced`(被 `--force` 覆盖,仍属本包)、`skipped`(安装时已存在,本包原样保留,**永不删除**)。
|
|
83
|
-
- 每次成功 `install` 都会**合并更新**清单(不会丢失旧条目);`--dry-run` 不写清单。
|
|
62
|
+
**边界说明(简明):**
|
|
84
63
|
|
|
85
|
-
|
|
64
|
+
- **清单文件本身是符号链接时始终拒绝**(即使 `--force`),以免覆盖外部文件;这与「第一方 skill 路径是符号链接」不同——后者在 `--force` 下可替换该路径本身。
|
|
65
|
+
- 替换按**单个 skill** 进行:某次替换失败时会尝试恢复旧内容;若无法恢复,则保留备份并在报告中给出路径。这只是单个 skill 的失败处理,**不是**所有 skill 的事务性原子操作。
|
|
86
66
|
|
|
87
|
-
|
|
67
|
+
## 卸载安全须知
|
|
88
68
|
|
|
89
|
-
|
|
90
|
-
npx @tanlinfeng/project-docs-workflow uninstall [--dir <path>] [--dry-run] [--force]
|
|
91
|
-
```
|
|
69
|
+
安装器会在目标 skills 根目录写入 `<target>/.project-docs-workflow.install.json`,卸载时依据清单记录的 skill **名称和操作类型**决定删除哪些路径:`installed` / `forced` 项会删除,`skipped` 项保留。清单记录的是名称和操作,**不记录内容哈希,也不记录你对本地文件的改动指纹**:如果你之后把自己或其他工具的内容放到一个记录为本包安装的同名路径下,卸载仍会删除该路径。第一方受管安装目录是可整体替换的分发副本。运行卸载前请先检查清单和目标目录;不确定时先使用 `--dry-run`。
|
|
92
70
|
|
|
93
|
-
|
|
94
|
-
- **删除方式**:`main` / `lite` / `doc-opt` 直接删除 `<target>/<name>` 目录。`upstream` 的完整版**优先委托上游** `skills` CLI 卸载(按 agent 批量):`npx --yes skills@latest remove <names> -g -y -a <agent>`;当无法委托时(Node < 22.20、找不到 `npx`、上游非 0 退出)会打印告警并**回退直接删除**目录,并提示上游锁文件 `~/.agents/.skill-lock.json` 可能残留过期条目,可用 `npx skills@latest list` 核对。
|
|
95
|
-
- **收尾**:处理完成后删除清单文件本身;**不会**删除目标目录本身,其它文件与空目录保持不动。
|
|
96
|
-
- **幂等**:没有可删项时打印友好提示并以退出码 0 结束。若**清单缺失**,会告警「无清单,尽力而为」,此时**仅**在 `project-docs-workflow` 存在时询问是否删除它,其余 skill 一律不动。
|
|
71
|
+
如果清单不存在,卸载器只会处理主 skill `project-docs-workflow`,不会推测或删除其他依赖。实际卸载中,只有存在可移除条目时才会在完成后删除清单;dry-run、取消操作和没有可移除条目的运行都会保留清单。清单里的上游完整版会尽量通过 `skills` CLI 卸载;无法调用 CLI 时会回退为直接删除,可能留下上游锁文件中的过期条目。
|
|
97
72
|
|
|
98
|
-
##
|
|
73
|
+
## 手动复制
|
|
99
74
|
|
|
100
|
-
|
|
101
|
-
# —— 安装 ——
|
|
102
|
-
npx @tanlinfeng/project-docs-workflow # 装到默认 ~/.agents/skills(轻量依赖)
|
|
103
|
-
npx @tanlinfeng/project-docs-workflow --dir ~/.config/opencode/skills
|
|
104
|
-
npx @tanlinfeng/project-docs-workflow --dry-run # 预演,不写入
|
|
105
|
-
npx @tanlinfeng/project-docs-workflow --force # 覆盖主 skill(依赖仍不覆盖)
|
|
106
|
-
npx @tanlinfeng/project-docs-workflow --with-matt-skills # 依赖改从上游装完整版(需 Node >= 22.20)
|
|
107
|
-
npx @tanlinfeng/project-docs-workflow --with-matt-skills --matt-agent opencode
|
|
108
|
-
|
|
109
|
-
# —— 检查依赖解析 ——
|
|
110
|
-
npx @tanlinfeng/project-docs-workflow check # 全部可解析退出 0,否则 1
|
|
111
|
-
|
|
112
|
-
# —— 卸载 ——
|
|
113
|
-
npx @tanlinfeng/project-docs-workflow uninstall --dry-run # 只出计划
|
|
114
|
-
npx @tanlinfeng/project-docs-workflow uninstall # 交互确认(默认否)
|
|
115
|
-
npx @tanlinfeng/project-docs-workflow uninstall --force # 非交互必传;只删本包安装的
|
|
116
|
-
npx @tanlinfeng/project-docs-workflow uninstall --dir ~/.config/opencode/skills --force
|
|
117
|
-
```
|
|
75
|
+
也可以不使用 npm 安装器,直接将 `skills/` 中需要的目录复制到 skills 根目录;只复制 `skills/project-docs-workflow` 也可以独立工作,因为主 skill 内含依赖 ref 兜底。手动复制不创建安装清单,因此这些路径属于「无法被有效清单确认」的第一方路径,安装时默认**保留**,只有显式 `--force` 才替换。之后运行 `uninstall` 时无法识别手动复制的依赖;若没有安装清单,它只会处理主 skill。
|
|
118
76
|
|
|
119
|
-
|
|
120
|
-
- 卸载在非 TTY 下没有 `--force` 会**拒绝执行**(退出码 1);`--dry-run` 从不询问、从不写入。
|
|
77
|
+
## docs-html-view(可选:手动渲染文档)
|
|
121
78
|
|
|
122
|
-
|
|
79
|
+
本包附带一个第一方 skill `docs-html-view`(与主 skill、`doc-opt` 一样,不属于上游集合)。安装器会随包一起分发它,但**安装时不会运行它**,项目文档初始化时也不会启用它;它只在用户手动调用时工作。
|
|
123
80
|
|
|
124
|
-
|
|
81
|
+
用途:把项目文档(PDR / Current / ADR)用标准的 Read the Docs(RTD)主题与 MyST Markdown 解析渲染成静态 HTML,输出到 `docs/docsHtmlView/build/html`。仅供本地浏览与分享,不替代源文档。
|
|
125
82
|
|
|
126
|
-
|
|
127
|
-
- 也可以**只复制 `skills/project-docs-workflow` 这一个目录**:它会通过内部的 ref 兜底(`references/deps/*.md`)独立工作,无需其他依赖 skill。
|
|
83
|
+
**边界(重要):**
|
|
128
84
|
|
|
129
|
-
|
|
85
|
+
- **先确认再动手**:初始化与构建前,agent 会先列出所需的 Python 包、环境以及将要创建 / 修改的文件,取得你的明确同意后才执行;不会静默装包或改环境。
|
|
86
|
+
- **环境**:优先复用项目明确约定的文档环境;没有合适环境时才创建独立的 `.venv-docs`,不修改系统或应用环境。
|
|
87
|
+
- **标准构建**:首次使用 `sphinx-quickstart` 初始化,之后复用配置,通过 `make html`(或 `sphinx-build`)按需增量构建,不自建渲染封装器。
|
|
88
|
+
- **全手动**:不注册自动钩子,不自动打开浏览器,不启动常驻服务,不部署。
|
|
89
|
+
- **源文档只读**:渲染只读取源文档,不修改 `docs/` 下的 PDR / Current / ADR 源文件。
|
|
90
|
+
- **不参与 `check`**:`project-docs-workflow check` 只检查主 skill 的依赖解析状态,**不检查** `docs-html-view`,也不校验其渲染结果。
|
|
130
91
|
|
|
131
|
-
skill
|
|
92
|
+
具体的脚本、命令与参数以该 skill 的 `SKILL.md` 为准(安装后位于 `<skills 根目录>/docs-html-view/SKILL.md`),README 不再重复其接口。
|
|
132
93
|
|
|
133
|
-
|
|
134
|
-
2. **ref 兜底**:否则,回退到主 skill 内部自带的 `references/deps/<fallback>.md`。
|
|
94
|
+
## English summary
|
|
135
95
|
|
|
136
|
-
|
|
137
|
-
| --- | --- |
|
|
138
|
-
| `grilling` | `grilling.md` |
|
|
139
|
-
| `grill-me` | `grilling.md` |
|
|
140
|
-
| `grill-with-docs` | `grilling.md`、`domain-modeling.md` |
|
|
141
|
-
| `domain-modeling` | `domain-modeling.md` |
|
|
142
|
-
| `tdd` | `tdd.md` |
|
|
143
|
-
| `deepwork` | `boundaries.md` |
|
|
144
|
-
| `retro` | `boundaries.md` |
|
|
145
|
-
| `doc-opt` | `doc-opt.md` |
|
|
146
|
-
| `improve-codebase-architecture` | `boundaries.md` |
|
|
96
|
+
`@tanlinfeng/project-docs-workflow` is an agent skill for setting up and maintaining project documentation workflows: issues, ADRs, PDRs, domain terminology, and development practices. Install it with `npx @tanlinfeng/project-docs-workflow@latest install`, or pin an exact published version with an npm spec such as `@2.2.0` (Node.js >= 18; default destination `~/.agents/skills`). Without a spec, npx may prefer the version already installed in the current project; write `@latest` or `@<version>` to select the installer version (cache/network policy is separate), and the installer never fetches versions itself. Because `npx <pkg>@<version> install` runs that version's own installer code, the sync / `--force` semantics on this page apply only to package versions that contain this installation strategy; older published versions keep their historical behavior (e.g. `--force` may only overwrite the main skill), so pinning an older version is only an equivalent rollback within such compatible versions. Installation does not initialize a project: from the target project root, manually invoke the skill using your agent's own skill mechanism. It creates missing documentation, reports drift on reruns, and does not overwrite existing content, except that it appends a missing `## Agent skills` block to an existing `AGENTS.md`.
|
|
147
97
|
|
|
148
|
-
`
|
|
98
|
+
An ordinary install full-directory-syncs the first-party skills (`project-docs-workflow`, `doc-opt`, `docs-html-view`) when a valid manifest confirms the package installed them, so it may overwrite local edits; a first-party path not confirmed as package-owned is preserved unless `--force` replaces that entry. External dependencies are preserved by default, and `--force` alone does not update them; explicit `--with-matt-skills` refreshes the eight supported upstream names (updating existing ones and installing missing) only on the default codex target, with other target/agent combinations rejected before any write. The package ships no standalone dependency skills: missing external names are covered by the skill's internal fallback references (`references/deps/*`), no independent lite skill is copied, and existing standalone installs (including older lite copies) are preserved and never auto-cleaned or migrated. A manifest file that is itself a symlink is always refused (even with `--force`), unlike a first-party skill path that is a symlink; per-skill replacement failures restore the old content or retain a backup and report the path, so this is not an all-skills transaction. The installer supports custom directories, dry runs, dependency checks, and manifest-based uninstall. Uninstall removes recorded package-owned paths by name, not by content hash, and records no local-edit fingerprints; review the manifest or use a dry run before deleting anything. See the advanced details below for optional upstream dependencies and manifest behavior.
|
|
149
99
|
|
|
150
|
-
|
|
100
|
+
The package also ships a first-party `docs-html-view` skill (manual invocation only; distributed but not run at install). It renders PDR/Current/ADR docs to `docs/docsHtmlView/build/html` with Sphinx, MyST, and the stock RTD theme. After approval of packages, environment, and files, it uses `sphinx-quickstart` once and standard `make html` or `sphinx-build` thereafter. It never hooks, opens a browser, serves, deploys, or mutates source docs. `check` does not cover it.
|
|
151
101
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
| `project-docs-workflow` | 主 skill:issue / ADR / PDR / 术语 / 工作流 | 本包 |
|
|
155
|
-
| `grilling`、`grill-me`、`grill-with-docs` | 需求拷问相关 | `mattpocock/skills` 精简版(MIT,Matt Pocock) |
|
|
156
|
-
| `domain-modeling` | 领域建模 | 同上 |
|
|
157
|
-
| `tdd` | 测试驱动开发 | 同上 |
|
|
158
|
-
| `deepwork`、`retro`、`improve-codebase-architecture` | 精简/占位版本 | 同上 |
|
|
159
|
-
| `doc-opt` | 文档优化(附赠完整版) | 本包附赠 |
|
|
102
|
+
<details>
|
|
103
|
+
<summary>高级细节</summary>
|
|
160
104
|
|
|
161
|
-
|
|
105
|
+
### 可选上游依赖
|
|
162
106
|
|
|
163
|
-
|
|
107
|
+
主 skill **自带内部回退**(`references/deps/{grilling,domain-modeling,tdd,doc-opt,boundaries}.md`):外部依赖未安装时按对应回退执行,功能可用。本包**不**随包分发独立依赖 skill——默认只分发三个第一方 skill(`project-docs-workflow`、`doc-opt`、`docs-html-view`);安装器也不复制任何独立轻量 skill。
|
|
164
108
|
|
|
165
|
-
|
|
109
|
+
**默认(不带 `--with-matt-skills`):**
|
|
110
|
+
- 已存在的独立依赖一律**保留**(含旧版本曾复制的轻量目录),不判定完整版、不自动清理 / 迁移。
|
|
111
|
+
- 缺失的受支持名称:仅在交互式安装(stdin 与 stdout 均为 TTY、非 dry-run)且上游目标安全、Node >= 22.20 时**可选**询问一次;这是**可选的完整版增强**,不是必需依赖。回答 yes 只安装缺失项;No / 直接回车 / 非 TTY / 非等价的自定义 `--dir` / Node 不足时,直接使用内部回退(**不**复制独立轻量 skill)。
|
|
112
|
+
- `--force` 单独使用**不**安装或更新外部依赖。
|
|
166
113
|
|
|
167
|
-
|
|
114
|
+
**显式 `--with-matt-skills`(可选增强):** 通过 `npx` 安装缺失 + **更新**已存在的 8 个外部上游完整版;不询问,提示**本地依赖改动可能被覆盖**。第一方自带集合(主 skill、`doc-opt`、`docs-html-view`)**不提交上游**,但仍照常执行普通第一方全目录同步;命名集合之外的外部目录保留不动。需 Node.js >= 22.20。
|
|
168
115
|
|
|
169
|
-
|
|
116
|
+
仅以下 8 个名称参与上游操作:`grilling`、`grill-me`、`grill-with-docs`、`domain-modeling`、`tdd`、`deepwork`、`retro`、`improve-codebase-architecture`。`/grill-me` 不再由本包提供独立入口;需要独立入口请安装上游,主 skill 的内部回退仍支持相同行为(无斜杠别名)。
|
|
170
117
|
|
|
171
|
-
|
|
118
|
+
**目标目录安全(重要):** 上游 `skills` CLI 没有 `--dir`,其目标由 `-g -a <agent>` 决定。本安装器只在**默认 codex 全局目标**(或与其 realpath 等价、可验证匹配的目录)下才执行上游操作;只有**非等价的自定义 `--dir`,或未经验证的 `--matt-agent` 组合**无法证明匹配,会在**任何写入之前拒绝** `--with-matt-skills` 并给出手动更新指引。普通(非等价自定义 `--dir`)安装仍照常保留已有依赖、使用内部回退,不给出误导性的上游询问;realpath 与默认目标等价的别名不受此限,仍可能给出可选询问。
|
|
172
119
|
|
|
173
|
-
|
|
120
|
+
**失败处理(非原子):** 上游 `add -y` 会覆盖,且没有 `--force add`;安装器以窄名称集合 + `--json` 逐个检测成功 / 失败。已有依赖更新**可能部分成功**,本包装器**不负责恢复**,请勿视为原子或可回滚;**不再复制独立轻量版**作为回退。已存在的依赖失败时**不删除、不重建**,保留原归属(可能已被上游部分改动);仅在**原本缺失、本次尝试新建**的项失败时,清理该新路径(仅此路径)并以非零退出报告。无论成功与否,主 skill 内部回退始终可用,基本安装的主 skill 可正常工作;可选的上游请求未满足时**明确失败**(非零退出),不报告成功。仅在已知安全目标上确认成功的项才在清单中记为 upstream-owned。上游 CLI 的 `--json` 输出契约并未稳定公开;若其格式变化导致无法解析,安装器将**保守地按失败报告**(不声称成功)。
|
|
174
121
|
|
|
175
|
-
|
|
122
|
+
### 安装清单格式
|
|
176
123
|
|
|
177
|
-
|
|
124
|
+
清单合并记录每个 skill 名称的处理结果,不含内容哈希。字段包括包版本、目标目录、更新时间和按名称索引的条目;条目记录类型、操作以及上游 agent(适用时)。示例:
|
|
178
125
|
|
|
179
|
-
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"version": "<package-version>",
|
|
129
|
+
"target": "/home/me/.agents/skills",
|
|
130
|
+
"updatedAt": "<iso-timestamp>",
|
|
131
|
+
"entries": {
|
|
132
|
+
"project-docs-workflow": { "kind": "main", "action": "installed", "at": "…" },
|
|
133
|
+
"doc-opt": { "kind": "doc-opt", "action": "installed", "at": "…" },
|
|
134
|
+
"docs-html-view": { "kind": "docs-html-view", "action": "skipped", "at": "…" },
|
|
135
|
+
"retro": { "kind": "upstream", "action": "installed", "agent": "codex", "at": "…" }
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
180
139
|
|
|
181
|
-
|
|
140
|
+
`kind` 可为 `main`、`doc-opt`、`docs-html-view` 或 `upstream`;历史清单里还可能出现 `lite`(早期版本曾复制独立轻量 skill)——安装时一律保留,用户主动运行 `uninstall` 时仍按历史归属处理(升级时不会静默清除用户目录;清理 / 迁移仅在用户显式授权时进行)。`action` 可为 `installed`、`forced` 或 `skipped`。卸载按记录的路径/名称操作:`skipped` 以及未知状态的条目保留。上游项会尽量通过 `skills` CLI 批量移除;若 CLI 无法运行或返回失败,安装器会直接删除对应目录作为回退,这可能使 `~/.agents/.skill-lock.json` 留有过期记录。
|
|
182
141
|
|
|
183
|
-
|
|
142
|
+
### 依赖解析与来源
|
|
184
143
|
|
|
185
|
-
|
|
144
|
+
`check` 逐项检查依赖:目标目录中存在同名 skill(按名解析即可,**不**验证是否为完整版)**或**主 skill 内置 `references/deps/*.md` 回退可用,即视为通过——因此全新安装(未装任何独立依赖)也会通过。这不是主 skill 安装检查,也不是项目初始化检查。
|
|
186
145
|
|
|
187
|
-
|
|
146
|
+
内部回退文档中**源自上游的部分**(见 [`NOTICE`](./NOTICE):`references/deps/{grilling,domain-modeling,tdd,boundaries}.md`)裁剪 / 改编自 [mattpocock/skills](https://github.com/mattpocock/skills)(MIT,Matt Pocock);`references/deps/doc-opt.md` 为本包第一方回退,**非**上游派生。本包**不**随包分发独立依赖 skill;`doc-opt` 与 `docs-html-view` 是本包附带的第一方 skill。主 skill 对引用能力先按名解析已安装的独立 skill,不存在时执行内部 ref 回退。详见 [`NOTICE`](./NOTICE)。
|
|
188
147
|
|
|
189
|
-
|
|
148
|
+
</details>
|
|
190
149
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
npx @tanlinfeng/project-docs-workflow --with-matt-skills # full upstream deps (Node >= 22.20)
|
|
195
|
-
npx @tanlinfeng/project-docs-workflow check
|
|
196
|
-
npx @tanlinfeng/project-docs-workflow uninstall --dry-run
|
|
197
|
-
npx @tanlinfeng/project-docs-workflow uninstall --force # only removes what this package installed
|
|
198
|
-
```
|
|
150
|
+
## License
|
|
151
|
+
|
|
152
|
+
MIT,见 [`LICENSE`](./LICENSE)。
|