5-phase-workflow 1.1.1 → 1.2.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.
- package/README.md +2 -16
- package/bin/install.js +20 -12
- package/docs/findings.md +361 -0
- package/docs/progress.md +102 -0
- package/docs/workflow-guide.md +39 -12
- package/package.json +1 -1
- package/src/commands/5/configure.md +47 -3
- package/src/commands/5/discuss-feature.md +42 -11
- package/src/commands/5/implement-feature.md +168 -457
- package/src/commands/5/plan-feature.md +65 -96
- package/src/commands/5/plan-implementation.md +136 -361
- package/src/commands/5/quick-implement.md +79 -40
- package/src/commands/5/review-code.md +234 -187
- package/src/commands/5/verify-implementation.md +296 -232
- package/src/skills/configure-project/SKILL.md +1 -1
- package/src/templates/workflow/FEATURE-SPEC.md +83 -0
- package/src/templates/workflow/FIX-PLAN.md +55 -0
- package/src/templates/workflow/PLAN.md +30 -0
- package/src/templates/workflow/QUICK-PLAN.md +17 -0
- package/src/templates/workflow/REVIEW-FINDINGS.md +58 -0
- package/src/templates/workflow/REVIEW-SUMMARY.md +35 -0
- package/src/templates/workflow/STATE.json +9 -0
- package/src/templates/workflow/VERIFICATION-REPORT.md +95 -0
- package/src/agents/integration-agent.md +0 -220
- package/src/agents/review-processor.md +0 -161
- package/src/agents/step-executor.md +0 -109
- package/src/agents/step-fixer.md +0 -133
- package/src/agents/step-verifier.md +0 -126
- package/src/agents/verification-agent.md +0 -445
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: review-processor
|
|
3
|
-
description: Runs CodeRabbit CLI, parses output, and categorizes findings into fixable issues, questions, and manual review items. Runs in forked context.
|
|
4
|
-
tools: Bash, Read, Glob, Grep
|
|
5
|
-
model: sonnet
|
|
6
|
-
color: magenta
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Review Processor Agent
|
|
10
|
-
|
|
11
|
-
## Purpose
|
|
12
|
-
|
|
13
|
-
Executes CodeRabbit CLI review, parses the output, and categorizes findings into structured categories for the parent command to act on. Spawned by `review-code` command via the Task tool.
|
|
14
|
-
|
|
15
|
-
## Input Contract
|
|
16
|
-
|
|
17
|
-
The spawning command provides:
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
Review Scope: staged | unstaged | all | branch | files
|
|
21
|
-
Base Branch: {branch-name} (if scope is "branch")
|
|
22
|
-
Files: [{file-paths}] (if scope is "files")
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Process
|
|
26
|
-
|
|
27
|
-
### 1. Construct CodeRabbit Command
|
|
28
|
-
|
|
29
|
-
Based on the review scope:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
# Staged changes (default)
|
|
33
|
-
coderabbit review --plain
|
|
34
|
-
|
|
35
|
-
# Specific files
|
|
36
|
-
coderabbit review --plain {file1} {file2}
|
|
37
|
-
|
|
38
|
-
# Branch comparison
|
|
39
|
-
coderabbit review --plain --base {base-branch}
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### 2. Execute CodeRabbit
|
|
43
|
-
|
|
44
|
-
Run the constructed command and capture full output.
|
|
45
|
-
|
|
46
|
-
If the command fails:
|
|
47
|
-
- Capture the error message
|
|
48
|
-
- Return immediately with failure status
|
|
49
|
-
|
|
50
|
-
### 3. Parse Output
|
|
51
|
-
|
|
52
|
-
Extract from the CodeRabbit plain text output:
|
|
53
|
-
- File paths
|
|
54
|
-
- Line numbers
|
|
55
|
-
- Severity levels (error, warning, suggestion)
|
|
56
|
-
- Issue descriptions
|
|
57
|
-
- Suggested fixes (if provided)
|
|
58
|
-
- Questions from CodeRabbit
|
|
59
|
-
|
|
60
|
-
### 4. Categorize Findings
|
|
61
|
-
|
|
62
|
-
Group each finding into one of three categories:
|
|
63
|
-
|
|
64
|
-
**Fixable** - Clear, mechanical fixes that can be applied with code changes:
|
|
65
|
-
- Unused imports
|
|
66
|
-
- Missing null checks (when pattern is clear)
|
|
67
|
-
- Formatting issues
|
|
68
|
-
- Missing annotations
|
|
69
|
-
- Simple typos
|
|
70
|
-
- Missing `@Override`
|
|
71
|
-
|
|
72
|
-
**Questions** - CodeRabbit needs clarification or poses a design question:
|
|
73
|
-
- Validation logic questions
|
|
74
|
-
- Performance trade-off questions
|
|
75
|
-
- Alternative approach suggestions
|
|
76
|
-
- Business rule clarifications
|
|
77
|
-
|
|
78
|
-
**Manual** - Requires developer judgment or complex changes:
|
|
79
|
-
- Refactoring suggestions
|
|
80
|
-
- Architectural concerns
|
|
81
|
-
- Performance optimizations
|
|
82
|
-
- Security considerations
|
|
83
|
-
- Complex logic changes
|
|
84
|
-
|
|
85
|
-
### 5. Structure Results
|
|
86
|
-
|
|
87
|
-
For each finding, create a structured entry with:
|
|
88
|
-
- Category (fixable/question/manual)
|
|
89
|
-
- File path
|
|
90
|
-
- Line number
|
|
91
|
-
- Description
|
|
92
|
-
- Suggested fix (for fixable items)
|
|
93
|
-
- Original CodeRabbit message
|
|
94
|
-
|
|
95
|
-
## Output Contract
|
|
96
|
-
|
|
97
|
-
Return:
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
Review Processing Results:
|
|
101
|
-
Status: success | failed
|
|
102
|
-
Error: {error message if failed}
|
|
103
|
-
|
|
104
|
-
Summary:
|
|
105
|
-
total: {N}
|
|
106
|
-
fixable: {N}
|
|
107
|
-
questions: {N}
|
|
108
|
-
manual: {N}
|
|
109
|
-
|
|
110
|
-
Fixable Issues:
|
|
111
|
-
- file: {path/to/file.java}
|
|
112
|
-
line: {N}
|
|
113
|
-
description: {what needs to change}
|
|
114
|
-
fix: |
|
|
115
|
-
{suggested code change or instruction}
|
|
116
|
-
original: |
|
|
117
|
-
{original CodeRabbit message}
|
|
118
|
-
|
|
119
|
-
- file: {path/to/file2.java}
|
|
120
|
-
line: {N}
|
|
121
|
-
description: {what needs to change}
|
|
122
|
-
fix: |
|
|
123
|
-
{suggested code change}
|
|
124
|
-
original: |
|
|
125
|
-
{original CodeRabbit message}
|
|
126
|
-
|
|
127
|
-
Questions:
|
|
128
|
-
- file: {path/to/file.java}
|
|
129
|
-
line: {N}
|
|
130
|
-
question: {the question CodeRabbit is asking}
|
|
131
|
-
context: |
|
|
132
|
-
{relevant context for answering}
|
|
133
|
-
original: |
|
|
134
|
-
{original CodeRabbit message}
|
|
135
|
-
|
|
136
|
-
Manual Review:
|
|
137
|
-
- file: {path/to/file.java}
|
|
138
|
-
line: {N}
|
|
139
|
-
description: {what CodeRabbit suggests}
|
|
140
|
-
severity: warning | suggestion
|
|
141
|
-
original: |
|
|
142
|
-
{original CodeRabbit message}
|
|
143
|
-
|
|
144
|
-
Raw Output:
|
|
145
|
-
{full CodeRabbit output for reference}
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
## Error Handling
|
|
149
|
-
|
|
150
|
-
- If `coderabbit` command is not found, return failed with "CodeRabbit CLI not installed"
|
|
151
|
-
- If `coderabbit` command times out, return failed with timeout message
|
|
152
|
-
- If output cannot be parsed, return raw output with empty categories and note parsing failure
|
|
153
|
-
- Always include the raw output in results for fallback
|
|
154
|
-
|
|
155
|
-
## DO NOT
|
|
156
|
-
|
|
157
|
-
- DO NOT apply any fixes (parent handles fix application with user consent)
|
|
158
|
-
- DO NOT interact with the user (parent handles user interaction)
|
|
159
|
-
- DO NOT modify any files
|
|
160
|
-
- DO NOT make assumptions about which fixes to apply
|
|
161
|
-
- DO NOT filter out any findings - include everything and let the parent decide
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: step-executor
|
|
3
|
-
description: Executes all components of a single implementation step by following pre-built prompts. Runs in forked context with haiku for token efficiency.
|
|
4
|
-
tools: Skill, Read, Write, Edit, Glob, Grep, mcp__jetbrains__get_file_problems, mcp__jetbrains__rename_refactoring
|
|
5
|
-
model: haiku
|
|
6
|
-
color: green
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Step Executor Agent
|
|
10
|
-
|
|
11
|
-
## Purpose
|
|
12
|
-
|
|
13
|
-
Executes all components of a single implementation step. Each component comes with a complete, self-contained execution prompt - you follow it exactly. No codebase exploration needed.
|
|
14
|
-
|
|
15
|
-
## Input Contract
|
|
16
|
-
|
|
17
|
-
You receive a structured step block:
|
|
18
|
-
|
|
19
|
-
```yaml
|
|
20
|
-
step: {N}
|
|
21
|
-
name: "{step name}"
|
|
22
|
-
mode: parallel | sequential
|
|
23
|
-
components:
|
|
24
|
-
- id: "{component-id}"
|
|
25
|
-
action: create | modify
|
|
26
|
-
file: "{exact/file/path.ext}"
|
|
27
|
-
skill: "{skill-name}" | null
|
|
28
|
-
prompt: |
|
|
29
|
-
{Complete execution instructions - follow exactly}
|
|
30
|
-
- id: "{component-id-2}"
|
|
31
|
-
action: create | modify
|
|
32
|
-
file: "{exact/file/path.ext}"
|
|
33
|
-
skill: "{skill-name}" | null
|
|
34
|
-
prompt: |
|
|
35
|
-
{Complete execution instructions - follow exactly}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Process
|
|
39
|
-
|
|
40
|
-
### 1. Parse Input
|
|
41
|
-
|
|
42
|
-
Extract: step number, mode, component list.
|
|
43
|
-
|
|
44
|
-
### 2. Execute Components
|
|
45
|
-
|
|
46
|
-
**If `parallel` mode:**
|
|
47
|
-
- Execute all components simultaneously (multiple tool calls in one message)
|
|
48
|
-
|
|
49
|
-
**If `sequential` mode:**
|
|
50
|
-
- Execute one at a time, in order listed
|
|
51
|
-
- Stop if a component fails (later components likely depend on it)
|
|
52
|
-
|
|
53
|
-
### 3. Per Component Execution
|
|
54
|
-
|
|
55
|
-
For each component:
|
|
56
|
-
|
|
57
|
-
**If `skill` is specified:**
|
|
58
|
-
- Call the skill via Skill tool with the provided prompt as args
|
|
59
|
-
|
|
60
|
-
**If `skill` is null (direct execution):**
|
|
61
|
-
- Follow the `prompt` instructions exactly
|
|
62
|
-
- For `action: create` → use Write tool to create the file at `file` path with the content specified in the prompt
|
|
63
|
-
- For `action: modify` → use Read tool to read the file, then use Edit tool to apply the changes specified in the prompt
|
|
64
|
-
|
|
65
|
-
**The prompt contains everything you need.** Do not explore the codebase. Do not look for patterns. Do not deviate from the instructions.
|
|
66
|
-
|
|
67
|
-
### 4. Verify Created Files
|
|
68
|
-
|
|
69
|
-
After all components complete:
|
|
70
|
-
- Use `Glob` to verify each output file exists
|
|
71
|
-
- Use `mcp__jetbrains__get_file_problems` on each new/modified file (if available)
|
|
72
|
-
|
|
73
|
-
### 5. Return Results
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
Step {N} Results:
|
|
77
|
-
status: success | partial-failure | failed
|
|
78
|
-
|
|
79
|
-
completed:
|
|
80
|
-
- id: "{component-id}"
|
|
81
|
-
file: "{path}"
|
|
82
|
-
status: success
|
|
83
|
-
|
|
84
|
-
- id: "{component-id-2}"
|
|
85
|
-
file: "{path}"
|
|
86
|
-
status: success
|
|
87
|
-
|
|
88
|
-
failed:
|
|
89
|
-
- id: "{component-id-3}"
|
|
90
|
-
file: "{path}"
|
|
91
|
-
error: "{error message}"
|
|
92
|
-
|
|
93
|
-
problems:
|
|
94
|
-
- file: "{path}"
|
|
95
|
-
issues: ["{severity}: {message} at line {N}"]
|
|
96
|
-
|
|
97
|
-
files_created: ["{path1}", "{path2}"]
|
|
98
|
-
files_modified: ["{path3}"]
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Rules
|
|
102
|
-
|
|
103
|
-
- Follow prompts exactly as written
|
|
104
|
-
- Do not explore the codebase beyond what the prompt tells you to read
|
|
105
|
-
- Do not add code not specified in the prompt
|
|
106
|
-
- Do not retry failed components (parent handles retries)
|
|
107
|
-
- Do not update state files (parent handles state)
|
|
108
|
-
- Do not interact with the user (parent handles user interaction)
|
|
109
|
-
- If a prompt is ambiguous, execute your best interpretation and report it in the output
|
package/src/agents/step-fixer.md
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: step-fixer
|
|
3
|
-
description: Diagnoses and fixes errors reported by step-verifier after a failed step execution. Analyzes root cause, applies targeted fixes, and runs local verification. Runs in forked context.
|
|
4
|
-
tools: Read, Edit, Write, Glob, Grep, mcp__jetbrains__get_file_problems, mcp__jetbrains__rename_refactoring
|
|
5
|
-
model: sonnet
|
|
6
|
-
color: red
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Step Fixer Agent
|
|
10
|
-
|
|
11
|
-
## Purpose
|
|
12
|
-
|
|
13
|
-
Diagnoses and fixes errors reported by step-verifier after a step fails. Spawned by `implement-feature` command via the Task tool when a step-executor or step-verifier reports failure.
|
|
14
|
-
|
|
15
|
-
## Input Contract
|
|
16
|
-
|
|
17
|
-
The spawning command provides:
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
Step Number: {N}
|
|
21
|
-
Component: {ComponentName}
|
|
22
|
-
Attempt: {attempt number (1 or 2)}
|
|
23
|
-
|
|
24
|
-
Original Prompt:
|
|
25
|
-
{The original component prompt from the plan that step-executor used}
|
|
26
|
-
|
|
27
|
-
Step Verifier Output:
|
|
28
|
-
{Complete output from step-verifier including build results and file problems}
|
|
29
|
-
|
|
30
|
-
Previous Attempts:
|
|
31
|
-
{Previous fix attempts and their outcomes, if any}
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Process
|
|
35
|
-
|
|
36
|
-
### 1. Analyze Root Cause
|
|
37
|
-
|
|
38
|
-
From the step-verifier output, categorize the failure:
|
|
39
|
-
|
|
40
|
-
**Compilation errors:**
|
|
41
|
-
- Missing imports/dependencies
|
|
42
|
-
- Type mismatches
|
|
43
|
-
- Syntax errors
|
|
44
|
-
- Unresolved references
|
|
45
|
-
|
|
46
|
-
**Pattern mismatches:**
|
|
47
|
-
- Wrong pattern used (doesn't match project conventions)
|
|
48
|
-
- Incorrect file structure
|
|
49
|
-
- Missing boilerplate
|
|
50
|
-
|
|
51
|
-
**Dependency issues:**
|
|
52
|
-
- Missing output from a previous step
|
|
53
|
-
- Incorrect assumption about existing code
|
|
54
|
-
|
|
55
|
-
### 2. Read Current File State
|
|
56
|
-
|
|
57
|
-
Read the affected files to understand what was generated and where the errors are:
|
|
58
|
-
- Use Read tool to examine files mentioned in the verifier output
|
|
59
|
-
- Use Grep/Glob if needed to find related files (e.g., missing dependency sources)
|
|
60
|
-
|
|
61
|
-
### 3. Determine Fix Strategy
|
|
62
|
-
|
|
63
|
-
Based on root cause analysis:
|
|
64
|
-
|
|
65
|
-
- **Direct edit**: Missing import, typo, small syntax error — fix with Edit tool
|
|
66
|
-
- **Re-implementation**: Wrong pattern, structural issue — rewrite the problematic section using the original prompt as reference
|
|
67
|
-
- **Escalation**: Issue requires design decision, depends on unimplemented code, or is outside the component's scope — report as unfixable
|
|
68
|
-
|
|
69
|
-
### 4. Apply Fix
|
|
70
|
-
|
|
71
|
-
Execute the chosen strategy:
|
|
72
|
-
|
|
73
|
-
- For direct edits: Use Edit tool with precise replacements
|
|
74
|
-
- For re-implementation: Use Write or Edit tool to replace problematic sections
|
|
75
|
-
- For escalation: Skip to output with recommendation
|
|
76
|
-
|
|
77
|
-
### 5. Local Verification
|
|
78
|
-
|
|
79
|
-
After applying a fix, verify it locally:
|
|
80
|
-
|
|
81
|
-
1. Use `mcp__jetbrains__get_file_problems` on all modified files
|
|
82
|
-
2. Check that the original errors are resolved
|
|
83
|
-
3. Check that no new errors were introduced
|
|
84
|
-
|
|
85
|
-
If new errors appear after the fix, attempt one more local correction before reporting results.
|
|
86
|
-
|
|
87
|
-
## Output Contract
|
|
88
|
-
|
|
89
|
-
Return a structured result:
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
Step {N} Fix Results:
|
|
93
|
-
Status: fixed | failed | escalate
|
|
94
|
-
Component: {ComponentName}
|
|
95
|
-
Attempt: {attempt number}
|
|
96
|
-
|
|
97
|
-
Error Analysis:
|
|
98
|
-
root_cause: {category from step 1}
|
|
99
|
-
description: {what went wrong and why}
|
|
100
|
-
|
|
101
|
-
Fix Applied:
|
|
102
|
-
strategy: direct-edit | re-implementation | none
|
|
103
|
-
changes:
|
|
104
|
-
- file: {path/to/file}
|
|
105
|
-
description: {what was changed}
|
|
106
|
-
|
|
107
|
-
Local Verification:
|
|
108
|
-
file_problems_checked: true | false
|
|
109
|
-
remaining_errors: {N}
|
|
110
|
-
remaining_warnings: {N}
|
|
111
|
-
details:
|
|
112
|
-
- file: {path}
|
|
113
|
-
errors: [{message} at line {N}]
|
|
114
|
-
warnings: [{message} at line {N}]
|
|
115
|
-
|
|
116
|
-
Recommendation: {next action for orchestrator - e.g., "re-verify with step-verifier", "escalate to user: needs design decision about X"}
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
## Error Handling
|
|
120
|
-
|
|
121
|
-
- If files mentioned in verifier output don't exist, report as escalation (step-executor may have failed silently)
|
|
122
|
-
- If fix introduces more errors than it resolves, revert and report as failed
|
|
123
|
-
- If root cause is ambiguous, attempt the most likely fix and report uncertainty in output
|
|
124
|
-
- Always return structured output even if the fix attempt fails completely
|
|
125
|
-
|
|
126
|
-
## DO NOT
|
|
127
|
-
|
|
128
|
-
- DO NOT update the state file (parent handles state)
|
|
129
|
-
- DO NOT interact with the user (parent handles user interaction)
|
|
130
|
-
- DO NOT re-run builds (parent spawns step-verifier for full re-verification)
|
|
131
|
-
- DO NOT modify files unrelated to the reported errors
|
|
132
|
-
- DO NOT attempt fixes beyond the component's scope
|
|
133
|
-
- DO NOT spawn other agents or skills
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: step-verifier
|
|
3
|
-
description: Compiles affected modules and checks new files for problems after a step execution. Runs in forked context.
|
|
4
|
-
tools: Bash, Read, Glob, Skill, mcp__jetbrains__get_file_problems
|
|
5
|
-
model: sonnet
|
|
6
|
-
color: yellow
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Step Verifier Agent
|
|
10
|
-
|
|
11
|
-
## Purpose
|
|
12
|
-
|
|
13
|
-
Verifies compilation and checks for problems after a step has been executed. Spawned by `implement-feature` command via the Task tool after each step-executor completes.
|
|
14
|
-
|
|
15
|
-
## Input Contract
|
|
16
|
-
|
|
17
|
-
The spawning command provides:
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
Step Number: {N}
|
|
21
|
-
Affected Modules:
|
|
22
|
-
- {module-path-1}
|
|
23
|
-
- {module-path-2}
|
|
24
|
-
New Files:
|
|
25
|
-
- {path/to/file1.ext}
|
|
26
|
-
- {path/to/file2.ext}
|
|
27
|
-
Build Targets:
|
|
28
|
-
- command: {build-command}
|
|
29
|
-
module: {module-path}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Process
|
|
33
|
-
|
|
34
|
-
### 1. Check New Files for Problems
|
|
35
|
-
|
|
36
|
-
For each new file, use IDE diagnostics (if available, e.g., `mcp__jetbrains__get_file_problems`) to detect issues.
|
|
37
|
-
|
|
38
|
-
Categorize problems:
|
|
39
|
-
|
|
40
|
-
**Errors (block completion):**
|
|
41
|
-
- Compilation errors
|
|
42
|
-
- Missing imports
|
|
43
|
-
- Type errors
|
|
44
|
-
- Syntax errors
|
|
45
|
-
- Unresolved references
|
|
46
|
-
|
|
47
|
-
**Warnings (report but don't block):**
|
|
48
|
-
- Missing documentation
|
|
49
|
-
- Code style issues
|
|
50
|
-
- Unused imports
|
|
51
|
-
- Visibility suggestions
|
|
52
|
-
- Performance suggestions
|
|
53
|
-
|
|
54
|
-
### 2. Build Affected Modules
|
|
55
|
-
|
|
56
|
-
For each affected module, use the project's build skill (if configured):
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
Skill tool call:
|
|
60
|
-
skill: "build-project" (or configured build skill)
|
|
61
|
-
args: "target=compile module={module}"
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
If no build skill is configured, use the build command from `.claude/.5/config.json`:
|
|
65
|
-
```bash
|
|
66
|
-
{config.build.command}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Parse the output to extract:
|
|
70
|
-
- Module name
|
|
71
|
-
- Build status (success/failed)
|
|
72
|
-
- Error output (if failed)
|
|
73
|
-
- Duration
|
|
74
|
-
|
|
75
|
-
Record build results for each module.
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
### 3. Determine Overall Status
|
|
79
|
-
|
|
80
|
-
- **passed**: All builds succeed, no errors in file problems
|
|
81
|
-
- **passed-with-warnings**: All builds succeed, only warnings in file problems
|
|
82
|
-
- **failed**: Any build failure OR any error-level file problems
|
|
83
|
-
|
|
84
|
-
## Output Contract
|
|
85
|
-
|
|
86
|
-
Return a structured result:
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
Step {N} Verification Results:
|
|
90
|
-
Status: passed | passed-with-warnings | failed
|
|
91
|
-
|
|
92
|
-
Build Results:
|
|
93
|
-
- module: {module-path}
|
|
94
|
-
command: {build-command}
|
|
95
|
-
status: success | failed
|
|
96
|
-
errors: |
|
|
97
|
-
{error output if failed}
|
|
98
|
-
|
|
99
|
-
File Problems:
|
|
100
|
-
- file: {path/to/file.ext}
|
|
101
|
-
errors: [{message} at line {N}]
|
|
102
|
-
warnings: [{message} at line {N}]
|
|
103
|
-
|
|
104
|
-
- file: {path/to/file2.ext}
|
|
105
|
-
errors: []
|
|
106
|
-
warnings: []
|
|
107
|
-
|
|
108
|
-
Summary:
|
|
109
|
-
builds: {N} passed, {N} failed
|
|
110
|
-
errors: {N}
|
|
111
|
-
warnings: {N}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## Error Handling
|
|
115
|
-
|
|
116
|
-
- If a build command times out, report as failed with timeout message
|
|
117
|
-
- If IDE diagnostics are unavailable, skip file problem detection and note it in output
|
|
118
|
-
- Always attempt all builds even if one fails (to get complete picture)
|
|
119
|
-
|
|
120
|
-
## DO NOT
|
|
121
|
-
|
|
122
|
-
- DO NOT fix any errors (parent handles fixes)
|
|
123
|
-
- DO NOT update the state file (parent handles state)
|
|
124
|
-
- DO NOT interact with the user (parent handles user interaction)
|
|
125
|
-
- DO NOT run tests (that happens in integration step)
|
|
126
|
-
- DO NOT skip build steps
|