@plazmodium/odin 0.3.4-beta → 0.3.5-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/builtin/ODIN.md +36 -14
- package/builtin/agent-definitions/README.md +1 -1
- package/builtin/agent-definitions/_shared-context.md +11 -11
- package/builtin/agent-definitions/architect.md +9 -9
- package/builtin/agent-definitions/builder.md +13 -16
- package/builtin/agent-definitions/discovery.md +5 -5
- package/builtin/agent-definitions/documenter.md +5 -5
- package/builtin/agent-definitions/guardian.md +2 -2
- package/builtin/agent-definitions/integrator.md +69 -243
- package/builtin/agent-definitions/planning.md +1 -1
- package/builtin/agent-definitions/release.md +75 -300
- package/builtin/agent-definitions/reviewer.md +1 -1
- package/dist/adapters/skills/filesystem.d.ts +1 -0
- package/dist/adapters/skills/filesystem.d.ts.map +1 -1
- package/dist/adapters/skills/filesystem.js +4 -0
- package/dist/adapters/skills/filesystem.js.map +1 -1
- package/dist/adapters/skills/types.d.ts +1 -0
- package/dist/adapters/skills/types.d.ts.map +1 -1
- package/dist/adapters/workflow-state/in-memory.d.ts +10 -2
- package/dist/adapters/workflow-state/in-memory.d.ts.map +1 -1
- package/dist/adapters/workflow-state/in-memory.js +98 -5
- package/dist/adapters/workflow-state/in-memory.js.map +1 -1
- package/dist/adapters/workflow-state/supabase.d.ts +8 -2
- package/dist/adapters/workflow-state/supabase.d.ts.map +1 -1
- package/dist/adapters/workflow-state/supabase.js +204 -0
- package/dist/adapters/workflow-state/supabase.js.map +1 -1
- package/dist/adapters/workflow-state/types.d.ts +15 -1
- package/dist/adapters/workflow-state/types.d.ts.map +1 -1
- package/dist/domain/skill-draft-validation.d.ts +18 -0
- package/dist/domain/skill-draft-validation.d.ts.map +1 -0
- package/dist/domain/skill-draft-validation.js +100 -0
- package/dist/domain/skill-draft-validation.js.map +1 -0
- package/dist/domain/skill-proposals.d.ts +11 -0
- package/dist/domain/skill-proposals.d.ts.map +1 -0
- package/dist/domain/skill-proposals.js +103 -0
- package/dist/domain/skill-proposals.js.map +1 -0
- package/dist/schemas.d.ts +38 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +30 -1
- package/dist/schemas.js.map +1 -1
- package/dist/server.js +38 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/apply-migrations.d.ts +10 -0
- package/dist/tools/apply-migrations.d.ts.map +1 -1
- package/dist/tools/apply-migrations.js +10 -26
- package/dist/tools/apply-migrations.js.map +1 -1
- package/dist/tools/capture-learning.d.ts.map +1 -1
- package/dist/tools/capture-learning.js +14 -1
- package/dist/tools/capture-learning.js.map +1 -1
- package/dist/tools/get-skill-proposal-queue.d.ts +5 -0
- package/dist/tools/get-skill-proposal-queue.d.ts.map +1 -0
- package/dist/tools/get-skill-proposal-queue.js +21 -0
- package/dist/tools/get-skill-proposal-queue.js.map +1 -0
- package/dist/tools/get-skill-proposals.d.ts +4 -0
- package/dist/tools/get-skill-proposals.d.ts.map +1 -0
- package/dist/tools/get-skill-proposals.js +11 -0
- package/dist/tools/get-skill-proposals.js.map +1 -0
- package/dist/tools/publish-skill-proposal.d.ts +5 -0
- package/dist/tools/publish-skill-proposal.d.ts.map +1 -0
- package/dist/tools/publish-skill-proposal.js +57 -0
- package/dist/tools/publish-skill-proposal.js.map +1 -0
- package/dist/tools/record-skill-proposal-decision.d.ts +4 -0
- package/dist/tools/record-skill-proposal-decision.d.ts.map +1 -0
- package/dist/tools/record-skill-proposal-decision.js +22 -0
- package/dist/tools/record-skill-proposal-decision.js.map +1 -0
- package/dist/tools/record-skill-proposal-draft.d.ts +5 -0
- package/dist/tools/record-skill-proposal-draft.d.ts.map +1 -0
- package/dist/tools/record-skill-proposal-draft.js +65 -0
- package/dist/tools/record-skill-proposal-draft.js.map +1 -0
- package/dist/tools/sync-skill-proposal-candidates.d.ts +5 -0
- package/dist/tools/sync-skill-proposal-candidates.d.ts.map +1 -0
- package/dist/tools/sync-skill-proposal-candidates.js +20 -0
- package/dist/tools/sync-skill-proposal-candidates.js.map +1 -0
- package/dist/types.d.ts +38 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/migrations/009_skill_proposal_candidates.sql +124 -0
- package/migrations/010_skill_proposals.sql +36 -0
- package/migrations/README.md +6 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -150,6 +150,12 @@ Your AI agent now has these tools available:
|
|
|
150
150
|
| `odin.run_policy_checks` | Run deterministic policy checks for submitted claims |
|
|
151
151
|
| `odin.verify_design` | Run formal design verification (TLA+ model checking) on a `.machine.ts` DSL file |
|
|
152
152
|
| `odin.capture_learning` | Capture a reusable learning with semantic domain matching |
|
|
153
|
+
| `odin.get_skill_proposal_queue` | Inspect repeated unresolved learning topics that may warrant a generated skill draft |
|
|
154
|
+
| `odin.get_skill_proposals` | List drafted, approved, rejected, or published skill proposal records |
|
|
155
|
+
| `odin.record_skill_proposal_draft` | Persist a drafted generated-skill proposal and run deterministic validation |
|
|
156
|
+
| `odin.record_skill_proposal_decision` | Approve or reject a drafted skill proposal |
|
|
157
|
+
| `odin.publish_skill_proposal` | Publish an approved skill proposal into `.odin/skills/generated/` |
|
|
158
|
+
| `odin.sync_skill_proposal_candidates` | Persist the current deterministic proposal queue for later review/approval workflows |
|
|
153
159
|
| `odin.get_feature_status` | Inspect feature state with workflow details |
|
|
154
160
|
| `odin.verify_claims` | Check claim verification status |
|
|
155
161
|
| `odin.get_claims_needing_review` | List claims waiting for watcher review |
|
|
@@ -333,6 +339,9 @@ Odin's learning system uses **semantic domain matching** to automatically route
|
|
|
333
339
|
3. **Auto-targeting**: Matches passing both gates (≥ 1 strong keyword hit AND ≥ 0.60 relevance) are auto-declared as propagation targets. Weaker matches are returned as suggestions
|
|
334
340
|
4. **Cross-feature corridors**: `odin.prepare_phase_context` retrieves related learnings from other features that share propagation targets, with tag intersection fallback
|
|
335
341
|
5. **Resonance ranking**: Related learnings are ranked by domain density, corroboration (same-category learnings from different features), and recency — never modifying `confidence_score`
|
|
342
|
+
6. **Proposal surfacing**: Repeated unresolved tags can be inspected via `odin.get_skill_proposal_queue` to identify candidate topics for governed skill drafting
|
|
343
|
+
7. **Proposal persistence**: `odin.sync_skill_proposal_candidates` snapshots the current candidate queue into workflow state so later approval/draft flows and dashboard surfaces can build on stable relational state
|
|
344
|
+
8. **Governed skill workflow**: draft generation, approval, and publish happen through `odin.record_skill_proposal_draft`, `odin.record_skill_proposal_decision`, and `odin.publish_skill_proposal` rather than automatic built-in self-modification
|
|
336
345
|
|
|
337
346
|
### Exploration
|
|
338
347
|
|
package/builtin/ODIN.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# ODIN.md
|
|
2
2
|
|
|
3
3
|
> **Odin** is a Specification-Driven Development (SDD) framework for AI-assisted development.
|
|
4
|
-
> It provides
|
|
4
|
+
> It provides 11 specialized workflow/support agents, adaptive complexity levels, a learnings system with
|
|
5
5
|
> confidence scoring, EVALS for health monitoring, and Watcher verification for critical phases.
|
|
6
6
|
|
|
7
7
|
---
|
|
@@ -51,7 +51,7 @@ When developers use AI coding assistants without proper specifications:
|
|
|
51
51
|
|
|
52
52
|
1. **Spec-First, Always**: Implementation code is never written without an approved specification. The spec is the contract.
|
|
53
53
|
|
|
54
|
-
2. **Context Pulling > Context Pushing**:
|
|
54
|
+
2. **Context Pulling > Context Pushing**: The orchestrator session pulls what agents need (via MCP and other tools) instead of developers manually copy-pasting files, schemas, and tickets.
|
|
55
55
|
|
|
56
56
|
3. **Adaptive Complexity**: Not every task needs a 10-page specification. Match the spec depth to the task complexity.
|
|
57
57
|
|
|
@@ -61,7 +61,7 @@ When developers use AI coding assistants without proper specifications:
|
|
|
61
61
|
- **Learnings system** with confidence scoring and multi-target propagation
|
|
62
62
|
- **Development Evals** for pre/post-build behavior verification
|
|
63
63
|
- **EVALS** for health monitoring and performance diagnostics
|
|
64
|
-
- **11-phase workflow** with
|
|
64
|
+
- **11-phase workflow** with 11 specialized workflow/support agents
|
|
65
65
|
- **Watcher verification** - Policy Engine + LLM escalation for critical phases
|
|
66
66
|
- **Skills system** with 36+ domain-specific knowledge modules
|
|
67
67
|
|
|
@@ -71,7 +71,7 @@ When developers use AI coding assistants without proper specifications:
|
|
|
71
71
|
|
|
72
72
|
| Phase | Name | Agent | Watched? | Description |
|
|
73
73
|
|-------|------|-------|----------|-------------|
|
|
74
|
-
| 0 | Planning | Planner | No |
|
|
74
|
+
| 0 | Planning | Planner | No | Planning kickoff; L3 decomposes epics, L1/L2 can stay brief |
|
|
75
75
|
| 1 | Product | Product | No | PRD generation (complexity-gated) |
|
|
76
76
|
| 2 | Discovery | Discovery | No | Requirements gathering |
|
|
77
77
|
| 3 | Architect | Architect | No | Specification drafting |
|
|
@@ -92,7 +92,7 @@ All features: PLANNING -> PRODUCT -> DISCOVERY -> ARCHITECT -> GUARDIAN -> BUILD
|
|
|
92
92
|
|
|
93
93
|
> **Watched agents** (Builder, Integrator, Release) emit structured claims that are verified by the Policy Engine and optionally the LLM Watcher. See [Watcher Verification](#watcher-verification).
|
|
94
94
|
|
|
95
|
-
> **Detailed Documentation**: See [
|
|
95
|
+
> **Detailed Documentation**: See `agents/definitions/` for phase prompts and [runtime/README.md](runtime/README.md) for runtime setup.
|
|
96
96
|
|
|
97
97
|
### Orchestrator Loop
|
|
98
98
|
|
|
@@ -311,7 +311,7 @@ Before implementation, score your spec:
|
|
|
311
311
|
|
|
312
312
|
---
|
|
313
313
|
|
|
314
|
-
## The
|
|
314
|
+
## The 11 Agents
|
|
315
315
|
|
|
316
316
|
| Agent | Phases | Watched? | Role |
|
|
317
317
|
|-------|--------|----------|------|
|
|
@@ -326,7 +326,6 @@ Before implementation, score your spec:
|
|
|
326
326
|
| [Documenter](agents/definitions/documenter.md) | 8 | No | Documentation generation |
|
|
327
327
|
| [Release](agents/definitions/release.md) | 9 | **YES** | PR creation and feature archival |
|
|
328
328
|
| [Watcher](agents/definitions/watcher.md) | Any | - | LLM escalation for claim verification |
|
|
329
|
-
| [Consultant](agents/definitions/spec-driven-dev-consultant.md) | Any | No | Spec refinement and analysis |
|
|
330
329
|
|
|
331
330
|
All agents inherit shared context from [_shared-context.md](agents/definitions/_shared-context.md).
|
|
332
331
|
|
|
@@ -483,7 +482,8 @@ odin.verify_claims({ feature_id: "FEAT-001" })
|
|
|
483
482
|
| `CODE_DELETED` | Builder | File removed |
|
|
484
483
|
| `TEST_PASSED` | Builder | Tests pass |
|
|
485
484
|
| `BUILD_SUCCEEDED` | Builder | Build completes |
|
|
486
|
-
| `
|
|
485
|
+
| `TEST_ADDED` | Builder | Tests added for acceptance/regression coverage |
|
|
486
|
+
| `INTEGRATION_VERIFIED` | Integrator | Feature branch build/tests/runtime verified |
|
|
487
487
|
| `PR_CREATED` | Release | Pull request created |
|
|
488
488
|
| `ARCHIVE_CREATED` | Release | Feature archived |
|
|
489
489
|
|
|
@@ -597,8 +597,8 @@ The `dev_initials` and `author` parameters in `odin.start_feature` identify the
|
|
|
597
597
|
4. Each phase: `odin.prepare_phase_context` → agent work → `odin.record_phase_artifact` → `odin.record_phase_result`
|
|
598
598
|
5. `odin.prepare_phase_context` starts the phase invocation timer; `odin.record_phase_result` completes it
|
|
599
599
|
6. Release phase creates PR via `gh pr create`, then records it with `odin.record_pr`
|
|
600
|
-
7.
|
|
601
|
-
|
|
600
|
+
7. Human reviews and merges the PR (NEVER the agent)
|
|
601
|
+
8. After the human merges the PR, record the merge with `odin.record_merge`
|
|
602
602
|
|
|
603
603
|
> **CRITICAL**: Create the git branch BEFORE calling `odin.start_feature`. If branch creation fails (e.g., branch already exists, git error), do NOT create the feature — you would have a dead DB record with no branch. The branch is the real artifact; the DB record is tracking.
|
|
604
604
|
|
|
@@ -666,7 +666,7 @@ The runtime handles file upload (to Supabase Storage) and database recording aut
|
|
|
666
666
|
- **Knowledge base**: Reference past specs for similar features
|
|
667
667
|
- **Debugging**: Understand original requirements when bugs arise
|
|
668
668
|
|
|
669
|
-
> **Setup**: See [SUPABASE-SETUP.md](docs/guides/SUPABASE-SETUP.md) for
|
|
669
|
+
> **Setup**: See [SUPABASE-SETUP.md](docs/guides/SUPABASE-SETUP.md) for Supabase migrations and private archive bucket setup.
|
|
670
670
|
|
|
671
671
|
---
|
|
672
672
|
|
|
@@ -837,7 +837,7 @@ The `odin` server is the Odin MCP Runtime. It provides all `odin.*` tools, manag
|
|
|
837
837
|
|
|
838
838
|
| Tool | Purpose | When Used |
|
|
839
839
|
|------|---------|-----------|
|
|
840
|
-
| `context7` | Library docs lookup | Architect
|
|
840
|
+
| `context7` | Library docs lookup | Orchestrator on behalf of Architect/Builder |
|
|
841
841
|
| `sequentialthinking` | Complex multi-step reasoning | Any complex task |
|
|
842
842
|
| `memory` | Knowledge graph | Optional knowledge backup |
|
|
843
843
|
|
|
@@ -854,7 +854,7 @@ The `odin` server is the Odin MCP Runtime. It provides all `odin.*` tools, manag
|
|
|
854
854
|
|
|
855
855
|
### Security Rules
|
|
856
856
|
|
|
857
|
-
- Odin runtime handles database access
|
|
857
|
+
- Odin runtime handles database access - the orchestrator uses `odin.*` tools on behalf of agents, never raw SQL in normal workflow execution
|
|
858
858
|
- Docker Gateway: only invoke tools documented in agent definitions
|
|
859
859
|
|
|
860
860
|
---
|
|
@@ -1002,6 +1002,28 @@ odin.capture_learning({
|
|
|
1002
1002
|
odin.explore_knowledge({
|
|
1003
1003
|
tags: ["nextjs", "caching"]
|
|
1004
1004
|
})
|
|
1005
|
+
|
|
1006
|
+
odin.get_skill_proposal_queue({
|
|
1007
|
+
statuses: ["DRAFT_READY", "CANDIDATE"],
|
|
1008
|
+
limit: 10
|
|
1009
|
+
})
|
|
1010
|
+
|
|
1011
|
+
odin.record_skill_proposal_draft({
|
|
1012
|
+
topic_key: "artifactsigning",
|
|
1013
|
+
drafted_by: "skill-creator-agent",
|
|
1014
|
+
draft_markdown: "---\nname: artifact-signing\ndescription: Guidance for deterministic artifact signing.\ncategory: backend\n---\n\n# Artifact Signing\n"
|
|
1015
|
+
})
|
|
1016
|
+
|
|
1017
|
+
odin.record_skill_proposal_decision({
|
|
1018
|
+
topic_key: "artifactsigning",
|
|
1019
|
+
status: "APPROVED",
|
|
1020
|
+
decided_by: "guardian-agent"
|
|
1021
|
+
})
|
|
1022
|
+
|
|
1023
|
+
odin.publish_skill_proposal({
|
|
1024
|
+
topic_key: "artifactsigning",
|
|
1025
|
+
published_by: "release-agent"
|
|
1026
|
+
})
|
|
1005
1027
|
```
|
|
1006
1028
|
|
|
1007
1029
|
### Status & Release
|
|
@@ -1035,7 +1057,7 @@ odin.record_merge({
|
|
|
1035
1057
|
|
|
1036
1058
|
1. **Read the framework**: [SDD-framework.md](docs/framework/SDD-framework.md)
|
|
1037
1059
|
2. **Set up the runtime**: [runtime/README.md](runtime/README.md)
|
|
1038
|
-
3. **Understand agents**:
|
|
1060
|
+
3. **Understand agents**: `agents/definitions/`
|
|
1039
1061
|
4. **See an example**: [example-workflow.md](docs/guides/example-workflow.md)
|
|
1040
1062
|
5. **Database setup**: [SUPABASE-SETUP.md](docs/guides/SUPABASE-SETUP.md)
|
|
1041
1063
|
6. **Explore skills**: [SKILLS-SYSTEM.md](docs/reference/SKILLS-SYSTEM.md)
|
|
@@ -93,7 +93,7 @@ The Watcher agent is called via LLM escalation when the Policy Engine cannot mak
|
|
|
93
93
|
- HIGH risk claims
|
|
94
94
|
- Claims with missing evidence
|
|
95
95
|
- Policy Engine inconclusive results
|
|
96
|
-
- **Returns:** PASS/FAIL
|
|
96
|
+
- **Returns:** PASS/FAIL with reasoning and confidence; the Policy Engine may emit NEEDS_REVIEW before Watcher escalation
|
|
97
97
|
- **Not a phase agent** — runs as a sub-agent when needed
|
|
98
98
|
|
|
99
99
|
## Watched Agents (v2)
|
|
@@ -235,19 +235,19 @@ Odin tracks git branches per feature. When a feature is created, a branch name i
|
|
|
235
235
|
- **With dev initials**: `{initials}/feature/{FEATURE-ID}` (e.g., `jd/feature/AUTH-001`)
|
|
236
236
|
- **Without initials**: `feature/{FEATURE-ID}` (e.g., `feature/AUTH-001`)
|
|
237
237
|
|
|
238
|
-
The orchestrator creates the git branch **BEFORE calling `
|
|
238
|
+
The orchestrator creates the git branch **BEFORE calling `odin.start_feature()`**. The branch must exist before the feature is recorded:
|
|
239
239
|
```
|
|
240
240
|
# 1. Create branch FIRST
|
|
241
241
|
git checkout -b {dev_initials}/feature/{FEATURE-ID}
|
|
242
242
|
|
|
243
|
-
# 2. Only after branch exists,
|
|
244
|
-
|
|
243
|
+
# 2. Only after branch exists, record the feature in Odin
|
|
244
|
+
odin.start_feature(...)
|
|
245
245
|
```
|
|
246
246
|
|
|
247
|
-
> **CRITICAL**: If branch creation fails, do NOT call `
|
|
247
|
+
> **CRITICAL**: If branch creation fails, do NOT call `odin.start_feature()`. A dead workflow record with no branch is worse than no record at all.
|
|
248
248
|
|
|
249
249
|
Agents that interact with git should:
|
|
250
|
-
1. **Orchestrator**: Create the feature branch FIRST, then call `
|
|
250
|
+
1. **Orchestrator**: Create the feature branch FIRST, then call `odin.start_feature()` — do NOT defer branch creation to Builder
|
|
251
251
|
2. **Builder**: Commit after each task, include commit tracking in State Changes
|
|
252
252
|
3. **Integrator**: Verify build and runtime on the feature branch
|
|
253
253
|
4. **Release**: Create PR via `gh pr create`, request human review — **NEVER merge PRs**
|
|
@@ -274,7 +274,7 @@ After each commit, document it in State Changes Required:
|
|
|
274
274
|
- **Deletions**: 30
|
|
275
275
|
```
|
|
276
276
|
|
|
277
|
-
The orchestrator records commits via `record_commit()
|
|
277
|
+
The orchestrator records commits via `odin.record_commit()`.
|
|
278
278
|
|
|
279
279
|
---
|
|
280
280
|
|
|
@@ -284,9 +284,9 @@ The orchestrator records commits via `record_commit()` in Supabase.
|
|
|
284
284
|
|
|
285
285
|
PR merging is ALWAYS a human decision. This applies to ALL agents with git/gh access. No exceptions. No "auto-merge if tests pass." No "merge if approved." NEVER.
|
|
286
286
|
|
|
287
|
-
- **Release agent**: Creates PR via `gh pr create`, records PR URL via `record_pr()`, then STOPS
|
|
287
|
+
- **Release agent**: Creates PR via `gh pr create`, records PR URL via `odin.record_pr()`, then STOPS
|
|
288
288
|
- **Human**: Reviews, approves, and merges the PR
|
|
289
|
-
- **After merge**: Human (or agent on instruction) calls `record_merge()` to update tracking
|
|
289
|
+
- **After merge**: Human (or agent on instruction) calls `odin.record_merge()` to update tracking
|
|
290
290
|
|
|
291
291
|
---
|
|
292
292
|
|
|
@@ -323,7 +323,7 @@ If bugs are found post-release:
|
|
|
323
323
|
|
|
324
324
|
## CRITICAL: NEVER Skip Phases OR Steps
|
|
325
325
|
|
|
326
|
-
**All 11 phases must be executed for every feature.**
|
|
326
|
+
**All 11 phases must be executed for every feature.** Odin's runtime transition rules reject any attempt to skip a phase.
|
|
327
327
|
|
|
328
328
|
**All steps within each phase must also be executed.** Each agent definition contains a **Mandatory Steps Checklist** that lists every step. No step may be silently skipped.
|
|
329
329
|
|
|
@@ -332,7 +332,7 @@ If bugs are found post-release:
|
|
|
332
332
|
- An L1 phase can be a single sentence, but it must still be recorded
|
|
333
333
|
- An L1 step can produce minimal output, but it must still execute
|
|
334
334
|
- When documenting State Changes, always use `To Phase: [current + 1]`
|
|
335
|
-
- Phase 10 (Complete) is set by
|
|
335
|
+
- Phase 10 (Complete) is set by the runtime completion flow, not by a manual skip
|
|
336
336
|
|
|
337
337
|
**If you think a phase or step is unnecessary**: You're wrong. Execute it briefly. A one-sentence Discovery, a three-line spec, a quick "looks good" Guardian review — these are all valid L1 outputs. If a step truly does not apply (e.g., "Handle Merge Conflicts" when there are none), mark it **N/A** with a one-line justification. Never silently skip it.
|
|
338
338
|
|
|
@@ -350,7 +350,7 @@ Before each phase, the orchestrator MUST:
|
|
|
350
350
|
**Enforcement levels**:
|
|
351
351
|
| Level | What | Enforced By | Mechanism |
|
|
352
352
|
|-------|------|-------------|-----------|
|
|
353
|
-
| Phase | All 11 phases run (0-10) |
|
|
353
|
+
| Phase | All 11 phases run (0-10) | Runtime | phase-result transition rules reject skips |
|
|
354
354
|
| Step | All steps within a phase run | Agent checklist | Orchestrator verifies each step |
|
|
355
355
|
|
|
356
356
|
**Complexity affects depth, not coverage**:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: architect
|
|
3
|
-
description: The Architect agent in the multi-agent SDD workflow. Handles Phase
|
|
3
|
+
description: The Architect agent in the multi-agent SDD workflow. Handles Phase 3 (Specification) with two steps - Spec Drafting (complexity assessment, technical design) and Task Breakdown (implementation planning). Creates detailed specifications and implementation plans.
|
|
4
4
|
model: opus
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -326,7 +326,7 @@ If the feature contains critical state flows, write a `.machine.ts` DSL file usi
|
|
|
326
326
|
---
|
|
327
327
|
|
|
328
328
|
## 10. Next Steps
|
|
329
|
-
- [ ] Guardian review (Phase
|
|
329
|
+
- [ ] Guardian review (Phase 4)
|
|
330
330
|
- [ ] Address Guardian feedback
|
|
331
331
|
- [ ] Final approval
|
|
332
332
|
```
|
|
@@ -370,9 +370,9 @@ Score each of the 5 criteria (Clarity, Completeness, Testability, Technical Feas
|
|
|
370
370
|
At the end of your spec-draft-v1.md, include a **State Changes Required** section following the template in `_shared-context.md`. Include:
|
|
371
371
|
|
|
372
372
|
1. **Register Feature** — feature_id, name, complexity level, severity, requirements path
|
|
373
|
-
2. **Track Duration** — phase
|
|
373
|
+
2. **Track Duration** — phase 3, agent Architect, operation description
|
|
374
374
|
3. **Record Development Eval Artifact** — `eval_plan` when required
|
|
375
|
-
4. **Transition Phase** — from phase
|
|
375
|
+
4. **Transition Phase** — from phase 2 to phase 3, with self-score summary
|
|
376
376
|
|
|
377
377
|
---
|
|
378
378
|
|
|
@@ -384,7 +384,7 @@ At the end of your spec-draft-v1.md, include a **State Changes Required** sectio
|
|
|
384
384
|
|
|
385
385
|
**State Changes Documented**: Feature registration, spec draft created
|
|
386
386
|
|
|
387
|
-
**Next Agent**: Guardian Agent (Phase
|
|
387
|
+
**Next Agent**: Guardian Agent (Phase 4: Spec Review)
|
|
388
388
|
|
|
389
389
|
---
|
|
390
390
|
|
|
@@ -519,8 +519,8 @@ List files Builder needs to read for implementation patterns with specific line
|
|
|
519
519
|
|
|
520
520
|
At the end of tasks.md, include a **State Changes Required** section following the template in `_shared-context.md`. Include:
|
|
521
521
|
|
|
522
|
-
1. **Track Duration** — phase
|
|
523
|
-
2. **Transition Phase** — phase
|
|
522
|
+
1. **Track Duration** — phase 3, agent Architect (Step B)
|
|
523
|
+
2. **Transition Phase** — phase 3 complete, ready for Builder (phase 5)
|
|
524
524
|
|
|
525
525
|
---
|
|
526
526
|
|
|
@@ -584,9 +584,9 @@ If you encounter issues preventing completion, document a blocker in your artifa
|
|
|
584
584
|
|
|
585
585
|
## Interaction with Other Agents
|
|
586
586
|
|
|
587
|
-
**Step A** → Guardian (Phase
|
|
587
|
+
**Step A** → Guardian (Phase 4): Reviews spec, may iterate 3-5 times, approves or escalates.
|
|
588
588
|
|
|
589
|
-
**Step B** → Builder (Phase
|
|
589
|
+
**Step B** → Builder (Phase 5): Implements tasks using context references. Guardian may do a quick validation of task breakdown before Builder starts.
|
|
590
590
|
|
|
591
591
|
---
|
|
592
592
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: builder
|
|
3
|
-
description: Phase
|
|
3
|
+
description: Phase 5 Builder agent in the SDD workflow. Implements code exactly matching approved specifications using GitFlow branches (feature/[ID]). Documents state changes for orchestrator. Links all code to spec sections. Cannot modify specs or add features beyond specification.
|
|
4
4
|
model: opus
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -29,18 +29,18 @@ You are the **Builder Agent** in the Specification-Driven Development (SDD) work
|
|
|
29
29
|
|
|
30
30
|
## Your Role in the Workflow
|
|
31
31
|
|
|
32
|
-
**Phase
|
|
32
|
+
**Phase 5: Implementation**
|
|
33
33
|
|
|
34
34
|
**Purpose**: Build features that exactly match approved specifications, following GitFlow branching, using curated context from Guardian, and documenting all state changes for the orchestrator.
|
|
35
35
|
|
|
36
36
|
**Input**:
|
|
37
|
-
- `spec.md` (approved by Guardian in Phase
|
|
38
|
-
- `tasks.md` / `tasks` phase artifact (created by Architect in Phase
|
|
37
|
+
- `spec.md` (approved by Guardian in Phase 4)
|
|
38
|
+
- `tasks.md` / `tasks` phase artifact (created by Architect in Phase 3 Step B)
|
|
39
39
|
- `context.md` (curated by Guardian, optional)
|
|
40
40
|
- `review.md` (validation report from Guardian)
|
|
41
41
|
|
|
42
42
|
**Output**:
|
|
43
|
-
- Implemented code on `feature/
|
|
43
|
+
- Implemented code on the orchestrator-provided feature branch (`{initials}/feature/{FEATURE-ID}` or `feature/{FEATURE-ID}`)
|
|
44
44
|
- Tests covering all acceptance criteria
|
|
45
45
|
- `implementation-notes.md` documenting work
|
|
46
46
|
|
|
@@ -70,7 +70,7 @@ After each task commit, document it in your `implementation-notes.md` State Chan
|
|
|
70
70
|
### Record Commit
|
|
71
71
|
- **Feature ID**: AUTH-001
|
|
72
72
|
- **Commit Hash**: [from git log]
|
|
73
|
-
- **Phase**:
|
|
73
|
+
- **Phase**: 5
|
|
74
74
|
- **Message**: feat(AUTH-001): implement login endpoint
|
|
75
75
|
- **Files Changed**: 5
|
|
76
76
|
- **Insertions**: 120
|
|
@@ -193,7 +193,7 @@ const spec = await read_file("specs/AUTH-001-jwt-login/spec.md");
|
|
|
193
193
|
|
|
194
194
|
// Check spec status
|
|
195
195
|
if (!spec.includes("Status: approved")) {
|
|
196
|
-
throw new Error("Spec not approved. Cannot start Phase
|
|
196
|
+
throw new Error("Spec not approved. Cannot start Phase 5 implementation.");
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
// Check Guardian validation exists
|
|
@@ -214,7 +214,7 @@ if (!context) {
|
|
|
214
214
|
|
|
215
215
|
#### 1b. Verify Feature Branch
|
|
216
216
|
|
|
217
|
-
The orchestrator creates the feature branch immediately after `
|
|
217
|
+
The orchestrator creates the feature branch immediately after `odin.start_feature()`, before any phase work begins. By the time you start, the branch already exists. **Do NOT create a new branch.** Just verify you're on it:
|
|
218
218
|
|
|
219
219
|
```bash
|
|
220
220
|
# Verify you're on the correct feature branch (e.g., "jd/feature/AUTH-001")
|
|
@@ -238,19 +238,16 @@ Note in your implementation-notes.md that the orchestrator should acquire the lo
|
|
|
238
238
|
- **Feature ID**: AUTH-001-jwt-login
|
|
239
239
|
- **Lock Type**: FEATURE
|
|
240
240
|
- **Agent**: Builder
|
|
241
|
-
- **Reason**: Starting Phase
|
|
241
|
+
- **Reason**: Starting Phase 5 implementation
|
|
242
242
|
```
|
|
243
243
|
|
|
244
|
-
#### 1d. Load Task List from
|
|
244
|
+
#### 1d. Load Task List from Odin Phase Context
|
|
245
245
|
|
|
246
|
-
**MANDATORY**: Before writing any code,
|
|
246
|
+
**MANDATORY**: Before writing any code, inspect the Architect task list from the current Odin context bundle. This is your work plan — you must work through it task by task.
|
|
247
247
|
|
|
248
|
-
The orchestrator
|
|
249
|
-
```sql
|
|
250
|
-
SELECT * FROM get_phase_outputs('FEAT-001');
|
|
251
|
-
```
|
|
248
|
+
The orchestrator should provide the Phase 5 context via `odin.prepare_phase_context(...)` and include the Architect `tasks` artifact in the phase artifacts/context bundle.
|
|
252
249
|
|
|
253
|
-
From
|
|
250
|
+
From that context, find the `tasks` artifact produced by Architect (Phase 3). Display the full task list with IDs, titles, and descriptions before proceeding.
|
|
254
251
|
|
|
255
252
|
**Example output to display**:
|
|
256
253
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: discovery
|
|
3
|
-
description: Phase
|
|
3
|
+
description: Phase 2 requirements gathering agent. Conducts stakeholder interviews, gathers detailed requirements, and creates comprehensive requirements.md files. Runs after Product for normal features or after Planning for L3 decomposition follow-up.
|
|
4
4
|
model: opus
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -14,7 +14,7 @@ You are the **Discovery Agent** in the Specification-Driven Development (SDD) wo
|
|
|
14
14
|
|
|
15
15
|
## Your Role in the Workflow
|
|
16
16
|
|
|
17
|
-
**Phase
|
|
17
|
+
**Phase 2: Requirements Gathering**
|
|
18
18
|
|
|
19
19
|
**When You're Used**:
|
|
20
20
|
- **Level 1/2 features**: User provides initial feature request
|
|
@@ -255,12 +255,12 @@ End your `requirements.md` with the State Changes Required section (see `_shared
|
|
|
255
255
|
- **Complexity**: Level 1
|
|
256
256
|
|
|
257
257
|
### 2. Track Duration
|
|
258
|
-
- **Phase**:
|
|
258
|
+
- **Phase**: 2 (Discovery)
|
|
259
259
|
- **Agent**: Discovery
|
|
260
260
|
|
|
261
261
|
### 3. Transition Phase
|
|
262
|
-
- **From Phase**:
|
|
263
|
-
- **To Phase**:
|
|
262
|
+
- **From Phase**: 2 (Discovery)
|
|
263
|
+
- **To Phase**: 3 (Specification - Architect)
|
|
264
264
|
|
|
265
265
|
---
|
|
266
266
|
## Next Steps
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: documenter
|
|
3
|
-
description: Phase
|
|
3
|
+
description: Phase 8 documentation generation agent. Creates user guides, API documentation, changelogs, and release notes from the verified feature branch and phase artifacts.
|
|
4
4
|
model: opus
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -14,9 +14,9 @@ You are the **Documenter Agent** in the Specification-Driven Development (SDD) w
|
|
|
14
14
|
|
|
15
15
|
## Your Role in the Workflow
|
|
16
16
|
|
|
17
|
-
**Phase
|
|
17
|
+
**Phase 8: Documentation**
|
|
18
18
|
|
|
19
|
-
**Input**: `spec.md`, `tasks.md`, `implementation-notes.md
|
|
19
|
+
**Input**: `spec.md`, `tasks.md`, `implementation-notes.md`, and verified branch outputs from prior phases
|
|
20
20
|
|
|
21
21
|
**Output**:
|
|
22
22
|
- User documentation (`docs/user-guide/[feature].md`)
|
|
@@ -187,13 +187,13 @@ End your `documentation-report.md` with:
|
|
|
187
187
|
## State Changes Required
|
|
188
188
|
|
|
189
189
|
### 1. Track Duration
|
|
190
|
-
- **Phase**:
|
|
190
|
+
- **Phase**: 8 (Documentation)
|
|
191
191
|
- **Agent**: Documenter
|
|
192
192
|
- **Operation**: Generated user guide, API docs, changelog, release notes
|
|
193
193
|
|
|
194
194
|
---
|
|
195
195
|
## Next Steps
|
|
196
|
-
Release agent handles
|
|
196
|
+
Release agent handles the next handoff after documentation is complete.
|
|
197
197
|
```
|
|
198
198
|
|
|
199
199
|
---
|
|
@@ -831,7 +831,7 @@ All checks pass, implementation approach is sound.
|
|
|
831
831
|
## Next Steps
|
|
832
832
|
The orchestrator should:
|
|
833
833
|
1. Execute state changes via Supabase MCP
|
|
834
|
-
2. Spawn Builder agent for Phase
|
|
834
|
+
2. Spawn Builder agent for Phase 5 implementation
|
|
835
835
|
3. Provide spec.md, tasks.md, and context.md to Builder
|
|
836
836
|
```
|
|
837
837
|
|
|
@@ -1034,7 +1034,7 @@ Always create `review.md`:
|
|
|
1034
1034
|
- [ ] Tasks in correct dependency order
|
|
1035
1035
|
- [ ] Context bundle created (8k-15k tokens)
|
|
1036
1036
|
- [ ] Context bundle is self-contained
|
|
1037
|
-
- [ ] Phase transition to Phase
|
|
1037
|
+
- [ ] Phase transition to Phase 5 (Builder) completed
|
|
1038
1038
|
|
|
1039
1039
|
---
|
|
1040
1040
|
|