Commit Graph

1725 Commits

Author SHA1 Message Date
Ed Langley 2a528884a7 Merge pull request #206 from fiddlerwoaroof/fix/lxg0-w1bu
improvise-lxg0/w1bu: a fresh session has no history; records cell kinds checked per column
2026-09-22 23:33:55 -07:00
Ed Langley ef743e926d Merge pull request #201 from fiddlerwoaroof/docs/agents-md-wave
AGENTS.md agrees with the wave skill; bd block superseded; audit scans .agents; gates from ci.yml
2026-09-22 23:29:37 -07:00
Edward Langley 141be9fca6 Review replies go on the PR thread; ADR PRs merge on the user's approval
- agent-rules "GitHub": authors reply on the PR to every finding they
  address (commit, or why declined); reviewers read existing reviews first
  with scripts/pr-reviews, answer every Codex review on its thread, and
  state the head SHA they reviewed. SKILL.md points reviewers there.
- AGENTS.md "ADR pull requests": numbered open questions, the user answers
  on the PR, "What the user decided", merge only on "Approved" (PR #122).
  SKILL.md "Shepherding" points to it.
- Fix a pointer to the renamed policy section that wrapped across a line
  break and so escaped the rename.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 23:16:48 -07:00
Edward Langley 32d5d8f7f3 Merge gh/main (4b88084) into fix/lxg0-w1bu
Resolved context/test-evidence/command.md: gh/main's version plus this
branch's three entries, kept ahead of gh/main's new JSON-import section.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 23:09:02 -07:00
Edward Langley 70c33bd3f3 Work is done when its PR has merged; one statement of it, pointed to
- User ruling: work is not done until it is in a PR and that PR has
  merged. Stated once, in AGENTS.md's repo-owned section outside bd's
  markers (renamed "Repository policy over the Beads blocks"); agent-rules
  "Do not merge" and SKILL.md "Shepherding" point to it.
- "Who owns what" no longer says kb facts are batched two sentences
  before saying they are not: repo-map lines are batched, kb facts are
  written as they arrive.
- improvise-8haj: the ID audit takes its file list from git ls-files
  (tracked + untracked, minus ignored), so build output such as
  harness/serve and other agents' worktrees are not scanned; grep -d skip
  passes over the .claude/skills symlinks.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 23:07:57 -07:00
Ed Langley 4b880846b9 Merge pull request #202 from fiddlerwoaroof/fix/6yvg-dz8c-json-float
Every JSON parser reads numbers exactly; derive the float_roundtrip check (improvise-6yvg, improvise-dz8c)
2026-09-22 23:06:31 -07:00
Ed Langley 4e5299f6d7 Merge pull request #198 from fiddlerwoaroof/fix/w7qd-ssoe-help-guards
Grid-move and help-row guards that the #180 re-review found blind (w7qd, ssoe)
2026-09-22 23:05:01 -07:00
Ed Langley 8c3b013c48 Merge pull request #191 from fiddlerwoaroof/collapse-fu/t0ma
improvise-t0ma: pin records_steps and drill_steps as steps
2026-09-22 23:04:35 -07:00
Edward Langley daa09e1f4f Merge remote-tracking branch 'gh/main' into docs/agents-md-wave 2026-09-22 23:04:21 -07:00
Ed Langley 966637cdb6 Merge pull request #204 from fiddlerwoaroof/fix/uo2p-drill-apply-order
Compose a drill's staged edits instead of replaying them in hash order (improvise-uo2p)
2026-09-22 23:03:06 -07:00
Edward Langley aadf5ddd35 Drop --locked from the float_roundtrip check: --no-deps never reads the lockfile
Review of #202 showed `cargo metadata --no-deps --locked` exits 0 against a
stale lockfile, so the flag promised a check it does not make.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:57:58 -07:00
Edward Langley 6b3b9f03de Merge remote-tracking branch 'gh/main' into fix/6yvg-dz8c-json-float
# Conflicts:
#	context/test-evidence/clients.md
#	context/test-evidence/command.md
2026-09-22 22:57:58 -07:00
Edward Langley afb3e471c9 Merge remote-tracking branch 'gh/main' into fix/lxg0-w1bu
# Conflicts:
#	context/test-evidence/command.md
2026-09-22 22:56:55 -07:00
Edward Langley 74d329d15f improvise-hoxy: names_its_column no longer accepts Derived on a formula-free fixture
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:53:58 -07:00
Ed Langley b4f58e9c35 Merge pull request #187 from fiddlerwoaroof/fix/hzjo-determinism-law
hzjo: the determinism law, over every command and independent contexts
2026-09-22 22:52:22 -07:00
Edward Langley bcbb5591f9 Merge remote-tracking branch 'gh/main' into fix/lxg0-w1bu
# Conflicts:
#	context/test-evidence/command.md
2026-09-22 22:52:14 -07:00
Edward Langley 5c50bf8780 Merge gh/main into fix/uo2p-drill-apply-order
Resolved context/test-evidence/command.md by keeping both appended sides.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:51:43 -07:00
Ed Langley 98d10ca591 Merge pull request #180 from fiddlerwoaroof/fix/help-keys-checks
Help and advertised-key checks that can see what they claim (wk18, 3t5x, 3ij0, jhdf)
2026-09-22 22:44:46 -07:00
Edward Langley cfcc9bff97 Correct the determinism law's width-guard and analyzer claims (improvise-b9f2) 2026-09-22 22:43:14 -07:00
Edward Langley de49716a41 Merge remote-tracking branch 'gh/main' into fix/hzjo-determinism-law
# Conflicts:
#	context/test-evidence/command.md
2026-09-22 22:42:42 -07:00
Edward Langley b22f6e5389 improvise-lxg0/w1bu: evidence, and command.md describes the fixed state
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:42:34 -07:00
Ed Langley fdc8e91383 Merge pull request #192 from fiddlerwoaroof/fix/jgzw-tile-virtuals
jgzw: keep _Index/_Dim tileable, and pin the offered set by name
2026-09-22 22:41:32 -07:00
Edward Langley f75b58af91 The drawn keys rows must equal what the builders asked for, in order (aszt)
A count let a bypass that also drops a real row pass; content does not.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:41:06 -07:00
Edward Langley 31fd2f5480 Merge remote-tracking branch 'gh/main' into collapse-fu/t0ma 2026-09-22 22:41:05 -07:00
Edward Langley 9512a2db1f The grid-move walk stands far from every edge, so it sees magnitude (5kdr)
21x21 grid, 8x8 window, start (10,10): moves land at 10+d, page-scroll at
10+page_rows(8)*d, jumps at 0/20. grid_move's page rule is page_rows(),
which the test reads rather than restating. Doubled move-selection, a
one-row scroll-rows and a page-size-blind page-scroll each fail.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:39:36 -07:00
Edward Langley a9a5b3075a Merge remote-tracking branch 'gh/main' into fix/lxg0-w1bu 2026-09-22 22:39:18 -07:00
Ed Langley a2f3c8d3e5 Merge pull request #193 from fiddlerwoaroof/fix/view-history
improvise-lrrx/8nd9: view history does not survive a document swap, and a refused step leaves no frame
2026-09-22 22:37:55 -07:00
Edward Langley e5721b9d94 improvise-lxg0/w1bu: a fresh session has no history; records kinds checked per column
fresh_view points the new slice at the document's view instead of folding
a SwitchView from ViewState::default(), which recorded a visit to
"Default" that never happened. The records-grid enumeration now checks
each cell's CellId against its column's RecordCol rather than only that
it is Some.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:37:25 -07:00
Edward Langley 66398f163f Merge branch 'fix/help-keys-checks' into fix/w7qd-ssoe-help-guards 2026-09-22 22:37:19 -07:00
Edward Langley 3390ab0394 Merge gh/main into fix/jgzw-tile-virtuals
Resolves the append-at-EOF conflict in context/test-evidence/command.md by
keeping both sides: gh/main's version plus this branch's tile.rs section.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:32:54 -07:00
Edward Langley 92eefeec4b Merge gh/main into fix/uo2p-drill-apply-order
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:31:15 -07:00
Edward Langley bc08a13038 Compose a drill's staged edits instead of replaying them in hash order (improvise-uo2p)
ApplyAndClearDrill walked pending_edits, a HashMap, and applied each edit on
its own. A rename moves the row's cells, so a measure edit replayed after it
wrote the old key. That left a ghost record there and a stale value in the moved
record. A second rename on the same row always found nothing and was dropped.
Across rows, a swap lost one record's data in either order.

RecordRewrite::of builds each row's final record once. It reads unedited values
off the model before anything is written, and applies every rename to every
cell. RecordRewrite::merged puts every clear before every write, in snapshot row
order. The plain records path calls the same function with its one edit, so
rename_record_coordinate and the drill's own copy are gone (gotcha 19).

Reasoning: context/code/command.md, RecordRewrite.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:30:55 -07:00
Edward Langley 95bd593dbe Merge remote-tracking branch 'gh/main' into fix/help-keys-checks
# Conflicts:
#	context/test-evidence/clients.md
#	context/test-evidence/protocol.md
2026-09-22 22:30:19 -07:00
Edward Langley c1932094d0 Merge gh/main into fix/view-history; point the client-stack claim at improvise-lxg0
The evidence file is gh/main plus this branch's five entries, inserted at
their original anchor. command.md no longer claims a client's history
cannot hold a dead name: fresh_view seeds a phantom Default frame
(improvise-lxg0, not fixed here).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:30:18 -07:00
Edward Langley 0825f9984d rustfmt the determinism law's width guard (improvise-e1sm) 2026-09-22 22:29:09 -07:00
Ed Langley d1c4884399 Merge pull request #196 from fiddlerwoaroof/fix/projection-identities
improvise-exdg/7xyx: a coordinate cell is CellId::Coordinate; FrameGroup::cat deleted
2026-09-22 22:28:36 -07:00
Ed Langley b59af2dfe0 Merge pull request #199 from fiddlerwoaroof/fix/i0v9-second-tab-lock
The worker's status claims success only on its first frame (improvise-i0v9)
2026-09-22 22:28:12 -07:00
Edward Langley f3932c1ca5 Merge remote-tracking branch 'gh/main' into fix/hzjo-determinism-law
# Conflicts:
#	context/code/command.md
#	context/test-evidence/command.md
2026-09-22 22:24:38 -07:00
Edward Langley f24944b437 WIP: determinism law docs — measured catch rate, execute-not-apply scope (improvise-e1sm) 2026-09-22 22:23:26 -07:00
Edward Langley c70c428c47 WIP: determinism law drills every item of the document (improvise-e1sm) 2026-09-22 22:22:29 -07:00
Edward Langley feefe17d53 Merge remote-tracking branch 'gh/main' into fix/6yvg-dz8c-json-float
# Conflicts:
#	context/test-evidence/command.md
#	context/test-evidence/tooling.md
2026-09-22 22:19:30 -07:00
Edward Langley 95a35e8cce Every JSON parser reads numbers exactly, and the check derives its crates (improvise-6yvg, improvise-dz8c)
improvise-6yvg reproduced. A JSON import in improvise-command and a legacy
JSON .improv load in improvise-io stored 0.24815714285714285 as
0.24815714285714283 in each crate's own test build. The root binary's
`improvise import` used the same lossy parser. Now float_roundtrip is on every
normal serde_json dependency in the workspace: root, improvise-command,
improvise-io, and the optional test-support dependency of improvise-protocol.

improvise-dz8c: the hand-listed cargo-tree check over three frame-parsing
crates is replaced by tests/json_numbers.rs. It reads
`cargo metadata --no-deps` and names every package, including target-specific
entries, whose normal serde_json dependency lacks the feature. The rule and why
it beats "parses a frame", the build graph, and enabling the feature once in
the protocol crate are in context/code/protocol.md.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:19:05 -07:00
Edward Langley 31b5acdb6e AGENTS.md and the wave rules agree on how work ships; gates derived from ci.yml
- improvise-rzux: AGENTS.md now states the per-agent PR workflow the wave
  skill uses (adversarial review at the head SHA, merge on GitHub, local main
  fast-forwards to gh/main) and points to SKILL.md "Shepherding". The
  obsolete one-PR-per-wave and local-integration text is cut.
- improvise-x1uk: the Beads integration block is regenerated whole by bd
  (bd init, bd setup factory|opencode|mux). It is replaced with bd 1.3.0's
  own minimal render, which no longer says git merge origin/main, and the
  repository's policy (no team-maintainer opt-in, the TODO exception that
  had been hand-edited inside the markers) moves to a section outside them.
- improvise-anmm: the ID audit scans .agents and the tracked .claude files,
  excludes the kb skill's example crate name, and anchors its matcher so a
  ticket body saying "not found" is not reported as a dead id.
- improvise-xolb: agent-rules' gate list is the test/js/kb CI jobs step for
  step, with the conditional jobs (wasm incl. improvise-gp, harness-lint,
  build+browser incl. the bundle node tests) and the excluded one named.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:15:51 -07:00
Ed Langley 608ba6a6c8 Merge pull request #195 from fiddlerwoaroof/wire2/59q8
Source scanner: bound test-only items by brackets, evaluate cfg predicates (59q8)
2026-09-22 22:15:24 -07:00
Ed Langley bd95044a6e Merge pull request #182 from fiddlerwoaroof/fix/yf7p-cursor-is-the-only-context
yf7p: no registration can overwrite a parsed field
2026-09-22 22:14:51 -07:00
Ed Langley 810077a0d0 Merge pull request #181 from fiddlerwoaroof/wire2/bok4
A model effect that cannot do what it names refuses its frame (bok4)
2026-09-22 22:13:43 -07:00
Edward Langley aeb88e3eac Merge gh/main into fix/jgzw-tile-virtuals
Resolves the append-at-EOF conflict in context/test-evidence/command.md by
keeping both sides: gh/main's version plus this branch's tile.rs section.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:11:35 -07:00
Edward Langley d5854bc11c Merge remote-tracking branch 'gh/main' into fix/i0v9-second-tab-lock
# Conflicts:
#	context/test-evidence/clients.md
2026-09-22 22:11:29 -07:00
Edward Langley c960713f8c The worker's status claims success only on its first frame (improvise-i0v9)
The worker transport wrote "in-page worker · <doc>" when it spawned the
worker, before anything had answered, so a tab whose worker could not start
showed a success-looking status over a blank page. It now writes "starting
the worker · <doc>…", and createShell's arm() takes an `answer` that sawFrame
writes on the first frame, but only while the watchdog is still armed. A
ReadOnly or SeedMissing notice lands BEFORE the Snapshot, and fail() has
already disarmed, so the claim cannot overwrite the precise reason.

The two-tab spec now logs every #status and denies both the premature claim
and "did not answer" before the page clock is walked. A new spec pins the
exact status sequence on the writable path. Reasoning:
context/code/clients.md, "The watchdog".

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:10:29 -07:00
Ed Langley a164726fbd Merge pull request #183 from fiddlerwoaroof/fix/y1av-cursor-off-zero
y1av: seat the at-cursor panel tests off index 0
2026-09-22 22:09:55 -07:00