@modus-ai/modus 0.2.11 → 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.
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +8 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +37 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +215 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +9 -3
- package/dist/commands/status.js.map +1 -1
- package/dist/generators/claude.d.ts +4 -2
- package/dist/generators/claude.d.ts.map +1 -1
- package/dist/generators/claude.js +17 -8
- package/dist/generators/claude.js.map +1 -1
- package/dist/generators/codebuddy.d.ts.map +1 -1
- package/dist/generators/codebuddy.js +5 -1
- package/dist/generators/codebuddy.js.map +1 -1
- package/dist/generators/codex.d.ts.map +1 -1
- package/dist/generators/codex.js +4 -4
- package/dist/generators/codex.js.map +1 -1
- package/dist/generators/continue.d.ts +3 -2
- package/dist/generators/continue.d.ts.map +1 -1
- package/dist/generators/continue.js +11 -5
- package/dist/generators/continue.js.map +1 -1
- package/dist/generators/copilot.d.ts.map +1 -1
- package/dist/generators/copilot.js +3 -2
- package/dist/generators/copilot.js.map +1 -1
- package/dist/generators/cursor.d.ts +4 -3
- package/dist/generators/cursor.d.ts.map +1 -1
- package/dist/generators/cursor.js +15 -10
- package/dist/generators/cursor.js.map +1 -1
- package/dist/generators/custom.d.ts +2 -2
- package/dist/generators/custom.js +1 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +7 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/modus.d.ts +12 -0
- package/dist/generators/modus.d.ts.map +1 -0
- package/dist/generators/modus.js +225 -0
- package/dist/generators/modus.js.map +1 -0
- package/package.json +1 -1
- package/schemas/harness-schema.yaml +13 -13
- package/templates/agents/modus-analyst.md +2 -2
- package/templates/agents/modus-deployer.md +1 -1
- package/templates/agents/modus-designer.md +1 -1
- package/templates/agents/modus-developer.md +1 -1
- package/templates/agents/modus-perf-auditor.md +1 -1
- package/templates/agents/modus-reviewer.md +1 -1
- package/templates/agents/modus-security-auditor.md +1 -1
- package/templates/agents/modus-skill-creator.md +1 -1
- package/templates/agents/modus-tester.md +1 -1
- package/templates/commands/auto.md +3 -1
- package/templates/commands/commit.md +11 -5
- package/templates/commands/cr.md +14 -10
- package/templates/commands/harness.md +29 -18
- package/templates/commands/init.md +56 -23
- package/templates/commands/modus.md +33 -11
- package/templates/commands/plan.md +25 -19
- package/templates/commands/spec.md +32 -17
- package/templates/commands/upgrade.md +50 -38
- package/templates/commands/vibe.md +30 -20
- package/templates/domain-business-readme.md +69 -0
- package/templates/domain-code/SKILL.md +94 -0
- package/templates/domain-code/apis.md +48 -0
- package/templates/domain-code/data-models.md +57 -0
- package/templates/domain-code/entities.md +45 -0
- package/templates/domain-code/services.md +51 -0
- package/templates/domain-history-readme.md +60 -0
- package/templates/domain-scenarios-readme.md +58 -0
- package/templates/knowledge-base-map.md +78 -0
- package/templates/knowledge-base-service-graph.md +100 -0
- package/templates/knowledge-catalog.md +38 -43
- package/templates/paths-v4.md +158 -0
- package/templates/rules/modus-workflow/RULE.mdc +45 -38
- package/templates/skills/modus-agents/analyst/SKILL.md +1 -1
- package/templates/skills/modus-agents/developer/SKILL.md +1 -1
- package/templates/skills/modus-agents/reviewer/SKILL.md +1 -1
- package/templates/skills/modus-agents/skill-creator/SKILL.md +3 -3
- package/templates/skills/modus-auto/SKILL.md +19 -19
- package/templates/skills/modus-cr/SKILL.md +1 -1
- package/templates/skills/modus-design-brief/SKILL.md +3 -3
- package/templates/skills/modus-harness/SKILL.md +6 -5
- package/templates/skills/modus-init/SKILL.md +64 -64
- package/templates/skills/modus-init/shared/frontmatter-spec.md +2 -2
- package/templates/skills/modus-init/shared/stack-detection.md +1 -1
- package/templates/skills/modus-init/strategies/fallback-init.md +1 -1
- package/templates/skills/modus-plan/SKILL.md +64 -13
- package/templates/skills/modus-platform/SKILL.md +1 -1
- package/templates/skills/modus-spec/SKILL.md +61 -4
- package/templates/skills/modus-vibe/SKILL.md +10 -10
- package/templates/template/analysis.md +83 -0
- package/templates/template/api-chain.md +69 -0
- package/templates/template/design.md +160 -0
- package/templates/template/pid.md +97 -0
- package/templates/template/plan.md +91 -0
- package/templates/template/spec.md +78 -0
- package/templates/template/sprint-contract.md +101 -0
|
@@ -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`。
|