@modus-ai/modus 0.2.10 → 0.3.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 (110) hide show
  1. package/dist/cli/index.js +2 -0
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/commands/doctor.d.ts.map +1 -1
  4. package/dist/commands/doctor.js +8 -3
  5. package/dist/commands/doctor.js.map +1 -1
  6. package/dist/commands/init.d.ts +39 -2
  7. package/dist/commands/init.d.ts.map +1 -1
  8. package/dist/commands/init.js +234 -3
  9. package/dist/commands/init.js.map +1 -1
  10. package/dist/commands/status.d.ts.map +1 -1
  11. package/dist/commands/status.js +9 -3
  12. package/dist/commands/status.js.map +1 -1
  13. package/dist/generators/claude.d.ts +4 -2
  14. package/dist/generators/claude.d.ts.map +1 -1
  15. package/dist/generators/claude.js +17 -8
  16. package/dist/generators/claude.js.map +1 -1
  17. package/dist/generators/codebuddy.d.ts.map +1 -1
  18. package/dist/generators/codebuddy.js +15 -3
  19. package/dist/generators/codebuddy.js.map +1 -1
  20. package/dist/generators/codex.d.ts.map +1 -1
  21. package/dist/generators/codex.js +4 -4
  22. package/dist/generators/codex.js.map +1 -1
  23. package/dist/generators/continue.d.ts +17 -0
  24. package/dist/generators/continue.d.ts.map +1 -0
  25. package/dist/generators/continue.js +441 -0
  26. package/dist/generators/continue.js.map +1 -0
  27. package/dist/generators/copilot.d.ts.map +1 -1
  28. package/dist/generators/copilot.js +3 -2
  29. package/dist/generators/copilot.js.map +1 -1
  30. package/dist/generators/cursor.d.ts +4 -3
  31. package/dist/generators/cursor.d.ts.map +1 -1
  32. package/dist/generators/cursor.js +22 -11
  33. package/dist/generators/cursor.js.map +1 -1
  34. package/dist/generators/custom.d.ts +2 -2
  35. package/dist/generators/custom.d.ts.map +1 -1
  36. package/dist/generators/custom.js +9 -2
  37. package/dist/generators/custom.js.map +1 -1
  38. package/dist/generators/index.d.ts.map +1 -1
  39. package/dist/generators/index.js +11 -0
  40. package/dist/generators/index.js.map +1 -1
  41. package/dist/generators/modus.d.ts +12 -0
  42. package/dist/generators/modus.d.ts.map +1 -0
  43. package/dist/generators/modus.js +225 -0
  44. package/dist/generators/modus.js.map +1 -0
  45. package/dist/utils/config.d.ts +20 -1
  46. package/dist/utils/config.d.ts.map +1 -1
  47. package/dist/utils/config.js.map +1 -1
  48. package/dist/utils/file-system.d.ts +16 -0
  49. package/dist/utils/file-system.d.ts.map +1 -1
  50. package/dist/utils/file-system.js +40 -0
  51. package/dist/utils/file-system.js.map +1 -1
  52. package/package.json +1 -1
  53. package/schemas/harness-schema.yaml +13 -13
  54. package/templates/agents/modus-analyst.md +2 -2
  55. package/templates/agents/modus-deployer.md +1 -1
  56. package/templates/agents/modus-designer.md +1 -1
  57. package/templates/agents/modus-developer.md +1 -1
  58. package/templates/agents/modus-perf-auditor.md +1 -1
  59. package/templates/agents/modus-reviewer.md +1 -1
  60. package/templates/agents/modus-security-auditor.md +1 -1
  61. package/templates/agents/modus-skill-creator.md +1 -1
  62. package/templates/agents/modus-tester.md +1 -1
  63. package/templates/commands/auto.md +3 -1
  64. package/templates/commands/commit.md +11 -5
  65. package/templates/commands/cr.md +14 -10
  66. package/templates/commands/harness.md +27 -18
  67. package/templates/commands/init.md +56 -23
  68. package/templates/commands/modus.md +33 -11
  69. package/templates/commands/plan.md +23 -19
  70. package/templates/commands/spec.md +30 -17
  71. package/templates/commands/upgrade.md +50 -38
  72. package/templates/commands/vibe.md +30 -20
  73. package/templates/domain-business-readme.md +69 -0
  74. package/templates/domain-code/SKILL.md +94 -0
  75. package/templates/domain-code/apis.md +48 -0
  76. package/templates/domain-code/data-models.md +57 -0
  77. package/templates/domain-code/entities.md +45 -0
  78. package/templates/domain-code/services.md +51 -0
  79. package/templates/domain-history-readme.md +60 -0
  80. package/templates/domain-scenarios-readme.md +58 -0
  81. package/templates/knowledge-base-map.md +78 -0
  82. package/templates/knowledge-base-service-graph.md +100 -0
  83. package/templates/knowledge-catalog.md +38 -43
  84. package/templates/paths-v4.md +156 -0
  85. package/templates/rules/modus-workflow/RULE.mdc +45 -38
  86. package/templates/skills/modus-agents/analyst/SKILL.md +1 -1
  87. package/templates/skills/modus-agents/developer/SKILL.md +1 -1
  88. package/templates/skills/modus-agents/reviewer/SKILL.md +1 -1
  89. package/templates/skills/modus-agents/skill-creator/SKILL.md +3 -3
  90. package/templates/skills/modus-auto/SKILL.md +19 -19
  91. package/templates/skills/modus-cr/SKILL.md +1 -1
  92. package/templates/skills/modus-design-brief/SKILL.md +3 -3
  93. package/templates/skills/modus-harness/SKILL.md +5 -5
  94. package/templates/skills/modus-init/SKILL.md +330 -824
  95. package/templates/skills/modus-init/shared/frontmatter-spec.md +255 -0
  96. package/templates/skills/modus-init/shared/stack-detection.md +144 -0
  97. package/templates/skills/modus-init/shared/universal-skill-format.md +362 -0
  98. package/templates/skills/modus-init/strategies/fallback-init.md +150 -0
  99. package/templates/skills/modus-init/strategies/frontend-init.md +298 -0
  100. package/templates/skills/modus-init/strategies/java-init.md +278 -0
  101. package/templates/skills/modus-plan/SKILL.md +6 -6
  102. package/templates/skills/modus-platform/SKILL.md +1 -1
  103. package/templates/skills/modus-spec/SKILL.md +1 -1
  104. package/templates/skills/modus-vibe/SKILL.md +10 -10
  105. package/templates/template/analysis.md +83 -0
  106. package/templates/template/design.md +160 -0
  107. package/templates/template/pid.md +97 -0
  108. package/templates/template/plan.md +91 -0
  109. package/templates/template/spec.md +78 -0
  110. package/templates/template/sprint-contract.md +101 -0
@@ -43,7 +43,7 @@ disable: false
43
43
  --enhance X → ENHANCE_DOMAIN=X(Step 3 前先增量更新该域 Skill)
44
44
  --file X → FOCUS_FILE=X(Step 3 从该文件推断域,而非 prompt 匹配)
45
45
  --no-design → SKIP_DESIGN=true(跳过 Step 6 Design Brief)
46
- --story X → STORY_ID=X(Step 9 日志写入 modus/stories/{X}/vibe-log.md)
46
+ --story X → STORY_ID=X(Step 9 日志写入 modus/artifacts/{X}/code/vibe-log.md)
47
47
  --dry-run → DRY_RUN=true(Step 7 只输出设计,不生成代码)
48
48
  --watch → WATCH_MODE=true(Step 10 启用文件监听,实验性)
49
49
  --codex → CODEX_MODE=true(禁用交互提问,全批量推断输出)
@@ -75,7 +75,7 @@ constitution:
75
75
 
76
76
  ### Step 1:Level 1 加载——读知识目录(~200 tokens)
77
77
 
78
- 读取 `modus/knowledge-catalog.md`(全景目录索引):
78
+ 读取 `modus/knowledge_base/map.md`(全景目录索引):
79
79
  - 了解当前项目有哪些可用的 Skill
80
80
  - 识别各 Skill 的 maturity 状态、最近引用时间
81
81
  - 为 Step 2 的智能分析做准备
@@ -83,7 +83,7 @@ constitution:
83
83
  **如果 `knowledge-catalog.md` 不存在:**
84
84
 
85
85
  ```
86
- ⚠️ 未找到知识目录(modus/knowledge-catalog.md)
86
+ ⚠️ 未找到知识目录(modus/knowledge_base/map.md)
87
87
 
88
88
  建议先运行 /modus:init 初始化知识库,可以让 AI 更准确地理解项目。
89
89
 
@@ -233,10 +233,10 @@ Codex 模式:所有同步静默执行,不输出状态行(减少干扰)
233
233
 
234
234
  **路径规则(v3.1 Single Source of Truth):**
235
235
  ```
236
- modus/knowledge/biz-{domain}/SKILL.md
236
+ modus/knowledge_base/domain/{domain}/code/SKILL.md
237
237
  ```
238
238
 
239
- 例如:`modus/knowledge/biz-order/SKILL.md`、`modus/knowledge/biz-payment/SKILL.md`
239
+ 例如:`modus/knowledge_base/biz-order/SKILL.md`、`modus/knowledge_base/biz-payment/SKILL.md`
240
240
 
241
241
  > **注意**:`.codebuddy/skills/modus-biz-{domain}/SKILL.md` 为旧路径引用桩,已废弃,请勿使用。
242
242
 
@@ -285,7 +285,7 @@ modus/knowledge/biz-{domain}/SKILL.md
285
285
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
286
286
 
287
287
  ## 实现蓝图
288
- Data: {Mapper 类/方法}(路径: modus/knowledge/biz-{domain}/SKILL.md → 关键文件索引)
288
+ Data: {Mapper 类/方法}(路径: modus/knowledge_base/domain/{domain}/code/SKILL.md → 关键文件索引)
289
289
  Service: {Manager/Service 类/方法,标注 @Transactional 位置}
290
290
  API: {Facade/Controller 类/方法}
291
291
 
@@ -383,7 +383,7 @@ Codex 模式下,每个文件生成前输出分隔符:`=== 生成文件: {pat
383
383
  #### 执行方式
384
384
 
385
385
  ```
386
- 有新知识 → 写入 modus/knowledge/biz-{domain}/SKILL.md(v3.1 路径)
386
+ 有新知识 → 写入 modus/knowledge_base/domain/{domain}/code/SKILL.md(v3.1 路径)
387
387
  → 写入完成后输出单行提示:
388
388
  [已更新 {domain} 域知识: 新增 [pitfall] {摘要} / 更正 [model] {字段名}]
389
389
 
@@ -402,7 +402,7 @@ Codex 模式下,每个文件生成前输出分隔符:`=== 生成文件: {pat
402
402
 
403
403
  编码完成后,将本次会话**追加**(append-only,禁止覆盖原有内容)到日志文件:
404
404
 
405
- - 若 STORY_ID 已设置:写入 `modus/stories/{STORY_ID}/vibe-log.md`
405
+ - 若 STORY_ID 已设置:写入 `modus/artifacts/{STORY_ID}/code/vibe-log.md`
406
406
  - 否则:写入 `modus/sessions/vibe-log.md`
407
407
 
408
408
  ```markdown
@@ -514,7 +514,7 @@ Codex 平台与 Cursor 的核心差异及适配方式:
514
514
  --enhance <domain> 编码前先对指定域执行增量 Skill 更新(如 --enhance album)
515
515
  --file <path> 聚焦单文件:从该文件推断域,只加载相关 Skill
516
516
  --no-design 跳过 Design Brief 内联设计(极速模式,仅适合单行改动)
517
- --story <id> 关联 TAPD Story ID,将编码日志写入 modus/stories/{id}/vibe-log.md
517
+ --story <id> 关联 TAPD Story ID,将编码日志写入 modus/artifacts/{id}/code/vibe-log.md
518
518
  --dry-run 只输出 Design Brief,不生成实际代码(用于方案确认)
519
519
  --watch 持续监听文件变化,触发 save-driven vibe coding(实验性)
520
520
  --codex Codex 平台模式:禁用交互提问,全批量推断输出,自动推断所有决策
@@ -531,7 +531,7 @@ Codex 平台与 Cursor 的核心差异及适配方式:
531
531
  /modus:vibe 实现艺人等级更新 --codex --story 9876543
532
532
 
533
533
  业务知识路径(v3.1):
534
- modus/knowledge/biz-{domain}/SKILL.md
534
+ modus/knowledge_base/domain/{domain}/code/SKILL.md
535
535
 
536
536
  相关命令:
537
537
  /modus:init 初始化/更新知识库(首次使用前建议先跑)
@@ -0,0 +1,83 @@
1
+ # Analysis — Harness Loop1 分析报告模板
2
+
3
+ > **生成位置**:(v3.2 旧)`modus/stories/<id>/harness/01-analysis.md`
4
+ > **生成位置**:(v4.0 新)通常拆为 `modus/artifacts/<id>/pid/prd.md` + `modus/artifacts/<id>/design/design.md`
5
+ > 当只需轻量分析(不区分 PID/Design)时,使用本模板,置于 `modus/artifacts/<id>/pid/analysis.md`
6
+ > **生成命令**:Harness Loop1 SubAgent00(modus-analyst)
7
+
8
+ ---
9
+
10
+ ## 元信息
11
+
12
+ ```yaml
13
+ story_id: ""
14
+ agent: "modus-analyst"
15
+ schema_version: "1.1"
16
+ created_at: ""
17
+ input:
18
+ tapd_url: ""
19
+ prd_attachments: []
20
+ output:
21
+ next_subagent: "modus-designer"
22
+ handoff_block: "see HANDOFF below"
23
+ ```
24
+
25
+ ---
26
+
27
+ ## 1. 需求理解
28
+
29
+ ### 1.1 一句话总结
30
+
31
+ ### 1.2 详细需求(结构化)
32
+ - **谁**:(用户角色)
33
+ - **做什么**:(业务动作)
34
+ - **价值**:(业务价值)
35
+ - **场景**:(典型场景)
36
+
37
+ ---
38
+
39
+ ## 2. 关键信息抽取
40
+
41
+ | 字段 | 值 | 来源 |
42
+ |------|-----|------|
43
+ | 优先级 | | TAPD/产品 |
44
+ | 截止日期 | | |
45
+ | 涉及模块 | | |
46
+
47
+ ---
48
+
49
+ ## 3. 不确定项(必须澄清后才能进入 Design)
50
+
51
+ | 不确定点 | 影响范围 | 候选方案 | 推荐 |
52
+ |---------|---------|---------|------|
53
+ | | | | |
54
+
55
+ ---
56
+
57
+ ## 4. 历史相似需求
58
+
59
+ | Story ID | 相似度 | 差异点 |
60
+ |----------|--------|-------|
61
+ | | | |
62
+
63
+ ---
64
+
65
+ ## HANDOFF(schema v1.1)
66
+
67
+ ```yaml
68
+ schema_version: "1.1"
69
+ from: "modus-analyst"
70
+ to: "modus-designer"
71
+ story_id: ""
72
+ status: "ready_for_design"
73
+ artifacts:
74
+ - "modus/artifacts/<id>/pid/prd.md"
75
+ checkpoints:
76
+ unresolved_questions: []
77
+ related_stories: []
78
+ issues: []
79
+ ```
80
+
81
+ ---
82
+
83
+ > **维护规则**:本模板仅用于 Harness Loop1 内部 handoff;最终用户阅读产物以 `pid/prd.md` 为准。
@@ -0,0 +1,160 @@
1
+ # Design — 技术评估设计
2
+
3
+ > **生成位置**:`modus/artifacts/<STORY_ID>/design/design.md`
4
+ > **生成命令**:`/modus:plan --design <pid-path>` 或 Harness Loop1 SubAgent01.5(modus-designer)
5
+
6
+ ---
7
+
8
+ ## 元信息
9
+
10
+ ```yaml
11
+ story_id: ""
12
+ pid_ref: "modus/artifacts/<STORY_ID>/pid/prd.md"
13
+ created_at: ""
14
+ updated_at: ""
15
+ status: "draft" # draft | reviewed | approved | implemented
16
+ reviewers: [] # 评审人列表
17
+ related_designs: [] # 历史可复用设计
18
+ ```
19
+
20
+ ---
21
+
22
+ ## 1. 设计目标
23
+
24
+ > 一段话:本次方案要达到的技术目标 + 与 PID 验收标准的对应关系。
25
+
26
+ ---
27
+
28
+ ## 2. 整体架构
29
+
30
+ ### 2.1 上下游关系
31
+ ```mermaid
32
+ graph LR
33
+ A[上游系统] --> B[本服务]
34
+ B --> C[下游系统]
35
+ ```
36
+
37
+ ### 2.2 涉及模块清单
38
+
39
+ | 模块 | 是否新增 | 变更类型 | 说明 |
40
+ |------|---------|---------|------|
41
+ | | | (新增/修改/删除) | |
42
+
43
+ ---
44
+
45
+ ## 3. 接口设计
46
+
47
+ ### 3.1 对外暴露接口
48
+
49
+ | 接口名 | 类型 | 路径/Topic | 是否新增 | 入参 | 出参 |
50
+ |-------|------|-----------|---------|------|------|
51
+ | | HTTP/MQ/RPC | | | | |
52
+
53
+ ### 3.2 调用下游接口
54
+
55
+ | 下游服务 | 接口 | 调用频率 | 超时 | 重试策略 | 降级方案 |
56
+ |---------|------|---------|------|---------|---------|
57
+ | | | | | | |
58
+
59
+ > ⚠️ **超时必填**:每个下游调用必须明确写出超时时间和重试次数,不接受"按默认"。
60
+
61
+ ---
62
+
63
+ ## 4. 数据模型
64
+
65
+ ### 4.1 新增/修改的表
66
+
67
+ | 表名 | 字段 | 类型 | 是否索引 | 说明 |
68
+ |------|------|------|---------|------|
69
+ | | | | | |
70
+
71
+ ### 4.2 数据迁移
72
+
73
+ - 是否需要迁移:(是/否)
74
+ - 迁移方式:(脚本/在线 DDL/双写切流)
75
+ - 回滚方案:
76
+
77
+ ---
78
+
79
+ ## 5. 状态流转(如适用)
80
+
81
+ ```mermaid
82
+ stateDiagram-v2
83
+ [*] --> 待审核
84
+ 待审核 --> 已通过
85
+ 待审核 --> 已驳回
86
+ 已通过 --> [*]
87
+ 已驳回 --> [*]
88
+ ```
89
+
90
+ | 状态 | 流入条件 | 流出条件 | 副作用 |
91
+ |------|---------|---------|--------|
92
+ | | | | |
93
+
94
+ ---
95
+
96
+ ## 6. 边界控制
97
+
98
+ > 明确**本设计不解决**的问题,以及**与既有设计冲突点**的解决方案。
99
+
100
+ - ❌ 不解决:(如:跨地域容灾,由基础设施层兜底)
101
+ - ⚠️ 冲突点:与 XXX 模块的 YYY 字段语义存在歧义,约定使用 ZZZ
102
+ - 🛡️ 兜底:当下游 A 不可用时,降级返回 B 的默认值
103
+
104
+ ---
105
+
106
+ ## 7. 性能与并发
107
+
108
+ | 维度 | 目标 | 风险点 | 缓解措施 |
109
+ |------|------|-------|---------|
110
+ | QPS | | | |
111
+ | P99 延迟 | | | |
112
+ | 并发锁 | | | |
113
+ | 缓存穿透 | | | |
114
+
115
+ ---
116
+
117
+ ## 8. 安全与合规
118
+
119
+ - 鉴权方式:
120
+ - 数据脱敏:
121
+ - 审计日志:
122
+
123
+ ---
124
+
125
+ ## 9. 测试策略
126
+
127
+ - 单元测试:
128
+ - 集成测试:
129
+ - 性能测试:
130
+ - 灰度方案:
131
+
132
+ ---
133
+
134
+ ## 10. 实施步骤(高阶)
135
+
136
+ > 仅描述大步骤;细粒度步骤在 plan.md 中展开。
137
+
138
+ 1. (步骤一)
139
+ 2. (步骤二)
140
+ 3. (步骤三)
141
+
142
+ ---
143
+
144
+ ## 11. 历史可复用资产
145
+
146
+ | 来源 Story | 可复用内容 | 复用路径 |
147
+ |-----------|-----------|---------|
148
+ | | | `modus/artifacts/<id>/design/design.md` |
149
+
150
+ ---
151
+
152
+ ## 12. 评审记录
153
+
154
+ | 日期 | 评审人 | 关键意见 | 决议 |
155
+ |------|-------|---------|------|
156
+ | | | | |
157
+
158
+ ---
159
+
160
+ > **维护规则**:本模板由 modus-designer 自动填充第 1-10 节;评审记录由人工填写。
@@ -0,0 +1,97 @@
1
+ # PID — 需求澄清(Product Intent Definition)
2
+
3
+ > **生成位置**:`modus/artifacts/<STORY_ID>/pid/prd.md`
4
+ > **生成命令**:`/modus:plan --pid <tapd-url>` 或 Harness Loop1 SubAgent00(modus-analyst)
5
+
6
+ ---
7
+
8
+ ## 元信息
9
+
10
+ ```yaml
11
+ story_id: "" # TAPD Story ID
12
+ tapd_url: "" # TAPD 原始链接
13
+ created_at: "" # ISO8601
14
+ updated_at: "" # ISO8601
15
+ status: "draft" # draft | confirmed | implemented | archived
16
+ priority: "P2" # P0 | P1 | P2 | P3
17
+ related_stories: [] # 历史关联需求 ID(用于产物复用)
18
+ domain: "" # 关联业务域(如 contract, copyright)
19
+ ```
20
+
21
+ ---
22
+
23
+ ## 1. 业务背景
24
+
25
+ > 用一段话说清楚:这次需求**为谁解决什么问题**、**为什么现在做**、**不做会怎样**。
26
+
27
+ (待填充)
28
+
29
+ ---
30
+
31
+ ## 2. 需求范围(变更/不变更对比)
32
+
33
+ ### 2.1 本次变更范围
34
+ - ✅ 新增:(如:歌手等级评定接口、艺人画像扩展字段)
35
+ - ✏️ 修改:(如:现有歌手详情接口返回字段)
36
+ - ❌ 删除:(如:废弃旧 v1 接口)
37
+
38
+ ### 2.2 明确不变更范围(边界声明)
39
+ > 防止过度发散。把容易被误以为要改的、但本次绝不改的列出来。
40
+
41
+ - 现有 XXX 流程不变
42
+ - YYY 接口签名不变
43
+ - 数据库表 ZZZ 结构不变
44
+
45
+ ---
46
+
47
+ ## 3. 验收标准(Acceptance Criteria)
48
+
49
+ > 必须可被 spec 命令转化为 Gherkin。每条用「Given-When-Then」可表述。
50
+
51
+ | AC ID | 场景 | Given | When | Then |
52
+ |-------|------|-------|------|------|
53
+ | AC-01 | 正向主流程 | | | |
54
+ | AC-02 | 异常处理 | | | |
55
+ | AC-03 | 边界值 | | | |
56
+
57
+ ---
58
+
59
+ ## 4. 利益相关方(Stakeholders)
60
+
61
+ | 角色 | 姓名 | 关注点 |
62
+ |------|------|-------|
63
+ | 产品 | | |
64
+ | 后端 | | |
65
+ | 前端 | | |
66
+ | 测试 | | |
67
+ | 运营 | | |
68
+
69
+ ---
70
+
71
+ ## 5. 澄清记录(Dialog History 索引)
72
+
73
+ > 详细对话归档于 `pid/dialog/`,本节只列要点。
74
+
75
+ | 日期 | 议题 | 决议 | 详细对话文件 |
76
+ |------|------|------|-------------|
77
+ | | | | `dialog/2026-MM-DD-topic.md` |
78
+
79
+ ---
80
+
81
+ ## 6. 风险与未决事项(Open Questions)
82
+
83
+ - ⚠️ (未澄清的关键点,需在 design 阶段前关闭)
84
+
85
+ ---
86
+
87
+ ## 7. 历史关联(Related Stories)
88
+
89
+ > 如发现历史需求与本次相似,复用其产物:
90
+
91
+ | Story ID | 相似度 | 可复用产物 |
92
+ |----------|--------|-----------|
93
+ | | (高/中/低) | `modus/artifacts/<id>/code/spec/` 等 |
94
+
95
+ ---
96
+
97
+ > **维护规则**:本模板由 `/modus:plan --pid` 或 modus-analyst 自动填充。人工补充时请保留章节结构;新增章节请标注 `> [人工新增]` 注释。
@@ -0,0 +1,91 @@
1
+ # Plan — 实施计划模板
2
+
3
+ > **生成位置**:`modus/artifacts/<STORY_ID>/code/plan.md`
4
+ > **生成命令**:`/modus:plan --story <id>` 或独立模式 `/modus:plan <task>`
5
+
6
+ ---
7
+
8
+ ## 元信息
9
+
10
+ ```yaml
11
+ story_id: ""
12
+ pid_ref: "modus/artifacts/<STORY_ID>/pid/prd.md"
13
+ design_ref: "modus/artifacts/<STORY_ID>/design/design.md"
14
+ created_at: ""
15
+ status: "ready" # ready | in-progress | done
16
+ estimated_effort_hours: 0
17
+ risk_level: "low" # low | medium | high
18
+ ```
19
+
20
+ ---
21
+
22
+ ## 1. 目标摘要
23
+
24
+ > 一段话:本计划要做什么、不做什么。
25
+
26
+ ---
27
+
28
+ ## 2. 上下文加载(Context Bundle)
29
+
30
+ | Skill | 路径 | 关键摘录 |
31
+ |-------|------|---------|
32
+ | 业务域 | `modus/knowledge_base/domain/<domain>/code/SKILL.md` | |
33
+ | 团队约定 | `modus/knowledge_base/domain/_conventions/code/SKILL.md` | |
34
+ | 技术 Wiki | `modus/knowledge_base/domain/_tech-wiki/code/SKILL.md` | |
35
+
36
+ ---
37
+
38
+ ## 3. 任务拆分(步骤化,禁止小数步骤)
39
+
40
+ > 每步必须满足:① 单一职责 ② 可独立验证 ③ 失败可回滚
41
+
42
+ | 步骤 | 描述 | 涉及文件 | 验证方式 | 预估耗时 |
43
+ |------|------|---------|---------|---------|
44
+ | 1 | | | | |
45
+ | 2 | | | | |
46
+ | 3 | | | | |
47
+
48
+ ---
49
+
50
+ ## 4. 文件变更清单
51
+
52
+ | 路径 | 变更类型 | 说明 |
53
+ |------|---------|------|
54
+ | | 新增/修改/删除 | |
55
+
56
+ ---
57
+
58
+ ## 5. 接口契约(与 design.md 一致)
59
+
60
+ | 接口 | 入参 | 出参 | 错误码 |
61
+ |------|------|------|-------|
62
+ | | | | |
63
+
64
+ ---
65
+
66
+ ## 6. 测试计划
67
+
68
+ - 单元测试覆盖:
69
+ - 集成验证步骤:
70
+ - 回归范围:
71
+
72
+ ---
73
+
74
+ ## 7. 风险与回滚
75
+
76
+ | 风险 | 触发条件 | 缓解措施 | 回滚方案 |
77
+ |------|---------|---------|---------|
78
+ | | | | |
79
+
80
+ ---
81
+
82
+ ## 8. 验收清单(DoD)
83
+
84
+ - [ ] 全部步骤完成且单测通过
85
+ - [ ] CR 报告状态为 PASS
86
+ - [ ] spec 全部场景绿
87
+ - [ ] 文档/CHANGELOG 更新
88
+
89
+ ---
90
+
91
+ > **维护规则**:plan 由 `/modus:plan` 命令生成;step 编号严格自然数;任何小数步骤(如 1.1, 1.2)需重构为独立顶级步骤。
@@ -0,0 +1,78 @@
1
+ # Spec — Gherkin 验收规格模板
2
+
3
+ > **生成位置**:`modus/artifacts/<STORY_ID>/code/spec/{feature}.feature.md`
4
+ > **生成命令**:`/modus:spec --story <id>`
5
+
6
+ ---
7
+
8
+ ## 元信息
9
+
10
+ ```yaml
11
+ story_id: ""
12
+ pid_ref: "modus/artifacts/<STORY_ID>/pid/prd.md"
13
+ design_ref: "modus/artifacts/<STORY_ID>/design/design.md"
14
+ feature_name: ""
15
+ created_at: ""
16
+ mode: "delta" # full | delta(v3.2+ 增量模式)
17
+ ```
18
+
19
+ ---
20
+
21
+ ## Feature 描述
22
+
23
+ ```gherkin
24
+ # language: zh-CN
25
+ 功能: <feature_name>
26
+
27
+ 作为 <角色>
28
+ 我想要 <做什么>
29
+ 以便 <达成什么价值>
30
+
31
+ # ---- 主流程 ----
32
+ 场景: 主流程成功
33
+ 假设 <前置条件>
34
+ 当 <触发动作>
35
+ 那么 <预期结果>
36
+ 并且 <附加结果>
37
+
38
+ # ---- 异常流程 ----
39
+ 场景: <异常分支说明>
40
+ 假设 <异常前置条件>
41
+ 当 <触发动作>
42
+ 那么 <异常处理结果>
43
+
44
+ # ---- 边界值 ----
45
+ 场景大纲: <参数化场景>
46
+ 假设 输入参数 <param>
47
+ 当 调用接口
48
+ 那么 结果应为 <expected>
49
+
50
+ 例子:
51
+ | param | expected |
52
+ | | |
53
+ ```
54
+
55
+ ---
56
+
57
+ ## AC 映射表
58
+
59
+ > 每条 AC 必须有对应场景;每个场景必须可被自动化用例覆盖。
60
+
61
+ | AC ID(来自 PID) | 场景名 | 覆盖类型 | 自动化用例路径 |
62
+ |------------------|--------|---------|--------------|
63
+ | AC-01 | | 主流程 | |
64
+ | AC-02 | | 异常 | |
65
+
66
+ ---
67
+
68
+ ## 增量变更说明(delta 模式必填)
69
+
70
+ | 变更类型 | 描述 |
71
+ |---------|------|
72
+ | 新增场景 | |
73
+ | 修改场景 | |
74
+ | 删除场景 | |
75
+
76
+ ---
77
+
78
+ > **维护规则**:spec 命令默认 delta 模式,仅追加变更场景;fullsweep 模式重写全部。
@@ -0,0 +1,101 @@
1
+ # Sprint Contract — Harness Loop2 契约模板
2
+
3
+ > **生成位置**:`modus/artifacts/<STORY_ID>/code/sprint-contract.md`
4
+ > **生成命令**:Harness Loop2 SubAgent03(modus-developer)启动时
5
+
6
+ ---
7
+
8
+ ## 元信息
9
+
10
+ ```yaml
11
+ story_id: ""
12
+ sprint_id: "" # 形如 SPRINT-001 / SPRINT-002
13
+ agent: "modus-developer"
14
+ schema_version: "1.1"
15
+ created_at: ""
16
+ plan_ref: "modus/artifacts/<STORY_ID>/code/plan.md"
17
+ spec_ref: "modus/artifacts/<STORY_ID>/code/spec/"
18
+ design_ref: "modus/artifacts/<STORY_ID>/design/design.md"
19
+ gate_status: "open" # open | passed | failed
20
+ ```
21
+
22
+ ---
23
+
24
+ ## 1. Sprint 范围
25
+
26
+ | 步骤(来自 plan) | 状态 | 负责文件 |
27
+ |-----------------|------|---------|
28
+ | Step 1 | | |
29
+ | Step 2 | | |
30
+
31
+ ---
32
+
33
+ ## 2. 输入契约(Input Contract)
34
+
35
+ > Harness Gate 检查项:所有依赖必须就绪后才能进入实施。
36
+
37
+ - [ ] plan.md 存在且 status=ready
38
+ - [ ] design.md 存在且 status=approved
39
+ - [ ] spec/ 目录存在且场景非空
40
+ - [ ] 业务域 Skill 已加载:`modus/knowledge_base/domain/<domain>/code/SKILL.md`
41
+ - [ ] CR 工具就绪(modus-reviewer)
42
+
43
+ ---
44
+
45
+ ## 3. 输出契约(Output Contract)
46
+
47
+ > Sprint 结束时必须满足:
48
+
49
+ - [ ] 所有计划步骤代码合入
50
+ - [ ] spec 场景绿(自动化用例通过)
51
+ - [ ] cr-report.md 产出且 status=PASS
52
+ - [ ] vibe-log.md 完整记录变更
53
+ - [ ] 单元测试覆盖率 ≥ 既定阈值
54
+
55
+ ---
56
+
57
+ ## 4. 边界声明
58
+
59
+ > 本 Sprint **不涉及**:(防止越界)
60
+ - ...
61
+
62
+ ---
63
+
64
+ ## 5. 失败处理
65
+
66
+ | 失败类型 | 处理方式 |
67
+ |---------|---------|
68
+ | spec 场景不绿 | 回到 modus-developer 修复,最多 3 轮 |
69
+ | CR 报告 FAIL | 触发 modus-reviewer 详细分析,标记 needs-human |
70
+ | 测试覆盖不足 | 触发 modus-tester 补测试 |
71
+
72
+ ---
73
+
74
+ ## 6. 状态机变更日志
75
+
76
+ | 时间 | 状态 | 触发者 | 备注 |
77
+ |------|------|-------|------|
78
+ | | | | |
79
+
80
+ ---
81
+
82
+ ## HANDOFF(schema v1.1)
83
+
84
+ ```yaml
85
+ schema_version: "1.1"
86
+ from: "modus-developer"
87
+ to: "modus-reviewer"
88
+ story_id: ""
89
+ sprint_id: ""
90
+ status: "ready_for_review"
91
+ artifacts:
92
+ - "modus/artifacts/<STORY_ID>/code/sprint-contract.md"
93
+ checkpoints:
94
+ spec_passed: false
95
+ cr_required: true
96
+ issues: []
97
+ ```
98
+
99
+ ---
100
+
101
+ > **维护规则**:sprint-contract 是 Harness Loop2 的"工作合同";任何契约变更必须更新本文件并刷新 `.harness-state.yaml`。