konductor 0.13.0 → 0.15.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/agents/konductor-designer.json +41 -0
- package/agents/konductor.json +2 -2
- package/package.json +1 -1
- package/skills/konductor-design/SKILL.md +78 -0
- package/skills/konductor-discuss/SKILL.md +2 -2
- package/skills/konductor-next/SKILL.md +84 -80
- package/skills/konductor-plan/SKILL.md +18 -96
- package/skills/konductor-review/SKILL.md +91 -0
- package/skills/{konductor-init → konductor-spec}/SKILL.md +9 -9
- package/skills/konductor-status/SKILL.md +6 -5
- /package/skills/{konductor-init → konductor-spec}/references/questioning.md +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "konductor-designer",
|
|
3
|
+
"description": "Creates phase-level architecture designs with component interactions, key decisions, interfaces, and trade-offs.",
|
|
4
|
+
"tools": [
|
|
5
|
+
"read",
|
|
6
|
+
"write",
|
|
7
|
+
"shell",
|
|
8
|
+
"code"
|
|
9
|
+
],
|
|
10
|
+
"allowedTools": [
|
|
11
|
+
"read",
|
|
12
|
+
"write",
|
|
13
|
+
"shell",
|
|
14
|
+
"code"
|
|
15
|
+
],
|
|
16
|
+
"resources": [
|
|
17
|
+
"file://.konductor/project.md",
|
|
18
|
+
"file://.konductor/requirements.md",
|
|
19
|
+
"file://.konductor/roadmap.md",
|
|
20
|
+
"file://.konductor/phases/*/research.md",
|
|
21
|
+
"file://.kiro/steering/**/*.md",
|
|
22
|
+
"file://~/.kiro/steering/**/*.md"
|
|
23
|
+
],
|
|
24
|
+
"hooks": {
|
|
25
|
+
"preToolUse": [
|
|
26
|
+
{
|
|
27
|
+
"matcher": "*",
|
|
28
|
+
"command": "konductor hook",
|
|
29
|
+
"timeout_ms": 1000
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"postToolUse": [
|
|
33
|
+
{
|
|
34
|
+
"matcher": "*",
|
|
35
|
+
"command": "konductor hook",
|
|
36
|
+
"timeout_ms": 2000
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"prompt": "You are a software architect. Create a phase-level design document (design.md) covering: overall architecture, component interactions, key technical decisions, interfaces between components, and trade-offs. Focus on the 'what' and 'why', not the 'how' — task-level details belong in execution plans."
|
|
41
|
+
}
|
package/agents/konductor.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "konductor",
|
|
3
|
-
"description": "Spec-driven development orchestrator. Manages project
|
|
3
|
+
"description": "Spec-driven development orchestrator. Manages project spec, phase design, planning, execution, verification, and shipping. Use /k-spec, /k-design, /k-plan, /k-exec, /k-verify, /k-next, /k-status, or other prompts to trigger commands.",
|
|
4
4
|
"model": "claude-opus-4.6-1m",
|
|
5
5
|
"tools": [
|
|
6
6
|
"@builtin",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
}
|
|
53
53
|
]
|
|
54
54
|
},
|
|
55
|
-
"prompt": "You are the Konductor orchestrator — a spec-driven development pipeline manager. You coordinate work by loading skills and delegating to konductor-* subagents. You never write application code directly.\n\nCore workflow:
|
|
55
|
+
"prompt": "You are the Konductor orchestrator — a spec-driven development pipeline manager. You coordinate work by loading skills and delegating to konductor-* subagents. You never write application code directly.\n\nCore workflow: spec → discuss → design → plan → review → exec → verify → ship (per phase).\n\nRules:\n1. Always call state_get before acting to determine the current pipeline step.\n2. Use konductor MCP tools for all state and config management: state_init, state_get, state_transition, state_add_blocker, state_resolve_blocker, state_advance_phase, plans_list, status, config_get, config_init. Never read or write state.toml or config.toml directly.\n3. When a user request matches a skill, load and follow it step by step.\n4. Delegate heavy work (coding, research, planning, review, verification) to konductor-* subagents — you only manage state transitions and orchestration.\n5. If no konductor project exists (.konductor/ missing), suggest running spec first."
|
|
56
56
|
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: konductor-design
|
|
3
|
+
description: Create architecture and design for a phase. Use when the user says design, architect, design phase, or create design.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Konductor Design — Phase Architecture
|
|
7
|
+
|
|
8
|
+
You are the Konductor orchestrator. Create the architecture and design for a phase.
|
|
9
|
+
|
|
10
|
+
## Critical Rules
|
|
11
|
+
|
|
12
|
+
1. **Only YOU manage state transitions** — use the MCP tools (`state_get`, `state_transition`, `state_add_blocker`) instead of writing `state.toml` directly.
|
|
13
|
+
2. **Read config via MCP** — call `config_get` to get feature flags (research).
|
|
14
|
+
3. **Report errors, don't retry crashes** — if a subagent fails, set status to "blocked".
|
|
15
|
+
4. **Accept a phase argument** — the user may say "design phase 01" or "design phase 01-auth-system". Resolve short form by scanning `.konductor/phases/` directories.
|
|
16
|
+
|
|
17
|
+
## Step 1: Validate State
|
|
18
|
+
|
|
19
|
+
Call the `state_get` MCP tool to read current state, and call the `config_get` MCP tool to read configuration.
|
|
20
|
+
|
|
21
|
+
Validate that `current.step` is `"specced"` or `"discussed"`. If not, tell the user:
|
|
22
|
+
> "Phase {phase} is not ready for design. Current step: {step}. Run 'spec' or 'discuss' first."
|
|
23
|
+
Then stop.
|
|
24
|
+
|
|
25
|
+
Validate that the specified phase exists in `.konductor/roadmap.md`.
|
|
26
|
+
Create the phase directory if it doesn't exist:
|
|
27
|
+
```bash
|
|
28
|
+
mkdir -p .konductor/phases/{phase}/plans
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Step 2: Discover (if enabled)
|
|
32
|
+
|
|
33
|
+
If `config.toml` `features.research = true`:
|
|
34
|
+
|
|
35
|
+
Read `.konductor/phases/{phase}/context.md` if it exists (user decisions from `konductor-discuss`).
|
|
36
|
+
|
|
37
|
+
Use the **konductor-researcher** agent to discover the ecosystem for this phase. Provide it with:
|
|
38
|
+
- The phase name, description, and success criteria from roadmap.md
|
|
39
|
+
- User decisions from context.md (if exists)
|
|
40
|
+
- Relevant requirements from `.konductor/requirements.md`
|
|
41
|
+
- Instructions: investigate the ecosystem, identify libraries, patterns, risks, and best practices. Write findings to `.konductor/phases/{phase}/research.md`.
|
|
42
|
+
|
|
43
|
+
Wait for the researcher to complete. Verify `research.md` was created.
|
|
44
|
+
|
|
45
|
+
## Step 3: Create Design
|
|
46
|
+
|
|
47
|
+
Use the **konductor-designer** agent to create the phase-level architecture. Provide it with:
|
|
48
|
+
- `.konductor/phases/{phase}/research.md` (if discover was run)
|
|
49
|
+
- `.konductor/requirements.md`
|
|
50
|
+
- `.konductor/roadmap.md` (phase goal and success criteria)
|
|
51
|
+
- `.konductor/project.md` (tech stack and constraints)
|
|
52
|
+
- Instructions: write `.konductor/phases/{phase}/design.md` covering overall architecture, component interactions, key decisions, interfaces, and trade-offs. Do NOT create plan files yet.
|
|
53
|
+
|
|
54
|
+
Wait for the planner to complete. Verify `design.md` was created.
|
|
55
|
+
|
|
56
|
+
## Step 4: Update State
|
|
57
|
+
|
|
58
|
+
Write `.konductor/.results/design-{phase}.toml`:
|
|
59
|
+
```toml
|
|
60
|
+
step = "design"
|
|
61
|
+
phase = "{phase}"
|
|
62
|
+
status = "ok"
|
|
63
|
+
timestamp = {current ISO timestamp}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Call `state_transition` with `step = "designed"` to advance the pipeline.
|
|
67
|
+
|
|
68
|
+
Tell the user:
|
|
69
|
+
- Design document created at `.konductor/phases/{phase}/design.md`
|
|
70
|
+
- Suggest: "Say 'next' to create execution plans, or review the design first."
|
|
71
|
+
|
|
72
|
+
## Error Handling
|
|
73
|
+
|
|
74
|
+
If any subagent fails:
|
|
75
|
+
1. Write `.konductor/.results/design-{phase}.toml` with `status = "error"`
|
|
76
|
+
2. Call `state_add_blocker` MCP tool with the phase and reason for the failure
|
|
77
|
+
3. Report failure to user with actionable context
|
|
78
|
+
4. Do NOT retry crashed subagents
|
|
@@ -153,7 +153,7 @@ Recorded {decisions_count} decisions for Phase {number}: {name}.
|
|
|
153
153
|
|
|
154
154
|
Context saved to: `.konductor/phases/{phase}/context.md`
|
|
155
155
|
|
|
156
|
-
These decisions will guide the
|
|
156
|
+
These decisions will guide the design process. Say 'next' to begin designing this phase.
|
|
157
157
|
```
|
|
158
158
|
|
|
159
159
|
## Error Handling
|
|
@@ -163,7 +163,7 @@ If the phase doesn't exist in the roadmap, report it and stop.
|
|
|
163
163
|
|
|
164
164
|
**State file missing:**
|
|
165
165
|
If calling `state_get` returns a `STATE_NOT_FOUND` error:
|
|
166
|
-
1. Tell the user: "No Konductor project found. Run '
|
|
166
|
+
1. Tell the user: "No Konductor project found. Run 'spec' first."
|
|
167
167
|
2. Stop
|
|
168
168
|
|
|
169
169
|
**User provides insufficient input:**
|
|
@@ -21,69 +21,98 @@ Call the `state_get` MCP tool to read current state. Also read:
|
|
|
21
21
|
- `.konductor/roadmap.md` — phase list and status
|
|
22
22
|
|
|
23
23
|
If `.konductor/` does not exist, tell the user:
|
|
24
|
-
> "No Konductor project found. Say '
|
|
24
|
+
> "No Konductor project found. Say 'spec' to get started."
|
|
25
25
|
Then stop.
|
|
26
26
|
|
|
27
27
|
## Step 2: Determine Next Action
|
|
28
28
|
|
|
29
29
|
Based on the `current.step` field from `state_get`:
|
|
30
30
|
|
|
31
|
-
### Case: `step = "
|
|
31
|
+
### Case: `step = "specced"` or `step = "discussed"`
|
|
32
32
|
|
|
33
|
-
The phase needs
|
|
34
|
-
> "Tip: you can say 'discuss phase {phase}' to set preferences before
|
|
33
|
+
The phase needs design. Mention to the user:
|
|
34
|
+
> "Tip: you can say 'discuss phase {phase}' to set preferences before design. Proceeding to design."
|
|
35
35
|
|
|
36
|
-
Then run the **
|
|
36
|
+
Then run the **Design Pipeline**:
|
|
37
37
|
|
|
38
|
-
1. **
|
|
38
|
+
1. **Discover** (if `config.toml` `features.research = true`):
|
|
39
39
|
Read `.konductor/phases/{phase}/context.md` if it exists.
|
|
40
|
-
Use the **konductor-researcher** agent to
|
|
40
|
+
Use the **konductor-researcher** agent to discover the ecosystem for phase {phase}. Provide it with:
|
|
41
41
|
- The phase name and goal from roadmap.md
|
|
42
42
|
- User decisions from context.md (if exists)
|
|
43
43
|
- Relevant requirements from requirements.md
|
|
44
44
|
The researcher will write to `.konductor/phases/{phase}/research.md`.
|
|
45
45
|
Wait for completion.
|
|
46
46
|
|
|
47
|
-
2. **
|
|
47
|
+
2. **Design**:
|
|
48
|
+
Use the **konductor-designer** agent to create the phase-level architecture. Provide it with:
|
|
49
|
+
- research.md (if discover was run)
|
|
50
|
+
- requirements.md
|
|
51
|
+
- roadmap.md (for phase goal and success criteria)
|
|
52
|
+
- project.md (tech stack and constraints)
|
|
53
|
+
The planner will write `.konductor/phases/{phase}/design.md` with overall architecture, component interactions, key decisions, interfaces, and trade-offs.
|
|
54
|
+
Wait for completion.
|
|
55
|
+
|
|
56
|
+
3. **Update State**:
|
|
57
|
+
Write `.konductor/.results/design-{phase}.toml`:
|
|
58
|
+
```toml
|
|
59
|
+
step = "design"
|
|
60
|
+
phase = "{phase}"
|
|
61
|
+
status = "ok"
|
|
62
|
+
timestamp = {current ISO timestamp}
|
|
63
|
+
```
|
|
64
|
+
Call `state_transition` with `step = "designed"`.
|
|
65
|
+
Tell the user: "Phase {phase} design complete. Say 'next' to create execution plans."
|
|
66
|
+
|
|
67
|
+
### Case: `step = "designed"`
|
|
68
|
+
|
|
69
|
+
The phase needs task planning. Run the **Planning Pipeline**:
|
|
70
|
+
|
|
71
|
+
1. **Plan**:
|
|
48
72
|
Use the **konductor-planner** agent to create execution plans. Provide it with:
|
|
49
|
-
-
|
|
73
|
+
- `.konductor/phases/{phase}/design.md`
|
|
74
|
+
- research.md (if exists)
|
|
50
75
|
- requirements.md
|
|
51
76
|
- roadmap.md (for phase goal and success criteria)
|
|
52
77
|
- Reference: see `references/planning-guide.md` in the konductor-plan skill
|
|
53
|
-
The planner will
|
|
78
|
+
The planner will write plan files to `.konductor/phases/{phase}/plans/`.
|
|
54
79
|
Wait for completion.
|
|
55
80
|
|
|
56
|
-
|
|
81
|
+
2. **Check Plans** (if `config.toml` `features.plan_checker = true`):
|
|
57
82
|
Use the **konductor-plan-checker** agent to validate the plans. Provide it with:
|
|
58
83
|
- All plan files in `.konductor/phases/{phase}/plans/`
|
|
59
84
|
- requirements.md
|
|
60
85
|
If the checker reports issues, use a new **konductor-planner** agent with the issues as context to revise. Then re-check. Maximum 3 iterations.
|
|
61
86
|
|
|
62
|
-
|
|
63
|
-
Use the **konductor-design-reviewer** agent to review the design. Provide it with:
|
|
64
|
-
- `.konductor/phases/{phase}/design.md`
|
|
65
|
-
- All plan files in `.konductor/phases/{phase}/plans/`
|
|
66
|
-
- requirements.md, roadmap.md, project.md
|
|
67
|
-
The reviewer writes `.konductor/phases/{phase}/review.md` with a verdict (pass/revise/reject) and issues.
|
|
68
|
-
If verdict is "revise": spawn a new **konductor-planner** with the review feedback to revise design.md and affected plans, then re-run the reviewer. Maximum 2 iterations.
|
|
69
|
-
Present the review summary to the user. Ask: "Approve plans for execution? (approve / reject)".
|
|
70
|
-
On approve: proceed to step 5.
|
|
71
|
-
On reject: stop. Do not advance state.
|
|
72
|
-
|
|
73
|
-
5. **Update State**:
|
|
87
|
+
3. **Update State**:
|
|
74
88
|
Write `.konductor/.results/plan-{phase}.toml`:
|
|
75
89
|
```toml
|
|
76
90
|
step = "plan"
|
|
77
91
|
phase = "{phase}"
|
|
78
92
|
status = "ok"
|
|
79
93
|
timestamp = {current ISO timestamp}
|
|
94
|
+
plan_count = {number of plan files created}
|
|
80
95
|
```
|
|
81
|
-
|
|
82
|
-
Tell the user: "Phase {phase} planned with N plans in M waves. Say 'next' to
|
|
96
|
+
Call `state_transition` with `step = "planned"`.
|
|
97
|
+
Tell the user: "Phase {phase} planned with N plans in M waves. Say 'next' to review."
|
|
83
98
|
|
|
84
99
|
### Case: `step = "planned"`
|
|
85
100
|
|
|
86
|
-
The phase is ready for execution. Run the **Execution Pipeline**:
|
|
101
|
+
The phase is ready for review then execution. Run the **Review + Execution Pipeline**:
|
|
102
|
+
|
|
103
|
+
**Review** (if `config.toml` `features.design_review = true`):
|
|
104
|
+
Use the **konductor-design-reviewer** agent to review the design. Provide it with:
|
|
105
|
+
- `.konductor/phases/{phase}/design.md`
|
|
106
|
+
- All plan files in `.konductor/phases/{phase}/plans/`
|
|
107
|
+
- requirements.md, roadmap.md, project.md
|
|
108
|
+
The reviewer writes `.konductor/phases/{phase}/review.md` with a verdict (pass/revise/reject) and issues.
|
|
109
|
+
If verdict is "revise": spawn a new **konductor-planner** with the review feedback to revise design.md and affected plans, then re-run the reviewer. Maximum 2 iterations.
|
|
110
|
+
If verdict is "reject": stop. Tell the user to fix issues and re-run design.
|
|
111
|
+
Present the review summary to the user. Ask: "Approve plans for execution? (approve / reject)".
|
|
112
|
+
On approve: proceed to execution.
|
|
113
|
+
On reject: stop. Do not advance state.
|
|
114
|
+
|
|
115
|
+
**Execution:**
|
|
87
116
|
|
|
88
117
|
1. Read `config.toml` for `execution.max_wave_parallelism` and `git.auto_commit`.
|
|
89
118
|
2. Read all plan files from `.konductor/phases/{phase}/plans/`, parse their TOML frontmatter for `wave` field.
|
|
@@ -108,90 +137,65 @@ The phase is ready for execution. Run the **Execution Pipeline**:
|
|
|
108
137
|
**5b. Handle implementer status:**
|
|
109
138
|
Read the `## Status` field from the task summary:
|
|
110
139
|
- **DONE** → proceed to 5c (two-stage review).
|
|
111
|
-
- **DONE_WITH_CONCERNS** → read `## Concerns`. If
|
|
112
|
-
- **NEEDS_CONTEXT** →
|
|
113
|
-
- **BLOCKED** →
|
|
140
|
+
- **DONE_WITH_CONCERNS** → read `## Concerns`. If actionable (correctness, security, spec deviations): dispatch a fresh executor to address them, then proceed to 5c. If informational: proceed to 5c.
|
|
141
|
+
- **NEEDS_CONTEXT** → provide the requested information, re-dispatch. Maximum 2 retries. If still NEEDS_CONTEXT, treat as BLOCKED.
|
|
142
|
+
- **BLOCKED** → assess and attempt resolution. If 3+ tasks BLOCKED, trigger circuit breaker: stop and report all blockers.
|
|
114
143
|
|
|
115
|
-
**5c. Two-stage review** (if `
|
|
144
|
+
**5c. Two-stage review** (if `features.code_review = true`; skip if disabled, append `## Review Status: passed` to summary):
|
|
116
145
|
|
|
117
|
-
**Stage 1 — Spec Compliance:**
|
|
118
|
-
Spawn **konductor-
|
|
119
|
-
|
|
146
|
+
**Stage 1 — Spec Compliance:** Spawn **konductor-spec-reviewer**. If issues: fix and re-review (max 2 iterations).
|
|
147
|
+
**Stage 2 — Code Quality:** Spawn **konductor-code-reviewer**. If issues: fix and re-review (max 2 iterations).
|
|
148
|
+
After both pass: append `## Review Status: passed` to task summary.
|
|
120
149
|
|
|
121
|
-
**
|
|
122
|
-
Spawn **konductor-code-reviewer** with the task summary, modified files, and git diff for the task. The reviewer writes `{plan}-task-{n}-quality-review.md`.
|
|
123
|
-
If issues found: spawn a fresh **konductor-executor** with the issues to fix, then re-run the quality reviewer. Maximum 2 iterations.
|
|
150
|
+
**5d. Write result file** after each plan completes.
|
|
124
151
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
**5d. Write result file** after each plan completes (all tasks done):
|
|
128
|
-
Write `.konductor/.results/execute-{phase}-plan-{n}.toml` with status and timestamp.
|
|
129
|
-
|
|
130
|
-
6. **Phase-Level Code Review** (optional holistic final pass, if `config.toml` `features.code_review = true`):
|
|
131
|
-
Per-task reviews have already been performed. This step checks cross-task consistency (shared interfaces, naming conventions, integration points).
|
|
132
|
-
Spawn **konductor-code-reviewer** with `.konductor/.tracking/modified-files.log`, all task summary files, and phase name. The reviewer writes `.konductor/phases/{phase}/code-review.md`.
|
|
133
|
-
If significant cross-task issues found: spawn a **konductor-executor** to fix, then re-review. Maximum 3 iterations. If still unresolved, call `state_add_blocker` and report to user.
|
|
152
|
+
6. **Phase-Level Code Review** (holistic final pass, if `features.code_review = true`):
|
|
153
|
+
Check cross-task consistency. Spawn **konductor-code-reviewer** with modified-files.log and all task summaries. Fix issues (max 3 iterations).
|
|
134
154
|
7. Call `state_transition` with `step = "executed"`.
|
|
135
|
-
8. Tell the user: "Phase {phase} executed.
|
|
155
|
+
8. Tell the user: "Phase {phase} executed. Say 'next' to verify."
|
|
136
156
|
|
|
137
157
|
### Case: `step = "executing"`
|
|
138
158
|
|
|
139
159
|
Execution was interrupted. Resume at task-level granularity:
|
|
140
|
-
1. Scan
|
|
141
|
-
2. A task is complete
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
4. Check for any tasks with `## Status: NEEDS_CONTEXT` or `## Status: BLOCKED` — report these to the user before resuming.
|
|
146
|
-
5. Resume from the first incomplete task in the first incomplete plan of the current wave.
|
|
147
|
-
6. Continue the Execution Pipeline from step 5 above.
|
|
160
|
+
1. Scan for `{plan}-task-{n}-summary.md` files.
|
|
161
|
+
2. A task is complete when its summary has `## Status: DONE` AND `## Review Status: passed`.
|
|
162
|
+
3. Check for NEEDS_CONTEXT or BLOCKED tasks — report before resuming.
|
|
163
|
+
4. Resume from the first incomplete task.
|
|
164
|
+
5. Continue the Execution Pipeline from step 5 above.
|
|
148
165
|
|
|
149
166
|
### Case: `step = "executed"`
|
|
150
167
|
|
|
151
168
|
The phase needs verification. Run the **Verification Pipeline**:
|
|
152
169
|
|
|
153
|
-
1.
|
|
154
|
-
Call `state_transition` with `step = "complete"`, advance phase. Stop.
|
|
170
|
+
1. If `config.toml` `features.verifier = false`: skip verification, call `state_transition` with `step = "complete"`, advance phase. Stop.
|
|
155
171
|
|
|
156
|
-
2. Use the **konductor-verifier** agent
|
|
157
|
-
- All summary files from `.konductor/phases/{phase}/plans/`
|
|
158
|
-
- requirements.md
|
|
159
|
-
- All plan files (for must_haves in frontmatter)
|
|
160
|
-
- Reference: see `references/verification-patterns.md` in the konductor-verify skill
|
|
161
|
-
The verifier writes `.konductor/phases/{phase}/verification.md`.
|
|
162
|
-
Wait for completion.
|
|
172
|
+
2. Use the **konductor-verifier** agent. The verifier writes `.konductor/phases/{phase}/verification.md`.
|
|
163
173
|
|
|
164
174
|
3. Read `verification.md`. Write `.konductor/.results/verify-{phase}.toml`.
|
|
165
|
-
4. If status = "ok":
|
|
166
|
-
|
|
167
|
-
Advance to next phase in roadmap (call `state_transition` with the new phase).
|
|
168
|
-
Tell user: "Phase {phase} verified and complete. Advancing to next phase."
|
|
169
|
-
5. If status = "issues-found":
|
|
170
|
-
Keep current step as "executed".
|
|
171
|
-
Tell user the gaps found and suggest: "Run 'plan phase {phase}' to create gap-closure plans."
|
|
175
|
+
4. If status = "ok": call `state_transition` with `step = "complete"`. Advance to next phase. Tell user: "Phase {phase} verified and complete."
|
|
176
|
+
5. If status = "issues-found": keep step as "executed". Tell user the gaps and suggest re-planning.
|
|
172
177
|
|
|
173
178
|
### Case: `step = "complete"`
|
|
174
179
|
|
|
175
180
|
Current phase is done. Check roadmap for next incomplete phase:
|
|
176
|
-
- If found: update phase via `state_transition
|
|
181
|
+
- If found: update phase via `state_transition`, run Design Pipeline.
|
|
177
182
|
- If all phases complete: tell user "All phases complete! Say 'ship' to finalize."
|
|
178
183
|
|
|
179
184
|
### Case: `step = "shipped"`
|
|
180
185
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
- If
|
|
184
|
-
- If no new phases exist: tell the user "All phases complete and shipped! To continue, add new phases to roadmap.md and requirements.md, then say 'next' again."
|
|
186
|
+
Check `.konductor/roadmap.md` for any phases not yet completed.
|
|
187
|
+
- If a new phase exists: call `state_advance_phase` MCP tool. Then run the Design Pipeline.
|
|
188
|
+
- If no new phases: tell the user "All phases complete and shipped! To continue, add new phases to roadmap.md and requirements.md, then say 'next' again."
|
|
185
189
|
|
|
186
190
|
### Case: `step = "blocked"`
|
|
187
191
|
|
|
188
|
-
Tell the user about the blocker
|
|
192
|
+
Tell the user about the blocker. Suggest:
|
|
189
193
|
> "To unblock, fix the underlying issue, then call the `state_resolve_blocker` MCP tool with the phase to clear the blocker. After that, say 'next' to continue."
|
|
190
194
|
|
|
191
195
|
## Step 3: Error Handling
|
|
192
196
|
|
|
193
|
-
If any subagent fails
|
|
194
|
-
1. Write `.konductor/.results/{step}-{phase}.toml` with `status = "error"
|
|
195
|
-
2. Call `state_add_blocker` MCP tool with the phase and
|
|
196
|
-
3. Report the failure to the user
|
|
197
|
+
If any subagent fails:
|
|
198
|
+
1. Write `.konductor/.results/{step}-{phase}.toml` with `status = "error"`.
|
|
199
|
+
2. Call `state_add_blocker` MCP tool with the phase and failure description.
|
|
200
|
+
3. Report the failure to the user.
|
|
197
201
|
4. Do NOT automatically retry a crashed subagent.
|
|
@@ -1,59 +1,42 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: konductor-plan
|
|
3
|
-
description:
|
|
3
|
+
description: Break a phase design into execution plans with tasks. Use when the user says plan, create tasks, break down, or task planning.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Konductor Plan —
|
|
6
|
+
# Konductor Plan — Task Planning
|
|
7
7
|
|
|
8
|
-
You are the Konductor orchestrator.
|
|
8
|
+
You are the Konductor orchestrator. Break a phase design into execution plans with tasks, acceptance criteria, and wave ordering.
|
|
9
9
|
|
|
10
10
|
## Critical Rules
|
|
11
11
|
|
|
12
|
-
1. **Only YOU manage state transitions** — use the MCP tools (`state_get`, `state_transition`, `state_add_blocker`) instead of writing `state.toml` directly.
|
|
13
|
-
2. **Read config via MCP** — call `config_get` to get feature flags (
|
|
12
|
+
1. **Only YOU manage state transitions** — use the MCP tools (`state_get`, `state_transition`, `state_add_blocker`) instead of writing `state.toml` directly.
|
|
13
|
+
2. **Read config via MCP** — call `config_get` to get feature flags (plan_checker).
|
|
14
14
|
3. **Report errors, don't retry crashes** — if a subagent fails, set status to "blocked".
|
|
15
|
-
4. **Accept a phase argument** — the user may say "plan phase 01"
|
|
15
|
+
4. **Accept a phase argument** — the user may say "plan phase 01". Resolve short form by scanning `.konductor/phases/` directories.
|
|
16
16
|
|
|
17
17
|
## Step 1: Validate State
|
|
18
18
|
|
|
19
19
|
Call the `state_get` MCP tool to read current state, and call the `config_get` MCP tool to read configuration.
|
|
20
20
|
|
|
21
|
-
Validate that `current.step` is `"
|
|
22
|
-
> "Phase {phase} is not ready for planning. Current step: {step}. Run '
|
|
21
|
+
Validate that `current.step` is `"designed"`. If not, tell the user:
|
|
22
|
+
> "Phase {phase} is not ready for task planning. Current step: {step}. Run 'design' first."
|
|
23
23
|
Then stop.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
Create the phase directory if it doesn't exist:
|
|
27
|
-
```bash
|
|
28
|
-
mkdir -p .konductor/phases/{phase}/plans
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Step 2: Research (if enabled)
|
|
32
|
-
|
|
33
|
-
If `config.toml` `features.research = true`:
|
|
34
|
-
|
|
35
|
-
Read `.konductor/phases/{phase}/context.md` if it exists (user decisions from `konductor-discuss`).
|
|
25
|
+
Verify `.konductor/phases/{phase}/design.md` exists.
|
|
36
26
|
|
|
37
|
-
|
|
38
|
-
- The phase name, description, and success criteria from roadmap.md
|
|
39
|
-
- User decisions from context.md (if exists)
|
|
40
|
-
- Relevant requirements from `.konductor/requirements.md`
|
|
41
|
-
- Instructions: investigate the ecosystem, identify libraries, patterns, risks, and best practices. Write findings to `.konductor/phases/{phase}/research.md`.
|
|
42
|
-
|
|
43
|
-
Wait for the researcher to complete. Verify `research.md` was created.
|
|
44
|
-
|
|
45
|
-
## Step 3: Create Plans
|
|
27
|
+
## Step 2: Create Plans
|
|
46
28
|
|
|
47
29
|
Use the **konductor-planner** agent to decompose the phase into execution plans. Provide it with:
|
|
48
|
-
- `.konductor/phases/{phase}/
|
|
30
|
+
- `.konductor/phases/{phase}/design.md`
|
|
31
|
+
- `.konductor/phases/{phase}/research.md` (if exists)
|
|
49
32
|
- `.konductor/requirements.md`
|
|
50
33
|
- `.konductor/roadmap.md` (phase goal and success criteria)
|
|
51
34
|
- The planning guide: see `references/planning-guide.md`
|
|
52
|
-
- Instructions:
|
|
35
|
+
- Instructions: create plan files in `.konductor/phases/{phase}/plans/` using TOML frontmatter format with tasks, acceptance criteria, and wave ordering.
|
|
53
36
|
|
|
54
|
-
Wait for the planner to complete. Verify
|
|
37
|
+
Wait for the planner to complete. Verify at least one plan file exists.
|
|
55
38
|
|
|
56
|
-
## Step
|
|
39
|
+
## Step 3: Validate Plans (if enabled)
|
|
57
40
|
|
|
58
41
|
If `config.toml` `features.plan_checker = true`:
|
|
59
42
|
|
|
@@ -67,66 +50,7 @@ If the checker reports issues that it could not fix:
|
|
|
67
50
|
- Re-run the **konductor-plan-checker**
|
|
68
51
|
- Maximum 3 iterations. If still unresolved, report to user.
|
|
69
52
|
|
|
70
|
-
## Step
|
|
71
|
-
|
|
72
|
-
If `config.toml` `features.design_review = true`:
|
|
73
|
-
|
|
74
|
-
Use the **konductor-design-reviewer** agent to review the technical design. Provide it with:
|
|
75
|
-
- `.konductor/phases/{phase}/design.md`
|
|
76
|
-
- All plan files in `.konductor/phases/{phase}/plans/`
|
|
77
|
-
- `.konductor/requirements.md`
|
|
78
|
-
- `.konductor/roadmap.md` (phase goal and success criteria)
|
|
79
|
-
- `.konductor/project.md` (tech stack and constraints)
|
|
80
|
-
- Instructions: analyze the phase design and per-plan Design sections, then write a structured review to `.konductor/phases/{phase}/review.md`
|
|
81
|
-
|
|
82
|
-
**Review criteria the agent must evaluate:**
|
|
83
|
-
1. Architectural soundness of design.md — do the components and interactions make sense?
|
|
84
|
-
2. Feasibility of per-plan Design sections — are the proposed interfaces and approaches realistic?
|
|
85
|
-
3. Cross-plan consistency — do shared interfaces match across plans that depend on each other?
|
|
86
|
-
4. Requirement coverage — every REQ-XX for this phase is addressed
|
|
87
|
-
5. Risk identification — missing error handling, security concerns, dependency issues
|
|
88
|
-
|
|
89
|
-
**Review output format** (written to `.konductor/phases/{phase}/review.md`):
|
|
90
|
-
```markdown
|
|
91
|
-
# Design Review: Phase {phase}
|
|
92
|
-
|
|
93
|
-
## Summary
|
|
94
|
-
{one paragraph overall assessment}
|
|
95
|
-
|
|
96
|
-
## Verdict: {pass | revise | reject}
|
|
97
|
-
|
|
98
|
-
## Issues
|
|
99
|
-
|
|
100
|
-
### Issue 1: {title}
|
|
101
|
-
- **Severity:** critical | warning | info
|
|
102
|
-
- **Affected plan:** {plan number or "design.md"}
|
|
103
|
-
- **Description:** {what's wrong}
|
|
104
|
-
- **Suggestion:** {how to fix}
|
|
105
|
-
|
|
106
|
-
## Strengths
|
|
107
|
-
{what the design does well}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Wait for the reviewer to complete. Verify `review.md` was created.
|
|
111
|
-
|
|
112
|
-
**If verdict is "pass":** Proceed to Step 6.
|
|
113
|
-
|
|
114
|
-
**If verdict is "revise"** (has critical or warning issues):
|
|
115
|
-
1. Spawn a new **konductor-planner** agent with the review feedback as additional context
|
|
116
|
-
2. Instruct it to revise `design.md` and the affected plans in-place
|
|
117
|
-
3. Re-run the **konductor-design-reviewer**
|
|
118
|
-
4. Maximum 2 review-revise iterations. If still "revise" after 2 iterations, proceed to user approval with warnings noted.
|
|
119
|
-
|
|
120
|
-
**If verdict is "reject":** Stop. Do not advance state. Tell the user:
|
|
121
|
-
> "Design rejected by reviewer. See `.konductor/phases/{phase}/review.md` for details. Fix the fundamental issues and re-run planning."
|
|
122
|
-
|
|
123
|
-
**Present the review summary to the user.** Ask:
|
|
124
|
-
> "Approve plans for execution? (approve / reject)"
|
|
125
|
-
|
|
126
|
-
- **On approve:** Proceed to Step 6.
|
|
127
|
-
- **On reject:** Stop. Do not advance state. Tell the user: "Plans not approved. Edit the plans in `.konductor/phases/{phase}/plans/` or re-run planning."
|
|
128
|
-
|
|
129
|
-
## Step 6: Update State
|
|
53
|
+
## Step 4: Update State
|
|
130
54
|
|
|
131
55
|
Write `.konductor/.results/plan-{phase}.toml`:
|
|
132
56
|
```toml
|
|
@@ -137,14 +61,12 @@ timestamp = {current ISO timestamp}
|
|
|
137
61
|
plan_count = {number of plan files created}
|
|
138
62
|
```
|
|
139
63
|
|
|
140
|
-
|
|
141
|
-
- Call `state_transition` with `step = "planned"` to advance the pipeline
|
|
142
|
-
- The tool automatically updates status and timestamps
|
|
64
|
+
Call `state_transition` with `step = "planned"` to advance the pipeline.
|
|
143
65
|
|
|
144
66
|
Tell the user:
|
|
145
67
|
- How many plans were created
|
|
146
68
|
- How many waves
|
|
147
|
-
- Suggest: "Say 'next' to
|
|
69
|
+
- Suggest: "Say 'next' to review the design and plans, or inspect them in `.konductor/phases/{phase}/plans/`"
|
|
148
70
|
|
|
149
71
|
## Error Handling
|
|
150
72
|
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: konductor-review
|
|
3
|
+
description: Review design and plans before execution. Use when the user says review, check design, review plans, or approve.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Konductor Review — Design & Plan Review
|
|
7
|
+
|
|
8
|
+
You are the Konductor orchestrator. Review the design and plans for a phase before execution.
|
|
9
|
+
|
|
10
|
+
## Critical Rules
|
|
11
|
+
|
|
12
|
+
1. **Only YOU manage state transitions** — use the MCP tools (`state_get`, `state_add_blocker`) instead of writing `state.toml` directly.
|
|
13
|
+
2. **Read config via MCP** — call `config_get` to get feature flags (design_review).
|
|
14
|
+
3. **Accept a phase argument** — the user may say "review phase 01". Resolve short form by scanning `.konductor/phases/` directories.
|
|
15
|
+
|
|
16
|
+
## Step 1: Validate State
|
|
17
|
+
|
|
18
|
+
Call the `state_get` MCP tool to read current state.
|
|
19
|
+
|
|
20
|
+
Validate that `current.step` is `"planned"`. If not, tell the user:
|
|
21
|
+
> "Phase {phase} is not ready for review. Current step: {step}. Run 'plan' first."
|
|
22
|
+
Then stop.
|
|
23
|
+
|
|
24
|
+
## Step 2: Design Review (if enabled)
|
|
25
|
+
|
|
26
|
+
If `config.toml` `features.design_review = true`:
|
|
27
|
+
|
|
28
|
+
Use the **konductor-design-reviewer** agent to review the technical design. Provide it with:
|
|
29
|
+
- `.konductor/phases/{phase}/design.md`
|
|
30
|
+
- All plan files in `.konductor/phases/{phase}/plans/`
|
|
31
|
+
- `.konductor/requirements.md`
|
|
32
|
+
- `.konductor/roadmap.md` (phase goal and success criteria)
|
|
33
|
+
- `.konductor/project.md` (tech stack and constraints)
|
|
34
|
+
- Instructions: analyze the phase design and per-plan Design sections, then write a structured review to `.konductor/phases/{phase}/review.md`
|
|
35
|
+
|
|
36
|
+
**Review criteria the agent must evaluate:**
|
|
37
|
+
1. Architectural soundness of design.md — do the components and interactions make sense?
|
|
38
|
+
2. Feasibility of per-plan Design sections — are the proposed interfaces and approaches realistic?
|
|
39
|
+
3. Cross-plan consistency — do shared interfaces match across plans that depend on each other?
|
|
40
|
+
4. Requirement coverage — every REQ-XX for this phase is addressed
|
|
41
|
+
5. Risk identification — missing error handling, security concerns, dependency issues
|
|
42
|
+
|
|
43
|
+
**Review output format** (written to `.konductor/phases/{phase}/review.md`):
|
|
44
|
+
```markdown
|
|
45
|
+
# Design Review: Phase {phase}
|
|
46
|
+
|
|
47
|
+
## Summary
|
|
48
|
+
{one paragraph overall assessment}
|
|
49
|
+
|
|
50
|
+
## Verdict: {pass | revise | reject}
|
|
51
|
+
|
|
52
|
+
## Issues
|
|
53
|
+
|
|
54
|
+
### Issue 1: {title}
|
|
55
|
+
- **Severity:** critical | warning | info
|
|
56
|
+
- **Affected plan:** {plan number or "design.md"}
|
|
57
|
+
- **Description:** {what's wrong}
|
|
58
|
+
- **Suggestion:** {how to fix}
|
|
59
|
+
|
|
60
|
+
## Strengths
|
|
61
|
+
{what the design does well}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Wait for the reviewer to complete. Verify `review.md` was created.
|
|
65
|
+
|
|
66
|
+
**If verdict is "pass":** Proceed to Step 3.
|
|
67
|
+
|
|
68
|
+
**If verdict is "revise"** (has critical or warning issues):
|
|
69
|
+
1. Spawn a new **konductor-planner** agent with the review feedback as additional context
|
|
70
|
+
2. Instruct it to revise `design.md` and the affected plans in-place
|
|
71
|
+
3. Re-run the **konductor-design-reviewer**
|
|
72
|
+
4. Maximum 2 review-revise iterations. If still "revise" after 2 iterations, proceed to user approval with warnings noted.
|
|
73
|
+
|
|
74
|
+
**If verdict is "reject":** Stop. Tell the user:
|
|
75
|
+
> "Design rejected by reviewer. See `.konductor/phases/{phase}/review.md` for details. Fix the fundamental issues and re-run design."
|
|
76
|
+
|
|
77
|
+
## Step 3: User Approval
|
|
78
|
+
|
|
79
|
+
Present the review summary to the user. Ask:
|
|
80
|
+
> "Approve plans for execution? (approve / reject)"
|
|
81
|
+
|
|
82
|
+
- **On approve:** Tell the user: "Plans approved. Say 'next' to execute, or 'exec' to start execution."
|
|
83
|
+
- **On reject:** Tell the user: "Plans not approved. Edit the plans in `.konductor/phases/{phase}/plans/` or re-run design."
|
|
84
|
+
|
|
85
|
+
If `features.design_review = false`: skip the automated review and go straight to user approval, presenting a summary of the plans instead.
|
|
86
|
+
|
|
87
|
+
## Error Handling
|
|
88
|
+
|
|
89
|
+
If the reviewer subagent fails:
|
|
90
|
+
1. Call `state_add_blocker` MCP tool with the phase and reason for the failure
|
|
91
|
+
2. Report failure to user with actionable context
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: konductor-
|
|
3
|
-
description:
|
|
2
|
+
name: konductor-spec
|
|
3
|
+
description: Define project requirements and generate spec documents. Use when the user says spec, define requirements, new project, start project, set up konductor, or bootstrap.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Konductor
|
|
6
|
+
# Konductor Spec — Project Requirements
|
|
7
7
|
|
|
8
|
-
You are the Konductor orchestrator.
|
|
8
|
+
You are the Konductor orchestrator. Define project requirements and generate spec documents.
|
|
9
9
|
|
|
10
10
|
## Step 1: Check Existing State
|
|
11
11
|
|
|
12
12
|
Check if `.konductor/` directory already exists.
|
|
13
13
|
- If it exists, call the `state_get` MCP tool. If it returns valid state:
|
|
14
|
-
- If `current.step` is `"shipped"`: ask the user: "Project is shipped. Do you want to (a) add a new phase to the existing project, or (b)
|
|
14
|
+
- If `current.step` is `"shipped"`: ask the user: "Project is shipped. Do you want to (a) add a new phase to the existing project, or (b) re-spec from scratch?"
|
|
15
15
|
- If (a): ask for the new phase name. Read `.konductor/roadmap.md` to determine the updated `phases_total`. Call the `state_advance_phase` MCP tool with the new phase identifier and updated phases_total. Skip to Step 8 (report success).
|
|
16
|
-
- If (b): proceed with normal
|
|
17
|
-
- Otherwise: warn the user: "A Konductor project already exists here.
|
|
16
|
+
- If (b): proceed with normal re-spec below.
|
|
17
|
+
- Otherwise: warn the user: "A Konductor project already exists here. Re-speccing will overwrite project.md, requirements.md, and roadmap.md. Proceed? (y/n)"
|
|
18
18
|
- If user declines, stop.
|
|
19
19
|
|
|
20
20
|
## Step 2: Create Directory Structure
|
|
@@ -64,7 +64,7 @@ Call the `state_init` MCP tool with:
|
|
|
64
64
|
- `phase`: the first phase identifier from the roadmap
|
|
65
65
|
- `phases_total`: the total number of phases from the roadmap
|
|
66
66
|
|
|
67
|
-
This creates `.konductor/state.toml` with
|
|
67
|
+
This creates `.konductor/state.toml` with step `specced`.
|
|
68
68
|
|
|
69
69
|
Call the `config_init` MCP tool to create `.konductor/config.toml` with defaults.
|
|
70
70
|
|
|
@@ -80,4 +80,4 @@ Create/update `.kiro/steering/` files:
|
|
|
80
80
|
Tell the user:
|
|
81
81
|
- How many phases were identified in the roadmap
|
|
82
82
|
- List the phase names
|
|
83
|
-
- Suggest: "Say 'next' to start
|
|
83
|
+
- Suggest: "Say 'next' to start designing phase 1, or 'discuss phase 01' to set preferences first."
|
|
@@ -19,7 +19,7 @@ Call the `status` MCP tool. This returns a structured JSON report with:
|
|
|
19
19
|
- `next_suggestion`
|
|
20
20
|
|
|
21
21
|
If the tool returns a `STATE_NOT_FOUND` error, tell the user:
|
|
22
|
-
> "No Konductor project found. Run '
|
|
22
|
+
> "No Konductor project found. Run 'spec' to initialize a project."
|
|
23
23
|
|
|
24
24
|
Then stop.
|
|
25
25
|
|
|
@@ -90,13 +90,14 @@ Last activity: {last_activity_relative} ({last_activity_absolute})
|
|
|
90
90
|
- · = pending
|
|
91
91
|
|
|
92
92
|
**Next step suggestions by current step:**
|
|
93
|
-
- `
|
|
94
|
-
- `discussed` → "Say 'next' to begin
|
|
93
|
+
- `specced` → "Say 'next' to start design, or 'discuss phase {n}' to set preferences first."
|
|
94
|
+
- `discussed` → "Say 'next' to begin designing phase {n}."
|
|
95
|
+
- `designed` → "Say 'next' to create execution plans."
|
|
95
96
|
- `planned` → "Say 'exec' to execute the plans."
|
|
96
97
|
- `executing` → "Execution in progress. Wait for completion or check logs."
|
|
97
98
|
- `executed` → "Say 'next' to verify the phase."
|
|
98
99
|
- `complete` → "Phase {n} complete. Say 'next' to move to phase {n+1}."
|
|
99
|
-
- `shipped` → "All phases shipped. Add new phases to roadmap.md or say '
|
|
100
|
+
- `shipped` → "All phases shipped. Add new phases to roadmap.md or say 'spec' to start a new project."
|
|
100
101
|
- `blocked` → "Resolve the blocker with `state_resolve_blocker`, then say 'next'."
|
|
101
102
|
|
|
102
103
|
## Error Handling
|
|
@@ -104,7 +105,7 @@ Last activity: {last_activity_relative} ({last_activity_absolute})
|
|
|
104
105
|
**Missing state files:**
|
|
105
106
|
If the `status` tool returns an error:
|
|
106
107
|
1. Report the error
|
|
107
|
-
2. Suggest running `
|
|
108
|
+
2. Suggest running `spec` to re-spec (warn about overwriting)
|
|
108
109
|
|
|
109
110
|
**Empty results directory:**
|
|
110
111
|
If `.konductor/.results/` is empty, that's normal for newly initialized projects — simply report no activity yet.
|
|
File without changes
|