Skip to content

Bind spark-standup-program-accounting.md into the doc graph (unblocks main) - #8052

Merged
briansrls merged 1 commit into
mainfrom
session/spark-doc-bind
Aug 8, 2026
Merged

briansrls merged 1 commit into
mainfrom
session/spark-doc-bind

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

main is red on doc_graph_has_no_orphan_docs and every branch merging main inherits it. The orphan is mine: #7972 landed docs/plans/spark-standup-program-accounting.md without a doc-graph binding. One row, no other change.

Located by differencing the window, not by grepping the subject — credit to quick-crane-712 and smart-badger-549 for the method and the last-green SHA. doc_graph_orphan_count is a native primitive with no naming projection, so the witness returns Bool(false) and names no document; basename and slug greps over-reported 20+ and 94 candidates respectively, and either guess would have landed a link that satisfied the count without being the right link.

Verified, with a positive control built into the window. The subject has 0 bindings corpus-wide; owned-ci-control-plane-design.md — added by a different PR in the same window — returns 4. Same query, same window, one bound and one not, so the zero is a real negative rather than a broken query.

Discriminating control on the fix itself: the gate returns false with my row removed and true with it restored. That establishes this row is what closes the gate, rather than something else in the window having drifted.

Every cited symbol was grep-verified before authoring: fleet_subsumption_manual_gaps_plan, dgx_spark_arrival_standing, dgx_spark_router_bindings. Two plausible-sounding names I reached for first (fleet_subsumption_manual_gaps, spark_bootstrap_credential_note) do not exist and are not in the row — fabricated citations are a defect this repo has already paid for.

🤖 Generated with Claude Code

…, from #7972)

#7972 landed docs/plans/spark-standup-program-accounting.md with no doc-graph
binding, so doc_graph_has_no_orphan_docs reds on main and every branch merging
main inherits it. My PR, my orphan.

Verified rather than assumed. Subject: 0 bindings corpus-wide. Positive control:
owned-ci-control-plane-design.md, added by a DIFFERENT PR in the SAME window,
returns 4 — same query, same window, one bound and one not, so the zero is a real
negative and not a broken grep.

Discriminating control on the fix itself: the gate returns false with the row
removed and true with it restored, so the row is what closes it rather than
something else in the window.

Every cited symbol grep-verified before authoring — fleet_subsumption_manual_gaps_plan,
dgx_spark_arrival_standing, dgx_spark_router_bindings all exist. Two plausible names
I first reached for did not, and are not in the row.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

Coordination note, since three lanes independently fixed this orphan and exactly one may merge: #8052 (this), #8051 (smart-badger-549), and a third already being reverted.

Two landing would be worse than the orphan we are clearing, and I measured it rather than taking it on report. I simulated both PRs landing — added a second HandAuthoredDocBind at the same home+slug, anchored the way #8051 anchors it — and ran the uniqueness witness:

  • both rows present → doc_graph_bind_identities_unique = false
  • one row present → true

Bind identity is home+slug, so two rows give one document two independently removable halves. It would land as a fresh regression on a witness that was green, with no visible connection to the merge that caused it.

I am not arguing this PR over #8051. quick-crane-712 verified all seven cited symbols resolve on main in both, so both are correct fixes and the choice is an anchoring judgement rather than a defect. Their recommendation favours this one because the doc is program accounting and its primary_work is the accounting carrier (fleet_subsumption_manual_gaps_plan) rather than a hardware fact the doc merely mentions — but that argument is theirs to make, not mine to press from inside one of the candidates.

If #8051 is taken instead, nothing here needs preserving. This row carries no fact the alternative lacks, so it is a clean drop rather than a merge. I will close this the moment either lands.

One note that survives either choice, because it is about the gate rather than the row: the orphan gate counts links, it does not resolve them — a binding can be correct while its citation is invented, and the gate greens either way. Two plausible names I reached for first (fleet_subsumption_manual_gaps, spark_bootstrap_credential_note) do not exist. The citations here were grep-verified individually; the next doc bind will not have a coordinator checking it, and the gate will not catch it.

— sent from bold-eagle-107

gunbai-bot Bot pushed a commit that referenced this pull request Aug 8, 2026
Bind spark-standup-program-accounting.md per #8052 so the live-tree orphan
wall passes after main merge, and align falsifier.yml with generated_artifact
authority (trailing newline) so heal no longer requires author-commit for
workflow drift.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls merged commit e889545 into main Aug 8, 2026
5 checks passed
@briansrls
briansrls deleted the session/spark-doc-bind branch August 8, 2026 15:13
briansrls pushed a commit that referenced this pull request Aug 8, 2026
* Split falsifier cadence into four jobs with typed cold-corpus execution.

When selection-control failed inside falsifier-build, the entire corpus job was skipped (run 31181460723), conflating infrastructure failure with falsifier regression. This separates build, selection-control, cold-corpus (needs build only), and aggregate-verdict, and models ColdCorpusExecution in gunbc.falsifier_cold_corpus_execution so CorpusNotRun is distinguishable from corpus redness.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix CorpusExecuted to require floor-component receipt, not job status.

aggregate-verdict now downloads the cold-corpus receipt artifact and emits
CorpusExecuted only when the file is present and parses; failures before
upload classify as CorpusNotRun { cold-corpus-failed-before-receipt }.
Witnesses distinguish ran-and-red from failed-before-running.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix falsifier backstop plus chains that broke .dag parse.

In .dag a newline terminates an expression, so continuation lines
beginning with + are parse errors. Collapse job backstop sums onto one
line per ci_workflow.dag idiom; same fix in the witness oracle.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Escape shell vars in aggregate verdict script string literal.

v2 resolve treats bare ${VAR} inside String data as dag interpolation.
Use $\{VAR} per string_brace_escape_witness_test so BUILD_RESULT,
COLD_RESULT, SELECTION_RESULT, and FLOOR_RECEIPT_PRESENT remain
shell syntax while ${{ needs.* }} stays GHA expression syntax.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Scaffold: aggregate verdict shell receipt builders (not for #7998).

Marked Scaffold disposition on falsifier_aggregate_verdict_script;
receipt JSON literals route through classify_cold_corpus_execution
helpers in falsifier_cold_corpus_execution. Transport remains
concat-built shell — dissolve-on bash-emit / shell→intent Phase 2.

Follow-up PR lane: cold-corpus-receipt-artifact-absent arm still
outstanding. Side branch preserves WIP; parent session/royal-ferret-75
parse fix landed separately on #7998.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Address review 50231: scaffold shell + receipt authority join.

Mark falsifier_aggregate_verdict_script as Scaffold with dissolve-on;
emit receipt JSON via aggregate_shell_receipt_* builders rooted in
classify_cold_corpus_execution / cold_corpus_execution_receipt_json
(build cancelled/skipped no longer collapsed to build-job-failed).
Escape $\{VAR} in concat shell literals for v2 resolve. Witnesses:
YAML embeds builder JSON, distinguishes build-cancelled/skipped tags,
and identity-joins each builder to receipt_json authority.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Distinguish cold-corpus receipt artifact absent from failed-before-receipt.

When cold-corpus succeeds but the floor-component receipt never arrives,
classify as ColdCorpusReceiptArtifactAbsent instead of lumping it with
pre-run infrastructure failures — keeps falsifier cadence noise honest.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Regenerate falsifier.yml for receipt-artifact-absent topology.

Adds scoped emit_falsifier_yaml tool so falsifier workflow drift can be
refreshed without the full main_wet artifact pass.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix aggregate verdict shell: receipt redirect and grep guard.

shell_printf_line's trailing newline split printf from the file redirect,
truncating the cold-corpus execution receipt to zero bytes. Keep redirect
on the same line via bash_escape_for_double_quotes. Remove spurious ] from
the floor-receipt schema grep test (review 50484).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix falsifier yaml literal witness to match bash-escaped shell bytes.

aggregate_verdict_shell_receipt_literals_match_model compared raw JSON
to emitted printf arguments; the workflow carries bash_escape_for_double_quotes
form, so the witness now pins the same encoding the shell actually runs.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Restore generated_artifact import dropped in bash-escape witness fix.

Re-adds FalsifierYamlArtifact and artifact_path for falsifier_artifact_path_is_workflow_file (review 50504).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix floor witness reds: registry collision on live_tree and doc-graph roots.

g2_implies_reads_live_tree_for_roster_gate compared imported live_tree_disposition
against ReadsLiveTree, but the merged item_registry bare-name lookup could resolve
SubstrateInputsOnly from another witness file; route the roster-gate disposition
through a uniquely named entry helper returning ReadsLiveTree.

doc_graph floor witnesses now call doc_graph_floor_orphan_clean_holds and
doc_graph_floor_clean_holds defined in gunbc.doc_graph_roots so roots are derived
inside the authority module during discovery-corpus batch runs.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Enroll roster-gate live_tree disposition helper for test-module hygiene.

Adds roster_gate_entry_live_tree_disposition_is_reads_live_tree so the
cross-module disposition export is reachable from a test fn in the same
*_test.dag file (CI naming hygiene refused the orphan plain fn).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix CI admission refusal for offline roster-gate hygiene witness.

The hygiene enrollment test in accumulator_copy_roster_gate_test was discovered
as UnclassifiedPathDeferral; move the ReadsLiveTree literal helper into
live_read_classification_test where g2_implies_reads_live_tree_for_roster_gate
already runs on the discovery cadence.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Restore roster-gate G2 fixtures and enroll disposition helper in frozen witness.

Reverting the local-only disposition helper broke g2_roster_gate_entry_classifies_literal_paths
and g2_union_retains_g1_import_carriers_with_g2_literal_paths because fn_arrow G2 classification
requires the roster-gate test module's live_tree disposition surface. Enroll the helper via the
existing frozen roster_machine_code_zero_suspects_within_ratchet witness instead of adding a
new offline-path test that discovery refuses as UnclassifiedPathDeferral.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Route doc_graph floor wrappers through v2.lens.doc_reachability predicates.

Review 50522: doc_graph_floor_{orphan_,}clean_holds in gunbc.doc_graph_roots now
delegate to doc_graph_{orphan_,}clean_holds(plan_roots: doc_graph_roots_all())
instead of re-minting orphan/dangling count checks beside the lens authority.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix CI heal refusal and doc-graph orphan from merged spark doc.

Bind spark-standup-program-accounting.md per #8052 so the live-tree orphan
wall passes after main merge, and align falsifier.yml with generated_artifact
authority (trailing newline) so heal no longer requires author-commit for
workflow drift.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
gunbai-bot Bot pushed a commit that referenced this pull request Aug 8, 2026
Resolve ci_layer_roots clamp conflict: keep 480s scoped-batch overhead
from this branch plus authority field from main (#8046). Regen stage0
lib.rs after merge; regen_divergence_count=0. Doc bind from #8052 on main.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant