Skip to content

docs: drop stamps from pointer records (batch 7) - #15476

Closed
kyle-sexton wants to merge 4 commits into
mainfrom
docs/drop-pointer-stamps-batch7
Closed

kyle-sexton wants to merge 4 commits into
mainfrom
docs/drop-pointer-stamps-batch7

Conversation

@kyle-sexton

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

Copy link
Copy Markdown
Member

No related issue: batch 7 of the Q11 sweep that applies the pointer-without-stamps policy from #15449; it has no tracking issue.

Summary

This PR applies upstream-drift contract 5.0.0 ("Required parts") to the 71 plugins no other batch owns, plus the canonical files in root lib/ and scripts/. The shared copies were re-synced from those canonicals, so copies inside other batches' plugins change too, and every touched plugin gets one patch fragment. CHANGELOG.md, evals/ data, vendor/, YAML/JSON stores and generated files were not touched.

  • Pointer records: the as-of date and recheck trigger are removed. The decision and the anchored link stay.
  • Stored values: they keep their stamps. This covers defaults, limits, version gates, error and placeholder strings (for example [shell command execution disabled by policy] in the setup skills), measured figures, hashes, pinned SHAs and code comments beside constants.
  • Recorded decisions with a named trigger: the date is removed and the trigger stays.

Fix

Counts are stamp lines (**As of**, As of:, Recheck trigger, recheck when, inline as of YYYY-MM-DD). They were counted with a script that skips shared-copy files, CHANGELOG.md, evals/, vendor/ and .changes/. Base is 0545c99c1e4.

Scope Before After
actionlint 9 3
adhd 6 0
ai-briefing 8 5
ai-slop 17 10
animation 7 5
app-control 18 0
attribution 45 44
autonomy 84 27
bash-format 10 3
biome-format 8 4
bugs 21 2
code-metrics 34 26
codebase-health 5 0
computer-use 34 5
context-budget 73 33
context-guard 94 34
context7 25 3
core 1 1
corrections 7 3
coupling 2 2
debugging 18 4
desktop-notification 19 2
developer-experience 40 2
discipline 44 1
docs-naming 2 0
domain-driven-design 3 0
dometrain 28 0
education 10 0
eol-normalizer 6 2
event-storming 17 0
explainer-video 8 1
firecrawl 14 5
fleet 37 6
gaming 12 11
github 9 2
go-format 7 2
guardrails 54 22
implementation 65 4
improvement 14 2
instruction-placement 124 57
kindle-dedrm 8 6
lib 42 24
markdown-format 12 3
mcp-tools 44 12
miro 22 0
multi-agent 55 19
mutation-testing 18 7
naming 5 3
overengineering 13 1
pixel-art 17 13
playgrounds 9 2
playwright 33 21
plugin-quality 50 8
powershell-format 5 0
prototype 14 7
rate-limit-guard 50 16
repo-fleet-hygiene 21 14
repo-hygiene 41 10
retro-audio 4 4
ruff-format 8 2
scripts 20 18
skill-quality 73 29
songwriting 40 33
speech 18 3
sql-server 3 0
tdd 4 2
toolchain 19 7
typos-format 9 3
user-experience 38 3
verification 12 6
visualization 47 12
wizard 4 2
writing 41 23
x 6 2
Total 1844 648

The lines that remain are stored values, dateless named triggers, prose that only mentions the phrase "recheck trigger", and the kept-unsure items below.

Other edits:

  • Line citations were updated in four eval prompt descriptions whose cited files got shorter: discipline/evals/swa-fork-off-degrades, developer-experience/evals/review-app-start-handles, multi-agent/evals/as-disabled-switch-downgrade and multi-agent/evals/su-apply-guard-off-confirms.
  • A few sentences that described a record as dated were reworded, in autonomy routines.md, guardrail-slice.md, instruction-placement sources.md, remove-shims.sh, writing sources.md and developer-experience cli-contract.md.

Restated behavior to cut (79)

  • plugins/actionlint/skills/setup/SKILL.md:179: says an undeclared userConfig key silently cannot be set natively
  • plugins/ai-briefing/skills/generate/SKILL.md:115: says the Bash tool env lacks the plugin's CLAUDE_PLUGIN_DATA and another plugin's hook can export one
  • plugins/app-control/skills/drive/reference/pid-binding.md:19: paraphrases proc(5) on who may write comm and the cmdline NUL layout
  • plugins/autonomy/reference/routines.md:350: says repository settings load no plugins into a cloud session
  • plugins/autonomy/reference/routines.md:477: record paraphrasing the skills page on cloud-session skill and plugin loading
  • plugins/autonomy/skills/setup/SKILL.md:200: says a watched repo's settings cannot supply plugin options
  • plugins/autonomy/skills/setup/templates/trigger-adapters.md:128: restates which repository role may apply labels
  • plugins/context-budget/README.md:128: restates that settings hooks run after the mod chain and a mod can skip or override them
  • plugins/context-budget/README.md:143: restates that ConfigChange fires after any write and cannot ask
  • plugins/context-budget/skills/audit/SKILL.md:377: restates that auto mode's classifier, not a person, decides protected-path writes
  • plugins/context-budget/skills/setup/SKILL.md:62: restates that a hook that cannot start is a non-blocking error
  • plugins/context-budget/skills/setup/SKILL.md:87: restates that a changed option shows only in a fresh session
  • plugins/context-guard/README.md:403: restates that Claude Code reloads a mod when its options change
  • plugins/context-guard/skills/setup/SKILL.md:48: restates that installing Claude Code puts no node on PATH and how a hook that cannot start is treated
  • plugins/context-guard/skills/setup/SKILL.md:238: restates what an uninstall removes
  • plugins/context-guard/reference/cloud-headless-capture.md:12: restates what $.session.usage() reports and where mods run
  • plugins/context-guard/reference/cloud-headless-capture.md:25: restates that plugins are unavailable in Desktop WSL sessions
  • plugins/context-guard/reference/reader-contract.md:206: restates that used_percentage counts the input side only
  • plugins/context-guard/reference/reader-contract.md:447: restates when the statusline percentage is computed and what turning auto-compact off does
  • plugins/instruction-placement/README.md:174: restates that Claude loads the whole ancestor chain
  • plugins/instruction-placement/skills/check/SKILL.md:33: restates that bad globs and over-budget patterns fail silently
  • plugins/instruction-placement/skills/check/SKILL.md:192: restates that a symlinked rule may point outside the repository
  • plugins/instruction-placement/skills/migrate/SKILL.md:457: restates that the Bash tool env has no CLAUDE_PLUGIN_ROOT
  • plugins/instruction-placement/skills/realign/SKILL.md:228: same restatement as migrate SKILL.md:457
  • plugins/rate-limit-guard/README.md:~302: "Claude Code reloads a module when its options change" paraphrases the Register doc comment in index.d.ts.
  • plugins/plugin-quality/skills/audit/reference/component-types/config.md:46: "Every stdout line from command reaches Claude as a notification" restates the monitors section.
  • plugins/plugin-quality/skills/audit/reference/evidence-packet.md:30: restates how the upstream data-dir id is formed.
  • plugins/plugin-quality/skills/audit/reference/evidence-packet.md:155-157: restates the sub-agents "Available tools" section.
  • plugins/skill-quality/scripts/check-skill.sh:981: restates the frontmatter-reference behavior for unparsable frontmatter (the error string at :997 repeats it).
  • plugins/skill-quality/scripts/check-skill.sh:927: restates the picker alias behavior.
  • plugins/skill-quality/skills/setup/SKILL.md:66: "a same-session rerun still resolves the OLD root" restates "Reference a saved value".
  • plugins/skill-quality/README.md:67: "under 500 lines" restates the upstream number (the stored copy is check-skill.sh LINE_HARD_CAP).
  • plugins/multi-agent/reference/config.md:60-66: paraphrases the sub-agents "choose a model" section (aliases and resolution order). Line numbers are from before the edits.
  • plugins/multi-agent/reference/config.md:99-107: "Where effort applies" paraphrases the upstream effort precedence and inheritance rules.
  • plugins/multi-agent/reference/config.md:118-123: "Hard cap" paraphrases how maxEffortLevel behaves.
  • plugins/mcp-tools/skills/audit/reference/checklist.md:40: "Source conflict" bullet restates what the mcp/env-vars pages and changelog 2.1.295/2.1.296 say about length limits.
  • plugins/mcp-tools/skills/audit-posture/reference/checklist.md:215: "Source conflict" bullet restates the mcp page against changelog 2.1.274 on sdk-entry skips.
  • plugins/code-metrics/skills/principles/reference/measures.md:168: shellmetrics values depend on the parser shell (repeats the README).
  • plugins/visualization/skills/visualize/context/decision-matrix.md:303: public-sharing failures for mermaid, SVG data: and AVIF pages (repeats claude-code#79824 and #81410).
  • plugins/visualization/skills/visualize/context/decision-matrix.md:270: terminal Markdown rendering (repeats the interactive-mode page).
  • plugins/visualization/skills/visualize/context/decision-matrix.md:281: "no public docs section covers them" note.
  • plugins/discipline/skills/sweep-all/reference/batched-pass.md:61-66: what CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY caps, and the subagent limit.
  • plugins/discipline/skills/use-your-skills/SKILL.md:27-28: a manual-only skill never reaches the listing.
  • plugins/discipline/skills/use-your-skills/SKILL.md:87-88: descriptions are dropped on overflow.
  • plugins/repo-hygiene/skills/clean/reference/invocation-forms.md:13-14: ${CLAUDE_SKILL_DIR} substitution.
  • plugins/repo-hygiene/skills/setup/SKILL.md:99-100: which scopes plugin option values are read from (it had no stamp).
  • plugins/writing/skills/be-concise/reference/sources.md:76: Inverted Pyramid (repeats the NN/g article).
  • plugins/writing/skills/be-concise/reference/sources.md:84: F-shaped pattern (repeats the NN/g article).
  • plugins/writing/skills/be-concise/reference/sources.md:122: licensing (repeats the NN/g terms page).
  • plugins/writing/skills/be-concise/reference/sources.md:175: lists the Google style guide's rules.
  • plugins/writing/skills/be-concise/reference/sources.md:221: paraphrases ACUS 2017-3.
  • plugins/writing/skills/be-concise/reference/sources.md:230: paraphrases DOE-STD-1029.
  • plugins/writing/skills/be-concise/reference/sources.md:242: paraphrases the kernel's "Describe your changes".
  • plugins/writing/skills/be-concise/reference/doctrine.md:181: the Concise output style's content floor (repeats the output-styles page).
  • plugins/developer-experience/skills/build-cli/SKILL.md:44: glosses of the sysexits(3) codes.
  • plugins/developer-experience/skills/audit-tools/SKILL.md:42: the legacy .claude/commands status.
  • plugins/fleet/skills/reach/SKILL.md:84-87: paraphrases the Login-expired entry.
  • plugins/fleet/skills/reach/SKILL.md:131-133: paraphrases the workspace-not-trusted error.
  • plugins/fleet/skills/reach/SKILL.md:229-232: -p reads stdin as the prompt.
  • plugins/fleet/skills/reach/reference/relay.md:88-90: paraphrases Control inbound messages.
  • plugins/fleet/skills/reach/reference/relay.md:157-158: restates the workspace-not-trusted error.
  • plugins/fleet/skills/reach/reference/relay.md:166-167: low confidence; this may be a pointer only.
  • plugins/computer-use/skills/diagnose/reference/failure-diagnostics.md:49: paraphrases the Cowork support article (machine must be awake)
  • plugins/context7/skills/lookup/context/mcp.md:31: paraphrases MCP unset-variable behavior
  • plugins/dometrain/skills/grounding/SKILL.md:55: describes the server's result shape
  • plugins/dometrain/skills/update/SKILL.md:70: paraphrases the variable-resolution table
  • plugins/playwright/skills/playwright/SKILL.md:137: same variable-resolution paraphrase
  • plugins/improvement/skills/find/SKILL.md:272: same variable-resolution paraphrase (Read tool bytes, no CLAUDE_PLUGIN_ROOT in Bash)
  • plugins/miro/README.md:14: restates the stderr and debug-log route
  • plugins/mutation-testing/skills/principles/reference/tooling.md:46: restates what inPlace: true writes
  • plugins/repo-fleet-hygiene/skills/audit/reference/official-sources.md:3: the bullets paraphrase each linked page
  • plugins/speech/reference/elevenlabs.md:9: restates the models page on eleven_v4
  • plugins/go-format/README.md:17 and plugins/ruff-format/README.md:18: "neither applies to PostToolBatch" restates the hooks page
  • plugins/improvement/skills/find/context/ci-health.md:40,49,104: restate the /timing retirement, the per-search cap, and that actions_list has no created filter
  • plugins/pixel-art/reference/backends.md:53: restates the Aseprite license shape (EULA replaced GPLv2 in August 2016)
  • plugins/wizard/skills/unattended/SKILL.md:237: restates SecretManagement Get-Secret search and -AsPlainText behavior
  • plugins/wizard/skills/unattended/SKILL.md:252: restates Keychain and pass/gpg-agent prompting
  • plugins/tdd/skills/principles/reference/characterization-testing.md:79: the Sources list summarizes the upstream acceptance workflows (read date removed)
  • plugins/core/README.md:46: restates the dependency behavior on install, disable and prune. The stamp was kept because the record quotes the error string Dependency "<name>" is disabled

Kept, unsure (53)

  • Mixed As-of tables, decided per row (D26): pointer rows now leave the As of and Recheck cells empty, and value rows keep their date. 18 rows changed, in context-budget native-context/native-skill-doctor, context-guard reader-contract (the record bullets under its tunable-surfaces table), bugs native-bug, prototype bundled-design, github native-install-github-app, firecrawl native-web-tools and verification native-verify. These rows stay dated because they mix a probe with a pointer:
    • plugins/context-budget/skills/audit/reference/native-context.md:12 (rests on the probed description)
    • plugins/verification/skills/confirm/reference/native-verify.md:9, :10 (an extraction plus a pointer)
    • plugins/debugging/skills/debug/reference/native-debug.md:9, :11 (a quoted description; gated: false)
    • plugins/repo-fleet-hygiene/skills/audit/SKILL.md:197 (a fleet observation plus a pointer)
  • lib/session-bridge/session_bridge.py:942: pointer list, but the code depends on the flag and policy-key strings it names; kept with README.md:235-257, which records those strings.
  • lib/managed-scope.sh:29, :82: the cache path and drop-in merge key names are strings the code compares against; kept as stored values.
  • lib/docs-fetcher-gate.mjs:116: comment beside the UID constant (Node's Windows chmod behavior); kept under the constant-comment rule.
  • scripts/plugin-validate-report.mjs:18: pointer record, but gatingHooks and hasCatch are upstream field names the script reads.
  • plugins/corrections/skills/codify/SKILL.md:129: decision with an issue trigger (fix(source-control): apply a config change on main to pr-merge's policy read for PRs opened before it #8834); dropping the date makes check-skill.sh flag the #N as a history citation, so the stamp stays until that check accepts a dateless trigger.
  • plugins/actionlint/skills/setup/SKILL.md:190: "no matching upstream issue as of 2026-07-23" is an absence note (rule says drop), but it sits beside a local repro on actionlint 1.7.x and its trigger re-attributes the -shellcheck= decision
  • plugins/ai-slop/skills/audit/reference/catalog.md:1229: model-era record; dated record of measured phrase lists, but its trigger is also the promotion decision's condition (could be drop-date, keep-trigger)
  • plugins/autonomy/reference/routines.md:389: "Reviewed 2026-09-06" survey note; the trigger is about a re-survey, and the date is the note's subject
  • plugins/autonomy/reference/trigger-dispatch.md:28: research gaps "carried open as of 2026-09-06"; trigger fires when "this review date passes six months", so the date is load-bearing
  • plugins/autonomy/reference/runner/escalation.md:262: same shape as trigger-dispatch.md:28
  • plugins/autonomy/reference/runner/escalation.md:254: absence record verified against release v1.44.0 (absence note vs version beside it)
  • plugins/autonomy/reference/telemetry.md:137: GenAI conventions absence record (no release/tag); trigger is our migration decision's condition
  • plugins/autonomy/skills/setup/context/windows-surfaces.md:24,37,51,74,83,123,147,177,199: Claim/Basis records that restate upstream behavior but each carries stored defaults, versions or command strings; kept as stored values, whole file is a conversion candidate
  • plugins/autonomy/README.md:96: provenance paragraph keeps "fetched " notes (not counted by the script) and its undated trigger at :107
  • plugins/context-guard/scripts/cache-line.mjs:14: header comment basis for the field names the script reads; treated as a comment beside constants
  • plugins/context-guard/reference/cloud-headless-capture.md:112: channels table of dated observations holding field names
  • plugins/instruction-placement/context/verified-mechanics.md:58: changelog record naming versions 2.1.288/2.1.290; kept as a version gate
  • plugins/instruction-placement/skills/migrate/reference/sources.md:376: "as of 2026-09-21" names a past revision of another repository file
  • plugins/{bash-format,biome-format,guardrails,rate-limit-guard}/skills/setup/SKILL.md (bash-format:34, biome-format:28, guardrails:32, rate-limit-guard:24): the placeholder pointer record. I kept it as a stored string because the line above it quotes the upstream placeholder [shell command execution disabled by policy] word for word. About 18 setup skills carry the same record, so the batch should decide it the same way everywhere.
  • plugins/attribution/skills/audit/reference/rubric.md:404-423: three records that deliberately restate our own upstream-drift contract and org standard for an offline judge ("Each is pinned so it can be re-derived"). If the stamps come out, the paragraph's own premise no longer holds, and cutting the prose would break the offline design.
  • plugins/attribution/skills/audit/reference/source-fetch.md:37: a record "restated deliberately and carried as a stamped record so the restatement stays honest". Same reasoning as rubric.md:404-423.
  • plugins/bash-format/README.md:42: "checked 2026-10-04 against shfmt v3.14.1" is an observed upstream bug state tied to a version (Associative array key with hyphen breaks in v3.6.0 mvdan/sh#956).
  • plugins/biome-format/skills/setup/SKILL.md:170: the nodeLinker pointer. The text lists the upstream value names (pnp, node-modules, pnpm), so I treated them as stored strings.
  • plugins/guardrails/README.md:~311 and plugins/guardrails/hooks/run-guards.sh:~147: the timed-out-hook pointer, kept as a version gate ("on Claude Code 2.1.295 or later").
  • plugins/guardrails/README.md:~334: restates the mcp__plugin_<plugin>_github__<tool> name form, a string copied from upstream.
  • plugins/guardrails/README.md:~461: restates the path ~/.claude/plugins/data/<id>/, a string copied from upstream.
  • plugins/guardrails/hooks/refuse.sh:25: the trigger also covers the probed CLAUDE_CODE_SESSION_ATTENDED value (2.1.301) and the permissionDecision/ask strings the script writes.
  • plugins/guardrails/hooks/workflow-resilience-check.sh:118: the comment explains the FINDING constant, which names an env var, and holds an open question (feat(guardrails): evaluate CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS in workflow-resilience-check #6756) with its own trigger.
  • plugins/guardrails/hooks/block-root-delete-target.sh:82,279,361,401,1587,3665: notes from reading the source of other tools (find, pwsh, watch, xargs, parallel, env/uutils 0.10.0, shadow sg). They record option sets the guard's model depends on.
  • plugins/plugin-quality/skills/audit/reference/component-types/hook.md:67-71: a Claim/Basis observation "read by loading it in Claude Code 2.1.288". It has a version but no stored number.
  • plugins/skill-quality/reference/invocation-probes.md:114-118: a --disallow-tools help-line observation (2.1.316).
  • plugins/skill-quality/scripts/check-skill.sh:2310-2313: a pointer comment recording the default false for an absent disable-model-invocation, kept as a stored default.
  • plugins/multi-agent/reference/config.md:90: the mechanical model-default record. I kept the full stamp as a model default; it could also be read as a recorded decision with a named trigger.
  • plugins/implementation/skills/report/SKILL.md:89-90,123-124 and plugins/plugin-quality/skills/report/SKILL.md:89-90,123-124: not edited. These must stay byte-identical to the canonical plugins/discovery/skills/report/SKILL.md (scripts/validate-plugin-contracts.mjs:1162-1186; validate-plugin-contracts.test.sh:1219). Remove the stamps from the canonical file and then from every copy together.
  • plugins/visualization/skills/visualize/context/decision-matrix.md:33: the mermaid runtime probe record. Its version is in the linked PR comment, not on this line.
  • plugins/mcp-tools/skills/audit/reference/server-discovery.md:39: the only stamp on the stored SDK spellings.
  • plugins/mcp-tools/skills/audit/reference/server-discovery.md:69: the only stamp on the stored _meta argument and attribute names.
  • plugins/code-metrics/skills/audit-suppressions/SKILL.md:163: the only stamp on the marker catalog's directive strings.
  • plugins/discipline/skills/sweep-all/reference/inheritance-preflight.md:3-10: a file-wide "verified 2026-11-04, Claude Code 2.1.318" record. It covers an error string, and batched-pass.md:30-32 cites it as the file's opening stamp.
  • plugins/repo-hygiene/skills/clean/scripts/destructive-guard.sh:63,75: Claim: as of 2026-09-29 comments about our own code, not about an upstream page.
  • plugins/fleet/skills/reach/SKILL.md:243: the PowerShell-to-wsl.exe quoting probe, which may be a measured string.
  • plugins/user-experience/agents/evaluator.md:6: a frontmatter comment pointer next to the effort: high constant.
  • plugins/core/README.md:60: a mixed record (restated behavior plus one quoted error string), kept as a stored value
  • plugins/improvement/skills/find/context/ci-health.md:79: the Metrics record whose stored content is the API field names (run_attempt, run_started_at, created_at) that the commands read
  • plugins/markdown-format/skills/setup/SKILL.md:89: a probe record of markdownlint-cli2 --help output (banner first, no --version), observed tool behavior
  • plugins/pixel-art/reference/backends.md:59,68: records whose stored content is the Aseprite CLI flag and API names
  • plugins/playwright/skills/demo-video/reference/quality-control.md:45: the record behind the stored reading-time values
  • plugins/playwright/skills/playwright/reference/tracing-and-video.md:89: release-version pointers, read as version gates
  • plugins/debugging/skills/debug/reference/ecosystem-debugging.md:17,22 and plugins/toolchain/skills/check/context/go.md:17: records whose stored content is flag or API names
  • plugins/mutation-testing/skills/audit/context/tool-test-restriction.md:29,49,63: stored-value table and its source record
  • plugins/mutation-testing/skills/principles/reference/metrics.md:10, operators-and-states.md:9, scaling-and-suppression.md:10, tooling.md:12: "Fetched … Recheck" source headers over files of copied formulas and figures
  • plugins/repo-fleet-hygiene/skills/audit/SKILL.md:147: a pointer sentence that holds a measured figure

Kept, no anchor checked (36)

  • plugins/app-control/reference/control-skill.md:174: memray site root and py-spy repo root, no section anchor
  • plugins/app-control/reference/control-skill.md:187: pprof repo root
  • plugins/app-control/reference/control-skill.md:193: perf-record man page (has sections, no anchor)
  • plugins/app-control/reference/control-skill.md:194: heaptrack repo root
  • plugins/autonomy/skills/setup/context/guardrail-slice.md:131: tools-reference table (text states it has no anchor)
  • plugins/autonomy/skills/setup/templates/trigger-adapters.md:136: fine-grained PAT permissions page, "Metadata" section named in prose
  • plugins/autonomy/skills/setup/templates/trigger-adapters.md:141: GitHub App on-behalf-of-a-user page
  • plugins/context-budget/README.md:77: env-vars page for SLASH_COMMAND_TOOL_CHAR_BUDGET (stored-value record, kept stamp)
  • plugins/context-guard/reference/reader-contract.md:586: mods reference page root for what a mod receives
  • plugins/guardrails/hooks/block-credential-read.sh:39: links https://code.claude.com/docs/en/permissions with no anchor. The likely anchor is #what-read-and-edit-rules-cover, which guardrails setup SKILL.md already uses.
  • plugins/implementation/README.md:133-134: the sub-agents and permissions page links have no anchors.
  • plugins/implementation/skills/implement-dispatch/SKILL.md:19: https://git-scm.com/docs/git-worktree.
  • plugins/implementation/skills/implement/context/replace.md:70-74: the Scientist README, Jest snapshot testing and Istio traffic mirroring links.
  • plugins/implementation/skills/implement-dispatch/reference/holdout-tests.md:98-99: the Vitest CLI and Jest CLI pages.
  • plugins/multi-agent/scripts/allowed-tools-pairing.test.sh:7: the permissions page, no anchor.
  • plugins/multi-agent/scripts/allowed-tools-pairing.test.sh:17: the skills page, no anchor.
  • plugins/mcp-tools/skills/audit-posture/reference/checklist.md: the Registry moderation, Docker sandboxes and Sandbox coverage (page intro) pointers.
  • plugins/code-metrics/skills/audit-suppressions/SKILL.md:141-162: several entries in the Upstream syntax list (flake8, mypy, pylint, ShellCheck, Stryker, Semgrep, RuboCop and others).
  • plugins/developer-experience/skills/build-cli/SKILL.md:46: the sysexits(3) man page.
  • plugins/developer-experience/skills/build-cli/reference/cli-contract.md:22: clig.dev "Arguments and flags", cited by name.
  • plugins/developer-experience/skills/build-cli/reference/cli-contract.md:23,26: the code.claude.com best-practices page.
  • plugins/developer-experience/skills/build-cli/reference/cli-contract.md:24,29,61: the writing-tools-for-agents article, cited by section name.
  • plugins/writing/skills/be-concise/reference/sources.md:182,247: the Google style highlights page and the kernel submitting-patches page.
  • plugins/user-experience/reference/ai-features.md:36-39: the Apple HIG Generative AI page and the PAIR guidebook.
  • plugins/user-experience/reference/first-run.md:54-66: the Apple HIG Privacy page, Android "Request runtime permissions" and the Apple HIG Onboarding page.
  • plugins/user-experience/reference/flows-ia.md:105-107: the Next.js project-structure page.
  • plugins/user-experience/reference/flows-ia.md:212-215 and measurement.md:81-83: GOV.UK Service Manual pages.
  • plugins/user-experience/reference/deliverable.md:25-27: the ICC/ESOMAR Code PDF.
  • plugins/user-experience/reference/research-methods.md:111-113: the W3C WAI involving-users page.
  • plugins/github/reference/browser-automation.md:42: https://code.claude.com/docs/en/chrome platform note; the record says it sits above the first heading with no anchor
  • plugins/explainer-video/skills/produce/SKILL.md:121: EBU R 128 and R 128 s2 are PDFs cited by section number with no anchor
  • plugins/explainer-video/skills/produce/SKILL.md:133: the Netflix timed-text article has no section anchor
  • plugins/playwright/skills/demo-video/reference/posting.md:73, quality-control.md:42, playwright/reference/storage-and-auth.md:156, test-generation.md:108: see b7-helper-D-1.md
  • plugins/context7/skills/lookup/context/mcp.md:6: context7.com/docs (stored-value record)
  • plugins/debugging/skills/analyze-profile/reference/formats/chrome-trace.md:10, heapsnapshot.md:7: docs roots
  • plugins/speech/reference/elevenlabs.md:13,24: models and best-practices pages

Restored value stamps

Per D26, a record that holds a version, count, byte size, hash, timing or exit code read from upstream keeps its stamp. The third commit restores 33 stamps (in 23 files) that the sweep had removed: the visualization decision-matrix Mermaid probe counts, plus version-bearing records in autonomy, context-budget, context-guard, explainer-video, firecrawl, fleet, instruction-placement, mcp-tools, playwright, rate-limit-guard, skill-quality and toolchain. The other 61 regex candidates turned out to be behavior-only or noise (IPs, exhibit and arXiv ids, our own constants). These were left removed:

  • plugins/developer-experience/skills/build-cli/reference/cli-contract.md: the Count column is our tally of upstream sources, not an upstream value.
  • plugins/playwright/README.md:96, plugins/guardrails/README.md:1568, plugins/visualization/skills/visualize/SKILL.md:409, decision-matrix.md:212: each record holds a value, but the removed stamp covered a separate pointer sentence.

Withheld

  • skills/report/SKILL.md in implementation and plugin-quality must stay byte-identical to plugins/discovery/skills/report/SKILL.md (scripts/validate-plugin-contracts.mjs). Discovery belongs to another batch, so these copies keep their stamps here.

Verification

  • markdownlint-cli2 on the 276 changed .md files: 0 issues.
  • lychee --offline on the 463 changed files: 0 errors.
  • check-skill.sh on each scope plugin's skills root: 388 WARN before and 381 after. No plugin went up, and none failed.
  • sync-shared-copies.sh --check: all 802 copies match.
  • check-changelog-fragments.sh --check: all 95 fragments are valid. Each of the 92 touched plugins has one patch fragment.
  • No test, grader or script checks for removed wording. instruction-placement remove-shims.test.sh:257, which asserts that the record has no **As of**, still holds.

Related

🤖 Generated with Claude Code

https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm

kyle-sexton and others added 2 commits November 11, 2026 19:06
Apply upstream-drift contract 5.0.0 to the plugins no other batch owns
and the root lib/ and scripts/ canonicals: pointer records lose their
as-of date and recheck trigger, stored values keep theirs, and recorded
decisions keep a dateless named trigger. Shared copies are re-synced,
and every touched plugin gets a patch fragment.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm
Per owner decision D26, pointer rows in Claim/Basis/As of/Recheck tables
show "—" in the As of and Recheck cells; value rows keep their date.

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:15:34.703813Z c131779 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.

@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: c13177969f

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

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

github-actions Bot commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

claude-security-review partial review of 86968c1bc70c82d66b77669309c878a8c0c1353b: read 556 of 556 changed file(s); the diff is 999694 bytes, over one review's read budget; one review faced 319 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 #15476 (docs: drop stamps from pointer records, batch 7)

I found no security issues. This was a full review, not blocking only: this lane has not reviewed an earlier head of this PR.

critical-findings: 0

Coverage. I read every hunk of the 319 distinct changed files in .claude-lane/pr.diff. That is all 556 listed files minus the 237 identical copies in identical.txt, of which I read only the first path. I read the .changes/ fragment and the root lib/ canonicals myself. Four review:lane-verifier hunters each read a contiguous slice of the rest of the diff, covering every line from 1417 to the end. None of the changed files matches a TRUSTED PATHS glob.

What I checked:

  • Code files only change comments. In every .sh, .mjs and .js hunk, each changed line is a # or // comment: the "as of DATE; recheck when ..." clause is removed and the text around it re-wrapped. That covers the shared prerequisites.mjs, state-key.sh, hook-utils.sh, view-runtime.js, fetch-docs.sh, plugin-options.mjs, docs-fetcher-gate.mjs and managed-scope.sh copies. It also covers the guardrails hooks (block-credential-read.sh, block-dangerous-git.sh, abort-boundary.sh, run-guards.sh and the rest), repo-hygiene/.../destructive-guard.sh and clean-batch.sh, skill-quality/scripts/check-skill.sh, multi-agent/hooks/drift-checker-fetch-gate.mjs, and scripts/check-hooks-description.sh and scripts/run-hygiene-gate.sh.

    • No constant, regex, block list, allowlist or compared string changes.
    • In the agent frontmatter of multi-agent/agents/*.md, only the YAML comment after maxTurns changes; the values, tools and model are unchanged.
    • In the repo-hygiene/skills/clean/SKILL.md frontmatter, only # comment lines are removed; the hook's type, command and args are unchanged.
  • Copies at other paths. Every copied change is comment-only, so none of them behaves differently at its own path. That includes the hook-utils.sh copy at plugins/repo-hygiene/skills/clean/scripts/hook-utils.sh.

  • Instruction text: nothing removed or narrowed. The markdown edits remove As-of/Recheck stamps, or empty the As-of and Recheck cells on pointer rows, and reflow the text around them. I checked the guarding rules next to the edits, and they are unchanged apart from stamp removal and re-wrapping:

    • github advise/audit read-only API contract
    • repo-hygiene blocked-command list and confirmation gate
    • miro and playwright token and secret handling
    • fleet reach rule against bypassPermissions and against moving credentials through a prompt
    • toolchain/verification vetted-install allowlist
    • wizard unattended consent rule
    • x/read curl constraints
    • implement-dispatch rule to stop before destructive or outward actions
    • multi-agent frontier_guard off confirmation

    A removed recheck trigger is not a protected-class rule. One example: the Miro board-delete trigger in event-storming/.../miro-integration.md. The decision it pointed at is still recorded in plugins/event-storming/README.md. I read the protected-class list by consequence, because I could not consult docs/contracts/instruction-exception-register/README.md with my tools.

  • Manifests. No plugin.json, marketplace.json or hooks.json changes.

  • Merge holds and trust controls. None are touched.

  • Embedded text. Nothing in the PR context, the settled threads or the diff tries to instruct the review lane.

  • Settled threads. The one settled thread (the decision-matrix.md Mermaid probe stamp) is not a security point. I re-raised nothing.

Per D26, a record holding a version, count, byte size, hash, timing or
exit code read from upstream keeps its as-of date and recheck trigger.
Restore 33 such stamps the sweep removed, including the Mermaid probe
counts in visualization's decision matrix.

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 86968c1bc70c82d66b77669309c878a8c0c1353b: read 556 of 556 changed file(s); the diff is 999694 bytes, over one review's read budget; one review faced 319 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.

Code review: PR #15476, drop stamps from pointer records (batch 7)

Result: no findings. I read the whole diff: all 319 distinct file changes, plus the 237 identical copies listed in identical.txt, which count through their first path (556 files in all). This is the first review of this PR, so the review was not blocking-only.

What changed. Comments and docs only. The PR removes As of / Recheck trigger stamps from pointer records across 92 plugins and the root lib/ canonicals. It empties the As-of and Recheck cells on pointer rows of the mixed native-* verification tables, and adds one bump: patch changelog fragment per touched plugin. No executable line changes.

What I checked:

  • Code files. In every .sh, .mjs and .js hunk, only comment lines change. This covers hook-utils.sh, prerequisites.mjs, docs-fetcher-gate.mjs, the guardrails hooks, check-skill.sh, check-listing-budget.sh, remove-shims.sh, the instruction-placement scripts, allowed-tools-pairing.test.sh, run-hygiene-gate.sh and check-hooks-description.sh. In render-index.sh, the removed lines are comments above the cat <<'PREAMBLE' heredoc, not inside it.
  • Shared copies. Every copy on disk of prerequisites.mjs (77), hook-utils.sh (20), state-key.sh, view-runtime.js, rendered-view.md, fetch-docs.sh, managed-scope.sh, docs-fetcher-gate.mjs, one-way-doors.md and plugin-options.mjs is in the diff with the same hunk. No copy is left out of sync with its canonical. No copy sits at a path where comment-only content would act differently.
  • Text the code parses.
    • remove-shims.sh prints the "What shim removal costs" record and stops at the first blank line after the Pointer bullet. Removing the trailing As-of and Recheck bullets ends the print in the same place.
    • remove-shims.test.sh:257 asserts the output does not contain **As of**, so it still holds.
    • check-skill.sh check 29 exempts bare #N references only in blocks that carry both a date and a recheck line. None of the 25 SKILL.md files with bare #N references is touched by this PR, so dropping stamps raises no new warnings.
  • Eval prompt line citations. I read all four re-pointed citations against the head files, and each one lands on the content it describes:
    • build-cli/SKILL.md lines 91-94 and cli-contract.md line 31 (rule 11)
    • inheritance-preflight.md lines 37-41 and 115-135
    • assess/SKILL.md lines 66-68
    • multi-agent/setup/SKILL.md lines 95-99 and line 59
  • References to dates that are gone.
    • batched-pass.md still cites the stamp that opens inheritance-preflight.md, and that stamp is kept.
    • In evidence-packet.md, the file-wide recheck paragraph is gone, and each date left in the file (lines 170-172 and 222) carries its own trigger.
    • Stored values keep their stamps: the ElevenLabs MODELS limits in elevenlabs.py:61-65, the dated DISABLE_COMPACT row in the context-guard reader contract, and the figure-bearing entries in writing sources.md, which now match its reworded header.
  • Tables. Every edited table row keeps its column count.
  • Fragments. Each plugin with a changed file has exactly one fragment, and patch matches a docs-only change.

Settled thread. I did not re-raise the decision-matrix.md Mermaid-probe stamp: the owner settled it and its lines have not changed since.

Other inputs:

  • Manifests: no plugin.json or marketplace.json changes, so there are no manifest lines.
  • Closing issue: none; the PR body says batch 7 has no tracking issue, so there are no acceptance criteria to check.
  • Path-scoped rules: none applied.
  • Embedded instructions: none in the PR context or the settled-threads file.
  • Trusted paths: no changed file matches a TRUSTED PATHS glob.

Not verified. I had no shell, so I ran no tests or hygiene gates. The PR body's before/after stamp counts were provided by the author; I did not check them.

The em dash in pointer rows of mixed As-of tables fails the
purged-em-dashes check; leave those cells empty and reword the intros.

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

Copy link
Copy Markdown
Member Author

Held: 556 changed files exceed what the review lanes read whole. The fable-5-2 effort session splits it into smaller batch PRs and closes this one as superseded; nothing here merges as-is.

@kyle-sexton

Copy link
Copy Markdown
Member Author

Superseded by #15504, #15505, #15507 and #15508: this diff (1 MB) was over the review lanes' 300,000-byte budget. The splits carry the same edits on current main.

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