Development record
2026-08-22 — Website decision interview (nine questions, all ruled): retired
2026-08-22 — Website decision interview (nine questions, all ruled): retired ADRs render as baseline stubs, no tombstone files (revisit labels on real use); /record/ pages carry full bodies, the issue ledger is opted in for this repo, and every condensed view is countable-only — counts, dates, ids, titles — never prose written for the site; the featured intent is derived (newest entered-shipped/, id descending tie-break, no pin); the README migration lands as drafted, every heading entering the repo before the site may select it; the contributors page publishes per-model Assisted-by tallies under the attribution escape with a separate labelled bots-and- tools row (.mailmap canonicalises the pre-policy commit); analytics are declined outright — no scripts, no trackers, nothing that could require a consent banner (edge request counts suffice); the prototype's artifact URL stays out of the committed record; the prototype itself stays in local scratch until the private-banlist sources-sync anchors its short patterns (iss-2608220150157507); token usage becomes a local-only history-store datapoint with explicit-ask pricing (iss-2608220150157508). Amendment traceability added to itd-137 (last-touched links the record's git history); a foundations page (principles and disciplines, lists-and-links) added to itd-136; itd-140 cross-references script-first-mvp as its general form.
Frontmatter
| id | dcn-2608220000000005 |
|---|---|
| type | decision |
| date | 2026-08-22 |
.abcd/work/decisions/dcn-2608220000000005-website-decision-interview-nine.md
open on GitHub ↗ · commit history ↗
mentions5
- iss-2608220150157507The machine-local private name-guard blocked a commit on the entry its hook reports as entry-14: the unanchored pattern matches inside an unrelated academic author's surname in rendered bibliography content (the site prototype), a false positive that keeps the behavioural spec out of the shared tree. The fix site is the generator, not the file: the pattern sits inside the generated abcd-sources block of the private-names store ("do not edit between markers" — a hand-anchored edit is overwritten by the next sources sync), so the sources-sync that emits the block must word-boundary-anchor every short name pattern it writes at emit time. Until that ships the prototype lives in the local scratch tier and the plan documents the detour (decision confirmed 2026-08-22: status quo, no guard weakening, no hand-edits to the generated block; the prototype is committed into research/abcdev-site/ in a follow-up once the anchoring lands). Fix the detector, not the finding
- iss-2608220150157508Local-only token-usage accounting in the history store: at history capture time, extract per-message usage (input, output, cache-read, cache-write) and the model id from the transcript's own usage fields, store the aggregate with a timestamp in the stored transcript's metadata, and offer a report summing per session and per repo. Pricing is a user-level table (~/.abcd), recorded on explicit ask only: when a report meets a model with no recorded pricing it offers an explicit refresh verb in the docs-cite-refresh mould — never an implicit fetch (adr-38). Estimates are labelled API-equivalent (subscription seats do not bill per token; cache tiers price differently). Local-only by construction: never committed, never rendered on any site
- itd-136Alice opens the record explorer and reads the whole development record — every decision, intent, spec and issue as a page, with contributors and references — without reading YAML on GitHub
- itd-137Maya sees how every decision connects — one relationship chart with a date coil and a links-only layout, and a five-lane genealogy of the record over time
- itd-140The Generic/Specific Boundary of the Site Generator Is a Gate, Not a Hope