Skip to content

skill-authoring §5: keyword-grep absence is not absence — read the section before concluding not-covered - #51

Merged
F-e-u-e-r merged 6 commits into
F-e-u-e-r:mainfrom
firaen22:mine-grep-absence-dupcheck
Jul 22, 2026
Merged

skill-authoring §5: keyword-grep absence is not absence — read the section before concluding not-covered#51
F-e-u-e-r merged 6 commits into
F-e-u-e-r:mainfrom
firaen22:mine-grep-absence-dupcheck

Conversation

@firaen22

@firaen22 firaen22 commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

What

Adds one rule to skill-authoring §5: keyword-grep absence is not absence — before concluding a fact has no home, grep the target file and siblings for the concept's synonyms, and read any near-topic section in full; a "not covered" verdict cites the section read, not the empty grep.

Why

§5's no-duplicate-homes rule has no stated dup-check method, and the naive method (keyword grep, empty result → "not covered") failed three times in one week on private repos — each time the content existed under different phrasing, and one of the three was a proposed upstream addition whose substance was already in the target file, caught only by reading the section at drafting time. The rule supplies the check that makes no-duplicate-homes enforceable.

Covenant status

Private incidents cited as shape (contributor-verifiable, not linkable). Ships with an in-body unprobed marker; the Provenance paragraph records the executable probe shape (seed a reworded twin, observe grep-only vs read) as debt.

Checks

  • Single-file diff, +63/−0 after review rounds (was +26 as filed)
  • Unicode sweep of added lines: house-style §/—/✅/❌/→ only
  • python3 .github/checks.py: passing (re-run by the maintainer each review round)

Dup-check record (this addition's own, per the rule it adds)

Terms searched: grep / absence / "not covered" / dup / synonym. Files
searched (all nine SKILL.md files, by name): operational-rigor,
delegation-and-review, skill-authoring, cross-model-review,
ground-truth-gates, security-architect, product-roadmap,
personal-goal-planning, domain-evidence-discipline. Sections read in full:
skill-authoring "2. Ground truth only", "4. Memory architecture" (its
one-source-of-truth bullet is a plausible candidate home — read; it names
the no-duplicate policy, not a dup-check method), "5. Skill-set design",
"6. Review before adopting", "7. Maintenance"; operational-rigor "5.
Adversarial self-review and completion" (twin-sweep bullet);
delegation-and-review "3. Reviewing what comes back" (named-search
bullet). Result line: not found under the searches and sections listed —
nearest cognates (the post-fix twin sweep; the reviewer search re-run) are
different lifecycle moments, cross-referenced by concept, not duplicate
homes. (Diffstat current: +63 and rising across review rounds; original
+26 as filed.)

firaen22 and others added 6 commits July 22, 2026 00:42
…ction before concluding not-covered

Three same-week incidents shared one shape: a keyword grep of a rules file
returned nothing, 'not covered' was concluded, and the content existed under
different phrasing — one of them a proposed addition whose substance was
already in the target file, caught only by reading the section at drafting
time. The no-duplicate-homes rule in §5 has no stated dup-check method; this
supplies it: grep target + siblings for synonyms, read any near-topic
section in full, and cite the section read (not the empty grep) in a
not-covered verdict. Ships unprobed per the README covenant; Provenance
records the probe shape as debt.
PR F-e-u-e-r#51 round-1 gate (grok-4.5 high: FIX 1,2; gpt-5.6-sol max:
FIX 1,2,3,4). All reproduced and addressed:
- candidate-home read made UNCONDITIONAL (hits or none), closing the
  optional-read path that reproduced the motivating failure; no
  nameable candidate home -> unresolved + escalate, never an absence
  claim (grok F2 / codex F1)
- pos example was mechanism-false (grep 'revert' cannot hit text worded
  'restore') and its bare paragraph-sign-3 dangled against THIS file's
  actual section 3; replaced with an empty-grep -> read-anyway -> found-
  under-other-wording template with no dangling ref
  (grok F1 / codex F3)
- per-addition completion record: the change record carries the
  sections-read + verdict line, the enforcement-ladder form this file
  itself prescribes (codex F2)
- siblings defined executably (other skills in the set, list the
  directory); every-hit-section + every-candidate-home quantifiers
  explicit (codex F4 / grok n4)
- private count moved behind contributor-log attribution (grok n5)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GhLu6NCGzM9HxnqNb87MAx
…andidates, reviewer recheck

PR F-e-u-e-r#51 round-2 gate (grok-4.5 high: FIX 1,2; gpt-5.6-sol max:
FIX 1-5). All reproduced and addressed:
- candidate homes now chosen from the LISTED section outline of the
  target and hit files, never from recalled/invented section names -
  closes the recall hole one level up (grok F1 / codex F1)
- escalation widened to cover doubt that the candidate list is
  complete, not only the zero-candidate case (codex F1)
- change record defined inline (PR description / commit message /
  completion report, S7's form) (grok F2)
- reviewer-side out-of-band check added: re-run the recorded searches,
  open one unlisted candidate - absence-sensitive compliance never
  rests on the author's own line, per S7's ladder (codex F3)
- pos example made auditable (three named terms, two named sections)
  and framed on a hypothetical playbook so no in-file ref dangles
  (codex F4)
- sibling set + references files defined executably (codex F5);
  trigger scoped to new facts/rules, wording/provenance edits out
  (grok n3 / codex n6); on-hit path routes to the parent rule's
  cross-reference duty (grok n5)

S2 mechanism gate run (both arms, in-repo):
- motivating arm (reworded twin): headword 'twin' in
  delegation-and-review hits only Provenance; synonym 'differently'
  hits the S3 named-search bullet (line 91); outline -> read S3 ->
  concept found under 'differently-shaped query' wording. Procedure
  catches the twin. PASS
- flipped arm (true absence): word-boundary grep for port/localhost in
  skill-authoring = 0 rule-body hits (substring hits were the
  important/support class); outline offers no plausible home; fact
  belongs to a sibling (delegation-and-review S1) -> scoped not-found,
  placement routed. PASS
Cross-family mechanism review = this PR's own dual gate (S2 arm 3).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GhLu6NCGzM9HxnqNb87MAx
…searched-file outlines, reviewer independence

PR F-e-u-e-r#51 round-3 gate (grok-4.5 high: FIX 1,2; gpt-5.6-sol max:
FIX 1-9,12,13). Adjudication:
- outlines assembled from every file SEARCHED, not only hit files -
  all-empty greps no longer drop sibling outlines (grok F1 / codex F2)
- S7-ladder paraphrase replaced with a pointer (grok F2)
- duplicate-outcome split: in-target -> no addition; sibling-owned ->
  cross-reference, or S5's verbatim-carry with sync contract
  (codex F1, F4)
- reviewer re-runs against the pre-addition text, proposed lines
  excluded - the rule no longer matches itself (codex F3)
- reviewer reads a candidate chosen INDEPENDENTLY of the record -
  ends the exhaustive-list-vs-unnamed-candidate contradiction
  (codex F9)
- search-term derivation glossed (codex F12); must-have-a-home cue
  tied to task-asserted coverage or relocation (grok n4);
  absence-path pos example with the forced phrase added (grok n3)
- rejected with reason on the trail: codex F7 (whole-file compaction =
  pre-existing condition, owner-scheduled maintenance, not this diff);
  codex F8 (sibling sections verified by the gate-runner who read both
  files in full this session); codex F13 (a prospective standing rule
  for future additions is doctrine's normal function, not an
  instruction to this PR's gate); codex F10 already fixed (+46)
- PR body dup-check record to be corrected to the exact forced phrase,
  actual headings, and the S2 section its substring hits touched
  (codex F5, F6)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GhLu6NCGzM9HxnqNb87MAx
PR F-e-u-e-r#51 round-4 gate (grok-4.5 high: FIX 1; gpt-5.6-sol max:
FIX 1,2,3,4,5,7,8). Adjudication:
- empty searches -> read the WHOLE target file before any verdict; the
  incident's catch was the read (codex F1)
- duplicate-outcome rewritten: no second home wherever it lives, with
  the 'A cross-reference is not a load' rule cited by its real title
  and applying to both ownership branches (codex F2 / grok n3)
- standalone not-covered verdicts stay provisional until an
  out-of-band read; landing additions get the S6 fresh-context
  reviewer re-run (codex F3 / grok n2)
- result line carries terms + files + file-qualified sections
  (codex F5); router-file and headingless fallbacks defined (codex F7)
- references-files quantifier fixed to each searched skill (grok n4);
  'never assert absence' scoped to its conditions (grok n5); second
  neg example pins the multi-synonym-empty-but-never-read boundary
  (grok F1)
- rejected with reason, standing dispositions: codex F4 (nine-file
  packet inlining infeasible; gate-runner read all nine skills in full
  this session), codex F8 (prospective reviewer doctrine is the file's
  normal function - same shape as delegation-and-review S3's merged
  'reviewer re-runs the named search' rule)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GhLu6NCGzM9HxnqNb87MAx
PR F-e-u-e-r#51 round-5 gate (grok-4.5 high: FIX 1,2,3; gpt-5.6-sol max:
FIX 1-8). Adjudication:
- empty-search recovery widened to EVERY searched file read in full,
  and the not-covered decision keyed to reading, not grep emptiness;
  both pos examples now model the whole-file mandate with file-
  qualified records (grok F1, F2 / codex F1, F5)
- paraphrase parenthetical deleted; pointer-only to the cross-ref rule
  (grok F3 / codex F2)
- pre-addition baseline defined as the branch-base revision, never the
  edited working copy (codex F6); standalone verdicts confirmed by a
  fresh-context reader without the author's session (codex F7)
- trigger names instruction files explicitly (codex F8); in-body
  private count dropped to shape (grok n4); headingless-file clause
  made global (grok n5); reviewer empty-search parity (grok n6)
- codex F3: PR-body dup-check record corrected separately (adds §4
  one-source-of-truth to sections read, names all nine files)
- codex F4 rejected-with-reason (standing): file length is a
  pre-existing condition; compaction is owner-scheduled maintenance,
  not this diff's burden

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GhLu6NCGzM9HxnqNb87MAx
@F-e-u-e-r
F-e-u-e-r merged commit 8f8dda7 into F-e-u-e-r:main Jul 22, 2026
3 checks passed
F-e-u-e-r added a commit that referenced this pull request Jul 23, 2026
sol r11 F1: the settle-by-commit branch now ALSO captures and
materializes every noncommitted path remaining in the protected read
set (the commit settles the reviewed content's history, not the rest
of the read set's state — a dirty config was otherwise replaced by its
clean committed form in the copy).
sol r11 F2: a NO-channel-by-design conclusion is itself a
capability-negative claim under skill-authoring S3's protocol (pinned
to version/instance/date, re-verified on drift); unknown or stale
evidence -> treat as channel-present-unattributed and block.
sol r11 F3: the server-side re-probe targets the CURRENT decision's
resolved instance/account (re-probing the former pin is comparison
evidence, never the acting gate), recording the new dimensions.
sol r11 F4: both callability observations must be produced by THIS
invocation — cached/replayed responses are not a pass (run
cache-bypassed or carry a per-invocation element a replay cannot
contain); the pinned-string battery inherits the freshness clause.
sol r11 F5: the ledgers field re-scoped to recurring REVIEW/AUDIT
campaigns (title updated both files) — recurring implementation or
operational dispatches are outside it, un-fillable four-category
mappings no longer block them.
sol r11 F6: scheduler binding closes on the first scheduler-originated
fire WHOSE EMISSION CONDITIONS WERE DUE — a first fire with no channel
due leaves binding open, its absence proving only the suppression
branch.
sol r11 F7: the full-file read triggers on failing to find the
duplicate, never on grep emptiness — one irrelevant hit no longer
disables the fallback (independently re-derives the prior campaign's
unapplied #51-r6 adjudication).
sol r11 n8: 'fails loud' corrected to 'is far likelier to be exercised
and exposed' — deprecated flags and ignored fields can fail silent
too.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GhLu6NCGzM9HxnqNb87MAx
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.

2 participants