docs(ogar): calcify Northstar plan + fix(ogar-class-view): codex P2 stable order#79
Merged
Merged
Conversation
…tar plan Two follow-ups landing on top of merged #77. 1. fix(ogar-class-view): codex P2 — stable order on known_class_ids() The previous shape borrowed HashMap's randomized iteration; downstream bulk emitters using it for generated artifacts / drift snapshots would reorder across process runs. Now iterates `ogar_vocab::class_ids::ALL` in codebook order; a regression test pins both stability and a second-call-equals-first invariant. 2. docs: calcify the Northstar plan Rewrites docs/integration/CLASSVIEW-MATERIALIZATION-PLAN.md (was 125 LOC, now 486 LOC) to capture EVERY architectural insight from the sprint that landed #77/#78 so a future session does not drift: §0 picture (two-pipeline diagram, one codebook) §1 six invariants (codebook calcified / N3 / Class-types vs ClassView- labels / ClassId==canonical_concept_id / ≤64 / mass-mail templates) §2 the two pipelines in detail (build-time codegen via &Class, run-time projection via ClassView), the muscle-memory loop, and the UnifiedBridge layer above them §3 +5+5 follow-on PRs (T1-T5 askama templates + C1-C5 consumer wirings), each with three calibration gates §4 SEVEN anti-patterns — drifts already explored and rejected, with the "why wrong" for each. Includes: - the bicycle (don't bolt typed_rows onto ClassView) - bifurcating templates static-vs-dynamic - one-template-per-(class×target) blowup - A2UI in-now coupling - HashMap random-order surfaces (codex P2 trigger) - unescaped Rust keyword field names (codex P1 on #78) §5 SEVEN epiphanies captured verbatim (Rails words die / JSON PostgreSQL grind / class carries types / mass-mail templates / SoA knows its classview / dynamic at compile-time doesn't go static / askama IS jinja-rs) §6 Prior art lineage — WoA-rs (structural antecedent, live), A2UI (roadmap T6), DUSK_Solution + MUIBridge (design lineage only) §7 Roadmap T6-T10 (A2UI, calibration aggregator, DOLCE live wiring, 0x03XX+ promotions for OP-only concepts, commerce-arm convergence) §8 Open PR map + status §9 Pointer to convergence artifacts on redmine-rs + nexgen-rs The plan is the calcified single source of truth for the lane. Sections 1, 4, 5 are mandatory reading before any future work in it. cargo test 9/9 (ogar-class-view), workspace check green.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Two follow-ups landing on top of the just-merged #77:
1.
fix(ogar-class-view)— codex P2 stable orderknown_class_ids()was borrowingHashMap's randomized iteration. Downstream bulk emitters using it for generated artifacts / drift snapshots would reorder across process runs without any schema change. Now iteratesogar_vocab::class_ids::ALLin codebook order; a regression test pins both stability and a second-call-equals-first invariant.Replies the codex review on #77.
2.
docs— calcify the Northstar planRewrites
docs/integration/CLASSVIEW-MATERIALIZATION-PLAN.md(125 → 486 LOC) to capture every architectural insight from this sprint so a future session does not drift. The plan is now the calcified single source of truth for this lane.ClassId == canonical_concept_id/ ≤64 / mass-mail templates&Class, run-time projection viaClassView), the muscle-memory loop, theUnifiedBridgelayer above them0x03XX+promotions, commerce-arm convergence)redmine-canon/op-canonsnapshots)Sections 1, 4, 5 are mandatory reading before any future work in this lane.
Why this matters
The sprint surfaced architectural calls that took several round-trips to settle (e.g. the bicycle anti-pattern around
typed_rowsonClassView; the bifurcation question; the binding-struct-is-just-a-bag insight). Calcifying them now stops a future session from re-deriving — or worse, drifting onto a rejected path.Tests
cargo test -p ogar-class-view9/9; workspace check + workspace test green.Pair
PR #78 (
ogar-render-askama) was force-rebased onto the new main (carries the codex P1 keyword-escape fix + this PR'sCargo.tomlworkspace member entry conflict-resolved cleanly).