@modus-ai/modus 0.2.2 → 0.2.4
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/README.md +9 -9
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/generators/claude.js +24 -24
- package/dist/generators/claude.js.map +1 -1
- package/dist/generators/codebuddy.js +24 -24
- package/dist/generators/codebuddy.js.map +1 -1
- package/dist/generators/cursor.d.ts +2 -1
- package/dist/generators/cursor.d.ts.map +1 -1
- package/dist/generators/cursor.js +46 -70
- package/dist/generators/cursor.js.map +1 -1
- package/package.json +1 -1
- package/schemas/harness-schema.yaml +7 -7
- package/schemas/knowledge-schema.yaml +12 -0
- package/templates/agents/{modus-harness-01-analysis.md → modus-analyst.md} +2 -2
- package/templates/agents/{modus-harness-07-deploy.md → modus-deployer.md} +2 -2
- package/templates/agents/{modus-harness-01-5-design.md → modus-designer.md} +3 -3
- package/templates/agents/{modus-harness-02-dev.md → modus-developer.md} +2 -2
- package/templates/agents/{modus-harness-04-perf.md → modus-perf-auditor.md} +2 -2
- package/templates/agents/{modus-harness-06-review.md → modus-reviewer.md} +2 -2
- package/templates/agents/{modus-harness-05-security.md → modus-security-auditor.md} +2 -2
- package/templates/agents/{modus-harness-00-skills-builder.md → modus-skill-creator.md} +2 -2
- package/templates/agents/{modus-harness-03-test.md → modus-tester.md} +2 -2
- package/templates/commands/vibe.md +12 -8
- package/templates/knowledge-catalog.md +27 -0
- package/templates/skills/{modus-harness-agents/01-analysis → modus-agents/analyst}/SKILL.md +2 -2
- package/templates/skills/{modus-harness-agents/07-deploy → modus-agents/deployer}/SKILL.md +2 -2
- package/templates/skills/{modus-harness-agents/01-5-design → modus-agents/designer}/SKILL.md +2 -2
- package/templates/skills/{modus-harness-agents/02-dev → modus-agents/developer}/SKILL.md +2 -2
- package/templates/skills/{modus-harness-agents/04-perf → modus-agents/perf-auditor}/SKILL.md +2 -2
- package/templates/skills/{modus-harness-agents/06-review → modus-agents/reviewer}/SKILL.md +2 -2
- package/templates/skills/{modus-harness-agents/05-security → modus-agents/security-auditor}/SKILL.md +2 -2
- package/templates/skills/{modus-harness-agents/00-skills-builder → modus-agents/skill-creator}/SKILL.md +9 -9
- package/templates/skills/{modus-harness-agents/03-test → modus-agents/tester}/SKILL.md +2 -2
- package/templates/skills/modus-design-brief/SKILL.md +1 -1
- package/templates/skills/modus-harness/SKILL.md +16 -16
- package/templates/skills/modus-init/SKILL.md +58 -29
- package/templates/skills/modus-plan/SKILL.md +1 -1
- package/templates/skills/modus-spec/SKILL.md +2 -2
- package/templates/skills/modus-vibe/SKILL.md +200 -93
|
@@ -1,70 +1,51 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { writeFile, readTemplate, fileExists, readFile } from '../utils/file-system.js';
|
|
3
|
+
const SKILLS_BASE = path.join('.cursor', 'skills');
|
|
3
4
|
const RULES_BASE = path.join('.cursor', 'rules');
|
|
4
5
|
const MCP_PATH = path.join('.cursor', 'mcp.json');
|
|
5
6
|
// ---------------------------------------------------------------------------
|
|
6
|
-
// Framework
|
|
7
|
-
// ---------------------------------------------------------------------------
|
|
8
|
-
const
|
|
9
|
-
{
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
id: 'modus-vibe',
|
|
16
|
-
templatePath: 'skills/modus-vibe/SKILL.md',
|
|
17
|
-
description: 'Run /modus:vibe to start context-aware vibe coding with business Skill preloading',
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
id: 'modus-plan',
|
|
21
|
-
templatePath: 'skills/modus-plan/SKILL.md',
|
|
22
|
-
description: 'Run /modus:plan to create structured feature proposals with complexity grading',
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
id: 'modus-spec',
|
|
26
|
-
templatePath: 'skills/modus-spec/SKILL.md',
|
|
27
|
-
description: 'Run /modus:spec for OpenSpec-driven development with delta specs and GIVEN/WHEN/THEN scenarios',
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
id: 'modus-auto',
|
|
31
|
-
templatePath: 'skills/modus-auto/SKILL.md',
|
|
32
|
-
description: 'Run /modus:auto with a TAPD story URL to get AI-recommended mode (vibe/plan/spec/harness)',
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
id: 'modus-harness',
|
|
36
|
-
templatePath: 'skills/modus-harness/SKILL.md',
|
|
37
|
-
description: 'Run /modus:harness to execute the full dual-loop multi-agent development pipeline',
|
|
38
|
-
},
|
|
7
|
+
// Framework command skills → .cursor/skills/modus-{cmd}/SKILL.md
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
const COMMAND_SKILLS = [
|
|
10
|
+
{ id: 'modus-init', templatePath: 'skills/modus-init/SKILL.md' },
|
|
11
|
+
{ id: 'modus-vibe', templatePath: 'skills/modus-vibe/SKILL.md' },
|
|
12
|
+
{ id: 'modus-plan', templatePath: 'skills/modus-plan/SKILL.md' },
|
|
13
|
+
{ id: 'modus-spec', templatePath: 'skills/modus-spec/SKILL.md' },
|
|
14
|
+
{ id: 'modus-auto', templatePath: 'skills/modus-auto/SKILL.md' },
|
|
15
|
+
{ id: 'modus-harness', templatePath: 'skills/modus-harness/SKILL.md' },
|
|
39
16
|
];
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
{ id: '
|
|
46
|
-
{ id: '
|
|
47
|
-
{ id: '
|
|
48
|
-
{ id: '
|
|
49
|
-
{ id: '
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Harness SubAgent skills → .cursor/skills/modus-harness-{id}/SKILL.md
|
|
19
|
+
// Cursor uses the Task tool for real parallel SubAgent dispatching.
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
const HARNESS_AGENT_SKILLS = [
|
|
22
|
+
{ id: 'modus-skill-creator', templatePath: 'skills/modus-agents/skill-creator/SKILL.md' },
|
|
23
|
+
{ id: 'modus-analyst', templatePath: 'skills/modus-agents/analyst/SKILL.md' },
|
|
24
|
+
{ id: 'modus-designer', templatePath: 'skills/modus-agents/designer/SKILL.md' },
|
|
25
|
+
{ id: 'modus-developer', templatePath: 'skills/modus-agents/developer/SKILL.md' },
|
|
26
|
+
{ id: 'modus-tester', templatePath: 'skills/modus-agents/tester/SKILL.md' },
|
|
27
|
+
{ id: 'modus-perf-auditor', templatePath: 'skills/modus-agents/perf-auditor/SKILL.md' },
|
|
28
|
+
{ id: 'modus-security-auditor', templatePath: 'skills/modus-agents/security-auditor/SKILL.md' },
|
|
29
|
+
{ id: 'modus-reviewer', templatePath: 'skills/modus-agents/reviewer/SKILL.md' },
|
|
30
|
+
{ id: 'modus-deployer', templatePath: 'skills/modus-agents/deployer/SKILL.md' },
|
|
50
31
|
];
|
|
51
32
|
// ---------------------------------------------------------------------------
|
|
52
33
|
// Main entry
|
|
53
34
|
// ---------------------------------------------------------------------------
|
|
54
35
|
export function generateCursorFiles(projectRoot, config, _opts = {}) {
|
|
55
|
-
|
|
56
|
-
|
|
36
|
+
generateCursorCommandSkills(projectRoot, config);
|
|
37
|
+
generateCursorHarnessAgentSkills(projectRoot);
|
|
57
38
|
generateCursorConstitution(projectRoot, config);
|
|
58
39
|
generateCursorAutoVibe(projectRoot);
|
|
59
40
|
generateCursorMcp(projectRoot, config);
|
|
60
41
|
}
|
|
61
42
|
// ---------------------------------------------------------------------------
|
|
62
|
-
//
|
|
43
|
+
// Command skills → .cursor/skills/modus-{cmd}/SKILL.md
|
|
44
|
+
// These are loaded by Cursor when the user types /modus:* commands.
|
|
63
45
|
// ---------------------------------------------------------------------------
|
|
64
|
-
function
|
|
46
|
+
function generateCursorCommandSkills(projectRoot, config) {
|
|
65
47
|
const enabled = new Set(config.commands.enabled);
|
|
66
|
-
for (const skill of
|
|
67
|
-
// Only generate command-backed skills if the command is enabled
|
|
48
|
+
for (const skill of COMMAND_SKILLS) {
|
|
68
49
|
const cmdId = skill.id.replace('modus-', '');
|
|
69
50
|
if (['init', 'vibe', 'plan', 'spec', 'auto', 'harness'].includes(cmdId) && !enabled.has(cmdId)) {
|
|
70
51
|
continue;
|
|
@@ -76,25 +57,18 @@ function generateCursorSkillRules(projectRoot, config) {
|
|
|
76
57
|
catch {
|
|
77
58
|
continue;
|
|
78
59
|
}
|
|
79
|
-
const
|
|
80
|
-
writeFile(
|
|
60
|
+
const destPath = path.join(projectRoot, SKILLS_BASE, skill.id, 'SKILL.md');
|
|
61
|
+
writeFile(destPath, body);
|
|
81
62
|
}
|
|
82
63
|
}
|
|
83
64
|
// ---------------------------------------------------------------------------
|
|
84
|
-
// Harness
|
|
65
|
+
// Harness SubAgent skills → .cursor/skills/modus-harness-{id}/SKILL.md
|
|
66
|
+
// The Harness orchestrator uses Cursor's Task tool to dispatch these agents
|
|
67
|
+
// in parallel (SA03/04/05) or sequentially (SA01 → SA02 → SA06 → SA07).
|
|
68
|
+
// No single-agent degradation — full dual-loop multi-agent mode is supported.
|
|
85
69
|
// ---------------------------------------------------------------------------
|
|
86
|
-
function
|
|
87
|
-
const
|
|
88
|
-
'# Modus Harness — Single-Agent Mode',
|
|
89
|
-
'',
|
|
90
|
-
'> **Note:** Cursor does not support native Sub-Agents. The Harness pipeline runs in',
|
|
91
|
-
'> single-agent mode: the orchestrator executes each step sequentially within one context.',
|
|
92
|
-
'> For full parallel Sub-Agent support, use CodeBuddy or Claude Code.',
|
|
93
|
-
'',
|
|
94
|
-
'## Pipeline Steps (sequential)',
|
|
95
|
-
'',
|
|
96
|
-
];
|
|
97
|
-
for (const agent of HARNESS_SUB_AGENT_TEMPLATES) {
|
|
70
|
+
function generateCursorHarnessAgentSkills(projectRoot) {
|
|
71
|
+
for (const agent of HARNESS_AGENT_SKILLS) {
|
|
98
72
|
let body;
|
|
99
73
|
try {
|
|
100
74
|
body = readTemplate(agent.templatePath);
|
|
@@ -102,13 +76,13 @@ function generateCursorHarnessRule(projectRoot) {
|
|
|
102
76
|
catch {
|
|
103
77
|
continue;
|
|
104
78
|
}
|
|
105
|
-
|
|
79
|
+
const destPath = path.join(projectRoot, SKILLS_BASE, agent.id, 'SKILL.md');
|
|
80
|
+
writeFile(destPath, body);
|
|
106
81
|
}
|
|
107
|
-
const content = buildMdcFile('Modus Harness orchestration steps (single-agent mode for Cursor)', false, sections.join('\n'));
|
|
108
|
-
writeFile(path.join(projectRoot, RULES_BASE, 'modus-harness-agents.mdc'), content);
|
|
109
82
|
}
|
|
110
83
|
// ---------------------------------------------------------------------------
|
|
111
|
-
// Constitution rule
|
|
84
|
+
// Constitution rule — alwaysApply: true
|
|
85
|
+
// Injects project hard rules into every Cursor conversation.
|
|
112
86
|
// ---------------------------------------------------------------------------
|
|
113
87
|
function generateCursorConstitution(projectRoot, config) {
|
|
114
88
|
const any = config;
|
|
@@ -147,7 +121,8 @@ function generateCursorConstitution(projectRoot, config) {
|
|
|
147
121
|
writeFile(path.join(projectRoot, RULES_BASE, 'modus-constitution.mdc'), content);
|
|
148
122
|
}
|
|
149
123
|
// ---------------------------------------------------------------------------
|
|
150
|
-
// Auto-vibe
|
|
124
|
+
// Auto-vibe rule — alwaysApply: true
|
|
125
|
+
// Loads business context automatically at the start of each conversation.
|
|
151
126
|
// ---------------------------------------------------------------------------
|
|
152
127
|
function generateCursorAutoVibe(projectRoot) {
|
|
153
128
|
const body = [
|
|
@@ -211,7 +186,8 @@ function buildMdcFile(description, alwaysApply, body) {
|
|
|
211
186
|
// ---------------------------------------------------------------------------
|
|
212
187
|
/**
|
|
213
188
|
* Sync a single business Skill to Cursor format.
|
|
214
|
-
*
|
|
189
|
+
* Business Skills are stored as rules (.cursor/rules/modus-biz-{domain}.mdc)
|
|
190
|
+
* so they can be injected as context when the relevant domain is active.
|
|
215
191
|
*/
|
|
216
192
|
export function syncBizSkillToCursor(projectRoot, domain, skillContent) {
|
|
217
193
|
const content = buildMdcFile(`Business rules and conventions for the ${domain} domain`, false, skillContent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/generators/cursor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/generators/cursor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -5,14 +5,14 @@ description: 双 Loop 多智能体 Harness — 全自动需求分析、开发、
|
|
|
5
5
|
|
|
6
6
|
subAgents:
|
|
7
7
|
- id: "01"
|
|
8
|
-
skill: modus-
|
|
8
|
+
skill: modus-analyst
|
|
9
9
|
name: 需求分析
|
|
10
10
|
generates: 01-analysis.md
|
|
11
11
|
requires: []
|
|
12
12
|
loop: 1
|
|
13
13
|
|
|
14
14
|
- id: "02"
|
|
15
|
-
skill: modus-
|
|
15
|
+
skill: modus-developer
|
|
16
16
|
name: 代码开发
|
|
17
17
|
generates: 02-sprint-contract.md
|
|
18
18
|
requires: ["01"]
|
|
@@ -20,7 +20,7 @@ subAgents:
|
|
|
20
20
|
gateAfter: compile # Gate A: 编译验证
|
|
21
21
|
|
|
22
22
|
- id: "03"
|
|
23
|
-
skill: modus-
|
|
23
|
+
skill: modus-tester
|
|
24
24
|
name: 代码测试
|
|
25
25
|
generates: 03-test-report.md
|
|
26
26
|
requires: ["02"]
|
|
@@ -28,7 +28,7 @@ subAgents:
|
|
|
28
28
|
parallel: ["03", "04", "05"] # 与 04/05 并行
|
|
29
29
|
|
|
30
30
|
- id: "04"
|
|
31
|
-
skill: modus-
|
|
31
|
+
skill: modus-perf-auditor
|
|
32
32
|
name: 性能审计
|
|
33
33
|
generates: 04-perf-report.md
|
|
34
34
|
requires: ["02"]
|
|
@@ -36,7 +36,7 @@ subAgents:
|
|
|
36
36
|
parallel: ["03", "04", "05"]
|
|
37
37
|
|
|
38
38
|
- id: "05"
|
|
39
|
-
skill: modus-
|
|
39
|
+
skill: modus-security-auditor
|
|
40
40
|
name: 安全审计
|
|
41
41
|
generates: 05-security-report.md
|
|
42
42
|
requires: ["02"]
|
|
@@ -44,14 +44,14 @@ subAgents:
|
|
|
44
44
|
parallel: ["03", "04", "05"]
|
|
45
45
|
|
|
46
46
|
- id: "06"
|
|
47
|
-
skill: modus-
|
|
47
|
+
skill: modus-reviewer
|
|
48
48
|
name: 代码评审
|
|
49
49
|
generates: cr-report.md
|
|
50
50
|
requires: ["03", "04", "05"] # Gate B: 等待 03/04/05 全部完成
|
|
51
51
|
loop: 2
|
|
52
52
|
|
|
53
53
|
- id: "07"
|
|
54
|
-
skill: modus-
|
|
54
|
+
skill: modus-deployer
|
|
55
55
|
name: 部署发布
|
|
56
56
|
generates: 07-deploy-status.md
|
|
57
57
|
requires: ["06"]
|
|
@@ -69,6 +69,18 @@ skill_frontmatter:
|
|
|
69
69
|
type: date
|
|
70
70
|
required: true
|
|
71
71
|
description: 最近一次被工作流引用的日期,用于衰减计算
|
|
72
|
+
|
|
73
|
+
- name: last_hash
|
|
74
|
+
type: string
|
|
75
|
+
required: true
|
|
76
|
+
description: key_files 内容的 SHA-1 哈希值,用于检测代码变更。初始值为空字符串,首次使用时自动计算
|
|
77
|
+
default: ""
|
|
78
|
+
|
|
79
|
+
- name: key_files
|
|
80
|
+
type: list
|
|
81
|
+
required: true
|
|
82
|
+
description: 关键源文件路径列表(最多20个),用于计算 last_hash。按优先级选取:Service/Manager/Mapper/Entity(必选),Enum/Exception(强烈建议),MQ/Config(有则加入)
|
|
83
|
+
default: []
|
|
72
84
|
|
|
73
85
|
- name: usage_count
|
|
74
86
|
type: integer
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-analyst
|
|
3
3
|
description: Use this agent when the Harness orchestrator needs to perform requirements analysis for a TAPD Story. Fetches the story content, identifies affected business domains and code files at method level, assesses risk level, and produces 01-analysis.md with a machine-readable HANDOFF block. Triggered as the first sequential step in Harness Loop 1 after knowledge injection.
|
|
4
4
|
agentMode: agentic
|
|
5
5
|
tools: Read, Write, Glob, WebFetch
|
|
@@ -7,7 +7,7 @@ enabledAutoRun: true
|
|
|
7
7
|
enabled: true
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
读取并严格遵循 `.codebuddy/skills/modus-
|
|
10
|
+
读取并严格遵循 `.codebuddy/skills/modus-analyst/SKILL.md` 中的执行规范。
|
|
11
11
|
|
|
12
12
|
产出物路径:`modus/plans/active/{story-id}/01-analysis.md`
|
|
13
13
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-deployer
|
|
3
3
|
description: Use this agent when the Harness orchestrator needs to verify deployment after Gate C passes (cr-report has no P1/P2 issues). Monitors CI/CD pipeline status, validates service health across environments (dev→uat→pre→prd), executes smoke tests on P0 interfaces, monitors ERROR log volume for 30 minutes post-deployment, and produces 07-deploy-status.md. prd environment requires manual confirmation.
|
|
4
4
|
agentMode: agentic
|
|
5
5
|
tools: Read, Write, Glob, Bash, WebFetch
|
|
@@ -7,7 +7,7 @@ enabledAutoRun: false
|
|
|
7
7
|
enabled: true
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
读取并严格遵循 `.codebuddy/skills/modus-
|
|
10
|
+
读取并严格遵循 `.codebuddy/skills/modus-deployer/SKILL.md` 中的执行规范。
|
|
11
11
|
|
|
12
12
|
输入依赖:`cr-report.md`(HANDOFF.gate_status = passed)+ `02-sprint-contract.md`。
|
|
13
13
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# modus-
|
|
1
|
+
# modus-designer
|
|
2
2
|
|
|
3
|
-
SubAgent
|
|
3
|
+
SubAgent — 技术方案设计。
|
|
4
4
|
|
|
5
5
|
## Instructions
|
|
6
6
|
|
|
7
|
-
Read and follow the skill at `.codebuddy/skills/modus-
|
|
7
|
+
Read and follow the skill at `.codebuddy/skills/modus-designer/SKILL.md` to execute this SubAgent.
|
|
8
8
|
|
|
9
9
|
## Quick Summary
|
|
10
10
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-developer
|
|
3
3
|
description: Use this agent when the Harness orchestrator needs to implement code based on 01-analysis.md. Implements changes layer by layer (data → service → orchestration → interface), runs build compilation as Gate A check, and produces 02-sprint-contract.md. Also triggered during Loop 2 re-entry to fix P1/P2 issues identified in cr-report.md.
|
|
4
4
|
agentMode: agentic
|
|
5
5
|
tools: Read, Write, Glob, Bash
|
|
@@ -7,7 +7,7 @@ enabledAutoRun: true
|
|
|
7
7
|
enabled: true
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
读取并严格遵循 `.codebuddy/skills/modus-
|
|
10
|
+
读取并严格遵循 `.codebuddy/skills/modus-developer/SKILL.md` 中的执行规范。
|
|
11
11
|
|
|
12
12
|
输入依赖:`modus/plans/active/{story-id}/01-analysis.md` 的 HANDOFF 块 + 相关业务 Skill 内容(由 Orchestrator 传入)。
|
|
13
13
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-perf-auditor
|
|
3
3
|
description: Use this agent when the Harness orchestrator needs to perform static performance audit on code changes after Gate A passes. Detects N+1 queries (DB calls inside loops), missing batch operations, unbounded large data fetches without pagination protection, ES queries missing fetchSource/trackTotalHits, and deep pagination risks. Runs in parallel with SubAgents 03 and 05.
|
|
4
4
|
agentMode: agentic
|
|
5
5
|
tools: Read, Write, Glob
|
|
@@ -7,7 +7,7 @@ enabledAutoRun: true
|
|
|
7
7
|
enabled: true
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
读取并严格遵循 `.codebuddy/skills/modus-
|
|
10
|
+
读取并严格遵循 `.codebuddy/skills/modus-perf-auditor/SKILL.md` 中的执行规范。
|
|
11
11
|
|
|
12
12
|
输入依赖:`modus/plans/active/{story-id}/02-sprint-contract.md` 的 HANDOFF 块 + 代码变更文件。
|
|
13
13
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-reviewer
|
|
3
3
|
description: Use this agent when the Harness orchestrator needs comprehensive code review after all audit reports are ready (Gate B passed). Reviews all artifacts (01-analysis.md through 05-security-report.md) plus actual code changes, grades issues as P1/P2/P3, and produces cr-report.md. If P1/P2 issues exist, orchestrator triggers Loop 2 re-entry into SubAgent 02.
|
|
4
4
|
agentMode: agentic
|
|
5
5
|
tools: Read, Write, Glob
|
|
@@ -7,7 +7,7 @@ enabledAutoRun: true
|
|
|
7
7
|
enabled: true
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
读取并严格遵循 `.codebuddy/skills/modus-
|
|
10
|
+
读取并严格遵循 `.codebuddy/skills/modus-reviewer/SKILL.md` 中的执行规范。
|
|
11
11
|
|
|
12
12
|
输入依赖:全部产出物(01-analysis.md 至 05-security-report.md)的 HANDOFF 块 + 代码变更。
|
|
13
13
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-security-auditor
|
|
3
3
|
description: Use this agent when the Harness orchestrator needs to perform security audit on code changes after Gate A passes. Checks multi-tenant data isolation (tenantId source), missing @UserAuthorization on Facade layer, sensitive data logging (bank card/ID/phone), SQL injection via ${} concatenation, and bypass interfaces lacking tenantId protection. Runs in parallel with SubAgents 03 and 04.
|
|
4
4
|
agentMode: agentic
|
|
5
5
|
tools: Read, Write, Glob
|
|
@@ -7,7 +7,7 @@ enabledAutoRun: true
|
|
|
7
7
|
enabled: true
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
读取并严格遵循 `.codebuddy/skills/modus-
|
|
10
|
+
读取并严格遵循 `.codebuddy/skills/modus-security-auditor/SKILL.md` 中的执行规范。
|
|
11
11
|
|
|
12
12
|
输入依赖:`modus/plans/active/{story-id}/02-sprint-contract.md` 的 HANDOFF 块 + 代码变更文件。
|
|
13
13
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-skill-creator
|
|
3
3
|
description: Use this agent when any Modus workflow needs to create, update, or extract knowledge to/from Business Skill files. Examples: - Harness orchestrator calls this during INIT phase to refresh business Skills before analysis. - /modus:plan calls this for pre/post Skill update. - /modus:init calls this to generate initial Business Skill files from codebase scan. - Harness ARCHIVE phase calls this to extract decision/guideline/pitfall from artifacts into Skills.
|
|
4
4
|
agentMode: agentic
|
|
5
5
|
tools: Read, Write, Glob, Bash
|
|
@@ -7,6 +7,6 @@ enabledAutoRun: true
|
|
|
7
7
|
enabled: true
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
读取并严格遵循 `.codebuddy/skills/modus-
|
|
10
|
+
读取并严格遵循 `.codebuddy/skills/modus-skill-creator/SKILL.md` 中的执行规范和五种工作模式(A: 新建 Skill / B: 增量更新 / C: 知识回写 / D: Harness 归档提取 / E: 基础 Skill 初始化)。
|
|
11
11
|
|
|
12
12
|
调用方必须在 prompt 中明确指定工作模式(A/B/C/D/E)和目标业务域列表。
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-tester
|
|
3
3
|
description: Use this agent when the Harness orchestrator needs to generate unit tests for code changes after Gate A passes. Covers Happy Path, boundary conditions (null/empty/max), exception paths (lock failure, transaction rollback, auth check), and concurrency scenarios using @MockBean to isolate dependencies. Runs in parallel with SubAgents 04 and 05.
|
|
4
4
|
agentMode: agentic
|
|
5
5
|
tools: Read, Write, Glob, Bash
|
|
@@ -7,7 +7,7 @@ enabledAutoRun: true
|
|
|
7
7
|
enabled: true
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
读取并严格遵循 `.codebuddy/skills/modus-
|
|
10
|
+
读取并严格遵循 `.codebuddy/skills/modus-tester/SKILL.md` 中的执行规范。
|
|
11
11
|
|
|
12
12
|
输入依赖:`modus/plans/active/{story-id}/02-sprint-contract.md` 的 HANDOFF 块 + 代码变更文件。
|
|
13
13
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /modus:vibe
|
|
2
2
|
|
|
3
|
-
Context-aware vibe coding.
|
|
3
|
+
Context-aware vibe coding. Intelligently loads relevant business Skills, auto-syncs stale knowledge, and applies rule-driven clarification before coding so AI works as a knowledgeable project member.
|
|
4
4
|
|
|
5
5
|
## Instructions
|
|
6
6
|
|
|
@@ -8,11 +8,15 @@ Read and follow the skill at `.codebuddy/skills/modus-vibe/SKILL.md` to execute
|
|
|
8
8
|
|
|
9
9
|
## Quick Summary
|
|
10
10
|
|
|
11
|
-
1.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
1. Read `modus/config.yaml` for hard constraints (constitution)
|
|
12
|
+
2. Load `modus/knowledge-catalog.md` (Level 1, ~200 tokens)
|
|
13
|
+
3. **Smart Analysis Engine**: auto-match domains (confidence ≥ 85% → auto-confirm, no user input needed), assess task complexity (Simple / Medium / Complex), detect ambiguity
|
|
14
|
+
4. **Conditional Skill Pre-sync** (silent): check if matched Skills are stale via hash; update if needed; show one-line status `[已同步 {domain} 域知识]`
|
|
15
|
+
5. **Rule-driven AskUserQuestion**: check 5 ambiguity rules (R1–R5); skip entirely for clear tasks; ask at most 2 questions when rules are hit
|
|
16
|
+
6. Load matched Skill files as context (Level 2, ~3000 tokens each)
|
|
17
|
+
7. **Adaptive Design Brief**: Simple tasks → 3-section inline brief; Medium/Complex → full 9-section brief
|
|
18
|
+
8. Execute the coding task with business context (Level 3 on-demand file reads)
|
|
19
|
+
9. **Auto Skill write-back** (silent): if new knowledge discovered, call skill-creator Mode C to persist; show one-line `[已更新 {domain} 域知识: ...]`; if nothing new, stay silent
|
|
20
|
+
10. Append session log to `modus/sessions/vibe-log.md`
|
|
17
21
|
|
|
18
|
-
**Degraded mode** (no business Skills): proceed without domain context,
|
|
22
|
+
**Degraded mode** (no business Skills): proceed without domain context, note quality may be lower, show `[降级模式:无业务上下文,建议先运行 /modus:init]`.
|
|
@@ -24,3 +24,30 @@ updated: {YYYY-MM-DD}
|
|
|
24
24
|
Level 3(按需,无上限): 执行任务时读 Skill 引用的实际代码文件
|
|
25
25
|
|
|
26
26
|
目标:不相关的 Skill 不加载,大幅降低 token 消耗。
|
|
27
|
+
|
|
28
|
+
## Skill 状态生命周期
|
|
29
|
+
|
|
30
|
+
### 成熟度状态(基于 usage_count)
|
|
31
|
+
- **draft** → 初始生成,未经验证(usage_count = 0)
|
|
32
|
+
- **verified** → 经至少1次真实使用验证(usage_count ≥ 1,运行 `/modus:verify` 升级)
|
|
33
|
+
- **proven** → 经≥2个不同工作流验证有效(usage_count ≥ 2)
|
|
34
|
+
- **stale** → last_hash 不匹配或距 last_referenced 超过 stale_after_days,需更新(禁止直接引用)
|
|
35
|
+
- **archived** → 域已废弃,不再维护
|
|
36
|
+
|
|
37
|
+
### 衰减规则(基于 last_referenced)
|
|
38
|
+
- proven + 距 last_referenced 超过 12 个月 → verified
|
|
39
|
+
- verified + 距 last_referenced 超过 6 个月 → stale
|
|
40
|
+
- stale + 距 last_referenced 超过 stale_after_days → archived(需人工二次确认)
|
|
41
|
+
|
|
42
|
+
### 防腐机制核心字段
|
|
43
|
+
每个 Skill frontmatter 必须包含以下字段,缺一不可:
|
|
44
|
+
- **last_referenced**: 最后引用时间(用于衰减计算)
|
|
45
|
+
- **usage_count**: 使用次数(用于成熟度升级)
|
|
46
|
+
- **last_hash**: key_files 内容 SHA-1 哈希(用于检测代码变更,初始留空)
|
|
47
|
+
- **key_files**: 关键源文件列表(最多20个,用于 hash 计算)
|
|
48
|
+
|
|
49
|
+
缺少任一防腐字段将导致:
|
|
50
|
+
- 无法自动检测代码变更
|
|
51
|
+
- 无法触发 Skill 更新
|
|
52
|
+
- 无法计算知识衰减
|
|
53
|
+
- 防腐机制完全失效
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-analyst
|
|
3
3
|
description: Use this skill when the Harness orchestrator needs to perform TAPD Story requirements analysis. Reads the TAPD story, extracts business intent, identifies affected code scope at method level, and generates 01-analysis.md with HANDOFF block. Triggered automatically by modus-harness orchestrator as the first step in Loop 1.
|
|
4
4
|
allowed-tools: Read, Write, Glob, WebFetch
|
|
5
5
|
disable: false
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# modus-
|
|
8
|
+
# modus-analyst(需求分析 SubAgent)
|
|
9
9
|
|
|
10
10
|
**调用方:** Harness Orchestrator(`modus-harness`)
|
|
11
11
|
**输入:** TAPD Story URL + 相关业务 Skill 内容
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-deployer
|
|
3
3
|
description: Use this skill when the Harness orchestrator needs to verify deployment after code review passes (no P1/P2 issues). Monitors CI/CD pipeline status, validates service health across environments (dev→uat→pre→prd), runs smoke tests on P0 interfaces, and generates 07-deploy-status.md. Triggered by modus-harness after Gate C passes.
|
|
4
4
|
allowed-tools: Read, Write, Glob, Bash, WebFetch
|
|
5
5
|
disable: false
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# modus-
|
|
8
|
+
# modus-deployer(部署发布 SubAgent)
|
|
9
9
|
|
|
10
10
|
**调用方:** Harness Orchestrator(Gate C 通过后触发)
|
|
11
11
|
**输入:** `cr-report.md`(无 P1/P2)+ `02-sprint-contract.md`
|
package/templates/skills/{modus-harness-agents/01-5-design → modus-agents/designer}/SKILL.md
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-designer
|
|
3
3
|
description: Use this skill when the Harness orchestrator needs to generate a design-brief between requirements analysis (01-analysis.md) and code development (02-dev). Reads 01-analysis.md and business Skills, asks architecture clarification questions, and produces 01.5-design-brief.md with HANDOFF block. Triggered automatically by modus-harness after SubAgent 01 completes.
|
|
4
4
|
allowed-tools: Read, Write, Glob
|
|
5
5
|
disable: false
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# modus-
|
|
8
|
+
# modus-designer(技术方案设计 SubAgent)
|
|
9
9
|
|
|
10
10
|
**调用方:** Harness Orchestrator(`modus-harness`)
|
|
11
11
|
**输入:** `modus/plans/active/{story-id}/01-analysis.md` + 相关业务 Skill + constitution
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-developer
|
|
3
3
|
description: Use this skill when the Harness orchestrator needs to implement code changes based on the requirements analysis (01-analysis.md). Implements code layer by layer (data → service → orchestration → interface), runs build compilation, and generates 02-sprint-contract.md. Triggered by modus-harness after SubAgent 01 completes or during Loop 2 re-entry for P1/P2 fixes.
|
|
4
4
|
allowed-tools: Read, Write, Glob, Bash
|
|
5
5
|
disable: false
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# modus-
|
|
8
|
+
# modus-developer(代码开发 SubAgent)
|
|
9
9
|
|
|
10
10
|
**调用方:** Harness Orchestrator
|
|
11
11
|
**输入:** `01-analysis.md` + 相关业务 Skill
|
package/templates/skills/{modus-harness-agents/04-perf → modus-agents/perf-auditor}/SKILL.md
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-perf-auditor
|
|
3
3
|
description: Use this skill when the Harness orchestrator needs to perform static performance audit on code changes. Detects N+1 queries, missing batch operations, unbounded data fetches, deep pagination risks, and ES query issues. Generates 04-perf-report.md. Triggered by modus-harness in parallel with SubAgents 03 and 05 after Gate A passes.
|
|
4
4
|
allowed-tools: Read, Write, Glob
|
|
5
5
|
disable: false
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# modus-
|
|
8
|
+
# modus-perf-auditor(性能审计 SubAgent)
|
|
9
9
|
|
|
10
10
|
**调用方:** Harness Orchestrator(与 03/05 并行启动)
|
|
11
11
|
**输入:** `02-sprint-contract.md` + 代码变更
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-reviewer
|
|
3
3
|
description: Use this skill when the Harness orchestrator needs to perform comprehensive code review after all audit reports are ready. Evaluates all artifacts (01-analysis.md through 05-security-report.md), grades issues as P1/P2/P3, and generates cr-report.md with HANDOFF block. Gate C: if P1/P2 issues found, triggers Loop 2 re-entry. Triggered by modus-harness after Gate B passes.
|
|
4
4
|
allowed-tools: Read, Write, Glob
|
|
5
5
|
disable: false
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# modus-
|
|
8
|
+
# modus-reviewer(代码评审 SubAgent)
|
|
9
9
|
|
|
10
10
|
**调用方:** Harness Orchestrator(Gate B 通过后触发)
|
|
11
11
|
**输入:** 全部产出物(01-analysis.md 至 05-security-report.md)+ 代码变更
|
package/templates/skills/{modus-harness-agents/05-security → modus-agents/security-auditor}/SKILL.md
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: modus-
|
|
2
|
+
name: modus-security-auditor
|
|
3
3
|
description: Use this skill when the Harness orchestrator needs to perform security audit on code changes. Checks multi-tenant data isolation, missing authorization annotations, sensitive data logging, SQL injection risks, and bypass interface protection. Generates 05-security-report.md. Triggered by modus-harness in parallel with SubAgents 03 and 04 after Gate A passes.
|
|
4
4
|
allowed-tools: Read, Write, Glob
|
|
5
5
|
disable: false
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# modus-
|
|
8
|
+
# modus-security-auditor(安全审计 SubAgent)
|
|
9
9
|
|
|
10
10
|
**调用方:** Harness Orchestrator(与 03/04 并行启动)
|
|
11
11
|
**输入:** `02-sprint-contract.md` + 代码变更
|