Repository navigation
Conversation
…, one hour, converged remedy A canonical row cites an identity that exists only in an open PR, so on main -- the tree the row lands in -- the citation resolves to nothing. The mechanism is that THE TWO STATES ARE INDISTINGUISHABLE AT THE CITING END: a name that resolves and a name that will resolve are the same text in the same position, so reading more carefully does not find it. The check that discriminates is a lookup against main; the check an author naturally performs is a lookup against their own context, where the symbol is vividly present because they or a peer just wrote it. Both receipts were caught by CI and neither by review, which is what that asymmetry predicts. A vocabulary defect carries it between lanes, and that half makes the class preventable rather than merely detectable: "filed" is true the moment a row is authored in a branch and is heard as "the tree carries it". Never say filed without saying filed WHERE. Two independent receipts an hour apart, different lanes, different carriers, each caught by codex, each repaired the same way without knowledge of the other. Three admissible citation forms are ranked by DECAY rather than correctness: name the PR and its openness (stays true after the sibling lands and tightens to the bare identity), boundary by description (correct but must be rewritten), never a bare unresolving identity. The rule forbids stacking the citing PR behind the cited one: that satisfies "resolves eventually" and fails "resolves at landing". Credit: the mechanism sentence, the transport half and the PR-plus-openness form are wise-carp-844's, supplied for this row. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XpYuLQ4AwfSJmcFk26aPap
…hdrew (review 58266) Two changes, one from review and one from the peer who supplied half the row. REVIEW 58266: the row carried mechanism, receipts and remedy but no rung, ceiling or trigger, and its receipts were not identified at checkable grain. Now stated: - RUNG MITIGATABLE. The required cited-symbol resolution check is LIVE -- its rung drop cited_symbol_census is Retired -- and did not fire, because both citations were prose inside an authored: String rather than typed references. A prose name is not reachable from the namespace tree the check walks, so the check was not weak, it was not applicable. A review bot caught both, which is containment, not prevention. - CEILING is NOT structural while the citation stays prose: deciding whether an identity-shaped token in a paragraph is a citation or a mention is not decidable, so a prose scanner would be a heuristic dressed as a wall. The class sits in the outside-the-modeled-guarantee column, the same standing unbacked_execution_claim records for the same reason. - TRIGGER is a typed row-to-row citation carrier. The moment such a citation is typed, the EXISTING required check covers it and the class climbs in one step with no new gate. The evidence: List<DeclarationRef> field is named as the nearest carrier and explicitly NOT that capability. - evidence stays empty and the row says why: both receipts are PRs and review artifacts, not declarations, so padding the field would fake a DeclarationRef that does not exist. Receipts are gunbc#9946 review 58237 and gunbc#9949 review 58260. RANKING HEDGE, from wise-carp-844 correcting their own contribution: name- the-PR-and-its-openness ranks first only while the cited identity is STABLE. If the cited PR renames its row before landing -- under review pressure, or when two lanes converge and merge their classes -- that form points at a real PR carrying a row that no longer has the name, and it fails WHILE STILL LOOKING RESOLVABLE, because the PR number resolves and the identity does not. Description survives a rename; it does not name the thing that changed. An identity in an open PR under active review is precisely the unstable case. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XpYuLQ4AwfSJmcFk26aPap
…1-unlanded-citation # Conflicts: # DESIGN.md # dag/gunbc/recurring_failure_mode.dag # docs/design-ledgers.md
Roster union against my own two landed rows: main carries censored_estimator_drops_its_own_tail and selection_view_read_as_population; this branch appends unlanded_citation_indistinguishable_at_the_citing_end beside them. All three data declarations and all three roster entries kept. Projections reset to main's side and regenerated narrowly per path; the diff against main is two insertions and zero deletions. Receipt (i) tightened to identities, because the merge is what makes them resolve: it named a recurring-failure-mode row and its sibling by description while both lived in open PRs, and now names selection_view_read_as_population and censored_estimator_drops_its_own_tail directly, while stating that the receipt is precisely that they did NOT resolve when the citation was written. Receipt (ii) is deliberately UNCHANGED. It cites a class in gunbc#9939, which is still open, so the PR-plus-openness form this row ranks first is still the correct one there.
Two additions to unlanded_citation_indistinguishable_at_the_citing_end, both about the receipts paragraph rather than the rule statement. The paragraph now says why its two receipts use two different admissible forms: the first names identities because its subjects have landed, the second names a PR and its openness because gunbc#9939 has not. A stated ranking teaches the conclusion; a paragraph using both forms because its cited PRs are in different states teaches the discriminator. And the corollary that made the previous commit's edit necessary: when a citation tightens from description to identity, the receipt usually lives in the state that just ended, so tightening silently destroys it. This row's first receipt IS the historical non-resolution of those two names; tightened to bare identities it would evidence a row about unresolvable citations with resolvable ones. A tightening must carry the ended state as a stated fact beside the new name.
…ed-citation Only the two generated projections diverged; the recurring_failure_mode roster merged cleanly this time, because #9976's authority edit lands in the DESIGN document's own prose rather than on the roster this branch appends to. Neither projection was hand-resolved. Both were reset to main's side and regenerated from the MERGED authorities, so the bytes are the projection of both lanes' facts rather than either side's file. Result against main: one insertion in each, zero deletions -- this branch's index bullet and ledger row, with #9976's identity-join content intact in both files.
Contributor
|
Closing as a duplicate: this draft was auto-attached to session/deep-badger-41-unlanded-citation, the branch of #9956, which merged as 9bd0a76. Its diff from the merge base is the five lines #9956 already landed, so there is no unlanded work here; against current main it now refuses under the generated-artifact merge driver, because both sides have moved both projections since that base. Nothing to merge and nothing to rescue. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Auto-opened by session-dashboard for session
deep-badger-41.Pushing to
session/deep-badger-41-unlanded-citationadvances this PR.Worker attestation
Before flipping this PR to ready for review, confirm each item:
npm test,cargo test) and the result.Closes #Ndirective.Summary
TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.
Test plan