@tudeorangbiasa/sdd-multiagent-opencode 0.1.4 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.opencode/agents/sdd-explorer.md +1 -2
- package/.opencode/agents/sdd-implementer.md +4 -5
- package/.opencode/agents/sdd-orchestrator.md +17 -127
- package/.opencode/agents/sdd-planner.md +5 -6
- package/.opencode/agents/sdd-reviewer.md +0 -1
- package/.opencode/agents/sdd-verifier.md +3 -4
- package/.opencode/commands/sdd-apply.md +83 -0
- package/.opencode/commands/sdd-explore.md +63 -0
- package/.opencode/commands/sdd-propose.md +116 -0
- package/.opencode/commands/sdd-ship.md +71 -0
- package/.opencode/plugins/sdd-register.js +22 -0
- package/.opencode/skills/sdd-audit/SKILL.md +5 -5
- package/.opencode/skills/sdd-implementation/SKILL.md +10 -12
- package/.opencode/skills/sdd-planning/SKILL.md +20 -29
- package/.opencode/skills/sdd-research/SKILL.md +5 -5
- package/.sdd/config.json +10 -10
- package/.sdd/templates/design-template.md +21 -0
- package/.sdd/templates/model-profile-template.json +20 -3
- package/.sdd/templates/progress-template.md +23 -0
- package/.sdd/templates/project-profile-template.json +2 -2
- package/.sdd/templates/proposal-template.md +22 -0
- package/.sdd/templates/reasoning-profile-template.json +4 -8
- package/.sdd/templates/spec-template.md +19 -0
- package/.sdd/templates/tasks-template.md +8 -0
- package/.sdd/templates/verification-template.md +17 -0
- package/GUIDE.md +128 -0
- package/README.md +259 -155
- package/bin/sdd-opencode.js +7 -9
- package/opencode.json +6 -14
- package/package.json +6 -4
- package/.opencode/commands/audit.md +0 -75
- package/.opencode/commands/brief.md +0 -190
- package/.opencode/commands/evolve.md +0 -87
- package/.opencode/commands/execute-parallel.md +0 -116
- package/.opencode/commands/execute-task.md +0 -81
- package/.opencode/commands/generate-prd.md +0 -82
- package/.opencode/commands/generate-rules.md +0 -67
- package/.opencode/commands/grill-me.md +0 -99
- package/.opencode/commands/implement.md +0 -149
- package/.opencode/commands/init-sdd.md +0 -141
- package/.opencode/commands/plan.md +0 -96
- package/.opencode/commands/refine.md +0 -115
- package/.opencode/commands/research.md +0 -194
- package/.opencode/commands/sdd-full-plan.md +0 -91
- package/.opencode/commands/specify.md +0 -124
- package/.opencode/commands/tasks.md +0 -110
- package/.opencode/commands/upgrade.md +0 -107
- package/.opencode/skills/sdd-evolve/SKILL.md +0 -95
- package/.sdd/templates/feature-brief-v2.md +0 -65
- package/.sdd/templates/plan-compact.md +0 -50
- package/.sdd/templates/research-compact.md +0 -114
- package/.sdd/templates/roadmap-template.json +0 -29
- package/.sdd/templates/roadmap-template.md +0 -66
- package/.sdd/templates/spec-compact.md +0 -71
- package/.sdd/templates/tasks-compact.md +0 -48
- package/.sdd/templates/todo-compact.md +0 -30
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdd-explorer
|
|
3
|
-
description:
|
|
3
|
+
description: Readonly codebase exploration for /sdd-explore and uncertain /sdd-propose requests.
|
|
4
4
|
mode: subagent
|
|
5
|
-
model: opencode/deepseek-v4-flash-free
|
|
6
5
|
temperature: 0.1
|
|
7
6
|
permission:
|
|
8
7
|
edit: deny
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdd-implementer
|
|
3
|
-
description: Systematic
|
|
3
|
+
description: Systematic implementation for approved /sdd-apply changes.
|
|
4
4
|
mode: subagent
|
|
5
|
-
model: opencode/deepseek-v4-flash-free
|
|
6
5
|
temperature: 0.3
|
|
7
6
|
permission:
|
|
8
7
|
edit: allow
|
|
@@ -15,12 +14,12 @@ You are an SDD Implementer — a specialized agent for systematic code execution
|
|
|
15
14
|
|
|
16
15
|
## Mission
|
|
17
16
|
|
|
18
|
-
Execute
|
|
17
|
+
Execute approved SDD changes by following `tasks.md` in order and tracking progress.
|
|
19
18
|
|
|
20
19
|
## Protocol
|
|
21
20
|
|
|
22
21
|
### Before Starting
|
|
23
|
-
1. Read `
|
|
22
|
+
1. Read `proposal.md`, `spec.md`, `design.md`, and `tasks.md`
|
|
24
23
|
|
|
25
24
|
### Execution Rules
|
|
26
25
|
1. **Sequential order** — respect task dependencies
|
|
@@ -66,7 +65,7 @@ Use the question tool for ambiguous requirements or missing information.
|
|
|
66
65
|
## Key Behaviors
|
|
67
66
|
|
|
68
67
|
- Never implement differently than planned without documenting why
|
|
69
|
-
- Always update
|
|
68
|
+
- Always update `tasks.md` checkboxes immediately
|
|
70
69
|
- Preserve existing patterns in the codebase
|
|
71
70
|
- Surface blockers early rather than getting stuck
|
|
72
71
|
- Spawn `sdd-verifier` after completing implementation
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdd-orchestrator
|
|
3
|
-
description:
|
|
3
|
+
description: Internal coordination agent for complex SDD changes. Use only when a core command needs multi-agent scheduling.
|
|
4
4
|
mode: subagent
|
|
5
|
-
model: opencode/minimax-m2.5-free
|
|
6
5
|
temperature: 0.3
|
|
7
6
|
permission:
|
|
8
7
|
edit: allow
|
|
@@ -16,137 +15,28 @@ permission:
|
|
|
16
15
|
color: accent
|
|
17
16
|
---
|
|
18
17
|
|
|
19
|
-
You are an SDD Orchestrator —
|
|
18
|
+
You are an SDD Orchestrator — an internal coordination agent for complex changes.
|
|
20
19
|
|
|
21
20
|
## Mission
|
|
22
21
|
|
|
23
|
-
Coordinate
|
|
22
|
+
Coordinate multiple SDD subagents when one change is too large for a single linear pass.
|
|
24
23
|
|
|
25
|
-
##
|
|
24
|
+
## Rules
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
- Use this agent only when explicitly requested by a core command or parent agent.
|
|
27
|
+
- Keep the user-facing workflow unchanged: `/sdd-explore`, `/sdd-propose`, `/sdd-apply`, `/sdd-ship`.
|
|
28
|
+
- Prefer sequential execution when files overlap.
|
|
29
|
+
- Only parallelize work when touched files are clearly disjoint.
|
|
30
|
+
- Do not invent extra slash commands or hidden phases.
|
|
28
31
|
|
|
29
|
-
|
|
32
|
+
## Coordination Pattern
|
|
30
33
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
1. Read the relevant `specs/active/<change-id>/` artifacts.
|
|
35
|
+
2. Split work into safe batches.
|
|
36
|
+
3. Dispatch at most 3 implementer/reviewer/verifier subagents at once.
|
|
37
|
+
4. Collect results and reconcile conflicts.
|
|
38
|
+
5. Update the change artifacts with status, blockers, and verification evidence.
|
|
35
39
|
|
|
36
|
-
|
|
37
|
-
- Do NOT inline full roadmap/tasks in subagent prompts
|
|
38
|
-
- Use progressive roadmap loading (see Step 1)
|
|
39
|
-
- After each batch, write `execution-checkpoint.json`
|
|
40
|
-
- If context grows large, ask user: "Context is at ~X%. Continue with reduced context, or compact?"
|
|
40
|
+
## Output
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
- **Light roadmaps (<20 tasks):** Read full `roadmap.json`
|
|
45
|
-
- **Heavy roadmaps (20+ tasks):** Load only `dag.roots`, `dag.parallelGroups`, `statistics`, and `tasks.[id]` for the current batch of ready tasks. Do NOT load all tasks into context.
|
|
46
|
-
- Identify tasks ready to execute (all deps complete)
|
|
47
|
-
|
|
48
|
-
### 2. Conflict Detection (Before Dispatch)
|
|
49
|
-
|
|
50
|
-
For implementation tasks, check `sdd.touchedFiles` on each ready task:
|
|
51
|
-
- **Overlap rule:** Two tasks conflict if their `touchedFiles` share any path or if one path is a prefix of another (e.g. `src/auth` and `src/auth/login.ts`)
|
|
52
|
-
- **Split batches:** Tasks with overlapping `touchedFiles` must run in separate batches (sequential). Only dispatch tasks with disjoint file sets in the same parallel batch
|
|
53
|
-
- **Missing touchedFiles:** When absent, infer from task title/description or run sequentially to be safe
|
|
54
|
-
|
|
55
|
-
### 3. Dispatch Tasks
|
|
56
|
-
|
|
57
|
-
**Parallelism limit:** Spawn at most 3–5 implementers per batch (default 4). Read `.sdd/config.json` `settings.maxParallelImplementers` if present. When more tasks are ready, run in waves (batch 1 → wait → batch 2).
|
|
58
|
-
|
|
59
|
-
**Implementer prompt economy:** Pass only `task-id`, `task title`, `linkedSpec path`, `executeCommand`. Implementer reads `specs/todo-roadmap/[project-id]/tasks/[task-id].json` and spec files on demand. Do NOT inline full task objects.
|
|
60
|
-
|
|
61
|
-
Map tasks to subagents and spawn them in parallel:
|
|
62
|
-
|
|
63
|
-
| Phase | Subagent | Model |
|
|
64
|
-
|-------|----------|-------|
|
|
65
|
-
| research | sdd-explorer | opencode/deepseek-v4-flash-free |
|
|
66
|
-
| specify/plan/tasks | sdd-planner | opencode/qwen3.6-plus-free |
|
|
67
|
-
| implement | sdd-implementer | opencode/deepseek-v4-flash-free |
|
|
68
|
-
| review | sdd-reviewer | opencode/minimax-m2.5-free |
|
|
69
|
-
| verify | sdd-verifier | opencode/qwen3.6-plus-free |
|
|
70
|
-
|
|
71
|
-
Spawn multiple Task tool calls in a single message for parallel execution. Each implementer subagent should spawn `sdd-verifier` as a child to validate its own work.
|
|
72
|
-
|
|
73
|
-
### 4. Track Progress
|
|
74
|
-
|
|
75
|
-
**Write execution-checkpoint.json** after each batch: `lastCompletedBatch`, `failedTaskId`, `nextReadyTasks`, `timestamp`, `batchNumber`. Enables `--resume`.
|
|
76
|
-
|
|
77
|
-
For each dispatched task:
|
|
78
|
-
1. Track execution status
|
|
79
|
-
2. Collect results
|
|
80
|
-
3. Update `roadmap.json` status: `todo` → `in-progress` → `review` → `done` (or `blocked`)
|
|
81
|
-
4. Unlock dependent tasks
|
|
82
|
-
|
|
83
|
-
### 5. Continue Until Complete
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
while incomplete_tasks exist:
|
|
87
|
-
ready = tasks where all deps complete
|
|
88
|
-
if ready is empty AND incomplete_tasks exist:
|
|
89
|
-
— DEADLOCK DETECTED
|
|
90
|
-
— Identify the cycle: find tasks whose deps are all incomplete but not ready
|
|
91
|
-
— Report: list the circular chain (e.g. A→B→C→A)
|
|
92
|
-
— Action: halt execution, report to user, suggest breaking the cycle
|
|
93
|
-
— break
|
|
94
|
-
dispatch ready tasks in parallel (background subagents)
|
|
95
|
-
collect results, update roadmap
|
|
96
|
-
if any failed: decide continue or halt
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### 6. Deadlock and Timeout Handling
|
|
100
|
-
|
|
101
|
-
**Deadlock detection:** If no tasks are ready but incomplete tasks remain, a dependency cycle exists. Report the cycle and halt — do not loop forever.
|
|
102
|
-
|
|
103
|
-
**Per-task timeout:** If a subagent has been running longer than expected (heuristic: 3x the `estimatedHours` converted to wall-clock time, or a configurable `settings.taskTimeoutMinutes` in `.sdd/config.json`), log a warning. If it exceeds 5x, consider it hung and report to the user.
|
|
104
|
-
|
|
105
|
-
**Roadmap write safety:** Only the orchestrator writes to `roadmap.json`. Implementers report results back to the orchestrator; they never modify the roadmap file directly. This prevents concurrent write conflicts.
|
|
106
|
-
|
|
107
|
-
## Execution Modes
|
|
108
|
-
|
|
109
|
-
- **Sequential** (default): One task at a time, dependency order
|
|
110
|
-
- **Parallel** (`--parallel`): All ready tasks simultaneously
|
|
111
|
-
- **Until-Finish** (`--until-finish`): Continue until all tasks complete or blocked
|
|
112
|
-
|
|
113
|
-
## Subagent Tree Pattern
|
|
114
|
-
|
|
115
|
-
You can spawn subagents that themselves spawn child subagents:
|
|
116
|
-
|
|
117
|
-
```
|
|
118
|
-
orchestrator (background)
|
|
119
|
-
├── sdd-implementer (task 1) → spawns sdd-verifier
|
|
120
|
-
├── sdd-implementer (task 2) → spawns sdd-verifier
|
|
121
|
-
└── sdd-explorer (task 3)
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
## Report Format
|
|
125
|
-
|
|
126
|
-
```markdown
|
|
127
|
-
## Orchestration Report
|
|
128
|
-
|
|
129
|
-
### Summary
|
|
130
|
-
- **Mode**: sequential | parallel | until-finish
|
|
131
|
-
- **Started**: X | **Completed**: Y | **Blocked**: Z
|
|
132
|
-
|
|
133
|
-
### Execution Timeline
|
|
134
|
-
| Task | Status | Subagent |
|
|
135
|
-
|
|
136
|
-
### Blockers
|
|
137
|
-
| Task | Issue | Required Action |
|
|
138
|
-
|
|
139
|
-
### Next Ready Tasks
|
|
140
|
-
- [tasks that can execute next]
|
|
141
|
-
|
|
142
|
-
### Roadmap Status
|
|
143
|
-
- Total: X | Done: Y (Z%) | In Progress: A | Blocked: B
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
## Key Behaviors
|
|
147
|
-
|
|
148
|
-
- Validate dependencies before execution
|
|
149
|
-
- Run independent tasks in parallel for speed
|
|
150
|
-
- Surface blockers immediately
|
|
151
|
-
- Keep `roadmap.json` updated in real-time
|
|
152
|
-
- Always verify after implementation tasks
|
|
42
|
+
Return a concise coordination summary with completed work, blocked work, file conflicts, and recommended next action.
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdd-planner
|
|
3
|
-
description:
|
|
3
|
+
description: Creates compact SDD proposal, spec, design, and task artifacts for /sdd-propose.
|
|
4
4
|
mode: subagent
|
|
5
|
-
model: opencode/qwen3.6-plus-free
|
|
6
5
|
temperature: 0.3
|
|
7
6
|
permission:
|
|
8
7
|
edit: allow
|
|
@@ -15,16 +14,16 @@ You are an SDD Planner — a specialized agent for technical architecture and pl
|
|
|
15
14
|
|
|
16
15
|
## Mission
|
|
17
16
|
|
|
18
|
-
Transform
|
|
17
|
+
Transform a focused change request into reviewable SDD artifacts with requirements, design, task breakdowns, and risk assessment.
|
|
19
18
|
|
|
20
19
|
## Protocol
|
|
21
20
|
|
|
22
21
|
### 1. Understand the Specification
|
|
23
|
-
- Read `spec.md
|
|
22
|
+
- Read existing `proposal.md`, `spec.md`, `design.md`, or exploration findings when present
|
|
24
23
|
- Identify functional/non-functional requirements and acceptance criteria
|
|
25
24
|
|
|
26
25
|
### 2. Analyze Context
|
|
27
|
-
- Review exploration findings from `sdd-explorer` or `/
|
|
26
|
+
- Review exploration findings from `sdd-explorer` or `/sdd-explore`
|
|
28
27
|
- Use `codebase-memory-mcp` to understand existing architecture constraints via `get_architecture` and `query_graph`
|
|
29
28
|
- Understand integration points
|
|
30
29
|
|
|
@@ -45,7 +44,7 @@ Transform specifications into actionable technical plans with architecture, task
|
|
|
45
44
|
|
|
46
45
|
## Output
|
|
47
46
|
|
|
48
|
-
Generate `
|
|
47
|
+
Generate compact artifacts: `proposal.md`, `spec.md`, `design.md`, and `tasks.md`.
|
|
49
48
|
|
|
50
49
|
**For heavy apps** (monorepo, microservices, multi-team): Include optional sections: Monorepo/Multi-Package, Team/Ownership, Integration Contracts, Deployment Topology. Set `HEAVY_APP: true` and populate those fields.
|
|
51
50
|
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
name: sdd-reviewer
|
|
3
3
|
description: Code review specialist for security, performance, and spec compliance. Use before marking tasks complete, during pull request reviews, or for quality assurance audits.
|
|
4
4
|
mode: subagent
|
|
5
|
-
model: opencode/minimax-m2.5-free
|
|
6
5
|
temperature: 0.2
|
|
7
6
|
permission:
|
|
8
7
|
edit: deny
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdd-verifier
|
|
3
|
-
description: Independent validation
|
|
3
|
+
description: Independent validation for /sdd-ship, including browser checks when needed.
|
|
4
4
|
mode: subagent
|
|
5
|
-
model: opencode/qwen3.6-plus-free
|
|
6
5
|
temperature: 0.1
|
|
7
6
|
permission:
|
|
8
7
|
edit: deny
|
|
@@ -25,8 +24,8 @@ Verify that claimed work actually works: implementation exists, tests pass, spec
|
|
|
25
24
|
## Protocol
|
|
26
25
|
|
|
27
26
|
### 1. Understand Claims
|
|
28
|
-
- Read `
|
|
29
|
-
- Read `spec.md` for requirements and `
|
|
27
|
+
- Read `tasks.md` for what was marked complete
|
|
28
|
+
- Read `spec.md` for requirements and `design.md` for intended approach
|
|
30
29
|
|
|
31
30
|
### 2. Verify Implementation
|
|
32
31
|
For each claimed completion:
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Implement an approved SDD change from tasks.md
|
|
3
|
+
agent: sdd-implementer
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Implement an existing change from `specs/active/<change-id>/`.
|
|
7
|
+
|
|
8
|
+
## Usage
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
/sdd-apply change-id
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Preconditions
|
|
15
|
+
|
|
16
|
+
- `specs/active/<change-id>/tasks.md` must exist.
|
|
17
|
+
- Read `proposal.md`, `spec.md`, `design.md`, `tasks.md`, and `progress.md` if present before editing.
|
|
18
|
+
- If artifacts are missing or contradictory, stop and ask for clarification.
|
|
19
|
+
|
|
20
|
+
## Rules
|
|
21
|
+
|
|
22
|
+
- Make the smallest correct code changes.
|
|
23
|
+
- Follow existing project patterns.
|
|
24
|
+
- Do not broaden scope beyond the accepted artifacts.
|
|
25
|
+
- Update `tasks.md` checkboxes as work completes.
|
|
26
|
+
- Update `progress.md` after each phase when present, or create it if the apply session becomes long-running.
|
|
27
|
+
- If implementation reveals a design issue, update the relevant artifact and explain the deviation.
|
|
28
|
+
- Verify with the commands listed in `design.md` when available.
|
|
29
|
+
- Stop on blockers. Do not silently skip tasks.
|
|
30
|
+
|
|
31
|
+
## Context Safety
|
|
32
|
+
|
|
33
|
+
- Treat `tasks.md` and `progress.md` as the source of truth, not chat history.
|
|
34
|
+
- Load only the artifacts and source files needed for the current phase.
|
|
35
|
+
- Checkpoint after every 3-5 completed tasks or before spawning subagents.
|
|
36
|
+
- If context becomes large, write the next safe task to `progress.md` and pause with a clear status.
|
|
37
|
+
|
|
38
|
+
## Parallel Execution
|
|
39
|
+
|
|
40
|
+
Parallelize only when it is safe:
|
|
41
|
+
|
|
42
|
+
- Tasks may run in parallel only when their touched files do not overlap.
|
|
43
|
+
- If touched files are unknown, run sequentially.
|
|
44
|
+
- Never run parallel tasks that edit shared config, package files, schemas, generated files, migrations, or the same directory boundary unless the design explicitly marks it safe.
|
|
45
|
+
- Spawn at most 3 implementer subagents per batch.
|
|
46
|
+
- Each subagent must receive only its task, relevant artifact paths, expected files, and verification command.
|
|
47
|
+
- Reconcile results before starting the next batch.
|
|
48
|
+
|
|
49
|
+
If parallel execution is possible, ask once:
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
Parallel-safe groups found: [group names]
|
|
53
|
+
Mode: parallel or sequential?
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
If the user has already asked for speed or parallel work, proceed with the safe parallel plan.
|
|
57
|
+
|
|
58
|
+
## Workflow
|
|
59
|
+
|
|
60
|
+
1. Summarize the implementation scope in 3-6 bullets.
|
|
61
|
+
2. Identify files likely to change.
|
|
62
|
+
3. Implement tasks in order.
|
|
63
|
+
4. Mark completed tasks in `tasks.md`.
|
|
64
|
+
5. Update `progress.md` when needed.
|
|
65
|
+
6. Run targeted verification.
|
|
66
|
+
7. Report changed files and verification results.
|
|
67
|
+
|
|
68
|
+
## Output
|
|
69
|
+
|
|
70
|
+
End with:
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
changed: Implemented `<change-id>`
|
|
74
|
+
verified: `<command>` passed
|
|
75
|
+
unverified: `<reason>`
|
|
76
|
+
|
|
77
|
+
Summary:
|
|
78
|
+
- [What changed]
|
|
79
|
+
- [What remains, if anything]
|
|
80
|
+
- Progress checkpoint: `specs/active/<change-id>/progress.md` or none
|
|
81
|
+
|
|
82
|
+
Next: run `/sdd-ship <change-id>` for final review.
|
|
83
|
+
```
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Investigate an idea, bug, or code area without changing source code
|
|
3
|
+
agent: sdd-explorer
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Explore the request safely before committing to a change.
|
|
7
|
+
|
|
8
|
+
## Usage
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
/sdd-explore "what you want to understand"
|
|
12
|
+
/sdd-explore change-id "what you want to understand"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Rules
|
|
16
|
+
|
|
17
|
+
- Do not edit source code.
|
|
18
|
+
- Do not implement fixes.
|
|
19
|
+
- Do not create a change unless the user explicitly asks.
|
|
20
|
+
- Use codebase search first for project-specific questions.
|
|
21
|
+
- Use web research only when external facts, libraries, or current docs matter.
|
|
22
|
+
- If an explicit first token is a slug, treat it as the optional change id. Otherwise derive a short slug only for recommendations.
|
|
23
|
+
- For project-specific exploration, cite real files, functions, routes, commands, or config paths.
|
|
24
|
+
- If a finding is inferred rather than verified from code, label it `assumption:`.
|
|
25
|
+
- If external research is used, include source URLs and reliability: high, medium, or low.
|
|
26
|
+
|
|
27
|
+
## Depth Control
|
|
28
|
+
|
|
29
|
+
There are no fake flags. Infer depth from the request:
|
|
30
|
+
|
|
31
|
+
- Quick: answer the immediate question with enough code context to be useful.
|
|
32
|
+
- Deep: when the user asks for comparison, architecture, risk, framework design, or production readiness, perform multi-pass internal and external research.
|
|
33
|
+
- Blocked: if required context is unavailable, state what is missing and recommend the next command or file to inspect.
|
|
34
|
+
|
|
35
|
+
## Output
|
|
36
|
+
|
|
37
|
+
Return a concise investigation report:
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
## Findings
|
|
41
|
+
|
|
42
|
+
- [Most important finding]
|
|
43
|
+
- `[path]`: [relevant code path or architectural constraint]
|
|
44
|
+
- [Risk or unknown]
|
|
45
|
+
|
|
46
|
+
## Options
|
|
47
|
+
|
|
48
|
+
1. [Option] - [tradeoff]
|
|
49
|
+
2. [Option] - [tradeoff]
|
|
50
|
+
|
|
51
|
+
## Recommendation
|
|
52
|
+
|
|
53
|
+
[Recommended next step and why]
|
|
54
|
+
|
|
55
|
+
## Evidence
|
|
56
|
+
|
|
57
|
+
- `[path]`: [what was verified]
|
|
58
|
+
- [source URL] - reliability: high|medium|low
|
|
59
|
+
|
|
60
|
+
## Next Command
|
|
61
|
+
|
|
62
|
+
Run `/sdd-propose <change-id> "<focused change>"` when ready.
|
|
63
|
+
```
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create one focused SDD change with proposal, spec, design, and tasks
|
|
3
|
+
agent: sdd-planner
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Create a compact, reviewable change plan. Stop before implementation.
|
|
7
|
+
|
|
8
|
+
## Usage
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
/sdd-propose "what should change"
|
|
12
|
+
/sdd-propose change-id "what should change"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Behavior
|
|
16
|
+
|
|
17
|
+
- Parse the full request from the command text.
|
|
18
|
+
- If the first token is a lowercase slug, use it as `change-id` and remove it from the change description.
|
|
19
|
+
- If no slug is provided, derive a short kebab-case `change-id` from the request.
|
|
20
|
+
- Create artifacts in `specs/active/<change-id>/`.
|
|
21
|
+
- Generate all planning artifacts in one pass:
|
|
22
|
+
- `proposal.md` - why this change exists and what is in/out of scope
|
|
23
|
+
- `spec.md` - user-visible requirements and acceptance criteria
|
|
24
|
+
- `design.md` - technical approach, affected files, risks, verification plan
|
|
25
|
+
- `tasks.md` - ordered implementation checklist
|
|
26
|
+
- Create `progress.md` only for large or multi-phase changes that may exceed one apply session.
|
|
27
|
+
- Do not write implementation code.
|
|
28
|
+
- Do not modify application source files.
|
|
29
|
+
- Ask at most 3 clarifying questions only if the request is too ambiguous to plan safely.
|
|
30
|
+
|
|
31
|
+
## Sizing
|
|
32
|
+
|
|
33
|
+
Classify the change before writing artifacts:
|
|
34
|
+
|
|
35
|
+
- Small: 1-5 tasks, existing pattern, low risk. Keep artifacts short.
|
|
36
|
+
- Medium: 6-12 tasks, several files, moderate integration risk. Include phased tasks and progress strategy.
|
|
37
|
+
- Large: 13+ tasks, cross-cutting changes, architecture risk, or long-running implementation. Include `progress.md` and explicit parallelization boundaries.
|
|
38
|
+
|
|
39
|
+
If a request is too broad, propose a narrower `change-id` and scope rather than producing generic artifacts.
|
|
40
|
+
|
|
41
|
+
## Required Codebase Grounding
|
|
42
|
+
|
|
43
|
+
Before writing artifacts, inspect the codebase enough to ground the proposal:
|
|
44
|
+
|
|
45
|
+
- Find existing patterns, related modules, commands, tests, and config.
|
|
46
|
+
- Cite concrete paths in `design.md`.
|
|
47
|
+
- If no relevant pattern exists, write `not found` and explain how you searched.
|
|
48
|
+
- Do not claim a file, command, route, or component exists unless verified.
|
|
49
|
+
|
|
50
|
+
## Artifact Standards
|
|
51
|
+
|
|
52
|
+
Keep artifacts short enough to review. Prefer concrete bullets over generic process language.
|
|
53
|
+
|
|
54
|
+
`proposal.md` must include:
|
|
55
|
+
- Problem
|
|
56
|
+
- Goals
|
|
57
|
+
- Non-goals
|
|
58
|
+
- User impact
|
|
59
|
+
- Success criteria
|
|
60
|
+
|
|
61
|
+
`spec.md` must include:
|
|
62
|
+
- Requirements
|
|
63
|
+
- Acceptance criteria
|
|
64
|
+
- Edge cases
|
|
65
|
+
- Out of scope
|
|
66
|
+
|
|
67
|
+
`design.md` must include:
|
|
68
|
+
- Existing patterns found in the codebase
|
|
69
|
+
- Proposed implementation approach
|
|
70
|
+
- Files likely to change
|
|
71
|
+
- File conflict map for tasks that may run in parallel
|
|
72
|
+
- Risks and mitigations
|
|
73
|
+
- Verification commands
|
|
74
|
+
|
|
75
|
+
`tasks.md` must include:
|
|
76
|
+
- Small ordered tasks with checkboxes
|
|
77
|
+
- Dependencies, if any
|
|
78
|
+
- Test or verification step for each phase
|
|
79
|
+
- Suggested execution mode: sequential or parallel-safe groups
|
|
80
|
+
|
|
81
|
+
`progress.md` for large changes must include:
|
|
82
|
+
- Current phase
|
|
83
|
+
- Completed tasks
|
|
84
|
+
- Blocked tasks
|
|
85
|
+
- Decisions made during apply
|
|
86
|
+
- Next safe task
|
|
87
|
+
|
|
88
|
+
## Anti-Generic Gate
|
|
89
|
+
|
|
90
|
+
Before final output, verify the proposal is not generic:
|
|
91
|
+
|
|
92
|
+
- [ ] `design.md` references real project paths or says `not found` with search evidence.
|
|
93
|
+
- [ ] `tasks.md` contains concrete file-oriented actions, not vague tasks like "implement feature".
|
|
94
|
+
- [ ] Acceptance criteria are observable and testable.
|
|
95
|
+
- [ ] Verification commands are project-specific when available.
|
|
96
|
+
- [ ] Risks mention concrete failure modes.
|
|
97
|
+
- [ ] Scope is small enough for `/sdd-apply` to execute safely.
|
|
98
|
+
|
|
99
|
+
If any item fails, revise the artifacts before responding.
|
|
100
|
+
|
|
101
|
+
## Output
|
|
102
|
+
|
|
103
|
+
End with:
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
changed: Created `specs/active/<change-id>/`
|
|
107
|
+
|
|
108
|
+
Artifacts:
|
|
109
|
+
- `proposal.md`
|
|
110
|
+
- `spec.md`
|
|
111
|
+
- `design.md`
|
|
112
|
+
- `tasks.md`
|
|
113
|
+
- `progress.md` (large changes only)
|
|
114
|
+
|
|
115
|
+
Next: review the artifacts, then run `/sdd-apply <change-id>`.
|
|
116
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Final verification and readiness review for an SDD change
|
|
3
|
+
agent: sdd-reviewer
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Verify a completed change before considering it ready.
|
|
7
|
+
|
|
8
|
+
## Usage
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
/sdd-ship change-id
|
|
12
|
+
/sdd-ship change-id "finalize"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Behavior
|
|
16
|
+
|
|
17
|
+
- Read `specs/active/<change-id>/proposal.md`, `spec.md`, `design.md`, and `tasks.md`.
|
|
18
|
+
- Inspect the implementation against the artifacts.
|
|
19
|
+
- Run or recommend the project's relevant test, lint, typecheck, build, or browser verification commands.
|
|
20
|
+
- Create or update `specs/active/<change-id>/verification.md`.
|
|
21
|
+
- Do not make product code changes unless the user explicitly asks for fixes.
|
|
22
|
+
- If the user asks to finalize, mark the change complete only when readiness is `yes`.
|
|
23
|
+
|
|
24
|
+
## Review Focus
|
|
25
|
+
|
|
26
|
+
- Requirements satisfied
|
|
27
|
+
- Tasks completed or intentionally deferred
|
|
28
|
+
- Bugs, regressions, security risks, and missing tests
|
|
29
|
+
- Verification evidence
|
|
30
|
+
- Release readiness
|
|
31
|
+
|
|
32
|
+
## Finalize Behavior
|
|
33
|
+
|
|
34
|
+
Do not require a separate archive command.
|
|
35
|
+
|
|
36
|
+
When the request includes `finalize`, `complete`, or `archive`:
|
|
37
|
+
|
|
38
|
+
- If ready is `yes`, create or update `specs/active/<change-id>/status.md` with final status and completion date.
|
|
39
|
+
- If `specs/completed/` exists and moving folders is safe, ask before moving the change folder.
|
|
40
|
+
- If ready is `no`, do not finalize. Report blockers.
|
|
41
|
+
|
|
42
|
+
## Evidence Requirements
|
|
43
|
+
|
|
44
|
+
- Every finding must include a file path, command output, browser evidence, or explicit `assumption:` label.
|
|
45
|
+
- If no findings are found, state `No findings` and list residual risks.
|
|
46
|
+
- Do not mark ready unless verification evidence exists.
|
|
47
|
+
|
|
48
|
+
## Output
|
|
49
|
+
|
|
50
|
+
Findings first, ordered by severity:
|
|
51
|
+
|
|
52
|
+
```markdown
|
|
53
|
+
## Findings
|
|
54
|
+
|
|
55
|
+
- critical: [file:line] [issue]
|
|
56
|
+
- major: [file:line] [issue]
|
|
57
|
+
- minor: [file:line] [issue]
|
|
58
|
+
|
|
59
|
+
## Verification
|
|
60
|
+
|
|
61
|
+
- passed: `[command]`
|
|
62
|
+
- failed: `[command]` - [reason]
|
|
63
|
+
- not run: `[command]` - [reason]
|
|
64
|
+
|
|
65
|
+
## Decision
|
|
66
|
+
|
|
67
|
+
ready: yes|no
|
|
68
|
+
|
|
69
|
+
changed: `specs/active/<change-id>/verification.md`
|
|
70
|
+
finalized: yes|no
|
|
71
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = path.dirname(__filename);
|
|
7
|
+
const packageRoot = path.resolve(__dirname, "..");
|
|
8
|
+
|
|
9
|
+
export default (async ({ client, project, directory, $ }) => {
|
|
10
|
+
return {
|
|
11
|
+
config(cfg) {
|
|
12
|
+
const skillsDir = path.join(packageRoot, ".opencode", "skills");
|
|
13
|
+
if (fs.existsSync(skillsDir)) {
|
|
14
|
+
cfg.skills = cfg.skills || {};
|
|
15
|
+
cfg.skills.paths = cfg.skills.paths || [];
|
|
16
|
+
if (!cfg.skills.paths.includes(skillsDir)) {
|
|
17
|
+
cfg.skills.paths.push(skillsDir);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdd-audit
|
|
3
|
-
description: Structured
|
|
3
|
+
description: Structured readiness checks for /sdd-ship. Use when comparing implementation against SDD artifacts before release.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## What I do
|
|
@@ -13,7 +13,7 @@ description: Structured compliance checks for SDD workflows. Activates when audi
|
|
|
13
13
|
## When to use me
|
|
14
14
|
|
|
15
15
|
Use this skill when:
|
|
16
|
-
- Running `/
|
|
16
|
+
- Running `/sdd-ship` command
|
|
17
17
|
- Need to verify implementation matches spec
|
|
18
18
|
- Pre-merge quality gate
|
|
19
19
|
- Investigating specific issues or bugs
|
|
@@ -22,13 +22,13 @@ Use this skill when:
|
|
|
22
22
|
|
|
23
23
|
### Phase 1: Load Specifications
|
|
24
24
|
1. Read `spec.md` for requirements
|
|
25
|
-
2. Read `
|
|
26
|
-
3. Read `tasks.md`
|
|
25
|
+
2. Read `design.md` for intended approach
|
|
26
|
+
3. Read `tasks.md` for completed work
|
|
27
27
|
|
|
28
28
|
### Phase 2: Analyze Implementation
|
|
29
29
|
1. Identify completed tasks
|
|
30
30
|
2. Read actual implementation files using `codebase-memory-mcp`
|
|
31
|
-
3. Compare code against spec/
|
|
31
|
+
3. Compare code against spec/design requirements
|
|
32
32
|
|
|
33
33
|
### Phase 3: Security Review Checklist
|
|
34
34
|
- [ ] Input validation on all user inputs
|