docs(work): scaffold sandcastle-dispatch-v1 epic + stories

This commit is contained in:
2026-05-13 08:16:09 +02:00
parent 28ba9d04e8
commit 35664f67d5
6 changed files with 181 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
{
"updated_at": "2026-05-13T06:12:30.043Z",
"updated_at": "2026-05-13T06:16:11.738Z",
"epics": {
"agent-workflow-docs-v1": {
"status": "done",
@@ -254,6 +254,58 @@
}
}
},
"sandcastle-dispatch-v1": {
"status": "in-progress",
"title": "Sandcastle dispatch v1 — pnpm work dispatch with planning + execute modes",
"stories": {
"01-sandcastle-install": {
"status": "in-progress",
"title": "Install @ai-hero/sandcastle + Dockerfile",
"ac_total": 4,
"ac_completed": 0,
"depends_on": [],
"blocks": [
"02-dispatch-planner"
]
},
"02-dispatch-planner": {
"status": "todo",
"title": "Dispatch planner — finds next ready bullet, prints plan",
"ac_total": 3,
"ac_completed": 0,
"depends_on": [
"01-sandcastle-install"
],
"blocks": [
"03-dispatch-execute",
"04-dispatch-cli-wiring"
]
},
"03-dispatch-execute": {
"status": "todo",
"title": "Dispatch execute mode — invoke sandcastle.run for impl + review",
"ac_total": 4,
"ac_completed": 0,
"depends_on": [
"02-dispatch-planner"
],
"blocks": [
"04-dispatch-cli-wiring"
]
},
"04-dispatch-cli-wiring": {
"status": "todo",
"title": "pnpm work dispatch CLI wiring + smoke tests",
"ac_total": 4,
"ac_completed": 0,
"depends_on": [
"02-dispatch-planner",
"03-dispatch-execute"
],
"blocks": []
}
}
},
"work-system-v1": {
"status": "done",
"title": "Work system v1 (MVP) — state tracking + pnpm work CLI",
@@ -269,6 +321,38 @@
}
}
},
"ready": [],
"blocked": []
"ready": [
{
"epic": "sandcastle-dispatch-v1",
"story": "01-sandcastle-install",
"title": "Install @ai-hero/sandcastle + Dockerfile"
}
],
"blocked": [
{
"epic": "sandcastle-dispatch-v1",
"story": "02-dispatch-planner",
"title": "Dispatch planner — finds next ready bullet, prints plan",
"waiting_on": [
"sandcastle-dispatch-v1/01-sandcastle-install"
]
},
{
"epic": "sandcastle-dispatch-v1",
"story": "03-dispatch-execute",
"title": "Dispatch execute mode — invoke sandcastle.run for impl + review",
"waiting_on": [
"sandcastle-dispatch-v1/02-dispatch-planner"
]
},
{
"epic": "sandcastle-dispatch-v1",
"story": "04-dispatch-cli-wiring",
"title": "pnpm work dispatch CLI wiring + smoke tests",
"waiting_on": [
"sandcastle-dispatch-v1/02-dispatch-planner",
"sandcastle-dispatch-v1/03-dispatch-execute"
]
}
]
}

View File

@@ -0,0 +1,17 @@
---
id: 01-sandcastle-install
epic: sandcastle-dispatch-v1
title: Install @ai-hero/sandcastle + Dockerfile
type: technical-story
status: in-progress
feature: tooling
depends-on: []
blocks: [02-dispatch-planner]
---
## Tasks
- [ ] Story scaffold
- [ ] Add @ai-hero/sandcastle to devDependencies
- [ ] Create .sandcastle/Dockerfile (minimal node + pnpm)
- [ ] Verify install + import resolves

View File

@@ -0,0 +1,16 @@
---
id: 02-dispatch-planner
epic: sandcastle-dispatch-v1
title: Dispatch planner — finds next ready bullet, prints plan
type: technical-story
status: todo
feature: scripts
depends-on: [01-sandcastle-install]
blocks: [03-dispatch-execute, 04-dispatch-cli-wiring]
---
## Tasks
- [ ] findNextTask() — returns { epic, story, bullet, storyContent } or null
- [ ] Tests
- [ ] CLI: printPlan() — prints the dispatch plan

View File

@@ -0,0 +1,17 @@
---
id: 03-dispatch-execute
epic: sandcastle-dispatch-v1
title: Dispatch execute mode — invoke sandcastle.run for impl + review
type: technical-story
status: todo
feature: scripts
depends-on: [02-dispatch-planner]
blocks: [04-dispatch-cli-wiring]
---
## Tasks
- [ ] dispatchImplementer() — calls sandcastle.run with implementer prompt
- [ ] dispatchReviewer() — calls sandcastle.run with reviewer prompt + diff
- [ ] applyReviewerDecision() — prints what state mutation WOULD happen
- [ ] Tests with mocked sandcastle.run

View File

@@ -0,0 +1,17 @@
---
id: 04-dispatch-cli-wiring
epic: sandcastle-dispatch-v1
title: pnpm work dispatch CLI wiring + smoke tests
type: technical-story
status: todo
feature: scripts
depends-on: [02-dispatch-planner, 03-dispatch-execute]
blocks: []
---
## Tasks
- [ ] cli.mjs: add `dispatch` subcommand with `--execute` flag
- [ ] CLI smoke tests
- [ ] README / docs update
- [ ] Final verification + closeout

View File

@@ -0,0 +1,27 @@
---
id: sandcastle-dispatch-v1
prd: null
title: Sandcastle dispatch v1 — pnpm work dispatch with planning + execute modes
type: epic
status: in-progress
features: [tooling, scripts]
created: 2026-05-13
---
## Goal
Install `@ai-hero/sandcastle` + ship `pnpm work dispatch` that picks the
next ready AC bullet, prints the dispatch plan, and (with `--execute`)
invokes sandcastle to run the implementer then reviewer.
## Why
The orchestrator closes the loop: docs/work/ tracks state, `.sandcastle/`
holds the prompts, and dispatch.mjs connects them to sandcastle.
## Stories
- [ ] [01 — Install @ai-hero/sandcastle + Dockerfile](01-sandcastle-install/_story.md)
- [ ] [02 — Dispatch planner (default mode)](02-dispatch-planner/_story.md)
- [ ] [03 — Dispatch execute mode (sandcastle.run integration)](03-dispatch-execute/_story.md)
- [ ] [04 — pnpm work dispatch wiring + tests](04-dispatch-cli-wiring/_story.md)