Skip to content

A required phase that EMITS is recorded in DESIGN as one that COMPILES: narrow the self-host claim to what executes - #9298

Closed
gunbai-bot[bot] wants to merge 1 commit into
mainfrom
session/warm-hawk-909-design-emit-narrow
Closed

gunbai-bot[bot] wants to merge 1 commit into
mainfrom
session/warm-hawk-909-design-emit-narrow

Conversation

@gunbai-bot

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

Copy link
Copy Markdown
Contributor

NOT FOR MERGE. Markdown-only; held open per the operator's standing rule on markdown PRs. Read it here, merge nothing.

The defect

DESIGN's CI clause states that #9035 "enrolled a v2-emission phase that compiles one v2 entry." It does not compile it. It emits.

Measured on origin/main

v1_compiler.cli_run compile_entry_emission          ->  0  Command::new / cargo / rustc
gunbc.ci_layer_roots required_v2_emission_dissolution ->  "stopping before cargo"

Both the required phase and its two standalone flags (--required-v2-emission, --required-v2-emission-selftest) run that same producer, so a green there cannot be a different fact from a green here.

What a green actually establishes

Exactly one thing: no blocking diagnostic was returned by the emit-stage producer for its declared subject.

It does not establish that the emitted compiler builds, that it runs, or that the self-host product is clean. Measured the same night: emit clean and assembly clean on 00_compile still ends at cargo exit 101 with 16 errors.

Why this is worth a correction rather than a note

This is the premise-contamination class DESIGN names against itself elsewhere, occurring in the document that is the canonical authority. A session reading "compiles" plans against a product-build guarantee that no phase performs — and the gap between EMITTED and BUILDS is precisely where the escape the surrounding row exists to close still lives.

Two consequences the ruling also binds, recorded in the edit

  • The claim is to be narrowed wherever else it is consumed, not only here.
  • A future cargo receipt over the emitted product lands as an observation first, never as a merge-blocking baseline — and never pinned to a count, per the §5 prohibition on a literal copied from the current tree serving as an oracle.

Narrowed by operator ruling 2026-08-25, relayed through deep-ant-102's side-chat thread.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WLPTMM8o5M7cbcxw1Diemc

…S: narrow the self-host claim to what executes

DESIGN's CI clause said #9035 "enrolled a v2-emission phase that compiles one
v2 entry". It does not compile it. Measured on origin/main:

  v1_compiler.cli_run compile_entry_emission  ->  0 Command::new / cargo / rustc
  gunbc.ci_layer_roots required_v2_emission_dissolution  ->  "stopping before cargo"

Both the required phase and its two standalone flags run that same producer, so
a green there establishes exactly one thing: no blocking diagnostic was returned
by the emit-stage producer for its declared subject. It does not establish that
the emitted compiler builds, that it runs, or that the self-host product is
clean -- emit clean and assembly clean on 00_compile still ends at cargo exit
101 with 16 errors.

This is the premise-contamination class DESIGN names against itself elsewhere,
in the document that is the canonical authority: a session reading "compiles"
plans against a product-build guarantee that no phase performs, and the gap
between EMITTED and BUILDS is exactly where the escape the row exists to close
still lives.

Narrowed by operator ruling 2026-08-25, which also binds two consequences
recorded here: the claim is narrowed wherever else it is consumed, and a future
cargo receipt over the emitted product lands as an OBSERVATION first rather than
a merge-blocking baseline -- never pinned to a count, per the section 5
prohibition on a literal copied from the current tree serving as an oracle.

NOT FOR MERGE: markdown-only, held open per the operator's standing rule.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WLPTMM8o5M7cbcxw1Diemc
@gunbai-bot

gunbai-bot Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor Author

Converted to draft by its own author (warm-hawk-909), because it was reading ready=true in the dashboard's merge criteria while its first line says NOT FOR MERGE.

That is the same defect I spent this afternoon flagging on other people's PRs, sitting on my own: a directional "this must not land" living in prose the ready boolean cannot see. draft is in the criteria set, so it now reads ready=false with a named unmet requirement, which is what the body was already asserting in a place nothing machine-readable consumes.

It also carries a real conflict with current main on DESIGN.md (measured with git merge-tree --write-tree from a current-main worktree, base 90bfcfad29), which the API reported as MERGEABLE. Not rebasing it, because it is held open to be read rather than merged — but recording the conflict so nobody reads the green field as a merge-readiness claim.

The finding in this PR is unaffected and still stands as written.

@gunbai-bot

gunbai-bot Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

Closing this rather than resolving the conflict, because the conflict is a symptom of a defect in the PR itself.

This PR hand-edits a generated file. DESIGN.md is a projection of dag/gunbc/design_document.dag; this branch touches only the projection and never the authority. The merge did not produce conflict markers — it produced UU with a clean worktree, which is the generated-artifact merge driver refusing exactly as DESIGN describes. Resolving it by hand would install bytes that the next regen discards, and the drift gate would flag it.

The content is worth keeping and is now better supported than when it was written. It narrows the claim that the required v2-emission phase compiles an entry to what the phase actually does — emit one. Measured tonight on a whole-corpus compile (--source-root dag --source-root src/v2 --target dag) from a locally built binary:

compile.frontend 45s | normalize 3s | reconcile 18min | analyses 1s | emit 9ms
COMPILE_RC=1   5 blocking, 14266 advisory   peak RSS 10.99 GiB

compile.emit finishing in 9ms with no cargo invocation anywhere in the run is direct evidence for the narrowing: the emit stage returns a diagnostic population and stops. A green there establishes that no blocking diagnostic was returned by the emit-stage producer for its declared subject — not that the emitted compiler builds.

It will be re-landed through dag/gunbc/design_document.dag so the projection is regenerated rather than hand-written, which is also the only form in which it survives regen.

— sent from warm-hawk-909

@gunbai-bot gunbai-bot Bot closed this Aug 27, 2026
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.

0 participants