NaN payloads are not preserved: every NaN is one canonical value in the
delta and crosses as ADR 005's `nan` token, so ADR 009 no longer changes
ADR 005 clause 11. Zeros follow IEEE: -0.0 equals +0.0, and a zero sum
takes the sign IEEE gives the same addends. The round-trip property test
asserts a NaN comes back as the canonical NaN.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
- AGENTS.md: "Three files" is now "These files"; the table lists five.
- Digests 43 and 45 regain the traps the review found missing.
- protocol.md and formula-and-io.md cite file-inventory.md for the Wasm
appendix and the inventory, which moved there.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- repo-stats reads the gotcha list from context/gotchas.md (the digest in
repo-map.md no longer measures the doc-growth signal) and reports it as
`docs.gotchas`; the test fixture and its derived expectations follow.
- AGENTS.md and the wave agent-rules protect gotchas.md and
file-inventory.md like the repo map they were split from.
- doc-site.md's publication table lists the two new pages.
- file-inventory.md's Context docs rows describe the three files correctly.
- the code-review skill points at gotchas.md for the long form.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Folds use the natural CellKey order and Seq is gone; no view action
reorders the store; rollback joins the per-command snapshot; a notice
per committed command, with a view-definitions flag; the non-finite
wire change to ADR 005 is stated; the watermark is the whole stamp and
corrections are restricted to the window; deltas cross a hop only after
commit; the totals overlay is conditional on ADR 008; this ADR owns the
text-width rule.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
repo-map.md was 173 KB (~43k tokens), too long to be part of every new
agent's context. The full gotcha text moves verbatim to context/gotchas.md
and the per-file inventory (with the old Wasm/CLI/Testing sections) to
context/file-inventory.md; the map keeps a one-or-two-line digest per
gotcha under the same numbers, so every `gotcha N` citation still resolves.
The doc-site manifest publishes the two new pages, and `gotchas` gets the
same gotcha-N anchors as `repo-map`.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Status rows for records-mode order and fold order, the writer's other
sorted lines, GP fit row order, and two internal fingerprints. A digit
run compares by length after stripping leading zeros, then by bytes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
Defines natural order, applies it to the display suffix, and adds a
Status row for the conflict with CellKey's String::cmp order: RecordHash
values change and saved data lines reorder; the loader canonicalises.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
The Opus review of 46c8a967: a new-version file had nowhere to declare
its stored measures. The ## Category: _Measure section stays and lists
them with displays and ids; its header declares nothing. Clause 6 says
input text means files and command-language text, distinct from
interactive typing. The sort note says plain string order, not numeric.
The user approved the amendment on PR #326 (2026-10-09), so its Status,
the accepted ADR's pointer, core.md section 20 and the doc-site title
no longer say proposed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
On the user's instruction an ADR states only what its decision changes,
and mentions an existing convention only where it conflicts. The accepted
ADR 007 is restored to main's text plus a one-line pointer, so merging
this PR keeps it; the amendment is context/adr/007-stable-identities-
amendment-1.md (280 lines, from 784), with a table of the accepted rules
it replaces. The doc site lists the new file, and core.md section 20
points at it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
Following the user's instruction, restated conventions and current
behaviour are removed except where the decision conflicts with them, and
the open questions are cut to the five design choices still open.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
The duplicate measure display follows from the profit-<n> rule and is
stated as its consequence; where stored measures are listed is the
format's existing concern; interactive typing is UI behaviour, not
identity. The Open questions section now says None.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
Their ids and displays are hardcoded; an old file's _Measure names are
recognised, not migrated as declarations. Open question 2 narrows to
where a new-version file declares the stored measures.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
- Id alphanumerics are ASCII and include -: slugify maps everything
outside a-z, 0-9 and - to _, collapses _, trims _ and - at both ends,
prefixes n before a digit; the id syntax, examples and the suffix /
hyphenated-slug collision rule follow.
- A file never declares a virtual category and refers to one by its id.
- Only CSV import and the .improv loaders read display names in input
text; command-language text, from any source, names things by id.
- The formula line is shown before and after; the dimension spelling and
the [_measure] tag follow from the rules, so that question is deleted.
- The Opus review of 2dfe0886: each measure is keyed by one handle, and
the shared-display case moves to an open question; views join the
things a formula may name.
Open questions are now three: a formula and a stored measure with the
same display, where stored measures are declared, and whether interactive
typing keeps a display stage.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
Codex's review of 6e467878. The suffix question followed from two
decided rules (collisions take -<n>; a hand-written id obeys the
generated syntax), so clause 4 now states the id syntax and the question
is deleted. Step 2 says the slug ends in a-z, 0-9 and _ whichever reading
of "alphanumeric" is chosen. The remaining questions are renumbered 1-4.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
The decisions are written into the clauses as plain design, tagged
[Amendment]: a measure formula's id is the measure's id; formulas may refer
to any id-bearing thing; ids always win, with the display as a preview;
user interfaces accept display names and scripts use ids and display_for;
slugify replaces every non-alphanumeric character with _, collapses _,
trims _ at both ends and prefixes n before a digit; a hand-written id obeys
the generated syntax; a leading _ is reserved for virtual ids, which are
lower case and never written to .improv; records-mode positions are values;
groups have a display and ordinary ids.
All eleven questions are deleted. Five new ones are open: the -<n> suffix
in hand-written ids, ASCII "alphanumeric", how a file records the virtual
categories, the dimension formula line and [_measure] tag, and which
headless entry points are scripts. core.md section 20's note follows the
new slug rules.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze