ys-team 0.2.0 → 0.3.1

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 (38) hide show
  1. package/README.md +42 -59
  2. package/docs/project/module-index.md +8 -7
  3. package/docs/specs/{active → completed}/20260407-170500-npm-distribution-modes/control.md +1 -1
  4. package/docs/specs/{active → completed}/20260407-170500-npm-distribution-modes/evidence/20260407-dual-mode-and-publish-readiness.md +8 -10
  5. package/docs/specs/completed/20260410-README-init-and-history-cleanup/control.md +65 -0
  6. package/docs/specs/completed/20260410-README-init-and-history-cleanup/evidence/20260410-closeout.md +26 -0
  7. package/docs/specs/completed/20260410-README-init-and-history-cleanup/work-01-readme-and-history-verification.md +54 -0
  8. package/docs/specs/completed/20260410-baseline-fullcomplete/control.md +96 -0
  9. package/docs/specs/completed/20260410-baseline-fullcomplete/requirement.md +30 -0
  10. package/docs/specs/completed/20260410-baseline-fullcomplete/workspace.md +26 -0
  11. package/examples/baseline/.ys_team/VERSION +1 -1
  12. package/examples/baseline/.ys_team/memory/policy.md +66 -0
  13. package/examples/baseline/.ys_team/memory/roles/delivery-guard.md +3 -0
  14. package/examples/baseline/.ys_team/memory/roles/doc-spec-steward.md +3 -0
  15. package/examples/baseline/.ys_team/memory/roles/domain-integrator.md +3 -0
  16. package/examples/baseline/.ys_team/memory/roles/project-architect.md +3 -0
  17. package/examples/baseline/.ys_team/memory/roles/qa-guard.md +3 -0
  18. package/examples/baseline/.ys_team/memory/roles/spec-reviewer.md +3 -0
  19. package/examples/baseline/.ys_team/roles/internal/qa-guard.md +30 -0
  20. package/examples/baseline/.ys_team/roles/internal/spec-reviewer.md +28 -0
  21. package/examples/baseline/.ys_team/status.md +22 -3
  22. package/examples/baseline/.ys_team/team.md +6 -0
  23. package/examples/baseline/.ys_team/templates/qa-report.md +42 -0
  24. package/examples/baseline/.ys_team/templates/requirement.md +27 -0
  25. package/examples/baseline/.ys_team/templates/review.md +30 -0
  26. package/examples/baseline/.ys_team/templates/workspace.md +23 -0
  27. package/examples/baseline/TEAM.md +43 -0
  28. package/package.json +1 -1
  29. package/scripts/ys-team.mjs +90 -1
  30. package/skills/ys-team/SKILL.md +68 -2
  31. package/skills/ys-team-init/SKILL.md +39 -6
  32. package/skills/ys-team-rebuild/SKILL.md +23 -1
  33. package/skills/ys-team-spec-talk/SKILL.md +41 -6
  34. package/skills/ys-team-spec-work/SKILL.md +29 -0
  35. package/skills/ys-team-status/SKILL.md +13 -7
  36. package/skills/ys-team-submit/SKILL.md +20 -0
  37. /package/docs/specs/{active → completed}/20260407-170500-npm-distribution-modes/work-01-global-and-project-install.md +0 -0
  38. /package/docs/specs/{active → completed}/20260407-170500-npm-distribution-modes/work-02-doc-and-publish-readiness.md +0 -0
package/README.md CHANGED
@@ -26,89 +26,72 @@
26
26
  - 多角色讨论用于覆盖风险并形成收敛结论。
27
27
  - 交付结果必须可验证、可追溯。
28
28
 
29
- ## 当前推荐使用方式
29
+ ## 安装与使用
30
30
 
31
- 当前版本建议只记两步:
31
+ ### 第一次使用
32
32
 
33
- 1. 获取本仓 `skills/` 下的技能目录,并安装到你的本地 skills 目录。
34
- 2. 说 “帮我安装/更新 https://github.com/dwp7399/ys-team 这里的 skills,然后用里面的 init,初始化我的项目。然后更新 agents.md 和 claude.md,使用 ys-team 作为最优先使用工作流”
33
+ **第一步:安装 skills**
35
34
 
36
- 对 Python / Java 项目,当前起步动作保持一致:
37
-
38
- - Python 项目:先安装 skills,再用 `ys-team-init` 生成项目本地 `.ys_team/`、`docs/specs/` 和现实索引
39
- - Java 项目:同样先安装 skills,再用 `ys-team-init` 落地本地基线;Java 差异主要体现在 init 对构建工具、多模块和兼容性边界的识别,而不是要求先改业务代码
40
-
41
- ## 工作流可见标志
42
-
43
- 只要当前回复处于 `ys-team` 工作流中,末尾必须出现明显标志:
44
-
45
- - 路由判断:`` `ys-team` · [判断结果] → [下一步] ``
46
- - discussion / spec-talk:`**[主持人]** ys-team · spec-talk`
47
- - spec-work:`**[执行中]** ys-team · spec-work`
48
- - submit:`**[验收]** ys-team · submit`
49
- - status:`**[状态]** ys-team · status`
35
+ ```bash
36
+ npx ys-team install-skills --dest ~/.claude/skills --force
37
+ ```
50
38
 
51
- 如果没有这些标志,说明当前回复还没真正进入 `ys-team` 工作流,可以直接要求:
39
+ > 默认目标为 `~/.agents/skills`,Claude Code 用户需指定 `~/.claude/skills`。
40
+ > 安装时会同时把 bundled baseline 写入 `ys-team/baseline/`,供 `ys-team-init` / `ys-team-rebuild` 读取模板。
52
41
 
53
- `请先进入 ys-team 工作流,并给出当前阶段标志。`
42
+ **第二步:在项目里初始化**
54
43
 
55
- ## npm 分发现状
44
+ 打开目标项目,对 Claude 说:
56
45
 
57
- 当前仓库已经有 npm 包元数据,并提供两种 npm 安装模式,但还不是完整的一键初始化器。
46
+ ```
47
+ 用 ys-team-init 这个 skill 初始化这个项目
48
+ ```
58
49
 
59
- 当前 npm 面提供的是:
50
+ ### 更新 skills
60
51
 
61
- - 发布 `skills/`、`examples/baseline/`、`registry/`、文档和脚本
62
- - 一个最小 CLI 入口:`npx ys-team --help`
63
- - 全局安装:把包内 skills 安装到 `~/.agents/skills`
64
- - 项目级安装:把包内 skills 安装到项目的 `.agents/skills`,并下发 baseline 版 `AGENTS.md` / `CLAUDE.md`
65
- - 支持显式目标目录、项目目录和安全覆盖控制:`--dest`、`--dir`、`--force`、`--dry-run`
52
+ ```bash
53
+ # 检查是否有新版本
54
+ npx ys-team check-update
66
55
 
67
- 当前 npm 面还**没有**:
56
+ # 更新到最新版
57
+ npx ys-team@latest install-skills --dest ~/.claude/skills --force
58
+ ```
68
59
 
69
- - 自动执行 `ys-team-init`
70
- - 自动登录或发布到 npm registry
60
+ ### 更新已有项目的工作流
71
61
 
72
- 全局安装模式:
62
+ skills 更新后,项目里的 `.ys_team/` 不会自动变化。如果新版本有结构调整,在项目里运行:
73
63
 
74
- ```bash
75
- npx ys-team install-skills
76
64
  ```
77
-
78
- 全局安装到自定义目录:
79
-
80
- ```bash
81
- npx ys-team install-skills --dest /path/to/skills
65
+ 用 ys-team-rebuild 重估这个项目的工作流配置
82
66
  ```
83
67
 
84
- 项目级安装模式:
68
+ 对 Python / Java 项目,起步动作保持一致,差异由 `ys-team-init` 在识别项目结构时自动处理。
85
69
 
86
- ```bash
87
- npx ys-team init-project --dir /path/to/project
88
- ```
89
-
90
- 项目级安装会:
70
+ ## 工作流可见标志
91
71
 
92
- - 写入 `/path/to/project/.agents/skills`
93
- - 写入 `/path/to/project/AGENTS.md`
94
- - 写入 `/path/to/project/CLAUDE.md`
72
+ 只要当前回复处于 `ys-team` 工作流中,末尾必须出现明显标志:
95
73
 
96
- 两种模式后续都仍需在目标仓库里执行 `ys-team-init`。
74
+ - 路由判断:`` `ys-team` · [判断结果] → [下一步] ``
75
+ - discussion / spec-talk:`**[主持人]** ys-team · spec-talk`
76
+ - spec-work:`**[执行中]** ys-team · spec-work`
77
+ - submit:`**[验收]** ys-team · submit`
78
+ - status:`**[状态]** ys-team · status`
97
79
 
98
- ## npm 发布状态
80
+ 如果没有这些标志,说明当前回复还没真正进入 `ys-team` 工作流,可以直接要求:
99
81
 
100
- 当前仓库已经具备**可发布到 npm registry** 的包形态,包括:
82
+ `请先进入 ys-team 工作流,并给出当前阶段标志。`
101
83
 
102
- - CLI 入口
103
- - `publishConfig.access = public`
104
- - 可通过 `npm pack --dry-run` 验证的打包内容
84
+ ## CLI 参考
105
85
 
106
- 但这不等于已经完成真实发布。真实发布仍需要:
86
+ ```bash
87
+ npx ys-team --help
88
+ npx ys-team install-skills [--dest <dir>] [--force] [--dry-run]
89
+ npx ys-team init-project [--dir <project-dir>] [--force] [--dry-run]
90
+ npx ys-team check-update
91
+ ```
107
92
 
108
- - npm 账号
109
- - `npm login`
110
- - 可能的 token / 2FA 配置
111
- - 在发布环境执行 `npm publish`
93
+ `init-project` 会向目标项目写入 `.agents/skills`、`AGENTS.md`、`CLAUDE.md`,之后仍需在项目里执行 `ys-team-init`。
94
+ 同时也会写入 `.agents/skills/ys-team/baseline/`,所以项目里的 `ys-team-init` 能拿到默认模板。
112
95
 
113
96
  ## 本仓结构
114
97
 
@@ -3,7 +3,7 @@
3
3
  **Project Type**: Markdown-first method repository
4
4
  **Project Scale**: Small
5
5
  **Index Strategy**: Core module index
6
- **Last Updated**: 2026-04-07
6
+ **Last Updated**: 2026-04-10
7
7
 
8
8
  ## `skills/`(方法入口与执行能力)
9
9
  **职责**:`skills/` 承载对外公开的 `ys-team` 方法入口,以及 init、rebuild、doc-build、spec-talk、spec-work、status、submit 等执行能力。它决定用户如何理解 ys-team,以及仓库如何把 baseline 和本地 reality 连接起来。
@@ -21,11 +21,12 @@
21
21
  - 依赖:方法论定义来自 `skills/ys-team/*` 与仓库文档
22
22
  - 被依赖:`ys-team-init`, `ys-team-rebuild`, 外部项目初始化流程
23
23
 
24
- ## `.ys_team/`(方法仓自用本地基线)
25
- **职责**:本仓自己的 `.ys_team/` 用来“用 ys-team 管理 ys-team”,把方法仓的 spec、文档同步和交付约束落到仓库内部。它在 baseline 之上保留方法仓特有角色,如方法论架构、初始化接入和交付守门。
24
+ ## `.ys_team/` + `TEAM.md`(方法仓自用本地基线)
25
+ **职责**:本仓自己的 `.ys_team/` 用来”用 ys-team 管理 ys-team”,把方法仓的 spec、文档同步和交付约束落到仓库内部。v0.3.0 起新增 `memory/` 角色记忆系统,以及 `TEAM.md` 编排模式配置入口。它在 baseline 之上保留方法仓特有角色:方法论架构师、产品演进负责人、交付守门人。
26
26
 
27
27
  **关系**:
28
- - 入口:`.ys_team/team.md`, `.ys_team/methods.md`, `.ys_team/policy.md`, `.ys_team/templates/*`
28
+ - 入口:`TEAM.md`, `.ys_team/team.md`, `.ys_team/methods.md`, `.ys_team/policy.md`, `.ys_team/templates/*`
29
+ - 记忆:`.ys_team/memory/roles/*.md`(按角色独立,跨任务经验积累)
29
30
  - 依赖:`examples/baseline/.ys_team/` 提供稳定骨架版本,`docs/project/*` 提供仓库现实
30
31
  - 被依赖:本仓 specs、方法仓自身 rebuild 判断
31
32
 
@@ -52,10 +53,10 @@
52
53
  - 依赖:`skills/ys-team/SKILL.md`, `skills/ys-team-spec-talk/SKILL.md`, `skills/ys-team-spec-work/SKILL.md`, `skills/ys-team-submit/SKILL.md`, `skills/ys-team-status/SKILL.md`
53
54
  - 被依赖:本仓协作、下游仓库初始化后的默认工作流
54
55
 
55
- ## `package.json` / `scripts/`(npm 双模式安装与发布面)
56
- **职责**:`package.json` 和 `scripts/` 提供 ys-team 当前的 npm 分发与安装能力:全局模式通过 `install-skills` 安装到 `~/.agents/skills`,项目模式通过 `init-project` 安装到项目内 `.agents/skills` 并下发 baseline 版 `AGENTS.md` / `CLAUDE.md`。同时它们承担 npm 可发布形态的元数据配置。
56
+ ## `package.json` / `scripts/`(npm 分发与 CLI 面)
57
+ **职责**:`package.json` 和 `scripts/` 提供 ys-team npm 分发能力(已发布 v0.3.0)。CLI 提供三个命令:`install-skills`(全局安装 skills)、`init-project`(项目级初始化)、`check-update`(对比本地与 npm 最新版)。安装目标由 `--dest` 控制,支持 `--force`、`--dry-run`。
57
58
 
58
59
  **关系**:
59
60
  - 入口:`package.json`, `scripts/ys-team.mjs`
60
61
  - 依赖:`README.md`, `skills/`, `examples/baseline/`, `registry/`
61
- - 被依赖:npm 包使用者、分发验证
62
+ - 被依赖:npm 包使用者(`npx ys-team`)、分发验证
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  Spec-Type: control
3
3
  Initiative: 20260407-170500-npm-distribution-modes
4
- Status: active
4
+ Status: completed
5
5
  Owner-Session: ys-team
6
6
  Write-Scope: []
7
7
  Depends-On: []
@@ -37,22 +37,20 @@
37
37
  - 结果:PASS
38
38
  - 说明:当前环境可识别 npm 用户 `ys7399`
39
39
 
40
- ### `npm view ys-team version name`
40
+ ### `npm view ys-team version name dist-tags.latest`
41
41
 
42
42
  - 结果:PASS
43
- - 说明:返回 404,说明 `ys-team` 包名当前未被占用
43
+ - 说明:registry 已返回 `ys-team@0.2.0`,`latest` 已指向 `0.2.0`
44
44
 
45
45
  ### `npm publish`
46
46
 
47
- - 结果:BLOCKED
48
- - 说明:registry 返回 `E403`,当前凭证不满足 publish 要求,需要 OTP 或带 `bypass 2fa` 的 granular access token
47
+ - 结果:PASS
48
+ - 说明:已成功发布 `ys-team@0.2.0`
49
49
 
50
50
  ## Current Conclusion
51
51
 
52
- 代码形态已经 ready to publish。
53
-
54
- 真实发布仍阻塞于:
52
+ 双模式安装和 npm 发布链路都已完成闭环。
55
53
 
56
- - publish 级别凭证
57
- - 可能的 OTP
58
- - 或重新生成带 `bypass 2fa` 的 granular access token
54
+ - 全局模式:`npx ys-team install-skills`
55
+ - 项目模式:`npx ys-team init-project --dir /path/to/project`
56
+ - npm registry:`ys-team@0.2.0`
@@ -0,0 +1,65 @@
1
+ ---
2
+ Spec-Type: control
3
+ Initiative: 20260410-README-init-and-history-cleanup
4
+ Status: completed
5
+ Owner-Session: ys-team
6
+ Write-Scope:
7
+ - README.md
8
+ - docs/specs/completed/20260410-README-init-and-history-cleanup/
9
+ Depends-On: []
10
+ Verification: "Manual review plus `git shortlog -sne --all` and `git log --format='%h%x09author:%an <%ae>%x09committer:%cn <%ce>%x09%s' --all`."
11
+ ---
12
+
13
+ # README 初始化文案与提交历史身份核验
14
+
15
+ ## Background
16
+
17
+ 用户要求两件事:
18
+
19
+ - README 明确项目内初始化应通过 `ys-team-init` skill 完成
20
+ - git 提交历史中不要出现 `claude` 身份,以免 GitHub Contributors 出现 `claude`
21
+
22
+ ## Goals
23
+
24
+ - 让 README 对项目内初始化动作的表述更直接
25
+ - 复核当前仓库可见历史中是否存在 `claude` author / committer
26
+ - 形成可复核证据,避免在无目标对象时盲目重写历史
27
+
28
+ ## Deliverables
29
+
30
+ - 更新后的 README
31
+ - 本次历史身份核验的 work spec 与 evidence
32
+
33
+ ## Acceptance Criteria
34
+
35
+ - README 明确写出“用 `ys-team-init` 这个 skill 初始化这个项目”
36
+ - 验收证据能复核当前可见历史中不存在 `claude` 身份
37
+ - 若无 `claude` 身份提交,不执行无意义历史重写
38
+
39
+ ## Collaboration Summary
40
+
41
+ - Participants: user, Codex
42
+ - Reporter: Codex
43
+ - Estimated Cost: small
44
+
45
+ ## Verification
46
+
47
+ - 人工检查 `README.md`
48
+ - `git shortlog -sne --all`
49
+ - `git log --format='%h%x09author:%an <%ae>%x09committer:%cn <%ce>%x09%s' --all`
50
+
51
+ ## Acceptance Evidence
52
+
53
+ - `docs/specs/completed/20260410-README-init-and-history-cleanup/evidence/20260410-closeout.md`
54
+
55
+ ## Documentation Updates
56
+
57
+ - `README.md`
58
+
59
+ ## Risks
60
+
61
+ - GitHub Contributors 统计可能受远端缓存或旧统计周期影响,即使当前本地可见历史已无目标身份
62
+
63
+ ## Rollback Plan
64
+
65
+ - 回退 README 文案到修改前版本,并保留本次核验记录
@@ -0,0 +1,26 @@
1
+ # Closeout
2
+
3
+ - Time: 2026-04-10 15:51:43 CST
4
+ - Initiative: `20260410-README-init-and-history-cleanup`
5
+
6
+ ## README Check
7
+
8
+ - `README.md` 已将项目内初始化指令明确为:`用 ys-team-init 这个 skill 初始化这个项目`
9
+
10
+ ## History Identity Verification
11
+
12
+ 执行结果:
13
+
14
+ - `git shortlog -sne --all`
15
+ - `16 dwp <weipeng.dong@fireflyfusion.cn>`
16
+ - `2 dwp7399 <dwp7399@163.com>`
17
+ - `1 ys <dongweipeng@smalld.cn>`
18
+ - `git log --format='%h%x09author:%an <%ae>%x09committer:%cn <%ce>%x09%s' --all`
19
+ - 当前所有可见提交中,未发现 `claude` 作为 author 或 committer
20
+ - `origin/main` 与本地 `main` 指向同一提交 `94189a3ff81d1ba6bb1d9c5653b5ae13a00fbd91`
21
+
22
+ ## Conclusion
23
+
24
+ - README 文案已按用户要求明确化
25
+ - 当前本地可见历史没有可供重写的 `claude` 身份提交,因此本次未执行历史重写
26
+ - 若 GitHub Contributors 仍显示 `claude`,更可能是远端统计缓存或旧统计未刷新,不是当前可见分支历史问题
@@ -0,0 +1,54 @@
1
+ ---
2
+ Spec-Type: work
3
+ Initiative: 20260410-README-init-and-history-cleanup
4
+ Status: completed
5
+ Owner-Session: ys-team
6
+ Write-Scope:
7
+ - README.md
8
+ - docs/specs/active/20260410-README-init-and-history-cleanup/evidence/
9
+ Depends-On: []
10
+ Verification: "Manual review plus `git shortlog -sne --all` and `git log --format='%h%x09author:%an <%ae>%x09committer:%cn <%ce>%x09%s' --all`."
11
+ ---
12
+
13
+ # Work 01 README 初始化文案与历史身份核验
14
+
15
+ ## Background
16
+
17
+ 当前 README 已表达“在项目里初始化”,但用户希望文案直接落成一句明确指令。与此同时,需要确认 Contributors 中出现的 `claude` 是否来自当前仓库可见历史,而不是凭感觉重写历史。
18
+
19
+ ## Goals
20
+
21
+ - 收紧 README 初始化话术
22
+ - 产出当前仓库 author / committer 身份核验结果
23
+
24
+ ## Deliverables
25
+
26
+ - 一处 README 文案调整
27
+ - 一份 closeout evidence
28
+
29
+ ## Acceptance Criteria
30
+
31
+ - README 中出现“用 `ys-team-init` 这个 skill 初始化这个项目”
32
+ - 证据中包含 shortlog 与 author / committer 核验结论
33
+
34
+ ## Verification
35
+
36
+ - 人工检查 README 相关段落
37
+ - `git shortlog -sne --all`
38
+ - `git log --format='%h%x09author:%an <%ae>%x09committer:%cn <%ce>%x09%s' --all`
39
+
40
+ ## Acceptance Evidence
41
+
42
+ - `docs/specs/completed/20260410-README-init-and-history-cleanup/evidence/20260410-closeout.md`
43
+
44
+ ## Documentation Updates
45
+
46
+ - `README.md`
47
+
48
+ ## Risks
49
+
50
+ - Contributors 页面对旧统计的刷新不一定与本地历史即时同步
51
+
52
+ ## Rollback Plan
53
+
54
+ - 撤回 README 文案调整,不保留无依据的历史改写
@@ -0,0 +1,96 @@
1
+ ---
2
+ Spec-Type: control
3
+ Initiative: 20260410-baseline-fullcomplete
4
+ Status: draft
5
+ Owner-Session: ys-team
6
+ Write-Scope:
7
+ - examples/baseline/.ys_team/templates/requirement.md
8
+ - examples/baseline/.ys_team/templates/workspace.md
9
+ - examples/baseline/.ys_team/templates/review.md
10
+ - examples/baseline/.ys_team/templates/qa-report.md
11
+ - .ys_team/templates/requirement.md
12
+ - .ys_team/templates/workspace.md
13
+ - .ys_team/templates/review.md
14
+ - .ys_team/templates/qa-report.md
15
+ Depends-On: []
16
+ Verification: "ls examples/baseline/.ys_team/templates/ | wc -l # 期望 7; ls .ys_team/templates/ | wc -l # 期望 7"
17
+ ---
18
+
19
+ # Baseline 完整化:补全 semi-auto/full-auto 阶段模板
20
+
21
+ ## Background
22
+
23
+ `examples/baseline/` 在 manual 模式下建立,只有 3 个模板。semi-auto/full-auto 引入后,阶段间通信依赖 requirement、workspace、review、qa-report 4 个文件,但 baseline 和本仓 `.ys_team/templates/` 都没有提供对应模板。
24
+
25
+ 同时,对比发现 ai-gateway 的 `_sources.md` 格式与 baseline 规范不一致(缺 source URL、版本、日期)。根因是 init/rebuild skill 执行时未参照 baseline 格式,属于 skill 层问题,超出本 spec 范围,记为后续追踪项。
26
+
27
+ ## Goals
28
+
29
+ 1. 在 `examples/baseline/.ys_team/templates/` 补全 4 个阶段模板(通用版本,不含项目特定命令)
30
+ 2. 在 `.ys_team/templates/` 同步补全相同 4 个模板(本仓已切 full-auto)
31
+ 3. qa-report 模板不包含项目特定测试命令,改为通用注释占位
32
+
33
+ ## Non-Goals
34
+
35
+ - 不修改 ys-team-init / ys-team-rebuild skill(_sources.md 格式问题由后续 spec 处理)
36
+ - 不修改已有 3 个模板(control、work、roadmap-version)
37
+
38
+ ## Deliverables
39
+
40
+ | 文件 | 状态 |
41
+ |------|------|
42
+ | `examples/baseline/.ys_team/templates/requirement.md` | 新增 |
43
+ | `examples/baseline/.ys_team/templates/workspace.md` | 新增 |
44
+ | `examples/baseline/.ys_team/templates/review.md` | 新增 |
45
+ | `examples/baseline/.ys_team/templates/qa-report.md` | 新增 |
46
+ | `.ys_team/templates/requirement.md` | 新增 |
47
+ | `.ys_team/templates/workspace.md` | 新增 |
48
+ | `.ys_team/templates/review.md` | 新增 |
49
+ | `.ys_team/templates/qa-report.md` | 新增 |
50
+
51
+ ## Acceptance Criteria
52
+
53
+ - [ ] `examples/baseline/.ys_team/templates/` 共 7 个文件
54
+ - [ ] `.ys_team/templates/` 共 7 个文件
55
+ - [ ] qa-report.md 中没有 `uv run pytest` 等项目特定命令
56
+ - [ ] 4 个新模板的 frontmatter 与现有 control.md 风格一致
57
+
58
+ ## Collaboration Summary
59
+
60
+ - Participants: 方法论架构师、产品演进负责人、交付守门人
61
+ - Reporter: 交付守门人
62
+ - Rounds: 1
63
+ - Escalations: 无
64
+ - Estimated Cost: minimal
65
+
66
+ ## Verification
67
+
68
+ ```bash
69
+ ls examples/baseline/.ys_team/templates/ | wc -l # 期望 7
70
+ ls .ys_team/templates/ | wc -l # 期望 7
71
+ grep -r "uv run pytest" examples/baseline/ # 期望无输出
72
+ ```
73
+
74
+ ## Acceptance Evidence
75
+
76
+ ```
77
+ examples/baseline/.ys_team/templates/ 文件数:7 ✅
78
+ .ys_team/templates/ 文件数:7 ✅
79
+ grep -r "uv run pytest" examples/baseline/:无输出 ✅
80
+ ```
81
+
82
+ ## Documentation Updates
83
+
84
+ 无需更新 module-index.md(模板细节变化,不影响模块边界描述)
85
+
86
+ ## Risks
87
+
88
+ - 极低:纯新增文件,不影响现有结构
89
+
90
+ ## Rollback Plan
91
+
92
+ 删除新增的 8 个文件即可回滚。
93
+
94
+ ## Note
95
+
96
+ _sources.md 格式问题(ai-gateway 与 baseline 规范不一致):根因为 ys-team-init/rebuild skill 执行时未参照 baseline 格式,应在后续 spec 中通过更新 skill 执行说明修复。
@@ -0,0 +1,30 @@
1
+ ---
2
+ Initiative: 20260410-baseline-fullcomplete
3
+ Phase: spec-talk
4
+ Author-Session: ys-team-spec-talk
5
+ ---
6
+
7
+ # 原始需求记录
8
+
9
+ ## 需求来源
10
+
11
+ - 提出时间:2026-04-10
12
+ - 来源方式:用户口述 + 对比分析
13
+
14
+ ## 原始描述
15
+
16
+ 1. 本仓改成全自动(full-auto),基于 baseline 重新构建完整。
17
+ 2. 对比发现 api-gateway 的 `_sources.md` 没有来源记录和候选记录,怀疑是 ys-team 工作流没有说明清楚。
18
+
19
+ ## 背景补充
20
+
21
+ - 本仓 `examples/baseline/.ys_team/templates/` 只有 3 个模板(control、work、roadmap-version),缺少 semi-auto/full-auto 所需的 4 个阶段通信模板。
22
+ - 本仓 TEAM.md 已更新为 full-auto,但 `.ys_team/templates/` 自身也缺少相同的 4 个模板。
23
+ - `examples/baseline/.ys_team/toolbox/_sources.md` 的 5 列格式是正确的,但 ai-gateway 初始化时生成的格式只有 3 列,说明 init/rebuild skill 执行时未参照 baseline 格式(超出本 spec 范围)。
24
+
25
+ ## 初步范围判断
26
+
27
+ - 影响模块:`examples/baseline/.ys_team/templates/`、`.ys_team/templates/`
28
+ - 是否跨模块:否
29
+ - 是否涉及 DB 变更:否
30
+ - 是否涉及对外 API 行为变化:否
@@ -0,0 +1,26 @@
1
+ ---
2
+ Initiative: 20260410-baseline-fullcomplete
3
+ Current-Phase: qa
4
+ Last-Updated: 2026-04-10 10:00
5
+ ---
6
+
7
+ # 工作记忆
8
+
9
+ ## 当前状态
10
+
11
+ spec-talk 已完成,control.md 和 requirement.md 已产出,等待进入 spec-work。
12
+
13
+ ## 关键决策记录
14
+
15
+ - qa-report.md 中的项目特定测试命令改为通用注释占位 — 原 ai-gateway 版本有 `uv run pytest`,不适合通用 baseline
16
+ - _sources.md 格式问题不纳入本 spec — 根因在 init/rebuild skill 执行逻辑,超出当前范围,记为 Note
17
+ - 两个目录同步补全 — 本仓已切 full-auto,本仓 .ys_team/templates/ 也必须同步
18
+
19
+ ## 遗留问题
20
+
21
+ - _sources.md 格式一致性(init/rebuild skill 执行问题)— 优先级:中,由后续 spec 处理
22
+
23
+ ## 阶段输出摘要
24
+
25
+ - spec-talk → PASS,产出 control.md + requirement.md + workspace.md
26
+ - spec-work → PASS,8 个模板文件写入完成,验收通过
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
@@ -0,0 +1,66 @@
1
+ # 记忆管理策略
2
+
3
+ ## 结构
4
+
5
+ ```
6
+ .ys_team/memory/
7
+ ├── roles/ ← 角色独立记忆(跨任务经验)
8
+ │ └── <role>.md ← 每个角色一个文件
9
+ └── policy.md ← 本文件
10
+ ```
11
+
12
+ 工作记忆(workspace.md)不在此目录,而是跟随 spec 生命周期,位于 `docs/specs/<id>/workspace.md`。
13
+
14
+ ## 角色独立记忆
15
+
16
+ - 每个角色只读写自己的记忆文件,互不可见
17
+ - 记录跨任务的经验积累,不记录当前任务的临时状态
18
+ - 长度上限由 TEAM.md 的 `memory.role_memory_limit` 配置(默认 2k)
19
+
20
+ ### 写入时机
21
+
22
+ 每个阶段结束时,角色回顾本次工作,决定是否有值得记住的经验。使用以下判断标准:
23
+
24
+ 1. 是否发现了非显而易见的技术陷阱或模式?
25
+ 2. 是否有需要在未来同类任务中注意的点?
26
+ 3. 是否有关于这个项目/模块的特殊知识?
27
+
28
+ 无新认知时不写入。
29
+
30
+ ### 压缩策略
31
+
32
+ 读取记忆时发现超限,结合本次要写入的新内容一起压缩:
33
+
34
+ - 保留所有仍然相关的经验
35
+ - 合并相似条目
36
+ - 删除已过时或被后续经验覆盖的条目
37
+ - 保留具体的文件路径、错误信息、配置值,不泛化
38
+ - 压缩后不超过配置上限
39
+
40
+ ### 记忆格式
41
+
42
+ ```markdown
43
+ # <role> 经验记忆
44
+
45
+ ## <主题 1>
46
+ - 具体经验条目(含日期标记)
47
+
48
+ ## <主题 2>
49
+ - 具体经验条目(含日期标记)
50
+ ```
51
+
52
+ 按主题分组,每条经验附日期,便于判断时效性。
53
+
54
+ ## 工作记忆(workspace.md)
55
+
56
+ - 位于 `docs/specs/<id>/workspace.md`
57
+ - 记录当前任务的实时状态:进度、阻塞、决策、各阶段间传递的上下文
58
+ - 长度上限由 TEAM.md 的 `memory.workspace_limit` 配置(默认 2k)
59
+ - spec 关闭后自动归档(随 spec 目录保留)
60
+
61
+ ## 健康检查
62
+
63
+ rebuild 时检查:
64
+ - 角色记忆文件是否超限
65
+ - 是否有角色记忆文件对应的角色已从 TEAM.md 移除(标记为归档,不删除)
66
+ - 是否有新角色缺少记忆文件(自动创建空文件)
@@ -0,0 +1,3 @@
1
+ # delivery-guard 经验记忆
2
+
3
+ (暂无记录)
@@ -0,0 +1,3 @@
1
+ # doc-spec-steward 经验记忆
2
+
3
+ (暂无记录)
@@ -0,0 +1,3 @@
1
+ # domain-integrator 经验记忆
2
+
3
+ (暂无记录)
@@ -0,0 +1,3 @@
1
+ # project-architect 经验记忆
2
+
3
+ (暂无记录)
@@ -0,0 +1,3 @@
1
+ # qa-guard 经验记忆
2
+
3
+ (暂无记录)
@@ -0,0 +1,3 @@
1
+ # spec-reviewer 经验记忆
2
+
3
+ (暂无记录)
@@ -0,0 +1,30 @@
1
+ # qa-guard
2
+ Title: 质量保障守门人
3
+ subagent_policy: local_only
4
+
5
+ 独立验证落地效果是否符合 spec。读取 spec、代码变更和测试结果,不参与执行过程,确保验证客观性。
6
+
7
+ ## 职责
8
+
9
+ - 对比 control.md 的 verification 条目与实际落地结果
10
+ - 执行或检查测试命令,验证功能正确性
11
+ - 检查 write-scope 内的代码变更是否符合 spec 要求
12
+ - 识别遗漏的验收点、未覆盖的边界条件
13
+ - 输出 qa-report.md(result card 格式:PASS / REJECT + issues)
14
+
15
+ ## 输入
16
+
17
+ - `docs/specs/<id>/control.md`(spec 定义)
18
+ - `docs/specs/<id>/work.md`(执行记录)
19
+ - `docs/specs/<id>/workspace.md`(工作记忆)
20
+ - 项目代码(write-scope 范围内)
21
+
22
+ ## 输出
23
+
24
+ - `docs/specs/<id>/qa-report.md`
25
+
26
+ ## 约束
27
+
28
+ - 只读 + 可执行测试命令,不修改业务代码
29
+ - 不参与执行过程的讨论或决策
30
+ - 验证意见必须具体到哪个 verification 条目、实际结果是什么、差异在哪