Skip to content

Release Jun1 release-note truth table (external-reviewer-suggested artifact for v0.1.0 GH Release body): author docs/release/v0.1.0-release-notes.md as a SEPARATE FILE from docs/RELEASE_v0.1.0.md (which is maintainer-facing per operator default Q2; this file is the source-of-truth text operator past - #4005

Closed
briansrls wants to merge 2 commits into
mainfrom
session/swift-ant-866

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session swift-ant-866.
Pushing to session/swift-ant-866 advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

Source-of-truth text for the v0.1.0 GitHub Release body. Separate from
the maintainer-facing RELEASE_v0.1.0.md (release-day checklist) — this
file is what gets pasted into the public Release description.

Format follows external-reviewer suggestion: candid truth table of what
works (build from source, Rust/Python/Go/DAG emission, v2 pipeline),
what's planned but not shipped (install.sh, package managers, prebuilt
binaries), and what's in flight (v4 substrate, execute-verified runners).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls
briansrls marked this pull request as ready for review May 30, 2026 19:01
@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-thinking
  • Commit: caefc6c1 · Trigger: manual
  • Comparison: main @ 0ace5f8b ... session/swift-ant-866 @ caefc6c1
  • Conversation: View conversation

1. Story of the diff

This PR adds a new public-facing release note file, docs/release/v0.1.0-release-notes.md, intended as the honest paste-ready GH Release body for daglang/gunbc v0.1.0. The document frames v0.1.0 as a source-build seed release: v2 is the production compiler, Rust/Python/Go/.dag targets are advertised as available, install scripts and binary/package distribution are explicitly marked not shipped, and v4 plus execute-verified TestClaim coverage are presented as in-progress rather than production. The load-bearing mechanism is the truth table: it separates shipped, partial, and deferred capabilities, then backs the supported path with a source-build quick start and weather demo invocation. chatgpt-review-46e171a3-c909-4a…

2. Invariant categories

  1. LAYER MODEL — Compliant. This is documentation-only release surface; it does not touch substrate types, Dag, cross-pass carriers, .dag declarations, or implementation-layer Rust.
  2. INVARIANTS.md + modeling-discipline.md — Finding.

docs/release/v0.1.0-release-notes.md:4-5 says: “If it compiles, the declared intent is sound and will execute as declared.” The thesis authority is narrower: THESIS.md:13-15 says compilation validates structural coherence before emission, and that declared intent is sound inside the modeled system, while external reality not carried in the graph remains unverifiable. This violates Modeling Faithfulness / Fail-Closed public-claim discipline: the release note turns a bounded structural guarantee into an absolute execution guarantee. It is especially risky in this same file because docs/release/v0.1.0-release-notes.md:26 only claims emitted Rust type-checks via cargo check, and docs/release/v0.1.0-release-notes.md:31-32 explicitly says execute-verified runners are not complete. Suggested shape: “If it compiles, the declared intent is structurally sound inside the modeled system; external systems can still fail outside the graph.”

  1. CODING.md — N/A. No Rust or executable implementation code is changed.
  2. TESTING.md — Compliant. No tests are required for a static release-notes document, and the document does not promote new executable behavior without an implementation surface; it truth-tables cargo test -p v2-compiler-tests as an existing shipped capability at docs/release/v0.1.0-release-notes.md:21.
  3. LOCKED DESIGN DECISIONS — Compliant. The release note preserves the locked zero-floor/v4 direction by marking v4 as in migration and v2 as the production compiler for v0.1.0, rather than presenting the v4 substrate or execute-verified matrix as complete.
  4. TRACKED vs UNTRACKED DEBT — Compliant. Deferred distribution work is bounded and named: install scripts are marked modeled-but-not-emitted at docs/release/v0.1.0-release-notes.md:28, package channels are planned at docs/release/v0.1.0-release-notes.md:29, and prebuilt binaries are explicitly not shipped at docs/release/v0.1.0-release-notes.md:30.

2.5. Top-down PM intent review

Finding. The PM intent for a public “truth table” release artifact is honesty about what is proven today versus what remains out of scope. THESIS.md:13-15 is the highest-level wording: gunbc validates declared causes/dependencies/drains structurally, and the soundness claim is scoped to the modeled system. docs/release/v0.1.0-release-notes.md:4-5 dilutes that scoped guarantee into “will execute as declared,” which a user can reasonably read as an end-to-end runtime promise. That contradicts the same release note’s own partial rows for execute verification at docs/release/v0.1.0-release-notes.md:31-32.

3. Verdict

REQUEST_CHANGES. The release note is otherwise well-shaped and appropriately separates shipped, partial, and deferred v0.1.0 capabilities, but the opening guarantee overclaims the thesis in a public source-of-truth artifact. Narrow that sentence to the modeled-system/structural-soundness guarantee and this looks approvable.

openai-pro review on #4005 (REQUEST_CHANGES) flagged the opening
guarantee as over-claiming THESIS.md:13-15. Tighten "will execute as
declared" to the structural-soundness-inside-the-modeled-system framing
the thesis actually authorizes, and call out external reality as the
explicit gap (consistent with the truth table's 🟡 row on
execute-verified runners).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-thinking
  • Commit: df2f30e9 · Trigger: manual
  • Comparison: main @ 0ace5f8b ... session/swift-ant-866 @ df2f30e9
  • Conversation: View conversation

1. Story of the diff

This PR adds a new user-facing release-note artifact at docs/release/v0.1.0-release-notes.md, separate from the maintainer-facing docs/RELEASE_v0.1.0.md. The note frames v0.1.0 as a seed public release: v2 is the production compiler for users, v4 is explicitly still migrating, distribution is build-from-source only, and the “truth table” makes shipped vs not-shipped capabilities visible instead of burying them in prose. The load-bearing move is the scoping of the soundness claim at docs/release/v0.1.0-release-notes.md:9-14: it repeats the thesis promise only for declared intent inside the modeled system, then excludes external reality from that guarantee. The rest of the file supports that contract with concrete quick-start commands, negative capability rows for install/package/binary distribution, and a “what this release is not” section. chatgpt-review-6bffa93e-37d6-42…

2. Invariant categories

  1. LAYER MODEL — Compliant. This is documentation-only release material; it does not touch substrate types, Dag, cross-pass representation, .dag model declarations, or implementation storage. The release note correctly distinguishes v2 as the production compiler and v4 as migration state at docs/release/v0.1.0-release-notes.md:34.
  2. INVARIANTS.md + modeling-discipline.md — Compliant. Boundary Discipline / single authority is handled by making this a separate user-facing release-note artifact, while the content itself keeps the guarantee scoped: docs/release/v0.1.0-release-notes.md:10-13 says the compile guarantee applies only “inside the modeled system,” matching the thesis line that external reality remains outside the guarantee. Progress Is Dissolution is also respected rather than blurred: docs/release/v0.1.0-release-notes.md:31-35 marks install emission, packages, binaries, v4 production status, and execute-verification as absent or in-progress instead of implying they have shipped.
  3. CODING.md — N/A. No Rust or implementation code is changed; comment/function/data-style rules do not apply. The prose is release documentation, and the explanatory text is the product surface rather than in-code commentary.
  4. TESTING.md — Compliant. No tests are needed for a pure documentation artifact that adds no executable behavior. The doc points users to the existing compiler suite at docs/release/v0.1.0-release-notes.md:30 rather than introducing a new untested implementation claim.
  5. LOCKED DESIGN DECISIONS — Compliant. The release note does not alter a locked design decision. It preserves the active v4 / v2-production boundary by saying v4 is not the production compiler for v0.1.0 at docs/release/v0.1.0-release-notes.md:34 and again in the “not” section at docs/release/v0.1.0-release-notes.md:64-65.
  6. TRACKED vs UNTRACKED DEBT — Compliant. The doc names release gaps without turning them into hidden scaffolds: install scripts are “modeled” but “emission deferred” at docs/release/v0.1.0-release-notes.md:31, package channels are “planned” and tracked as dissolution targets at docs/release/v0.1.0-release-notes.md:32, and v4/TestClaim work is marked in-progress rather than shipped at docs/release/v0.1.0-release-notes.md:34-35.

2.5. Top-down PM intent review

Compliant. The highest-level release intent appears to be an honest public release body that does not overstate v0.1.0: it narrows the thesis guarantee to modeled-system soundness at docs/release/v0.1.0-release-notes.md:10-13, calls the release build-from-source at docs/release/v0.1.0-release-notes.md:31-33, and explicitly prevents a worker/user from treating v4 or execute-verification as fully shipped at docs/release/v0.1.0-release-notes.md:34-35 and docs/release/v0.1.0-release-notes.md:64-66. I do not see semantic dilution of the PM intent; if anything, the negative rows reduce the risk of release overclaim.

3. Verdict

APPROVE. The PR is a clean documentation addition that scopes the release claim correctly, preserves the v2/v4 and build-from-source boundaries, and records unshipped distribution / verification work as visible release limitations rather than hidden debt.

briansrls added a commit that referenced this pull request May 30, 2026
Operator flipped D-REL-1 posture 2026-05-30 to flavor (iv): v3 + v4
substrate ships public in v0.1.0 labeled alpha / WIP — no Wave-2
predicate-closure gating, honest error count documented (~7,951 v4
rustc errors), bar is "compilable bootstrap". Fail-closed: if v4
doesn't compile at tag time, README + SUPPORTED.md flip the alpha
label to pre-alpha/experimental — no scope strip, no tag delay.

Plus PM clarification: TypeScript surface authoritatively resolved.
v0.1.0 supported emit targets = Rust + Python + Go (the three v2
emits). TypeScript = v4-alpha-only, lives in SUPPORTED.md's v4-alpha
section, not part of the v2 supported contract.

Changes across the doc:

- D-REL-1 row REWRITTEN: ship public labeled alpha/WIP; no gating;
  fail-closed = label flip, not strip.
- D-REL-3b: Rust + Python + Go (authoritative ruling); TS = v4-alpha.
- D-REL-4 status: removes "v3/v4 are stripped" claim.
- D-REL-5 status: rationale updated — releases under (iv) because
  v0.1.0's supported contract doesn't depend on v4 predicate-closure.
- Scope-revision section: explicit reconciliation paragraph — "stripped"
  vs "explicitly unsupported" is now case-by-case (process docs vs
  in-progress substrate).
- Non-goal #1: REVISED to reflect (iv) — no longer strips v4.
- Non-goal #5 (src/v3): REVISED to reflect (iv).
- Non-goal #10 (v4-done predicates): drops Wave-2 gating; predicates
  documented honestly in SUPPORTED.md, not used as strip trigger.
- Already-decided rulings: Long-term distribution scope note clarifies
  the (iv) flip is about substrate posture only, not distribution
  channels (Homebrew/.deb/APT stay v0.2.0+).
- Gate B: v3/v4 substrate is alpha — not on supported contract;
  SUPPORTED.md per-surface labels what is/isn't claimed.
- Item D (SUPPORTED.md description): adds alpha/WIP section for v3/v4
  substrate and TypeScript (v4-alpha); per-surface alpha/PROVEN/GAP
  detail pulled from sharp-otter-407's ship-disposition supplement.
- Item F (Rollback): split into leak-rollback and v4-compile-rollback;
  the latter encodes flavor (iv) semantics (label flip only).
- §6 housecleaning: src/v3 no longer stripped.
- Cross-refs: add sharp-otter-407 supplement and #4005 release-notes
  truth table pointers (both in flight, separate PRs).
- Verification gaps V2/V3/V4: owner/ETA columns updated with the
  worker-dispatch references from snappy-bee-513 (post-D-REL-3b
  confirmation): SUPPORTED.md author, #3992 shepherd check, fresh
  weather-demo e2e verification worker.
- publish-snapshot.sh: src/v3 and src/v4 REMOVED from STRIP_PATHS
  per the (iv) flip; comment block updated to reference the supersession
  of the older RELEASE_TODO.md §6 housecleaning legacy.

PER-PR HOLD remains in effect — not self-merging; awaiting operator
review.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 30, 2026
* docs(release): v0.1.0 consolidated state snapshot for review

Add docs/RELEASE_v0.1.0.md — section-by-section status against
RELEASE_TODO.md so a reviewer can decide tag readiness without
re-deriving state from git log. Names the four remaining gates
before `git tag v0.1.0` and the deferred-to-post items.

Location chosen so the file survives publish-snapshot.sh §2
strip-list (only docs/{briefs,history,debt,review-findings,admin,
db-history,postmortems,audit,r3,proposals,perf,decisions} are
stripped — top-level docs/*.md are kept).

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

* docs(release): state decided private/public sync model in §2

Per operator decision relayed by Release Jun 1 manager: public
gunb-ai/daglang is source of truth post-launch; private gunb-ai/gunbc
is a development scratchpad to keep internal session traffic off the
public repo. Sync direction inverts at the v0.1.0 tag: one-shot
force-push seed + private→public visibility flip, then v0.2.0+ work
PRs against daglang directly and private pulls from public.

Adds three open implementation questions for v0.2.0+ (inverted-flow
tooling, promotion trigger, community surface) marked as not blocking
v0.1.0. Adds the visibility flip as gating item 5.

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

* docs(release): add goals/non-goals/acceptance criteria; note plan downgrade done

Top-of-doc checklist so reviewers can see scope and the testable conditions
for `git tag v0.1.0` in one place. §1 and gating item #1 updated to
reflect the Enterprise → org (Teams) downgrade executed by operator
2026-05-30.

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

* docs(release): note gunb-ai/frontend is a separate repo, not part of v0.1.0

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

* docs(release): adopt reviewer-driven scope revision; gate A-E; add to strip-list

Substantial revision of docs/RELEASE_v0.1.0.md to anchor the reviewer's
"small, verified, fail-closed product surface" posture:

- Add scope-revision section with the reviewer posture verbatim.
- Restate the five D-REL decisions as DECIDED vs PENDING, with reviewer
  recommendations as the working default for pending items.
- Apply already-decided rulings: Enterprise->Teams DONE; Homebrew/.deb/APT
  IN scope (reversed defer); gunb.ai Pages site from gunb-ai/daglang;
  inverted post-launch sync; dissolution comments stay; no PM jargon.
- Add SUPPORTED.md section (D-REL-3 deliverable; the heart of v0.1.0).
- Replace prior acceptance criteria with reviewer's Gates A-E.
- Add rollback plan and user-facing release-notes pointer
  (docs/release/v0.1.0-release-notes.md, separate in-flight PR).

Also adds docs/RELEASE_v0.1.0.md, RELEASE_TODO.md, and WISHLIST.md to
scripts/publish-snapshot.sh STRIP_PATHS so these maintainer-facing planning
docs do not ship publicly. Collision risk with adhoc-12a071f5-04a (separate
cleanup PR adding RELEASE_TODO.md + WISHLIST.md) noted in the doc.

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

* WIP: Release Jun1 consolidated state doc (operator-requested, blocks v0.1.0 r

* docs(release): decouple binary target matrix from package-manager channels

Per parent clarification:

- Binary target matrix (the six musl/darwin/windows-msvc targets in
  release.dag): per-target dry-run gating under D-REL-2 — drop any target
  that fails the dry-run from the v0.1.0 matrix.
- Install/distribution channels: Homebrew, .deb, APT do NOT ship at
  v0.1.0. They are modeled with 🟡 markers in install.dag as v0.2.0+
  emission intent; the actual Formula / deb-control / apt-repo content
  is not yet emitted. v0.1.0 install paths are curl install.sh
  (pending PR #3992) and build-from-source.

§5 rewritten into two explicit subsections so the two axes can't be
conflated. Non-goals expanded with an explicit channels-deferred entry.
Already-decided rulings entry rewritten to state "modeled ≠ shipped".

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

* docs(release): scope Gate D grep to user-facing docs (resolves cursor REQUEST_CHANGES)

Cursor flagged that Gate D's repo-wide grep for adhoc-/session-slug terms
contradicted the "dissolution comments stay" ruling (load-bearing model
marks in .dag files ship as-is). Gate D now explicitly scopes the grep to
user-facing docs and excludes .dag source + any path carrying load-bearing
marks, so the two policies no longer collide.

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

* docs(release): apply maintainer review — Rust+TS surfaces, D-REL confirmations

Project maintainer review 2026-05-30 applied:

- Add working framing at top: small public release with two advertised
  target surfaces (Rust + TypeScript), plus the "release sentence" the
  tag must make true.
- Split D-REL-3 into D-REL-3a (source-language subset) and D-REL-3b
  (target/artifact matrix = Rust + TypeScript only).
- Confirm all five D-REL decisions (1, 2, 3a, 3b, 4, 5) as DECIDED
  2026-05-30, with reviewer recommendations as the agreed answers.
- Soften package-manager non-goal: "allowed only if verified before tag;
  otherwise omitted from public docs and tracked for v0.1.1+". Same
  language applied to Gate C, Item D, §5, and the "Distribution ruling"
  block in already-decided rulings.
- Add Rust/TypeScript explicit checks to Gate A (rustc/cargo, tsc
  --noEmit; absence noted in SUPPORTED.md when applicable; negative
  fail-closed tests).
- Add Rust/TypeScript scope constraint to Gate E (release notes claim
  only Rust + TS; other languages either labeled not-supported or
  omitted).
- Item H: release notes derive *from SUPPORTED.md*, not from internal
  release goals.
- Item D: SUPPORTED.md framing now declares Rust/TS per-surface support
  level (full-compile vs artifact-interface) explicitly; "supports" is
  never used without saying what supports means.
- Public website ruling: must obey SUPPORTED.md matrix; no broad
  compiler-support claims.
- Dissolution comments tension resolved with explicit split rule: load-
  bearing in source files (.dag/.rs), stripped/neutralized in user-
  facing docs. Gate D's grep already enforces this.
- Add non-goal #9: source/target/artifact surfaces beyond Rust + TS.

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

* WIP: Release Jun1 consolidated state doc (operator-requested, blocks v0.1.0 r

* docs(release): reconcile D-REL-1 with publish-snapshot; strip src/v4

Cursor REQUEST_CHANGES findings:

1. D-REL-1 was CONFIRMED (strip src/v4) but scripts/publish-snapshot.sh
   only stripped four v4 markdown files — "v4 code itself stays" comment
   contradicted the confirmed scope. Fixed: STRIP_PATHS now strips
   src/v4 wholesale. The four individual v4 markdown entries are
   subsumed and removed. Comment notes the supersession of the older
   RELEASE_TODO.md §6 "Keep" list.

2. Gate B's "src/v4 stripped OR — if it ships —" branch contradicted
   D-REL-1's hard strip. Removed the "if it ships" escape; Gate B now
   states the strip as the only acceptable state.

3. D-REL-1 table row updated to call out the supersession of
   RELEASE_TODO.md's §6 "Keep" list (that doc is itself stripped from
   the public export, so the contradiction is invisible publicly but
   should not exist in the maintainer doc either).

Also incorporates the nimble-crane-490 non-blocking suggestion:
non-goal #10 makes the v4-done predicate burn-down explicitly out of
scope for v0.1.0, with the predicate-state cross-check noted (0/6
PROVEN, 5 YELLOW, 1 GRAY).

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

* docs(release): D-REL-4 status: DECIDED but enforcement PENDING

Cursor REQUEST_CHANGES: D-REL-4 was marked CONFIRMED ("strip all other
docs") but scripts/publish-snapshot.sh STRIP_PATHS does not yet strip the
root THESIS/INVARIANTS/MODELING/CODING/TESTING files or the large
docs/thesis/, docs/invariants/, docs/planning/, docs/design-* trees. A
dry-run today would export them, contradicting the confirmed scope.

Honest fix: D-REL-4 is DECIDED in principle but ENFORCEMENT PENDING. The
user-facing docs (GETTING_STARTED, LANGUAGE, CLI, EXAMPLES, SUPPORTED,
CONTRIBUTING) don't exist yet — wiring full STRIP_PATHS enforcement
before they land would leave the public export with nothing useful.
Follow-up pass before tag must (a) author the user docs and (b) extend
STRIP_PATHS to remove everything outside the keep list. Gate B and
Gate D catch the gap if this slips.

§3 note also softened from "are stripped" to "intended to be stripped;
enforcement queued as pre-tag follow-up".

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

* docs(release): surface five pre-tag verification gaps (PM audit 2026-05-30)

Release-readiness audit from nimble-dove-733 (routed via PM still-fox-289)
flagged five evidence gaps that the gates aspire to close but that no
evidence backs:

V1. TypeScript surface unsubstantiated — no v2 emit_typescript.dag
    exists; TS appears only in language catalog + v4 test claims.
    D-REL-3b row updated with "⚠ NEEDS RECONCILIATION (substrate)"
    flag: either land an emit_typescript lens with tsc round-trip
    before tag, or amend D-REL-3b to Rust-only.
V2. docs/SUPPORTED.md does not exist; no owner, no ETA. Likely lane
    surfaced (nimble-crane-490).
V3. install.sh PR #3992 STALLED (0 reviews, 0 CI). Distribution
    ruling updated to flag the stall and the resolution options
    (route shepherd vs drop curl-install).
V4. Weather demo end-to-end UNVERIFIED against --target rust.
V5. No verification log on Gates A-E; reviewer cannot distinguish
    pre-checked from untested. Evidence convention added to gates
    intro (✓ commit-sha date / ⏳ owner / ✗).

All five surfaced as a single "Pre-tag verification gaps (open)"
section between the D-REL table and the already-decided rulings, with
gap → gate mapping and explicit owner/ETA columns (PENDING where no
owner exists). These are hard blocks on tag until resolved.

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

* docs(release): v0.1.0 targets = Rust + Go + Python; TypeScript moves to v4

Maintainer ruling 2026-05-30 post-audit: v0.1.0 advertised target surfaces
are the three v2 emit paths that already exist — Rust
(05_emit_rust.dag), Go (05_emit_go.dag), Python (05_emit_python.dag).
TypeScript becomes v4 early-support, not v0.1.0. This resolves
verification gap V1 (no v2 emit_typescript.dag exists).

Updates across the doc:
- Framing block: three surfaces, with the release-sentence updated.
- Goal #2: Rust + Go + Python with per-surface check tool named.
- Non-goal #9: TypeScript explicitly v4 early-support; C++/LLVM still out.
- D-REL-3b: CONFIRMED + RECONCILED; per-surface check tool spelled out
  (rustc/cargo, go build/go vet, python -m py_compile).
- V1 row: RESOLVED.
- Gate A: separate Rust / Go / Python bullets with check commands;
  per-example absence pattern preserved ("if not supposed to support X,
  noted in SUPPORTED.md").
- Gate E: release notes claim only Rust + Go + Python; TS labeled
  "v4 early-support".
- Item D (SUPPORTED.md description): three surfaces, full-compile vs
  runnable-example levels, TS listed in out-of-scope.
- Website ruling: states the three v0.1.0 surfaces + TS as v4-future.

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

* docs(release): fix v4-done tracker filename (cursor non-blocking note)

s/burn-down/tracker/ — actual file in tree is
docs/planning/v4-done-predicate-tracker-2026-05-30.md.

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

* WIP: Release Jun1 consolidated state doc (operator-requested, blocks v0.1.0 r

* docs(release): D-REL-1 (iv) flip — v3/v4 ship public labeled alpha/WIP

Operator flipped D-REL-1 posture 2026-05-30 to flavor (iv): v3 + v4
substrate ships public in v0.1.0 labeled alpha / WIP — no Wave-2
predicate-closure gating, honest error count documented (~7,951 v4
rustc errors), bar is "compilable bootstrap". Fail-closed: if v4
doesn't compile at tag time, README + SUPPORTED.md flip the alpha
label to pre-alpha/experimental — no scope strip, no tag delay.

Plus PM clarification: TypeScript surface authoritatively resolved.
v0.1.0 supported emit targets = Rust + Python + Go (the three v2
emits). TypeScript = v4-alpha-only, lives in SUPPORTED.md's v4-alpha
section, not part of the v2 supported contract.

Changes across the doc:

- D-REL-1 row REWRITTEN: ship public labeled alpha/WIP; no gating;
  fail-closed = label flip, not strip.
- D-REL-3b: Rust + Python + Go (authoritative ruling); TS = v4-alpha.
- D-REL-4 status: removes "v3/v4 are stripped" claim.
- D-REL-5 status: rationale updated — releases under (iv) because
  v0.1.0's supported contract doesn't depend on v4 predicate-closure.
- Scope-revision section: explicit reconciliation paragraph — "stripped"
  vs "explicitly unsupported" is now case-by-case (process docs vs
  in-progress substrate).
- Non-goal #1: REVISED to reflect (iv) — no longer strips v4.
- Non-goal #5 (src/v3): REVISED to reflect (iv).
- Non-goal #10 (v4-done predicates): drops Wave-2 gating; predicates
  documented honestly in SUPPORTED.md, not used as strip trigger.
- Already-decided rulings: Long-term distribution scope note clarifies
  the (iv) flip is about substrate posture only, not distribution
  channels (Homebrew/.deb/APT stay v0.2.0+).
- Gate B: v3/v4 substrate is alpha — not on supported contract;
  SUPPORTED.md per-surface labels what is/isn't claimed.
- Item D (SUPPORTED.md description): adds alpha/WIP section for v3/v4
  substrate and TypeScript (v4-alpha); per-surface alpha/PROVEN/GAP
  detail pulled from sharp-otter-407's ship-disposition supplement.
- Item F (Rollback): split into leak-rollback and v4-compile-rollback;
  the latter encodes flavor (iv) semantics (label flip only).
- §6 housecleaning: src/v3 no longer stripped.
- Cross-refs: add sharp-otter-407 supplement and #4005 release-notes
  truth table pointers (both in flight, separate PRs).
- Verification gaps V2/V3/V4: owner/ETA columns updated with the
  worker-dispatch references from snappy-bee-513 (post-D-REL-3b
  confirmation): SUPPORTED.md author, #3992 shepherd check, fresh
  weather-demo e2e verification worker.
- publish-snapshot.sh: src/v3 and src/v4 REMOVED from STRIP_PATHS
  per the (iv) flip; comment block updated to reference the supersession
  of the older RELEASE_TODO.md §6 housecleaning legacy.

PER-PR HOLD remains in effect — not self-merging; awaiting operator
review.

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

* fix(publish-snapshot): re-add v4 process docs to STRIP_PATHS

Claude REQUEST_CHANGES: by the doc's own (iv) reconciliation rule
("process docs / agent traffic = stripped; substrate in-progress =
alpha-labeled"), the four v4 process markdown files (TASKS.md,
BRIEF_TEMPLATE.md, CULTURE.md, DECISIONS.md) are agent-process traffic
and should remain stripped. The (iv) flip applies to v4 *substrate*
(code under src/v4/{std,extdeps,compiler,lens,workflow,install,test,...}),
not to these process docs.

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

* docs(release): tighten Public website ruling with marketing-surface guards

Adds explicit constraints derived from the operator's homepage-strategy
discussion (2026-05-30):

- No raw maintainer-internal figures (~7,951 rustc errors etc.) on the
  marketing surface; those live in SUPPORTED.md / docs/v4-status.md.
- No install/build command on the homepage unless verified under Gate C
  on every advertised target (make install / brew install / apt install
  absent until distribution ruling lets them ship).
- Hero claims scoped to v0.1.0 supported contract (Rust + Python + Go,
  documented subset). Omni-emission / lens-as-CI / impossible-bug
  material allowed in clearly-labeled "Vision" sections, never hero or
  support-claim register.
- "Impossible bug" framing scoped to bug classes PROVEN on the v0.1.0
  surface; otherwise forward-looking phrasing only.

Broader homepage content strategy (hero copy candidates, demo
prioritization, three-post launch blog plan, naming stack) lives in
session memory as project-homepage-framing; that's daglang PR #1
territory, not this doc.

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

* docs(release): ZERO OVERCLAIM posture — honest per-target Python/Go scope

Operator follow-on to flavor (iv): 'i do NOT want ANY overclaim'. Three
adjustments to enforce that across the doc:

1. Scope-revision section: add ZERO OVERCLAIM block making the
   reviewer's "silently emits plausible output" anti-pattern the hard
   release bar — no claim ships without evidence. Cross-reference to
   silent-bee-431 + sharp-otter-407 parallel disclaimer work.

2. D-REL-3b: honest per-surface scope. Rust = full example-scale today.
   Python + Go = small-smoke verified only (minimal hand-curated
   fixtures). Weather and v4-substrate Python emit currently produces
   invalid Python; Go emit currently fails go build. Python and Go are
   therefore NOT on the v0.1.0 support contract for non-trivial inputs
   — only the small-smoke surface is claimed.

3. Gate A: split per-target verification accordingly. Rust = the only
   surface verified at example-scale today. Python and Go = small-smoke
   only; SUPPORTED.md must enumerate the qualifying fixtures and
   declare non-trivial emit as outside the support contract.

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

* docs(release): refine Python/Go disclaimer with specific failure classes

Per smart-stag-871 via PM: failure class is NOT pure TCO — most TCO is
single-authority. Replace generic "invalid Python / fails go build"
wording with the actual surface bugs and v0.1.1 fix ETAs:

- Python: match-as-expression + TCO temp-decl surface bugs; fix ETA
  ~2-3 working days.
- Go: package/module layout + := scope issues; fix ETA ~1-2 working
  days.

Disclaimer is COMMITTED for the v0.1.0 tag tomorrow; relaxation lifts to
the v0.1.1 narrative as the named fixes land. Applied in both D-REL-3b
row and Gate A per-target bullets so the doc is internally consistent.

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: df2f30e9 · Trigger: schedule
  • Thinking: 269s wall

BLOCKING (3)

Root Cause

  • docs/release/v0.1.0-release-notes.md Release copy used the product/compiler name as the binary authority instead of the Cargo target authority → either change lines 18/35/37 to v2-compiler or add a real [[bin]] name = "gunbc" in the build surface.
  • docs/release/v0.1.0-release-notes.md Distribution-status prose was written ahead of the actual v4 install model → either add the model and tracked dissolution target in this PR or reword the row to say the install model is not yet present.
  • docs/release/v0.1.0-release-notes.md The release note copied a stale or desired section name without checking the current README anchor → update the link target or rename the README heading in the same PR.

⚠️ The release note needs these user-facing authority mismatches fixed before it can be the v0.1.0 source-of-truth text.


| Capability | v0.1.0 | Notes |
|---|---|---|
| Build `gunbc` from source (`cargo build --release -p v2-compiler --bin gunbc`) | ✅ | Rust toolchain pinned via `rust-toolchain.toml` |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BLOCKING: The build command names a gunbc Cargo bin, but current Cargo metadata exposes only the v2-compiler bin and CI runs target/release/v2-compiler, so the user-facing quick start is not executable; this violates INVARIANTS P1 Documentation Describes Live State.

| Compile `.dag` → `.dag` (round-trip) | ✅ | `--target dag` |
| Structural type checking, exhaustive pattern matching, termination proofs | ✅ | v2 pipeline; see [What gunbc proves](../../README.md#what-gunbc-proves) |
| `cargo test -p v2-compiler-tests` | ✅ | Compiler test suite |
| Curl install script (`install.sh` / `install.ps1`) | ❌ | Modeled in `src/v4/install/install.dag`; emission deferred. **v0.1.0 is build-from-source.** |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BLOCKING: The install row claims src/v4/install/install.dag models install.sh, but that path is absent from HEAD, git ls-files, and git ls-tree origin/main, so the release note invents a modeled/tracked authority; this violates INVARIANTS P1 Documentation Describes Live State.

| Compile `.dag` → Python | ✅ | `--target python` |
| Compile `.dag` → Go | ✅ | `--target go` |
| Compile `.dag` → `.dag` (round-trip) | ✅ | `--target dag` |
| Structural type checking, exhaustive pattern matching, termination proofs | ✅ | v2 pipeline; see [What gunbc proves](../../README.md#what-gunbc-proves) |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BLOCKING: The proof link targets README.md#what-gunbc-proves, but the live README heading is What the compiler proves with anchor #what-the-compiler-proves, so the release body breaks the path to the guarantee explanation; this violates INVARIANTS P1 Documentation Describes Live State.

@briansrls briansrls closed this Jun 1, 2026
@briansrls
briansrls deleted the session/swift-ant-866 branch June 1, 2026 18:43
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