knowledge: guard-false may be an absent fixture operand; anchor negative controls by key prefix - #61
Open
choiyounggi wants to merge 1 commit into
Open
knowledge: guard-false may be an absent fixture operand; anchor negative controls by key prefix#61choiyounggi wants to merge 1 commit into
choiyounggi wants to merge 1 commit into
Conversation
This was referenced Aug 7, 2026
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 — 4 insight(s)
Queue drained: 4 pending candidates across 3 session files. 2 ingested, 2 dropped
as in-flight duplicates of open PR #51.
Verified best-practice
1. Harness-vs-run-path fixture synthesis (
cd4826874fdb6acc) — verifiedClaim. When a spec/test harness and the production entry point each synthesize
the program's input from different declaration sets, a guard whose operand is absent
from the harness's narrower fixture evaluates not-true and the run reports
"guard false / step skipped, exit 0" — which reads as a defect in the program under
test but is an artifact of the harness's fixture scope.
Sources checked.
comparison operators yield null (signifying "unknown"), not true or false, when
either input is null. For example,
7 = NULLyields null"; andNULL::boolean IS TRUE→f. An unknown operand lands on the not-true side,where it is indistinguishable from a present-and-false operand.
.fooon an object lacking that key producesnull;iftakes the else branch "if A produces a value other than false or null".Same collapse in a second, unrelated expression language.
have been exercised by a test suite" — grounds the "a skipping run is evidence
about the skip direction only" directive.
How verified. Two reproductions run this session, not just cited:
/usr/bin/jq, macOS): one guardshipment.readyover a one-entity fixturereturned
False, over the full fixture returnedTrue, and the one-entity resultcompared equal to the result on an explicit
{"shipment": {"ready": false}}—the two causes are one observable.
echo '{"order":{}}' | jq '.shipment.ready'→
null, and both inputs took theelsebranch.from
sample_payload([first_entity])whilerun/diff/mode-B usedsample_payload(all_entities); injecting only the missing second-entity fieldmoved the same workflow from
STATUS: completed STEPS: 1 SKIPPED: 1toSTEPS: 2 SKIPPED: 0with no other change. Three separately-filed major bugstraced to that one narrowing.
Confidence: verified. The semantic mechanism is doc-confirmed in two languages
and locally reproduced; the design directive (one synthesizer, explicit
author-overridable narrowing) is supported by the field before/after. Recorded as
verifiedwith both reproductions written into the page's Sources so a reader canre-run them.
2. Negative-control anchor rot in a doc-as-spec gate (
52dcf45adfc479f9) — verifiedClaim. When a gate's negative control builds its mutant by quoting the whole
target row — key cells and prose cells — an ordinary rewording of the prose stops
the match; the substitution returns the document unchanged rather than raising, the
check runs against the original and passes as it should, and the control reports
green while mutating nothing. Anchor on the key-column prefix and assert the
mutation applied.
Sources checked.
str.replace: "Return a copy ofthe string with all occurrences of substring old replaced by new." The
documented signature carries no not-found error and no substitution count. (The
docs do not state the not-found case explicitly, so it was reproduced rather than
cited — see below.)
str.countreturns0for an absent substring.re.subn"Perform the same operationas
sub(), but return a tuple(new_string, number_of_subs_made)" — the countedform that makes "it applied" checkable without a separate assertion.
killed when a test fails) and https://eslint.org/docs/latest/integrate/nodejs-api
(an
invalidcase must declare the errors it expects).How verified. Local reproduction 2026-08-07 (Python 3.14.6, macOS): a control
quoting
| security | jwt | rejects unsigned tokens |against a document whose cellhad been reworded to
… at the edgeproducedmutant == doc— mutation notapplied, no exception raised. The same mutation anchored on the prefix
| security | jwt |applied.re.subnreported0substitutions for the staleanchor and
1for the prefix pattern. Field origin: linklyimpl/tests/test_enforcement_matrix.py::test_a_short_row_raises_rather_than_reading_as_empty_cells,where only
assertNotEqual(mutant, original, "the mutation did not apply")surfaced it; re-anchoring returned the suite to 37/37.
Confidence: verified.
3–4. The two dropped candidates
28fd6dfedea1b338(worktree guardrail escalation on read-only cross-worktreeaccess) and
ba3b56aded3e6191(orca terminal-binding failure taxonomy) were notindependently re-verified, because open PR #51 already carries both with stronger
evidence — see Open-PR check. Notably #51's reproduction corrects the
premise of
28fd6dfedea1b338: the candidate asserts the guardrail fires onread-only access, while #51 reproduced that plain reads of a sibling worktree
(
grep,awk,cat,git -C … status) all pass, and the rule fires only when awrite verb or an absolute-path redirect co-occurs anywhere in the same command
string. Ingesting the candidate as written would have contradicted a better-sourced
open PR.
Existing-layer check
Routed via
INDEX.md→testing(both ingested candidates concern automated testcode, not release process). Read
wiki/testing/index.mdandwiki/qa/index.mdin full, then every page whose "load when" line overlaps.
Pages read: testing-quality-spec-artifact-checks, testing-quality-harness-reverse-controls, testing-quality-differential-run-agreement, testing-data-test-data-and-isolation, qa-exploratory-guard-true-path-coverage, backend-common-change-impact-call-site-enumeration
Overlaps found and resolution:
testing-quality-differential-run-agreementqa-exploratory-guard-true-path-coveragetesting-data-test-data-and-isolationtesting-quality-spec-artifact-checkstesting-quality-harness-reverse-controlsrelated:link; content stayed in spec-artifact-checks.Conflicts flagged: none among the ingested pages. One conflict avoided — see the
28fd6dfedea1b338note above (candidate premise vs. PR #51's reproduction);resolved by dropping the candidate, not by overwriting anything.
Related-links added (both directions): the new page ↔
testing-data-test-data-and-isolation,testing-quality-differential-run-agreement,qa-exploratory-guard-true-path-coverage;plus
testing-quality-harness-reverse-controls→testing-quality-spec-artifact-checks.Open-PR check
Open
knowledge/*heads listed at flush time: #58, #57, #56, #55, #52, #51, #50,#49, #47. Fetched and diffed against
origin/mainfor the heads whose titlesoverlapped any candidate's trigger — #51 (
knowledge/dch0202-20260806-183029),#58 (
knowledge/choiyounggi-20260807-191239), #57 (knowledge/choiyounggi-20260807-163902).cd4826874fdb6acc— harness fixture narrower than the run pathbackend/common/change-impact; #57 touchestesting/strategy/signal-delivery-to-a-process-under-test; #51 touches orchestration/security/qa)52dcf45adfc479f9— negative-control literal anchor rottesting/quality/spec-artifact-checks.md)28fd6dfedea1b338— worktree guardrail, read-only escalationwiki/infrastructure/agent-orchestration/worktree-isolated-workers.md(+4 rows, +1 dated local reproduction)ba3b56aded3e6191— orca terminal-binding taxonomywiki/infrastructure/agent-orchestration/pane-delivery-confirmation.md(+4 Do rows, +1 Instead-of row, +1 dated field-observation source)Both dropped candidates are the same pair that flushes #56, #57 and #58 each
dropped as in-flight duplicates of #51 — they keep re-crossing the auto-flush
threshold because #51 has not merged. They are being retired to
.processed.jsonlin this flush (step 5), so they will not re-queue.Routing decision
testing/data/harness-vs-run-path-fixtures.md(testing-data-harness-vs-run-path-fixtures)testing/dataalready exists and owns fixture construction. The case is a distinct trigger fromtest-data-and-isolation(synthesis parity + skip attribution vs. ownership/isolation), so it is a page, not a row.testing/quality/spec-artifact-checks.md— newDo thisstep 3 (anchor by key-column prefix + assertmutant != original;re.subncount as the alternative), 3 edge-case rows, 1Instead ofrow, 2 sources,last_verified→ 2026-08-0728fd6dfedea1b338,ba3b56aded3e6191.processed.jsonlPlumbing updated:
wiki/testing/index.md(## datagains the new page with its"load when" line),
log.md(oneingestentry, onededupentry). Page bodylengths: new page 65 lines,
spec-artifact-checks115 lines — both under the120-line limit. All
related:ids in every touched page resolve againstwiki/(checked mechanically).