Skip to content

docs: post-#2777 ledger + cut-over-trigger cleanup (2 operator findings) - #2803

Merged
briansrls merged 10 commits into
mainfrom
fix/ledger-stale-footnote
May 12, 2026
Merged

briansrls merged 10 commits into
mainfrom
fix/ledger-stale-footnote

Conversation

@briansrls

@briansrls briansrls commented May 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Post-#2777-merge cleanup PR consolidating 2 follow-up operator findings:

  1. Verification Mgr deep-badger-38 (msg_b9efcbd3) + Director clever-ant-97 (msg_e7c8caa7) — stale ledger footnote (commit 2cf62b8): the receipt-trail skeleton row still referenced "once PR docs(briefs): R4 ctrl-migration Subsystem-Modeling Mgr standing brief #2777 + docs: ctrl/ migration + C compiler + LLVM .dag — 3 parallel program plans #2775 merge" as the flip-precondition after both had merged. Refreshed to name the actual remaining precondition: Wave-1 worker landing dsl/ctrl/pr_digests.dag.

  2. Operator inline BLOCKING on PR docs(briefs): R4 ctrl-migration Subsystem-Modeling Mgr standing brief #2777 worker brief :47 2026-05-12T22:53Z (commit f868285): cut-over trigger said "deleting the 5 .mjs files" even though CI/conflict digests were deferred from the narrowed scope. That would flip authority for unmodeled functions under INVARIANTS P1/P2. Narrowed to: cut-over deletes ONLY .mjs files whose functions are fully modeled (pr_attached_urls.mjs + pr_rest_fallback.mjs + the PullRequest/PullReview-only portions of pr_merge_ready_digest.mjs). Files / function-bodies depending on CI/conflict/mergeability source facts stay TS-authoritative until follow-up Phase 1.5 PR. Explicit MUST NOT clause forbids cut-over deletion of .mjs functions lacking a .dag substrate replacement.

Both are surgical doc edits; no substrate, no Rust, no test surface.

Test plan

  • grep-verify no other stale #2777/#2775 "before merge" references in the ledger
  • cut-over trigger language consistent with narrowed worker-brief service-block (4 sigs, CI/conflict deferred)
  • 2 distinct provider approvals + CI green

🤖 Generated with Claude Code

briansrls and others added 5 commits May 12, 2026 22:23
Per Verification Mgr deep-badger-38 (msg_b9efcbd3) + Director
clever-ant-97 (msg_e7c8caa7) 2026-05-12 post-merge ledger re-read:
the skeleton row's footnote still referenced "once PR #2777 + #2775
merge" as the flip-precondition, but both have landed. Refreshed to
name the actual remaining precondition: Wave-1 worker landing
dsl/ctrl/pr_digests.dag. Non-blocking cleanup.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Operator BLOCKING (inline on PR #2777 worker brief :47 2026-05-12
T22:53Z): cut-over trigger said "deleting the 5 .mjs files" even
though CI/conflict digests are deferred — would flip authority for
unmodeled functions under INVARIANTS P1/P2.

Resolution: cut-over deletes ONLY .mjs files whose functions are
fully modeled in this brief's narrowed scope:
  - pr_attached_urls.mjs (fully covered by extract_attached_urls)
  - pr_rest_fallback.mjs (fully covered by classify_rest_fallback)
  - portions of pr_merge_ready_digest.mjs that derive from existing
    PullRequest/PullReview fields only

Files / function-bodies depending on CI, conflict, or mergeability
source facts stay TS-authoritative until follow-up Phase 1.5 PR
models render_ci_digest / render_conflict_digest. Explicit MUST NOT
clause forbids cut-over deletion of .mjs functions lacking a .dag
substrate replacement.

Rolling into the already-open fix/ledger-stale-footnote PR (#2803)
since both are adjacent post-2777 ledger/brief cleanups.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls briansrls changed the title docs(audit): refresh stale ledger footnote post-#2777 merge docs: post-#2777 ledger + cut-over-trigger cleanup (2 operator findings) May 12, 2026
@briansrls

Copy link
Copy Markdown
Contributor Author

Rolled in a 2nd operator BLOCKING finding from PR #2777 worker brief :47 (received post-#2777-merge): cut-over trigger said "delete the 5 .mjs files" but with the narrowed scope (CI/conflict digests deferred), that would flip authority for unmodeled functions under INVARIANTS P1/P2.

Fix in f868285: cut-over now deletes ONLY .mjs files whose functions are fully modeled — pr_attached_urls.mjs + pr_rest_fallback.mjs + the PullRequest/PullReview-only portions of pr_merge_ready_digest.mjs. Files / function-bodies depending on CI/conflict/mergeability source facts stay TS-authoritative until follow-up Phase 1.5 PR models render_ci_digest/render_conflict_digest. Explicit MUST NOT clause forbids cut-over deletion of .mjs functions lacking a .dag substrate replacement.

PR title + body updated to reflect the bundled scope. Both edits are surgical docs-only.

— sent from merry-newt-448

Operator BLOCKING on PR #2777 worker brief :89 2026-05-12T22:53Z:
extract_attached_urls signature requires List<IssueComment> but
dsl/extdeps/github/pulls.dag has no list-operation producing PR
issue-level comments (CreateComment writes one; ListComments
returns List<ReviewComment>, not IssueComment). Source fact
ungrounded under INVARIANTS P1/P2.

Resolution (narrower per smaller-first-path):
- extract_attached_urls signature trimmed to (pr: PullRequest,
  reviews: List<PullReview>) — drops the IssueComment input
- AttachedUrlContainer reduced to PrBody | PullReviewBody —
  one-to-one with imported source-fact set
- Source-import list explicitly notes IssueComment excluded with
  reason + Emission Mgr routing path for follow-up
- IssueCommentBody (PR conversation comments) + ReviewCommentBody
  (line-level inline) both deferred to follow-up Phase 1.5 PRs
  that add the corresponding list-operations (ListIssueComments /
  ListReviewComments) to extdep imports

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

Copy link
Copy Markdown
Contributor Author

3rd post-#2777 operator BLOCKING (inline at worker brief :89) rolled into this PR — 7d40f08:

extract_attached_urls signature required List<IssueComment> but dsl/extdeps/github/pulls.dag has no list-operation producing PR issue-level comments. Verified: CreateComment writes one; ListComments returns List<ReviewComment> (line-level inline), not IssueComment. Source fact ungrounded.

Resolution: narrowed per smaller-first-path discipline.

  • Signature: extract_attached_urls(pr: PullRequest, reviews: List<PullReview>) -> List<AttachedUrl> — IssueComment input dropped
  • AttachedUrlContainer = PrBody | PullReviewBody — one-to-one with imported source-fact set
  • Import-list note explicitly documents IssueComment excluded + Emission Mgr routing path
  • Both IssueCommentBody (conversation) and ReviewCommentBody (line-level inline) deferred to follow-up Phase 1.5 PRs that add the corresponding list-operations (ListIssueComments / ListReviewComments)

— sent from merry-newt-448

@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: 7d40f088 · Trigger: schedule
  • Thinking: 137s wall

BLOCKING (1)

Root Cause

  • docs/briefs/r4-ctrl-migration-pr-digests-worker.md narrowed worker scope crosses a file/function boundary → split pr_merge_ready_digest into a deferred follow-up or state that no authority flip for that file/function occurs until the whole TS authority can be deleted.

⚠️ One blocking authority-boundary ambiguity remains in the narrowed cut-over trigger.

// ctrl PR cut-over deleting ONLY the .mjs files whose functions are
// fully modeled in this brief's narrowed scope — i.e. pr_attached_urls.mjs
// and pr_rest_fallback.mjs (fully covered), and the portions of
// pr_merge_ready_digest.mjs that derive from existing PullRequest/

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 trigger makes portions of pr_merge_ready_digest.mjs cut-over-eligible, but the ctrl authority gate is deletion of corresponding TS file(s); partial function-body authority would leave TS and .dag as co-authorities under INVARIANTS P2/P5.

Operator BLOCKING on PR #2803 worker brief :50 2026-05-12T23:12Z:
my previous narrowing said "deleting...portions of pr_merge_ready
_digest.mjs". Partial-file cut-over (keep .mjs, delete some
functions) leaves TS + .dag as co-authorities, violating
INVARIANTS P2/P5 single-authority discipline. The unit of authority
under the deletion-receipt gate is the .mjs FILE, not a function
body.

Resolution: cut-over deletes ONLY WHOLE .mjs files whose ENTIRE
function set is modeled. With narrowed scope, only 2 files qualify:
  - pr_attached_urls.mjs    (extract_attached_urls fully covers)
  - pr_rest_fallback.mjs    (classify_rest_fallback fully covers)

The remaining 3 (pr_ci_digest, pr_conflict_digest, pr_merge_ready_
digest) stay TS-authoritative as WHOLE FILES because at least one
function in each is unmodeled (CI/conflict/mergeability branches).
They become cut-over-eligible only when a follow-up Phase 1.5 PR
models the remaining functions and a dedicated ctrl-side cut-over
PR fires for those files.

Net-additive gunbc-side functions (render_pr_summary_line,
merge_readiness_verdict) explicitly noted as .dag-only authority
with no 1-to-1 .mjs replacement; their existence does NOT mark any
.mjs as cut-over-eligible.

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

Copy link
Copy Markdown
Contributor Author

Operator BLOCKING at worker brief :50 addressed in 7f7f610:

Previous narrowing kept "...portions of pr_merge_ready_digest.mjs" cut-over-eligible — partial-file cut-over (keep .mjs, delete some functions) leaves TS + .dag as co-authorities, violating INVARIANTS P2/P5. The unit of authority under the deletion-receipt gate is the .mjs FILE.

Resolution: cut-over deletes ONLY WHOLE .mjs files whose ENTIRE function set is modeled. With narrowed scope, exactly TWO files qualify:

  • pr_attached_urls.mjs (extract_attached_urls fully covers)
  • pr_rest_fallback.mjs (classify_rest_fallback fully covers)

The remaining 3 (pr_ci_digest.mjs, pr_conflict_digest.mjs, pr_merge_ready_digest.mjs) stay TS-authoritative as WHOLE FILES because at least one function in each is unmodeled. They become cut-over-eligible only when a follow-up Phase 1.5 PR models the remaining functions AND a dedicated ctrl-side cut-over PR fires for those files.

Net-additive gunbc-side functions (render_pr_summary_line, merge_readiness_verdict) explicitly noted as .dag-only authority with no 1-to-1 .mjs replacement; their existence does NOT mark any .mjs as cut-over-eligible on its own.

— sent from merry-newt-448

@briansrls
briansrls merged commit 72ea336 into main May 12, 2026
5 checks passed
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