@@ -5,7 +5,35 @@ Date: 2026-03-24 (standalone since 2026-03-24, originally 2026-03-13)
55
66Note: This lane was formerly Lane 2 of improvement 9. Now standalone because
77the Sudoku demo * uses* trace-id but doesn't * change* it. The merge edge-type
8- pipeline work remains in ` docs/main.improvement.9.trace-id.todo.current.md ` .
8+ pipeline work is complete in ` docs/main.improvement.9.trace-id.complete.md ` .
9+
10+ ## Freshness Refresh (2026-04-05)
11+
12+ The repo now has two new capabilities that matter to this demo:
13+
14+ - ` trace-id --json | merge --stdin --json ` preserves role metadata
15+ - ` trace-id ` runs can be persisted and reused when the puzzle inputs are still fresh
16+
17+ For Sudoku, the practical framing is:
18+
19+ 1 . raw eventness files stay the source of truth
20+ 2 . saved trace-id runs are reusable evidence
21+ 3 . ` lore file ` remains a concept-stage label, not a locked artifact name
22+
23+ ` Lore file ` here means a future generated artifact category that hides the
24+ recur/eventness mechanics used to produce it, while keeping the useful structure for
25+ the next consumer.
26+
27+ Today the concrete artifact is still ` sudoku.cascades.json ` .
28+ It is browser-facing generated data, but we should not rename it conceptually into a
29+ formal lore file until that idea is settled.
30+
31+ ### Next Action With Current Lore
32+
33+ 1 . Keep the browser runtime recur-free
34+ 2 . Teach ` Generator.jl ` / ` Recur.jl ` to use ` --save-run ` and ` --reuse-if-fresh `
35+ 3 . Continue treating ` sudoku.cascades.json ` as the browser-facing generated cascade artifact
36+ 4 . Only regenerate cascades when the puzzle package eventness actually changed
937
1038## Phase 1 Complete (2026-03-13)
1139
@@ -478,8 +506,8 @@ The game engine (Julia or JS) owns all Sudoku logic:
4785063 . ** Accept input** — human picks cell + value
4795074 . ** Validate** — check against solution (engine knows the rules)
4805085 . ** Write move event** — write ` sudoku.flow.r{R}c{C} ` with proper keywords
481- 6 . ** Call recur** — ` recur trace-id "sudoku.r{R}.c{C}" --scope "sudoku.**" --json `
482- 7 . ** Render cascade** — parse JSON, display define/produce/consume/trigger in UI
509+ 6 . ** Call recur or reuse saved run ** — ` recur trace-id "sudoku.r{R}.c{C}" --scope "sudoku.**" --json --reuse-if-fresh --run-name "sudoku.r{R}.c{C}" `
510+ 7 . ** Render cascade / lore ** — parse JSON, display define/produce/consume/trigger in UI
4835118 . ** Propagate** — update candidate lists, detect naked singles, write next events
4845129 . ** Hint** — switch to easier mask, call ` recur files --stdin ` with new mask
485513
@@ -656,6 +684,9 @@ demos/sudoku/html5/
656684** No recur installed in the browser.** Julia generated the puzzle package.
657685JavaScript reads JSON. The hierarchical structure from recur is preserved in the files.
658686HTML5 navigates ` sudoku.cascades.json ` hierarchically — same structure recur produced.
687+ That makes ` sudoku.cascades.json ` a generated cascade artifact.
688+ If we later formalize a lore-file concept, this artifact is a likely candidate, but it
689+ is not being renamed in principle yet.
659690
660691### Live mode (Julia local server) — Implemented
661692
@@ -774,4 +805,5 @@ docs/
774805- ` src/main_command_trace_id_impl.rs ` — trace-id implementation
775806- ` src/main_command_trait_impl.rs ` — trait config (producer_keywords tuning)
776807- ` docs/main.improvement.8.trace-id.todo.current.md ` — trace-id MVP lane
777- - ` docs/main.improvement.9.trace-id.todo.future-plan.md ` — merge edge-type (future)
808+ - ` docs/main.improvement.9.trace-id.complete.md ` — merge role passthrough complete
809+ - ` docs/main.command.trace-id.run.todo.current.md ` — saved-run follow-up lane
0 commit comments