keep the build queue in an uncommitted .scratch/

The queue is a working plan, not a record: git log already carries what landed on
each step, so committing the plan duplicates it and invites the two to disagree.
.scratch/ is gitignored and skipped by the gate the way ideas/ and reference/ are,
so exploratory files there need not compile.

state.md keeps a conditional pointer rather than a path it cannot promise: if the
scratch file is absent, the log is the plan.
This commit is contained in:
Claude Opus 5
2026-07-30 01:30:48 +06:00
committed by bdeshi
parent 192b0fb993
commit 242bd60d9c
5 changed files with 9 additions and 30 deletions
+1
View File
@@ -2,3 +2,4 @@
*.test
*.out
.DS_Store
.scratch/
+2 -2
View File
@@ -98,8 +98,8 @@ untriaged one, so the list drains instead of becoming a graveyard.
**This repo is engine source only.** The site root — `content/`, `static/`, optional `templates/`
lives in its own repository and is passed to the binary with `-site` (ADR-0011), and validating content
is the engine's own job rather than the gate's. The gate skips `ideas/` and `reference/` as well, so
exploratory scratch code parked there never has to compile.
is the engine's own job rather than the gate's. The gate skips `ideas/`, `reference/` and the uncommitted
`.scratch/`, so exploratory code parked there never has to compile.
**The architecture gate.** `verify.sh` enforces the layering in `conventions.md` from `go list`
output: content imports no sibling, render imports neither web nor ext, web imports no ext, nothing
+2
View File
@@ -38,6 +38,7 @@ that is the finding to report.
| language, translation, fallback | ADR-0004 + ADR-0009 |
| deploy, containers, external services | ADR-0010 |
| whether a future feature is worth building | `exploration.md` + `roadmap.md` |
| what to build next | `.scratch/build-queue.md` if present, otherwise `git log` and `roadmap.md` |
| how the harness works — a gate, counter, budget, the loop | `HARNESS.md` + `scripts/verify.sh` + `CLAUDE.md` |
| a tool version, or why agent tooling stopped working | `toolchain.md` |
| templates, layout, presentation, what a theme can rely on | `theme-contract.md` (+ ADR-0019, ADR-0023) |
@@ -81,6 +82,7 @@ Update in the Document step of the change that caused them. Not later.
| New dependency approved | `scripts/allowed-deps.txt` + ADR |
| Budget raised | `scripts/budgets.env` + ADR — once the first feature has shipped. While the harness is still being tuned, edit in place. |
| A latent item fixed | remove from the Latent list in `state.md` |
| A queue entry completed | tick it in `.scratch/build-queue.md` and note anything learned that changes a later entry — uncommitted, so the commit message carries what landed |
| Arc finished | `roadmap.md` + a retro line in `state.md` |
| Catalog item accepted or rejected | verdict line in `exploration.md` |
| `CLAUDE.md`, `scripts/` or `.claude/` changed | `HARNESS.md`, same change. Enforced by `verify.sh`. |
+2 -26
View File
@@ -54,32 +54,8 @@ Every ADR in `decisions.md` is accepted; none is open or proposed.
## Build queue
The prompt sequence to a Grav-level engine. **Completed through 1.** Update this line as each lands; a
context refresh loses the conversation, not the plan.
- [x] 0 · ADRs: pagination shape (0028), parse-failure policy (0029), rename (0030), path guard (0031)
- [x] 1 · bundle loading: `os.Root`, frontmatter, key/lang, NFC, collisions, skip-loudly
- [ ] 2 · serve a bundle at its permalink: `-site`, trailing-slash redirect, goldmark, reference theme
- [ ] 3 · language variants: `/bn/…`, fallback chain, `/en/…` redirect *(2nd routing case → resolver)*
- [ ] 4 · aliases
- [ ] 5 · section index pages, paginated *(first collection page → Query)*
- [ ] 6 · settings cascade *(re-adopt from `ideas/deferred-decisions.md`)*
- [ ] 7 · declared content types *(re-adopt)*
- [ ] 8 · template composition: per-type sets, block override, site `templates/`
- [ ] 9 · tags: global namespace, tag listings *(re-adopt)*
- [ ] 10 · sequences: series, sparse order, prev/next/archive
- [ ] 11 · typography + Bengali numerals transforms
- [ ] 12 · shortcodes *(3rd transform → Stage pipeline)*
- [ ] 13 · image derivatives *(first Effect)*
- [ ] 14 · feeds: primary, per-section, per-tag *(2nd Effect → Effect runner)*
- [ ] 15 · sitemap, robots, OpenGraph/JSON-LD
- [ ] 16 · in-process page cache with the validity record *(re-adopt)*
- [ ] 17 · `check` command
- [ ] 18 · `new` command
- [ ] 19 · `-dev`: reveal drafts and future-dated, template reload
- [ ] 20 · extras *(re-adopt)*
- [ ] 21 · polled change detection + Dockerfile
- [ ] 22 · complete the reference theme against the full contract
Working plan lives in `.scratch/build-queue.md`, which is deliberately not committed — `git log` is the
record of what actually landed. If that file is absent, read the log and rebuild the plan from it.
## Arc retro log
+2 -2
View File
@@ -171,7 +171,7 @@ mod=$(awk '/^module /{print $2; exit}' go.mod)
# Engine source only. The site root is outside this repo (ADR-0011); ideas/ and reference/ may hold
# exploratory scratch code, which is not the engine and is never formatted, vetted, built or budgeted.
gofiles=$(find . -name '*.go' -not -path './vendor/*' -not -path './.git/*' \
-not -path './ideas/*' -not -path './reference/*' 2>/dev/null)
-not -path './ideas/*' -not -path './reference/*' -not -path './.scratch/*' 2>/dev/null)
if [ -z "$gofiles" ]; then
head_ "go"
note "go.mod present but no .go files yet — nothing to verify."
@@ -179,7 +179,7 @@ if [ -z "$gofiles" ]; then
fi
head_ "correctness"
pkgs=$(go list ./... 2>/dev/null | grep -vE "^$mod/(ideas|reference)(/|$)")
pkgs=$(go list ./... 2>/dev/null | grep -vE "^$mod/(ideas|reference|\.scratch)(/|$)")
if [ -z "$pkgs" ]; then
head_ "go"; note "no engine packages yet — nothing to verify."
result_and_exit