From f5ff643e088192f71c231ccbee30f865509c65d7 Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Wed, 11 Nov 2026 21:49:40 -0500 Subject: [PATCH 1/3] docs: drop stamps from pointer records (batch 7a) Plugins: shared-lib-copies,context-guard,domain-driven-design. Split from #15476 so the review lanes read the diff whole. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm --- ...ocs-drop-pointer-stamps-batch7-0bd0d09a.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-db0d8f01.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-6013d99a.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-61bfa053.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-64e70856.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-e423b02b.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-be296836.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-1cd3bef6.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-5588747f.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-edb1f638.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-496cece8.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-7c5b6f42.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-93523f6d.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-e5ea397b.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-a2c1b23a.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-346c8179.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-e3630c51.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-11e28441.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-e0c3d667.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-437635c5.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-c6892b63.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-58d74539.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-5036c8f5.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-c66053d2.md | 7 ++ ...ocs-drop-pointer-stamps-batch7-ecbefe99.md | 7 ++ lib/docs-fetcher-gate.mjs | 6 +- lib/fetch-docs.sh | 1 - lib/hook-utils.sh | 20 ++--- lib/managed-scope.sh | 9 +-- lib/one-way-doors.md | 3 +- lib/plugin-options.mjs | 3 +- lib/prerequisites.mjs | 5 +- lib/rendered-view.md | 3 +- lib/session-bridge/README.md | 2 - lib/state-key.sh | 5 +- lib/view-runtime.js | 3 +- plugins/actionlint/lib/prerequisites.mjs | 5 +- plugins/adhd/lib/prerequisites.mjs | 5 +- plugins/adhd/lib/state-key.sh | 5 +- plugins/ai-briefing/lib/prerequisites.mjs | 5 +- plugins/ai-briefing/lib/state-key.sh | 5 +- plugins/ai-slop/lib/prerequisites.mjs | 5 +- plugins/animation/hooks/hook-utils.sh | 20 ++--- plugins/animation/lib/prerequisites.mjs | 5 +- plugins/app-control/lib/prerequisites.mjs | 5 +- plugins/architecture/lib/prerequisites.mjs | 5 +- plugins/architecture/lib/state-key.sh | 5 +- plugins/architecture/lib/view-runtime.js | 3 +- .../architecture/reference/rendered-view.md | 3 +- plugins/attribution/lib/prerequisites.mjs | 5 +- plugins/attribution/scripts/fetch-docs.sh | 1 - plugins/autonomy/hooks/hook-utils.sh | 20 ++--- plugins/autonomy/lib/prerequisites.mjs | 5 +- plugins/bash-format/hooks/hook-utils.sh | 20 ++--- plugins/bash-format/lib/prerequisites.mjs | 5 +- plugins/biome-format/hooks/hook-utils.sh | 20 ++--- plugins/biome-format/lib/prerequisites.mjs | 5 +- plugins/code-metrics/lib/prerequisites.mjs | 5 +- plugins/code-metrics/lib/state-key.sh | 5 +- plugins/code-tidying/lib/prerequisites.mjs | 5 +- plugins/codebase-health/lib/prerequisites.mjs | 5 +- plugins/codebase-health/lib/state-key.sh | 5 +- plugins/context-budget/lib/prerequisites.mjs | 5 +- plugins/context-budget/lib/state-key.sh | 5 +- plugins/context-guard/README.md | 33 ++------ plugins/context-guard/hooks/hook-utils.sh | 20 ++--- .../context-guard/hooks/post-compact-mark.sh | 3 +- plugins/context-guard/lib/prerequisites.mjs | 5 +- .../reference/cloud-headless-capture.md | 9 +-- .../reference/reader-contract.md | 77 +++++++------------ .../context-guard/scripts/check-mod-load.sh | 4 +- plugins/context-guard/skills/setup/SKILL.md | 20 ++--- plugins/context7/lib/prerequisites.mjs | 5 +- plugins/corrections/lib/prerequisites.mjs | 5 +- .../scripts/lib/plugin-options.mjs | 3 +- plugins/coupling/lib/prerequisites.mjs | 5 +- plugins/debugging/lib/prerequisites.mjs | 5 +- plugins/debugging/lib/state-key.sh | 5 +- plugins/debugging/lib/view-runtime.js | 3 +- plugins/debugging/reference/rendered-view.md | 3 +- .../desktop-notification/hooks/hook-utils.sh | 20 ++--- .../lib/prerequisites.mjs | 5 +- plugins/discipline/lib/prerequisites.mjs | 5 +- plugins/discipline/scripts/fetch-docs.sh | 1 - plugins/discovery/lib/docs-fetcher-gate.mjs | 6 +- plugins/discovery/lib/prerequisites.mjs | 5 +- plugins/discovery/lib/state-key.sh | 5 +- plugins/discovery/lib/view-runtime.js | 3 +- plugins/discovery/reference/rendered-view.md | 3 +- plugins/discovery/scripts/fetch-docs.sh | 1 - plugins/disk-hygiene/lib/prerequisites.mjs | 5 +- .../display-redaction/lib/prerequisites.mjs | 5 +- plugins/docs-hygiene/lib/prerequisites.mjs | 5 +- plugins/docs-naming/lib/prerequisites.mjs | 5 +- .../skills/ubiquitous-language/SKILL.md | 2 - .../ubiquitous-language/actions/curate.md | 2 - plugins/dometrain/lib/prerequisites.mjs | 5 +- plugins/education/lib/prerequisites.mjs | 5 +- plugins/education/lib/state-key.sh | 5 +- plugins/education/lib/view-runtime.js | 3 +- plugins/eol-normalizer/hooks/hook-utils.sh | 20 ++--- plugins/eol-normalizer/lib/prerequisites.mjs | 5 +- plugins/evals/lib/prerequisites.mjs | 5 +- plugins/explainer-video/hooks/hook-utils.sh | 20 ++--- plugins/explainer-video/lib/prerequisites.mjs | 5 +- plugins/firecrawl/lib/prerequisites.mjs | 5 +- plugins/gaming/lib/prerequisites.mjs | 5 +- plugins/go-format/hooks/hook-utils.sh | 20 ++--- plugins/go-format/lib/prerequisites.mjs | 5 +- plugins/guardrails/hooks/hook-utils.sh | 20 ++--- plugins/guardrails/lib/prerequisites.mjs | 5 +- plugins/harness-config/lib/managed-scope.sh | 9 +-- plugins/harness-config/lib/prerequisites.mjs | 5 +- plugins/harness-config/lib/state-key.sh | 5 +- plugins/harness-config/scripts/fetch-docs.sh | 1 - plugins/harness-memory/lib/managed-scope.sh | 9 +-- plugins/harness-memory/lib/prerequisites.mjs | 5 +- plugins/harness-memory/lib/state-key.sh | 5 +- plugins/harness-memory/scripts/fetch-docs.sh | 1 - plugins/harness-ops/hooks/hook-utils.sh | 20 ++--- plugins/harness-ops/lib/managed-scope.sh | 9 +-- plugins/harness-ops/lib/plugin-options.mjs | 3 +- plugins/harness-ops/lib/prerequisites.mjs | 5 +- plugins/harness-ops/lib/state-key.sh | 5 +- plugins/harness-ops/scripts/fetch-docs.sh | 1 - plugins/improvement/lib/state-key.sh | 5 +- .../lib/prerequisites.mjs | 5 +- .../scripts/fetch-docs.sh | 1 - plugins/kindle-dedrm/lib/prerequisites.mjs | 5 +- plugins/knowledge/lib/prerequisites.mjs | 5 +- plugins/knowledge/scripts/fetch-docs.sh | 1 - plugins/machine-health/lib/prerequisites.mjs | 5 +- plugins/machine-health/lib/view-runtime.js | 3 +- plugins/markdown-format/hooks/hook-utils.sh | 20 ++--- plugins/markdown-format/lib/prerequisites.mjs | 5 +- plugins/mcp-tools/lib/prerequisites.mjs | 5 +- plugins/miro/lib/prerequisites.mjs | 5 +- plugins/multi-agent/lib/docs-fetcher-gate.mjs | 6 +- plugins/multi-agent/lib/prerequisites.mjs | 5 +- plugins/multi-agent/scripts/fetch-docs.sh | 1 - plugins/overengineering/lib/state-key.sh | 5 +- plugins/performance/lib/prerequisites.mjs | 5 +- plugins/performance/lib/state-key.sh | 5 +- plugins/performance/scripts/fetch-docs.sh | 1 - plugins/pixel-art/lib/prerequisites.mjs | 5 +- plugins/planning/lib/prerequisites.mjs | 5 +- plugins/planning/lib/state-key.sh | 5 +- plugins/planning/lib/view-runtime.js | 3 +- plugins/planning/reference/one-way-doors.md | 3 +- plugins/planning/reference/rendered-view.md | 3 +- plugins/planning/scripts/fetch-docs.sh | 1 - plugins/playbooks/lib/prerequisites.mjs | 5 +- plugins/playbooks/scripts/fetch-docs.sh | 1 - plugins/playwright/hooks/hook-utils.sh | 20 ++--- plugins/playwright/lib/prerequisites.mjs | 5 +- plugins/plugin-quality/lib/prerequisites.mjs | 5 +- plugins/plugin-quality/scripts/fetch-docs.sh | 1 - .../powershell-format/lib/prerequisites.mjs | 5 +- plugins/prototype/lib/prerequisites.mjs | 5 +- plugins/prototype/lib/state-key.sh | 5 +- plugins/rate-limit-guard/hooks/hook-utils.sh | 20 ++--- .../rate-limit-guard/lib/prerequisites.mjs | 5 +- .../repo-fleet-hygiene/lib/prerequisites.mjs | 5 +- plugins/repo-hygiene/lib/prerequisites.mjs | 5 +- .../skills/clean/scripts/hook-utils.sh | 20 ++--- plugins/retro-audio/lib/prerequisites.mjs | 5 +- plugins/review/lib/prerequisites.mjs | 5 +- plugins/review/lib/state-key.sh | 5 +- plugins/review/lib/view-runtime.js | 3 +- plugins/review/reference/one-way-doors.md | 3 +- plugins/ruff-format/hooks/hook-utils.sh | 20 ++--- plugins/ruff-format/lib/prerequisites.mjs | 5 +- plugins/session-flow/lib/prerequisites.mjs | 5 +- plugins/session-flow/lib/state-key.sh | 5 +- plugins/session-flow/scripts/fetch-docs.sh | 1 - plugins/skill-quality/lib/prerequisites.mjs | 5 +- plugins/songwriting/lib/prerequisites.mjs | 5 +- plugins/source-control/hooks/hook-utils.sh | 20 ++--- plugins/source-control/lib/prerequisites.mjs | 5 +- plugins/source-control/lib/state-key.sh | 5 +- .../babysit-loop/scripts/operator-options.mjs | 3 +- plugins/speech/hooks/hook-utils.sh | 20 ++--- plugins/speech/lib/prerequisites.mjs | 5 +- plugins/sql-server/lib/prerequisites.mjs | 5 +- plugins/testing/hooks/hook-utils.sh | 20 ++--- plugins/testing/lib/prerequisites.mjs | 5 +- plugins/toolchain/hooks/plugin-options.mjs | 3 +- plugins/toolchain/lib/prerequisites.mjs | 5 +- plugins/typos-format/hooks/hook-utils.sh | 20 ++--- plugins/typos-format/lib/prerequisites.mjs | 5 +- plugins/user-experience/lib/prerequisites.mjs | 5 +- plugins/user-interface/lib/prerequisites.mjs | 5 +- plugins/verification/lib/prerequisites.mjs | 5 +- plugins/visualization/lib/prerequisites.mjs | 5 +- plugins/visualization/lib/state-key.sh | 5 +- plugins/wizard/lib/prerequisites.mjs | 5 +- plugins/work-items/lib/prerequisites.mjs | 5 +- plugins/work-items/lib/state-key.sh | 5 +- plugins/work-items/lib/view-runtime.js | 3 +- plugins/x/lib/prerequisites.mjs | 5 +- scripts/check-hooks-description.sh | 5 +- scripts/run-hygiene-gate.sh | 3 +- 202 files changed, 566 insertions(+), 829 deletions(-) create mode 100644 .changes/architecture/docs-drop-pointer-stamps-batch7-0bd0d09a.md create mode 100644 .changes/code-tidying/docs-drop-pointer-stamps-batch7-db0d8f01.md create mode 100644 .changes/context-guard/docs-drop-pointer-stamps-batch7-6013d99a.md create mode 100644 .changes/coupling/docs-drop-pointer-stamps-batch7-61bfa053.md create mode 100644 .changes/discovery/docs-drop-pointer-stamps-batch7-64e70856.md create mode 100644 .changes/disk-hygiene/docs-drop-pointer-stamps-batch7-e423b02b.md create mode 100644 .changes/display-redaction/docs-drop-pointer-stamps-batch7-be296836.md create mode 100644 .changes/docs-hygiene/docs-drop-pointer-stamps-batch7-1cd3bef6.md create mode 100644 .changes/domain-driven-design/docs-drop-pointer-stamps-batch7-5588747f.md create mode 100644 .changes/evals/docs-drop-pointer-stamps-batch7-edb1f638.md create mode 100644 .changes/harness-config/docs-drop-pointer-stamps-batch7-496cece8.md create mode 100644 .changes/harness-memory/docs-drop-pointer-stamps-batch7-7c5b6f42.md create mode 100644 .changes/harness-ops/docs-drop-pointer-stamps-batch7-93523f6d.md create mode 100644 .changes/knowledge/docs-drop-pointer-stamps-batch7-e5ea397b.md create mode 100644 .changes/machine-health/docs-drop-pointer-stamps-batch7-a2c1b23a.md create mode 100644 .changes/performance/docs-drop-pointer-stamps-batch7-346c8179.md create mode 100644 .changes/planning/docs-drop-pointer-stamps-batch7-e3630c51.md create mode 100644 .changes/playbooks/docs-drop-pointer-stamps-batch7-11e28441.md create mode 100644 .changes/retro-audio/docs-drop-pointer-stamps-batch7-e0c3d667.md create mode 100644 .changes/review/docs-drop-pointer-stamps-batch7-437635c5.md create mode 100644 .changes/session-flow/docs-drop-pointer-stamps-batch7-c6892b63.md create mode 100644 .changes/source-control/docs-drop-pointer-stamps-batch7-58d74539.md create mode 100644 .changes/testing/docs-drop-pointer-stamps-batch7-5036c8f5.md create mode 100644 .changes/user-interface/docs-drop-pointer-stamps-batch7-c66053d2.md create mode 100644 .changes/work-items/docs-drop-pointer-stamps-batch7-ecbefe99.md diff --git a/.changes/architecture/docs-drop-pointer-stamps-batch7-0bd0d09a.md b/.changes/architecture/docs-drop-pointer-stamps-batch7-0bd0d09a.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/architecture/docs-drop-pointer-stamps-batch7-0bd0d09a.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/code-tidying/docs-drop-pointer-stamps-batch7-db0d8f01.md b/.changes/code-tidying/docs-drop-pointer-stamps-batch7-db0d8f01.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/code-tidying/docs-drop-pointer-stamps-batch7-db0d8f01.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/context-guard/docs-drop-pointer-stamps-batch7-6013d99a.md b/.changes/context-guard/docs-drop-pointer-stamps-batch7-6013d99a.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/context-guard/docs-drop-pointer-stamps-batch7-6013d99a.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/coupling/docs-drop-pointer-stamps-batch7-61bfa053.md b/.changes/coupling/docs-drop-pointer-stamps-batch7-61bfa053.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/coupling/docs-drop-pointer-stamps-batch7-61bfa053.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/discovery/docs-drop-pointer-stamps-batch7-64e70856.md b/.changes/discovery/docs-drop-pointer-stamps-batch7-64e70856.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/discovery/docs-drop-pointer-stamps-batch7-64e70856.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/disk-hygiene/docs-drop-pointer-stamps-batch7-e423b02b.md b/.changes/disk-hygiene/docs-drop-pointer-stamps-batch7-e423b02b.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/disk-hygiene/docs-drop-pointer-stamps-batch7-e423b02b.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/display-redaction/docs-drop-pointer-stamps-batch7-be296836.md b/.changes/display-redaction/docs-drop-pointer-stamps-batch7-be296836.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/display-redaction/docs-drop-pointer-stamps-batch7-be296836.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/docs-hygiene/docs-drop-pointer-stamps-batch7-1cd3bef6.md b/.changes/docs-hygiene/docs-drop-pointer-stamps-batch7-1cd3bef6.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/docs-hygiene/docs-drop-pointer-stamps-batch7-1cd3bef6.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/domain-driven-design/docs-drop-pointer-stamps-batch7-5588747f.md b/.changes/domain-driven-design/docs-drop-pointer-stamps-batch7-5588747f.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/domain-driven-design/docs-drop-pointer-stamps-batch7-5588747f.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/evals/docs-drop-pointer-stamps-batch7-edb1f638.md b/.changes/evals/docs-drop-pointer-stamps-batch7-edb1f638.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/evals/docs-drop-pointer-stamps-batch7-edb1f638.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/harness-config/docs-drop-pointer-stamps-batch7-496cece8.md b/.changes/harness-config/docs-drop-pointer-stamps-batch7-496cece8.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/harness-config/docs-drop-pointer-stamps-batch7-496cece8.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/harness-memory/docs-drop-pointer-stamps-batch7-7c5b6f42.md b/.changes/harness-memory/docs-drop-pointer-stamps-batch7-7c5b6f42.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/harness-memory/docs-drop-pointer-stamps-batch7-7c5b6f42.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/harness-ops/docs-drop-pointer-stamps-batch7-93523f6d.md b/.changes/harness-ops/docs-drop-pointer-stamps-batch7-93523f6d.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/harness-ops/docs-drop-pointer-stamps-batch7-93523f6d.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/knowledge/docs-drop-pointer-stamps-batch7-e5ea397b.md b/.changes/knowledge/docs-drop-pointer-stamps-batch7-e5ea397b.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/knowledge/docs-drop-pointer-stamps-batch7-e5ea397b.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/machine-health/docs-drop-pointer-stamps-batch7-a2c1b23a.md b/.changes/machine-health/docs-drop-pointer-stamps-batch7-a2c1b23a.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/machine-health/docs-drop-pointer-stamps-batch7-a2c1b23a.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/performance/docs-drop-pointer-stamps-batch7-346c8179.md b/.changes/performance/docs-drop-pointer-stamps-batch7-346c8179.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/performance/docs-drop-pointer-stamps-batch7-346c8179.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/planning/docs-drop-pointer-stamps-batch7-e3630c51.md b/.changes/planning/docs-drop-pointer-stamps-batch7-e3630c51.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/planning/docs-drop-pointer-stamps-batch7-e3630c51.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/playbooks/docs-drop-pointer-stamps-batch7-11e28441.md b/.changes/playbooks/docs-drop-pointer-stamps-batch7-11e28441.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/playbooks/docs-drop-pointer-stamps-batch7-11e28441.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/retro-audio/docs-drop-pointer-stamps-batch7-e0c3d667.md b/.changes/retro-audio/docs-drop-pointer-stamps-batch7-e0c3d667.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/retro-audio/docs-drop-pointer-stamps-batch7-e0c3d667.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/review/docs-drop-pointer-stamps-batch7-437635c5.md b/.changes/review/docs-drop-pointer-stamps-batch7-437635c5.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/review/docs-drop-pointer-stamps-batch7-437635c5.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/session-flow/docs-drop-pointer-stamps-batch7-c6892b63.md b/.changes/session-flow/docs-drop-pointer-stamps-batch7-c6892b63.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/session-flow/docs-drop-pointer-stamps-batch7-c6892b63.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/source-control/docs-drop-pointer-stamps-batch7-58d74539.md b/.changes/source-control/docs-drop-pointer-stamps-batch7-58d74539.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/source-control/docs-drop-pointer-stamps-batch7-58d74539.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/testing/docs-drop-pointer-stamps-batch7-5036c8f5.md b/.changes/testing/docs-drop-pointer-stamps-batch7-5036c8f5.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/testing/docs-drop-pointer-stamps-batch7-5036c8f5.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/user-interface/docs-drop-pointer-stamps-batch7-c66053d2.md b/.changes/user-interface/docs-drop-pointer-stamps-batch7-c66053d2.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/user-interface/docs-drop-pointer-stamps-batch7-c66053d2.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/.changes/work-items/docs-drop-pointer-stamps-batch7-ecbefe99.md b/.changes/work-items/docs-drop-pointer-stamps-batch7-ecbefe99.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/work-items/docs-drop-pointer-stamps-batch7-ecbefe99.md @@ -0,0 +1,7 @@ +--- +bump: patch +--- + +### Changed + +- Pointer records no longer carry an as-of date or recheck trigger; stored values keep theirs. diff --git a/lib/docs-fetcher-gate.mjs b/lib/docs-fetcher-gate.mjs index 7a51dace27f..fb023652266 100755 --- a/lib/docs-fetcher-gate.mjs +++ b/lib/docs-fetcher-gate.mjs @@ -20,8 +20,7 @@ // $CLAUDE_PLUGIN_ROOT/scripts/docs-raw.sh, the root the hook process receives. // // A plugin subagent reports its plugin-scoped name as agent_type: -// https://code.claude.com/docs/en/hooks#subagentstart (as of 2026-10-04; -// recheck when that section changes the agent_type a plugin subagent reports). +// https://code.claude.com/docs/en/hooks#subagentstart. // // Fail-closed inside the named agent (a command it cannot parse, an input // stream that fails, or an error in the gate is denied); fail-open everywhere @@ -120,8 +119,7 @@ const UID = process.getuid?.() // Where the markers live: the plugin's data directory, which Claude Code // exports to hook processes and keeps under the user's home -// (https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables, as -// of 2026-10-07; recheck when CLAUDE_PLUGIN_DATA stops reaching hooks), else a +// (https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables), else a // per-uid directory under the temp directory. export function markerDir(env = process.env) { if (env.CLAUDE_PLUGIN_DATA) return join(env.CLAUDE_PLUGIN_DATA, 'docs-fetcher-gate') diff --git a/lib/fetch-docs.sh b/lib/fetch-docs.sh index 021dec952b9..9c3f5ed4183 100755 --- a/lib/fetch-docs.sh +++ b/lib/fetch-docs.sh @@ -52,7 +52,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/lib/hook-utils.sh b/lib/hook-utils.sh index c65de4b17b7..7fafba573f9 100755 --- a/lib/hook-utils.sh +++ b/lib/hook-utils.sh @@ -40,8 +40,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -107,8 +106,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -187,9 +185,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -419,11 +415,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2107,9 +2099,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/lib/managed-scope.sh b/lib/managed-scope.sh index b0b07778b5d..19e9942199c 100644 --- a/lib/managed-scope.sh +++ b/lib/managed-scope.sh @@ -10,9 +10,8 @@ # surfaces (files, a drop-in directory, an OS policy store), listed at # https://code.claude.com/docs/en/managed-settings#where-each-mechanism-stores-the-policy # with the drop-in directory at -# https://code.claude.com/docs/en/managed-settings#split-a-file-based-policy-across-teams -# (as of 2026-10-11; recheck when either section gains, drops or moves a -# surface). Three components in this marketplace need that enumeration, and a +# https://code.claude.com/docs/en/managed-settings#split-a-file-based-policy-across-teams. +# Three components in this marketplace need that enumeration, and a # third hand-written copy would drift the moment upstream adds or moves a # surface, as it already had: the copies disagreed about whether the drop-in # directory existed at all. The paths are documented, not discoverable: a @@ -43,9 +42,7 @@ # a reader that computes an effective merge follows the per-key rules at # https://code.claude.com/docs/en/managed-settings#compose-every-managed-source # and https://code.claude.com/docs/en/settings-reference#managedsourcesbehavior, -# and drop-in files combine by the rules in the split-a-file section above -# (as of 2026-10-11; recheck when any of those sections gains or drops a key -# kind or a combination rule). +# and drop-in files combine by the rules in the split-a-file section above. # mscope::base_file [override] — absolute path to the managed-settings.json this # OS reads. A non-empty is returned verbatim, so a caller's own test diff --git a/lib/one-way-doors.md b/lib/one-way-doors.md index 61bb96c6ee1..691d7e3c05c 100644 --- a/lib/one-way-doors.md +++ b/lib/one-way-doors.md @@ -16,5 +16,4 @@ When the evidence cannot settle the call, treat it as a one-way door. Source: Jeff Bezos, 2015 letter to shareowners, [Amazon.com exhibit 99.1 to SEC Form 8-K](https://www.sec.gov/Archives/edgar/data/1018724/000119312516530910/d168744dex991.htm) -(filed 2016), the passage on Type 1 and Type 2 decisions. As of 2026-10-18; recheck when the filing -URL moves. +(filed 2016), the passage on Type 1 and Type 2 decisions. diff --git a/lib/plugin-options.mjs b/lib/plugin-options.mjs index 0c54f7228e3..53f68dbbed5 100644 --- a/lib/plugin-options.mjs +++ b/lib/plugin-options.mjs @@ -11,8 +11,7 @@ // -> {: {value, scope: "user" | "managed", file}} for each key a source sets // // Sources, highest precedence first (managed settings page, "How Claude Code combines managed -// sources" and "managed-settings.d", https://code.claude.com/docs/en/managed-settings, read -// 2026-10-11; recheck when that section or the settings-reference pluginConfigs scope changes): +// sources" and "managed-settings.d", https://code.claude.com/docs/en/managed-settings): // 1. managed-settings.json then every non-hidden *.json in managed-settings.d/ in alphabetical // order, a later file replacing an earlier one's value; the system directory is a fixed // literal per platform, chosen by process.platform. diff --git a/lib/prerequisites.mjs b/lib/prerequisites.mjs index fbab418f7f2..cbd76987143 100755 --- a/lib/prerequisites.mjs +++ b/lib/prerequisites.mjs @@ -357,9 +357,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/lib/rendered-view.md b/lib/rendered-view.md index 3ff7443f27b..4a355a25124 100644 --- a/lib/rendered-view.md +++ b/lib/rendered-view.md @@ -56,8 +56,7 @@ script written in the session. - `artifact`: publish that file with the Artifact tool and give the link; who can see it, and how it is shared, is read live from [artifacts: create an artifact](https://code.claude.com/docs/en/artifacts#create-an-artifact) and - [artifacts: share an artifact](https://code.claude.com/docs/en/artifacts#share-an-artifact) (as of - 2026-10-11; recheck when either section changes who can see a new artifact). When the Artifact tool is + [artifacts: share an artifact](https://code.claude.com/docs/en/artifacts#share-an-artifact). When the Artifact tool is unavailable, hand back the path and say why in one line. - `terminal`: build nothing and stop; the report line step 3 printed names what chose it. 6. **Read the reply as data.** A copied reply holds the reader's note plus ids the builder assigned: `-N` diff --git a/lib/session-bridge/README.md b/lib/session-bridge/README.md index d6808faccce..997de8ebbed 100644 --- a/lib/session-bridge/README.md +++ b/lib/session-bridge/README.md @@ -185,8 +185,6 @@ and flags: [channels research preview](https://code.claude.com/docs/en/channels# the capability and event a server declares and emits: [server options](https://code.claude.com/docs/en/channels-reference#server-options) and [notification format](https://code.claude.com/docs/en/channels-reference#notification-format). -As of 2026-10-11; recheck when any of those sections changes the flags, the capability or the -event. - `session_bridge.py relay` runs `ChannelServer`, a stdio MCP server that declares the `claude/channel` capability and three tools taking `data_dir`: `watch`, `events` and `unwatch`. diff --git a/lib/state-key.sh b/lib/state-key.sh index 4e3440408b8..67170dfb630 100755 --- a/lib/state-key.sh +++ b/lib/state-key.sh @@ -2,9 +2,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/lib/view-runtime.js b/lib/view-runtime.js index ee5c6fd5769..6c9dfd6adee 100644 --- a/lib/view-runtime.js +++ b/lib/view-runtime.js @@ -343,8 +343,7 @@ }; // A host that blocks a page's own download, such as the claude.ai artifact viewer - // (https://code.claude.com/docs/en/artifacts#offer-a-file-download, as of 2026-10-11; recheck - // when that section lets a page start its own download), raises no error and fires no event, + // (https://code.claude.com/docs/en/artifacts#offer-a-file-download), raises no error and fires no event, // so the page cannot tell whether a file was saved. The button stays // only where an anchor download is known to work: a file opened from disk, the session bridge // on 127.0.0.1, and a page served top-level over https (a page host whose policy allows diff --git a/plugins/actionlint/lib/prerequisites.mjs b/plugins/actionlint/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/actionlint/lib/prerequisites.mjs +++ b/plugins/actionlint/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/adhd/lib/prerequisites.mjs b/plugins/adhd/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/adhd/lib/prerequisites.mjs +++ b/plugins/adhd/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/adhd/lib/state-key.sh b/plugins/adhd/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/adhd/lib/state-key.sh +++ b/plugins/adhd/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/ai-briefing/lib/prerequisites.mjs b/plugins/ai-briefing/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/ai-briefing/lib/prerequisites.mjs +++ b/plugins/ai-briefing/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/ai-briefing/lib/state-key.sh b/plugins/ai-briefing/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/ai-briefing/lib/state-key.sh +++ b/plugins/ai-briefing/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/ai-slop/lib/prerequisites.mjs b/plugins/ai-slop/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/ai-slop/lib/prerequisites.mjs +++ b/plugins/ai-slop/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/animation/hooks/hook-utils.sh b/plugins/animation/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/animation/hooks/hook-utils.sh +++ b/plugins/animation/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/animation/lib/prerequisites.mjs b/plugins/animation/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/animation/lib/prerequisites.mjs +++ b/plugins/animation/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/app-control/lib/prerequisites.mjs b/plugins/app-control/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/app-control/lib/prerequisites.mjs +++ b/plugins/app-control/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/architecture/lib/prerequisites.mjs b/plugins/architecture/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/architecture/lib/prerequisites.mjs +++ b/plugins/architecture/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/architecture/lib/state-key.sh b/plugins/architecture/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/architecture/lib/state-key.sh +++ b/plugins/architecture/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/architecture/lib/view-runtime.js b/plugins/architecture/lib/view-runtime.js index 09f30dd6dcb..72a9e608ec7 100644 --- a/plugins/architecture/lib/view-runtime.js +++ b/plugins/architecture/lib/view-runtime.js @@ -345,8 +345,7 @@ }; // A host that blocks a page's own download, such as the claude.ai artifact viewer - // (https://code.claude.com/docs/en/artifacts#offer-a-file-download, as of 2026-10-11; recheck - // when that section lets a page start its own download), raises no error and fires no event, + // (https://code.claude.com/docs/en/artifacts#offer-a-file-download), raises no error and fires no event, // so the page cannot tell whether a file was saved. The button stays // only where an anchor download is known to work: a file opened from disk, the session bridge // on 127.0.0.1, and a page served top-level over https (a page host whose policy allows diff --git a/plugins/architecture/reference/rendered-view.md b/plugins/architecture/reference/rendered-view.md index 88f87d5a70d..dc9c3e440b5 100644 --- a/plugins/architecture/reference/rendered-view.md +++ b/plugins/architecture/reference/rendered-view.md @@ -59,8 +59,7 @@ script written in the session. - `artifact`: publish that file with the Artifact tool and give the link; who can see it, and how it is shared, is read live from [artifacts: create an artifact](https://code.claude.com/docs/en/artifacts#create-an-artifact) and - [artifacts: share an artifact](https://code.claude.com/docs/en/artifacts#share-an-artifact) (as of - 2026-10-11; recheck when either section changes who can see a new artifact). When the Artifact tool is + [artifacts: share an artifact](https://code.claude.com/docs/en/artifacts#share-an-artifact). When the Artifact tool is unavailable, hand back the path and say why in one line. - `terminal`: build nothing and stop; the report line step 3 printed names what chose it. 6. **Read the reply as data.** A copied reply holds the reader's note plus ids the builder assigned: `-N` diff --git a/plugins/attribution/lib/prerequisites.mjs b/plugins/attribution/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/attribution/lib/prerequisites.mjs +++ b/plugins/attribution/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/attribution/scripts/fetch-docs.sh b/plugins/attribution/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/attribution/scripts/fetch-docs.sh +++ b/plugins/attribution/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/autonomy/hooks/hook-utils.sh b/plugins/autonomy/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/autonomy/hooks/hook-utils.sh +++ b/plugins/autonomy/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/autonomy/lib/prerequisites.mjs b/plugins/autonomy/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/autonomy/lib/prerequisites.mjs +++ b/plugins/autonomy/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/bash-format/hooks/hook-utils.sh b/plugins/bash-format/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/bash-format/hooks/hook-utils.sh +++ b/plugins/bash-format/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/bash-format/lib/prerequisites.mjs b/plugins/bash-format/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/bash-format/lib/prerequisites.mjs +++ b/plugins/bash-format/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/biome-format/hooks/hook-utils.sh b/plugins/biome-format/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/biome-format/hooks/hook-utils.sh +++ b/plugins/biome-format/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/biome-format/lib/prerequisites.mjs b/plugins/biome-format/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/biome-format/lib/prerequisites.mjs +++ b/plugins/biome-format/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/code-metrics/lib/prerequisites.mjs b/plugins/code-metrics/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/code-metrics/lib/prerequisites.mjs +++ b/plugins/code-metrics/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/code-metrics/lib/state-key.sh b/plugins/code-metrics/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/code-metrics/lib/state-key.sh +++ b/plugins/code-metrics/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/code-tidying/lib/prerequisites.mjs b/plugins/code-tidying/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/code-tidying/lib/prerequisites.mjs +++ b/plugins/code-tidying/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/codebase-health/lib/prerequisites.mjs b/plugins/codebase-health/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/codebase-health/lib/prerequisites.mjs +++ b/plugins/codebase-health/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/codebase-health/lib/state-key.sh b/plugins/codebase-health/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/codebase-health/lib/state-key.sh +++ b/plugins/codebase-health/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/context-budget/lib/prerequisites.mjs b/plugins/context-budget/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/context-budget/lib/prerequisites.mjs +++ b/plugins/context-budget/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/context-budget/lib/state-key.sh b/plugins/context-budget/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/context-budget/lib/state-key.sh +++ b/plugins/context-budget/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/context-guard/README.md b/plugins/context-guard/README.md index 4795f36b5f9..be5c67e3ab1 100644 --- a/plugins/context-guard/README.md +++ b/plugins/context-guard/README.md @@ -11,8 +11,7 @@ degraded context **before** quality slips, instead of guessing. Four parts: needs a Claude Code build that can run mods; older builds are unsupported. **Pointer**: when deciding which build that is, fetch [mods overview: turn mods on or off](https://code.claude.com/docs/en/plugins/mods/overview#turn-mods-on-or-off) - live. **As of**: 2026-10-11. **Recheck trigger**: the terminal version that section names for - mods changes. See [The module](#the-module). + live. See [The module](#the-module). - **Zone resolver** (`scripts/context-zone.sh`). `context-zone.sh ` prints exactly one word: `light` / `moderate` / `heavy` / `unknown`. Two band shapes, combined conservatively (the worse computable zone wins): percentage bands over `used_percentage` (shipped defaults @@ -125,8 +124,6 @@ suggestion, so it stays in the box after that hand-off. - **Pointer**: when checking whether a mod can clear a suggestion it showed, fetch [mods reference: mods API methods](https://code.claude.com/docs/en/plugins/mods/reference#mods-api-methods) live. -- **As of**: 2026-11-03. -- **Recheck trigger**: the `$.prompt` row gains a method that clears or withdraws a suggestion. Which apps draw the band's site, `AbovePrompt`, is upstream's render-sites table to say. No probe of this plugin ran in the Desktop app or VS Code. @@ -154,9 +151,6 @@ writes carry on. - **Pointer**: when checking what can refuse a mod or its registrations, fetch [Troubleshoot a mod: refusal messages](https://code.claude.com/docs/en/plugins/mods/troubleshoot#refusal-messages) live. -- **As of**: 2026-11-03. -- **Recheck trigger**: that section, or the built-in guard's messages beside it, changes which - refusals apply to a mod's tool registration. ### Prompt-cache status-line segment (optional) @@ -186,9 +180,6 @@ command runs first through `--after`, and your other `statusLine` keys stay. It [manifest reference: settings](https://code.claude.com/docs/en/plugins/manifest-reference#settings) live; when checking what cache state a mod can read, fetch [mods API methods](https://code.claude.com/docs/en/plugins/mods/reference#mods-api-methods) live. -- **As of**: 2026-11-03. -- **Recheck trigger**: the prompt-cache section renames a field the script reads, the manifest's - `settings` section adds `statusLine`, or the `$.session` row's `usage()` gains cache state. The plugin sends no keep-warm requests: each one spends usage to save a rebuild that may never come. For the lifetime rules and the settings that change them, see @@ -271,9 +262,6 @@ its event through unchanged. [mods overview: turn mods on or off](https://code.claude.com/docs/en/plugins/mods/overview#turn-mods-on-or-off) and [troubleshoot: check whether mods can load](https://code.claude.com/docs/en/plugins/mods/troubleshoot#check-whether-mods-can-load) live. -- **As of**: 2026-10-11. -- **Recheck trigger**: either section adds or drops a way mods get turned off, or changes which - of them stop settings hooks. ## Behavior @@ -289,12 +277,10 @@ its event through unchanged. data they cannot trust, never a fabricated zone. The shipped bands are declared judgment defaults. `zones.json` is the tuning path. [The reader contract](reference/reader-contract.md#zone-is-not-a-compaction-indicator) records - how the default auto-compact thresholds relate to the bands (relayed 2026-10-11; recheck when - that section is renamed or stops relating them). **Pointer**: when deciding what those defaults + how the default auto-compact thresholds relate to the bands. **Pointer**: when deciding what those defaults are, fetch [model config: default auto-compact thresholds](https://code.claude.com/docs/en/model-config#default-auto-compact-thresholds) - live. **As of**: 2026-11-04. **Recheck trigger**: that section's thresholds change, or it is - renamed or removed. The trigger itself is + live. The trigger itself is operator-tunable, per model as well as globally; the reader contract's tunable table records which surfaces we rely on and where to read the rest. The module's percentage bands follow it: it reads the window the engine settled on (the `/context` breakdown's @@ -308,8 +294,7 @@ its event through unchanged. lowered, we never read `used_percentage` as a forecast of when compaction will run. **Pointer**: when deciding what the percentage is measured against, fetch [environment variables: variables](https://code.claude.com/docs/en/env-vars#variables) live. - **As of**: 2026-10-11. **Recheck trigger**: the `CLAUDE_CODE_AUTO_COMPACT_WINDOW` row changes - what the percentage is measured against. The reader contract owns those surfaces, their + The reader contract owns those surfaces, their verification dates, and the rationale. - **Integrity boundary.** The snapshot directory is owner-only where POSIX modes work; on Windows ACL volumes it keeps the inherited ACLs and other local users could forge @@ -368,15 +353,12 @@ you want a file to tune. - **Pointer**: when checking which scope an install without `--scope` uses, fetch [plugin install](https://code.claude.com/docs/en/plugins/cli-reference#plugin-install) live. -- **As of**: 2026-11-03. -- **Recheck trigger**: that section changes the default of `--scope`. ## Requirements The module needs a Claude Code build at or above the terminal version mods need (older builds are unsupported). `prerequisites.json` holds the floor as data, in `detect.version.min` of the entry -with `"id": "claude"`, which the check skill compares against (relayed 2026-10-11; recheck when -that key moves); the pointer below is where to re-derive it. Its snapshot writes and the PostCompact marker row need +with `"id": "claude"`, which the check skill compares against; the pointer below is where to re-derive it. Its snapshot writes and the PostCompact marker row need [Node.js](https://nodejs.org/en/download) on `PATH`, installed on its own: we never count on Claude Code's install to provide it. The marker and the zone resolver run on Bash (Git Bash on native Windows, so install [Git for Windows](https://code.claude.com/docs/en/setup#set-up-on-windows)). The zone resolver, @@ -391,9 +373,6 @@ prompt-cache status-line segment runs on Node.js too. live; when deciding whether a Claude Code install brings a Node.js the plugin could use, fetch [advanced setup: install with npm](https://code.claude.com/docs/en/setup#install-with-npm) live. -- **As of**: 2026-10-11. -- **Recheck trigger**: the terminal version that section names for mods changes, or the setup - page says the installed binary runs on Node.js. ## Configuration @@ -445,8 +424,6 @@ value of the wrong type, is Claude Code's to handle before the module sees it. `userConfig`, fetch [troubleshoot: options do not fit plugin.json userConfig](https://code.claude.com/docs/en/plugins/mods/troubleshoot#options-do-not-fit-plugin-json-userconfig) live. -- **As of**: 2026-10-11. -- **Recheck trigger**: that section changes what Claude Code does with a refused option value. Per-zone actions, their wording, the approach margin and extra thresholds live in `~/.claude/context-guard/zones.json` beside the bands (shape in the diff --git a/plugins/context-guard/hooks/hook-utils.sh b/plugins/context-guard/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/context-guard/hooks/hook-utils.sh +++ b/plugins/context-guard/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/context-guard/hooks/post-compact-mark.sh b/plugins/context-guard/hooks/post-compact-mark.sh index 612df3fae1a..28b153ce395 100755 --- a/plugins/context-guard/hooks/post-compact-mark.sh +++ b/plugins/context-guard/hooks/post-compact-mark.sh @@ -20,8 +20,7 @@ # SIDE-EFFECT-ONLY by design: this hook's one job is the marker, and it # returns no decision. Pointer: when deciding whether PostCompact output can # do anything, fetch https://code.claude.com/docs/en/hooks#postcompact live. -# As of: 2026-10-11. Recheck trigger: the PostCompact section documents a -# decision field. jq-FREE by design, mirroring the +# jq-FREE by design, mirroring the # rate-limit-guard StopFailure recorder: the fields are regex-extracted so a # degraded environment still records. # diff --git a/plugins/context-guard/lib/prerequisites.mjs b/plugins/context-guard/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/context-guard/lib/prerequisites.mjs +++ b/plugins/context-guard/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/context-guard/reference/cloud-headless-capture.md b/plugins/context-guard/reference/cloud-headless-capture.md index d01b248286a..2cef6aa64b5 100644 --- a/plugins/context-guard/reference/cloud-headless-capture.md +++ b/plugins/context-guard/reference/cloud-headless-capture.md @@ -34,8 +34,6 @@ broken install.** - **Pointer**: the WSL clause rests on [Claude Code Desktop in WSL: What works in a WSL session](https://code.claude.com/docs/en/desktop-wsl#what-works-in-a-wsl-session), which lists connectors and plugins among the features not available there. -- **As of**: 2026-10-18. -- **Recheck trigger**: that section drops plugins from its unavailable list. **As of 2026-08-21, no documented Claude Code channel other than the status line delivered per-session context-window occupancy to a local writer outside a mod.** Two other channels do carry @@ -149,9 +147,6 @@ a running interactive session. [monitoring: standard attributes](https://code.claude.com/docs/en/monitoring-usage#standard-attributes) and [status line: context window fields](https://code.claude.com/docs/en/statusline#context-window-fields) live. -- **As of**: 2026-10-11. -- **Recheck trigger**: the API request event drops its token fields, or the context window fields - section changes what `used_percentage` is computed from. Two disqualifiers hold anyway, and both were measured rather than assumed. @@ -256,8 +251,8 @@ Nothing, for the sessions mods reach. The remaining gaps are where the module do each would close by a change to Claude Code, not to this plugin: - **Plugins in Desktop WSL sessions.** The Desktop WSL page lists plugins as unavailable there - ([What works in a WSL session](https://code.claude.com/docs/en/desktop-wsl#what-works-in-a-wsl-session); - as of 2026-10-18; recheck when that section's unavailable list changes), and the mods overview's + ([What works in a WSL session](https://code.claude.com/docs/en/desktop-wsl#what-works-in-a-wsl-session)), + and the mods overview's "Where mods run" table repeats it. - **A context field on hook stdin**, so a settings hook could write the snapshot where mods are off and settings hooks still run (an organization's `allowManagedModsOnly`, for example): add the diff --git a/plugins/context-guard/reference/reader-contract.md b/plugins/context-guard/reference/reader-contract.md index 7e0d18ccbf8..5f4502d02cb 100644 --- a/plugins/context-guard/reference/reader-contract.md +++ b/plugins/context-guard/reference/reader-contract.md @@ -153,8 +153,6 @@ describes; the fields are additive, and a reader ignores keys it does not know. state, not a defect; the capability table below says what each one does to the zone. A body with null figures never replaces a file that has them. Pointer: for the field meanings and when each field is null, see . - As of: 2026-10-03. Recheck trigger: a release note or that section changes the `context_window` - fields or the states in which they are null. - **File modes and siblings.** The snapshot file is owner-only (`0600`) and the directory `0700` where POSIX modes work. For each write the writer creates a lock file, `..json.lock`, and removes it when the write ends; one is left behind only when that @@ -208,8 +206,7 @@ questions. Never equate them without normalizing: - **Percentage shape**: `context_window.used_percentage` against the percentage bands. We rely on it counting the input side only, and read it as *distance to compaction*, because compaction thresholds key off the same accounting. Pointer: for how the percentage is computed, see - . As of: 2026-07-26. Recheck - trigger: that section changes the `used_percentage` formula. + . - **Token shape**: **occupancy**, defined as `total_input_tokens + total_output_tokens`, against the window-class token bands. Occupancy counts both directions because both occupy the window, and we treat quality loss as tracking **absolute tokens in context, not window fraction**. It @@ -217,8 +214,8 @@ questions. Never equate them without normalizing: selected by window class rather than percentages: 50% of a 1M window is a materially different cognitive state than 50% of a 200k window. This is a declared judgment: no published study compares absolute tokens with window fraction, and Anthropic publishes no context-quality - threshold. As of: 2026-10-04. Recheck trigger: Anthropic publishes a context-quality threshold, - or a study compares the two. + threshold. Recheck trigger: Anthropic publishes a context-quality threshold, or a study compares + the two. **Window-class selection:** use the band row whose class key is the **largest one ≤ `context_window_size`**. A window smaller than every configured class has no row, so the token @@ -239,7 +236,8 @@ context may be in the light zone. So the token shape requires an explicit version signal: the snapshot's `cli_version`, the Claude Code version the session reports to the module (Pointer: `$.session.version()` in . As of: 2026-10-03, -Claude Code 2.1.288. Recheck trigger: that table renames or drops the method). **The token shape is computable only when +Claude Code 2.1.288. Recheck trigger: that table renames or drops the method). **The token shape is +computable only when `cli_version` is present, purely numeric dotted, and ≥ 2.1.132**; absent, malformed, or older leaves the percentage shape to stand alone. @@ -307,8 +305,7 @@ skill's module check), none of the following runs except the PostCompact marker. - **Pointer**: when deciding which Claude Code builds can run mods, fetch [mods overview: turn mods on or off](https://code.claude.com/docs/en/plugins/mods/overview#turn-mods-on-or-off) - live. **As of**: 2026-10-11. **Recheck trigger**: the terminal version that section names for - mods changes. + live. - **Zone lines** (on each tool result of the main conversation and each prompt; the model channel below only with the `model_notices` option on, which is off by default): on a transition @@ -344,10 +341,10 @@ skill's module check), none of the following runs except the PostCompact marker. the next step with `/session-flow:workflow` (if installed). Without session-flow, we send the operator to the docs section on a filling context and restate none of it. Pointer: for the command reply reaching the model and `$.ui.log` not, see the `CommandRunResult`, `CommandOutput` - and `ui.log` doc comments in the build's `claude-code/index.d.ts` types. As of: 2026-10-04. - Recheck trigger: either doc comment changes what the model reads. Pointer: for what to do when the context fills up, see - . As of: 2026-10-04. - Recheck trigger: that section is renamed, moved or removed. **Neither the person's menu nor the + and `ui.log` doc comments in the build's `claude-code/index.d.ts` types. Pointer: for what to do + when the context fills up, see + . **Neither the + person's menu nor the router pointer ever reaches the model channel.** I23 of `/harness-config:audit-instructions` holds that a menu injected into model context manufactures the model's own initiative to stop, summarize, or hand off. The options line below is a deliberate, owner-decided exception to that @@ -395,9 +392,6 @@ semantics. - **Pointer**: for how a mod works and the mods API methods the module calls, see [mods overview: how a mod works](https://code.claude.com/docs/en/plugins/mods/overview#how-a-mod-works) and [mods reference: mods API methods](https://code.claude.com/docs/en/plugins/mods/reference#mods-api-methods). -- **As of**: 2026-10-11. -- **Recheck trigger**: that table renames or drops a method the module calls, or the events - reference changes `tool.call`, `prompt.submit` or `session.compact`. ## Evidence-degraded marker @@ -440,13 +434,10 @@ compaction happened; `evidence_degraded`, the marker, or the session itself can. the window it runs with, and the environment. This is a documentation pointer, not something read at run time: the docs' default-thresholds section, [Claude Code model config, "Default auto-compact thresholds"](https://code.claude.com/docs/en/model-config#default-auto-compact-thresholds). -**As of:** 2026-11-04. **Recheck trigger:** that section's thresholds change, or it is renamed or -removed. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` -implies a percentage default that no page publishes as a number. **Pointer:** when deciding what +`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` implies a percentage default that no page publishes as a number. **Pointer:** when deciding what that variable does, fetch [Claude Code environment variables: variables](https://code.claude.com/docs/en/env-vars#variables) -live. **As of:** 2026-10-11. **Recheck trigger:** the `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` row -changes, or a page starts publishing its default as a number. The empirical +live. The empirical check (2026-07-24, execution session): no auto-compact event exists in the producing machine's entire transcript history; the largest session ran to 308k total input tokens uncompacted on a 1M-class window. So the shipped bands keep the provenance stated under "Band provenance" above, @@ -461,9 +452,6 @@ next request, so it can trail `/context`. With auto-compact turned off, the heav - **Pointer**: for how the statusline percentage relates to `/context`, see ; for turning auto-compact off, see . -- **As of**: 2026-09-28 -- **Recheck trigger**: a release note or either section changes when the percentage is computed or - what turning auto-compact off does. ### The trigger is operator-tunable @@ -485,12 +473,11 @@ We read a configured window above the model's context window as the model's wind nothing. - **Pointer**: per row above. -- **As of**: 2026-10-10 for the settings `autoCompactWindow` row; 2026-10-31 for the subagent - frontmatter `autoCompactWindow` row; 2026-10-15 for the - `DISABLE_COMPACT` entry and the `DISABLE_AUTO_COMPACT` manual-`/compact` sentence; 2026-08-19 - for the other rows. -- **Recheck trigger**: a release note or one of those sections changes a surface's units, range, - precedence, or the set of surfaces itself. +- **As of**: 2026-10-15 for the `DISABLE_COMPACT` row, which quotes the page; none for the + other rows, which are pointers. +- **Recheck trigger**: for the `DISABLE_COMPACT` row, a release note or one of those sections + changes a surface's units, range, precedence, or the set of surfaces itself; none for the + other rows. **The module follows the effective window.** It never reads a configured window or resolves precedence itself: it reads the window the engine settled on, the `rawMaxTokens` of @@ -516,9 +503,6 @@ default window. and live; for the breakdown's fields, the per-build mod types (`SessionContextBreakdown`). -- **As of**: 2026-11-03 -- **Recheck trigger**: the `modelSettings` section changes its keys or precedence, `/autocompact` - changes where it saves, or a build's `SessionContextBreakdown` drops or renames `rawMaxTokens`. A dated observation, not the order of record (the pointers above hold that, and no decision here depends on it): on Claude Code 2.1.296, in a throwaway config directory, `/autocompact` saved the @@ -549,8 +533,7 @@ We read `used_percentage` as a share of the whole window the model offers, so after the auto-compact window is lowered, **we never read the percentage as a forecast of when compaction will run**. A consumer reading only the percentage will not see the trigger coming. Pointer: for the `CLAUDE_CODE_AUTO_COMPACT_WINDOW` row, see -. As of: 2026-08-19. Recheck trigger: that row -changes what the percentage is measured against. +. **Tune bands below the effective trigger, never above it.** Whatever the trigger resolves to on a machine, the `heavy` band should be reached first. A zone reading exists so the session arrives at a @@ -567,16 +550,15 @@ measure a different quantity. The shell resolver scales the same way from the pu `bands.auto_compact_window`; pulling `zones.json` under the trigger by hand would now scale twice, in the module and in the shell resolver. Pointer: for what a hook can do before an automatic compaction, see -. As of: 2026-11-03. Recheck trigger: that section -changes what a hook on the `auto` trigger can do. +. That diagnostic reading is adopted; the prescription that usually travels with it is not. **Leave auto-compact enabled.** Disabling it is a defensible operator choice on an attended machine, but it is not this plugin's guidance: unattended cloud and autonomous sessions have no human at the boundary, and for them a degraded continuation beats a hard stall at the window. The shipped ladder is instrumentation, not prohibition: observable zones and advisory injection, with auto-compact -remaining the last-resort safety net beneath both (as-of 2026-08-17; recheck when Claude Code removes the auto-compact setting or changes -what it does at the window). +remaining the last-resort safety net beneath both (recheck when Claude Code removes the +auto-compact setting or changes what it does at the window). **On folklore numbers.** The auto-compact window figure in the vendored Boris playbook, §64, is a widely-cited practitioner anchor. We record it as a **named anchor, never an adopted number**: its @@ -587,8 +569,6 @@ compaction-timing choice on its own terms. - **Pointer**: for the practitioner figure, see `/playbooks:boris` §64 ("Lower Your Auto-Compact Threshold"); for the current models' context windows, see [Latest models comparison](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). -- **As of**: 2026-10-01 -- **Recheck trigger**: the session models' context window changes, or §64's figure changes. ## Prompt cache @@ -603,9 +583,9 @@ out subagent and workflow requests, and a status line does not run in cloud or ` (see `reference/cloud-headless-capture.md`). Pointer: for the object, its fields and the `expires_at` re-run, see and ; for what a mod receives, see -. As of: 2026-10-10. Recheck trigger: either statusline -section renames a field the script reads, or the mods reference adds prompt-cache state to -`$.session.usage()`, at which point the band row can carry this line instead. +. Recheck trigger: the mods reference adds +prompt-cache state to `$.session.usage()`, at which point the band row can carry this line +instead. ## Zones (machine-scope tuning, optional) @@ -692,8 +672,7 @@ bash "/scripts/context-zone.sh" # prints one zone wo A skill learns its session id via the **`${CLAUDE_SESSION_ID}` substitution** in skill markdown content. The skill body interpolates it into the snapshot path directly. Pointer: -. As of: 2026-08-10. -Recheck trigger: that table renames or drops `${CLAUDE_SESSION_ID}`. +. **Fallback:** when the substitution is unavailable (older Claude Code, non-skill context, or the literal string `${CLAUDE_SESSION_ID}` survives unexpanded), the consumer must not guess a session @@ -731,9 +710,6 @@ not run: - **Pointer** (WSL sessions): the first bullet's "plugins are not available" rests on [Claude Code Desktop in WSL: What works in a WSL session](https://code.claude.com/docs/en/desktop-wsl#what-works-in-a-wsl-session), which lists connectors and plugins among the features not yet available there. -- **As of**: 2026-10-18. -- **Recheck trigger**: that section drops plugins from its unavailable list, or the mods overview's - WSL row stops saying plugins are unavailable. This is not a degraded install and not a missing dependency. Before the module, the only writer was a statusline tee, and `reference/cloud-headless-capture.md` records the channel inventory made @@ -785,8 +761,7 @@ writer side: whether the module runs in the session. A session with the module l `~/.claude/context-guard/` is a documented cross-plugin artifact location: sibling-plugin sessions read it by the documented path, the same for every consumer whatever plugin it belongs to. Pointer: for where `${CLAUDE_PLUGIN_DATA}` resolves, see - . As of: - 2026-11-03. Recheck trigger: that table changes what `${CLAUDE_PLUGIN_DATA}` resolves to. + . - **No shipped Monitor config.** Consumers that want write-triggered re-evaluation arm their own session Monitor on their snapshot path. The plugin ships no `experimental.monitors` entry. Monitors is an experimental Claude Code component, and this plugin takes no dependency on one diff --git a/plugins/context-guard/scripts/check-mod-load.sh b/plugins/context-guard/scripts/check-mod-load.sh index ccf6e0363a3..b52449f6d14 100755 --- a/plugins/context-guard/scripts/check-mod-load.sh +++ b/plugins/context-guard/scripts/check-mod-load.sh @@ -7,11 +7,9 @@ # The session row is INFO because only the agent sees its own tool list; a child # process never sees this session's flags or settings overlay. # What turns mods off, and the floor's source: -# https://code.claude.com/docs/en/plugins/mods/overview#turn-mods-on-or-off (as -# of 2026-10-11; recheck when that section changes the version or adds a way). +# https://code.claude.com/docs/en/plugins/mods/overview#turn-mods-on-or-off # Reading `claude plugin test`: # https://code.claude.com/docs/en/plugins/mods/troubleshoot#check-whether-mods-can-load -# (as of 2026-10-03; recheck when that table changes a message). set -uo pipefail if [[ $# -gt 0 ]]; then diff --git a/plugins/context-guard/skills/setup/SKILL.md b/plugins/context-guard/skills/setup/SKILL.md index 39ba0fb6b99..1b2b57ebf55 100644 --- a/plugins/context-guard/skills/setup/SKILL.md +++ b/plugins/context-guard/skills/setup/SKILL.md @@ -49,16 +49,12 @@ paths this skill names, with the `Read` tool; never Glob or Grep the plugin dire not put `node` on `PATH` for them (pointer below). Without `node` on `PATH` the marker does not launch and no snapshot is written, so file readers read `unknown`; report that the marker cannot launch (how Claude Code treats a hook that cannot start: - [Hooks, "Exit code output"](https://code.claude.com/docs/en/hooks#exit-code-output), as of - 2026-11-10; recheck when that section stops treating a hook that cannot start as a non-blocking - error), since nothing else says so. The module's zone lines, band row and status tool do not + [Hooks, "Exit code output"](https://code.claude.com/docs/en/hooks#exit-code-output)), since + nothing else says so. The module's zone lines, band row and status tool do not need `node`. Remediation: install Node.js () and restart Claude Code. - **Pointer**: [Set up, "Install with npm"](https://code.claude.com/docs/en/setup#install-with-npm), for whether the installed `claude` binary uses Node. - - **As of**: 2026-11-10. - - **Recheck trigger**: that section, or a release note, says the binary bundles Node or runs - hooks with it. 3. **Module state.** The module loads only where mods can. - **This session**: the module registers `mcp__context-guard__status` when the session starts. Look for that name in your own tool list, deferred tool names included. Present → PASS, the @@ -213,8 +209,7 @@ The `defaults` argument changes only how a present file is treated: Places the optional prompt-cache status-line segment at a fixed path this plugin owns, so the operator's status line never depends on where the installed plugin's files live. Pointer: for where those files live, see -. As of: -2026-10-11. Recheck trigger: that section names a stable install path a status line could use. +. 1. **Copy** `${CLAUDE_PLUGIN_ROOT}/scripts/cache-line.mjs` to `~/.claude/context-guard/cache-line.mjs`, creating the directory if needed. When the target is @@ -225,9 +220,7 @@ where those files live, see edit. When no file sets it, the target is the user `settings.json`. Pointer: for the precedence order and the scopes a status line can live in, see and - . As of: - 2026-10-11. Recheck trigger: either section changes the scope order or where a status line may - be set. + . 3. **Print the statusLine edit; never write it, and never compose it by hand.** Pipe that file (`{}` when it is absent) into `node "${CLAUDE_PLUGIN_ROOT}/scripts/cache-line.mjs" --wire` and print its output as the paste-ready `statusLine` object for that same file. With an existing @@ -246,9 +239,8 @@ where those files live, see Once the plugin is uninstalled the module stops and nothing writes new snapshots (what an uninstall removes: -[Plugins CLI reference, "What an uninstall deletes and keeps"](https://code.claude.com/docs/en/plugins/cli-reference#what-an-uninstall-deletes-and-keeps), -as of 2026-11-10; recheck when that section stops removing the plugin's installed files). The -operator's directory `~/.claude/context-guard/` (`zones.json`, the snapshots, the +[Plugins CLI reference, "What an uninstall deletes and keeps"](https://code.claude.com/docs/en/plugins/cli-reference#what-an-uninstall-deletes-and-keeps)). +The operator's directory `~/.claude/context-guard/` (`zones.json`, the snapshots, the compaction markers and, after `apply cache-line`, `cache-line.mjs`) stays. Removing it is safe once the operator's `statusLine` no longer runs `cache-line.mjs`: restore the command `--after` wrapped, or drop the bare segment, first. Readers then read `unknown` and take their conservative path. diff --git a/plugins/context7/lib/prerequisites.mjs b/plugins/context7/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/context7/lib/prerequisites.mjs +++ b/plugins/context7/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/corrections/lib/prerequisites.mjs b/plugins/corrections/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/corrections/lib/prerequisites.mjs +++ b/plugins/corrections/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/corrections/scripts/lib/plugin-options.mjs b/plugins/corrections/scripts/lib/plugin-options.mjs index 2014415ab7d..a2afe2e5312 100644 --- a/plugins/corrections/scripts/lib/plugin-options.mjs +++ b/plugins/corrections/scripts/lib/plugin-options.mjs @@ -13,8 +13,7 @@ // -> {: {value, scope: "user" | "managed", file}} for each key a source sets // // Sources, highest precedence first (managed settings page, "How Claude Code combines managed -// sources" and "managed-settings.d", https://code.claude.com/docs/en/managed-settings, read -// 2026-10-11; recheck when that section or the settings-reference pluginConfigs scope changes): +// sources" and "managed-settings.d", https://code.claude.com/docs/en/managed-settings): // 1. managed-settings.json then every non-hidden *.json in managed-settings.d/ in alphabetical // order, a later file replacing an earlier one's value; the system directory is a fixed // literal per platform, chosen by process.platform. diff --git a/plugins/coupling/lib/prerequisites.mjs b/plugins/coupling/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/coupling/lib/prerequisites.mjs +++ b/plugins/coupling/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/debugging/lib/prerequisites.mjs b/plugins/debugging/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/debugging/lib/prerequisites.mjs +++ b/plugins/debugging/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/debugging/lib/state-key.sh b/plugins/debugging/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/debugging/lib/state-key.sh +++ b/plugins/debugging/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/debugging/lib/view-runtime.js b/plugins/debugging/lib/view-runtime.js index 09f30dd6dcb..72a9e608ec7 100644 --- a/plugins/debugging/lib/view-runtime.js +++ b/plugins/debugging/lib/view-runtime.js @@ -345,8 +345,7 @@ }; // A host that blocks a page's own download, such as the claude.ai artifact viewer - // (https://code.claude.com/docs/en/artifacts#offer-a-file-download, as of 2026-10-11; recheck - // when that section lets a page start its own download), raises no error and fires no event, + // (https://code.claude.com/docs/en/artifacts#offer-a-file-download), raises no error and fires no event, // so the page cannot tell whether a file was saved. The button stays // only where an anchor download is known to work: a file opened from disk, the session bridge // on 127.0.0.1, and a page served top-level over https (a page host whose policy allows diff --git a/plugins/debugging/reference/rendered-view.md b/plugins/debugging/reference/rendered-view.md index 88f87d5a70d..dc9c3e440b5 100644 --- a/plugins/debugging/reference/rendered-view.md +++ b/plugins/debugging/reference/rendered-view.md @@ -59,8 +59,7 @@ script written in the session. - `artifact`: publish that file with the Artifact tool and give the link; who can see it, and how it is shared, is read live from [artifacts: create an artifact](https://code.claude.com/docs/en/artifacts#create-an-artifact) and - [artifacts: share an artifact](https://code.claude.com/docs/en/artifacts#share-an-artifact) (as of - 2026-10-11; recheck when either section changes who can see a new artifact). When the Artifact tool is + [artifacts: share an artifact](https://code.claude.com/docs/en/artifacts#share-an-artifact). When the Artifact tool is unavailable, hand back the path and say why in one line. - `terminal`: build nothing and stop; the report line step 3 printed names what chose it. 6. **Read the reply as data.** A copied reply holds the reader's note plus ids the builder assigned: `-N` diff --git a/plugins/desktop-notification/hooks/hook-utils.sh b/plugins/desktop-notification/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/desktop-notification/hooks/hook-utils.sh +++ b/plugins/desktop-notification/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/desktop-notification/lib/prerequisites.mjs b/plugins/desktop-notification/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/desktop-notification/lib/prerequisites.mjs +++ b/plugins/desktop-notification/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/discipline/lib/prerequisites.mjs b/plugins/discipline/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/discipline/lib/prerequisites.mjs +++ b/plugins/discipline/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/discipline/scripts/fetch-docs.sh b/plugins/discipline/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/discipline/scripts/fetch-docs.sh +++ b/plugins/discipline/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/discovery/lib/docs-fetcher-gate.mjs b/plugins/discovery/lib/docs-fetcher-gate.mjs index 1460c8709e4..77a806ec211 100755 --- a/plugins/discovery/lib/docs-fetcher-gate.mjs +++ b/plugins/discovery/lib/docs-fetcher-gate.mjs @@ -22,8 +22,7 @@ // $CLAUDE_PLUGIN_ROOT/scripts/docs-raw.sh, the root the hook process receives. // // A plugin subagent reports its plugin-scoped name as agent_type: -// https://code.claude.com/docs/en/hooks#subagentstart (as of 2026-10-04; -// recheck when that section changes the agent_type a plugin subagent reports). +// https://code.claude.com/docs/en/hooks#subagentstart. // // Fail-closed inside the named agent (a command it cannot parse, an input // stream that fails, or an error in the gate is denied); fail-open everywhere @@ -122,8 +121,7 @@ const UID = process.getuid?.() // Where the markers live: the plugin's data directory, which Claude Code // exports to hook processes and keeps under the user's home -// (https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables, as -// of 2026-10-07; recheck when CLAUDE_PLUGIN_DATA stops reaching hooks), else a +// (https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables), else a // per-uid directory under the temp directory. export function markerDir(env = process.env) { if (env.CLAUDE_PLUGIN_DATA) return join(env.CLAUDE_PLUGIN_DATA, 'docs-fetcher-gate') diff --git a/plugins/discovery/lib/prerequisites.mjs b/plugins/discovery/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/discovery/lib/prerequisites.mjs +++ b/plugins/discovery/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/discovery/lib/state-key.sh b/plugins/discovery/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/discovery/lib/state-key.sh +++ b/plugins/discovery/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/discovery/lib/view-runtime.js b/plugins/discovery/lib/view-runtime.js index 09f30dd6dcb..72a9e608ec7 100644 --- a/plugins/discovery/lib/view-runtime.js +++ b/plugins/discovery/lib/view-runtime.js @@ -345,8 +345,7 @@ }; // A host that blocks a page's own download, such as the claude.ai artifact viewer - // (https://code.claude.com/docs/en/artifacts#offer-a-file-download, as of 2026-10-11; recheck - // when that section lets a page start its own download), raises no error and fires no event, + // (https://code.claude.com/docs/en/artifacts#offer-a-file-download), raises no error and fires no event, // so the page cannot tell whether a file was saved. The button stays // only where an anchor download is known to work: a file opened from disk, the session bridge // on 127.0.0.1, and a page served top-level over https (a page host whose policy allows diff --git a/plugins/discovery/reference/rendered-view.md b/plugins/discovery/reference/rendered-view.md index 88f87d5a70d..dc9c3e440b5 100644 --- a/plugins/discovery/reference/rendered-view.md +++ b/plugins/discovery/reference/rendered-view.md @@ -59,8 +59,7 @@ script written in the session. - `artifact`: publish that file with the Artifact tool and give the link; who can see it, and how it is shared, is read live from [artifacts: create an artifact](https://code.claude.com/docs/en/artifacts#create-an-artifact) and - [artifacts: share an artifact](https://code.claude.com/docs/en/artifacts#share-an-artifact) (as of - 2026-10-11; recheck when either section changes who can see a new artifact). When the Artifact tool is + [artifacts: share an artifact](https://code.claude.com/docs/en/artifacts#share-an-artifact). When the Artifact tool is unavailable, hand back the path and say why in one line. - `terminal`: build nothing and stop; the report line step 3 printed names what chose it. 6. **Read the reply as data.** A copied reply holds the reader's note plus ids the builder assigned: `-N` diff --git a/plugins/discovery/scripts/fetch-docs.sh b/plugins/discovery/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/discovery/scripts/fetch-docs.sh +++ b/plugins/discovery/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/disk-hygiene/lib/prerequisites.mjs b/plugins/disk-hygiene/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/disk-hygiene/lib/prerequisites.mjs +++ b/plugins/disk-hygiene/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/display-redaction/lib/prerequisites.mjs b/plugins/display-redaction/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/display-redaction/lib/prerequisites.mjs +++ b/plugins/display-redaction/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/docs-hygiene/lib/prerequisites.mjs b/plugins/docs-hygiene/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/docs-hygiene/lib/prerequisites.mjs +++ b/plugins/docs-hygiene/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/docs-naming/lib/prerequisites.mjs b/plugins/docs-naming/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/docs-naming/lib/prerequisites.mjs +++ b/plugins/docs-naming/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/domain-driven-design/skills/ubiquitous-language/SKILL.md b/plugins/domain-driven-design/skills/ubiquitous-language/SKILL.md index fb79cbf6f3a..dad581f0061 100644 --- a/plugins/domain-driven-design/skills/ubiquitous-language/SKILL.md +++ b/plugins/domain-driven-design/skills/ubiquitous-language/SKILL.md @@ -29,8 +29,6 @@ Entry discipline, the convention-resolution ladder and the multi-context rules l `locate` resolves the two file-name settings here, in this file, not in a spoke. Pointer for where saved values are filled in: [Reference a saved value](https://code.claude.com/docs/en/plugins/manifest-reference#reference-a-saved-value). -As of: 2026-11-10. Recheck trigger: that section changes which content `${user_config.KEY}` is -substituted into. 1. Write the userConfig values to `${CLAUDE_PLUGIN_DATA}/ubiquitous-language-user-config-${CLAUDE_SESSION_ID}.json` with the Write diff --git a/plugins/domain-driven-design/skills/ubiquitous-language/actions/curate.md b/plugins/domain-driven-design/skills/ubiquitous-language/actions/curate.md index f7ce6456920..e791e301478 100644 --- a/plugins/domain-driven-design/skills/ubiquitous-language/actions/curate.md +++ b/plugins/domain-driven-design/skills/ubiquitous-language/actions/curate.md @@ -77,8 +77,6 @@ and line, in these groups: each is a decision. Either migrate in expand, migrate and contract phases, or keep the stored name behind an explicit mapping, and record the choice with `/architecture:record-decision`. - **Pointer**: [Parallel Change](https://martinfowler.com/bliki/ParallelChange.html) - - **As of**: 2026-11-10 - - **Recheck trigger**: the page moves. ## 6. Report diff --git a/plugins/dometrain/lib/prerequisites.mjs b/plugins/dometrain/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/dometrain/lib/prerequisites.mjs +++ b/plugins/dometrain/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/education/lib/prerequisites.mjs b/plugins/education/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/education/lib/prerequisites.mjs +++ b/plugins/education/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/education/lib/state-key.sh b/plugins/education/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/education/lib/state-key.sh +++ b/plugins/education/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/education/lib/view-runtime.js b/plugins/education/lib/view-runtime.js index 09f30dd6dcb..72a9e608ec7 100644 --- a/plugins/education/lib/view-runtime.js +++ b/plugins/education/lib/view-runtime.js @@ -345,8 +345,7 @@ }; // A host that blocks a page's own download, such as the claude.ai artifact viewer - // (https://code.claude.com/docs/en/artifacts#offer-a-file-download, as of 2026-10-11; recheck - // when that section lets a page start its own download), raises no error and fires no event, + // (https://code.claude.com/docs/en/artifacts#offer-a-file-download), raises no error and fires no event, // so the page cannot tell whether a file was saved. The button stays // only where an anchor download is known to work: a file opened from disk, the session bridge // on 127.0.0.1, and a page served top-level over https (a page host whose policy allows diff --git a/plugins/eol-normalizer/hooks/hook-utils.sh b/plugins/eol-normalizer/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/eol-normalizer/hooks/hook-utils.sh +++ b/plugins/eol-normalizer/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/eol-normalizer/lib/prerequisites.mjs b/plugins/eol-normalizer/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/eol-normalizer/lib/prerequisites.mjs +++ b/plugins/eol-normalizer/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/evals/lib/prerequisites.mjs b/plugins/evals/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/evals/lib/prerequisites.mjs +++ b/plugins/evals/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/explainer-video/hooks/hook-utils.sh b/plugins/explainer-video/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/explainer-video/hooks/hook-utils.sh +++ b/plugins/explainer-video/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/explainer-video/lib/prerequisites.mjs b/plugins/explainer-video/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/explainer-video/lib/prerequisites.mjs +++ b/plugins/explainer-video/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/firecrawl/lib/prerequisites.mjs b/plugins/firecrawl/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/firecrawl/lib/prerequisites.mjs +++ b/plugins/firecrawl/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/gaming/lib/prerequisites.mjs b/plugins/gaming/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/gaming/lib/prerequisites.mjs +++ b/plugins/gaming/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/go-format/hooks/hook-utils.sh b/plugins/go-format/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/go-format/hooks/hook-utils.sh +++ b/plugins/go-format/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/go-format/lib/prerequisites.mjs b/plugins/go-format/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/go-format/lib/prerequisites.mjs +++ b/plugins/go-format/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/guardrails/hooks/hook-utils.sh b/plugins/guardrails/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/guardrails/hooks/hook-utils.sh +++ b/plugins/guardrails/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/guardrails/lib/prerequisites.mjs b/plugins/guardrails/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/guardrails/lib/prerequisites.mjs +++ b/plugins/guardrails/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/harness-config/lib/managed-scope.sh b/plugins/harness-config/lib/managed-scope.sh index 4d82a201ba8..955bbfaa70c 100644 --- a/plugins/harness-config/lib/managed-scope.sh +++ b/plugins/harness-config/lib/managed-scope.sh @@ -12,9 +12,8 @@ # surfaces (files, a drop-in directory, an OS policy store), listed at # https://code.claude.com/docs/en/managed-settings#where-each-mechanism-stores-the-policy # with the drop-in directory at -# https://code.claude.com/docs/en/managed-settings#split-a-file-based-policy-across-teams -# (as of 2026-10-11; recheck when either section gains, drops or moves a -# surface). Three components in this marketplace need that enumeration, and a +# https://code.claude.com/docs/en/managed-settings#split-a-file-based-policy-across-teams. +# Three components in this marketplace need that enumeration, and a # third hand-written copy would drift the moment upstream adds or moves a # surface, as it already had: the copies disagreed about whether the drop-in # directory existed at all. The paths are documented, not discoverable: a @@ -45,9 +44,7 @@ # a reader that computes an effective merge follows the per-key rules at # https://code.claude.com/docs/en/managed-settings#compose-every-managed-source # and https://code.claude.com/docs/en/settings-reference#managedsourcesbehavior, -# and drop-in files combine by the rules in the split-a-file section above -# (as of 2026-10-11; recheck when any of those sections gains or drops a key -# kind or a combination rule). +# and drop-in files combine by the rules in the split-a-file section above. # mscope::base_file [override] — absolute path to the managed-settings.json this # OS reads. A non-empty is returned verbatim, so a caller's own test diff --git a/plugins/harness-config/lib/prerequisites.mjs b/plugins/harness-config/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/harness-config/lib/prerequisites.mjs +++ b/plugins/harness-config/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/harness-config/lib/state-key.sh b/plugins/harness-config/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/harness-config/lib/state-key.sh +++ b/plugins/harness-config/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/harness-config/scripts/fetch-docs.sh b/plugins/harness-config/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/harness-config/scripts/fetch-docs.sh +++ b/plugins/harness-config/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/harness-memory/lib/managed-scope.sh b/plugins/harness-memory/lib/managed-scope.sh index 4d82a201ba8..955bbfaa70c 100644 --- a/plugins/harness-memory/lib/managed-scope.sh +++ b/plugins/harness-memory/lib/managed-scope.sh @@ -12,9 +12,8 @@ # surfaces (files, a drop-in directory, an OS policy store), listed at # https://code.claude.com/docs/en/managed-settings#where-each-mechanism-stores-the-policy # with the drop-in directory at -# https://code.claude.com/docs/en/managed-settings#split-a-file-based-policy-across-teams -# (as of 2026-10-11; recheck when either section gains, drops or moves a -# surface). Three components in this marketplace need that enumeration, and a +# https://code.claude.com/docs/en/managed-settings#split-a-file-based-policy-across-teams. +# Three components in this marketplace need that enumeration, and a # third hand-written copy would drift the moment upstream adds or moves a # surface, as it already had: the copies disagreed about whether the drop-in # directory existed at all. The paths are documented, not discoverable: a @@ -45,9 +44,7 @@ # a reader that computes an effective merge follows the per-key rules at # https://code.claude.com/docs/en/managed-settings#compose-every-managed-source # and https://code.claude.com/docs/en/settings-reference#managedsourcesbehavior, -# and drop-in files combine by the rules in the split-a-file section above -# (as of 2026-10-11; recheck when any of those sections gains or drops a key -# kind or a combination rule). +# and drop-in files combine by the rules in the split-a-file section above. # mscope::base_file [override] — absolute path to the managed-settings.json this # OS reads. A non-empty is returned verbatim, so a caller's own test diff --git a/plugins/harness-memory/lib/prerequisites.mjs b/plugins/harness-memory/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/harness-memory/lib/prerequisites.mjs +++ b/plugins/harness-memory/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/harness-memory/lib/state-key.sh b/plugins/harness-memory/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/harness-memory/lib/state-key.sh +++ b/plugins/harness-memory/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/harness-memory/scripts/fetch-docs.sh b/plugins/harness-memory/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/harness-memory/scripts/fetch-docs.sh +++ b/plugins/harness-memory/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/harness-ops/hooks/hook-utils.sh b/plugins/harness-ops/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/harness-ops/hooks/hook-utils.sh +++ b/plugins/harness-ops/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/harness-ops/lib/managed-scope.sh b/plugins/harness-ops/lib/managed-scope.sh index 4d82a201ba8..955bbfaa70c 100644 --- a/plugins/harness-ops/lib/managed-scope.sh +++ b/plugins/harness-ops/lib/managed-scope.sh @@ -12,9 +12,8 @@ # surfaces (files, a drop-in directory, an OS policy store), listed at # https://code.claude.com/docs/en/managed-settings#where-each-mechanism-stores-the-policy # with the drop-in directory at -# https://code.claude.com/docs/en/managed-settings#split-a-file-based-policy-across-teams -# (as of 2026-10-11; recheck when either section gains, drops or moves a -# surface). Three components in this marketplace need that enumeration, and a +# https://code.claude.com/docs/en/managed-settings#split-a-file-based-policy-across-teams. +# Three components in this marketplace need that enumeration, and a # third hand-written copy would drift the moment upstream adds or moves a # surface, as it already had: the copies disagreed about whether the drop-in # directory existed at all. The paths are documented, not discoverable: a @@ -45,9 +44,7 @@ # a reader that computes an effective merge follows the per-key rules at # https://code.claude.com/docs/en/managed-settings#compose-every-managed-source # and https://code.claude.com/docs/en/settings-reference#managedsourcesbehavior, -# and drop-in files combine by the rules in the split-a-file section above -# (as of 2026-10-11; recheck when any of those sections gains or drops a key -# kind or a combination rule). +# and drop-in files combine by the rules in the split-a-file section above. # mscope::base_file [override] — absolute path to the managed-settings.json this # OS reads. A non-empty is returned verbatim, so a caller's own test diff --git a/plugins/harness-ops/lib/plugin-options.mjs b/plugins/harness-ops/lib/plugin-options.mjs index 2014415ab7d..a2afe2e5312 100644 --- a/plugins/harness-ops/lib/plugin-options.mjs +++ b/plugins/harness-ops/lib/plugin-options.mjs @@ -13,8 +13,7 @@ // -> {: {value, scope: "user" | "managed", file}} for each key a source sets // // Sources, highest precedence first (managed settings page, "How Claude Code combines managed -// sources" and "managed-settings.d", https://code.claude.com/docs/en/managed-settings, read -// 2026-10-11; recheck when that section or the settings-reference pluginConfigs scope changes): +// sources" and "managed-settings.d", https://code.claude.com/docs/en/managed-settings): // 1. managed-settings.json then every non-hidden *.json in managed-settings.d/ in alphabetical // order, a later file replacing an earlier one's value; the system directory is a fixed // literal per platform, chosen by process.platform. diff --git a/plugins/harness-ops/lib/prerequisites.mjs b/plugins/harness-ops/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/harness-ops/lib/prerequisites.mjs +++ b/plugins/harness-ops/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/harness-ops/lib/state-key.sh b/plugins/harness-ops/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/harness-ops/lib/state-key.sh +++ b/plugins/harness-ops/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/harness-ops/scripts/fetch-docs.sh b/plugins/harness-ops/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/harness-ops/scripts/fetch-docs.sh +++ b/plugins/harness-ops/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/improvement/lib/state-key.sh b/plugins/improvement/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/improvement/lib/state-key.sh +++ b/plugins/improvement/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/instruction-placement/lib/prerequisites.mjs b/plugins/instruction-placement/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/instruction-placement/lib/prerequisites.mjs +++ b/plugins/instruction-placement/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/instruction-placement/scripts/fetch-docs.sh b/plugins/instruction-placement/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/instruction-placement/scripts/fetch-docs.sh +++ b/plugins/instruction-placement/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/kindle-dedrm/lib/prerequisites.mjs b/plugins/kindle-dedrm/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/kindle-dedrm/lib/prerequisites.mjs +++ b/plugins/kindle-dedrm/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/knowledge/lib/prerequisites.mjs b/plugins/knowledge/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/knowledge/lib/prerequisites.mjs +++ b/plugins/knowledge/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/knowledge/scripts/fetch-docs.sh b/plugins/knowledge/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/knowledge/scripts/fetch-docs.sh +++ b/plugins/knowledge/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/machine-health/lib/prerequisites.mjs b/plugins/machine-health/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/machine-health/lib/prerequisites.mjs +++ b/plugins/machine-health/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/machine-health/lib/view-runtime.js b/plugins/machine-health/lib/view-runtime.js index 09f30dd6dcb..72a9e608ec7 100644 --- a/plugins/machine-health/lib/view-runtime.js +++ b/plugins/machine-health/lib/view-runtime.js @@ -345,8 +345,7 @@ }; // A host that blocks a page's own download, such as the claude.ai artifact viewer - // (https://code.claude.com/docs/en/artifacts#offer-a-file-download, as of 2026-10-11; recheck - // when that section lets a page start its own download), raises no error and fires no event, + // (https://code.claude.com/docs/en/artifacts#offer-a-file-download), raises no error and fires no event, // so the page cannot tell whether a file was saved. The button stays // only where an anchor download is known to work: a file opened from disk, the session bridge // on 127.0.0.1, and a page served top-level over https (a page host whose policy allows diff --git a/plugins/markdown-format/hooks/hook-utils.sh b/plugins/markdown-format/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/markdown-format/hooks/hook-utils.sh +++ b/plugins/markdown-format/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/markdown-format/lib/prerequisites.mjs b/plugins/markdown-format/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/markdown-format/lib/prerequisites.mjs +++ b/plugins/markdown-format/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/mcp-tools/lib/prerequisites.mjs b/plugins/mcp-tools/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/mcp-tools/lib/prerequisites.mjs +++ b/plugins/mcp-tools/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/miro/lib/prerequisites.mjs b/plugins/miro/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/miro/lib/prerequisites.mjs +++ b/plugins/miro/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/multi-agent/lib/docs-fetcher-gate.mjs b/plugins/multi-agent/lib/docs-fetcher-gate.mjs index 1460c8709e4..77a806ec211 100755 --- a/plugins/multi-agent/lib/docs-fetcher-gate.mjs +++ b/plugins/multi-agent/lib/docs-fetcher-gate.mjs @@ -22,8 +22,7 @@ // $CLAUDE_PLUGIN_ROOT/scripts/docs-raw.sh, the root the hook process receives. // // A plugin subagent reports its plugin-scoped name as agent_type: -// https://code.claude.com/docs/en/hooks#subagentstart (as of 2026-10-04; -// recheck when that section changes the agent_type a plugin subagent reports). +// https://code.claude.com/docs/en/hooks#subagentstart. // // Fail-closed inside the named agent (a command it cannot parse, an input // stream that fails, or an error in the gate is denied); fail-open everywhere @@ -122,8 +121,7 @@ const UID = process.getuid?.() // Where the markers live: the plugin's data directory, which Claude Code // exports to hook processes and keeps under the user's home -// (https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables, as -// of 2026-10-07; recheck when CLAUDE_PLUGIN_DATA stops reaching hooks), else a +// (https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables), else a // per-uid directory under the temp directory. export function markerDir(env = process.env) { if (env.CLAUDE_PLUGIN_DATA) return join(env.CLAUDE_PLUGIN_DATA, 'docs-fetcher-gate') diff --git a/plugins/multi-agent/lib/prerequisites.mjs b/plugins/multi-agent/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/multi-agent/lib/prerequisites.mjs +++ b/plugins/multi-agent/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/multi-agent/scripts/fetch-docs.sh b/plugins/multi-agent/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/multi-agent/scripts/fetch-docs.sh +++ b/plugins/multi-agent/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/overengineering/lib/state-key.sh b/plugins/overengineering/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/overengineering/lib/state-key.sh +++ b/plugins/overengineering/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/performance/lib/prerequisites.mjs b/plugins/performance/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/performance/lib/prerequisites.mjs +++ b/plugins/performance/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/performance/lib/state-key.sh b/plugins/performance/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/performance/lib/state-key.sh +++ b/plugins/performance/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/performance/scripts/fetch-docs.sh b/plugins/performance/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/performance/scripts/fetch-docs.sh +++ b/plugins/performance/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/pixel-art/lib/prerequisites.mjs b/plugins/pixel-art/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/pixel-art/lib/prerequisites.mjs +++ b/plugins/pixel-art/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/planning/lib/prerequisites.mjs b/plugins/planning/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/planning/lib/prerequisites.mjs +++ b/plugins/planning/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/planning/lib/state-key.sh b/plugins/planning/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/planning/lib/state-key.sh +++ b/plugins/planning/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/planning/lib/view-runtime.js b/plugins/planning/lib/view-runtime.js index 09f30dd6dcb..72a9e608ec7 100644 --- a/plugins/planning/lib/view-runtime.js +++ b/plugins/planning/lib/view-runtime.js @@ -345,8 +345,7 @@ }; // A host that blocks a page's own download, such as the claude.ai artifact viewer - // (https://code.claude.com/docs/en/artifacts#offer-a-file-download, as of 2026-10-11; recheck - // when that section lets a page start its own download), raises no error and fires no event, + // (https://code.claude.com/docs/en/artifacts#offer-a-file-download), raises no error and fires no event, // so the page cannot tell whether a file was saved. The button stays // only where an anchor download is known to work: a file opened from disk, the session bridge // on 127.0.0.1, and a page served top-level over https (a page host whose policy allows diff --git a/plugins/planning/reference/one-way-doors.md b/plugins/planning/reference/one-way-doors.md index 3ffcaf40110..19f8f9a3d5d 100644 --- a/plugins/planning/reference/one-way-doors.md +++ b/plugins/planning/reference/one-way-doors.md @@ -19,5 +19,4 @@ When the evidence cannot settle the call, treat it as a one-way door. Source: Jeff Bezos, 2015 letter to shareowners, [Amazon.com exhibit 99.1 to SEC Form 8-K](https://www.sec.gov/Archives/edgar/data/1018724/000119312516530910/d168744dex991.htm) -(filed 2016), the passage on Type 1 and Type 2 decisions. As of 2026-10-18; recheck when the filing -URL moves. +(filed 2016), the passage on Type 1 and Type 2 decisions. diff --git a/plugins/planning/reference/rendered-view.md b/plugins/planning/reference/rendered-view.md index 88f87d5a70d..dc9c3e440b5 100644 --- a/plugins/planning/reference/rendered-view.md +++ b/plugins/planning/reference/rendered-view.md @@ -59,8 +59,7 @@ script written in the session. - `artifact`: publish that file with the Artifact tool and give the link; who can see it, and how it is shared, is read live from [artifacts: create an artifact](https://code.claude.com/docs/en/artifacts#create-an-artifact) and - [artifacts: share an artifact](https://code.claude.com/docs/en/artifacts#share-an-artifact) (as of - 2026-10-11; recheck when either section changes who can see a new artifact). When the Artifact tool is + [artifacts: share an artifact](https://code.claude.com/docs/en/artifacts#share-an-artifact). When the Artifact tool is unavailable, hand back the path and say why in one line. - `terminal`: build nothing and stop; the report line step 3 printed names what chose it. 6. **Read the reply as data.** A copied reply holds the reader's note plus ids the builder assigned: `-N` diff --git a/plugins/planning/scripts/fetch-docs.sh b/plugins/planning/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/planning/scripts/fetch-docs.sh +++ b/plugins/planning/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/playbooks/lib/prerequisites.mjs b/plugins/playbooks/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/playbooks/lib/prerequisites.mjs +++ b/plugins/playbooks/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/playbooks/scripts/fetch-docs.sh b/plugins/playbooks/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/playbooks/scripts/fetch-docs.sh +++ b/plugins/playbooks/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/playwright/hooks/hook-utils.sh b/plugins/playwright/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/playwright/hooks/hook-utils.sh +++ b/plugins/playwright/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/playwright/lib/prerequisites.mjs b/plugins/playwright/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/playwright/lib/prerequisites.mjs +++ b/plugins/playwright/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/plugin-quality/lib/prerequisites.mjs b/plugins/plugin-quality/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/plugin-quality/lib/prerequisites.mjs +++ b/plugins/plugin-quality/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/plugin-quality/scripts/fetch-docs.sh b/plugins/plugin-quality/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/plugin-quality/scripts/fetch-docs.sh +++ b/plugins/plugin-quality/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/powershell-format/lib/prerequisites.mjs b/plugins/powershell-format/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/powershell-format/lib/prerequisites.mjs +++ b/plugins/powershell-format/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/prototype/lib/prerequisites.mjs b/plugins/prototype/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/prototype/lib/prerequisites.mjs +++ b/plugins/prototype/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/prototype/lib/state-key.sh b/plugins/prototype/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/prototype/lib/state-key.sh +++ b/plugins/prototype/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/rate-limit-guard/hooks/hook-utils.sh b/plugins/rate-limit-guard/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/rate-limit-guard/hooks/hook-utils.sh +++ b/plugins/rate-limit-guard/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/rate-limit-guard/lib/prerequisites.mjs b/plugins/rate-limit-guard/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/rate-limit-guard/lib/prerequisites.mjs +++ b/plugins/rate-limit-guard/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/repo-fleet-hygiene/lib/prerequisites.mjs b/plugins/repo-fleet-hygiene/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/repo-fleet-hygiene/lib/prerequisites.mjs +++ b/plugins/repo-fleet-hygiene/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/repo-hygiene/lib/prerequisites.mjs b/plugins/repo-hygiene/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/repo-hygiene/lib/prerequisites.mjs +++ b/plugins/repo-hygiene/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/repo-hygiene/skills/clean/scripts/hook-utils.sh b/plugins/repo-hygiene/skills/clean/scripts/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/repo-hygiene/skills/clean/scripts/hook-utils.sh +++ b/plugins/repo-hygiene/skills/clean/scripts/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/retro-audio/lib/prerequisites.mjs b/plugins/retro-audio/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/retro-audio/lib/prerequisites.mjs +++ b/plugins/retro-audio/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/review/lib/prerequisites.mjs b/plugins/review/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/review/lib/prerequisites.mjs +++ b/plugins/review/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/review/lib/state-key.sh b/plugins/review/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/review/lib/state-key.sh +++ b/plugins/review/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/review/lib/view-runtime.js b/plugins/review/lib/view-runtime.js index 09f30dd6dcb..72a9e608ec7 100644 --- a/plugins/review/lib/view-runtime.js +++ b/plugins/review/lib/view-runtime.js @@ -345,8 +345,7 @@ }; // A host that blocks a page's own download, such as the claude.ai artifact viewer - // (https://code.claude.com/docs/en/artifacts#offer-a-file-download, as of 2026-10-11; recheck - // when that section lets a page start its own download), raises no error and fires no event, + // (https://code.claude.com/docs/en/artifacts#offer-a-file-download), raises no error and fires no event, // so the page cannot tell whether a file was saved. The button stays // only where an anchor download is known to work: a file opened from disk, the session bridge // on 127.0.0.1, and a page served top-level over https (a page host whose policy allows diff --git a/plugins/review/reference/one-way-doors.md b/plugins/review/reference/one-way-doors.md index 3ffcaf40110..19f8f9a3d5d 100644 --- a/plugins/review/reference/one-way-doors.md +++ b/plugins/review/reference/one-way-doors.md @@ -19,5 +19,4 @@ When the evidence cannot settle the call, treat it as a one-way door. Source: Jeff Bezos, 2015 letter to shareowners, [Amazon.com exhibit 99.1 to SEC Form 8-K](https://www.sec.gov/Archives/edgar/data/1018724/000119312516530910/d168744dex991.htm) -(filed 2016), the passage on Type 1 and Type 2 decisions. As of 2026-10-18; recheck when the filing -URL moves. +(filed 2016), the passage on Type 1 and Type 2 decisions. diff --git a/plugins/ruff-format/hooks/hook-utils.sh b/plugins/ruff-format/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/ruff-format/hooks/hook-utils.sh +++ b/plugins/ruff-format/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/ruff-format/lib/prerequisites.mjs b/plugins/ruff-format/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/ruff-format/lib/prerequisites.mjs +++ b/plugins/ruff-format/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/session-flow/lib/prerequisites.mjs b/plugins/session-flow/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/session-flow/lib/prerequisites.mjs +++ b/plugins/session-flow/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/session-flow/lib/state-key.sh b/plugins/session-flow/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/session-flow/lib/state-key.sh +++ b/plugins/session-flow/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/session-flow/scripts/fetch-docs.sh b/plugins/session-flow/scripts/fetch-docs.sh index 79b975530f9..90b80fe7065 100755 --- a/plugins/session-flow/scripts/fetch-docs.sh +++ b/plugins/session-flow/scripts/fetch-docs.sh @@ -54,7 +54,6 @@ # Python 3 the page is unread address-unchecked. OWASP's SSRF prevention cheat # sheet, case 2, prescribes this check over an allowlist when the destination # is open: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html -# (as of 2026-10-07; recheck when its case 2 guidance changes). # # The page file is the raw bytes as fetched, or the converter's output. The # manifest hash is taken over those bytes, so a caller that strips control diff --git a/plugins/skill-quality/lib/prerequisites.mjs b/plugins/skill-quality/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/skill-quality/lib/prerequisites.mjs +++ b/plugins/skill-quality/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/songwriting/lib/prerequisites.mjs b/plugins/songwriting/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/songwriting/lib/prerequisites.mjs +++ b/plugins/songwriting/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/source-control/hooks/hook-utils.sh b/plugins/source-control/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/source-control/hooks/hook-utils.sh +++ b/plugins/source-control/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/source-control/lib/prerequisites.mjs b/plugins/source-control/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/source-control/lib/prerequisites.mjs +++ b/plugins/source-control/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/source-control/lib/state-key.sh b/plugins/source-control/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/source-control/lib/state-key.sh +++ b/plugins/source-control/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/source-control/skills/babysit-loop/scripts/operator-options.mjs b/plugins/source-control/skills/babysit-loop/scripts/operator-options.mjs index 2014415ab7d..a2afe2e5312 100644 --- a/plugins/source-control/skills/babysit-loop/scripts/operator-options.mjs +++ b/plugins/source-control/skills/babysit-loop/scripts/operator-options.mjs @@ -13,8 +13,7 @@ // -> {: {value, scope: "user" | "managed", file}} for each key a source sets // // Sources, highest precedence first (managed settings page, "How Claude Code combines managed -// sources" and "managed-settings.d", https://code.claude.com/docs/en/managed-settings, read -// 2026-10-11; recheck when that section or the settings-reference pluginConfigs scope changes): +// sources" and "managed-settings.d", https://code.claude.com/docs/en/managed-settings): // 1. managed-settings.json then every non-hidden *.json in managed-settings.d/ in alphabetical // order, a later file replacing an earlier one's value; the system directory is a fixed // literal per platform, chosen by process.platform. diff --git a/plugins/speech/hooks/hook-utils.sh b/plugins/speech/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/speech/hooks/hook-utils.sh +++ b/plugins/speech/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/speech/lib/prerequisites.mjs b/plugins/speech/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/speech/lib/prerequisites.mjs +++ b/plugins/speech/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/sql-server/lib/prerequisites.mjs b/plugins/sql-server/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/sql-server/lib/prerequisites.mjs +++ b/plugins/sql-server/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/testing/hooks/hook-utils.sh b/plugins/testing/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/testing/hooks/hook-utils.sh +++ b/plugins/testing/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/testing/lib/prerequisites.mjs b/plugins/testing/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/testing/lib/prerequisites.mjs +++ b/plugins/testing/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/toolchain/hooks/plugin-options.mjs b/plugins/toolchain/hooks/plugin-options.mjs index 2014415ab7d..a2afe2e5312 100644 --- a/plugins/toolchain/hooks/plugin-options.mjs +++ b/plugins/toolchain/hooks/plugin-options.mjs @@ -13,8 +13,7 @@ // -> {: {value, scope: "user" | "managed", file}} for each key a source sets // // Sources, highest precedence first (managed settings page, "How Claude Code combines managed -// sources" and "managed-settings.d", https://code.claude.com/docs/en/managed-settings, read -// 2026-10-11; recheck when that section or the settings-reference pluginConfigs scope changes): +// sources" and "managed-settings.d", https://code.claude.com/docs/en/managed-settings): // 1. managed-settings.json then every non-hidden *.json in managed-settings.d/ in alphabetical // order, a later file replacing an earlier one's value; the system directory is a fixed // literal per platform, chosen by process.platform. diff --git a/plugins/toolchain/lib/prerequisites.mjs b/plugins/toolchain/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/toolchain/lib/prerequisites.mjs +++ b/plugins/toolchain/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/typos-format/hooks/hook-utils.sh b/plugins/typos-format/hooks/hook-utils.sh index d7568dcfab3..9e991968718 100755 --- a/plugins/typos-format/hooks/hook-utils.sh +++ b/plugins/typos-format/hooks/hook-utils.sh @@ -42,8 +42,7 @@ readonly _HOOK_UTILS_LOADED=1 # (https://code.claude.com/docs/en/settings-reference#disableallhooks) # * `claude plugin disable|enable ` # (https://code.claude.com/docs/en/plugins/cli-reference#plugin-disable) -# Each pointer says what the control covers (as of 2026-10-11; recheck when one -# of those sections is removed or stops covering hooks). +# Each pointer says what the control covers. # This helper stays scoped to the one thing it owns: the plugin's own # `_enabled` userConfig boolean, surfaced to hook processes as the native # `$CLAUDE_PLUGIN_OPTION_` mirror. @@ -109,8 +108,7 @@ hook::json_escape() { # user-channel message (systemMessage) as ONE document, so a run that has both # lint findings and a pending skip notice composes them here rather than # printing twice; how stdout is parsed as JSON is -# https://code.claude.com/docs/en/hooks#exit-code-0 (as of 2026-10-11; recheck -# when that section starts reading more than one JSON object from stdout). Either +# https://code.claude.com/docs/en/hooks#exit-code-0. Either # channel may be empty; emits nothing when both are. One entry point for both # channels, so a hook with only one of them passes "" for the other rather # than picking between two spellings of the same emit. @@ -189,9 +187,7 @@ hook::stdin_cut_short_notice() { } # systemMessage-only variant for a hook with nothing for the model. Notification -# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification -# (as of 2026-10-11; recheck when that section starts showing a Notification -# hook's systemMessage). +# hooks do not use it, per https://code.claude.com/docs/en/hooks#notification. hook::emit_system_message() { hook::emit_channels "" "" "$1" } @@ -421,11 +417,7 @@ hook::raw_file_path() { # https://code.claude.com/docs/en/hooks#exit-code-2 (Claude receives it as the # tool's error); on other events, # https://code.claude.com/docs/en/hooks#exit-code-2-behavior-per-event. Where -# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. As of -# 2026-10-11; recheck when the exit-code-2 section stops saying Claude receives -# a blocked PreToolUse hook's stderr, the exit-code-2-behavior-per-event table -# changes which events show exit-2 stderr to Claude, or the exit-code-0 section -# starts showing exit-0 stderr to Claude. The --no-path and stderr-deny notes +# exit-0 stderr goes: https://code.claude.com/docs/en/hooks#exit-code-0. The --no-path and stderr-deny notes # below rest on this record. hook::require() { command -v "$1" >/dev/null 2>&1 && return 0 @@ -2109,9 +2101,7 @@ hook::repo_relative_path_to() { # # The trade this makes: a producer trickling bytes indefinitely is never cut off # here. That is deliberate: the harness already caps a `command` hook at its -# timeout (https://code.claude.com/docs/en/hooks#common-fields, as of -# 2026-10-11; recheck when that section drops the default timeout for command -# hooks), and blocking a live +# timeout (https://code.claude.com/docs/en/hooks#common-fields), and blocking a live # producer is exactly the failure this function had. # # `read` reports which stop condition it hit — EOF returns 1, an exceeded -t diff --git a/plugins/typos-format/lib/prerequisites.mjs b/plugins/typos-format/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/typos-format/lib/prerequisites.mjs +++ b/plugins/typos-format/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/user-experience/lib/prerequisites.mjs b/plugins/user-experience/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/user-experience/lib/prerequisites.mjs +++ b/plugins/user-experience/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/user-interface/lib/prerequisites.mjs b/plugins/user-interface/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/user-interface/lib/prerequisites.mjs +++ b/plugins/user-interface/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/verification/lib/prerequisites.mjs b/plugins/verification/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/verification/lib/prerequisites.mjs +++ b/plugins/verification/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/visualization/lib/prerequisites.mjs b/plugins/visualization/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/visualization/lib/prerequisites.mjs +++ b/plugins/visualization/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/visualization/lib/state-key.sh b/plugins/visualization/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/visualization/lib/state-key.sh +++ b/plugins/visualization/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/wizard/lib/prerequisites.mjs b/plugins/wizard/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/wizard/lib/prerequisites.mjs +++ b/plugins/wizard/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/work-items/lib/prerequisites.mjs b/plugins/work-items/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/work-items/lib/prerequisites.mjs +++ b/plugins/work-items/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/plugins/work-items/lib/state-key.sh b/plugins/work-items/lib/state-key.sh index 3c7a0f8698b..5103f986404 100755 --- a/plugins/work-items/lib/state-key.sh +++ b/plugins/work-items/lib/state-key.sh @@ -4,9 +4,8 @@ # Per-project state key for anything a plugin writes under ${CLAUDE_PLUGIN_DATA}. # # WHY. ${CLAUDE_PLUGIN_DATA} is keyed to the plugin identifier and nothing else: -# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables -# (as of 2026-10-11; recheck when that section adds a project, checkout, -# worktree or session segment to the path). So a skill that writes a fixed filename there has one file per +# https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables. +# So a skill that writes a fixed filename there has one file per # MACHINE: every run from every repository overwrites the last, and a skill that # READS it back can serve one project's findings as another's. # diff --git a/plugins/work-items/lib/view-runtime.js b/plugins/work-items/lib/view-runtime.js index 09f30dd6dcb..72a9e608ec7 100644 --- a/plugins/work-items/lib/view-runtime.js +++ b/plugins/work-items/lib/view-runtime.js @@ -345,8 +345,7 @@ }; // A host that blocks a page's own download, such as the claude.ai artifact viewer - // (https://code.claude.com/docs/en/artifacts#offer-a-file-download, as of 2026-10-11; recheck - // when that section lets a page start its own download), raises no error and fires no event, + // (https://code.claude.com/docs/en/artifacts#offer-a-file-download), raises no error and fires no event, // so the page cannot tell whether a file was saved. The button stays // only where an anchor download is known to work: a file opened from disk, the session bridge // on 127.0.0.1, and a page served top-level over https (a page host whose policy allows diff --git a/plugins/x/lib/prerequisites.mjs b/plugins/x/lib/prerequisites.mjs index 9ab4e0c9efc..61344d2f737 100755 --- a/plugins/x/lib/prerequisites.mjs +++ b/plugins/x/lib/prerequisites.mjs @@ -359,9 +359,8 @@ function firstOnPath(names, ctx, rejectStoreAlias = false) { // The data directory comes from --data-dir, else the environment. A hook reads // CLAUDE_PLUGIN_DATA from its environment and a skill passes // --data-dir "${CLAUDE_PLUGIN_DATA}", per which processes receive the variable: -// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves -// (as of 2026-10-11; recheck when that section changes which processes get -// CLAUDE_PLUGIN_DATA in their environment). The rule is the plugins' own +// https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves. +// The rule is the plugins' own // launchers' (plugins/speech/scripts/pydeps.py data_dir): a literal "${...}" // value is unset, and the environment's value counts only when its last path // segment is the plugin's name or starts with "-", so another plugin's diff --git a/scripts/check-hooks-description.sh b/scripts/check-hooks-description.sh index b0df62c6afe..2d67b3e1c16 100755 --- a/scripts/check-hooks-description.sh +++ b/scripts/check-hooks-description.sh @@ -20,9 +20,8 @@ # # Pointer: for the plugin hooks.json `description` field, see # https://code.claude.com/docs/en/hooks#reference-scripts-by-path (the plugin -# scripts tab). As of: 2026-09-05. Recheck trigger: the docs rename, remove, or -# make the field required; either way this comment and the rule are re-derived -# from the page, not patched from memory. +# scripts tab). When the page renames, removes or requires the field, re-derive +# this comment and the rule from the page, not from memory. # # Exit 0 clean, 1 findings, 2 environment or usage; findings on stderr. That is # the whole family's contract, stated once in scripts/README.md, "The check-script diff --git a/scripts/run-hygiene-gate.sh b/scripts/run-hygiene-gate.sh index b5db6857623..69d81db3542 100755 --- a/scripts/run-hygiene-gate.sh +++ b/scripts/run-hygiene-gate.sh @@ -14,8 +14,7 @@ # $RUNNER_TEMP/hygiene. is the gate's name in the job's # CHECK_RESULTS feed, which is how the aggregator finds the file. # -# Custom shell syntax, as of 2026-10-11 (recheck when a gate's capture file goes -# missing on a run): https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#custom-shell +# Custom shell syntax: https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#custom-shell # # Capture is best effort. When the output file cannot be created the body # still runs, uncaptured, with a warning, and the aggregator reports the gate From c37050a4041f0febdfcc2084ded1bc5280512a4b Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Wed, 11 Nov 2026 21:53:09 -0500 Subject: [PATCH 2/3] docs: add no-release fragments for shared-copy plugins (batch 7a) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm --- .../actionlint/docs-drop-pointer-stamps-batch7a-f7579378.md | 5 +++++ .changes/adhd/docs-drop-pointer-stamps-batch7a-36c3b457.md | 5 +++++ .../ai-briefing/docs-drop-pointer-stamps-batch7a-d559f414.md | 5 +++++ .../ai-slop/docs-drop-pointer-stamps-batch7a-305c9d59.md | 5 +++++ .../animation/docs-drop-pointer-stamps-batch7a-93681f3c.md | 5 +++++ .../app-control/docs-drop-pointer-stamps-batch7a-82127e70.md | 5 +++++ .../attribution/docs-drop-pointer-stamps-batch7a-2c3e27c7.md | 5 +++++ .../autonomy/docs-drop-pointer-stamps-batch7a-38b235f8.md | 5 +++++ .../bash-format/docs-drop-pointer-stamps-batch7a-8d7f3e03.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-6279469e.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-5d692a11.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-3690704e.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-45f919e1.md | 5 +++++ .../context7/docs-drop-pointer-stamps-batch7a-86d3c5d8.md | 5 +++++ .../corrections/docs-drop-pointer-stamps-batch7a-9b61282e.md | 5 +++++ .../debugging/docs-drop-pointer-stamps-batch7a-521c2b73.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-2d9d26a4.md | 5 +++++ .../discipline/docs-drop-pointer-stamps-batch7a-7e6e58a8.md | 5 +++++ .../docs-naming/docs-drop-pointer-stamps-batch7a-99e537b1.md | 5 +++++ .../dometrain/docs-drop-pointer-stamps-batch7a-14530d9e.md | 5 +++++ .../education/docs-drop-pointer-stamps-batch7a-0a52b605.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-111d842b.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-f4598d6d.md | 5 +++++ .../firecrawl/docs-drop-pointer-stamps-batch7a-5e18360b.md | 5 +++++ .changes/gaming/docs-drop-pointer-stamps-batch7a-7a68c2a8.md | 5 +++++ .../go-format/docs-drop-pointer-stamps-batch7a-032b3641.md | 5 +++++ .../guardrails/docs-drop-pointer-stamps-batch7a-0534c166.md | 5 +++++ .../improvement/docs-drop-pointer-stamps-batch7a-4a73d504.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-0367f7b9.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-83b560b7.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-a38d8805.md | 5 +++++ .../mcp-tools/docs-drop-pointer-stamps-batch7a-6697f2c7.md | 5 +++++ .changes/miro/docs-drop-pointer-stamps-batch7a-3f264605.md | 5 +++++ .../multi-agent/docs-drop-pointer-stamps-batch7a-7d545288.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-85603a0b.md | 5 +++++ .../pixel-art/docs-drop-pointer-stamps-batch7a-c13d69b8.md | 5 +++++ .../playwright/docs-drop-pointer-stamps-batch7a-d4a36d58.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-06c5e1e3.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-d6484c34.md | 5 +++++ .../prototype/docs-drop-pointer-stamps-batch7a-664a8529.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-2042397f.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-0a35881f.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-f9742458.md | 5 +++++ .../ruff-format/docs-drop-pointer-stamps-batch7a-c2549d05.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-35b423f6.md | 5 +++++ .../songwriting/docs-drop-pointer-stamps-batch7a-1469323c.md | 5 +++++ .changes/speech/docs-drop-pointer-stamps-batch7a-6025837c.md | 5 +++++ .../sql-server/docs-drop-pointer-stamps-batch7a-6262e00e.md | 5 +++++ .../toolchain/docs-drop-pointer-stamps-batch7a-38e9e15d.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-e076a0e9.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-c5b962f5.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-85d1e055.md | 5 +++++ .../docs-drop-pointer-stamps-batch7a-2e394f7a.md | 5 +++++ .changes/wizard/docs-drop-pointer-stamps-batch7a-9376c63b.md | 5 +++++ .changes/x/docs-drop-pointer-stamps-batch7a-7d683323.md | 5 +++++ 55 files changed, 275 insertions(+) create mode 100644 .changes/actionlint/docs-drop-pointer-stamps-batch7a-f7579378.md create mode 100644 .changes/adhd/docs-drop-pointer-stamps-batch7a-36c3b457.md create mode 100644 .changes/ai-briefing/docs-drop-pointer-stamps-batch7a-d559f414.md create mode 100644 .changes/ai-slop/docs-drop-pointer-stamps-batch7a-305c9d59.md create mode 100644 .changes/animation/docs-drop-pointer-stamps-batch7a-93681f3c.md create mode 100644 .changes/app-control/docs-drop-pointer-stamps-batch7a-82127e70.md create mode 100644 .changes/attribution/docs-drop-pointer-stamps-batch7a-2c3e27c7.md create mode 100644 .changes/autonomy/docs-drop-pointer-stamps-batch7a-38b235f8.md create mode 100644 .changes/bash-format/docs-drop-pointer-stamps-batch7a-8d7f3e03.md create mode 100644 .changes/biome-format/docs-drop-pointer-stamps-batch7a-6279469e.md create mode 100644 .changes/code-metrics/docs-drop-pointer-stamps-batch7a-5d692a11.md create mode 100644 .changes/codebase-health/docs-drop-pointer-stamps-batch7a-3690704e.md create mode 100644 .changes/context-budget/docs-drop-pointer-stamps-batch7a-45f919e1.md create mode 100644 .changes/context7/docs-drop-pointer-stamps-batch7a-86d3c5d8.md create mode 100644 .changes/corrections/docs-drop-pointer-stamps-batch7a-9b61282e.md create mode 100644 .changes/debugging/docs-drop-pointer-stamps-batch7a-521c2b73.md create mode 100644 .changes/desktop-notification/docs-drop-pointer-stamps-batch7a-2d9d26a4.md create mode 100644 .changes/discipline/docs-drop-pointer-stamps-batch7a-7e6e58a8.md create mode 100644 .changes/docs-naming/docs-drop-pointer-stamps-batch7a-99e537b1.md create mode 100644 .changes/dometrain/docs-drop-pointer-stamps-batch7a-14530d9e.md create mode 100644 .changes/education/docs-drop-pointer-stamps-batch7a-0a52b605.md create mode 100644 .changes/eol-normalizer/docs-drop-pointer-stamps-batch7a-111d842b.md create mode 100644 .changes/explainer-video/docs-drop-pointer-stamps-batch7a-f4598d6d.md create mode 100644 .changes/firecrawl/docs-drop-pointer-stamps-batch7a-5e18360b.md create mode 100644 .changes/gaming/docs-drop-pointer-stamps-batch7a-7a68c2a8.md create mode 100644 .changes/go-format/docs-drop-pointer-stamps-batch7a-032b3641.md create mode 100644 .changes/guardrails/docs-drop-pointer-stamps-batch7a-0534c166.md create mode 100644 .changes/improvement/docs-drop-pointer-stamps-batch7a-4a73d504.md create mode 100644 .changes/instruction-placement/docs-drop-pointer-stamps-batch7a-0367f7b9.md create mode 100644 .changes/kindle-dedrm/docs-drop-pointer-stamps-batch7a-83b560b7.md create mode 100644 .changes/markdown-format/docs-drop-pointer-stamps-batch7a-a38d8805.md create mode 100644 .changes/mcp-tools/docs-drop-pointer-stamps-batch7a-6697f2c7.md create mode 100644 .changes/miro/docs-drop-pointer-stamps-batch7a-3f264605.md create mode 100644 .changes/multi-agent/docs-drop-pointer-stamps-batch7a-7d545288.md create mode 100644 .changes/overengineering/docs-drop-pointer-stamps-batch7a-85603a0b.md create mode 100644 .changes/pixel-art/docs-drop-pointer-stamps-batch7a-c13d69b8.md create mode 100644 .changes/playwright/docs-drop-pointer-stamps-batch7a-d4a36d58.md create mode 100644 .changes/plugin-quality/docs-drop-pointer-stamps-batch7a-06c5e1e3.md create mode 100644 .changes/powershell-format/docs-drop-pointer-stamps-batch7a-d6484c34.md create mode 100644 .changes/prototype/docs-drop-pointer-stamps-batch7a-664a8529.md create mode 100644 .changes/rate-limit-guard/docs-drop-pointer-stamps-batch7a-2042397f.md create mode 100644 .changes/repo-fleet-hygiene/docs-drop-pointer-stamps-batch7a-0a35881f.md create mode 100644 .changes/repo-hygiene/docs-drop-pointer-stamps-batch7a-f9742458.md create mode 100644 .changes/ruff-format/docs-drop-pointer-stamps-batch7a-c2549d05.md create mode 100644 .changes/skill-quality/docs-drop-pointer-stamps-batch7a-35b423f6.md create mode 100644 .changes/songwriting/docs-drop-pointer-stamps-batch7a-1469323c.md create mode 100644 .changes/speech/docs-drop-pointer-stamps-batch7a-6025837c.md create mode 100644 .changes/sql-server/docs-drop-pointer-stamps-batch7a-6262e00e.md create mode 100644 .changes/toolchain/docs-drop-pointer-stamps-batch7a-38e9e15d.md create mode 100644 .changes/typos-format/docs-drop-pointer-stamps-batch7a-e076a0e9.md create mode 100644 .changes/user-experience/docs-drop-pointer-stamps-batch7a-c5b962f5.md create mode 100644 .changes/verification/docs-drop-pointer-stamps-batch7a-85d1e055.md create mode 100644 .changes/visualization/docs-drop-pointer-stamps-batch7a-2e394f7a.md create mode 100644 .changes/wizard/docs-drop-pointer-stamps-batch7a-9376c63b.md create mode 100644 .changes/x/docs-drop-pointer-stamps-batch7a-7d683323.md diff --git a/.changes/actionlint/docs-drop-pointer-stamps-batch7a-f7579378.md b/.changes/actionlint/docs-drop-pointer-stamps-batch7a-f7579378.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/actionlint/docs-drop-pointer-stamps-batch7a-f7579378.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/adhd/docs-drop-pointer-stamps-batch7a-36c3b457.md b/.changes/adhd/docs-drop-pointer-stamps-batch7a-36c3b457.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/adhd/docs-drop-pointer-stamps-batch7a-36c3b457.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/ai-briefing/docs-drop-pointer-stamps-batch7a-d559f414.md b/.changes/ai-briefing/docs-drop-pointer-stamps-batch7a-d559f414.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/ai-briefing/docs-drop-pointer-stamps-batch7a-d559f414.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/ai-slop/docs-drop-pointer-stamps-batch7a-305c9d59.md b/.changes/ai-slop/docs-drop-pointer-stamps-batch7a-305c9d59.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/ai-slop/docs-drop-pointer-stamps-batch7a-305c9d59.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/animation/docs-drop-pointer-stamps-batch7a-93681f3c.md b/.changes/animation/docs-drop-pointer-stamps-batch7a-93681f3c.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/animation/docs-drop-pointer-stamps-batch7a-93681f3c.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/app-control/docs-drop-pointer-stamps-batch7a-82127e70.md b/.changes/app-control/docs-drop-pointer-stamps-batch7a-82127e70.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/app-control/docs-drop-pointer-stamps-batch7a-82127e70.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/attribution/docs-drop-pointer-stamps-batch7a-2c3e27c7.md b/.changes/attribution/docs-drop-pointer-stamps-batch7a-2c3e27c7.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/attribution/docs-drop-pointer-stamps-batch7a-2c3e27c7.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/autonomy/docs-drop-pointer-stamps-batch7a-38b235f8.md b/.changes/autonomy/docs-drop-pointer-stamps-batch7a-38b235f8.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/autonomy/docs-drop-pointer-stamps-batch7a-38b235f8.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/bash-format/docs-drop-pointer-stamps-batch7a-8d7f3e03.md b/.changes/bash-format/docs-drop-pointer-stamps-batch7a-8d7f3e03.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/bash-format/docs-drop-pointer-stamps-batch7a-8d7f3e03.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/biome-format/docs-drop-pointer-stamps-batch7a-6279469e.md b/.changes/biome-format/docs-drop-pointer-stamps-batch7a-6279469e.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/biome-format/docs-drop-pointer-stamps-batch7a-6279469e.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/code-metrics/docs-drop-pointer-stamps-batch7a-5d692a11.md b/.changes/code-metrics/docs-drop-pointer-stamps-batch7a-5d692a11.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/code-metrics/docs-drop-pointer-stamps-batch7a-5d692a11.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/codebase-health/docs-drop-pointer-stamps-batch7a-3690704e.md b/.changes/codebase-health/docs-drop-pointer-stamps-batch7a-3690704e.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/codebase-health/docs-drop-pointer-stamps-batch7a-3690704e.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/context-budget/docs-drop-pointer-stamps-batch7a-45f919e1.md b/.changes/context-budget/docs-drop-pointer-stamps-batch7a-45f919e1.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/context-budget/docs-drop-pointer-stamps-batch7a-45f919e1.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/context7/docs-drop-pointer-stamps-batch7a-86d3c5d8.md b/.changes/context7/docs-drop-pointer-stamps-batch7a-86d3c5d8.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/context7/docs-drop-pointer-stamps-batch7a-86d3c5d8.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/corrections/docs-drop-pointer-stamps-batch7a-9b61282e.md b/.changes/corrections/docs-drop-pointer-stamps-batch7a-9b61282e.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/corrections/docs-drop-pointer-stamps-batch7a-9b61282e.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/debugging/docs-drop-pointer-stamps-batch7a-521c2b73.md b/.changes/debugging/docs-drop-pointer-stamps-batch7a-521c2b73.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/debugging/docs-drop-pointer-stamps-batch7a-521c2b73.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/desktop-notification/docs-drop-pointer-stamps-batch7a-2d9d26a4.md b/.changes/desktop-notification/docs-drop-pointer-stamps-batch7a-2d9d26a4.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/desktop-notification/docs-drop-pointer-stamps-batch7a-2d9d26a4.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/discipline/docs-drop-pointer-stamps-batch7a-7e6e58a8.md b/.changes/discipline/docs-drop-pointer-stamps-batch7a-7e6e58a8.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/discipline/docs-drop-pointer-stamps-batch7a-7e6e58a8.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/docs-naming/docs-drop-pointer-stamps-batch7a-99e537b1.md b/.changes/docs-naming/docs-drop-pointer-stamps-batch7a-99e537b1.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/docs-naming/docs-drop-pointer-stamps-batch7a-99e537b1.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/dometrain/docs-drop-pointer-stamps-batch7a-14530d9e.md b/.changes/dometrain/docs-drop-pointer-stamps-batch7a-14530d9e.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/dometrain/docs-drop-pointer-stamps-batch7a-14530d9e.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/education/docs-drop-pointer-stamps-batch7a-0a52b605.md b/.changes/education/docs-drop-pointer-stamps-batch7a-0a52b605.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/education/docs-drop-pointer-stamps-batch7a-0a52b605.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/eol-normalizer/docs-drop-pointer-stamps-batch7a-111d842b.md b/.changes/eol-normalizer/docs-drop-pointer-stamps-batch7a-111d842b.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/eol-normalizer/docs-drop-pointer-stamps-batch7a-111d842b.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/explainer-video/docs-drop-pointer-stamps-batch7a-f4598d6d.md b/.changes/explainer-video/docs-drop-pointer-stamps-batch7a-f4598d6d.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/explainer-video/docs-drop-pointer-stamps-batch7a-f4598d6d.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/firecrawl/docs-drop-pointer-stamps-batch7a-5e18360b.md b/.changes/firecrawl/docs-drop-pointer-stamps-batch7a-5e18360b.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/firecrawl/docs-drop-pointer-stamps-batch7a-5e18360b.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/gaming/docs-drop-pointer-stamps-batch7a-7a68c2a8.md b/.changes/gaming/docs-drop-pointer-stamps-batch7a-7a68c2a8.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/gaming/docs-drop-pointer-stamps-batch7a-7a68c2a8.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/go-format/docs-drop-pointer-stamps-batch7a-032b3641.md b/.changes/go-format/docs-drop-pointer-stamps-batch7a-032b3641.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/go-format/docs-drop-pointer-stamps-batch7a-032b3641.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/guardrails/docs-drop-pointer-stamps-batch7a-0534c166.md b/.changes/guardrails/docs-drop-pointer-stamps-batch7a-0534c166.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/guardrails/docs-drop-pointer-stamps-batch7a-0534c166.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/improvement/docs-drop-pointer-stamps-batch7a-4a73d504.md b/.changes/improvement/docs-drop-pointer-stamps-batch7a-4a73d504.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/improvement/docs-drop-pointer-stamps-batch7a-4a73d504.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/instruction-placement/docs-drop-pointer-stamps-batch7a-0367f7b9.md b/.changes/instruction-placement/docs-drop-pointer-stamps-batch7a-0367f7b9.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/instruction-placement/docs-drop-pointer-stamps-batch7a-0367f7b9.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/kindle-dedrm/docs-drop-pointer-stamps-batch7a-83b560b7.md b/.changes/kindle-dedrm/docs-drop-pointer-stamps-batch7a-83b560b7.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/kindle-dedrm/docs-drop-pointer-stamps-batch7a-83b560b7.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/markdown-format/docs-drop-pointer-stamps-batch7a-a38d8805.md b/.changes/markdown-format/docs-drop-pointer-stamps-batch7a-a38d8805.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/markdown-format/docs-drop-pointer-stamps-batch7a-a38d8805.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/mcp-tools/docs-drop-pointer-stamps-batch7a-6697f2c7.md b/.changes/mcp-tools/docs-drop-pointer-stamps-batch7a-6697f2c7.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/mcp-tools/docs-drop-pointer-stamps-batch7a-6697f2c7.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/miro/docs-drop-pointer-stamps-batch7a-3f264605.md b/.changes/miro/docs-drop-pointer-stamps-batch7a-3f264605.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/miro/docs-drop-pointer-stamps-batch7a-3f264605.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/multi-agent/docs-drop-pointer-stamps-batch7a-7d545288.md b/.changes/multi-agent/docs-drop-pointer-stamps-batch7a-7d545288.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/multi-agent/docs-drop-pointer-stamps-batch7a-7d545288.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/overengineering/docs-drop-pointer-stamps-batch7a-85603a0b.md b/.changes/overengineering/docs-drop-pointer-stamps-batch7a-85603a0b.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/overengineering/docs-drop-pointer-stamps-batch7a-85603a0b.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/pixel-art/docs-drop-pointer-stamps-batch7a-c13d69b8.md b/.changes/pixel-art/docs-drop-pointer-stamps-batch7a-c13d69b8.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/pixel-art/docs-drop-pointer-stamps-batch7a-c13d69b8.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/playwright/docs-drop-pointer-stamps-batch7a-d4a36d58.md b/.changes/playwright/docs-drop-pointer-stamps-batch7a-d4a36d58.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/playwright/docs-drop-pointer-stamps-batch7a-d4a36d58.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/plugin-quality/docs-drop-pointer-stamps-batch7a-06c5e1e3.md b/.changes/plugin-quality/docs-drop-pointer-stamps-batch7a-06c5e1e3.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/plugin-quality/docs-drop-pointer-stamps-batch7a-06c5e1e3.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/powershell-format/docs-drop-pointer-stamps-batch7a-d6484c34.md b/.changes/powershell-format/docs-drop-pointer-stamps-batch7a-d6484c34.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/powershell-format/docs-drop-pointer-stamps-batch7a-d6484c34.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/prototype/docs-drop-pointer-stamps-batch7a-664a8529.md b/.changes/prototype/docs-drop-pointer-stamps-batch7a-664a8529.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/prototype/docs-drop-pointer-stamps-batch7a-664a8529.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/rate-limit-guard/docs-drop-pointer-stamps-batch7a-2042397f.md b/.changes/rate-limit-guard/docs-drop-pointer-stamps-batch7a-2042397f.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/rate-limit-guard/docs-drop-pointer-stamps-batch7a-2042397f.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/repo-fleet-hygiene/docs-drop-pointer-stamps-batch7a-0a35881f.md b/.changes/repo-fleet-hygiene/docs-drop-pointer-stamps-batch7a-0a35881f.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/repo-fleet-hygiene/docs-drop-pointer-stamps-batch7a-0a35881f.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/repo-hygiene/docs-drop-pointer-stamps-batch7a-f9742458.md b/.changes/repo-hygiene/docs-drop-pointer-stamps-batch7a-f9742458.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/repo-hygiene/docs-drop-pointer-stamps-batch7a-f9742458.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/ruff-format/docs-drop-pointer-stamps-batch7a-c2549d05.md b/.changes/ruff-format/docs-drop-pointer-stamps-batch7a-c2549d05.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/ruff-format/docs-drop-pointer-stamps-batch7a-c2549d05.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/skill-quality/docs-drop-pointer-stamps-batch7a-35b423f6.md b/.changes/skill-quality/docs-drop-pointer-stamps-batch7a-35b423f6.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/skill-quality/docs-drop-pointer-stamps-batch7a-35b423f6.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/songwriting/docs-drop-pointer-stamps-batch7a-1469323c.md b/.changes/songwriting/docs-drop-pointer-stamps-batch7a-1469323c.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/songwriting/docs-drop-pointer-stamps-batch7a-1469323c.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/speech/docs-drop-pointer-stamps-batch7a-6025837c.md b/.changes/speech/docs-drop-pointer-stamps-batch7a-6025837c.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/speech/docs-drop-pointer-stamps-batch7a-6025837c.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/sql-server/docs-drop-pointer-stamps-batch7a-6262e00e.md b/.changes/sql-server/docs-drop-pointer-stamps-batch7a-6262e00e.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/sql-server/docs-drop-pointer-stamps-batch7a-6262e00e.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/toolchain/docs-drop-pointer-stamps-batch7a-38e9e15d.md b/.changes/toolchain/docs-drop-pointer-stamps-batch7a-38e9e15d.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/toolchain/docs-drop-pointer-stamps-batch7a-38e9e15d.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/typos-format/docs-drop-pointer-stamps-batch7a-e076a0e9.md b/.changes/typos-format/docs-drop-pointer-stamps-batch7a-e076a0e9.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/typos-format/docs-drop-pointer-stamps-batch7a-e076a0e9.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/user-experience/docs-drop-pointer-stamps-batch7a-c5b962f5.md b/.changes/user-experience/docs-drop-pointer-stamps-batch7a-c5b962f5.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/user-experience/docs-drop-pointer-stamps-batch7a-c5b962f5.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/verification/docs-drop-pointer-stamps-batch7a-85d1e055.md b/.changes/verification/docs-drop-pointer-stamps-batch7a-85d1e055.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/verification/docs-drop-pointer-stamps-batch7a-85d1e055.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/visualization/docs-drop-pointer-stamps-batch7a-2e394f7a.md b/.changes/visualization/docs-drop-pointer-stamps-batch7a-2e394f7a.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/visualization/docs-drop-pointer-stamps-batch7a-2e394f7a.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/wizard/docs-drop-pointer-stamps-batch7a-9376c63b.md b/.changes/wizard/docs-drop-pointer-stamps-batch7a-9376c63b.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/wizard/docs-drop-pointer-stamps-batch7a-9376c63b.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. diff --git a/.changes/x/docs-drop-pointer-stamps-batch7a-7d683323.md b/.changes/x/docs-drop-pointer-stamps-batch7a-7d683323.md new file mode 100644 index 00000000000..7d15f5263f3 --- /dev/null +++ b/.changes/x/docs-drop-pointer-stamps-batch7a-7d683323.md @@ -0,0 +1,5 @@ +--- +bump: none +--- + +Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. From 7fb35f82c92302893c6e37847fd8ec4b8f725730 Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Wed, 11 Nov 2026 23:00:50 -0500 Subject: [PATCH 3/3] docs: give shared-copy carrying plugins patch fragments (batch 7a) sync-shared-copies --check-bump requires a patch fragment for every plugin carrying a changed shared copy; a none fragment does not count. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm --- .../actionlint/docs-drop-pointer-stamps-batch7a-f7579378.md | 6 ++++-- .changes/adhd/docs-drop-pointer-stamps-batch7a-36c3b457.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-d559f414.md | 6 ++++-- .../ai-slop/docs-drop-pointer-stamps-batch7a-305c9d59.md | 6 ++++-- .../animation/docs-drop-pointer-stamps-batch7a-93681f3c.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-82127e70.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-2c3e27c7.md | 6 ++++-- .../autonomy/docs-drop-pointer-stamps-batch7a-38b235f8.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-8d7f3e03.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-6279469e.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-5d692a11.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-3690704e.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-45f919e1.md | 6 ++++-- .../context7/docs-drop-pointer-stamps-batch7a-86d3c5d8.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-9b61282e.md | 6 ++++-- .../debugging/docs-drop-pointer-stamps-batch7a-521c2b73.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-2d9d26a4.md | 6 ++++-- .../discipline/docs-drop-pointer-stamps-batch7a-7e6e58a8.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-99e537b1.md | 6 ++++-- .../dometrain/docs-drop-pointer-stamps-batch7a-14530d9e.md | 6 ++++-- .../education/docs-drop-pointer-stamps-batch7a-0a52b605.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-111d842b.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-f4598d6d.md | 6 ++++-- .../firecrawl/docs-drop-pointer-stamps-batch7a-5e18360b.md | 6 ++++-- .../gaming/docs-drop-pointer-stamps-batch7a-7a68c2a8.md | 6 ++++-- .../go-format/docs-drop-pointer-stamps-batch7a-032b3641.md | 6 ++++-- .../guardrails/docs-drop-pointer-stamps-batch7a-0534c166.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-4a73d504.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-0367f7b9.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-83b560b7.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-a38d8805.md | 6 ++++-- .../mcp-tools/docs-drop-pointer-stamps-batch7a-6697f2c7.md | 6 ++++-- .changes/miro/docs-drop-pointer-stamps-batch7a-3f264605.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-7d545288.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-85603a0b.md | 6 ++++-- .../pixel-art/docs-drop-pointer-stamps-batch7a-c13d69b8.md | 6 ++++-- .../playwright/docs-drop-pointer-stamps-batch7a-d4a36d58.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-06c5e1e3.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-d6484c34.md | 6 ++++-- .../prototype/docs-drop-pointer-stamps-batch7a-664a8529.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-2042397f.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-0a35881f.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-f9742458.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-c2549d05.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-35b423f6.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-1469323c.md | 6 ++++-- .../speech/docs-drop-pointer-stamps-batch7a-6025837c.md | 6 ++++-- .../sql-server/docs-drop-pointer-stamps-batch7a-6262e00e.md | 6 ++++-- .../toolchain/docs-drop-pointer-stamps-batch7a-38e9e15d.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-e076a0e9.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-c5b962f5.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-85d1e055.md | 6 ++++-- .../docs-drop-pointer-stamps-batch7a-2e394f7a.md | 6 ++++-- .../wizard/docs-drop-pointer-stamps-batch7a-9376c63b.md | 6 ++++-- .changes/x/docs-drop-pointer-stamps-batch7a-7d683323.md | 6 ++++-- 55 files changed, 220 insertions(+), 110 deletions(-) diff --git a/.changes/actionlint/docs-drop-pointer-stamps-batch7a-f7579378.md b/.changes/actionlint/docs-drop-pointer-stamps-batch7a-f7579378.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/actionlint/docs-drop-pointer-stamps-batch7a-f7579378.md +++ b/.changes/actionlint/docs-drop-pointer-stamps-batch7a-f7579378.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/adhd/docs-drop-pointer-stamps-batch7a-36c3b457.md b/.changes/adhd/docs-drop-pointer-stamps-batch7a-36c3b457.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/adhd/docs-drop-pointer-stamps-batch7a-36c3b457.md +++ b/.changes/adhd/docs-drop-pointer-stamps-batch7a-36c3b457.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/ai-briefing/docs-drop-pointer-stamps-batch7a-d559f414.md b/.changes/ai-briefing/docs-drop-pointer-stamps-batch7a-d559f414.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/ai-briefing/docs-drop-pointer-stamps-batch7a-d559f414.md +++ b/.changes/ai-briefing/docs-drop-pointer-stamps-batch7a-d559f414.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/ai-slop/docs-drop-pointer-stamps-batch7a-305c9d59.md b/.changes/ai-slop/docs-drop-pointer-stamps-batch7a-305c9d59.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/ai-slop/docs-drop-pointer-stamps-batch7a-305c9d59.md +++ b/.changes/ai-slop/docs-drop-pointer-stamps-batch7a-305c9d59.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/animation/docs-drop-pointer-stamps-batch7a-93681f3c.md b/.changes/animation/docs-drop-pointer-stamps-batch7a-93681f3c.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/animation/docs-drop-pointer-stamps-batch7a-93681f3c.md +++ b/.changes/animation/docs-drop-pointer-stamps-batch7a-93681f3c.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/app-control/docs-drop-pointer-stamps-batch7a-82127e70.md b/.changes/app-control/docs-drop-pointer-stamps-batch7a-82127e70.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/app-control/docs-drop-pointer-stamps-batch7a-82127e70.md +++ b/.changes/app-control/docs-drop-pointer-stamps-batch7a-82127e70.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/attribution/docs-drop-pointer-stamps-batch7a-2c3e27c7.md b/.changes/attribution/docs-drop-pointer-stamps-batch7a-2c3e27c7.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/attribution/docs-drop-pointer-stamps-batch7a-2c3e27c7.md +++ b/.changes/attribution/docs-drop-pointer-stamps-batch7a-2c3e27c7.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/autonomy/docs-drop-pointer-stamps-batch7a-38b235f8.md b/.changes/autonomy/docs-drop-pointer-stamps-batch7a-38b235f8.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/autonomy/docs-drop-pointer-stamps-batch7a-38b235f8.md +++ b/.changes/autonomy/docs-drop-pointer-stamps-batch7a-38b235f8.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/bash-format/docs-drop-pointer-stamps-batch7a-8d7f3e03.md b/.changes/bash-format/docs-drop-pointer-stamps-batch7a-8d7f3e03.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/bash-format/docs-drop-pointer-stamps-batch7a-8d7f3e03.md +++ b/.changes/bash-format/docs-drop-pointer-stamps-batch7a-8d7f3e03.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/biome-format/docs-drop-pointer-stamps-batch7a-6279469e.md b/.changes/biome-format/docs-drop-pointer-stamps-batch7a-6279469e.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/biome-format/docs-drop-pointer-stamps-batch7a-6279469e.md +++ b/.changes/biome-format/docs-drop-pointer-stamps-batch7a-6279469e.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/code-metrics/docs-drop-pointer-stamps-batch7a-5d692a11.md b/.changes/code-metrics/docs-drop-pointer-stamps-batch7a-5d692a11.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/code-metrics/docs-drop-pointer-stamps-batch7a-5d692a11.md +++ b/.changes/code-metrics/docs-drop-pointer-stamps-batch7a-5d692a11.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/codebase-health/docs-drop-pointer-stamps-batch7a-3690704e.md b/.changes/codebase-health/docs-drop-pointer-stamps-batch7a-3690704e.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/codebase-health/docs-drop-pointer-stamps-batch7a-3690704e.md +++ b/.changes/codebase-health/docs-drop-pointer-stamps-batch7a-3690704e.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/context-budget/docs-drop-pointer-stamps-batch7a-45f919e1.md b/.changes/context-budget/docs-drop-pointer-stamps-batch7a-45f919e1.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/context-budget/docs-drop-pointer-stamps-batch7a-45f919e1.md +++ b/.changes/context-budget/docs-drop-pointer-stamps-batch7a-45f919e1.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/context7/docs-drop-pointer-stamps-batch7a-86d3c5d8.md b/.changes/context7/docs-drop-pointer-stamps-batch7a-86d3c5d8.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/context7/docs-drop-pointer-stamps-batch7a-86d3c5d8.md +++ b/.changes/context7/docs-drop-pointer-stamps-batch7a-86d3c5d8.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/corrections/docs-drop-pointer-stamps-batch7a-9b61282e.md b/.changes/corrections/docs-drop-pointer-stamps-batch7a-9b61282e.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/corrections/docs-drop-pointer-stamps-batch7a-9b61282e.md +++ b/.changes/corrections/docs-drop-pointer-stamps-batch7a-9b61282e.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/debugging/docs-drop-pointer-stamps-batch7a-521c2b73.md b/.changes/debugging/docs-drop-pointer-stamps-batch7a-521c2b73.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/debugging/docs-drop-pointer-stamps-batch7a-521c2b73.md +++ b/.changes/debugging/docs-drop-pointer-stamps-batch7a-521c2b73.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/desktop-notification/docs-drop-pointer-stamps-batch7a-2d9d26a4.md b/.changes/desktop-notification/docs-drop-pointer-stamps-batch7a-2d9d26a4.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/desktop-notification/docs-drop-pointer-stamps-batch7a-2d9d26a4.md +++ b/.changes/desktop-notification/docs-drop-pointer-stamps-batch7a-2d9d26a4.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/discipline/docs-drop-pointer-stamps-batch7a-7e6e58a8.md b/.changes/discipline/docs-drop-pointer-stamps-batch7a-7e6e58a8.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/discipline/docs-drop-pointer-stamps-batch7a-7e6e58a8.md +++ b/.changes/discipline/docs-drop-pointer-stamps-batch7a-7e6e58a8.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/docs-naming/docs-drop-pointer-stamps-batch7a-99e537b1.md b/.changes/docs-naming/docs-drop-pointer-stamps-batch7a-99e537b1.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/docs-naming/docs-drop-pointer-stamps-batch7a-99e537b1.md +++ b/.changes/docs-naming/docs-drop-pointer-stamps-batch7a-99e537b1.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/dometrain/docs-drop-pointer-stamps-batch7a-14530d9e.md b/.changes/dometrain/docs-drop-pointer-stamps-batch7a-14530d9e.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/dometrain/docs-drop-pointer-stamps-batch7a-14530d9e.md +++ b/.changes/dometrain/docs-drop-pointer-stamps-batch7a-14530d9e.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/education/docs-drop-pointer-stamps-batch7a-0a52b605.md b/.changes/education/docs-drop-pointer-stamps-batch7a-0a52b605.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/education/docs-drop-pointer-stamps-batch7a-0a52b605.md +++ b/.changes/education/docs-drop-pointer-stamps-batch7a-0a52b605.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/eol-normalizer/docs-drop-pointer-stamps-batch7a-111d842b.md b/.changes/eol-normalizer/docs-drop-pointer-stamps-batch7a-111d842b.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/eol-normalizer/docs-drop-pointer-stamps-batch7a-111d842b.md +++ b/.changes/eol-normalizer/docs-drop-pointer-stamps-batch7a-111d842b.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/explainer-video/docs-drop-pointer-stamps-batch7a-f4598d6d.md b/.changes/explainer-video/docs-drop-pointer-stamps-batch7a-f4598d6d.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/explainer-video/docs-drop-pointer-stamps-batch7a-f4598d6d.md +++ b/.changes/explainer-video/docs-drop-pointer-stamps-batch7a-f4598d6d.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/firecrawl/docs-drop-pointer-stamps-batch7a-5e18360b.md b/.changes/firecrawl/docs-drop-pointer-stamps-batch7a-5e18360b.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/firecrawl/docs-drop-pointer-stamps-batch7a-5e18360b.md +++ b/.changes/firecrawl/docs-drop-pointer-stamps-batch7a-5e18360b.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/gaming/docs-drop-pointer-stamps-batch7a-7a68c2a8.md b/.changes/gaming/docs-drop-pointer-stamps-batch7a-7a68c2a8.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/gaming/docs-drop-pointer-stamps-batch7a-7a68c2a8.md +++ b/.changes/gaming/docs-drop-pointer-stamps-batch7a-7a68c2a8.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/go-format/docs-drop-pointer-stamps-batch7a-032b3641.md b/.changes/go-format/docs-drop-pointer-stamps-batch7a-032b3641.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/go-format/docs-drop-pointer-stamps-batch7a-032b3641.md +++ b/.changes/go-format/docs-drop-pointer-stamps-batch7a-032b3641.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/guardrails/docs-drop-pointer-stamps-batch7a-0534c166.md b/.changes/guardrails/docs-drop-pointer-stamps-batch7a-0534c166.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/guardrails/docs-drop-pointer-stamps-batch7a-0534c166.md +++ b/.changes/guardrails/docs-drop-pointer-stamps-batch7a-0534c166.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/improvement/docs-drop-pointer-stamps-batch7a-4a73d504.md b/.changes/improvement/docs-drop-pointer-stamps-batch7a-4a73d504.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/improvement/docs-drop-pointer-stamps-batch7a-4a73d504.md +++ b/.changes/improvement/docs-drop-pointer-stamps-batch7a-4a73d504.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/instruction-placement/docs-drop-pointer-stamps-batch7a-0367f7b9.md b/.changes/instruction-placement/docs-drop-pointer-stamps-batch7a-0367f7b9.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/instruction-placement/docs-drop-pointer-stamps-batch7a-0367f7b9.md +++ b/.changes/instruction-placement/docs-drop-pointer-stamps-batch7a-0367f7b9.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/kindle-dedrm/docs-drop-pointer-stamps-batch7a-83b560b7.md b/.changes/kindle-dedrm/docs-drop-pointer-stamps-batch7a-83b560b7.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/kindle-dedrm/docs-drop-pointer-stamps-batch7a-83b560b7.md +++ b/.changes/kindle-dedrm/docs-drop-pointer-stamps-batch7a-83b560b7.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/markdown-format/docs-drop-pointer-stamps-batch7a-a38d8805.md b/.changes/markdown-format/docs-drop-pointer-stamps-batch7a-a38d8805.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/markdown-format/docs-drop-pointer-stamps-batch7a-a38d8805.md +++ b/.changes/markdown-format/docs-drop-pointer-stamps-batch7a-a38d8805.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/mcp-tools/docs-drop-pointer-stamps-batch7a-6697f2c7.md b/.changes/mcp-tools/docs-drop-pointer-stamps-batch7a-6697f2c7.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/mcp-tools/docs-drop-pointer-stamps-batch7a-6697f2c7.md +++ b/.changes/mcp-tools/docs-drop-pointer-stamps-batch7a-6697f2c7.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/miro/docs-drop-pointer-stamps-batch7a-3f264605.md b/.changes/miro/docs-drop-pointer-stamps-batch7a-3f264605.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/miro/docs-drop-pointer-stamps-batch7a-3f264605.md +++ b/.changes/miro/docs-drop-pointer-stamps-batch7a-3f264605.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/multi-agent/docs-drop-pointer-stamps-batch7a-7d545288.md b/.changes/multi-agent/docs-drop-pointer-stamps-batch7a-7d545288.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/multi-agent/docs-drop-pointer-stamps-batch7a-7d545288.md +++ b/.changes/multi-agent/docs-drop-pointer-stamps-batch7a-7d545288.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/overengineering/docs-drop-pointer-stamps-batch7a-85603a0b.md b/.changes/overengineering/docs-drop-pointer-stamps-batch7a-85603a0b.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/overengineering/docs-drop-pointer-stamps-batch7a-85603a0b.md +++ b/.changes/overengineering/docs-drop-pointer-stamps-batch7a-85603a0b.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/pixel-art/docs-drop-pointer-stamps-batch7a-c13d69b8.md b/.changes/pixel-art/docs-drop-pointer-stamps-batch7a-c13d69b8.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/pixel-art/docs-drop-pointer-stamps-batch7a-c13d69b8.md +++ b/.changes/pixel-art/docs-drop-pointer-stamps-batch7a-c13d69b8.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/playwright/docs-drop-pointer-stamps-batch7a-d4a36d58.md b/.changes/playwright/docs-drop-pointer-stamps-batch7a-d4a36d58.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/playwright/docs-drop-pointer-stamps-batch7a-d4a36d58.md +++ b/.changes/playwright/docs-drop-pointer-stamps-batch7a-d4a36d58.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/plugin-quality/docs-drop-pointer-stamps-batch7a-06c5e1e3.md b/.changes/plugin-quality/docs-drop-pointer-stamps-batch7a-06c5e1e3.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/plugin-quality/docs-drop-pointer-stamps-batch7a-06c5e1e3.md +++ b/.changes/plugin-quality/docs-drop-pointer-stamps-batch7a-06c5e1e3.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/powershell-format/docs-drop-pointer-stamps-batch7a-d6484c34.md b/.changes/powershell-format/docs-drop-pointer-stamps-batch7a-d6484c34.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/powershell-format/docs-drop-pointer-stamps-batch7a-d6484c34.md +++ b/.changes/powershell-format/docs-drop-pointer-stamps-batch7a-d6484c34.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/prototype/docs-drop-pointer-stamps-batch7a-664a8529.md b/.changes/prototype/docs-drop-pointer-stamps-batch7a-664a8529.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/prototype/docs-drop-pointer-stamps-batch7a-664a8529.md +++ b/.changes/prototype/docs-drop-pointer-stamps-batch7a-664a8529.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/rate-limit-guard/docs-drop-pointer-stamps-batch7a-2042397f.md b/.changes/rate-limit-guard/docs-drop-pointer-stamps-batch7a-2042397f.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/rate-limit-guard/docs-drop-pointer-stamps-batch7a-2042397f.md +++ b/.changes/rate-limit-guard/docs-drop-pointer-stamps-batch7a-2042397f.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/repo-fleet-hygiene/docs-drop-pointer-stamps-batch7a-0a35881f.md b/.changes/repo-fleet-hygiene/docs-drop-pointer-stamps-batch7a-0a35881f.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/repo-fleet-hygiene/docs-drop-pointer-stamps-batch7a-0a35881f.md +++ b/.changes/repo-fleet-hygiene/docs-drop-pointer-stamps-batch7a-0a35881f.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/repo-hygiene/docs-drop-pointer-stamps-batch7a-f9742458.md b/.changes/repo-hygiene/docs-drop-pointer-stamps-batch7a-f9742458.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/repo-hygiene/docs-drop-pointer-stamps-batch7a-f9742458.md +++ b/.changes/repo-hygiene/docs-drop-pointer-stamps-batch7a-f9742458.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/ruff-format/docs-drop-pointer-stamps-batch7a-c2549d05.md b/.changes/ruff-format/docs-drop-pointer-stamps-batch7a-c2549d05.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/ruff-format/docs-drop-pointer-stamps-batch7a-c2549d05.md +++ b/.changes/ruff-format/docs-drop-pointer-stamps-batch7a-c2549d05.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/skill-quality/docs-drop-pointer-stamps-batch7a-35b423f6.md b/.changes/skill-quality/docs-drop-pointer-stamps-batch7a-35b423f6.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/skill-quality/docs-drop-pointer-stamps-batch7a-35b423f6.md +++ b/.changes/skill-quality/docs-drop-pointer-stamps-batch7a-35b423f6.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/songwriting/docs-drop-pointer-stamps-batch7a-1469323c.md b/.changes/songwriting/docs-drop-pointer-stamps-batch7a-1469323c.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/songwriting/docs-drop-pointer-stamps-batch7a-1469323c.md +++ b/.changes/songwriting/docs-drop-pointer-stamps-batch7a-1469323c.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/speech/docs-drop-pointer-stamps-batch7a-6025837c.md b/.changes/speech/docs-drop-pointer-stamps-batch7a-6025837c.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/speech/docs-drop-pointer-stamps-batch7a-6025837c.md +++ b/.changes/speech/docs-drop-pointer-stamps-batch7a-6025837c.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/sql-server/docs-drop-pointer-stamps-batch7a-6262e00e.md b/.changes/sql-server/docs-drop-pointer-stamps-batch7a-6262e00e.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/sql-server/docs-drop-pointer-stamps-batch7a-6262e00e.md +++ b/.changes/sql-server/docs-drop-pointer-stamps-batch7a-6262e00e.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/toolchain/docs-drop-pointer-stamps-batch7a-38e9e15d.md b/.changes/toolchain/docs-drop-pointer-stamps-batch7a-38e9e15d.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/toolchain/docs-drop-pointer-stamps-batch7a-38e9e15d.md +++ b/.changes/toolchain/docs-drop-pointer-stamps-batch7a-38e9e15d.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/typos-format/docs-drop-pointer-stamps-batch7a-e076a0e9.md b/.changes/typos-format/docs-drop-pointer-stamps-batch7a-e076a0e9.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/typos-format/docs-drop-pointer-stamps-batch7a-e076a0e9.md +++ b/.changes/typos-format/docs-drop-pointer-stamps-batch7a-e076a0e9.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/user-experience/docs-drop-pointer-stamps-batch7a-c5b962f5.md b/.changes/user-experience/docs-drop-pointer-stamps-batch7a-c5b962f5.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/user-experience/docs-drop-pointer-stamps-batch7a-c5b962f5.md +++ b/.changes/user-experience/docs-drop-pointer-stamps-batch7a-c5b962f5.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/verification/docs-drop-pointer-stamps-batch7a-85d1e055.md b/.changes/verification/docs-drop-pointer-stamps-batch7a-85d1e055.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/verification/docs-drop-pointer-stamps-batch7a-85d1e055.md +++ b/.changes/verification/docs-drop-pointer-stamps-batch7a-85d1e055.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/visualization/docs-drop-pointer-stamps-batch7a-2e394f7a.md b/.changes/visualization/docs-drop-pointer-stamps-batch7a-2e394f7a.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/visualization/docs-drop-pointer-stamps-batch7a-2e394f7a.md +++ b/.changes/visualization/docs-drop-pointer-stamps-batch7a-2e394f7a.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/wizard/docs-drop-pointer-stamps-batch7a-9376c63b.md b/.changes/wizard/docs-drop-pointer-stamps-batch7a-9376c63b.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/wizard/docs-drop-pointer-stamps-batch7a-9376c63b.md +++ b/.changes/wizard/docs-drop-pointer-stamps-batch7a-9376c63b.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger. diff --git a/.changes/x/docs-drop-pointer-stamps-batch7a-7d683323.md b/.changes/x/docs-drop-pointer-stamps-batch7a-7d683323.md index 7d15f5263f3..fef852e3828 100644 --- a/.changes/x/docs-drop-pointer-stamps-batch7a-7d683323.md +++ b/.changes/x/docs-drop-pointer-stamps-batch7a-7d683323.md @@ -1,5 +1,7 @@ --- -bump: none +bump: patch --- -Comment-only sync of shared library copies; this plugin's release note for the same sweep ships in its own batch 7 split. +### Changed + +- Synced the shared library copies this plugin carries; their pointer records no longer carry an as-of date or recheck trigger.