maestro-flow 0.4.10 → 0.4.11
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/.agents/agents/cli-explore-agent.md +189 -0
- package/.agents/agents/conceptual-planning-agent.md +247 -0
- package/.agents/agents/impeccable-agent.md +101 -0
- package/.agents/agents/team-supervisor.md +145 -0
- package/.agents/agents/team-worker.md +239 -0
- package/.agents/agents/ui-design-agent.md +289 -0
- package/.agents/agents/workflow-analyzer.md +117 -0
- package/.agents/agents/workflow-codebase-mapper.md +79 -0
- package/.agents/agents/workflow-collab-planner.md +145 -0
- package/.agents/agents/workflow-debugger.md +105 -0
- package/.agents/agents/workflow-executor.md +134 -0
- package/.agents/agents/workflow-external-researcher.md +88 -0
- package/.agents/agents/workflow-integration-checker.md +85 -0
- package/.agents/agents/workflow-nyquist-auditor.md +87 -0
- package/.agents/agents/workflow-phase-researcher.md +87 -0
- package/.agents/agents/workflow-plan-checker.md +92 -0
- package/.agents/agents/workflow-planner.md +197 -0
- package/.agents/agents/workflow-project-researcher.md +76 -0
- package/.agents/agents/workflow-research-synthesizer.md +72 -0
- package/.agents/agents/workflow-reviewer.md +84 -0
- package/.agents/agents/workflow-roadmapper.md +83 -0
- package/.agents/agents/workflow-verifier.md +122 -0
- package/.agents/skills/codify-to-knowhow/SKILL.md +169 -0
- package/.agents/skills/codify-to-knowhow/phases/01-load-manifest.md +101 -0
- package/.agents/skills/codify-to-knowhow/phases/02-generate-knowhow.md +97 -0
- package/.agents/skills/codify-to-knowhow/phases/03-generate-specs.md +92 -0
- package/.agents/skills/codify-to-knowhow/phases/04-index-verify.md +119 -0
- package/.agents/skills/learn-decompose/SKILL.md +118 -0
- package/.agents/skills/learn-follow/SKILL.md +129 -0
- package/.agents/skills/learn-investigate/SKILL.md +154 -0
- package/.agents/skills/learn-retro/SKILL.md +159 -0
- package/.agents/skills/learn-second-opinion/SKILL.md +124 -0
- package/.agents/skills/maestro/SKILL.md +224 -0
- package/.agents/skills/maestro-amend/SKILL.md +165 -0
- package/.agents/skills/maestro-analyze/SKILL.md +135 -0
- package/.agents/skills/maestro-brainstorm/SKILL.md +118 -0
- package/.agents/skills/maestro-collab/SKILL.md +174 -0
- package/.agents/skills/maestro-composer/SKILL.md +181 -0
- package/.agents/skills/maestro-execute/SKILL.md +133 -0
- package/.agents/skills/maestro-fork/SKILL.md +88 -0
- package/.agents/skills/maestro-guard/SKILL.md +103 -0
- package/.agents/skills/maestro-help/SKILL.md +266 -0
- package/.agents/skills/maestro-help/index/catalog.json +184 -0
- package/.agents/skills/maestro-help/phases/01-parse-intent.md +122 -0
- package/.agents/skills/maestro-help/phases/02-search-present.md +181 -0
- package/.agents/skills/maestro-help/phases/03-workflow-guide.md +186 -0
- package/.agents/skills/maestro-impeccable/SKILL.md +251 -0
- package/.agents/skills/maestro-init/SKILL.md +80 -0
- package/.agents/skills/maestro-learn/SKILL.md +142 -0
- package/.agents/skills/maestro-merge/SKILL.md +66 -0
- package/.agents/skills/maestro-milestone-audit/SKILL.md +70 -0
- package/.agents/skills/maestro-milestone-complete/SKILL.md +77 -0
- package/.agents/skills/maestro-milestone-release/SKILL.md +98 -0
- package/.agents/skills/maestro-overlay/SKILL.md +180 -0
- package/.agents/skills/maestro-plan/SKILL.md +172 -0
- package/.agents/skills/maestro-player/SKILL.md +177 -0
- package/.agents/skills/maestro-quick/SKILL.md +67 -0
- package/.agents/skills/maestro-ralph/SKILL.md +685 -0
- package/.agents/skills/maestro-ralph-execute/SKILL.md +259 -0
- package/.agents/skills/maestro-roadmap/SKILL.md +170 -0
- package/.agents/skills/maestro-tools-execute/SKILL.md +119 -0
- package/.agents/skills/maestro-tools-register/SKILL.md +159 -0
- package/.agents/skills/maestro-ui-codify/SKILL.md +82 -0
- package/.agents/skills/maestro-update/SKILL.md +178 -0
- package/.agents/skills/maestro-verify/SKILL.md +111 -0
- package/.agents/skills/manage-codebase-rebuild/SKILL.md +77 -0
- package/.agents/skills/manage-codebase-refresh/SKILL.md +59 -0
- package/.agents/skills/manage-harvest/SKILL.md +96 -0
- package/.agents/skills/manage-issue/SKILL.md +75 -0
- package/.agents/skills/manage-issue-discover/SKILL.md +83 -0
- package/.agents/skills/manage-knowhow/SKILL.md +79 -0
- package/.agents/skills/manage-knowhow-capture/SKILL.md +81 -0
- package/.agents/skills/manage-learn/SKILL.md +67 -0
- package/.agents/skills/manage-status/SKILL.md +54 -0
- package/.agents/skills/manage-wiki/SKILL.md +64 -0
- package/.agents/skills/quality-auto-test/SKILL.md +138 -0
- package/.agents/skills/quality-debug/SKILL.md +122 -0
- package/.agents/skills/quality-refactor/SKILL.md +69 -0
- package/.agents/skills/quality-retrospective/SKILL.md +79 -0
- package/.agents/skills/quality-review/SKILL.md +130 -0
- package/.agents/skills/quality-sync/SKILL.md +53 -0
- package/.agents/skills/quality-test/SKILL.md +119 -0
- package/.agents/skills/security-audit/SKILL.md +157 -0
- package/.agents/skills/skill-iter-tune/SKILL.md +384 -0
- package/.agents/skills/skill-iter-tune/phases/01-setup.md +144 -0
- package/.agents/skills/skill-iter-tune/phases/02-execute.md +292 -0
- package/.agents/skills/skill-iter-tune/phases/03-evaluate.md +312 -0
- package/.agents/skills/skill-iter-tune/phases/04-improve.md +186 -0
- package/.agents/skills/skill-iter-tune/phases/05-report.md +166 -0
- package/.agents/skills/skill-iter-tune/specs/evaluation-criteria.md +63 -0
- package/.agents/skills/skill-iter-tune/templates/eval-prompt.md +134 -0
- package/.agents/skills/skill-iter-tune/templates/execute-prompt.md +97 -0
- package/.agents/skills/spec-add/SKILL.md +70 -0
- package/.agents/skills/spec-load/SKILL.md +73 -0
- package/.agents/skills/spec-remove/SKILL.md +53 -0
- package/.agents/skills/spec-setup/SKILL.md +50 -0
- package/.agents/skills/team-coordinate/SKILL.md +268 -0
- package/.agents/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +247 -0
- package/.agents/skills/team-coordinate/roles/coordinator/commands/dispatch.md +131 -0
- package/.agents/skills/team-coordinate/roles/coordinator/commands/monitor.md +358 -0
- package/.agents/skills/team-coordinate/roles/coordinator/role.md +365 -0
- package/.agents/skills/team-coordinate/specs/knowledge-transfer.md +111 -0
- package/.agents/skills/team-coordinate/specs/pipelines.md +97 -0
- package/.agents/skills/team-coordinate/specs/quality-gates.md +112 -0
- package/.agents/skills/team-coordinate/specs/role-spec-template.md +198 -0
- package/.agents/skills/team-executor/SKILL.md +191 -0
- package/.agents/skills/team-executor/roles/executor/commands/monitor.md +239 -0
- package/.agents/skills/team-executor/roles/executor/role.md +171 -0
- package/.agents/skills/team-executor/specs/session-schema.md +264 -0
- package/.agents/skills/team-lifecycle-v4/SKILL.md +211 -0
- package/.agents/skills/team-lifecycle-v4/roles/analyst/role.md +96 -0
- package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/analyze.md +56 -0
- package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +56 -0
- package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +206 -0
- package/.agents/skills/team-lifecycle-v4/roles/coordinator/role.md +130 -0
- package/.agents/skills/team-lifecycle-v4/roles/executor/commands/fix.md +35 -0
- package/.agents/skills/team-lifecycle-v4/roles/executor/commands/implement.md +62 -0
- package/.agents/skills/team-lifecycle-v4/roles/executor/role.md +69 -0
- package/.agents/skills/team-lifecycle-v4/roles/planner/role.md +87 -0
- package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-code.md +34 -0
- package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +44 -0
- package/.agents/skills/team-lifecycle-v4/roles/reviewer/role.md +71 -0
- package/.agents/skills/team-lifecycle-v4/roles/supervisor/role.md +194 -0
- package/.agents/skills/team-lifecycle-v4/roles/tester/role.md +89 -0
- package/.agents/skills/team-lifecycle-v4/roles/writer/role.md +97 -0
- package/.agents/skills/team-lifecycle-v4/specs/knowledge-transfer.md +114 -0
- package/.agents/skills/team-lifecycle-v4/specs/pipelines.md +140 -0
- package/.agents/skills/team-lifecycle-v4/specs/quality-gates.md +130 -0
- package/.agents/skills/team-lifecycle-v4/templates/architecture.md +254 -0
- package/.agents/skills/team-lifecycle-v4/templates/epics.md +196 -0
- package/.agents/skills/team-lifecycle-v4/templates/product-brief.md +133 -0
- package/.agents/skills/team-lifecycle-v4/templates/requirements.md +224 -0
- package/.agents/skills/team-quality-assurance/SKILL.md +149 -0
- package/.agents/skills/team-quality-assurance/roles/analyst/role.md +90 -0
- package/.agents/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -0
- package/.agents/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +111 -0
- package/.agents/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +250 -0
- package/.agents/skills/team-quality-assurance/roles/coordinator/role.md +143 -0
- package/.agents/skills/team-quality-assurance/roles/executor/role.md +68 -0
- package/.agents/skills/team-quality-assurance/roles/generator/role.md +70 -0
- package/.agents/skills/team-quality-assurance/roles/scout/role.md +77 -0
- package/.agents/skills/team-quality-assurance/roles/strategist/role.md +73 -0
- package/.agents/skills/team-quality-assurance/specs/pipelines.md +115 -0
- package/.agents/skills/team-quality-assurance/specs/team-config.json +131 -0
- package/.agents/skills/team-review/SKILL.md +149 -0
- package/.agents/skills/team-review/roles/coordinator/commands/analyze.md +71 -0
- package/.agents/skills/team-review/roles/coordinator/commands/dispatch.md +91 -0
- package/.agents/skills/team-review/roles/coordinator/commands/monitor.md +224 -0
- package/.agents/skills/team-review/roles/coordinator/role.md +132 -0
- package/.agents/skills/team-review/roles/fixer/role.md +78 -0
- package/.agents/skills/team-review/roles/reviewer/role.md +70 -0
- package/.agents/skills/team-review/roles/scanner/role.md +81 -0
- package/.agents/skills/team-review/specs/dimensions.md +82 -0
- package/.agents/skills/team-review/specs/finding-schema.json +82 -0
- package/.agents/skills/team-review/specs/pipelines.md +102 -0
- package/.agents/skills/team-review/specs/team-config.json +27 -0
- package/.agents/skills/team-tech-debt/SKILL.md +130 -0
- package/.agents/skills/team-tech-debt/roles/assessor/role.md +79 -0
- package/.agents/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -0
- package/.agents/skills/team-tech-debt/roles/coordinator/commands/dispatch.md +156 -0
- package/.agents/skills/team-tech-debt/roles/coordinator/commands/monitor.md +209 -0
- package/.agents/skills/team-tech-debt/roles/coordinator/role.md +123 -0
- package/.agents/skills/team-tech-debt/roles/executor/role.md +78 -0
- package/.agents/skills/team-tech-debt/roles/planner/role.md +71 -0
- package/.agents/skills/team-tech-debt/roles/scanner/role.md +92 -0
- package/.agents/skills/team-tech-debt/roles/validator/role.md +80 -0
- package/.agents/skills/team-tech-debt/specs/pipelines.md +47 -0
- package/.agents/skills/team-tech-debt/specs/team-config.json +129 -0
- package/.agents/skills/team-testing/SKILL.md +145 -0
- package/.agents/skills/team-testing/roles/analyst/role.md +105 -0
- package/.agents/skills/team-testing/roles/coordinator/commands/analyze.md +70 -0
- package/.agents/skills/team-testing/roles/coordinator/commands/dispatch.md +108 -0
- package/.agents/skills/team-testing/roles/coordinator/commands/monitor.md +257 -0
- package/.agents/skills/team-testing/roles/coordinator/role.md +134 -0
- package/.agents/skills/team-testing/roles/executor/role.md +101 -0
- package/.agents/skills/team-testing/roles/generator/role.md +100 -0
- package/.agents/skills/team-testing/roles/strategist/role.md +85 -0
- package/.agents/skills/team-testing/specs/pipelines.md +101 -0
- package/.agents/skills/team-testing/specs/team-config.json +93 -0
- package/.agents/skills/wiki-connect/SKILL.md +64 -0
- package/.agents/skills/wiki-digest/SKILL.md +70 -0
- package/.agents/skills/workflow-skill-designer/SKILL.md +498 -0
- package/.agents/skills/workflow-skill-designer/phases/01-requirements-analysis.md +356 -0
- package/.agents/skills/workflow-skill-designer/phases/02-orchestrator-design.md +444 -0
- package/.agents/skills/workflow-skill-designer/phases/03-phase-design.md +458 -0
- package/.agents/skills/workflow-skill-designer/phases/04-validation.md +471 -0
- package/.agy/skills/maestro/SKILL.md +13 -11
- package/.agy/skills/maestro-ralph/SKILL.md +222 -87
- package/.claude/commands/maestro-ralph.md +222 -87
- package/.claude/commands/maestro.md +13 -11
- package/.codex/skills/maestro/SKILL.md +23 -17
- package/.codex/skills/maestro-ralph/SKILL.md +177 -67
- package/dist/src/commands/install-backend.d.ts +12 -0
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +144 -0
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/core/component-defs.d.ts +6 -0
- package/dist/src/core/component-defs.d.ts.map +1 -1
- package/dist/src/core/component-defs.js +97 -0
- package/dist/src/core/component-defs.js.map +1 -1
- package/dist/src/tui/install-ui/ExtraMcpConfig.d.ts +11 -0
- package/dist/src/tui/install-ui/ExtraMcpConfig.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ExtraMcpConfig.js +61 -0
- package/dist/src/tui/install-ui/ExtraMcpConfig.js.map +1 -0
- package/dist/src/tui/install-ui/InstallConfirm.d.ts +3 -0
- package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.js +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.d.ts +2 -0
- package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.js +14 -2
- package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.d.ts +1 -1
- package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.js +16 -3
- package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.d.ts +2 -0
- package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.js +8 -0
- package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.js +3 -1
- package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
- package/dist/src/utils/update-notices.js +19 -0
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Evaluation Criteria
|
|
2
|
+
|
|
3
|
+
Skill 质量评估标准,由 Phase 03 (Evaluate) 引用。Gemini 按此标准对 skill 产出物进行多维度评分。
|
|
4
|
+
|
|
5
|
+
## Dimensions
|
|
6
|
+
|
|
7
|
+
| Dimension | Weight | ID | Description |
|
|
8
|
+
|-----------|--------|----|-------------|
|
|
9
|
+
| Clarity | 0.20 | clarity | 指令清晰无歧义,结构良好,易于遵循。Phase 文件有明确的 Step 划分、输入输出说明 |
|
|
10
|
+
| Completeness | 0.25 | completeness | 覆盖所有必要阶段、边界情况、错误处理。没有遗漏关键执行路径 |
|
|
11
|
+
| Correctness | 0.25 | correctness | 逻辑正确,数据流一致,Phase 间无矛盾。State schema 与实际使用匹配 |
|
|
12
|
+
| Effectiveness | 0.20 | effectiveness | 在给定测试场景下能产出高质量输出。产物满足用户需求和成功标准 |
|
|
13
|
+
| Efficiency | 0.10 | efficiency | 无冗余内容,上下文使用合理,不浪费 token。Phase 职责清晰无重叠 |
|
|
14
|
+
|
|
15
|
+
## Scoring Guide
|
|
16
|
+
|
|
17
|
+
| Range | Level | Description |
|
|
18
|
+
|-------|-------|-------------|
|
|
19
|
+
| 90-100 | Excellent | 生产级别,几乎无改进空间 |
|
|
20
|
+
| 80-89 | Good | 可投入使用,仅需微调 |
|
|
21
|
+
| 70-79 | Adequate | 功能可用,有明显可改进区域 |
|
|
22
|
+
| 60-69 | Needs Work | 存在影响产出质量的显著问题 |
|
|
23
|
+
| 0-59 | Poor | 结构或逻辑存在根本性问题 |
|
|
24
|
+
|
|
25
|
+
## Composite Score Calculation
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
composite = sum(dimension.score * dimension.weight)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Output JSON Schema
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"composite_score": 75,
|
|
36
|
+
"dimensions": [
|
|
37
|
+
{ "name": "Clarity", "id": "clarity", "score": 80, "weight": 0.20, "feedback": "..." },
|
|
38
|
+
{ "name": "Completeness", "id": "completeness", "score": 70, "weight": 0.25, "feedback": "..." },
|
|
39
|
+
{ "name": "Correctness", "id": "correctness", "score": 78, "weight": 0.25, "feedback": "..." },
|
|
40
|
+
{ "name": "Effectiveness", "id": "effectiveness", "score": 72, "weight": 0.20, "feedback": "..." },
|
|
41
|
+
{ "name": "Efficiency", "id": "efficiency", "score": 85, "weight": 0.10, "feedback": "..." }
|
|
42
|
+
],
|
|
43
|
+
"strengths": ["...", "...", "..."],
|
|
44
|
+
"weaknesses": ["...", "...", "..."],
|
|
45
|
+
"suggestions": [
|
|
46
|
+
{
|
|
47
|
+
"priority": "high",
|
|
48
|
+
"target_file": "phases/02-execute.md",
|
|
49
|
+
"description": "Add explicit error handling for CLI timeout",
|
|
50
|
+
"rationale": "Current phase has no recovery path when CLI execution exceeds timeout",
|
|
51
|
+
"code_snippet": "optional suggested replacement code"
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Evaluation Focus by Iteration
|
|
58
|
+
|
|
59
|
+
| Iteration | Primary Focus |
|
|
60
|
+
|-----------|--------------|
|
|
61
|
+
| 1 | 全面评估,建立 baseline |
|
|
62
|
+
| 2-3 | 重点关注上一轮 weaknesses 是否改善,避免重复已解决的问题 |
|
|
63
|
+
| 4+ | 精细化改进,关注 Effectiveness 和 Efficiency |
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Evaluation Prompt Template
|
|
2
|
+
|
|
3
|
+
Phase 03 使用此模板构造 ccw cli 提示词,让 Gemini 按多维度评估 skill 质量。
|
|
4
|
+
|
|
5
|
+
## Template
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
PURPOSE: Evaluate the quality of a workflow skill by examining both its definition files and the artifacts it produced when executed against a test scenario. Provide a structured multi-dimensional score with actionable improvement suggestions.
|
|
9
|
+
|
|
10
|
+
SKILL DEFINITION:
|
|
11
|
+
${skillContent}
|
|
12
|
+
|
|
13
|
+
TEST SCENARIO:
|
|
14
|
+
${testScenario.description}
|
|
15
|
+
Requirements: ${testScenario.requirements}
|
|
16
|
+
Success Criteria: ${testScenario.success_criteria}
|
|
17
|
+
|
|
18
|
+
ARTIFACTS PRODUCED:
|
|
19
|
+
${artifactsSummary}
|
|
20
|
+
|
|
21
|
+
EVALUATION CRITERIA:
|
|
22
|
+
${evaluationCriteria}
|
|
23
|
+
|
|
24
|
+
${previousEvalContext}
|
|
25
|
+
|
|
26
|
+
TASK:
|
|
27
|
+
1. Read all skill definition files and produced artifacts carefully
|
|
28
|
+
2. Score each dimension on 0-100 based on the evaluation criteria:
|
|
29
|
+
- Clarity (weight 0.20): Instructions unambiguous, well-structured, easy to follow
|
|
30
|
+
- Completeness (weight 0.25): All phases, edge cases, error handling covered
|
|
31
|
+
- Correctness (weight 0.25): Logic sound, data flow consistent, no contradictions
|
|
32
|
+
- Effectiveness (weight 0.20): Produces high-quality output for the test scenario
|
|
33
|
+
- Efficiency (weight 0.10): Minimal redundancy, appropriate context usage
|
|
34
|
+
3. Calculate weighted composite score
|
|
35
|
+
4. List top 3 strengths
|
|
36
|
+
5. List top 3-5 weaknesses with specific file:section references
|
|
37
|
+
6. Provide 3-5 prioritized improvement suggestions with concrete changes
|
|
38
|
+
|
|
39
|
+
MODE: analysis
|
|
40
|
+
|
|
41
|
+
EXPECTED OUTPUT FORMAT (strict JSON, no markdown wrapping):
|
|
42
|
+
{
|
|
43
|
+
"composite_score": <number 0-100>,
|
|
44
|
+
"dimensions": [
|
|
45
|
+
{ "name": "Clarity", "id": "clarity", "score": <0-100>, "weight": 0.20, "feedback": "<specific feedback>" },
|
|
46
|
+
{ "name": "Completeness", "id": "completeness", "score": <0-100>, "weight": 0.25, "feedback": "<specific feedback>" },
|
|
47
|
+
{ "name": "Correctness", "id": "correctness", "score": <0-100>, "weight": 0.25, "feedback": "<specific feedback>" },
|
|
48
|
+
{ "name": "Effectiveness", "id": "effectiveness", "score": <0-100>, "weight": 0.20, "feedback": "<specific feedback>" },
|
|
49
|
+
{ "name": "Efficiency", "id": "efficiency", "score": <0-100>, "weight": 0.10, "feedback": "<specific feedback>" }
|
|
50
|
+
],
|
|
51
|
+
"strengths": ["<strength 1>", "<strength 2>", "<strength 3>"],
|
|
52
|
+
"weaknesses": ["<weakness 1 with file:section reference>", "..."],
|
|
53
|
+
"suggestions": [
|
|
54
|
+
{
|
|
55
|
+
"priority": "high|medium|low",
|
|
56
|
+
"target_file": "<relative path to skill file>",
|
|
57
|
+
"description": "<what to change>",
|
|
58
|
+
"rationale": "<why this improves quality>",
|
|
59
|
+
"code_snippet": "<optional: suggested replacement content>"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"chain_scores": {
|
|
63
|
+
"<skill_name>": "<number 0-100, per-skill score — only present in chain mode>"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
CONSTRAINTS:
|
|
68
|
+
- Be rigorous and specific — reference exact file paths and sections
|
|
69
|
+
- Each suggestion MUST include a target_file that maps to a skill file
|
|
70
|
+
- Focus suggestions on highest-impact changes first
|
|
71
|
+
- Do NOT suggest changes already addressed in previous iterations
|
|
72
|
+
- Output ONLY the JSON object, no surrounding text or markdown
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Variable Substitution
|
|
76
|
+
|
|
77
|
+
| Variable | Source | Description |
|
|
78
|
+
|----------|--------|-------------|
|
|
79
|
+
| `${skillContent}` | Same as execute-prompt.md | 完整 skill 文件内容 |
|
|
80
|
+
| `${testScenario.*}` | iteration-state.json | 测试场景信息 |
|
|
81
|
+
| `${artifactsSummary}` | Phase 03 reads artifacts/ dir | 产出物文件列表 + 内容摘要 |
|
|
82
|
+
| `${evaluationCriteria}` | specs/evaluation-criteria.md | 评分标准全文 |
|
|
83
|
+
| `${previousEvalContext}` | 历史迭代记录 | 前几轮评估摘要(避免重复建议) |
|
|
84
|
+
| `${chainContext}` | Phase 03 constructs | chain 模式下的链上下文信息 |
|
|
85
|
+
|
|
86
|
+
## previousEvalContext Construction
|
|
87
|
+
|
|
88
|
+
```javascript
|
|
89
|
+
// Build context from prior iterations to avoid repeating suggestions
|
|
90
|
+
const previousEvalContext = state.iterations.length > 0
|
|
91
|
+
? `PREVIOUS ITERATIONS (context for avoiding duplicate suggestions):
|
|
92
|
+
${state.iterations.map(iter => `
|
|
93
|
+
Iteration ${iter.round}: Score ${iter.evaluation?.score || 'N/A'}
|
|
94
|
+
Applied changes: ${iter.improvement?.changes_applied?.map(c => c.summary).join('; ') || 'none'}
|
|
95
|
+
Remaining weaknesses: ${iter.evaluation?.weaknesses?.slice(0, 3).join('; ') || 'none'}
|
|
96
|
+
`).join('')}
|
|
97
|
+
IMPORTANT: Focus on NEW issues or issues NOT adequately addressed in previous improvements.`
|
|
98
|
+
: '';
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## chainContext Construction
|
|
102
|
+
|
|
103
|
+
```javascript
|
|
104
|
+
// Build chain context for evaluation (chain mode only)
|
|
105
|
+
const chainContext = state.execution_mode === 'chain'
|
|
106
|
+
? `CHAIN CONTEXT:
|
|
107
|
+
This skill chain contains ${state.chain_order.length} skills executed in order:
|
|
108
|
+
${state.chain_order.map((s, i) => `${i+1}. ${s}`).join('\n')}
|
|
109
|
+
Current evaluation covers the entire chain output.
|
|
110
|
+
Please provide per-skill quality scores in an additional "chain_scores" field.`
|
|
111
|
+
: '';
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## artifactsSummary Construction
|
|
115
|
+
|
|
116
|
+
```javascript
|
|
117
|
+
// Read manifest.json if available, otherwise list files
|
|
118
|
+
const manifestPath = `${iterDir}/artifacts/manifest.json`;
|
|
119
|
+
let artifactsSummary;
|
|
120
|
+
|
|
121
|
+
if (fileExists(manifestPath)) {
|
|
122
|
+
const manifest = JSON.parse(read_file(manifestPath));
|
|
123
|
+
artifactsSummary = manifest.artifacts.map(a =>
|
|
124
|
+
`- ${a.path}: ${a.description} (Phase ${a.phase})`
|
|
125
|
+
).join('\n');
|
|
126
|
+
} else {
|
|
127
|
+
// Fallback: list all files with first 200 lines each
|
|
128
|
+
const files = find_files(`${iterDir}/artifacts/**/*`);
|
|
129
|
+
artifactsSummary = files.map(f => {
|
|
130
|
+
const content = read_file(f, { limit: 200 });
|
|
131
|
+
return `--- ${f.replace(iterDir + '/artifacts/', '')} ---\n${content}`;
|
|
132
|
+
}).join('\n\n');
|
|
133
|
+
}
|
|
134
|
+
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Execute Prompt Template
|
|
2
|
+
|
|
3
|
+
Phase 02 使用此模板构造 ccw cli 提示词,让 Claude 模拟执行 skill 并产出所有预期产物。
|
|
4
|
+
|
|
5
|
+
## Template
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
PURPOSE: Simulate executing the following workflow skill against a test scenario. Produce all expected output artifacts as if the skill were invoked with the given input. This is for evaluating skill quality.
|
|
9
|
+
|
|
10
|
+
SKILL CONTENT:
|
|
11
|
+
${skillContent}
|
|
12
|
+
|
|
13
|
+
TEST SCENARIO:
|
|
14
|
+
Description: ${testScenario.description}
|
|
15
|
+
Input Arguments: ${testScenario.input_args}
|
|
16
|
+
Requirements: ${testScenario.requirements}
|
|
17
|
+
Success Criteria: ${testScenario.success_criteria}
|
|
18
|
+
|
|
19
|
+
TASK:
|
|
20
|
+
1. Study the complete skill structure (SKILL.md + all phase files)
|
|
21
|
+
2. Follow the skill's execution flow sequentially (Phase 1 → Phase N)
|
|
22
|
+
3. For each phase, produce the artifacts that phase would generate
|
|
23
|
+
4. Write all output artifacts to the current working directory
|
|
24
|
+
5. Create a manifest.json listing all produced artifacts with descriptions
|
|
25
|
+
|
|
26
|
+
MODE: write
|
|
27
|
+
|
|
28
|
+
CONTEXT: @**/*
|
|
29
|
+
|
|
30
|
+
EXPECTED:
|
|
31
|
+
- All artifacts the skill would produce for this test scenario
|
|
32
|
+
- Each artifact in its correct relative path
|
|
33
|
+
- A manifest.json at root: { "artifacts": [{ "path": "...", "description": "...", "phase": N }] }
|
|
34
|
+
|
|
35
|
+
CONSTRAINTS:
|
|
36
|
+
- Follow the skill execution flow exactly — do not skip or reorder phases
|
|
37
|
+
- Produce realistic, high-quality output (not placeholder content)
|
|
38
|
+
- If the skill requires user interaction (ask_user), use reasonable defaults
|
|
39
|
+
- If the skill invokes external tools/CLIs, document what would be called but produce expected output directly
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Variable Substitution
|
|
43
|
+
|
|
44
|
+
| Variable | Source | Description |
|
|
45
|
+
|----------|--------|-------------|
|
|
46
|
+
| `${skillContent}` | Phase 02 reads all skill files | 完整 SKILL.md + phase 文件内容,用 markdown headers 分隔 |
|
|
47
|
+
| `${testScenario.description}` | iteration-state.json | 用户描述的测试场景 |
|
|
48
|
+
| `${testScenario.input_args}` | iteration-state.json | 模拟传给 skill 的参数 |
|
|
49
|
+
| `${testScenario.requirements}` | iteration-state.json | 质量要求列表 |
|
|
50
|
+
| `${testScenario.success_criteria}` | iteration-state.json | 成功标准定义 |
|
|
51
|
+
|
|
52
|
+
## Chain Mode Extension
|
|
53
|
+
|
|
54
|
+
When running in chain mode, the template is invoked once per skill in `chain_order`. Each invocation includes:
|
|
55
|
+
|
|
56
|
+
### Additional Variable
|
|
57
|
+
|
|
58
|
+
| Variable | Source | Description |
|
|
59
|
+
|----------|--------|-------------|
|
|
60
|
+
| `${previousChainOutput}` | Phase 02 chain loop | 前序 skill 的 artifacts 摘要 (chain 模式下非首个 skill) |
|
|
61
|
+
|
|
62
|
+
### Chain Prompt Modification
|
|
63
|
+
|
|
64
|
+
When `execution_mode === 'chain'`, the prompt includes:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
PREVIOUS CHAIN OUTPUT (from upstream skill "${previousSkillName}"):
|
|
68
|
+
${previousChainOutput}
|
|
69
|
+
|
|
70
|
+
IMPORTANT: Use the above output as input context for this skill's execution.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
This section is only added for skills at position 2+ in the chain. The first skill in the chain receives no upstream context.
|
|
74
|
+
|
|
75
|
+
## skillContent Construction
|
|
76
|
+
|
|
77
|
+
```javascript
|
|
78
|
+
// Read only executable skill files and format with consistent headers
|
|
79
|
+
const skillMd = read_file(`${skill.path}/SKILL.md`);
|
|
80
|
+
const phaseFiles = find_files(`${skill.path}/phases/*.md`).map(f => ({
|
|
81
|
+
relativePath: f.replace(skill.path + '/', ''),
|
|
82
|
+
content: read_file(f)
|
|
83
|
+
}));
|
|
84
|
+
const specFiles = find_files(`${skill.path}/specs/*.md`).map(f => ({
|
|
85
|
+
relativePath: f.replace(skill.path + '/', ''),
|
|
86
|
+
content: read_file(f)
|
|
87
|
+
}));
|
|
88
|
+
|
|
89
|
+
const skillContent = `
|
|
90
|
+
### File: SKILL.md
|
|
91
|
+
${skillMd}
|
|
92
|
+
|
|
93
|
+
${phaseFiles.map(f => `### File: ${f.relativePath}\n${f.content}`).join('\n\n')}
|
|
94
|
+
|
|
95
|
+
${specFiles.length > 0 ? specFiles.map(f => `### File: ${f.relativePath}\n${f.content}`).join('\n\n') : ''}
|
|
96
|
+
`.trim();
|
|
97
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-add
|
|
3
|
+
description: Add spec entry by category with role tagging
|
|
4
|
+
argument-hint: "[--scope project|global|team|personal] <category> <content>"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- read_file
|
|
7
|
+
- write_file
|
|
8
|
+
- shell
|
|
9
|
+
- find_files
|
|
10
|
+
- search
|
|
11
|
+
---
|
|
12
|
+
<!-- Open-standard mirror generated by scripts/build-agents-standard.mjs — do not edit; re-run after editing .claude/ source. -->
|
|
13
|
+
|
|
14
|
+
<purpose>
|
|
15
|
+
Add a knowledge entry to the specs system using `<spec-entry>` closed-tag format.
|
|
16
|
+
Each category maps 1:1 to a single target file — no dual-write.
|
|
17
|
+
Supports 4 scopes: project (default), global, team, personal.
|
|
18
|
+
Entries use `category` attribute to declare which category they belong to.
|
|
19
|
+
</purpose>
|
|
20
|
+
|
|
21
|
+
<required_reading>
|
|
22
|
+
@~/.maestro/workflows/specs-add.md
|
|
23
|
+
</required_reading>
|
|
24
|
+
|
|
25
|
+
<context>
|
|
26
|
+
$ARGUMENTS -- expects `[--scope <scope>] [--uid <uid>] <category> <content>`
|
|
27
|
+
|
|
28
|
+
**Options:**
|
|
29
|
+
- `--ref <path>` — Create as index entry referencing a knowhow document. If the path exists, only creates the spec index entry. If path doesn't exist, also creates the knowhow file.
|
|
30
|
+
- `--knowhow-type <type>` — Knowhow document type when creating with --ref (asset, blueprint, document, template, recipe, reference, decision)
|
|
31
|
+
|
|
32
|
+
Scope-to-directory mapping, category-to-file mapping, and entry format defined in workflow specs-add.md.
|
|
33
|
+
|
|
34
|
+
**Examples:**
|
|
35
|
+
```bash
|
|
36
|
+
# English content → English keywords
|
|
37
|
+
/spec-add coding "Named exports" "Always use named exports" --keywords "exports,naming"
|
|
38
|
+
|
|
39
|
+
# Chinese content → Chinese keywords (匹配中文 prompt)
|
|
40
|
+
/spec-add coding "命名导出规范" "始终使用命名导出" --keywords "导出,命名,模块"
|
|
41
|
+
|
|
42
|
+
# Mixed → bilingual keywords
|
|
43
|
+
/spec-add coding "OAuth PKCE Flow" "完整 PKCE 集成流程" --ref knowhow/RCP-oauth-pkce.md --keywords "oauth,pkce,认证,授权"
|
|
44
|
+
|
|
45
|
+
/spec-add arch "OAuth PKCE 集成" "完整流程设计" --ref knowhow/AST-oauth-flow.md
|
|
46
|
+
```
|
|
47
|
+
</context>
|
|
48
|
+
|
|
49
|
+
<execution>
|
|
50
|
+
Follow '~/.maestro/workflows/specs-add.md' completely.
|
|
51
|
+
</execution>
|
|
52
|
+
|
|
53
|
+
<error_codes>
|
|
54
|
+
| Code | Severity | Description | Stage |
|
|
55
|
+
|------|----------|-------------|-------|
|
|
56
|
+
| E001 | fatal | Category and content are both required | parse_input |
|
|
57
|
+
| E002 | fatal | Specs directory not initialized -- run `maestro spec init --scope <scope>` | validate_entry |
|
|
58
|
+
| E003 | fatal | Invalid category -- must be one of: coding, arch, quality, debug, test, review, learning, tools, ui | parse_input |
|
|
59
|
+
| E004 | fatal | Invalid scope -- must be one of: project, global, team, personal | parse_input |
|
|
60
|
+
| E005 | fatal | Personal scope requires uid -- use `--uid` or run `maestro collab join` first | parse_input |
|
|
61
|
+
</error_codes>
|
|
62
|
+
|
|
63
|
+
<success_criteria>
|
|
64
|
+
- [ ] Scope and category parsed and validated
|
|
65
|
+
- [ ] Keywords auto-extracted from content (3-5 relevant terms)
|
|
66
|
+
- [ ] Entry written in `<spec-entry>` closed-tag format
|
|
67
|
+
- [ ] Entry appended to correct target file for scope
|
|
68
|
+
- [ ] Confirmation report displayed with scope, path, keywords
|
|
69
|
+
- [ ] Next step: `maestro spec load --scope <scope> --keyword {keyword}` to verify
|
|
70
|
+
</success_criteria>
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-load
|
|
3
|
+
description: Load specs and lessons for current context
|
|
4
|
+
argument-hint: "[--category <category>] [--keyword <word>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- read_file
|
|
7
|
+
- shell
|
|
8
|
+
- find_files
|
|
9
|
+
- search
|
|
10
|
+
---
|
|
11
|
+
<!-- Open-standard mirror generated by scripts/build-agents-standard.mjs — do not edit; re-run after editing .claude/ source. -->
|
|
12
|
+
|
|
13
|
+
<purpose>
|
|
14
|
+
Load relevant specs filtered by category (file-level) and/or keyword (entry-level).
|
|
15
|
+
Category-based loading: loads the category's primary doc in full + matching entries from other files.
|
|
16
|
+
</purpose>
|
|
17
|
+
|
|
18
|
+
<required_reading>
|
|
19
|
+
@~/.maestro/workflows/specs-load.md
|
|
20
|
+
</required_reading>
|
|
21
|
+
|
|
22
|
+
<context>
|
|
23
|
+
$ARGUMENTS -- optional flags and keyword
|
|
24
|
+
|
|
25
|
+
**Flags:**
|
|
26
|
+
- `--category <category>` — Load by category: primary category doc (full) + cross-file entries with matching category attr. Categories: coding, arch, test, review, debug, learning, ui.
|
|
27
|
+
- `--keyword <word>` — Filter by keyword within entries
|
|
28
|
+
|
|
29
|
+
**File → Primary Category mapping:**
|
|
30
|
+
| File | Category |
|
|
31
|
+
|------|----------|
|
|
32
|
+
| coding-conventions.md | coding |
|
|
33
|
+
| architecture-constraints.md | arch |
|
|
34
|
+
| test-conventions.md | test |
|
|
35
|
+
| review-standards.md | review |
|
|
36
|
+
| debug-notes.md | debug |
|
|
37
|
+
| ui-conventions.md | ui |
|
|
38
|
+
| quality-rules.md | review |
|
|
39
|
+
| learnings.md | learning |
|
|
40
|
+
|
|
41
|
+
**Examples:**
|
|
42
|
+
```
|
|
43
|
+
/spec-load --category coding # coding全文 + 跨文件coding条目
|
|
44
|
+
/spec-load --category review # review-standards + quality-rules + 跨文件review条目
|
|
45
|
+
/spec-load --category coding --keyword auth
|
|
46
|
+
/spec-load --keyword auth
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Ref entries:**
|
|
50
|
+
When loading entries with `ref` attribute, only the summary is shown with a load command:
|
|
51
|
+
→ Detail: maestro wiki load <knowhow-id>
|
|
52
|
+
Use the load command to read the full referenced document.
|
|
53
|
+
</context>
|
|
54
|
+
|
|
55
|
+
<execution>
|
|
56
|
+
Follow '~/.maestro/workflows/specs-load.md' completely.
|
|
57
|
+
</execution>
|
|
58
|
+
|
|
59
|
+
<error_codes>
|
|
60
|
+
| Code | Severity | Description | Stage |
|
|
61
|
+
|------|----------|-------------|-------|
|
|
62
|
+
| E001 | fatal | `.workflow/specs/` not initialized -- run `/spec-setup` first | detect_context |
|
|
63
|
+
| W001 | warning | No matching specs found for keyword -- showing all specs in category instead | load_specs |
|
|
64
|
+
</error_codes>
|
|
65
|
+
|
|
66
|
+
<success_criteria>
|
|
67
|
+
- [ ] Category and/or keyword parsed from arguments
|
|
68
|
+
- [ ] Spec files loaded per category mapping
|
|
69
|
+
- [ ] Keyword filtering applied at entry level (via `<spec-entry>` keywords attribute)
|
|
70
|
+
- [ ] Legacy entries filtered by text grep fallback
|
|
71
|
+
- [ ] Results displayed with file:category references
|
|
72
|
+
</success_criteria>
|
|
73
|
+
</output>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-remove
|
|
3
|
+
description: Remove spec entry by ID
|
|
4
|
+
argument-hint: "<entry-id>"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- read_file
|
|
7
|
+
- write_file
|
|
8
|
+
- edit_file
|
|
9
|
+
- shell
|
|
10
|
+
- find_files
|
|
11
|
+
- search
|
|
12
|
+
- ask_user
|
|
13
|
+
---
|
|
14
|
+
<!-- Open-standard mirror generated by scripts/build-agents-standard.mjs — do not edit; re-run after editing .claude/ source. -->
|
|
15
|
+
|
|
16
|
+
<purpose>
|
|
17
|
+
Remove a `<spec-entry>` from a specs file. Symmetric with `/spec-add`.
|
|
18
|
+
Uses `maestro wiki remove-entry` for atomic removal with index auto-update.
|
|
19
|
+
</purpose>
|
|
20
|
+
|
|
21
|
+
<required_reading>
|
|
22
|
+
@~/.maestro/workflows/specs-remove.md
|
|
23
|
+
</required_reading>
|
|
24
|
+
|
|
25
|
+
<context>
|
|
26
|
+
$ARGUMENTS -- expects `<entry-id>` (e.g., `spec-learnings-003`, `spec-coding-conventions-001`)
|
|
27
|
+
|
|
28
|
+
**Entry ID format**: `spec-{file-stem}-{NNN}` — the sub-node ID assigned by WikiIndexer when indexing `<spec-entry>` blocks.
|
|
29
|
+
|
|
30
|
+
**Discovery**: Use `maestro wiki list --type spec --json` or `/spec-load --keyword <term>` to find entry IDs.
|
|
31
|
+
</context>
|
|
32
|
+
|
|
33
|
+
<execution>
|
|
34
|
+
Follow '~/.maestro/workflows/specs-remove.md' completely.
|
|
35
|
+
</execution>
|
|
36
|
+
|
|
37
|
+
<error_codes>
|
|
38
|
+
| Code | Severity | Description | Stage |
|
|
39
|
+
|------|----------|-------------|-------|
|
|
40
|
+
| E001 | fatal | Entry ID is required -- usage: `/spec-remove <entry-id>` | parse_input |
|
|
41
|
+
| E002 | fatal | `.workflow/specs/` not initialized -- run `/spec-setup` first | validate |
|
|
42
|
+
| E003 | fatal | Entry ID not found in wiki index | lookup |
|
|
43
|
+
| E004 | fatal | Entry is not a spec sub-node (wrong type) | validate |
|
|
44
|
+
</error_codes>
|
|
45
|
+
|
|
46
|
+
<success_criteria>
|
|
47
|
+
- [ ] Entry ID parsed and validated
|
|
48
|
+
- [ ] Entry found in wiki index (type=spec, is sub-node)
|
|
49
|
+
- [ ] User confirmed removal (unless -y flag)
|
|
50
|
+
- [ ] Entry removed from container file via `maestro wiki remove-entry`
|
|
51
|
+
- [ ] Wiki index auto-updated
|
|
52
|
+
- [ ] Confirmation displayed with removed entry details
|
|
53
|
+
</success_criteria>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-setup
|
|
3
|
+
description: Initialize specs from project structure
|
|
4
|
+
argument-hint: ""
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- read_file
|
|
7
|
+
- write_file
|
|
8
|
+
- shell
|
|
9
|
+
- find_files
|
|
10
|
+
- search
|
|
11
|
+
---
|
|
12
|
+
<!-- Open-standard mirror generated by scripts/build-agents-standard.mjs — do not edit; re-run after editing .claude/ source. -->
|
|
13
|
+
|
|
14
|
+
<purpose>
|
|
15
|
+
Initialize the project-level specs directory by scanning the codebase for conventions, patterns, and tech stack.
|
|
16
|
+
Core files (coding, arch, knowhow) are always created. Optional files (quality, debug, test, review) are created only when relevant signals are detected.
|
|
17
|
+
All output lands in `.workflow/specs/`.
|
|
18
|
+
</purpose>
|
|
19
|
+
|
|
20
|
+
<required_reading>
|
|
21
|
+
@~/.maestro/workflows/specs-setup.md
|
|
22
|
+
</required_reading>
|
|
23
|
+
|
|
24
|
+
<context>
|
|
25
|
+
$ARGUMENTS (no arguments expected)
|
|
26
|
+
|
|
27
|
+
**Preconditions:**
|
|
28
|
+
- `.workflow/` directory must exist (created by `/maestro-init`) # (see code: E001)
|
|
29
|
+
- Project must contain source files to scan # (see code: E002)
|
|
30
|
+
</context>
|
|
31
|
+
|
|
32
|
+
<execution>
|
|
33
|
+
Follow '~/.maestro/workflows/specs-setup.md' completely.
|
|
34
|
+
</execution>
|
|
35
|
+
|
|
36
|
+
<error_codes>
|
|
37
|
+
| Code | Severity | Description | Stage |
|
|
38
|
+
|------|----------|-------------|-------|
|
|
39
|
+
| E001 | fatal | `.workflow/` directory not initialized -- run `/maestro-init` first | parse_input |
|
|
40
|
+
| E002 | fatal | No source files found in project -- nothing to scan | scan_codebase |
|
|
41
|
+
| W001 | warning | Convention detection uncertain for one or more categories -- marked `[UNCERTAIN]` | generate_specs |
|
|
42
|
+
</error_codes>
|
|
43
|
+
|
|
44
|
+
<success_criteria>
|
|
45
|
+
- [ ] `.workflow/specs/` directory created
|
|
46
|
+
- [ ] Core files always created: `coding-conventions.md`, `architecture-constraints.md`, `knowhow.md`
|
|
47
|
+
- [ ] Optional files created when detected: `quality-rules.md` (linter/CI), `test-conventions.md` (test framework), `debug-notes.md` (on demand), `review-standards.md` (on demand)
|
|
48
|
+
- [ ] Report displayed with summary and next steps
|
|
49
|
+
</success_criteria>
|
|
50
|
+
</output>
|