Files
agentic-dev/.sandcastle/README.md
Danijel Martinek f77e6ea881 chore(template): clean-slate template snapshot from bb4a0c7
Curated, product-agnostic snapshot of the post-story-04 tree: demo
content deleted, auth-only reference feature, web-next shell, all gates
green. Product-specific docs, ADRs 027-029, PRDs/epics/archive, editor
library traces, and product naming are curated out; generic template
repairs (coverage provider devDeps, root test:coverage script, live
lint fixes, root-only release-please) are kept. See TEMPLATE.md for
provenance, curation list, and usage.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016j8z4VHjedXDTjEDNg7qHK
2026-07-12 20:40:54 +02:00

58 lines
2.5 KiB
Markdown

# .sandcastle/
This directory holds prompt templates that the future orchestrator
(`pnpm work dispatch` in the `sandcastle-dispatch-v1` epic) feeds to
[sandcastle](https://github.com/mattpocock/sandcastle) when dispatching
agents.
## Prompt templates
| File | Role | Variables |
| ------------------------ | ----------------------------------------- | ----------------------------------- |
| `prd-eliciter.prompt.md` | Interview a human to produce a PRD draft | `{{INITIAL_BRIEF}}` |
| `adr-eliciter.prompt.md` | Interview a human to produce an ADR draft | `{{INITIAL_PROPOSAL}}` |
| `decomposer.prompt.md` | Turn a PRD into epic + story files | `{{PRD_FILE_CONTENT}}` |
| `implementer.prompt.md` | Execute a single task | `{{TASK_FILE_CONTENT}}` |
| `reviewer.prompt.md` | Review the implementer's diff | `{{TASK_FILE_CONTENT}}`, `{{DIFF}}` |
## Convention: every prompt enforces "generators first"
Each prompt template starts with the same non-negotiable rule: **the agent
must prefer `pnpm turbo gen <kind>` over hand-rolled scaffolding.** This
applies to feature packages, events, jobs, realtime channels, optional
core packages, and atomic-design components. Hand-rolled code is only
acceptable when the generator's output doesn't cover the case — and even
then, the agent runs the generator first and modifies its output rather
than starting from scratch.
## Environment
Configure runtime tokens via `.env` (gitignored). Copy `.env.example`
and fill values for the providers you use.
## Build the sandbox image (one-time)
Sandcastle dispatches into a Docker image tagged `sandcastle:<root-package-name>`.
Build it once per clone before `pnpm work dispatch --execute` or
`pnpm work decompose <id> --execute` will work:
```bash
pnpm exec sandcastle docker build-image
# Tags: sandcastle:template-vertical
```
Rebuild after editing this `Dockerfile`:
```bash
pnpm exec sandcastle docker remove-image
pnpm exec sandcastle docker build-image
```
See [`docs/guides/runbook.md` → Using Sandcastle → Prerequisites](../docs/guides/runbook.md#using-sandcastle-for-agent-dispatch) for the full setup.
## Manual usage
Until the orchestrator ships, these templates are usable manually: copy
the relevant `.prompt.md` content into a Claude / Codex / other agent
session, fill the `{{VARIABLE}}` placeholders by hand, and run.