diff --git a/CLAUDE.md b/CLAUDE.md index 918b6e1..7ca66f6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -117,6 +117,7 @@ Required: `DATABASE_URL`, `LLAMA_SWAP_URL`. Optional: `PORT` (3000), `HOST` (0.0 ## Workflow - Sam reviews all diffs and commits manually. Do not commit unless explicitly asked. +- Per-batch docs live under `openspec/changes//{proposal,tasks,design}.md`. Already-shipped batches are snapshots in `openspec/changes/archived/`. New batches follow the proposal+tasks shape; see `openspec/README.md` for the convention. - Deploy: `cd /opt/boocode && docker compose up --build -d` (or `docker compose build --no-cache boocode && docker compose up -d` if you suspect a layer-cache issue). - Git push to Gitea: `GIT_SSH_COMMAND="ssh -i /opt/boocode/secrets/boocode_gitea -o IdentitiesOnly=yes" git push origin `. The default agent identity is rejected; the in-repo deploy key (`secrets/`, gitignored) is the working one. Transient `Connection reset by peer` retries cleanly after `sleep 5`. - Don't accumulate `.bak-*` files. Clean them up in the same batch or immediately after merge. diff --git a/openspec/README.md b/openspec/README.md new file mode 100644 index 0000000..bcf52e8 --- /dev/null +++ b/openspec/README.md @@ -0,0 +1,38 @@ +# openspec + +Per-batch documentation convention adopted v1.13.15-openspec. + +Lift source: Fission-AI/OpenSpec directory layout. **No CLI dependency** — just +the folder shape. Full OpenSpec lifecycle adoption is a future v1.14+ batch. + +## Layout + +``` +openspec/ + changes/ + / # one folder per shipped or planned batch + proposal.md # Why + scope summary + tasks.md # implementation step list + design.md # architecture / data-model decisions (optional) + specs/ # reserved for future OpenSpec CLI adoption + archived/ # snapshots of pre-v1.13.15 batch docs + .md + specs/ # global specs, future v1.14+ use +``` + +## Conventions + +- Slugs are lowercase-hyphenated derived from the batch title + (e.g. `v1-13-10-per-tool-cost`, `file-attachments-v3-5`). +- Already-shipped pre-v1.13.15 batches live in `changes/archived/` as + single-file snapshots. They were not split into proposal/tasks because + the work was already complete; archiving preserves git history. +- New v1.13.15+ batches should land directly in + `changes//proposal.md` (+ tasks.md, + design.md when applicable). +- `proposal.md` carries the "Why" and scope. `tasks.md` is the action list + (numbered or checkbox). `design.md` is for non-trivial architectural + decisions worth recording separately. +- A canonical dispatch brief (matching the v1.13.9 / v1.13.10 format) + is most naturally split as proposal.md (Where we are, Why this matters, + rationale sections) + tasks.md (Scope items, Build + smoke) + design.md + (Attribution model, Filtering, Canonical mapping). diff --git a/boocode_batch10.md b/openspec/changes/archived/boocode_batch10.md similarity index 100% rename from boocode_batch10.md rename to openspec/changes/archived/boocode_batch10.md diff --git a/handoff_v1.13.10_per_tool_cost.md b/openspec/changes/archived/handoff_v1.13.10_per_tool_cost.md similarity index 100% rename from handoff_v1.13.10_per_tool_cost.md rename to openspec/changes/archived/handoff_v1.13.10_per_tool_cost.md diff --git a/handoff_v1.13.8_prefix_verify.md b/openspec/changes/archived/handoff_v1.13.8_prefix_verify.md similarity index 100% rename from handoff_v1.13.8_prefix_verify.md rename to openspec/changes/archived/handoff_v1.13.8_prefix_verify.md