knowledge: a shared emitter's repair advice must be legal on every path; falsify exclusivity claims before publishing (2 ingested, 3 dropped as in-flight dups of #47/#51/#64) - #68
Open
choiyounggi wants to merge 1 commit into
Conversation
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.
Knowledge flush — 5 insight(s): 2 ingested, 3 dropped as in-flight duplicates
Queue drained:
~/.dev-loop/queue/— 5 pending rows across 2 sessions.Verified best-practice
1. A rejection message emitted from a code path two constructs share →
verifiedClaim. When one function is reached by more than one caller and its message
names a construct in literal text, the subject belongs in a caller-supplied
parameter — and the repair the message offers ("use
Xinstead") must beexecuted from each emitting path, because a wrong subject is caught by reading
while an illegal repair reads as a fix and sends the author into a second,
unrelated rejection.
Sources checked (all fetched this session):
confidence-rating half directly: suggestions carry an applicability level and
"Be conservative when choosing the level";
MachineApplicable= "Can beapplied mechanically",
MaybeIncorrect= "Cannot be applied mechanicallybecause the suggestion may or may not be a good one",
Unspecified= "we don'tknow which of the above cases it falls into".
— the enum tools read to decide whether a suggestion is auto-applied or shown
for review. A production compiler encoding "this suggestion may not be valid"
as a required field is the strongest available corroboration that repair
validity is a separate property from message correctness.
must offer constructive advice describing a solution sufficient for the user
to fix the problem. Advice that is illegal on the reader's path fails that bar.
How verified. Both Rust pages were fetched and quoted verbatim (not
paraphrased from memory); the NN/g guideline was retrieved via search and its
"constructive advice / solution sufficient to fix the problem" wording confirmed.
The field incident behind the candidate is reproducible in
linkly(
impl/lnpl/lower.py:_Scope.check_referencehardcoded "guard condition" whileserving both the guard and assignment paths; its
set-target advice recommendedinput.<field>, which_derive_assignmentrejects forsettargets by aseparate rule — suite 1864 → 1872 after parameterizing subject/target, the 8 new
per-path assertions and no other delta).
Confidence:
verified— the general directive is doc-backed, the incident isthe reproduction.
2. An exclusivity or absence claim in a document →
verifiedClaim. "The only way is Y" / "this cannot be expressed" / "exactly N forms"
must be falsified before publication, not confirmed — and the document should
carry the rule that generates the forms rather than an enumeration of them.
Sources checked (all fetched this session):
EWD303, fetched and quoted: "program testing can be used very effectively to
show the presence of bugs but never to show their absence", and on sampling:
"hopelessly inadequate to convince ourselves of the correctness … whole classes
of in some sense critical cases can and will be missed". This is exactly the
asymmetry an absence claim runs into.
logically impossible to verify a universal proposition by reference to
experience …, but a single genuine counter-instance falsifies the corresponding
universal law"; "an exception, far from 'proving' a rule, conclusively refutes
it". Supplies the logic for "supported by a failed refutation, never by
confirmations".
misinform; documentation changes in the same change as the code it describes.
Supports the re-check directive (an exclusivity claim is invalidated by
additions elsewhere).
How verified. EWD303 and the SEP entry were both fetched and the sentences
quoted verbatim from the retrieved text. The Google docguide URL is the same one
already cited by the merged wiki, so it resolves in this repo's existing
citation set. The field incident is a recorded run:
lnpl spec --runonfind order+create orderreturnedfailedwithfailure_reason='repository create conflicts: entity.order already exists',falsifying the published "only two
creates conflict" sentence.Confidence:
verified.3–5. The three dev-loop orchestration candidates → not re-verified (dropped)
Guardrail read-only worktree escalation; Orca terminal/dispatch binding taxonomy;
tmux in-band question menu. These were not researched further because the
open-PR check (below) found each already ingested in an open PR in equal or
better form. Nothing was upgraded to
verifiedon the strength of this session.Existing-layer check
Routed via
INDEX.md→backend(server-side application code,common/errorsowns error structure) and
qa(release-quality process,deliverablesownsclaims in a published document).
Pages read: backend-common-api-design-error-responses, backend-common-api-design-unenforced-declarations, backend-common-change-impact-call-site-enumeration, backend-common-errors-exception-handling, backend-common-errors-async-failure-handling, debugging-signals-reading-error-messages, debugging-methodology-hypothesis-testing, qa-deliverables-generated-artifacts-as-deliverable-source, qa-document-verification-spec-document-gates, qa-document-verification-editing-a-gated-document, qa-process-scope-purity-checks, qa-exploratory-lowered-declaration-survival, infrastructure-agent-orchestration-worktree-isolated-workers, infrastructure-agent-orchestration-pane-delivery-confirmation
Plus a
grep -ril 'diagnostic' wiki/andgrep -ril 'error message' wiki/sweepover the whole wiki, to make sure no page under another domain already owned the
producer side of diagnostics.
Overlaps found, and why each is adjacent rather than duplicate:
backend-common-api-design-error-responsesdebugging-signals-reading-error-messagesbackend-common-api-design-unenforced-declarationsbackend-common-change-impact-call-site-enumerationqa-deliverables-quantitative-claims-in-a-published-document(not merged — open in #51)mainand a link to it would dangle until #51 merges. Flagged here so the owner can add the reciprocal link when #51 lands.qa-deliverables-generated-artifacts-as-deliverable-sourceqa-document-verification-spec-document-gatesdebugging-methodology-hypothesis-testingConflicts flagged: none. No existing page states a conflicting directive on
either trigger.
Merged vs created: both created new — neither trigger existed anywhere in the
wiki (merge-before-create was checked against every "load when" line in the two
target categories plus the two grep sweeps above).
Reciprocal
related:links added to 6 existing pages:error-responses,unenforced-declarations,call-site-enumeration,reading-error-messages(→ insight 1);generated-artifacts-as-deliverable-source,spec-document-gates,hypothesis-testing(→ insight 2).last_verifiedwasnot bumped on those pages — only a link was added, no claim was re-verified.
Open-PR check
13 open
knowledge/*heads listed and each fetched;git diff origin/main origin/<head> -- wiki/inspected for every one:#66 choiyounggi-20260808-013406,#64 choiyounggi-20260808-004155,#62 choiyounggi-20260807-225916,#61 choiyounggi-20260807-213244,#58 choiyounggi-20260807-191239,#57 choiyounggi-20260807-163902,#56 choiyounggi-20260807-153857,#55 choiyounggi-20260807-144058,#52 dch0202-rsquare-20260807-100149,#51 dch0202-20260806-183029,#50 dch0202-20260806-172420,#49 dch0202-rsquare-20260806-142309,#47 dch0202-20260806-130040.#58touchesbackend/common/change-impact/(corpus sweep before a rejection rule: how to bound a new rejection, not how to word one from a shared emitter);#56touchesunenforced-declarationsfrontmatter only#51addsqa/deliverables/quantitative-claims-in-a-published-document(numeric claims),#66extendsqa/document-verification/spec-document-gates(gate design) — neither carries the falsification directive or the enumeration-vs-generating-rule ruleworktree_escapefires on read-only cross-worktree access#51and#47, both oninfrastructure/agent-orchestration/worktree-isolated-workers#47carries the identical directive including the escalation round trip and the "reads pre-approved, writes and system-temp still refused" briefing line;#51additionally reproduces the rule's mechanism (main-root mention surviving the strip and an independent write-verb/absolute-redirect match). Strictly better than the candidate.runtime_unavailablevsagent_unconfigured, pass--worktree#51, oninfrastructure/agent-orchestration/pane-delivery-confirmationInstead ofrow and the three field observations.#64, new pageinfrastructure/agent-orchestration/unattended-worker-questionsThree drops, no folds — nothing unique in the dropped candidates was missing from
the open heads, so there was nothing to push to those branches. This is the
recurring trio flagged in
#39; it re-enters the queue on every flush until#47/#51/#64merge.Routing decision
backendcommon/errors(existing — owns error structure and where errors are translated)wiki/backend/common/errors/diagnostics-from-a-shared-code-path.md(new)qadeliverables(existing — owns claims in a document about to be handed out)wiki/qa/deliverables/exclusivity-and-absence-claims.md(new)No new categories were added. Both candidates were considered against the
alternatives before landing:
backend/common/api-design/(whereunenforced-declarationslives) and againstdebugging/signals/. It went toerrorsbecause the artifact being changed is the emitted error, not the APIcontract shape and not the reader's diagnosis workflow.
qa/document-verification/(automated gates on adocument). It went to
deliverablesbecause the directive governs what anauthor writes, and only routes onward to
document-verificationfor turningthe re-check into a gate.
Plumbing updated:
wiki/backend/index.mdandwiki/qa/index.mdeach gained a"load when" row;
log.mdgained the dated ingest entry naming both new pages,the sources verified, and the three drops with their PR numbers.
Mechanical check before commit: both pages are 72 body lines (limit 120), every
related:id and inline[page-id]reference resolves againstwiki/, andneither body contains a banned vague qualifier.