Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ jobs:
run: |
git config user.name "gunbc-ci-auto-heal"
git config user.email "gunbc-ci-auto-heal@users.noreply.github.com"
git add ".github/workflows/ci.yml" ".github/workflows/falsifier.yml" ".gitignore" "ROADMAP.md" "DESIGN.md" ".githooks/pre-push" ".githooks/pre-commit" ".github/fleet-converge.sh" "dag/gunbc/stage0_crate_layout_generated.dag" "src/v1/stage0/src/bootstrap_stage0_crate_layout_generated.rs" "dag/gunbc/stage0_crate_partition_generated.dag" ".github/live-deploy-srv1-apply.sh" ".github/live-deploy-srv1-retract.sh" "docs/plans/idea-machine.md" "docs/plans/algebraic-rewrite-optimization.md" "docs/plans/dag-v2-defork-audit.md" "docs/plans/v2-self-hosting.md" "docs/plans/m5-fixture-store-consolidation.md" "docs/plans/model-realization-fork.md" "docs/plans/ci-merge-freshness.md" "docs/plans/seed-debt-bundle-item-2.md" "docs/plans/axiom-syllogism-lens.md" "docs/plans/invert-hand-maintained.md" "docs/plans/fail-closed-lockdown.md" "docs/plans/format-model-reconciliation.md" "docs/plans/regime2-shared-emission-fold.md" "docs/plans/shell-emission-model.md" "docs/plans/construction-justification-rule.md" "docs/plans/emission-ingestion-inverse.md" "docs/plans/testgen-oracle.md" "docs/plans/disposition-carrier.md" "docs/plans/fold-ergonomics.md" "docs/plans/m4-universal-hermetic-corpus.md" "docs/plans/wiring-liveness-preflight.md" "docs/plans/interpreter-kernel-d.md" "docs/plans/inert-layer-lens.md" "docs/plans/compile-clean-forcecheck.md" "docs/plans/expressibility-frontier.md" "docs/plans/p1-where-clause-lowering.md" "docs/plans/intent-linearity-design-draft.md" "docs/plans/solve-higher-order-design.md" "docs/plans/language-target-self-host-frontier.md" "docs/plans/self-applying-lenses.md" "docs/plans/budget-tree.md" "docs/plans/cardinality-refinement.md" "docs/plans/compute-envelope-model.md" "docs/plans/input-envelope-roadmap.md" "docs/plans/ci-selection-vs-scheduling.md" "docs/plans/ci-process-end-to-end.md" "docs/plans/ci-oom-reclassification.md" "docs/plans/bounded-input-cost-envelope-scheduling.md" "docs/plans/ci-humming.md" "docs/plans/edge-b-rust-dag-provenance-brief.md" "docs/plans/resolver-type-name-collision-wall.md" "docs/plans/realization-measurement-loop.md" "docs/plans/host-effect-orchestration.md" "docs/plans/ci-floor-fractal-gantt.md" "docs/plans/resolver-pathology-profile-receipt.md" "docs/plans/representation-minimization.md" "docs/plans/reference-grounding-migration.md" "docs/plans/typescript-gap-census.md" "docs/plans/cli-run-hollowing-plan.md" "docs/plans/fleet-acceptance-criteria.md" "docs/plans/structural-quadratic-wall-coverage-audit.md" "docs/plans/ci-performance-tanking-evidence.md"
git add ".github/workflows/ci.yml" ".github/workflows/falsifier.yml" ".gitignore" "ROADMAP.md" "DESIGN.md" ".githooks/pre-push" ".githooks/pre-commit" "dag/gunbc/stage0_crate_layout_generated.dag" "src/v1/stage0/src/bootstrap_stage0_crate_layout_generated.rs" "dag/gunbc/stage0_crate_partition_generated.dag" ".github/live-deploy-srv1-apply.sh" ".github/live-deploy-srv1-retract.sh" "docs/plans/idea-machine.md" "docs/plans/algebraic-rewrite-optimization.md" "docs/plans/dag-v2-defork-audit.md" "docs/plans/v2-self-hosting.md" "docs/plans/m5-fixture-store-consolidation.md" "docs/plans/model-realization-fork.md" "docs/plans/ci-merge-freshness.md" "docs/plans/seed-debt-bundle-item-2.md" "docs/plans/axiom-syllogism-lens.md" "docs/plans/invert-hand-maintained.md" "docs/plans/fail-closed-lockdown.md" "docs/plans/format-model-reconciliation.md" "docs/plans/regime2-shared-emission-fold.md" "docs/plans/shell-emission-model.md" "docs/plans/construction-justification-rule.md" "docs/plans/emission-ingestion-inverse.md" "docs/plans/testgen-oracle.md" "docs/plans/disposition-carrier.md" "docs/plans/fold-ergonomics.md" "docs/plans/m4-universal-hermetic-corpus.md" "docs/plans/wiring-liveness-preflight.md" "docs/plans/interpreter-kernel-d.md" "docs/plans/inert-layer-lens.md" "docs/plans/compile-clean-forcecheck.md" "docs/plans/expressibility-frontier.md" "docs/plans/p1-where-clause-lowering.md" "docs/plans/intent-linearity-design-draft.md" "docs/plans/solve-higher-order-design.md" "docs/plans/language-target-self-host-frontier.md" "docs/plans/self-applying-lenses.md" "docs/plans/budget-tree.md" "docs/plans/cardinality-refinement.md" "docs/plans/compute-envelope-model.md" "docs/plans/input-envelope-roadmap.md" "docs/plans/ci-selection-vs-scheduling.md" "docs/plans/ci-process-end-to-end.md" "docs/plans/ci-oom-reclassification.md" "docs/plans/bounded-input-cost-envelope-scheduling.md" "docs/plans/ci-humming.md" "docs/plans/edge-b-rust-dag-provenance-brief.md" "docs/plans/resolver-type-name-collision-wall.md" "docs/plans/realization-measurement-loop.md" "docs/plans/host-effect-orchestration.md" "docs/plans/ci-floor-fractal-gantt.md" "docs/plans/resolver-pathology-profile-receipt.md" "docs/plans/representation-minimization.md" "docs/plans/reference-grounding-migration.md" "docs/plans/typescript-gap-census.md" "docs/plans/cli-run-hollowing-plan.md" "docs/plans/fleet-acceptance-criteria.md" "docs/plans/structural-quadratic-wall-coverage-audit.md" "docs/plans/ci-performance-tanking-evidence.md"
if git diff --cached --quiet; then
echo "chore-heal: no generated-artifact drift on this tree; nothing to commit"
else
Expand Down
2 changes: 2 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,8 @@ The operator's real TODO, organized (2026-07-22): six numbered items, each groun
- [ ] **a group of units is never a nickname** — taxonomy by how membership is KNOWN: positional (containment — module, the gold standard: being-in IS being-there, wrong membership unwritable) · derived (a computed relation — closure reachability, inhabitance, measured cost: membership is a query) · frontier (asserted per-row WITH reason + dissolve-on — sanctioned countable debt, the self-host-frontier shape) · nickname (asserted, string-keyed, no trigger — the violation; `family: String` and the closed #7074 feature enum are the type specimens). Migration pipeline: mint → frontier → query. Formalization home is the enforcement-intent carrier (its subject_roster IS this concept — no new lane): register every unit-naming roster; the gate = each registered group is Derived or Frontier-with-trigger; a bare unit-naming List of strings outside the registry is a review reject; a storage-grain proxy (dir/substring membership) must name its construction backstop (the long/ lane's 5s eval deadline is the blessed example — the dir cannot lie) or convert to Frontier rows.
- [ ] **family re-key — the immediate #7069 follow-on (operator: figure out where this dissolves immediately, else these pile up)**: `family: String` → the subject construct's DeclarationRef; membership derived as closure-reaches-subject from the EXISTING closure authority — needs no namespace terminal (#7080's false-edge fix was the blocker and is on main; the containment SymbolIndex re-points the derivation later as a one-projection swap). Precondition for the bulk flip PR (2a) landing its 744 rows Derived rather than as 744 fresh nicknames.
- [ ] **the census to burn down (swept 2026-07-22)**: `witness_exclusion_substrings` + its offline/fixture projections LANDED #7089 (typed frontier rows carry consumer classification; the parallel lists deleted) · the lens exception rosters (meta_exec_confinement · realization_vocab · inert_carrier · complexity_linearity_migration_debt · lens_registry_completeness) LANDED #7089 as typed Frontier rows, their prose reasons now typed fields · NON_FOLD_RESIDUE_ROSTER LANDED (this change, the group-7 data-out coupling): 125 typed FrontierRow rows on `gunbc.non_fold_residue` (123 legacy, deduped from the const's 127, + 2 fresh #7088 ci_floor_plan sites the re-home receipt caught), host census reads through the record-row reader, enrolled in the registry · remaining: discovery_scan_dirs / pool_roots (storage-grain proxies needing declared backstops). Burn down opportunistically when a PR touches the neighborhood; new instances blocked at review by the ts-group-u rule.
- [ ] **stage0 partition crates rot without a consumer — the incident receipt for ts-group-u (2026-07-23)**: the crate-partition module lists (`stage0_std_primitive_modules` and siblings in `v2.workflow.rust_crate_partition`) are hand rosters NOT enrolled in any registry, and nothing in CI builds the partition crate libs — so they drifted silently twice: #6977 (Jul 21) added the measure→currency closure edge and `v1-stage0-std-core` stopped building standalone (std_measure imports a std_currency the crate list never gained), and the partition allow-block lacked the monolith's recursion_limit so `v1-stage0-extdeps-languages` failed on serde json_internal expansion. Both FIXED by authority edit + two-generation regen (rust_crate_partition.dag + stage0_crates.dag → regen_stage0 rebuild → re-emit; `cargo build -p v1-stage0-std-core` green). Remaining, the class not the instance: (a) DONE this change — partition module rosters enrolled in `gunbc.roster_registry` (DeclaredFrontier; terminal dissolution = the emitted-crate-partition thread deriving the layout ByDerivation from the module graph); (b) give the partition crates an EXECUTING consumer — a per-crate cargo check in the build job (ci_spec decision) — else the class rots again with zero signal; (c) side receipt: regen_stage0 WRITE mode was also broken since #7059 for stale-binary reasons (compiled-in hand-maintained roster) — the two-generation lag means every regen-affecting change needs build→regen→rebuild→regen, worth a note on the carrier.
- [ ] **typed dissolution triggers — couple dissolve_on to the roadmap DAG for real (operator, 2026-07-23)**: prose `dissolve_on: String` becomes a typed variant naming the blocking roadmap node (`OnRoadmapNode` carrying a RoadmapNodeId, or a DeclarationRef where the trigger is a carrier fact), with prose retained only as the counted residue form. Then dissolution work is DERIVED, never hand-filed: every frontier/registry row with a typed trigger projects a dissolution node into the roadmap as a CHILD of its blocking item — the existing spawn-frontier deps-done machinery does the rest, so the moment the blocker closes (signoff), the dissolution item surfaces in Ready automatically. Enforcement: a lens reds a dangling node reference (trigger names a node that does not exist) and counts prose-trigger residue as the burn-down metric; no new scheduling mechanism, the coupling IS the edge. Natural follow-on to #7089 (FrontierRow is the carrier); shell→intent phase 3, meta-exec sequestration, and the belt-B interim scaffolds are the first typed references.

**6 · Planning + documentation — the stable anchor:**

Expand Down
4 changes: 4 additions & 0 deletions dag/gunbc/roadmap_authority.dag
Original file line number Diff line number Diff line change
Expand Up @@ -557,10 +557,14 @@ fn task_sheet_lead_lane() -> RoadmapSection {
authored(id: "ts-group-u", done: false, content: "**a group of units is never a nickname** — taxonomy by how membership is KNOWN: positional (containment — module, the gold standard: being-in IS being-there, wrong membership unwritable) · derived (a computed relation — closure reachability, inhabitance, measured cost: membership is a query) · frontier (asserted per-row WITH reason + dissolve-on — sanctioned countable debt, the self-host-frontier shape) · nickname (asserted, string-keyed, no trigger — the violation; `family: String` and the closed #7074 feature enum are the type specimens). Migration pipeline: mint → frontier → query. Formalization home is the enforcement-intent carrier (its subject_roster IS this concept — no new lane): register every unit-naming roster; the gate = each registered group is Derived or Frontier-with-trigger; a bare unit-naming List of strings outside the registry is a review reject; a storage-grain proxy (dir/substring membership) must name its construction backstop (the long/ lane's 5s eval deadline is the blessed example — the dir cannot lie) or convert to Frontier rows."),
authored(id: "ts-group-family", done: false, content: "**family re-key — the immediate #7069 follow-on (operator: figure out where this dissolves immediately, else these pile up)**: `family: String` → the subject construct's DeclarationRef; membership derived as closure-reaches-subject from the EXISTING closure authority — needs no namespace terminal (#7080's false-edge fix was the blocker and is on main; the containment SymbolIndex re-points the derivation later as a one-projection swap). Precondition for the bulk flip PR (2a) landing its 744 rows Derived rather than as 744 fresh nicknames."),
authored(id: "ts-group-census", done: false, content: "**the census to burn down (swept 2026-07-22)**: `witness_exclusion_substrings` + its offline/fixture projections LANDED #7089 (typed frontier rows carry consumer classification; the parallel lists deleted) · the lens exception rosters (meta_exec_confinement · realization_vocab · inert_carrier · complexity_linearity_migration_debt · lens_registry_completeness) LANDED #7089 as typed Frontier rows, their prose reasons now typed fields · NON_FOLD_RESIDUE_ROSTER LANDED (this change, the group-7 data-out coupling): 125 typed FrontierRow rows on `gunbc.non_fold_residue` (123 legacy, deduped from the const's 127, + 2 fresh #7088 ci_floor_plan sites the re-home receipt caught), host census reads through the record-row reader, enrolled in the registry · remaining: discovery_scan_dirs / pool_roots (storage-grain proxies needing declared backstops). Burn down opportunistically when a PR touches the neighborhood; new instances blocked at review by the ts-group-u rule."),
authored(id: "ts-group-partition-drift", done: false, content: "**stage0 partition crates rot without a consumer — the incident receipt for ts-group-u (2026-07-23)**: the crate-partition module lists (`stage0_std_primitive_modules` and siblings in `v2.workflow.rust_crate_partition`) are hand rosters NOT enrolled in any registry, and nothing in CI builds the partition crate libs — so they drifted silently twice: #6977 (Jul 21) added the measure→currency closure edge and `v1-stage0-std-core` stopped building standalone (std_measure imports a std_currency the crate list never gained), and the partition allow-block lacked the monolith's recursion_limit so `v1-stage0-extdeps-languages` failed on serde json_internal expansion. Both FIXED by authority edit + two-generation regen (rust_crate_partition.dag + stage0_crates.dag → regen_stage0 rebuild → re-emit; `cargo build -p v1-stage0-std-core` green). Remaining, the class not the instance: (a) DONE this change — partition module rosters enrolled in `gunbc.roster_registry` (DeclaredFrontier; terminal dissolution = the emitted-crate-partition thread deriving the layout ByDerivation from the module graph); (b) give the partition crates an EXECUTING consumer — a per-crate cargo check in the build job (ci_spec decision) — else the class rots again with zero signal; (c) side receipt: regen_stage0 WRITE mode was also broken since #7059 for stale-binary reasons (compiled-in hand-maintained roster) — the two-generation lag means every regen-affecting change needs build→regen→rebuild→regen, worth a note on the carrier."),
authored(id: "ts-group-dissolve-typed", done: false, content: "**typed dissolution triggers — couple dissolve_on to the roadmap DAG for real (operator, 2026-07-23)**: prose `dissolve_on: String` becomes a typed variant naming the blocking roadmap node (`OnRoadmapNode` carrying a RoadmapNodeId, or a DeclarationRef where the trigger is a carrier fact), with prose retained only as the counted residue form. Then dissolution work is DERIVED, never hand-filed: every frontier/registry row with a typed trigger projects a dissolution node into the roadmap as a CHILD of its blocking item — the existing spawn-frontier deps-done machinery does the rest, so the moment the blocker closes (signoff), the dissolution item surfaces in Ready automatically. Enforcement: a lens reds a dangling node reference (trigger names a node that does not exist) and counts prose-trigger residue as the burn-down metric; no new scheduling mechanism, the coupling IS the edge. Natural follow-on to #7089 (FrontierRow is the carrier); shell→intent phase 3, meta-exec sequestration, and the belt-B interim scaffolds are the first typed references."),
],
edges: [
RoadmapEdge { child: nid(s: "ts-group-family"), parent: nid(s: "ts-group-u") },
RoadmapEdge { child: nid(s: "ts-group-census"), parent: nid(s: "ts-group-u") },
RoadmapEdge { child: nid(s: "ts-group-partition-drift"), parent: nid(s: "ts-group-u") },
RoadmapEdge { child: nid(s: "ts-group-dissolve-typed"), parent: nid(s: "ts-group-u") },
],
),
section_group(
Expand Down
8 changes: 8 additions & 0 deletions dag/gunbc/roster_registry.dag
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,14 @@ data roster_registry: List<RosterRegistration> = [
reason: "hand variant enumeration standing in for coproduct-arm enumeration: belt_dispatch_result_exemplars lists one exemplar per BeltDispatchResult arm to derive the wire-label set (belt_dispatch_all_status_labels). belt_dispatch_status_label's total match walls a 7th VARIANT at compile time, but nothing ties THIS list to the variant set, so a missed exemplar would silently narrow both the derived label set and the component wire-total that reads it while the live server emits the unmodeled label",
dissolve_on: "substrate inhabitance enumeration lands (DESIGN section 4, fold over a coproduct's arms without a hand roster), or the exemplars derive from the serve JSON emit's own total match (belt_dispatch_result_json_value); then this list and its roster row delete"
}
},
RosterRegistration {
roster: roster_decl(module_path: "v2.workflow.rust_crate_partition", decl_name: "stage0_partition_crate_rows"),
unit_kind: "stage0 seed module basename per partition crate",
membership: DeclaredFrontier {
reason: "the hand-drawn stage0 crate split: per-crate module membership is hand-listed (stage0_std_primitive_modules and siblings) while the true relation is the module import closure — enrolled 2026-07-23 off two drift incidents this class caused silently (std_currency absent from std-core after #6977 added the measure→currency edge, so v1-stage0-std-core stopped building standalone; the partition allow-block lacked the monolith's recursion_limit so v1-stage0-extdeps-languages failed on serde json_internal). Nothing in CI builds the partition crate libs, so the drift had zero signal (sheet row ts-group-partition-drift)",
dissolve_on: "the emitted-crate-partition thread derives the crate layout ByDerivation from the module graph (docs/plans/emitted-crate-partition-design.md), at which point the hand lists delete; interim backstop = an executing per-crate cargo-check consumer in the CI build job"
}
}
]

Expand Down
1 change: 1 addition & 0 deletions dag/gunbc/stage0_crate_partition_generated.dag
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ data generated_partition_crate_rows: List<GeneratedPartitionCrateRow> = [
modules: [
"std_content_hash",
"std_coercion",
"std_currency",
"std_decl_ref",
"std_disposition",
"std_error_primitives",
Expand Down
Loading
Loading