feat(sandcastle): scaffold .sandcastle/ + README + env example
This commit is contained in:
11
.sandcastle/.env.example
Normal file
11
.sandcastle/.env.example
Normal file
@@ -0,0 +1,11 @@
|
||||
# Anthropic Claude API
|
||||
ANTHROPIC_API_KEY=
|
||||
|
||||
# OpenAI / Codex
|
||||
OPENAI_API_KEY=
|
||||
|
||||
# GitHub (for PR creation by the orchestrator)
|
||||
GITHUB_TOKEN=
|
||||
|
||||
# Sandcastle's own configuration — sandbox provider (docker | podman | vercel | custom)
|
||||
SANDCASTLE_PROVIDER=docker
|
||||
3
.sandcastle/.gitignore
vendored
Normal file
3
.sandcastle/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
.env
|
||||
*.log
|
||||
.cache/
|
||||
37
.sandcastle/README.md
Normal file
37
.sandcastle/README.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# .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.
|
||||
|
||||
## 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.
|
||||
Reference in New Issue
Block a user