Skip to content

docs: drop stamps from pointer records (batch 6) - #15475

Closed
kyle-sexton wants to merge 6 commits into
mainfrom
docs/drop-pointer-stamps-batch6
Closed

kyle-sexton wants to merge 6 commits into
mainfrom
docs/drop-pointer-stamps-batch6

Conversation

@kyle-sexton

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

Copy link
Copy Markdown
Member

No related issue: batch 6 of the Q11 pointer-stamp sweep that follows #15449; it has no tracking issue.

Summary

Pointer records in ten plugins no longer carry an as-of date or recheck trigger, per
docs/contracts/upstream-drift/README.md 5.0.0 "Required parts" and
.claude/rules/skill-bodies-state-current-rules.md. Stored values keep their stamps. Recorded
decisions keep their named trigger and lose only the date.

Fix

As-of date stamps (as of YYYY-MM-DD in every form), counted with a script over tracked files,
CHANGELOG.md excluded. The "after" count includes shared copies and eval fixtures this batch does
not touch, plus stored values kept on purpose.

Plugin Before After
testing 87 24
discovery 74 15
knowledge 66 11
review 89 38
work-items 87 19
architecture 55 9
code-tidying 57 8
disk-hygiene 78 26
docs-hygiene 54 11
machine-health 54 18
Total 701 179

Kept as stored values (stamp unchanged): probe observations (discovery/agents/explorer.md, the
parent-contract.md effort, dispatch, #6067 and wildcard probes; work-items #6929 records, the work-loop background-launch probe, and the
morning-brief first:100 and job-name probes; knowledge #1699, #3090 and #5767 records;
disk-hygiene safety-model Get-DiskImage, CreateFileW and PreToolUse probes, the PR #1014 and #9853
records; machine-health Defender event ids, AMRunningMode values, platform path, CPU and disk
bands, plugin-cache observation and the -inline naming), measured figures
(code-tidying audit-dead-code and remove-comments tooling, docs-hygiene plugin-contract listing
budget), version gates and pins (testing/skills/audit Playwright and pytest-rerunfailures floors,
testing/skills/setup analyzer rule ids, discovery/skills/setup nesting versions,
docs-hygiene/skills/setup markdownlint-cli2 floor, knowledge faster-whisper pin, review
ci-workflows v0.65.8 schema pins, code-tidying Fowler move names), and code comments next to
constants (testing hook and scan scripts, discovery/tests/count-rereads.py, disk-hygiene
guard_decision_log.py, killswitch_config.py, destructive_guard.py, machine-health
Defender scripts).

Untouched by rule: CHANGELOG.md, shared copies (lib/prerequisites.*, lib/state-key.sh,
lib/view-runtime.js, lib/publish-gate.mjs, view-bridge/session_bridge.py,
reference/plugin-reconfiguration.md, reference/standards-contract.md, scripts/fetch-docs.sh,
discovery/lib/docs-fetcher-gate.mjs, testing/hooks/hook-utils.sh), YAML stores
(review/skills/council), and eval data (no grader depends on a removed stamp).

Restated behavior to cut

  • plugins/testing/skills/audit/SKILL.md:257: restates the tsd and Vitest type-test file patterns.
  • plugins/testing/skills/audit/SKILL.md:321: quotes the Playwright test-retries page.
  • plugins/testing/skills/audit/SKILL.md:329: restates the forbidOnly scaffold idiom.
  • plugins/testing/skills/audit/SKILL.md:359: restates that Vitest and Jest have no flaky guard.
  • plugins/testing/skills/run-e2e/context/e2e.md:149: parenthetical summaries of each linked page.
  • plugins/discovery/hooks/webfetch-truncation.mjs:23: quotes the hooks page ("depends on the tool").
  • plugins/review/README.md:51: quotes three sub-agents page statements.
  • plugins/work-items/reference/item-content-trust.md, reference/work-class-labels.md,
    tools/work-item-tracker/CONTRACT.md (role mapping): restate how GitHub maps triage to read.
  • plugins/work-items/skills/measure-delivery/SKILL.md:28: the metric table names DORA's five metrics.
  • plugins/architecture/skills/map-deployment/SKILL.md:360-480: Claim/Basis records restating
    CloudFormation, Pulumi, HCL JSON and ECS forms.
  • plugins/disk-hygiene/skills/clean/reference/scan-flags.md:145: quotes the Python os.stat_result
    entry (stamp kept: the quote is a stored string read on Python 3.14.7).

Owner rulings applied (coordinator, D26)

  • absorb-upstream: a page-source read date records no figure, so the skill no longer asks for
    an as-of date on a page source (SKILL.md intro, steps and report; templates/record.md page
    block). The license record holds a copied string (license text or id) and keeps its stamp.

  • parent-contract shared trigger: kept as a named trigger on our maxTurns decision, no date;
    the "re-date it" clause went with the date.

  • As-of tables, per row: pointer rows leave the cell empty, value and probe rows keep their date, and the
    intro says so (testing/skills/run-e2e/context/bundled-run.md,
    discovery/skills/explore/reference/native-explore.md,
    discovery/skills/research/reference/native-deep-research.md). Every row lost it, so the column
    is gone, in discovery/skills/read-docs/reference/bundled-claude-code-docs.md and both
    code-tidying bundled-simplify.md files. Unchanged, all value rows:
    testing/skills/check-visual-parity/SKILL.md (pixelmatch default, contract version) and
    discovery/skills/research/context/artifact-shape.md (upstream date-field names).

  • report SKILL.md trio: stamps dropped in plugins/discovery/skills/report/SKILL.md and copied
    byte-identical to plugins/implementation/skills/report/SKILL.md and
    plugins/plugin-quality/skills/report/SKILL.md, with patch fragments for both plugins.

  • Probe records that store a result keep their stamp (Codex thread on map-components): the
    LikeC4 likec4@1.59.4 validate records in architecture map-components, map-containers,
    map-context and map-deployment; the disk-hygiene: model-invocable read-only audit skill for orchestrators and subagents #5516 and feat(disk-hygiene): add model-invocable read-only audit skill #5590 probes (2.1.285) in
    disk-hygiene/skills/audit/SKILL.md; the docs(disk-hygiene): state belt lifetime and subagent reach from a 2.1.285 probe #5565 subagent-belt probe (2.1.285) in
    disk-hygiene/skills/clean/SKILL.md; the Python 3.14.7 st_ctime quote in
    disk-hygiene/skills/clean/reference/scan-flags.md; the pinned Chromium and Firefox SHAs in the
    machine-health browser-extensions record; and the gh 2.103.3 observations in
    work-items/skills/setup/reference/check.md and tools/work-item-tracker/CONTRACT.md. Removals
    stay on probe records that only describe behavior.

Kept, unsure

None.

Instruction alignment

  • plugins/docs-hygiene/skills/write-for-humans/SKILL.md, reference/sources.md,
    reference/sentence-rules.md: the record shape they describe is now decision plus pointer.
  • plugins/knowledge/skills/docpage-digest/context/anthropic-docs-profile.md: a hedge pointer no
    longer asks for an as-of date and trigger.

Verification

  • markdownlint-cli2 on the 181 changed markdown files: 0 issues.
  • lychee --offline on the changed markdown: 0 errors.
  • scripts/check-changelog-fragments.sh --check: all fragments valid.
  • scripts/sync-shared-copies.sh --check: all 802 copies match.
  • Tests that read changed text: 16 bash suites pass (discovery contract, tool-honesty and dispatch
    artifact; code-tidying and docs-hygiene detectors; docs-hygiene articles and setup; disk-hygiene
    hook launcher and hygiene; knowledge menu view; review change-set, explain-change, prior-findings,
    standards-binding; work-items morning-brief and floor-class); node suites 340 of 341 pass, the one
    failure is relayout-slice.test.js importing vitest under node --test (runner mismatch, not
    this change); test_hygiene.py 777 passed.
  • check-skill.sh over the ten skills roots: 77 passed, 0 failed, 221 warnings before and after.
    Removing a stamp in work-items/skills/work-loop/SKILL.md un-exempted a bare #4598 in the same
    block; it now names the issue through the pointer below it.
  • validate-plugins.sh (the ten plugins plus implementation and plugin-quality): passes; the
    report SKILL.md trio is byte-identical.

Related

🤖 Generated with Claude Code

https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm

Remove the as-of date and recheck trigger from pointer records in the
testing, discovery, knowledge, review, work-items, architecture,
code-tidying, disk-hygiene, docs-hygiene and machine-health plugins, per
the upstream-drift contract 5.0.0 "Required parts". Stored values (probe
observations, measured figures, version gates, pinned SHAs and versions,
copied strings) keep their stamps. Recorded decisions keep their named
trigger and lose only the date. Text that described the old stamped
record shape in docs-hygiene write-for-humans and the knowledge
anthropic-docs-profile hedge rule now matches the contract.

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 12, 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-12T00:12:26.087898Z c6e90fe 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 kyle-sexton added the do-not-merge Hard merge gate: do not merge while applied. label Nov 12, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c6e90fe17e

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Apply the coordinator's D26 rulings: absorb-upstream no longer asks for a
page-source as-of date (the license record keeps its stamp); the
parent-contract shared trigger stays as a named trigger without the
re-date clause; As-of tables are decided per row (pointer rows show a
dash, value rows keep the date, and the column goes where every row lost
it); and the report skill's stamps are dropped in the discovery
canonical and copied byte-identical to implementation and plugin-quality.

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 12, 2026 •

Copy link
Copy Markdown
Contributor

claude-security-review partial review of cf8c4cada2529535d488b8a70b45ceb509d773d7: read 205 of 205 changed file(s); the diff is 566603 bytes, over one review's read budget; one review faced 192 files that are not copies, more than it reads whole. 0 finding(s) in what was read, 0 as inline comments. This head is not reviewed.

Security review: PR #15475 (docs: drop stamps from pointer records, batch 6)

No security issues found.

critical-findings: 0

Scope

I read every hunk of the full diff (205 files). Per identical.txt, the 12 .changes/*/docs-drop-pointer-stamps-batch6-*.md fragments and the 3 skills/report/SKILL.md copies (discovery, implementation, plugin-quality) count once each. That makes 192 files toward files_read. Each copy sits at a normal changelog-fragment or skill-body path, so none of those paths changes what the content does.

What the change does

Across ten plugins (plus the two report-skill copies), it removes As of: <date> stamps and many Recheck trigger: clauses from pointer records. It also rewords "dated record" to "record" and drops the "As of" column from a few records tables, or leaves its cell empty.

Lenses applied

  • Trusted paths: two changed files match a trusted glob: plugins/review/skills/security-review/SKILL.md and plugins/review/skills/security-review/reference/bundled-security-review.md. I read both whole changes. They remove only date stamps and recheck-trigger clauses next to pointer links. No criterion, severity rule, trust-control bullet, hold class or reporting rule is added, removed or changed. Nothing these files gate is widened.

  • Code files: seven files carry code: discovery/hooks/webfetch-truncation.mjs, code-tidying/.../change-shape.sh, knowledge/vendor/node-launcher/setup-deps.mjs, machine-health/.../Get-InstalledApp.ps1, testing/hooks/judge-lib.sh, testing/hooks/test-weaken.sh and testing/workflows/fix-until-green.js. In all seven the hunks touch only comments. Some agent frontmatter maxTurns/model lines and one YAML hook comment in disk-hygiene/skills/clean/SKILL.md change only their trailing # comment; the values are unchanged.

  • Instruction-surface deletions: every deleted line is an as-of date, a recheck trigger, or a wording change from "dated record" to "record". No removed text forbade, gated, confirmed or limited an action. The trust and safety rules next to these pointers all keep their operative text, including:

    • disk-hygiene kill switch, fail-closed rules and onFailure: block;
    • work-items label-provenance admission (write/maintain/admin only) and collaborator-permission checks;
    • the discovery credentials-unread rule and the curl single-quote/--globoff rule;
    • the never-self-widen-permissions rules.

    I judged each deletion by what breaks if it is gone (recognition by consequence) and found nothing that reaches a protected class. I did not open the instruction exception register, because no deleted line is a rule.

  • Plugin manifests: no plugin.json or marketplace.json is changed.

  • Trust controls / Actions: no workflow, action, token request, trusted-actor list, kill switch or merge-hold file is changed.

  • Embedded text: the PR context, settled threads and prior findings contain no instruction aimed at this lane.

Spend

None. Nothing changes lane runs, models, turn limits, schedules or billing.

The settled threads cover prose breakage that earlier rounds fixed; that is not security, and nothing here re-raises it.

Restore the as-of date on probe records whose text records a version or
pinned SHA they were measured on: the LikeC4 likec4@1.59.4 validate
records in four architecture map skills, the disk-hygiene permission-mode
and subagent-belt probes (Claude Code 2.1.285), the Python 3.14.7
st_ctime quote, the pinned Chromium and Firefox SHAs in the
machine-health browser-extensions record, and the gh 2.103.3 observations
in work-items. Probe records that only describe behavior stay unstamped.

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 12, 2026 •

Copy link
Copy Markdown
Contributor

claude-review partial review of cf8c4cada2529535d488b8a70b45ceb509d773d7: read 205 of 205 changed file(s); the diff is 566603 bytes, over one review's read budget; one review faced 192 files that are not copies, more than it reads whole. 1 finding(s) in what was read, 1 as inline comments. This head is not reviewed.

claude-review (blocking only: this lane already reviewed an earlier head, so advisory findings are left out)

I read every hunk of all 205 listed files in .claude-lane/pr.diff. Almost all of the change is in Markdown and comments: it removes As of / Recheck trigger stamps from pointer records, rewrites "dated record" as "record", drops the As of column from the tables where every row lost its date, and adds 12 changelog fragments (bump: patch). The few code files (webfetch-truncation.mjs, change-shape.sh, judge-lib.sh, test-weaken.sh, fix-until-green.js, setup-deps.mjs, Get-InstalledApp.ps1) change only comments. I ran no tests or linters; the PR's Verification section is the author's claim and I have not checked it.

One blocking finding: one stamp removal in disk-hygiene safety-model.md left a sentence fragment behind (inline comment).

Prior findings. All 8 inline findings from the earlier head are resolved: each was answered with an owner fix, and none of the fixed lines changed again. On this head I checked the sites those findings named:

None of them is re-raised.

Trusted paths. plugins/review/skills/security-review/SKILL.md and reference/bundled-security-review.md only lose stamps. No criterion, gate, severity rule or posting rule changes.

Other checks.

  • No .claude-plugin/plugin.json or marketplace.json changed, so there are no manifest lines.
  • No closing issue: the PR body says "No related issue", so there are no acceptance criteria to check.
  • The report SKILL.md trio is byte-identical, as identical.txt says.
  • No prepaid or billed spend.
  • No embedded instructions found in the PR context, settled-threads or prior-findings files.

@kyle-sexton kyle-sexton removed the do-not-merge Hard merge gate: do not merge while applied. label Nov 12, 2026

@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: 8 inline finding(s) on c7d549570d1d25c48928584cee8649844c70ab57; the summary is in this lane's pull request comment.

claude-lane: claude-review

kyle-sexton and others added 3 commits November 11, 2026 19:43
Pointer rows in the three per-row As-of tables now leave the cell empty
instead of holding an em dash, which the purged-em-dashes check rejects;
the table intros say a pointer row's date is left empty.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm
Close the pointer parentheticals whose closing paren sat in a removed
stamp (parent-contract, companion-primary-sources, anthropic-docs-profile,
audit-dead-code), restore the Agent Skills best practices Sources bullet
in audit-progressive-disclosure, keep the #5590 probe's date in the
disk-hygiene audit skill, and drop wording that pointed at removed dates
("as of the date", "dated record").

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm
Lane-Activity: pr-unblock/resolve-conflicts

@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 cf8c4cada2529535d488b8a70b45ceb509d773d7; the summary is in this lane's pull request comment.

claude-lane: claude-review

live. **As of:** 2026-11-10. **Recheck trigger:** the `pluginConfigs` scope changes, that section
stops ignoring project and local entries, or the settings guide stops letting `--settings` set
live.
user-scope keys. The **user** file is located

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.

Blocking: removing the stamp left a sentence fragment. The removed lines were live. **As of:** 2026-11-10. **Recheck trigger:** the pluginConfigsscope changes, that section stops ignoring project and local entries, or the settings guide stops letting--settings set + user-scope keys. The **user** file is located. The hunk dropped the first line but kept the trigger's last words on the next one. The paragraph now reads:

...Change a setting for one session live.
user-scope keys. The user file is located from ${CLAUDE_PLUGIN_ROOT}...

This is the kill-switch scoping paragraph of the clean skill's safety model, which the agent reads. It now has a stray sentence that starts in lowercase and says nothing.

Suggested change
user-scope keys. The **user** file is located
The **user** file is located

claude-lane: claude-review

@kyle-sexton

Copy link
Copy Markdown
Member Author

Superseded by #15501, #15502 and #15503: this diff (566 KB) was over the review lanes' 300,000-byte budget. The splits carry the same edits on current main plus the fix for the open safety-model.md thread.

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

Labels

do-not-merge Hard merge gate: do not merge while applied.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant