Skip to content

docs: pointers carry no as-of date or recheck trigger - #15449

Merged
kyle-sexton merged 6 commits into
mainfrom
docs/pointers-without-stamps-policy
Nov 11, 2026
Merged

kyle-sexton merged 6 commits into
mainfrom
docs/pointers-without-stamps-policy

Conversation

@kyle-sexton

@kyle-sexton kyle-sexton commented Nov 11, 2026 •

Copy link
Copy Markdown
Member

No related issue: the owner's 2026-11-11 decision (Q11) that pointers carry no as-of date or recheck trigger; it has no tracking issue. This PR changes rule text only.

Summary

A pointer record is now our decision plus a section-anchored pointer, with the situation in which
to fetch it where that helps. It carries no as-of date and no recheck trigger: the per-PR and
weekly link checks catch a dead link or moved anchor, whoever fetches the link reads its current
content, and git history records when the line changed. A stored upstream value (a recorded
default, limit, version gate, price, error string, or probe observation kept in a code constant,
data file, table of measured values or observation record) keeps both, as the managed standard
docs/standards/documentation-and-citations.md "Time-bound external claims need a recheck
trigger" requires of a snapshot. That standard is not edited: its rule binds a recorded snapshot,
and it already prefers linking and fetching at read time.

This pull request also carries the tooling half (folded in from #15452, which is closed): the two checks, generators and skills that read or required pointer stamps. The rule and the checks it describes must land together, or each half would contradict main on its own.

A pointer to an upstream section no longer carries an as-of date or a recheck trigger; only a
stored upstream value (a recorded default, limit, version gate, price, error string or measured
observation) keeps them. This updates the checkers, generator, script and prompts that assumed
every pointer record was stamped. The policy text itself lands in a separate PR.

Fix

Policy text

  • docs/contracts/upstream-drift/README.md 5.0.0 (major: a required part changes) with its
    CHANGELOG entry. Rewrites the intro, Boundary (how a pointer meets the org rule), "A date is never
    authority" (three record kinds), "Required parts" (pointer record vs stored value; probes,
    source conflicts and topics no docs page covers are stored values), the observability bar, "When
    a trigger fires" (a pointer never fires), the Old-patterns and WebFetch examples, the git-pin
    wording, Enforceability (link-check row, stamp-on-pointer row, stored-value stamp row), Adopters
    and "Why this name". Every heading is kept, so all inbound #anchors and the stub still resolve.
    Title changed; the stub title and the docs/plugin-philosophy.md registry row follow it.
  • .claude/rules/skill-bodies-state-current-rules.md and its description; the AGENTS.md index
    row regenerated with render-index.sh write.
  • Rule text: docs/review/skills-and-agents.md, docs/contracts/native-references/README.md
    (3.6.0), docs/contracts/authoring-formats/README.md (1.0.6),
    plugins/playbooks/reference/model-adaptation/AGENTS.md,
    plugins/playbooks/skills/skill-authoring/reference/skill-criteria.md,
    plugins/harness-config/reference/agents-md-liveness.md. Fragments for playbooks and
    harness-config.
  • Left unchanged on purpose: docs/conventions/gather-block/README.md (its stamps sit on a
    record, not rule text, and record a probed composition), the hook-config-delivery contract (its
    As of column records version-pinned probes and readings: stored values),
    .claude/rules/cost-claims.md (measured run costs are stored values). Existing stamps are not
    swept in this PR.

Tooling

  • plugins/skill-quality/scripts/check-skill.sh check 29 and
    plugins/harness-config/skills/audit-instructions/scripts/instruction-scan.sh I40: a bare #N
    is exempt when its block (a run of non-blank lines) also cites N upstream as owner/repo#N or an
    /issues/N or /pull/N URL. The stamped-block exemption stays for stored values. The I40
    criteria row and the skill-quality README describe the new exemption.
  • scripts/sync-plugin-options-docs.py: the README options block's "Upstream documentation" list
    is links only, so it is a pointer. The "As of … Recheck trigger:" line is dropped and every
    plugin README regenerated with the script's write mode. scripts/check-data-root.test.sh now
    asserts the block has no stamp, and its trigger-less stamp check, whose subject no longer
    exists, is removed.
  • plugins/instruction-placement/skills/migrate/scripts/remove-shims.sh: the printed price ends
    where the pointer bullet ends (next bullet, blank line or heading), not at a - **As of** line.
  • Prompts and rubrics that asked for a stamp on a pointer: multi-agent drift-audit.js repo mode
    (copied-current now means no pointer, or a stored value without a stamp); attribution
    rubric.md carve-out 2 and "A conforming record's parts", and dispositions.md
    condense-to-stamped-record (stamp only when the decision stores an upstream value; the
    expiry and trigger-less checks are unchanged); docs-hygiene audit-derivability (a pointer is
    its own drift control); harness-ops changelog classification-rubric.md (a fired trigger is a
    correct signal for a stored value; for a pointer the feature grep is).
  • One changelog fragment per touched plugin (60).

Verification

Policy text

  • markdownlint-cli2 on all 16 changed files: 0 issues.
  • scripts/check-changelog-fragments.sh --check: all fragments valid.
  • scripts/sync-shared-copies.sh --check: all 771 copies match.
  • render-index.sh check --file AGENTS.md: IN-SYNC.
  • lychee --offline with lychee.toml on the changed contracts and rule: 0 errors.
  • scripts/check-vocabulary.py on the changed docs: no findings.

Tooling

  • plugins/skill-quality/scripts/check-skill.test.sh: all assertions pass; the two new quiet
    cases fail against the old script.
  • plugins/harness-config/skills/audit-instructions/scripts/instruction-scan.test.sh: 178/178;
    3 fail against the old script.
  • plugins/instruction-placement/skills/migrate/scripts/remove-shims.test.sh: 117/117; the new
    unstamped case fails against the old script.
  • node --test plugins/multi-agent/tests/drift-audit.test.mjs: 42/42, one new.
  • scripts/check-data-root.test.sh: 17 pass; sync-plugin-options-docs.py --check up to date;
    run-ruff.sh check clean.
  • markdownlint on 125 changed markdown files: 0 issues. check-changelog-fragments.sh --check
    and --check-required origin/main pass; sync-shared-copies.sh --check passes.

Related

  • Tooling (check-skill check 29, instruction-scan I40, the options-block generator, remove-shims,
    and skills that instruct stamps) ships in a separate PR on
    fix/pointer-records-without-stamps-tooling.

  • Policy text (rule, upstream-drift contract) lands in the companion PR on
    docs/pointers-without-stamps-policy.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm

By the owner's decision of 2026-11-11, a pointer record is our decision
plus a section-anchored pointer, with no as-of date and no recheck
trigger. The per-PR and weekly link checks catch a dead link or moved
anchor, whoever fetches the link reads its current content, and git
history records when the line changed. A stored upstream value (a
recorded default, limit, version gate, price, error string, or probe
observation kept in a code constant, data file, table of measured values
or observation record) keeps both, as the managed standard's
"Time-bound external claims need a recheck trigger" requires.

- upstream-drift contract 5.0.0 (major: a required part changes), with
  its CHANGELOG entry; every heading kept, stub title updated.
- skill-bodies rule and its AGENTS.md index row (render-index.sh write).
- Rule text in docs/review/skills-and-agents.md, native-references
  (3.6.0), authoring-formats (1.0.6), the playbooks model-adaptation
  conventions and skill criteria, and harness-config agents-md-liveness.

Existing stamps are not swept here; tooling changes ship separately.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-11T22:32:07.958102Z bfbca92 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

kyle-sexton and others added 2 commits November 11, 2026 17:34
A pointer to an upstream section no longer carries an as-of date or a
recheck trigger; only a stored upstream value (a recorded default, limit,
version gate, price, error string or measured observation) keeps them.
The tooling still assumed every pointer record was stamped:

- skill-quality check 29 and harness-config I40 exempted a bare #N only
  inside a stamped block. Both now also exempt a bare #N whose block cites
  the same number upstream (owner/repo#N or an /issues/N or /pull/N URL),
  and keep the stamped-block exemption for stored values. New tests fail
  on the old scripts and pass now.
- sync-plugin-options-docs.py wrote "As of ... Recheck trigger:" under the
  README options block's Upstream documentation list, which is links only
  (pointers). The stamp is dropped and every README regenerated;
  check-data-root.test.sh asserts its absence and drops the trigger-less
  stamp check whose subject is gone.
- instruction-placement remove-shims.sh ended the printed price at a
  "- **As of**" line; it now ends where the pointer bullet ends, with a
  test for an unstamped record.
- Prompts and rubrics that asked for a stamp on a pointer: multi-agent
  drift-audit repo mode (copied-current), attribution rubric carve-out and
  condense-to-stamped-record parts, docs-hygiene audit-derivability drift
  control, harness-ops changelog correct lens.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm
The History and provenance exemption now describes what
/skill-quality:check check 29 exempts after #15452: a bare #N its block
also cites upstream, plus stored-value records with an as-of date and
recheck trigger, instead of a pointer record with stamps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm
@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

claude-security-review reviewed e1e9d9f38850e664353d338029df5b724ae9b7c3: read 138 of 138 changed file(s); 0 finding(s), 0 as inline comments.

Chunk 1 of 3 (40 files)

Security review (chunk 1 of 3, incremental since 2ca121c9): no security issues found

critical-findings: 0

Blocking only. The prior-findings file says this lane already reviewed an earlier head (blocking only: yes), so this review reports only CRITICAL and IMPORTANT findings. It found neither.

Scope. I read every hunk of all 40 files in .claude-lane/chunks/chunk-1.patch. That covers:

  • 8 changelog fragments under .changes/.
  • 30 plugin README options blocks. Each loses its "As of 2026-11-04. Recheck trigger: …" line. The autonomy and discipline READMEs also get small wording edits.
  • The attribution audit's rubric.md and dispositions.md, plus the new golden case c57.
  • The docs-hygiene audit-derivability SKILL.md and context/rubric.md.

Every change is Markdown or JSON fixture data. Nothing here touches code, a workflow, an action, a plugin manifest, a hook, a permission or token configuration.

Trusted paths. No file in this chunk matches a TRUSTED PATHS: glob.

Identical copies. .claude-lane/identical.txt lists the actionlint fragment as the first path. Its 53 copies are the same patch-bump fragment under other plugins' .changes/<plugin>/ directories. None of those paths gives the content a different effect: they are release-note inputs only, with no hook, workflow, settings or manifest path among them.

Instruction-surface lens. I checked two softened instructions by their consequence. I did not open the register file docs/contracts/instruction-exception-register/README.md for this chunk; I judged against the six Gate 0 classes the earlier review of this pull request listed from it.

  • Attribution audit (plugins/attribution/skills/audit/reference/rubric.md, dispositions.md). A pointer record no longer needs an as-of date or recheck trigger. The closest class is legal-compliance, since copying text from an upstream source is the risk here. The change does not widen copy carve-out 2:
    • The new text says "A link is never a carve-out". Text beside a pointer that matches or paraphrases the source is still judged by the criteria.
    • The new golden case c57-paraphrase-beside-link-not-carved-out makes a paraphrase that sits next to a bare pointer an expected paraphrase finding.
    • Only the missing stamp is waived. No request reaches an action that the old rule prevented.
  • Docs-hygiene audit-derivability. It now treats a pointer as its own drift control and never asks it for a stamp. This is a doc-freshness rule, not a protected class. The cache-demotion rule ("No regeneration path and no recheck trigger → not a cache") is kept.

Settled threads. The one settled thread, on skill-criteria.md, is about a file outside this chunk. Its point is not re-raised.

PR context. No embedded instructions aimed at the review lane.

Cost. None. Nothing in this chunk spends credits or can start a charge.

Chunk 2 of 3 (40 files)

Security review (chunk 2 of 3, incremental): no security issues found

critical-findings: 0

Scope. I read every hunk of all 40 files in .claude-lane/chunks/chunk-2.patch. This lane already reviewed an earlier head (blocking only: yes), so this review reports only CRITICAL and IMPORTANT findings. It found neither.

What changed in this chunk:

  • 31 plugin READMEs: the generated "As of … Recheck trigger:" lines are removed from the plugin-options block. plugins/session-flow/README.md also renames "substrate" to "process" in two places. All prose.
  • Check 29 and I40: plugins/skill-quality/scripts/check-skill.sh (check 29) and plugins/harness-config/skills/audit-instructions/scripts/instruction-scan.sh (I40), with their tests and the criteria/README text. The new awk functions cited/own_ref build an ERE from a string reduced to digits by gsub(/[^0-9]/, "", m), so no regex or command injection is possible. Both scripts are advisory linters (I40 always exits 0; check 29 warns). Neither gates a merge, a token or a trust decision.
  • plugins/instruction-placement/skills/migrate/scripts/remove-shims.sh: the awk that prints the shim-removal price from the local reference/sources.md now stops at the end of the pointer bullet rather than at the As of line. It only prints text. The --confirm gate on removal is unchanged, and the test still asserts the repository is untouched without --confirm.
  • plugins/multi-agent/workflows/drift-audit.js and its test: only the prompt and schema description text changes. FETCH_RULE (fetch only on listed source hosts, never put repository content into an address) and READ_ONLY are untouched.
  • Rule text: plugins/harness-ops/skills/changelog/context/classification-rubric.md and plugins/instruction-placement/skills/migrate/reference/sources.md.

Trusted paths. No file in this chunk matches a TRUSTED PATHS: glob. plugins/review/README.md is outside plugins/review/skills/security-review/**. No .claude-plugin/plugin.json or marketplace.json is in this chunk, so there are no manifest lines.

Instruction-surface lens. The protected-class list was not consulted for this chunk: I did not read docs/contracts/instruction-exception-register/README.md in this run, so I checked by consequence. The softening is the same one the earlier head's review judged against the register's six classes: a pointer no longer needs an as-of date or recheck trigger, and a bare #N is exempt when its block cites the same number upstream. That is a doc-freshness and provenance-style concern. It is not irreversible-action, secret-handling, data-integrity, external-publication, legal-compliance or agent-authority, so no request now reaches a previously blocked action.

Settled threads. The one settled thread (skill-criteria lines 227-230, lines changed since resolution: no) was about the criteria text not matching check 29. Folding the tooling half into this PR resolves it, and this chunk's check-skill.sh change carries that exemption. Nothing to re-raise.

PR context. No embedded text aimed at the review lane.

Cost. None. Nothing in this chunk spends credits or can create a charge.

Chunk 3 of 3 (6 files)

Security review (chunk 3 of 3, incremental): no security issues found

critical-findings: 0

Scope. This review covers chunk 3 only, the changes since 2ca121c9. I read every hunk of its 6 files in .claude-lane/chunks/chunk-3.patch:

  • plugins/user-interface/README.md, plugins/verification/README.md, plugins/visualization/README.md and plugins/work-items/README.md. The generated plugin-options block loses its "As of … Recheck trigger:" line. Two prose sentences are reworded.
  • scripts/sync-plugin-options-docs.py. The POINTERS_AS_OF constant and the two lines that rendered the stamp are removed. render() still builds only static link text. No new input, interpolation, file write or command was added.
  • scripts/check-data-root.test.sh. The assertion now requires that the block has no stamp. The check-stamps.sh --trigger-less assertion is removed, because the stamp it checked no longer exists. This is a test-only change and gates no lane, token or merge.

None of these files matches a TRUSTED PATHS: glob. No workflow, action, manifest, hook, permission, token request, kill switch or merge hold is touched. No userConfig or other manifest field changes.

Instruction-surface lens. The only standing text removed is a doc-freshness stamp on a list of upstream links. It belongs to none of the protected classes in docs/contracts/instruction-exception-register/README.md (irreversible-action, secret-handling, data-integrity, external-publication, legal-compliance, agent-authority). The sentence that keeps a sensitive option off the command line stays in the block, and the test still asserts it.

PR context. It contains no embedded instructions aimed at the review lane.

Blocking only. This lane already reviewed an earlier head (blocking only: yes), so only CRITICAL or IMPORTANT findings would be posted. There are none.

Cost. None. This chunk spends no credits and cannot create a charge.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

claude-review: 1 inline finding(s) on 2ca121c957d170fbee37ba39ccfddb8e87175b30; the summary is in this lane's pull request comment.

claude-lane: claude-review

@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

claude-review reviewed e1e9d9f38850e664353d338029df5b724ae9b7c3: read 138 of 138 changed file(s); 0 finding(s), 0 as inline comments.

Chunk 1 of 3 (40 files)

Code review: PR #15449, chunk 1 of 3 (incremental since 2ca121c9)

No blocking findings in this chunk. I read every hunk of all 40 files in chunk-1.patch. This lane already reviewed an earlier head, so this pass reports only blocking findings and drops advisory ones.

What the chunk changes

  • Changelog fragments (8). The actionlint fragment's content is identical in the 53 other per-plugin fragments listed in identical.txt. All of them sit at ordinary .changes/<plugin>/ paths, so no copy behaves differently because of where it lives.
    • Bump levels fit each change: minor for attribution and multi-agent, where the audit's behavior changes; patch for the rest.
  • Plugin READMEs. Each generated options block drops its As of … Recheck trigger: line. The removal is the same in every file and stays inside the GENERATED: plugin options markers. A few READMEs also get small prose edits:
    • discipline: punctuation.
    • autonomy: "seams" becomes "interfaces".
  • attribution rubric.md and dispositions.md. A condensed record now carries an as-of date and recheck trigger only when its decision stores an upstream value. The rubric adds "A link is never a carve-out", so carve-out 2 does not get wider.
    • Checked that the new golden case c57 is consistent with c05: same class and tier, and the span (lines 3–9) matches the paragraphs in case.md.
    • Its source.md opens with the planted-fixture paragraph that reference/nomination.md requires.
    • score-golden.sh finds cases by directory, so c57 needs no registration step.
  • docs-hygiene audit-derivability. SKILL.md and the rubric now say a pointer is its own drift control and needs no stamp. The cache rule (a cache needs a regeneration path or a recheck trigger) is unchanged.

Notes

  • Settled and prior threads: the one earlier finding is on plugins/playbooks/skills/skill-authoring/reference/skill-criteria.md, which is not in this chunk. The owner marked it settled: the tooling PR (fix: let tooling accept pointer records without as-of stamps #15452) was folded in at e1e9d9f3. I am not raising it again.
  • Closing issue: none. The PR cites an owner decision (Q11) that has no tracking issue, so there were no acceptance criteria to check.
  • Trusted paths: none of the 40 files in this chunk matches a trusted-path glob.
  • Plugin manifests: none changed in this chunk, so there are no manifest lines.
  • Embedded instructions: none found in the PR context or the settled-thread text.
  • Spend: none.
  • I ran no tests; the PR's Verification section is the author's claim and I did not confirm it.

Chunk 2 of 3 (40 files)

Code review: PR #15449, chunk 2 of 3 (incremental since 2ca121c9)

Blocking only: this lane already reviewed an earlier head, so this review reports only blocking findings. I found none.

I read every hunk of all 40 files in this chunk.

Tooling: check 29 (check-skill.sh) and I40 (instruction-scan.sh)

This PR now carries the tooling half (folded in from #15452). My earlier finding was that the new bare-#N exemption in skill-criteria.md did not match check 29. Its thread is resolved and its lines have changed. The exemption is now implemented at this head, so the playbooks fragment's claim that the rule matches check 29 holds.

What I checked in the logic:

  • Which number gets tested. In both scripts, own_ref keeps only the digits of each bare-#N match. Neither boundary class can match a digit, so no stray digits get in. It then looks for owner/repo#N or /(issues|pull)/N in the block (the run of non-blank lines).
  • Where the citation is searched. Check 29 searches the raw lowercased block, before URLs are stripped, so a citation by issue URL is still found. I40 adds each line to blk before stripping code spans, and stores the stripped line in hl[nb].
  • Fixture line numbers. The new lines in the I40 test fixture are lines 26, 28 and 30 of the file the heredoc writes. That matches the new assertions. The expected candidates are now lines 6, 8, 20 and 30, so "exactly four" is correct.
  • New check 29 cases. hist-pointer-unstamped, hist-pointer-url and hist-pointer-own each test one branch of the new code: cited as owner/repo#N, cited by issue URL, and not cited upstream.

remove-shims.sh

Once the Pointer bullet starts, the awk program stops at a blank line or any unindented line.

  • In the real reference/sources.md, the indented continuation lines still print, and the next line, - **As of**, ends the price. The existing exact-match test should still pass.
  • In the new unstamped test, the price ends at the blank line.

drift-audit.js

The strings the new test looks for come out as written once the concatenated pieces in checkPrompt and POINTER_RULE are joined. The find: stage prompt includes POINTER_RULE, so the test checks the prompt that stage sends.

README regeneration

Each plugin README's options block loses the same two lines, the "As of … Recheck trigger:" stamp, which matches the generator change in chunk 3. In session-flow, "substrate" became "process" in two places; both are wording only.

Notes

  • No plugin manifest changed in this chunk, so there are no manifest lines.
  • No file in this chunk is on a trusted path.
  • No embedded instructions in the PR context or the prior-findings file.
  • No spend impact.
  • I ran nothing. The test counts in the PR description are author-claimed and unverified.

Chunk 3 of 3 (6 files)

Code review: PR #15449, chunk 3 of 3 (incremental since 2ca121c9)

I read every hunk of the 6 files in this chunk. This lane already reviewed an earlier head, so this pass reports blocking findings only. It found none.

What changed in this chunk

  • scripts/sync-plugin-options-docs.py drops the POINTERS_AS_OF constant and the "As of … Recheck trigger …" lines from the generated "plugin options" README block. The block now ends with the upstream pointer list, a blank line and the END GENERATED marker.
  • The four READMEs here (user-interface, verification, visualization, work-items) lose those same two lines plus the blank line after them. That leaves exactly what the generator now emits, so the sync check should see no drift.
    • A search of the repository at this head finds no README that still carries the old recheck sentence. The other chunks' READMEs were regenerated too.
  • scripts/check-data-root.test.sh changes in two ways:
    • The old assertion (block carries an as-of date and recheck trigger) is now the reverse: the block must contain ### Upstream documentation and no As of or Recheck trigger. That heading is still emitted at sync-plugin-options-docs.py:157, so the new assertion matches what the generator outputs.
    • The check-stamps.sh --trigger-less pass over the generator's inputs and outputs is removed. With no stamp left in the block, that check had nothing to look at.
  • Prose-only edits in verification/README.md (intro sentence) and work-items/README.md (a reworded sentence). Neither changes what the text claims.

Notes

  • The prior inline finding (the check 29 #N exemption in skill-criteria.md) belongs to another chunk's files and is not in this chunk's scope.
  • No file in this chunk matches a trusted-path glob. No plugin manifest changed, so there are no manifest lines.
  • The PR context holds no embedded instructions to this lane.
  • No spend impact.
  • I ran no tests; I have no shell. The statements above come from reading the diff and the files at head.

@kyle-sexton kyle-sexton added the do-not-merge Hard merge gate: do not merge while applied. label Nov 11, 2026
kyle-sexton and others added 2 commits November 11, 2026 17:59
The pointer-record sentence in copy carve-out 2, and the matching line in
"A conforming record's parts", could read as making a passage conforming
with a link alone, so a paraphrase beside a link would skip the criteria.
Both now say a link is never a carve-out: a pointer record needs no stamp
only because it restates nothing from its source, and text that matches
or paraphrases the source is judged whether or not a link sits beside it.
The carve-out's scope is unchanged, so copy rubric version 5 stands.

Golden case c57 is c05's paraphrase plus an unstamped pointer bullet,
expected as a paraphrase finding (fingerprint containment 0, as c05).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm
…ps-tooling' into docs/pointers-without-stamps-policy
@kyle-sexton kyle-sexton removed the do-not-merge Hard merge gate: do not merge while applied. label Nov 11, 2026
@kyle-sexton
kyle-sexton added this pull request to the merge queue Nov 11, 2026
Merged via the queue into main with commit 369976e Nov 11, 2026
102 of 103 checks passed
@kyle-sexton
kyle-sexton deleted the docs/pointers-without-stamps-policy branch November 11, 2026 23:15
@github-actions github-actions Bot added the merge-path: owner-agent Post-merge accounting record (README.md, Merge paths) label Nov 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Post-merge mutation testing

Killed 5, survived 2, timeout 0, no coverage 0, invalid 0, not run 0.
Covered-code score 71%; mutation score 71%.

File Killed Survived Timeout No coverage Invalid Not run
plugins/harness-config/skills/audit-instructions/scripts/instruction-scan.sh 2 0 0 0 0 0
plugins/instruction-placement/skills/migrate/scripts/remove-shims.sh 2 0 0 0 0 0
plugins/multi-agent/workflows/drift-audit.js 0 1 0 0 0 0
plugins/skill-quality/scripts/check-skill.sh 1 1 0 0 0 0

Surviving mutants

Location Operator Disposition Cause
plugins/skill-quality/scripts/check-skill.sh:2547 other productive input-gap
plugins/multi-agent/workflows/drift-audit.js:279 SBR productive no-assertion

The run's summary has the full report.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-path: owner-agent Post-merge accounting record (README.md, Merge paths)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant