From 8c950ccbd03fac45d04f8a2ad5094517231eec35 Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Wed, 11 Nov 2026 21:49:52 -0500 Subject: [PATCH 1/3] docs: drop stamps from pointer records (batch 7d) Plugins: playwright,dometrain,toolchain,app-control,and-36-smaller-plugins. 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-513ce324.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-befdbf3a.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-130eb917.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-43dd2093.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-d4b1dc88.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-6c521d66.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-cd09e6a7.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-0dd7280a.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-9fb16b5a.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-5b864201.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-823b225b.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-8348425c.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-44aeb6e1.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-1ccdd34e.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-238f58d0.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-3cfcc14c.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-f88e1486.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-14291ccb.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-96d6eb5e.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-8ea05ac1.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-6d94c00c.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-62986ca8.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-7b3047d8.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-24cfa0dc.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-8a3bb197.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-7aa3724e.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-601a080d.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-3d600109.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-837ed601.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-4a48892e.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-1519e053.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-0c8e5683.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-d9fc3ced.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-f89dc36b.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-662af29a.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-61f46131.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-5e78dc3d.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-46903bca.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-32bd25bf.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-1a6c8d9b.md | 7 +++ ...ocs-drop-pointer-stamps-batch7-718b4801.md | 7 +++ plugins/actionlint/README.md | 8 ++- plugins/actionlint/skills/setup/SKILL.md | 6 +-- plugins/adhd/README.md | 6 +-- plugins/adhd/skills/clarify/SKILL.md | 6 +-- plugins/adhd/skills/shape/SKILL.md | 4 +- plugins/ai-briefing/skills/generate/SKILL.md | 4 +- plugins/ai-briefing/skills/setup/SKILL.md | 3 -- plugins/ai-slop/skills/audit/SKILL.md | 9 +--- .../skills/audit/context/rubric-fanout.md | 5 +- .../skills/rotoscope/reference/method.md | 2 - .../app-control/reference/control-skill.md | 38 ++++++-------- plugins/app-control/skills/drive/SKILL.md | 7 +-- .../skills/drive/reference/pid-binding.md | 3 +- .../skills/map/reference/naming.md | 4 +- .../skills/audit/reference/rubric.md | 2 +- .../skills/audit/reference/source-fetch.md | 2 +- plugins/bash-format/README.md | 14 ++--- plugins/bash-format/skills/setup/SKILL.md | 3 -- plugins/biome-format/README.md | 3 -- plugins/biome-format/skills/setup/SKILL.md | 3 -- .../code-metrics/reference/report-schema.md | 1 - .../code-metrics/scripts/persist-report.sh | 10 ++-- plugins/code-metrics/skills/audit/SKILL.md | 4 +- .../code-metrics/skills/principles/SKILL.md | 7 +-- .../skills/principles/reference/measures.md | 3 +- plugins/codebase-health/skills/audit/SKILL.md | 6 --- .../skills/audit/context/discovery-method.md | 6 +-- .../skills/codify/actions/preferences.md | 3 -- .../codify/reference/finding-classes.md | 4 +- .../debugging/skills/analyze-profile/SKILL.md | 3 +- .../reference/formats/chrome-trace.md | 3 +- .../reference/formats/cpuprofile.md | 6 +-- .../reference/formats/heapsnapshot.md | 3 +- .../reference/formats/other-formats.md | 17 +++--- plugins/debugging/skills/debug/SKILL.md | 3 +- plugins/desktop-notification/README.md | 21 ++------ .../hooks/desktop-notification.sh | 3 +- .../skills/setup/SKILL.md | 10 +--- .../skills/generate-file-name-gate/SKILL.md | 3 -- plugins/dometrain/README.md | 15 ------ plugins/dometrain/skills/grounding/SKILL.md | 6 +-- plugins/dometrain/skills/setup/SKILL.md | 21 ++------ plugins/dometrain/skills/update/SKILL.md | 6 +-- plugins/education/skills/setup/SKILL.md | 3 -- plugins/education/skills/teach/SKILL.md | 12 ++--- .../skills/teach/scripts/list-workspaces.sh | 8 ++- plugins/eol-normalizer/README.md | 6 +-- plugins/eol-normalizer/skills/setup/SKILL.md | 3 -- .../explainer-video/skills/produce/SKILL.md | 11 +--- plugins/gaming/skills/setup/SKILL.md | 2 +- plugins/github/reference/areas.md | 7 ++- .../github/reference/browser-automation.md | 5 +- plugins/github/skills/advise/SKILL.md | 5 +- .../reference/native-install-github-app.md | 4 +- plugins/github/skills/audit/SKILL.md | 2 - plugins/go-format/README.md | 9 +--- plugins/go-format/skills/setup/SKILL.md | 3 -- plugins/improvement/skills/find/SKILL.md | 3 +- .../skills/find/context/ci-health.md | 13 ----- .../skills/find/context/unattended.md | 2 - plugins/improvement/skills/improve/SKILL.md | 3 +- plugins/kindle-dedrm/skills/manage/SKILL.md | 3 -- plugins/markdown-format/README.md | 14 ++--- plugins/markdown-format/skills/setup/SKILL.md | 7 +-- .../skills/name-it-better/context/sources.md | 11 ++-- .../overengineering/reference/spoke-paths.md | 3 -- plugins/overengineering/skills/audit/SKILL.md | 5 +- plugins/overengineering/skills/delta/SKILL.md | 3 +- .../skills/delta/context/recurring-wiring.md | 8 --- plugins/pixel-art/reference/backends.md | 3 +- plugins/pixel-art/reference/brief.md | 2 - plugins/playgrounds/skills/use/SKILL.md | 12 +---- plugins/playwright/README.md | 3 +- plugins/playwright/skills/demo-video/SKILL.md | 7 ++- .../skills/demo-video/reference/posting.md | 3 -- plugins/playwright/skills/playwright/SKILL.md | 7 ++- .../skills/playwright/reference/sessions.md | 2 +- .../playwright/reference/storage-and-auth.md | 4 +- .../repo-fleet-hygiene/skills/apply/SKILL.md | 2 - .../repo-fleet-hygiene/skills/audit/SKILL.md | 12 ++--- .../audit/reference/official-sources.md | 8 +-- .../skills/audit/reference/security-review.md | 3 +- plugins/ruff-format/README.md | 7 +-- plugins/ruff-format/skills/setup/SKILL.md | 6 +-- plugins/songwriting/agents/object-writer.md | 1 - .../pat-pattison/research/title-game.md | 2 +- .../skills/object-writing/SKILL.md | 14 ++--- plugins/speech/reference/elevenlabs.md | 17 ------ plugins/speech/reference/plugin-options.md | 3 -- plugins/sql-server/skills/setup/SKILL.md | 12 ++--- .../reference/characterization-testing.md | 8 ++- plugins/toolchain/skills/check/SKILL.md | 4 +- .../toolchain/skills/check/context/dotnet.md | 2 - .../skills/check/context/typescript.md | 2 - plugins/toolchain/skills/ratchet/SKILL.md | 12 +---- plugins/typos-format/README.md | 4 +- plugins/typos-format/skills/setup/SKILL.md | 6 +-- plugins/wizard/skills/unattended/SKILL.md | 5 +- .../skills/be-concise/reference/doctrine.md | 3 +- .../skills/be-concise/reference/sources.md | 52 +++---------------- plugins/x/skills/read/SKILL.md | 3 +- .../x/skills/read/context/failure-modes.md | 7 ++- plugins/x/skills/read/context/sources.md | 2 +- 144 files changed, 449 insertions(+), 529 deletions(-) create mode 100644 .changes/actionlint/docs-drop-pointer-stamps-batch7-513ce324.md create mode 100644 .changes/adhd/docs-drop-pointer-stamps-batch7-befdbf3a.md create mode 100644 .changes/ai-briefing/docs-drop-pointer-stamps-batch7-130eb917.md create mode 100644 .changes/ai-slop/docs-drop-pointer-stamps-batch7-43dd2093.md create mode 100644 .changes/animation/docs-drop-pointer-stamps-batch7-d4b1dc88.md create mode 100644 .changes/app-control/docs-drop-pointer-stamps-batch7-6c521d66.md create mode 100644 .changes/attribution/docs-drop-pointer-stamps-batch7-cd09e6a7.md create mode 100644 .changes/bash-format/docs-drop-pointer-stamps-batch7-0dd7280a.md create mode 100644 .changes/biome-format/docs-drop-pointer-stamps-batch7-9fb16b5a.md create mode 100644 .changes/code-metrics/docs-drop-pointer-stamps-batch7-5b864201.md create mode 100644 .changes/codebase-health/docs-drop-pointer-stamps-batch7-823b225b.md create mode 100644 .changes/corrections/docs-drop-pointer-stamps-batch7-8348425c.md create mode 100644 .changes/debugging/docs-drop-pointer-stamps-batch7-44aeb6e1.md create mode 100644 .changes/desktop-notification/docs-drop-pointer-stamps-batch7-1ccdd34e.md create mode 100644 .changes/docs-naming/docs-drop-pointer-stamps-batch7-238f58d0.md create mode 100644 .changes/dometrain/docs-drop-pointer-stamps-batch7-3cfcc14c.md create mode 100644 .changes/education/docs-drop-pointer-stamps-batch7-f88e1486.md create mode 100644 .changes/eol-normalizer/docs-drop-pointer-stamps-batch7-14291ccb.md create mode 100644 .changes/explainer-video/docs-drop-pointer-stamps-batch7-96d6eb5e.md create mode 100644 .changes/gaming/docs-drop-pointer-stamps-batch7-8ea05ac1.md create mode 100644 .changes/github/docs-drop-pointer-stamps-batch7-6d94c00c.md create mode 100644 .changes/go-format/docs-drop-pointer-stamps-batch7-62986ca8.md create mode 100644 .changes/improvement/docs-drop-pointer-stamps-batch7-7b3047d8.md create mode 100644 .changes/kindle-dedrm/docs-drop-pointer-stamps-batch7-24cfa0dc.md create mode 100644 .changes/markdown-format/docs-drop-pointer-stamps-batch7-8a3bb197.md create mode 100644 .changes/naming/docs-drop-pointer-stamps-batch7-7aa3724e.md create mode 100644 .changes/overengineering/docs-drop-pointer-stamps-batch7-601a080d.md create mode 100644 .changes/pixel-art/docs-drop-pointer-stamps-batch7-3d600109.md create mode 100644 .changes/playgrounds/docs-drop-pointer-stamps-batch7-837ed601.md create mode 100644 .changes/playwright/docs-drop-pointer-stamps-batch7-4a48892e.md create mode 100644 .changes/repo-fleet-hygiene/docs-drop-pointer-stamps-batch7-1519e053.md create mode 100644 .changes/ruff-format/docs-drop-pointer-stamps-batch7-0c8e5683.md create mode 100644 .changes/songwriting/docs-drop-pointer-stamps-batch7-d9fc3ced.md create mode 100644 .changes/speech/docs-drop-pointer-stamps-batch7-f89dc36b.md create mode 100644 .changes/sql-server/docs-drop-pointer-stamps-batch7-662af29a.md create mode 100644 .changes/tdd/docs-drop-pointer-stamps-batch7-61f46131.md create mode 100644 .changes/toolchain/docs-drop-pointer-stamps-batch7-5e78dc3d.md create mode 100644 .changes/typos-format/docs-drop-pointer-stamps-batch7-46903bca.md create mode 100644 .changes/wizard/docs-drop-pointer-stamps-batch7-32bd25bf.md create mode 100644 .changes/writing/docs-drop-pointer-stamps-batch7-1a6c8d9b.md create mode 100644 .changes/x/docs-drop-pointer-stamps-batch7-718b4801.md diff --git a/.changes/actionlint/docs-drop-pointer-stamps-batch7-513ce324.md b/.changes/actionlint/docs-drop-pointer-stamps-batch7-513ce324.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/actionlint/docs-drop-pointer-stamps-batch7-513ce324.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/adhd/docs-drop-pointer-stamps-batch7-befdbf3a.md b/.changes/adhd/docs-drop-pointer-stamps-batch7-befdbf3a.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/adhd/docs-drop-pointer-stamps-batch7-befdbf3a.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/ai-briefing/docs-drop-pointer-stamps-batch7-130eb917.md b/.changes/ai-briefing/docs-drop-pointer-stamps-batch7-130eb917.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/ai-briefing/docs-drop-pointer-stamps-batch7-130eb917.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/ai-slop/docs-drop-pointer-stamps-batch7-43dd2093.md b/.changes/ai-slop/docs-drop-pointer-stamps-batch7-43dd2093.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/ai-slop/docs-drop-pointer-stamps-batch7-43dd2093.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/animation/docs-drop-pointer-stamps-batch7-d4b1dc88.md b/.changes/animation/docs-drop-pointer-stamps-batch7-d4b1dc88.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/animation/docs-drop-pointer-stamps-batch7-d4b1dc88.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/app-control/docs-drop-pointer-stamps-batch7-6c521d66.md b/.changes/app-control/docs-drop-pointer-stamps-batch7-6c521d66.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/app-control/docs-drop-pointer-stamps-batch7-6c521d66.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/attribution/docs-drop-pointer-stamps-batch7-cd09e6a7.md b/.changes/attribution/docs-drop-pointer-stamps-batch7-cd09e6a7.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/attribution/docs-drop-pointer-stamps-batch7-cd09e6a7.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/bash-format/docs-drop-pointer-stamps-batch7-0dd7280a.md b/.changes/bash-format/docs-drop-pointer-stamps-batch7-0dd7280a.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/bash-format/docs-drop-pointer-stamps-batch7-0dd7280a.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/biome-format/docs-drop-pointer-stamps-batch7-9fb16b5a.md b/.changes/biome-format/docs-drop-pointer-stamps-batch7-9fb16b5a.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/biome-format/docs-drop-pointer-stamps-batch7-9fb16b5a.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-metrics/docs-drop-pointer-stamps-batch7-5b864201.md b/.changes/code-metrics/docs-drop-pointer-stamps-batch7-5b864201.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/code-metrics/docs-drop-pointer-stamps-batch7-5b864201.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/codebase-health/docs-drop-pointer-stamps-batch7-823b225b.md b/.changes/codebase-health/docs-drop-pointer-stamps-batch7-823b225b.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/codebase-health/docs-drop-pointer-stamps-batch7-823b225b.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/corrections/docs-drop-pointer-stamps-batch7-8348425c.md b/.changes/corrections/docs-drop-pointer-stamps-batch7-8348425c.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/corrections/docs-drop-pointer-stamps-batch7-8348425c.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/debugging/docs-drop-pointer-stamps-batch7-44aeb6e1.md b/.changes/debugging/docs-drop-pointer-stamps-batch7-44aeb6e1.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/debugging/docs-drop-pointer-stamps-batch7-44aeb6e1.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/desktop-notification/docs-drop-pointer-stamps-batch7-1ccdd34e.md b/.changes/desktop-notification/docs-drop-pointer-stamps-batch7-1ccdd34e.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/desktop-notification/docs-drop-pointer-stamps-batch7-1ccdd34e.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-naming/docs-drop-pointer-stamps-batch7-238f58d0.md b/.changes/docs-naming/docs-drop-pointer-stamps-batch7-238f58d0.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/docs-naming/docs-drop-pointer-stamps-batch7-238f58d0.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/dometrain/docs-drop-pointer-stamps-batch7-3cfcc14c.md b/.changes/dometrain/docs-drop-pointer-stamps-batch7-3cfcc14c.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/dometrain/docs-drop-pointer-stamps-batch7-3cfcc14c.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/education/docs-drop-pointer-stamps-batch7-f88e1486.md b/.changes/education/docs-drop-pointer-stamps-batch7-f88e1486.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/education/docs-drop-pointer-stamps-batch7-f88e1486.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/eol-normalizer/docs-drop-pointer-stamps-batch7-14291ccb.md b/.changes/eol-normalizer/docs-drop-pointer-stamps-batch7-14291ccb.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/eol-normalizer/docs-drop-pointer-stamps-batch7-14291ccb.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/explainer-video/docs-drop-pointer-stamps-batch7-96d6eb5e.md b/.changes/explainer-video/docs-drop-pointer-stamps-batch7-96d6eb5e.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/explainer-video/docs-drop-pointer-stamps-batch7-96d6eb5e.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/gaming/docs-drop-pointer-stamps-batch7-8ea05ac1.md b/.changes/gaming/docs-drop-pointer-stamps-batch7-8ea05ac1.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/gaming/docs-drop-pointer-stamps-batch7-8ea05ac1.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/github/docs-drop-pointer-stamps-batch7-6d94c00c.md b/.changes/github/docs-drop-pointer-stamps-batch7-6d94c00c.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/github/docs-drop-pointer-stamps-batch7-6d94c00c.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/go-format/docs-drop-pointer-stamps-batch7-62986ca8.md b/.changes/go-format/docs-drop-pointer-stamps-batch7-62986ca8.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/go-format/docs-drop-pointer-stamps-batch7-62986ca8.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/improvement/docs-drop-pointer-stamps-batch7-7b3047d8.md b/.changes/improvement/docs-drop-pointer-stamps-batch7-7b3047d8.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/improvement/docs-drop-pointer-stamps-batch7-7b3047d8.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/kindle-dedrm/docs-drop-pointer-stamps-batch7-24cfa0dc.md b/.changes/kindle-dedrm/docs-drop-pointer-stamps-batch7-24cfa0dc.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/kindle-dedrm/docs-drop-pointer-stamps-batch7-24cfa0dc.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/markdown-format/docs-drop-pointer-stamps-batch7-8a3bb197.md b/.changes/markdown-format/docs-drop-pointer-stamps-batch7-8a3bb197.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/markdown-format/docs-drop-pointer-stamps-batch7-8a3bb197.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/naming/docs-drop-pointer-stamps-batch7-7aa3724e.md b/.changes/naming/docs-drop-pointer-stamps-batch7-7aa3724e.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/naming/docs-drop-pointer-stamps-batch7-7aa3724e.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/overengineering/docs-drop-pointer-stamps-batch7-601a080d.md b/.changes/overengineering/docs-drop-pointer-stamps-batch7-601a080d.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/overengineering/docs-drop-pointer-stamps-batch7-601a080d.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/pixel-art/docs-drop-pointer-stamps-batch7-3d600109.md b/.changes/pixel-art/docs-drop-pointer-stamps-batch7-3d600109.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/pixel-art/docs-drop-pointer-stamps-batch7-3d600109.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/playgrounds/docs-drop-pointer-stamps-batch7-837ed601.md b/.changes/playgrounds/docs-drop-pointer-stamps-batch7-837ed601.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/playgrounds/docs-drop-pointer-stamps-batch7-837ed601.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/playwright/docs-drop-pointer-stamps-batch7-4a48892e.md b/.changes/playwright/docs-drop-pointer-stamps-batch7-4a48892e.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/playwright/docs-drop-pointer-stamps-batch7-4a48892e.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/repo-fleet-hygiene/docs-drop-pointer-stamps-batch7-1519e053.md b/.changes/repo-fleet-hygiene/docs-drop-pointer-stamps-batch7-1519e053.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/repo-fleet-hygiene/docs-drop-pointer-stamps-batch7-1519e053.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/ruff-format/docs-drop-pointer-stamps-batch7-0c8e5683.md b/.changes/ruff-format/docs-drop-pointer-stamps-batch7-0c8e5683.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/ruff-format/docs-drop-pointer-stamps-batch7-0c8e5683.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/songwriting/docs-drop-pointer-stamps-batch7-d9fc3ced.md b/.changes/songwriting/docs-drop-pointer-stamps-batch7-d9fc3ced.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/songwriting/docs-drop-pointer-stamps-batch7-d9fc3ced.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/speech/docs-drop-pointer-stamps-batch7-f89dc36b.md b/.changes/speech/docs-drop-pointer-stamps-batch7-f89dc36b.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/speech/docs-drop-pointer-stamps-batch7-f89dc36b.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/sql-server/docs-drop-pointer-stamps-batch7-662af29a.md b/.changes/sql-server/docs-drop-pointer-stamps-batch7-662af29a.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/sql-server/docs-drop-pointer-stamps-batch7-662af29a.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/tdd/docs-drop-pointer-stamps-batch7-61f46131.md b/.changes/tdd/docs-drop-pointer-stamps-batch7-61f46131.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/tdd/docs-drop-pointer-stamps-batch7-61f46131.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/toolchain/docs-drop-pointer-stamps-batch7-5e78dc3d.md b/.changes/toolchain/docs-drop-pointer-stamps-batch7-5e78dc3d.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/toolchain/docs-drop-pointer-stamps-batch7-5e78dc3d.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/typos-format/docs-drop-pointer-stamps-batch7-46903bca.md b/.changes/typos-format/docs-drop-pointer-stamps-batch7-46903bca.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/typos-format/docs-drop-pointer-stamps-batch7-46903bca.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/wizard/docs-drop-pointer-stamps-batch7-32bd25bf.md b/.changes/wizard/docs-drop-pointer-stamps-batch7-32bd25bf.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/wizard/docs-drop-pointer-stamps-batch7-32bd25bf.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/writing/docs-drop-pointer-stamps-batch7-1a6c8d9b.md b/.changes/writing/docs-drop-pointer-stamps-batch7-1a6c8d9b.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/writing/docs-drop-pointer-stamps-batch7-1a6c8d9b.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/x/docs-drop-pointer-stamps-batch7-718b4801.md b/.changes/x/docs-drop-pointer-stamps-batch7-718b4801.md new file mode 100644 index 00000000000..b6bdc3f861e --- /dev/null +++ b/.changes/x/docs-drop-pointer-stamps-batch7-718b4801.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/plugins/actionlint/README.md b/plugins/actionlint/README.md index d38e8692a48..d9d3cd34a84 100644 --- a/plugins/actionlint/README.md +++ b/plugins/actionlint/README.md @@ -23,8 +23,7 @@ It ships no rules of its own and no binary. It runs the `actionlint` already on - **External run-block linters disabled (`-shellcheck= -pyflakes=`).** actionlint's embedded-bash ShellCheck and `shell: python` pyflakes integrations are turned off at commit time; run the full integrations in CI. For how the integration runs, see - [actionlint checks: ShellCheck integration for `run:`](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#shellcheck-integration-for-run) - (as of 2026-11-03; recheck when that section changes how ShellCheck is invoked per `run:` block). + [actionlint checks: ShellCheck integration for `run:`](https://github.com/rhysd/actionlint/blob/main/docs/checks.md#shellcheck-integration-for-run). - **Opt-in end-of-turn check.** With `actionlint_end_of_turn` on, a Stop row runs the same check over the uncommitted workflow changes (untracked files included) when a turn ends and hands findings back to Claude once per turn. Nothing is rewritten. Off by default. @@ -89,9 +88,8 @@ Then verify prerequisites with `/actionlint:setup check` and register the pre-co ## Configuration For actionlint's own configuration file, see -[actionlint configuration: Configuration file](https://github.com/rhysd/actionlint/blob/main/docs/config.md#configuration-file) -(as of 2026-11-03; recheck when that section changes where the file is read from). Two -`userConfig` options tune the hooks themselves: +[actionlint configuration: Configuration file](https://github.com/rhysd/actionlint/blob/main/docs/config.md#configuration-file). +Two `userConfig` options tune the hooks themselves: - **`actionlint_enabled`** (boolean, default `true`). Kill switch for the plugin's Claude Code hooks (the end-of-turn row and the SessionStart probe). It does not govern the git pre-commit diff --git a/plugins/actionlint/skills/setup/SKILL.md b/plugins/actionlint/skills/setup/SKILL.md index ff715a39d60..1c993b1fa2a 100644 --- a/plugins/actionlint/skills/setup/SKILL.md +++ b/plugins/actionlint/skills/setup/SKILL.md @@ -166,9 +166,6 @@ Run `check`, then for each FAIL point at the resolution. This skill installs not when a saved value applies, fetch [plugin CLI reference § plugin configure](https://code.claude.com/docs/en/plugins/cli-reference#plugin-configure) live. - - **As of**: 2026-11-11 - - **Recheck trigger**: that section changes the command's flags, how it reports a saved or - refused value, or when a saved value applies. After pointing at a remediation, re-run the relevant `check` probe live via Bash (a pre-computed row predates the remediation, so never re-read it) and report its actual result. Never claim resolved on @@ -181,8 +178,7 @@ Re-running `apply` after everything passes changes nothing and reports "already - **A userConfig knob is reachable natively only if the manifest declares it.** An undeclared key silently cannot be set through native plugin configuration (a raw settings `env` block still works). Pointer: the `--config` row in - [`plugin install`](https://code.claude.com/docs/en/plugins/cli-reference#plugin-install). As of: - 2026-11-10. Recheck trigger: that row lets `--config` set a key the manifest does not declare. + [`plugin install`](https://code.claude.com/docs/en/plugins/cli-reference#plugin-install). - **What each headless route does to stored options is the convention's to state.** Read it in [§ The routes](../../reference/plugin-reconfiguration.md#the-routes), which also holds the verified-version record: which CLI release each behavior was observed on, diff --git a/plugins/adhd/README.md b/plugins/adhd/README.md index 70be3cafcb9..9c0eeae6861 100644 --- a/plugins/adhd/README.md +++ b/plugins/adhd/README.md @@ -90,12 +90,10 @@ deliberate non-goal for this version, recorded here so it is not re-litigated: A switch that cannot act would be a dead knob. When re-deriving where a saved value can reach, fetch [Reference a saved value](https://code.claude.com/docs/en/plugins/manifest-reference#reference-a-saved-value) - live (as of 2026-10-11; recheck when that section adds frontmatter or - invocation to where a value substitutes). + live. - **A hook is the mechanism it would take.** When re-deriving which hook event can arm the rules at every session start, fetch - [SessionStart](https://code.claude.com/docs/en/hooks#sessionstart) live - (as of 2026-11-03; recheck when that section changes how a hook adds context). + [SessionStart](https://code.claude.com/docs/en/hooks#sessionstart) live. A hook is a code-execution trust surface, adopted only on demonstrated need, and the session-standing behavior above already covers the common case (invoke once, shaped for the rest of the session). diff --git a/plugins/adhd/skills/clarify/SKILL.md b/plugins/adhd/skills/clarify/SKILL.md index c59b7138e4c..00580f1020f 100644 --- a/plugins/adhd/skills/clarify/SKILL.md +++ b/plugins/adhd/skills/clarify/SKILL.md @@ -124,8 +124,7 @@ plugin-data substitution variable for it. - **Pointer**: when choosing any `${…}` token for this skill's body, fetch [Available string substitutions](https://code.claude.com/docs/en/skills#available-string-substitutions) - live. **As of**: 2026-10-11. **Recheck trigger**: that section adds a plugin-data or - temp-directory variable, or documents the session scratchpad. + live. With neither a writable temp location nor the Artifact surface, use terminal markdown. The fidelity rules hold in every medium. @@ -165,8 +164,7 @@ Load the `artifact-design` skill when it is available. When it is not, meet the own stated requirements and keep the page self-contained. - **Pointer**: when `artifact-design` is absent, read the Artifact tool's definition and fetch - [Page constraints](https://code.claude.com/docs/en/artifacts#page-constraints) live. **As of**: - 2026-10-11. **Recheck trigger**: that section adds or drops a page requirement or limit. + [Page constraints](https://code.claude.com/docs/en/artifacts#page-constraints) live. The decision table is the page's spine; it needs no runtime capabilities. Keep it utilitarian: no hero banner, no italic accent words in headings, no "01 / 02 / 03" section labels (`#` is the diff --git a/plugins/adhd/skills/shape/SKILL.md b/plugins/adhd/skills/shape/SKILL.md index 89e467c0fae..6669ad2943e 100644 --- a/plugins/adhd/skills/shape/SKILL.md +++ b/plugins/adhd/skills/shape/SKILL.md @@ -206,9 +206,7 @@ Before sending, delete: - **The standing posture erodes across context compaction.** Re-invoke `/adhd:shape` if responses stop being shaped. What compaction keeps of an - invoked skill: [Skill content lifecycle](https://code.claude.com/docs/en/skills#skill-content-lifecycle); - as of 2026-11-10; recheck when that section changes what compaction keeps - of an invoked skill. + invoked skill: [Skill content lifecycle](https://code.claude.com/docs/en/skills#skill-content-lifecycle). ## Attribution diff --git a/plugins/ai-briefing/skills/generate/SKILL.md b/plugins/ai-briefing/skills/generate/SKILL.md index cbdb0391239..a80195c5070 100644 --- a/plugins/ai-briefing/skills/generate/SKILL.md +++ b/plugins/ai-briefing/skills/generate/SKILL.md @@ -115,9 +115,7 @@ CLAUDE_PLUGIN_DATA="${CLAUDE_PLUGIN_DATA}" AI_BRIEFING_PROFILE="$PROFILE" node " Set `CLAUDE_PLUGIN_DATA` on the launch the same way. The Bash tool's environment does not carry this plugin's value, and another plugin's SessionStart hook can export its own data directory under that name, so the build uses an inherited value only when it names ai-briefing. Basis: the -plugins reference, , -verified 2026-10-07; recheck when that table lists the Bash tool among the processes that receive -the variables. +plugins reference, . Keep the selection per-invocation: set it on each launched process as above, never as a global export the consumer adds to their shell profile. A global export pins one profile for every diff --git a/plugins/ai-briefing/skills/setup/SKILL.md b/plugins/ai-briefing/skills/setup/SKILL.md index 20d914c428c..aa7f1d0df77 100644 --- a/plugins/ai-briefing/skills/setup/SKILL.md +++ b/plugins/ai-briefing/skills/setup/SKILL.md @@ -95,9 +95,6 @@ to `apply`, which is the action that writes. and when a saved value applies, fetch [plugin CLI reference § plugin configure](https://code.claude.com/docs/en/plugins/cli-reference#plugin-configure) live. - - **As of**: 2026-11-11 - - **Recheck trigger**: that section changes the command's flags, how it reports a saved or - refused value, or when a saved value applies. - **Neither, for a one-off:** a per-run `--profile ` selects a different profile without touching stored config. 2. **`sources.md`.** FAIL if the resolved profile has no `sources.md`: `/ai-briefing:generate` diff --git a/plugins/ai-slop/skills/audit/SKILL.md b/plugins/ai-slop/skills/audit/SKILL.md index ed6a9f60ea4..28c855c6de1 100644 --- a/plugins/ai-slop/skills/audit/SKILL.md +++ b/plugins/ai-slop/skills/audit/SKILL.md @@ -33,8 +33,7 @@ is one command, the detector alone, which an `allowed-tools` grant names. - **Pointer**: when changing this line or its grants, fetch live; the probe that found a zero-turn run under dontAsk is in - . **As of**: 2026-10-10. **Recheck trigger**: a Claude - Code release note that changes how pre-compute commands are permission-checked. + . ## Purpose @@ -162,9 +161,6 @@ the fix flow, under [Non-repository targets](#non-repository-targets). [Explore the directory](https://code.claude.com/docs/en/claude-directory#explore-the-directory), [File reference](https://code.claude.com/docs/en/claude-directory#file-reference) and the `CLAUDE_CONFIG_DIR` row of [Variables](https://code.claude.com/docs/en/env-vars#variables) live. - - **As of**: 2026-11-10 - - **Recheck trigger**: those sections add, move, or drop a user-level markdown surface, or change - what `CLAUDE_CONFIG_DIR` relocates. - `@path` imports are not followed. Pass an imported file as an explicit path target. - `memory` lists the default auto memory location only; the script warns when the user `settings.json` sets `autoMemoryDirectory`, and a relocated directory is passed as a path @@ -172,9 +168,6 @@ the fix flow, under [Non-repository targets](#non-repository-targets). - **Pointer**: when auto memory may live somewhere else, fetch [`autoMemoryDirectory`](https://code.claude.com/docs/en/settings-reference#automemorydirectory) and [Storage location](https://code.claude.com/docs/en/memory#storage-location) live. - - **As of**: 2026-11-10 - - **Recheck trigger**: either section changes the default auto memory location or which settings - scopes can move it. - A symlink is followed only to a readable regular `.md` file inside the config root, and that file is listed once. A symlinked directory is not walked, and a link pointing outside the root is skipped; the script names each on stderr. Pass a skipped link's target as an diff --git a/plugins/ai-slop/skills/audit/context/rubric-fanout.md b/plugins/ai-slop/skills/audit/context/rubric-fanout.md index 890a7b62311..a0f99574577 100644 --- a/plugins/ai-slop/skills/audit/context/rubric-fanout.md +++ b/plugins/ai-slop/skills/audit/context/rubric-fanout.md @@ -63,9 +63,8 @@ entries plus the "Signs of human writing" section to that file. One fresh-context subagent per batch, all dispatched in one message so they run concurrently. Dispatch each with `model: sonnet` on the Agent call itself. Which model that alias resolves to, and how the per-call value ranks against the agent definition and the session model, is in -[Choose a model](https://code.claude.com/docs/en/sub-agents#choose-a-model). As of: 2026-10-11. -Recheck trigger: that section changes the accepted aliases, the resolution order, or how a -family alias resolves. Each subagent receives: +[Choose a model](https://code.claude.com/docs/en/sub-agents#choose-a-model). Each subagent +receives: - the path of the extracted rubric file, and nothing else from the catalog; - the path of its batch list and the digest the batch's `status` row printed (`status` runs diff --git a/plugins/animation/skills/rotoscope/reference/method.md b/plugins/animation/skills/rotoscope/reference/method.md index 6ae45832812..0a3768434f4 100644 --- a/plugins/animation/skills/rotoscope/reference/method.md +++ b/plugins/animation/skills/rotoscope/reference/method.md @@ -108,8 +108,6 @@ quantized tone ramp. - **Pointer**: when sizing a tile or crop, or when review runs on a new model, fetch [Vision: Resolution and token cost](https://platform.claude.com/docs/en/build-with-claude/vision#evaluate-image-size) live. - - **As of**: 2026-10-11 - - **Recheck trigger**: that table changes, or review runs on a model outside it. ## Known limits diff --git a/plugins/app-control/reference/control-skill.md b/plugins/app-control/reference/control-skill.md index af04a2fa8d0..7f1e5185916 100644 --- a/plugins/app-control/reference/control-skill.md +++ b/plugins/app-control/reference/control-skill.md @@ -162,46 +162,38 @@ person hands over, can be read frame by frame. It is not a capture kind. Drive's whether this session can run it and read the images it writes; a hub with no `frames` row, or a session that cannot read images, is a capability gap. -Manuals, each record a pointer, as-of date and recheck trigger: +Manuals, each record a pointer: - Node.js CLI options: CPU profile , heap profile , heap snapshot signal - . As of 2026-10-23. Recheck on a - Node.js major release. + . - Chrome DevTools Performance panel: . Memory panel heap snapshots: . - As of 2026-10-23. Recheck when either page changes how a recording is saved. -- py-spy: . memray: . As of - 2026-10-04. Recheck on a new major release of either. py-spy dump: - . As of 2026-10-23. Recheck on a py-spy major release. +- py-spy: . memray: . + py-spy dump: . - JDK `jcmd`, `Thread.print` included: - . As of - 2026-10-27. JDK `jfr`: . - As of 2026-10-23. Recheck either when the project moves to a newer LTS JDK. + . JDK + `jfr`: . - .NET diagnostics tools: , . - As of 2026-10-23. Recheck on a .NET major release. dotnet-stack: - . As - of 2026-10-27. Recheck on a .NET major release. dotnet-counters: + dotnet-stack: + . + dotnet-counters: . - As of 2026-10-30. Recheck on a .NET major release. - Go profiling endpoints: ; the pprof tool: - . As of 2026-10-23. Recheck on a Go minor release. + . - GDB: `thread apply all` ; attaching by pid and running one command ; batch - mode . As - of 2026-10-27. Recheck on a GDB major release. -- Linux `perf record`: . As of - 2026-10-04. Recheck when the host kernel's perf version changes. -- heaptrack: . As of 2026-10-04. Recheck on a new major release. -- macOS `sample`, `spindump` and `leaks`: no Apple docs page covers their flags as of 2026-10-23, - so read the man pages on the host (`man sample`). Recheck on a macOS major release, or when an - Apple docs page starts to cover these tools' flags. + mode . +- Linux `perf record`: . +- heaptrack: . +- macOS `sample`, `spindump` and `leaks`: no Apple docs page covers their flags, so read the man + pages on the host (`man sample`). ## The Mask section diff --git a/plugins/app-control/skills/drive/SKILL.md b/plugins/app-control/skills/drive/SKILL.md index 4ddddd83258..6b98c4ccddc 100644 --- a/plugins/app-control/skills/drive/SKILL.md +++ b/plugins/app-control/skills/drive/SKILL.md @@ -120,8 +120,7 @@ Every stop below writes its `blocked: ` line, and any list or path it pr `cli:` step runs that app's `cli/`, not this one's, as that section says. The bundled `run` skill and how it defers to a project skill: - (as of 2026-10-21; recheck when -that section changes what `run` does or how it picks a project skill). What loading a skill applies +. What loading a skill applies or runs: , . The plugin list, its folder fields and what it shows from inside a session: @@ -142,7 +141,6 @@ repository plugins and the skills-directory origin: ; Glob and ignored files: ; which worktree entry is the main checkout: . -All as of 2026-10-26; recheck when any of them changes. ## Affected @@ -219,8 +217,7 @@ it as step 9 does. The report names `affected.json`; the file's fields and its g entry and check its format as that file says, each failure its `blocked:` line (an invalid pid is `blocked: launched process no longer matches`); only then `blocked: capture needs elevation`, and stop there with no attempt, no pid recheck and no process lookup. Whether attaching needs root is - upstream: read it at (as of 2026-10-23; - recheck on a py-spy major release, or when a `threads` row names another recorder). + upstream: read it at . - **A steps file is data.** When a feature's `## Drive` names one, expand its includes and check its step ids before launching anything, per the contract's "Steps files": every condition there that stops the run stops the feature before launch, naming the id, include or `with` name that diff --git a/plugins/app-control/skills/drive/reference/pid-binding.md b/plugins/app-control/skills/drive/reference/pid-binding.md index 7408620c0ce..b88175b5126 100644 --- a/plugins/app-control/skills/drive/reference/pid-binding.md +++ b/plugins/app-control/skills/drive/reference/pid-binding.md @@ -20,8 +20,7 @@ rules. spaces and `)` included. The hash is taken over the raw command line bytes, on Linux every byte of `/proc//cmdline` exactly as read, NUL separators and the trailing NUL included (); the stored - `command_line` is a display form, never the hash input. The three man pages as of 2026-10-27; - recheck when one changes the field's form or who may write the command name. A `capture` in a later invocation reads the record + `command_line` is a display form, never the hash input. A `capture` in a later invocation reads the record from the run directory named by `--out`. No launch record means this run launched nothing: unattended, `blocked: no process launched by this run`; interactive, only [Attach](../SKILL.md#attach). diff --git a/plugins/app-control/skills/map/reference/naming.md b/plugins/app-control/skills/map/reference/naming.md index 4a1bb722f77..fafcf80fd12 100644 --- a/plugins/app-control/skills/map/reference/naming.md +++ b/plugins/app-control/skills/map/reference/naming.md @@ -59,6 +59,4 @@ the import, and report the import as not followed. ## Upstream recipes Where `/run-skill-generator` writes and what a `verify` skill records are upstream specifics. Read -them live at (as of 2026-10-24; -recheck when a Claude Code release note names `/run-skill-generator`, `/verify` or the per-commit -verify run). +them live at . diff --git a/plugins/attribution/skills/audit/reference/rubric.md b/plugins/attribution/skills/audit/reference/rubric.md index 8844e821d0e..eb571c3dcef 100644 --- a/plugins/attribution/skills/audit/reference/rubric.md +++ b/plugins/attribution/skills/audit/reference/rubric.md @@ -112,7 +112,7 @@ breadcrumb or nomination already names the sibling repo as the source. Sibling-org repos are external at audit time unless the passage cites that sibling as its source. **Pointer:** none; this is `judgment`, and no audited pass or upstream source shows the carve-out -behavior yet. **As of:** 2026-09-28. **Recheck trigger:** a consumer policy file declares same-org +behavior yet. **Recheck trigger:** a consumer policy file declares same-org siblings owned, or a golden case is added that turns on this boundary. ### 5. Distilled-product architectures diff --git a/plugins/attribution/skills/audit/reference/source-fetch.md b/plugins/attribution/skills/audit/reference/source-fetch.md index eda1a186e84..a28505e2db7 100644 --- a/plugins/attribution/skills/audit/reference/source-fetch.md +++ b/plugins/attribution/skills/audit/reference/source-fetch.md @@ -62,7 +62,7 @@ where the doc says none occurs, or an identity check the doc's two tests do not |---|---|---| | 1, primary | Fetch the page through the docs lookup (below), which reads the raw-markdown channel to a file; search the file locally | Verbatim bytes, no summarizer, no truncation | | 1b, publisher source | When rung 1's `.md` channel 404s, read the file from the **publisher's own source repository** on the branch or tag the published site deploys from (for example `raw.githubusercontent.com////…`) | Verbatim bytes from first-party source control; no summarizer | -| 2, primary degraded | The `.md` channel through a summarizing tool, or the rendered HTML page | Truncates on long pages; usable only when the read shows the page arrived whole. For whether the built-in fetch tool still summarizes or truncates, read [WebFetch tool behavior](https://code.claude.com/docs/en/tools-reference#webfetch-tool-behavior) live (as of 2026-10-11; recheck when that section changes what the tool returns) | +| 2, primary degraded | The `.md` channel through a summarizing tool, or the rendered HTML page | Truncates on long pages; usable only when the read shows the page arrived whole. For whether the built-in fetch tool still summarizes or truncates, read [WebFetch tool behavior](https://code.claude.com/docs/en/tools-reference#webfetch-tool-behavior) live | | 3, mirror | A verbatim third-party mirror, with the freshness step below | Verbatim text, one rung below a primary read, and the finding says so | Rung 1 runs `bash "/../../scripts/fetch-docs.sh" --cache --max-age 0 --profile diff --git a/plugins/bash-format/README.md b/plugins/bash-format/README.md index d38391adb83..41fbd6d3dc8 100644 --- a/plugins/bash-format/README.md +++ b/plugins/bash-format/README.md @@ -20,8 +20,6 @@ for formatting. It ships no rules of its own. without a shell file costs one `node` process. - **Pointer**: when deciding what filters a `PostToolBatch` row, fetch [hooks: PostToolBatch](https://code.claude.com/docs/en/hooks#posttoolbatch) live. - **As of**: 2026-10-15. **Recheck trigger**: that section adds a matcher or an `if` for the - event, or changes the `tool_calls` fields. - **Format is opt-in.** shfmt runs **only when an `.editorconfig` section names shell files**: a shell glob such as `[*.sh]`, `[*.bash]`, or `[*.{sh,bash}]` (including path-prefixed forms like `[**/*.sh]`), found by walking up from the file to the repository root. A bare `[*]` catch-all is @@ -33,8 +31,7 @@ for formatting. It ships no rules of its own. sets the style and an `ignore = true` section (e.g. for generated or vendored scripts) excludes a file. For what each does, see the DESCRIPTION section and the `--apply-ignore` entry of the [shfmt manual page](https://github.com/mvdan/sh/blob/master/cmd/shfmt/shfmt.1.scd), which the - [mvdan/sh README: shfmt](https://github.com/mvdan/sh#shfmt) section links (as of 2026-11-03; - recheck when either changes how EditorConfig options or ignore rules apply). + [mvdan/sh README: shfmt](https://github.com/mvdan/sh#shfmt) section links. - **Pre-existing drift is rewritten whole.** The batch payload carries no pre-edit bytes, so a file that already drifted from your style is formatted in full, as the pre-commit entry would. - **A rewrite that would change an array subscript is put back.** shfmt parses an unquoted @@ -57,8 +54,7 @@ for formatting. It ships no rules of its own. - **Config from the consumer.** Both tools read their configuration from your repository: `.shellcheckrc` for ShellCheck and `.editorconfig` for shfmt. For how each file is found, see [ShellCheck manual: RC FILES](https://github.com/koalaman/shellcheck/blob/master/shellcheck.1.md#rc-files) - and the shfmt manual page linked above (as of 2026-11-03; recheck when either changes where it - looks for its file). Files under `.githooks/` (installed copies) are skipped. + and the shfmt manual page linked above. Files under `.githooks/` (installed copies) are skipped. - **Gitignored files are skipped by default in the session.** The batch row does not rewrite a file the repository gitignores, silently, since a rewrite of an ignored file has no git checkout to undo it. Set `bash_format_lint_gitignored` to `true` to act on them too. A tracked file that @@ -108,10 +104,8 @@ at the end of a turn, without rewriting, and hands findings back to Claude once - **Node.js** on `PATH`. Every hook row runs through `node hooks/exec-bash.mjs`, so without `node` the hook does not launch and shell edits are not formatted. We do not assume a Claude Code install brings Node. Pointer: when deciding whether it does, fetch - [setup: Install with npm](https://code.claude.com/docs/en/setup#install-with-npm) live. - As of: 2026-10-11. Recheck trigger: that section or - [System requirements](https://code.claude.com/docs/en/setup#system-requirements) changes which - install needs Node at runtime. A missing `node` shows no notice from this plugin. Check it with + [setup: Install with npm](https://code.claude.com/docs/en/setup#install-with-npm) and + [System requirements](https://code.claude.com/docs/en/setup#system-requirements) live. A missing `node` shows no notice from this plugin. Check it with `/bash-format:setup check`. [Install Node.js](https://nodejs.org/en/download). - **jq** on `PATH`. Reads the file paths from the `PostToolBatch` payload and the syntax tree for the subscript guard. Absent: the batch row does nothing, the pre-commit entry skips its rewrite, diff --git a/plugins/bash-format/skills/setup/SKILL.md b/plugins/bash-format/skills/setup/SKILL.md index f3a0fc327d8..6b61f7014a5 100644 --- a/plugins/bash-format/skills/setup/SKILL.md +++ b/plugins/bash-format/skills/setup/SKILL.md @@ -219,9 +219,6 @@ skill installs nothing: when a saved value applies, fetch [plugin CLI reference § plugin configure](https://code.claude.com/docs/en/plugins/cli-reference#plugin-configure) live. - - **As of**: 2026-11-11 - - **Recheck trigger**: that section changes the command's flags, how it reports a saved or - refused value, or when a saved value applies. After pointing at a remediation, re-run the relevant `check` probe live via Bash (a pre-computed row predates the remediation, so never re-read it) and report its actual result. Never claim resolved on diff --git a/plugins/biome-format/README.md b/plugins/biome-format/README.md index 00fbfa5b7a7..1dd7def0eb8 100644 --- a/plugins/biome-format/README.md +++ b/plugins/biome-format/README.md @@ -22,8 +22,6 @@ runs only when your repo has opted into Biome. launcher and one `bash`. - **Pointer**: when deciding what filters a `PostToolBatch` row, fetch [hooks: PostToolBatch](https://code.claude.com/docs/en/hooks#posttoolbatch) live. - **As of**: 2026-10-15. **Recheck trigger**: that section adds a matcher or an `if` for the - event, or changes the `tool_calls` fields. - **Opt-in on `biome.json`.** Biome runs **only when a `biome.json` or `biome.jsonc` governs the edited file**, found by walking up from the file to the repository root. A repo without a Biome config is left untouched rather @@ -40,7 +38,6 @@ runs only when your repo has opted into Biome. until you fix it; the pre-commit entry reports it. - **Pointer**: when deciding what `--write` applies, fetch [CLI: --write, --fix](https://biomejs.dev/reference/cli/#--write---fix) live. - **As of**: 2026-11-03. **Recheck trigger**: that section changes which fixes the flag applies. - **Pre-existing drift is rewritten whole.** The batch payload carries no pre-edit bytes, so a file that already drifted from your config is formatted in full, as the pre-commit entry would. - **Respects your ignores.** Biome honors your config's `files.includes` ignore rules even for an diff --git a/plugins/biome-format/skills/setup/SKILL.md b/plugins/biome-format/skills/setup/SKILL.md index 9c658355fc3..b50733ed83c 100644 --- a/plugins/biome-format/skills/setup/SKILL.md +++ b/plugins/biome-format/skills/setup/SKILL.md @@ -195,9 +195,6 @@ command's exit code alone. For everything else `apply` only points: when a saved value applies, fetch [plugin CLI reference § plugin configure](https://code.claude.com/docs/en/plugins/cli-reference#plugin-configure) live. - - **As of**: 2026-11-11 - - **Recheck trigger**: that section changes the command's flags, how it reports a saved or - refused value, or when a saved value applies. - no Biome config: offer to create a minimal `biome.json` in the repository root only when explicitly asked. The plugin imposes no rules of its own. diff --git a/plugins/code-metrics/reference/report-schema.md b/plugins/code-metrics/reference/report-schema.md index c9f5a329fc0..d01a04ab6d3 100644 --- a/plugins/code-metrics/reference/report-schema.md +++ b/plugins/code-metrics/reference/report-schema.md @@ -41,7 +41,6 @@ rather than mixing versions. No reader outside this plugin opens a saved report. [ADR 0013](../../../docs/adr/0013-keep-storage-format-identifiers-stable-across-renames.md) covers only that a storage-format identifier changes through a migration with a compatibility window; it does not settle this case. -- As of: 2026-09-29. - Recheck: a tool, skill, or workflow outside this plugin starts reading a saved report. ## Path relativity diff --git a/plugins/code-metrics/scripts/persist-report.sh b/plugins/code-metrics/scripts/persist-report.sh index e64929c167e..c3708b80b5e 100755 --- a/plugins/code-metrics/scripts/persist-report.sh +++ b/plugins/code-metrics/scripts/persist-report.sh @@ -15,12 +15,10 @@ # code-metrics, else ~/.claude/plugins/data/code-metrics/reports (a # CLAUDE_PLUGIN_DATA seen here may be unset or name another plugin's data dir, # whose files the retention below must never prune; where the plugin variables -# are exported is the pointer in skills/principles/SKILL.md#spoke-paths, as of -# 2026-10-11; recheck when that section's pointer changes), and is -# what -# lib/state-key.sh prints for the working directory. One project's runs share a -# directory, so the newest-CM_REPORTS_KEPT retention counts per project. When -# the key cannot be derived the function says why on stderr and returns 1 +# are exported is the pointer in skills/principles/SKILL.md#spoke-paths), and +# is what lib/state-key.sh prints for the working directory. One +# project's runs share a directory, so the newest-CM_REPORTS_KEPT retention +# counts per project. When the key cannot be derived the function says why on stderr and returns 1 # rather than fall back to a directory shared by every project. A directory # that cannot be written is reported the same way; the caller then renders # without a path, and the cap line says to re-run with --json instead. diff --git a/plugins/code-metrics/skills/audit/SKILL.md b/plugins/code-metrics/skills/audit/SKILL.md index 5cfc9b7e95e..91dd7e363ce 100644 --- a/plugins/code-metrics/skills/audit/SKILL.md +++ b/plugins/code-metrics/skills/audit/SKILL.md @@ -54,9 +54,7 @@ and the plugin's root directory as ``, which is `${CLAUDE_PLUGIN_RO paths in place of the placeholders before running a command: a `${…}` token in a supporting file is not one this plugin can rely on being expanded, either in the file or in the Bash tool. Where each plugin variable resolves, and where it is exported: the plugins reference, -, as of -2026-11-03; recheck when that table adds supporting files to where a `${…}` reference resolves, or -the Bash tool starts receiving the plugin variables. +. ## What this skill does not do diff --git a/plugins/code-metrics/skills/principles/SKILL.md b/plugins/code-metrics/skills/principles/SKILL.md index 4258af9bc55..abd334eceb7 100644 --- a/plugins/code-metrics/skills/principles/SKILL.md +++ b/plugins/code-metrics/skills/principles/SKILL.md @@ -134,8 +134,7 @@ substitutes for it, unless the bullet names its own fallback. Ivankovic, ICSE-SEIP 2018; Petrovic, Ivankovic, Fraser and Just, IEEE TSE 2022. - **ISO/IEC 5055:2021** (the ISO publication of OMG ASCQM v1.0) and **ISO/IEC 25023:2016**, cited by clause and version, never by page number. Pointer: when a later OMG ASCQM release matters, - fetch [ASCQM: Formal Versions](https://www.omg.org/spec/ASCQM/#spec-versions-formal) live. As of: - 2026-11-03. Recheck trigger: that list adds a release. + fetch [ASCQM: Formal Versions](https://www.omg.org/spec/ASCQM/#spec-versions-formal) live. Per-source annotation, including what each does not claim and the confidence behind it, is in [literature.md](reference/literature.md). @@ -153,9 +152,7 @@ The `reference/` files write the plugin's root directory as ``, whi writing it into a brief: a `${…}` token in a supporting file is not one this plugin can rely on being expanded, either in the file or in the Bash tool. Where each plugin variable resolves, and where it is exported: the plugins reference, -, as of -2026-10-11; recheck when that table adds supporting files to where a `${…}` reference resolves, or -the Bash tool starts receiving the plugin variables. +. ## Next diff --git a/plugins/code-metrics/skills/principles/reference/measures.md b/plugins/code-metrics/skills/principles/reference/measures.md index ebe18ef0741..d5ea4e829b8 100644 --- a/plugins/code-metrics/skills/principles/reference/measures.md +++ b/plugins/code-metrics/skills/principles/reference/measures.md @@ -167,8 +167,7 @@ comparable to a ratio. No standard and no CWE anchors any of this; see [threshol that text and the row is labeled with the tool's name. - **`shellmetrics` values depend on the parser shell.** Two machines can print different Bash complexity for the same script. Pointer: - [shellmetrics README § Usage](https://github.com/shellspec/shellmetrics#usage), as of 2026-11-10; - recheck when that section stops tying metric values to the shell used. + [shellmetrics README § Usage](https://github.com/shellspec/shellmetrics#usage). - **ESLint-based collectors report violations, not distributions.** The core `complexity` rule and `sonarjs/cognitive-complexity` fire above a threshold and stay silent below it, so they are run at a threshold of zero to make every function report. They resolve only when the repository already diff --git a/plugins/codebase-health/skills/audit/SKILL.md b/plugins/codebase-health/skills/audit/SKILL.md index 606f427cebf..08b141b3716 100644 --- a/plugins/codebase-health/skills/audit/SKILL.md +++ b/plugins/codebase-health/skills/audit/SKILL.md @@ -20,7 +20,6 @@ invocation: The pipe is the bound and belongs in the command. A read-time cap ("read only the first 20 entries") bounds nothing: the cap applies only after the command's output has come back. What a large output returns is in [Output limits](https://code.claude.com/docs/en/tools-reference#output-limits). -As of: 2026-10-11. Recheck trigger: that section changes what a valid result returns. Treat a failure (not a repository, git unavailable) as an unknown value and carry on. Keep these as separate body Bash calls rather than pre-compute lines @@ -29,8 +28,6 @@ separate body Bash calls rather than pre-compute lines Pointer for how injected commands run: [How injected commands run](https://code.claude.com/docs/en/skills#how-injected-commands-run). -As of: 2026-10-11. Recheck trigger: that section documents how a block's commands are grouped into -shell invocations. ## Variables @@ -143,7 +140,6 @@ an effort level, this body was read directly instead of skill-loaded, so the sub ran: treat the run as `high` and audit every resolved dimension. Pointer for the token and the levels it carries: [Available string substitutions](https://code.claude.com/docs/en/skills#available-string-substitutions). -As of: 2026-10-11. Recheck trigger: that section renames the token or changes its levels. Effort selects a **prefix of the resolved dimension list**, in the declaration order the ladder above settled. It never adds a dimension the config removed, and never reorders one: @@ -185,8 +181,6 @@ Before auditing, load what "correct" looks like in this repo: [Path-specific rules](https://code.claude.com/docs/en/memory#path-specific-rules); what a dispatched agent receives, [What loads at startup](https://code.claude.com/docs/en/sub-agents#what-loads-at-startup). - As of: 2026-10-11. Recheck trigger: either section changes when rule files or CLAUDE.md files - load. 2. **Resolve the audit config** per the dimension seam above; read the convention files its `verification-sources` name. diff --git a/plugins/codebase-health/skills/audit/context/discovery-method.md b/plugins/codebase-health/skills/audit/context/discovery-method.md index e509ecd608f..2bdc86c3885 100644 --- a/plugins/codebase-health/skills/audit/context/discovery-method.md +++ b/plugins/codebase-health/skills/audit/context/discovery-method.md @@ -78,10 +78,8 @@ matter. of in-session subagents. Same discovery, different executor. Pointers for what a workflow run offers: [How a workflow runs](https://code.claude.com/docs/en/workflows#how-a-workflow-runs) and [Save the workflow for reuse](https://code.claude.com/docs/en/workflows#save-the-workflow-for-reuse). -As of: 2026-10-11. Recheck trigger: either section changes how a run executes, resumes, or is -saved. This applies only when your environment provides a -background/saved-workflow execution surface; the in-session fan-out above is the default. Reach for -the workflow form only when you want a fire-and-forget periodic audit you can walk away from. An +This applies only when your environment provides a background/saved-workflow execution surface; +the in-session fan-out above is the default. Reach for the workflow form only when you want a fire-and-forget periodic audit you can walk away from. An interactive audit you are actively driving stays with the in-session fan-out. ## What to report diff --git a/plugins/corrections/skills/codify/actions/preferences.md b/plugins/corrections/skills/codify/actions/preferences.md index d27df85cdd8..79aa1367f3c 100644 --- a/plugins/corrections/skills/codify/actions/preferences.md +++ b/plugins/corrections/skills/codify/actions/preferences.md @@ -15,9 +15,6 @@ names a source, not a mistake, so section 1's exceptions do not lift the thresho and ; for user output styles, see . - - **As of**: 2026-10-04 - - **Recheck trigger**: either page moves the user-level location of instructions, rules or - output styles. 3. **Window.** Unless the person passed `--since`, use the UTC date the target was last modified, so a second pass reads only sessions newer than the last write: diff --git a/plugins/corrections/skills/codify/reference/finding-classes.md b/plugins/corrections/skills/codify/reference/finding-classes.md index 9bc48e798cd..12b627f18f6 100644 --- a/plugins/corrections/skills/codify/reference/finding-classes.md +++ b/plugins/corrections/skills/codify/reference/finding-classes.md @@ -48,7 +48,7 @@ detector is enabled again. The same gate and the same fallback bind the rule-fam | `testing/audit/rule-zero-assertion` | `defined-diagnostic` | `analyzer-pack-rule` | the test-framework analyzer pack already in the project | an assertion-free test body is a whole-method syntactic shape, which is what a test-framework analyzer pack is for; the work is enabling or raising a diagnostic, not writing one | | `testing/audit/rule-recomputed-expectation` | `dotnet-invariant` | `custom-analyzer` | Microsoft Learn analyzer tutorial (see the class table) | deciding an expected value was recomputed from the code under test needs the semantic model to resolve both sides to the same symbol, which no pack diagnostic states | | `testing/audit/rule-mock-only-oracle` | `dotnet-invariant` | `custom-analyzer` | Microsoft Learn analyzer tutorial (see the class table) | whether the oracle reaches only mocks is a property of which symbols the assertions touch, again a semantic-model question, and over the project's own mocking library | -| `testing/audit/rule-inert-assertion` | `defined-diagnostic` | `analyzer-pack-rule` | the test-framework analyzer pack already in the project | we map this rule to the pack diagnostic for the test's language, so the work is enabling or raising it, not writing one: xUnit2021, eslint-plugin-jest `valid-expect`, ShellCheck SC2314, Ruff F631. **Pointer**: when choosing the diagnostic to enable, fetch its rule page live: [xUnit2021](https://xunit.net/xunit.analyzers/rules/xUnit2021), [`valid-expect`](https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/valid-expect.md), [SC2314](https://www.shellcheck.net/wiki/SC2314), [F631](https://docs.astral.sh/ruff/rules/assert-tuple/). **As of**: 2026-10-31. **Recheck trigger**: one of those rule pages is renamed, removed or deprecated, or `testing:audit` changes what `rule-inert-assertion` matches | +| `testing/audit/rule-inert-assertion` | `defined-diagnostic` | `analyzer-pack-rule` | the test-framework analyzer pack already in the project | we map this rule to the pack diagnostic for the test's language, so the work is enabling or raising it, not writing one: xUnit2021, eslint-plugin-jest `valid-expect`, ShellCheck SC2314, Ruff F631. **Pointer**: when choosing the diagnostic to enable, fetch its rule page live: [xUnit2021](https://xunit.net/xunit.analyzers/rules/xUnit2021), [`valid-expect`](https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/valid-expect.md), [SC2314](https://www.shellcheck.net/wiki/SC2314), [F631](https://docs.astral.sh/ruff/rules/assert-tuple/). Revisit the mapping when `testing:audit` changes what `rule-inert-assertion` matches | | `testing/audit/rule-constant-restatement` | `defined-diagnostic` | `analyzer-pack-rule` | already deterministic: keep the `testing:audit` detector | the producing detector is itself the deterministic check, a pattern over the equality's two sides, so the cheapest rung is the one already running | | `testing/audit/rule-source-text-read` | `defined-diagnostic` | `analyzer-pack-rule` | already deterministic: keep the `testing:audit` detector | as above | | `testing/audit/rule-conditional-assertion` | `defined-diagnostic` | `analyzer-pack-rule` | already deterministic: keep the `testing:audit` detector | as above | @@ -56,7 +56,7 @@ detector is enabled again. The same gate and the same fallback bind the rule-fam | `testing/audit/rule-snapshot-only` | `defined-diagnostic` | `analyzer-pack-rule` | already deterministic: keep the `testing:audit` detector | as above | | `testing/audit/rule-weak-oracle` | `defined-diagnostic` | `analyzer-pack-rule` | already deterministic: keep the `testing:audit` detector | as above | | `testing/audit/rule-flaky-passes-suite` | `defined-diagnostic` | `analyzer-pack-rule` | already deterministic: keep the `testing:audit` detector | no analyzer pack reads Playwright `retries` against `failOnFlakyTests` (judgment), so the detector's config read stays the check | -| `testing/audit/rule-only-not-forbidden` | `defined-diagnostic` | `analyzer-pack-rule` | the project's ESLint config | we map this rule to eslint-plugin-playwright `no-focused-test`, enabled in the project's ESLint config. **Pointer**: when enabling it, fetch [its rule page](https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-focused-test.md) live. **As of**: 2026-10-31. **Recheck trigger**: that rule page is renamed, removed or deprecated, or `testing:audit` changes what `rule-only-not-forbidden` matches | +| `testing/audit/rule-only-not-forbidden` | `defined-diagnostic` | `analyzer-pack-rule` | the project's ESLint config | we map this rule to eslint-plugin-playwright `no-focused-test`, enabled in the project's ESLint config. **Pointer**: when enabling it, fetch [its rule page](https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-focused-test.md) live. Revisit the mapping when `testing:audit` changes what `rule-only-not-forbidden` matches | | `ai-slop/audit/rule-em-dash` | `defined-diagnostic` | `analyzer-pack-rule` | already deterministic: keep the `ai-slop:audit` detector | the producing detector is itself the deterministic check, so the cheapest rung is the one already running; hold its severity rather than rebuild it | | `ai-slop/audit/rule-emoji-formatting` | `defined-diagnostic` | `analyzer-pack-rule` | already deterministic: keep the `ai-slop:audit` detector | as above: the detector fires this rule from a pattern, not a judgment | | `ai-slop/audit/rule-curly-artifacts` | `defined-diagnostic` | `analyzer-pack-rule` | already deterministic: keep the `ai-slop:audit` detector | as above | diff --git a/plugins/debugging/skills/analyze-profile/SKILL.md b/plugins/debugging/skills/analyze-profile/SKILL.md index 3a5c0a7b07f..75781fa30d7 100644 --- a/plugins/debugging/skills/analyze-profile/SKILL.md +++ b/plugins/debugging/skills/analyze-profile/SKILL.md @@ -82,8 +82,7 @@ Run queries through `scripts/query_profile.py`, which opens the database read-on as bound parameters and refuses any statement other than a read. The format pages write this skill's directory as ``, which is `${CLAUDE_SKILL_DIR}`; put that path in place of the placeholder before running a command (where Claude Code substitutes it: -[Plugins reference, "Where each variable resolves"](https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves), -as of 2026-11-10; recheck when that section substitutes variables in files read with the Read tool). +[Plugins reference, "Where each variable resolves"](https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves)). **Before you answer**, hold the draft against each row: diff --git a/plugins/debugging/skills/analyze-profile/reference/formats/chrome-trace.md b/plugins/debugging/skills/analyze-profile/reference/formats/chrome-trace.md index f7be88526c1..4e2c72c4ae5 100644 --- a/plugins/debugging/skills/analyze-profile/reference/formats/chrome-trace.md +++ b/plugins/debugging/skills/analyze-profile/reference/formats/chrome-trace.md @@ -7,8 +7,7 @@ non-browser tools write this shape. Format pointer: the Trace Event Format document, , and Perfetto's -documentation, . As of 2026-10-04. Recheck when the converter exits 2 -on a trace a current Chrome saved, or when DevTools changes its save format. +documentation, . ## What the converter stores diff --git a/plugins/debugging/skills/analyze-profile/reference/formats/cpuprofile.md b/plugins/debugging/skills/analyze-profile/reference/formats/cpuprofile.md index fb896d1d588..03524828619 100644 --- a/plugins/debugging/skills/analyze-profile/reference/formats/cpuprofile.md +++ b/plugins/debugging/skills/analyze-profile/reference/formats/cpuprofile.md @@ -5,8 +5,7 @@ Load this page when the artifact is a JSON object with `nodes`, `samples` and us DevTools and the inspector protocol save the same shape. Format pointer: the `Profile` type (`type Profile extends object`) in the DevTools protocol Profiler -domain, . As of 2026-10-04. -Recheck when the converter exits 2 on a profile a current Node.js or Chrome wrote. +domain, . ## What the converter stores @@ -61,6 +60,5 @@ WHERE f.name IN ('(program)', '(idle)', '(garbage collector)') GROUP BY s.profil ## Resolving the symbol A `url` pointing at a bundle (`main.3f9a.js`) with a short or mangled name needs the bundle's source -map. The `source-map` library (, as of 2026-10-04, recheck on -its next major release) maps a generated line and column back to the original file and line. With +map. The `source-map` library () maps a generated line and column back to the original file and line. With no map available, report the bundle position and say that the map is missing. diff --git a/plugins/debugging/skills/analyze-profile/reference/formats/heapsnapshot.md b/plugins/debugging/skills/analyze-profile/reference/formats/heapsnapshot.md index 7c439b1f4a5..b9eb1a405a0 100644 --- a/plugins/debugging/skills/analyze-profile/reference/formats/heapsnapshot.md +++ b/plugins/debugging/skills/analyze-profile/reference/formats/heapsnapshot.md @@ -8,8 +8,7 @@ Format pointer: the HeapProfiler domain of the DevTools protocol, , and the DevTools heap snapshot guide, . The field layout is described inside each file under `snapshot.meta`, and the converter reads it from -there. As of 2026-10-04. Recheck when the converter exits 2 on a snapshot a current Chrome or -Node.js wrote. +there. ## What the converter stores diff --git a/plugins/debugging/skills/analyze-profile/reference/formats/other-formats.md b/plugins/debugging/skills/analyze-profile/reference/formats/other-formats.md index c806aa452e6..ff4dd3330c9 100644 --- a/plugins/debugging/skills/analyze-profile/reference/formats/other-formats.md +++ b/plugins/debugging/skills/analyze-profile/reference/formats/other-formats.md @@ -22,19 +22,14 @@ platform's symbol server); say which are missing when they are. ## Pointers -- pprof: . As of 2026-10-04. Recheck on a Go minor release. +- pprof: . - perf: ; FlameGraph: - . As of 2026-10-04. Recheck when the host's perf - version changes. + . - .NET diagnostics tools and symbols: , , - . As of 2026-10-04. Recheck - on a .NET major release. -- JFR: . As of 2026-10-04. - Recheck when the project moves to a newer LTS JDK. + . +- JFR: . - speedscope: ; py-spy: ; - memray: . As of 2026-10-04. Recheck on a major release of - any of them. -- addr2line: . As of 2026-10-04. - Recheck on a binutils major release. + memray: . +- addr2line: . diff --git a/plugins/debugging/skills/debug/SKILL.md b/plugins/debugging/skills/debug/SKILL.md index 178e7ff8d3d..2c04470b5e6 100644 --- a/plugins/debugging/skills/debug/SKILL.md +++ b/plugins/debugging/skills/debug/SKILL.md @@ -342,8 +342,7 @@ If the answer is a check (a lint or analyzer rule, a test, a hook) that would ha The names collide outright, so "debug this" can land on either, but the two debug different things. - **`debug` (bundled skill)**: troubleshoots Claude Code itself (what it enables and when: the - `/debug` row of [Commands, "All commands"](https://code.claude.com/docs/en/commands#all-commands), - as of 2026-11-10; recheck when that row changes what the skill turns on or reads). It is reserved + `/debug` row of [Commands, "All commands"](https://code.claude.com/docs/en/commands#all-commands)). It is reserved for the person to run; the model does not invoke it. - **This skill (marketplace plugin).** Debugs the user's application: build a reproduction loop, confirm it fails, rank causes, probe them, fix with a regression test, remove what the run added. diff --git a/plugins/desktop-notification/README.md b/plugins/desktop-notification/README.md index df0b6b5bbf8..7c25993aeb9 100644 --- a/plugins/desktop-notification/README.md +++ b/plugins/desktop-notification/README.md @@ -14,9 +14,7 @@ notification, and, on macOS and Linux, an OS-native desktop toast. - **Advisory, never blocking.** The hook always exits `0`; a Notification hook is not a gate. - **Pointer**: the notification types and what a Notification hook can return are - in [Notification](https://code.claude.com/docs/en/hooks#notification). **As of**: - 2026-10-11. **Recheck trigger**: that section renames either type, lets a - Notification hook block, stops discarding its `systemMessage`, or is renamed. + in [Notification](https://code.claude.com/docs/en/hooks#notification). - **Three additive channels**, each default on and independently mutable: | Channel | Option | What it does | @@ -28,9 +26,6 @@ notification, and, on macOS and Linux, an OS-native desktop toast. - **Pointer**: how `terminalSequence` output is written and which terminals handle OSC 9 are in [Emit terminal notifications](https://code.claude.com/docs/en/hooks#emit-terminal-notifications). - **As of**: 2026-10-11. **Recheck trigger**: that section changes how - `terminalSequence` output is written, documents a Windows toast path, or is - renamed. ### Per-OS `os_toast` behavior @@ -38,12 +33,10 @@ notification, and, on macOS and Linux, an OS-native desktop toast. |---|---|---| | macOS | [`osascript … display notification`](https://code-maven.com/display-notification-from-the-mac-command-line) | Built-in. No dependency. First run prompts to allow notifications for the terminal app. | | Linux | [`notify-send`](https://man.archlinux.org/man/notify-send.1.en#DESCRIPTION) | Needs `notify-send` on `PATH`. Without it, the `os_toast` channel is a silent no-op. | -| Windows / other | none | No OS-toast branch: a fire-and-forget hook process leaves no live activator host for a WinRT toast to render into, so it would never reliably surface. The `terminal_notify` channel (OSC 9) carries Windows attention; which Windows terminals handle OSC 9 is read at the Emit terminal notifications pointer record above, which carries this cell's as-of date and recheck trigger. | +| Windows / other | none | No OS-toast branch: a fire-and-forget hook process leaves no live activator host for a WinRT toast to render into, so it would never reliably surface. The `terminal_notify` channel (OSC 9) carries Windows attention; which Windows terminals handle OSC 9 is read at the Emit terminal notifications pointer record above. | - **Pointer**: when checking what `notify-send` is and the project that ships it, fetch [notify-send(1)](https://man.archlinux.org/man/notify-send.1.en#DESCRIPTION) live. - **As of**: 2026-11-03. **Recheck trigger**: that page moves, or the command is renamed or - leaves libnotify. The OS toast body includes the current git branch when the project is a git repository (e.g. `Waiting for your input — feat/my-branch`); outside a repo it is @@ -73,9 +66,7 @@ that call, and the hook above sends it through the same channels, headed - **Pointer**: the `ui.toast` hook and `$.ui.notify` are in [Mods API](https://code.claude.com/docs/en/plugins/mods/api.md#show-something-without-starting-a-turn), and the `plugin_notification` title rule is in - [Notification](https://code.claude.com/docs/en/hooks#notification). **As of**: - 2026-10-28. **Recheck trigger**: either section renames `ui.toast`, - `$.ui.notify` or `plugin_notification`, or changes where the hook's `title` comes from. + [Notification](https://code.claude.com/docs/en/hooks#notification). ## Requirements @@ -86,9 +77,7 @@ a Claude Code install does not guarantee Node, so without it the hook does not l notifications do not fire ([install Node.js](https://nodejs.org/en/download)). It also needs [`jq`](https://jqlang.github.io/jq/) on `PATH`; without jq, notifications are disabled and the bundled checker reports it, because a Notification hook has no notice channel of its own. Relay: what it can return is in the Notification pointer record under -[Behavior](#behavior). **As of**: 2026-10-11. **Recheck trigger**: that record leaves Behavior, -or its own recheck trigger fires. macOS needs nothing -further; Linux needs `notify-send` only for the `os_toast` channel; Windows needs +[Behavior](#behavior). macOS needs nothing further; Linux needs `notify-send` only for the `os_toast` channel; Windows needs nothing (terminal channels only). Telemetry timing uses `EPOCHREALTIME` (Bash 5.0+); on older bash the telemetry envelope is skipped while notifications still fire. @@ -97,8 +86,6 @@ skipped while notifications still fire. [Install with npm](https://code.claude.com/docs/en/setup#install-with-npm), and how the hook's `node` command is launched is in [Exec form and shell form](https://code.claude.com/docs/en/hooks#exec-form-and-shell-form). - **As of**: 2026-10-11. **Recheck trigger**: the first section changes whether the native binary - ships or uses Node, the second changes how exec form launches `command`, or either is renamed. ## Install diff --git a/plugins/desktop-notification/hooks/desktop-notification.sh b/plugins/desktop-notification/hooks/desktop-notification.sh index 842860d3d5a..a0d5ddc3482 100755 --- a/plugins/desktop-notification/hooks/desktop-notification.sh +++ b/plugins/desktop-notification/hooks/desktop-notification.sh @@ -6,8 +6,7 @@ # # ADVISORY: always exits 0; a Notification hook is not a gate. Pointer: what a # Notification hook can return is in https://code.claude.com/docs/en/hooks#notification. -# As of: 2026-10-11. Recheck trigger: that section lets a Notification hook -# block, or is renamed. Master kill switch +# Master kill switch # CLAUDE_PLUGIN_OPTION_DESKTOP_NOTIFICATION_ENABLED gates the whole hook. When on, it emits up # to three INDEPENDENTLY-gated channels (each default ON): # BELL — audible terminal bell (bare BEL). diff --git a/plugins/desktop-notification/skills/setup/SKILL.md b/plugins/desktop-notification/skills/setup/SKILL.md index b16e72313ee..1c8a9c742c1 100644 --- a/plugins/desktop-notification/skills/setup/SKILL.md +++ b/plugins/desktop-notification/skills/setup/SKILL.md @@ -67,17 +67,14 @@ row launches `node`, and the gate runs only after `hooks/exec-bash.mjs` starts. 2. **`jq`**. The pre-computed `jq` row. FAIL if absent: without it the hook can neither classify the notification nor emit its terminal sequence, so it drops every notification without a notice. This check is where a missing jq surfaces: the hook cannot report it to the user or the model. - Pointer: [Notification](https://code.claude.com/docs/en/hooks#notification). As of: 2026-11-10. - Recheck trigger: that section says a Notification hook's output reaches the user or the model. + Pointer: [Notification](https://code.claude.com/docs/en/hooks#notification). 3. **Node.js**. The pre-computed `node` row. FAIL if absent: every hook row launches through `node hooks/exec-bash.mjs`, so without it the hook does not launch and no notification fires. The probe runs through the Bash tool, so it works when the launcher cannot. Remediation: install Node.js from `https://nodejs.org/en/download`, or from the platform package manager. Node is a prerequisite separate from Claude Code. Pointer: [Install with npm](https://code.claude.com/docs/en/setup#install-with-npm) and [Exec form and shell - form](https://code.claude.com/docs/en/hooks#exec-form-and-shell-form). As of: 2026-11-10. - Recheck trigger: the setup section says the installed `claude` binary runs Node itself, or the - hooks section changes how a hook command launches `node`. + form](https://code.claude.com/docs/en/hooks#exec-form-and-shell-form). 4. **Per-OS `os_toast` dependency**. Take the current OS family from the pre-computed `uname -s` row and probe ONLY that family's requirement (the hook's `case "$(uname -s)"` does exactly this): - **Linux**. `command -v notify-send` (libnotify). FAIL only if the `os_toast` channel is @@ -127,9 +124,6 @@ nothing and writes nothing, so every remediation is a pointer the user acts on: when a saved value applies, fetch [plugin CLI reference § plugin configure](https://code.claude.com/docs/en/plugins/cli-reference#plugin-configure) live. - - **As of**: 2026-11-11 - - **Recheck trigger**: that section changes the command's flags, how it reports a saved or - refused value, or when a saved value applies. After the user reports acting on any system-tool remediation, re-run the relevant `check` probe live via Bash (a pre-computed row predates the remediation) and report its actual diff --git a/plugins/docs-naming/skills/generate-file-name-gate/SKILL.md b/plugins/docs-naming/skills/generate-file-name-gate/SKILL.md index 6f99e148b79..7993c341dd2 100644 --- a/plugins/docs-naming/skills/generate-file-name-gate/SKILL.md +++ b/plugins/docs-naming/skills/generate-file-name-gate/SKILL.md @@ -28,9 +28,6 @@ is invoked. That is why the gate is the deliverable and the rule is the option. - **Pointer**: when weighing whether a rule could stand in for the gate, fetch [memory § Path-specific rules](https://code.claude.com/docs/en/memory#path-specific-rules) live. -- **As of**: 2026-10-11 -- **Recheck trigger**: that section gives a path-scoped rule a way to block a - tool call, or to apply outside a Claude session. ## Emit diff --git a/plugins/dometrain/README.md b/plugins/dometrain/README.md index eaca831ad57..ceb644298e1 100644 --- a/plugins/dometrain/README.md +++ b/plugins/dometrain/README.md @@ -7,8 +7,6 @@ etiquette. The skills call a Dometrain MCP server, which this plugin does not sh - **Pointer**: for the server's endpoint, who can use it and how to get a key, fetch [1. Get an API key](https://github.com/Dometrain/mcp#1-get-an-api-key) in Dometrain's repository live. -- **As of**: 2026-11-03 -- **Recheck trigger**: that section moves, or changes the endpoint or who can get a key. ## Install @@ -38,10 +36,6 @@ give the server a `headersHelper` script that prints the `Authorization` header live; for the `headers` expansion, fetch [Environment variable expansion in `.mcp.json`](https://code.claude.com/docs/en/mcp#environment-variable-expansion-in-mcp-json) live. -- **As of**: 2026-11-03 -- **Recheck trigger**: any of those sections moves or is renamed, Dometrain's install section - renames its variable, or the MCP page changes how or when `headers` variables expand or how - `headersHelper` runs. A same-named `dometrain` server defined at another scope can win over this user-scope one, so the skills may reach a different definition than the one registered above. @@ -49,9 +43,6 @@ skills may reach a different definition than the one registered above. - **Pointer**: for which definition wins when a server is defined in more than one place, fetch [Scope hierarchy and precedence](https://code.claude.com/docs/en/mcp#scope-hierarchy-and-precedence) live. -- **As of**: 2026-10-24 -- **Recheck trigger**: that section changes the precedence order of local, project and user scope - or how duplicates are matched. ## Enabling @@ -71,9 +62,6 @@ plugin ships skills only and uses the user-scope server above. - **Pointer**: for that plugin's install steps, fetch [Claude Code](https://github.com/Dometrain/mcp#claude-code) live; for what it bundles and how it authenticates, fetch [2. Install](https://github.com/Dometrain/mcp#2-install) live. -- **As of**: 2026-11-03 -- **Recheck trigger**: either section moves, or changes how Dometrain's plugin installs or - authenticates. **Do not enable both `dometrain` plugins simultaneously.** Pick one. Whether the two collide turns on their manifest names and on how Claude Code namespaces a plugin by name, and neither is this @@ -82,9 +70,6 @@ plugin's to promise. - **Pointer**: for how a plugin's `name` namespaces its components, fetch [`name`](https://code.claude.com/docs/en/plugins/manifest-reference#name) live, and compare the `name` in each plugin's `.claude-plugin/plugin.json`. -- **As of**: 2026-11-03 -- **Recheck trigger**: that section changes how `name` namespaces components, or either plugin - renames itself. ## Grounding skill diff --git a/plugins/dometrain/skills/grounding/SKILL.md b/plugins/dometrain/skills/grounding/SKILL.md index 7df84b05b5c..1cba689bb27 100644 --- a/plugins/dometrain/skills/grounding/SKILL.md +++ b/plugins/dometrain/skills/grounding/SKILL.md @@ -52,9 +52,8 @@ the principle it claims to serve, per the natural-language description of what you are implementing (e.g. "validate JWT tokens in ASP.NET Core minimal APIs"). Phrase the query naturally rather than keyword-stuffing (how results are ranked: the server README's [Tools](https://github.com/Dometrain/mcp#tools) - section; as of 2026-11-10; recheck when `/dometrain:update` reports drift or that section - changes how search ranks). Results are ranked lesson excerpts; a note tells you - when hits are partial-term or semantically related rather than exact keyword matches. + section). Results are ranked lesson excerpts; a note tells you when hits are partial-term or + semantically related rather than exact keyword matches. 2. **Code-shaped queries** → `search_code(query, language?, max_results?)` with an identifier, API name, or short code fragment (e.g. `AddAuthentication`, `IAsyncEnumerable`). Returns the on-screen code with a deep link to the exact moment it appears. @@ -85,7 +84,6 @@ Requests are quota-limited. How the quota is pooled and capped: the server READM [Notes](https://github.com/Dometrain/mcp#notes) section; what a `429` carries: [Troubleshooting](https://github.com/Dometrain/mcp#troubleshooting). The exact figures live in the consumer's own Dometrain dashboard, not here (they change independently of this plugin). -As of 2026-11-10; recheck when `/dometrain:update` reports drift or either section changes. - Do not repeat an identical search in the same session. Reuse what you already fetched. - Prefer one `get_lesson` over re-searching for more snippets of the same lesson. diff --git a/plugins/dometrain/skills/setup/SKILL.md b/plugins/dometrain/skills/setup/SKILL.md index d54f5d60301..abcddd5392a 100644 --- a/plugins/dometrain/skills/setup/SKILL.md +++ b/plugins/dometrain/skills/setup/SKILL.md @@ -29,9 +29,6 @@ constraint, not around reading `/mcp` connection status directly. - **Pointer**: when deciding what a missing Dometrain tool can tell this skill, fetch [How Claude learns that a server failed](https://code.claude.com/docs/en/mcp#how-claude-learns-that-a-server-failed) live. -- **As of**: 2026-10-11 -- **Recheck trigger**: that section changes which configurations report a failed server to - Claude, or where the error appears. ## Task @@ -43,8 +40,7 @@ constraint, not around reading `/mcp` connection status directly. match), report **connected**. Do not claim the credential has valid API access beyond that: resolution is the strongest signal this skill can observe. For which rejections Dometrain's server returns and what each means, fetch - [Troubleshooting](https://github.com/Dometrain/mcp#troubleshooting) live (as of 2026-11-03; - recheck when that section moves or changes its list of rejections). + [Troubleshooting](https://github.com/Dometrain/mcp#troubleshooting) live. 3. When no Dometrain tool resolves and `ToolSearch` returned no connection error for a `dometrain` server, report **disabled**: no server is present. Point to the README's [Getting the MCP server](../../README.md#getting-the-mcp-server) for registering a @@ -54,16 +50,14 @@ constraint, not around reading `/mcp` connection status directly. - If `ToolSearch` returned a connection error for the `dometrain` server, quote it verbatim. - Otherwise do not assert why. Whether a failed connection reaches this turn depends on configuration this skill cannot inspect (see the mechanism note's pointer in - [Purpose](#purpose); as of 2026-10-11; recheck when that pointer moves out of - Purpose, is dropped, or its as-of date changes). + [Purpose](#purpose)). Direct the user to run `/mcp` themselves rather than claim knowledge it does not have. - Do not send the user to `/plugin configure`: point them to `claude mcp list` for a missing-variable warning on the `dometrain` entry and to the README's [Getting the MCP server](../../README.md#getting-the-mcp-server), and tell them to start a new session after setting the variable. For how Claude Code expands it, fetch [Environment variable expansion in `.mcp.json`](https://code.claude.com/docs/en/mcp#environment-variable-expansion-in-mcp-json) - live (as of 2026-11-03; recheck when that section changes when or from which environment a - variable expands). + live. ## Headless installation @@ -92,9 +86,6 @@ claude plugin enable dometrain -s (the `--marketplace` row and its minimum version) and [Add a marketplace and install in one command](https://code.claude.com/docs/en/plugins/install#add-a-marketplace-and-install-in-one-command) (which scope the added marketplace lands in) live. -- **As of**: 2026-10-10 -- **Recheck trigger**: the `--marketplace` row of `plugin install` changes, or that install section - changes where the one-step form registers the marketplace. `` is the name the catalog registers under when it is added, and `` is the scope the bootstrap chooses: `user`, `project`, or `local`. Pass the scope explicitly on every @@ -104,8 +95,6 @@ command and carry the same `` through all of them. [plugin marketplace add](https://code.claude.com/docs/en/plugins/cli-reference#plugin-marketplace-add), [plugin install](https://code.claude.com/docs/en/plugins/cli-reference#plugin-install) and [plugin enable](https://code.claude.com/docs/en/plugins/cli-reference#plugin-enable) live. -- **As of**: 2026-10-11 -- **Recheck trigger**: any of those three rows changes its scope default or its flag spelling. Registering at `user` while installing at `project` leaves the marketplace declaration out of the project's checked-in settings, so a fresh clone or CI @@ -119,8 +108,6 @@ explicitly, so the sequence stays deterministic in CI. - **Pointer**: for what `defaultEnabled: false` means for a fresh install, fetch [`defaultEnabled`](https://code.claude.com/docs/en/plugins/manifest-reference#defaultenabled) live. -- **As of**: 2026-11-03 -- **Recheck trigger**: that section changes how an unset `enabledPlugins` entry is resolved. ## Output @@ -136,8 +123,6 @@ collision warning instead. - **Pointer**: for that plugin's manifest `name`, read `.claude-plugin/plugin.json` in [Dometrain's repository](https://github.com/Dometrain/mcp) live. -- **As of**: 2026-11-03 -- **Recheck trigger**: that repository renames its plugin or moves its manifest. ## Boundaries diff --git a/plugins/dometrain/skills/update/SKILL.md b/plugins/dometrain/skills/update/SKILL.md index 348aa0e142c..6ca91623bf0 100644 --- a/plugins/dometrain/skills/update/SKILL.md +++ b/plugins/dometrain/skills/update/SKILL.md @@ -14,8 +14,7 @@ only vendored prose to diff. This skill runs only when a person types `/dometrain:update`, so its frontmatter sets `disable-model-invocation` (what the flag does: -, as of 2026-11-02; recheck -when that section changes). +). ## Invocation @@ -70,8 +69,7 @@ The `context/` files write this skill's directory as ``, which is `${ Put that path in place of the placeholder before running a command. Those files arrive through the Read tool as plain bytes, so a `${…}` token in them would reach the Bash tool unsubstituted, and the Bash tool's environment has no `CLAUDE_SKILL_DIR` to expand it from. Basis: the plugins reference, -, verified -2026-10-07; recheck when that table adds supporting files to where a `${…}` reference resolves. +. ## Boundaries diff --git a/plugins/education/skills/setup/SKILL.md b/plugins/education/skills/setup/SKILL.md index 97b2f21ab14..f4794047d86 100644 --- a/plugins/education/skills/setup/SKILL.md +++ b/plugins/education/skills/setup/SKILL.md @@ -97,9 +97,6 @@ Report a PASS/INFO/WARN table. Write nothing. when a saved value applies, fetch [plugin CLI reference § plugin configure](https://code.claude.com/docs/en/plugins/cli-reference#plugin-configure) live. - - **As of**: 2026-11-11 - - **Recheck trigger**: that section changes the command's flags, how it reports a saved or - refused value, or when a saved value applies. 8. Tell the user to rerun `check` after a `userConfig` change in a **fresh session**, since a same-session `check` can still show the old value. Then report the observed effective settings, never an unobserved change. diff --git a/plugins/education/skills/teach/SKILL.md b/plugins/education/skills/teach/SKILL.md index 810472636cf..57fbde06fc6 100644 --- a/plugins/education/skills/teach/SKILL.md +++ b/plugins/education/skills/teach/SKILL.md @@ -82,9 +82,8 @@ Path resolution rules every action MUST follow: Scan for the highest existing `NNNN` and increment. - Plugin-data workspaces live under `${CLAUDE_PLUGIN_DATA}` so they outlive the session (**Pointer**: when deciding whether that directory exists yet or will still be there, fetch - live. - **As of**: 2026-10-11. **Recheck trigger**: that section changes when the directory is created, - kept or deleted). At a user-chosen root, create the `Claude Learning/`-style home only at first + live). + At a user-chosen root, create the `Claude Learning/`-style home only at first workspace creation there; never create the platform Documents directory itself. A lesson is an interactive, self-contained `lesson.html` where the learner's host can render it, @@ -168,9 +167,7 @@ And `${user_config.*}` tokens must NEVER appear on this line: a surviving litera bash `bad substitution` that kills the whole call before any fallback (**Pointer**: when deciding whether a saved value is substituted in skill content, fetch and - live. **As of**: 2026-10-11. -**Recheck trigger**: either section changes where `${user_config.*}` is substituted or how an -injected command runs): + live): - Plugin-data workspaces, `bash "${CLAUDE_PLUGIN_ROOT}/skills/teach/scripts/list-workspaces.sh" "${CLAUDE_PROJECT_DIR}" "${CLAUDE_PLUGIN_DATA}" 2>/dev/null || echo "none"` @@ -371,9 +368,6 @@ substituted or expanded on the way to the Bash tool. - **Pointer**: when deciding whether a `${…}` token in a Read-delivered file resolves, fetch live. -- **As of**: 2026-10-11 -- **Recheck trigger**: that table adds supporting files read through the Read tool, or the Bash - tool's environment, to where a `${…}` reference resolves. ## What This Skill Does NOT Do diff --git a/plugins/education/skills/teach/scripts/list-workspaces.sh b/plugins/education/skills/teach/scripts/list-workspaces.sh index 874916898ba..7e87b24accb 100755 --- a/plugins/education/skills/teach/scripts/list-workspaces.sh +++ b/plugins/education/skills/teach/scripts/list-workspaces.sh @@ -3,17 +3,15 @@ # # Exists because a worktree-isolated agent refused a pre-compute line carrying genuine # `$`-expansion (`$local`, command substitution, `${VAR:-default}`), so the derivation -# inline made the whole skill fail to load there (the probe and its recheck trigger are -# in SKILL.md's "Pre-computed Context" section; as of 2026-10-11; recheck trigger: that -# section is renamed or drops the probe). The invoking +# inline made the whole skill fail to load there (the probe is in SKILL.md's +# "Pre-computed Context" section). The invoking # line in SKILL.md passes plugin variables only; the `$`-bearing logic lives here, where a # shell reads it as an ordinary script. `${user_config.*}` tokens must NEVER reach the # pre-compute line either: we do not rely on one being substituted, and a surviving # literal is a bash `bad substitution` that kills the whole call. So the skill body # resolves the workspace-root ladder and re-invokes this script with the resolved roots # as ordinary arguments. Where each token is substituted: SKILL.md's "Pre-computed -# Context" pointer record (as of 2026-10-11; recheck trigger: that section is renamed or -# drops the record). +# Context" pointer record. # # The project-slug derivation below is an IMPLEMENTATION, not the specification: SKILL.md's # "Workspace layout" section is normative for it (canonicalize the project path first — diff --git a/plugins/eol-normalizer/README.md b/plugins/eol-normalizer/README.md index 92d27f5615f..f725919f76c 100644 --- a/plugins/eol-normalizer/README.md +++ b/plugins/eol-normalizer/README.md @@ -26,8 +26,6 @@ imposes no rules of its own. **Pointer**: when working out how `text`, `-text` and `text=auto` decide whether a path is text, fetch [gitattributes: text](https://git-scm.com/docs/gitattributes#_text) live. - **As of**: 2026-11-03. **Recheck trigger**: that section changes how - `text=auto` tells a binary file from text. - **Unspecified is a no-op.** A path with no `eol=` attribute is left untouched. There is no hardcoded extension list. Resolution is entirely `.gitattributes`-driven, so narrow rules (a single `eol=lf` path) correctly @@ -55,8 +53,8 @@ imposes no rules of its own. starts Bash. The plugin does not assume a Claude Code install brings Node, so without `node` the hook does not launch and nothing is normalized. Pointer: when deciding whether an install brings Node, fetch [setup: Install with npm](https://code.claude.com/docs/en/setup#install-with-npm) - live. As of: 2026-10-11. Recheck trigger: that section or [System requirements](https://code.claude.com/docs/en/setup#system-requirements) changes which - install needs Node at runtime. [Install Node.js](https://nodejs.org/en/download). + and [System requirements](https://code.claude.com/docs/en/setup#system-requirements) live. + [Install Node.js](https://nodejs.org/en/download). - **Bash.** The hook is a Bash script. On native Windows, install [Git for Windows](https://code.claude.com/docs/en/setup#set-up-on-windows) so Claude Code can run it under Git Bash. diff --git a/plugins/eol-normalizer/skills/setup/SKILL.md b/plugins/eol-normalizer/skills/setup/SKILL.md index 12002b3d05e..91df2967b2e 100644 --- a/plugins/eol-normalizer/skills/setup/SKILL.md +++ b/plugins/eol-normalizer/skills/setup/SKILL.md @@ -114,9 +114,6 @@ tool, so `apply` installs nothing and writes nothing. It only points: when a saved value applies, fetch [plugin CLI reference § plugin configure](https://code.claude.com/docs/en/plugins/cli-reference#plugin-configure) live. - - **As of**: 2026-11-11 - - **Recheck trigger**: that section changes the command's flags, how it reports a saved or - refused value, or when a saved value applies. - no `eol=` policy: this is the opt-out, not a defect. Point at the repository's own `.gitattributes` as the place to declare policy; this skill never writes `.gitattributes`, because that would impose a repo-wide line-ending policy the plugin has no mandate to diff --git a/plugins/explainer-video/skills/produce/SKILL.md b/plugins/explainer-video/skills/produce/SKILL.md index 8998784e9f1..eb2584510b0 100644 --- a/plugins/explainer-video/skills/produce/SKILL.md +++ b/plugins/explainer-video/skills/produce/SKILL.md @@ -22,8 +22,7 @@ When it exits 2 with a repair line, or `render.py` names a missing tool, run the report, `python3 ${CLAUDE_PLUGIN_ROOT}/scripts/pydeps.py check --data-dir "${CLAUDE_PLUGIN_DATA}"`, and report the rows it prints. When `python3` is not found, run the same line with `python`, and on Windows then with a `python.exe` path that `py -0p` lists. Never start it through `py`; for why, read what a `py` launch does with no runtime installed in -[Python on Windows, basic use](https://docs.python.org/3/using/windows.html#basic-use) (as of -2026-10-04; recheck when the Python install manager changes what a launch command does). +[Python on Windows, basic use](https://docs.python.org/3/using/windows.html#basic-use). ## Where the files go @@ -122,9 +121,6 @@ record bundle or beside the markdown record they explain (), EBU R 128 s2 section 3 () and live. - - **As of**: 2026-10-17 - - **Recheck trigger**: a new revision of R 128 or R 128 s2, or the `loudnorm` section changes its - linear-mode conditions. - **Captions:** each sentence is split into the fewest balanced cues, so no cue is a one-word tail; a cue too short to stand joins its neighbor in the beat, and each cue stays up for the minimum and the reading time per word as far as the next cue allows (`captions` in @@ -134,16 +130,11 @@ record bundle or beside the markdown record they explain 4.1 () and live. - - **As of**: 2026-10-17 - - **Recheck trigger**: a new version of either guide changes its minimum duration or reading - time. - **Stills (silent renders too):** `freezedetect` with the noise and length in `stills` in `${CLAUDE_PLUGIN_ROOT}/scripts/defaults.json`, set explicitly. The reporting length is our judgment; no source sets a stillness limit for narrated video. - **Pointer**: when the filter's options are in question, fetch live. - - **As of**: 2026-10-17 - - **Recheck trigger**: that section changes its options or defaults. ## Next diff --git a/plugins/gaming/skills/setup/SKILL.md b/plugins/gaming/skills/setup/SKILL.md index 5b5f66c1892..9719f54b0d8 100644 --- a/plugins/gaming/skills/setup/SKILL.md +++ b/plugins/gaming/skills/setup/SKILL.md @@ -26,7 +26,7 @@ Bash then fails with `bad substitution` before pwsh starts. |---|---|---| | **``** | `${user_config.data_dir}` when non-empty and not still showing the unexpanded token; otherwise the output of the default command below. Changing it after an apply is a MOVE of the directory, not a reconfiguration: every manifest stays at the old root | `-DataDir ''` on every call | | **``** | `${user_config.runtime_dll}` when set; otherwise `\runtime\nvngx_dlssnr.dll` | `-RuntimeDll` ONLY when the option is set. Passing the default path marks it configured, and `provision -Runtime` then refuses a failing file without scanning | -| **``** | `${user_config.runtime_source}` when set; otherwise none | `-RuntimeSource` ONLY when set. A path or a plain `https://` URL. A URL with a query string (where signed-URL credentials live) is refused, because this option is not stored as a secret: [manifest reference § Where values are stored](https://code.claude.com/docs/en/plugins/manifest-reference#where-values-are-stored), as of 2026-11-10, recheck when that section changes where non-sensitive values go. A private store is synced to a path by the user's own tooling | +| **``** | `${user_config.runtime_source}` when set; otherwise none | `-RuntimeSource` ONLY when set. A path or a plain `https://` URL. A URL with a query string (where signed-URL credentials live) is refused, because this option is not stored as a secret: [manifest reference § Where values are stored](https://code.claude.com/docs/en/plugins/manifest-reference#where-values-are-stored). A private store is synced to a path by the user's own tooling | The default `data_dir` follows OneDrive Known Folder Move, which `$env:USERPROFILE\Documents` does not: diff --git a/plugins/github/reference/areas.md b/plugins/github/reference/areas.md index 9d342e32159..9683e1fb172 100644 --- a/plugins/github/reference/areas.md +++ b/plugins/github/reference/areas.md @@ -8,9 +8,8 @@ verb skills, never skills of their own. Routing rules: mapping was made; ask only when genuinely ambiguous. - The **doc pointer** is a stable entry hub on `docs.github.com`, not the answer: resolve the exact current page live from that hub (or the site's own search) and pass it through the - method ladder's fetch-integrity check before grounding on it. Hubs verified live 2026-07-20; - recheck when a hub 404s or stops covering its area, and until then resolve via the live docs - search instead. + method ladder's fetch-integrity check before grounding on it. When a hub 404s or stops covering + its area, resolve via the live docs search instead. - **Primary**-tier areas get the deepest treatment: a dedicated method recipe under [`recipes/`](recipes/), linked from the row's tier cell. Consult it before auditing that area. Every other area rides the generic method ladder with this row as its entry intent. @@ -22,7 +21,7 @@ verb skills, never skills of their own. Routing rules: | `billing` | primary ([recipe](recipes/billing.md)) | Billing and licensing: monitoring, budgets, alerts, usage, cost control | | | `security-model` | standard | Organization security model: org/repo roles, member privileges, base permissions | | | `codespaces` | standard | Codespaces: org policies, machine types, spending, access | | -| `cloud-sandboxes` | standard | Cloud sandboxes for agents: availability, policy, spend (no stable docs hub verified 2026-07-20, so resolve live via docs search; recheck when docs.github.com gains a cloud-sandboxes hub) | | +| `cloud-sandboxes` | standard | Cloud sandboxes for agents: availability, policy, spend (no stable docs hub, so resolve live via docs search; recheck when docs.github.com gains a cloud-sandboxes hub) | | | `projects-and-issues` | standard | Projects, issue types, issue fields, and templates: planning-surface configuration | | | `actions` | primary ([recipe](recipes/actions-policy.md)) | Actions policy: allowed actions/workflows, runners, runner groups, custom images, caches, OIDC | | | `webhooks` | standard | Webhooks: org/repo hooks, delivery health, secret hygiene, dead endpoints | | diff --git a/plugins/github/reference/browser-automation.md b/plugins/github/reference/browser-automation.md index f34b8cf6f02..4d2ca73861a 100644 --- a/plugins/github/reference/browser-automation.md +++ b/plugins/github/reference/browser-automation.md @@ -41,10 +41,7 @@ user names an integration, their choice is honored over this order. - **Pointer**: when deciding whether Claude in Chrome works under WSL, fetch the platform note above the first heading of live; that note has no - section anchor as of 2026-10-11. -- **As of**: 2026-10-11 -- **Recheck trigger**: the page moves its platform support into a section with its own anchor, or - changes which platforms it supports. + section anchor. ## The routing precondition: resolved `guided-apply` only diff --git a/plugins/github/skills/advise/SKILL.md b/plugins/github/skills/advise/SKILL.md index c8be166f847..06fb66999fc 100644 --- a/plugins/github/skills/advise/SKILL.md +++ b/plugins/github/skills/advise/SKILL.md @@ -80,8 +80,7 @@ built-in command performs it. GitHub App on one repository; the model does not invoke it. What it sets up is read live from the pointer in the "What `/install-github-app` installs and sets up" row of [reference/native-install-github-app.md](reference/native-install-github-app.md) (the file - has no section heading to anchor; as of 2026-10-11; recheck when that row's pointer or as-of - date changes). + has no section heading to anchor). - **This skill (marketplace plugin).** Read-only design guidance across the GitHub settings plane, grounded in live `gh` state and the fetched GitHub docs; changes only through `--apply`. @@ -130,8 +129,6 @@ A bare invocation of this skill performs zero mutations, stated in write-capabil - No browser automation fires from this skill on a bare invocation. Which `gh api` flags send a request body or set the method: [`gh api` options](https://cli.github.com/manual/gh_api#options). -As of 2026-11-10. Recheck when a `gh` release note names a new `gh api` request-body or request-method flag, or when -a read from this skill returns a non-GET method the list above does not explain. Requests to "just set it up for me" do not override this: emit the exact proposed change and point to `--apply`, which routes through the consumer's declared change routing. diff --git a/plugins/github/skills/advise/reference/native-install-github-app.md b/plugins/github/skills/advise/reference/native-install-github-app.md index c3cfb7ab1e9..c6f5e7e48f1 100644 --- a/plugins/github/skills/advise/reference/native-install-github-app.md +++ b/plugins/github/skills/advise/reference/native-install-github-app.md @@ -1,14 +1,14 @@ # The built-in `/install-github-app` command: verification record Detail behind the `/install-github-app` Boundary section in [SKILL.md](../SKILL.md). Each row is -a four-part record: the claim, the basis it rests on, the date it was checked, and the event that +a four-part record: the claim, the basis it rests on, the date it was checked (left empty on pointer rows), and the event that makes it worth checking again. "The extraction" below is the `/harness-ops:inventory` extraction of the installed 2.1.284 binary, 2026-09-29. | Claim | Basis | As of | Recheck when | |---|---|---|---| | `install-github-app` is a built-in setup command for Claude GitHub Actions on one repository. User-invocable only (not model-invocable), gated, not hidden | The extraction | 2026-09-29 | A release renames or removes it, ungates it, or changes its invocability | -| What `/install-github-app` installs and sets up | Pointer: when routing a setup ask or explaining the command, fetch [Commands § All commands](https://code.claude.com/docs/en/commands#all-commands) (the `/install-github-app` row) live; the page has no per-command anchor | 2026-10-11 | That row changes or is removed | +| What `/install-github-app` installs and sets up | Pointer: when routing a setup ask or explaining the command, fetch [Commands § All commands](https://code.claude.com/docs/en/commands#all-commands) (the `/install-github-app` row) live; the page has no per-command anchor | | | ## Why the verdict is complementary diff --git a/plugins/github/skills/audit/SKILL.md b/plugins/github/skills/audit/SKILL.md index 8b6e9788a76..62edc4d2afb 100644 --- a/plugins/github/skills/audit/SKILL.md +++ b/plugins/github/skills/audit/SKILL.md @@ -91,8 +91,6 @@ A bare invocation of this skill performs zero mutations, stated in write-capabil - No browser automation fires from this skill on a bare invocation. Which `gh api` flags send a request body or set the method: [`gh api` options](https://cli.github.com/manual/gh_api#options). -As of 2026-11-10. Recheck when a `gh` release note names a new `gh api` request-body or request-method flag, or when -a read from this skill returns a non-GET method the list above does not explain. Requests to "just fix it" mid-audit do not override this: emit the exact proposed change and state the contract. Applying changes requires `--apply` at invocation, routed as above. diff --git a/plugins/go-format/README.md b/plugins/go-format/README.md index e2e34164ddc..03368d0aed7 100644 --- a/plugins/go-format/README.md +++ b/plugins/go-format/README.md @@ -18,8 +18,6 @@ the pre-commit entry reports it. script unless the payload mentions `.go`, so a batch without Go costs one `node` process. - **Pointer**: when deciding what filters a `PostToolBatch` row, fetch [hooks: PostToolBatch](https://code.claude.com/docs/en/hooks#posttoolbatch) live. - **As of**: 2026-10-15. **Recheck trigger**: that section adds a matcher or an `if` for the - event, or changes the `tool_calls` fields. - **No consumer-config opt-in gate.** Unlike sibling formatter plugins (`ruff-format`, `typos-format`), this plugin needs no repository configuration to run on a `.go` file. `goimports`' own docs describe it as "a replacement for your editor's gofmt-on-save hook" and it @@ -31,9 +29,7 @@ the pre-commit entry reports it. where a copyright/license header (a `//` or `/* */` block) precedes the marker, common for `addlicense`/`goheader` output. The plugin applies this guard itself. For the marker's exact form, see - [go command: Generate Go files by processing source](https://pkg.go.dev/cmd/go#hdr-Generate_Go_files_by_processing_source) - (as of 2026-11-03; recheck when that section changes the marker's pattern or where it must - appear). + [go command: Generate Go files by processing source](https://pkg.go.dev/cmd/go#hdr-Generate_Go_files_by_processing_source). - **Leaves gitignored files alone.** By default a `.go` file the repository gitignores is not rewritten in the session, since a rewrite of an ignored file has no git checkout to undo it. A tracked file that matches an ignore pattern stays in scope. Set `go_format_lint_gitignored=true` @@ -76,8 +72,7 @@ fails with the install command, a person gets a one-line notice, and [Install jq](https://jqlang.org/download/). - **goimports** on `PATH`. It is never downloaded on the fly; if it is not present, the batch row skips the files, and the SessionStart probe reports the gap. For how to install it, see - [goimports: Overview](https://pkg.go.dev/golang.org/x/tools/cmd/goimports#pkg-overview) - (as of 2026-11-03; recheck when that page changes its install command). + [goimports: Overview](https://pkg.go.dev/golang.org/x/tools/cmd/goimports#pkg-overview). - **`go` on `PATH` (optional).** Used only to resolve the `-local` grouping prefix (`go list -m`). Absent: `goimports` still formats and fixes imports, just without the `-local` grouping (its plain default behavior). diff --git a/plugins/go-format/skills/setup/SKILL.md b/plugins/go-format/skills/setup/SKILL.md index b0c4b10d40e..fba9bf16aa3 100644 --- a/plugins/go-format/skills/setup/SKILL.md +++ b/plugins/go-format/skills/setup/SKILL.md @@ -182,9 +182,6 @@ re-verifying. For everything else `apply` only points: when a saved value applies, fetch [plugin CLI reference § plugin configure](https://code.claude.com/docs/en/plugins/cli-reference#plugin-configure) live. - - **As of**: 2026-11-11 - - **Recheck trigger**: that section changes the command's flags, how it reports a saved or - refused value, or when a saved value applies. Re-running `apply` after everything passes changes nothing and reports "already configured". diff --git a/plugins/improvement/skills/find/SKILL.md b/plugins/improvement/skills/find/SKILL.md index 4d931fa9280..4f6858b63ab 100644 --- a/plugins/improvement/skills/find/SKILL.md +++ b/plugins/improvement/skills/find/SKILL.md @@ -274,8 +274,7 @@ never Glob or Grep the plugin directory to find it. The `context/` files write t writing it into a brief. Those files arrive through the Read tool as plain bytes, so a `${…}` token in them would reach the Bash tool unsubstituted, and the Bash tool's environment has no `CLAUDE_PLUGIN_ROOT` to expand it from. Basis: the plugins reference, -, verified -2026-10-07; recheck when that table adds supporting files to where a `${…}` reference resolves. +. ## Next diff --git a/plugins/improvement/skills/find/context/ci-health.md b/plugins/improvement/skills/find/context/ci-health.md index 4020e755613..3a1add8d027 100644 --- a/plugins/improvement/skills/find/context/ci-health.md +++ b/plugins/improvement/skills/find/context/ci-health.md @@ -31,9 +31,6 @@ which repositories and endpoints the proxy serves are read live, not assumed. - **Pointer:** [cloud environments: work with GitHub issues and pull requests](https://code.claude.com/docs/en/cloud-environments#work-with-github-issues-and-pull-requests) and [cloud environments: GitHub proxy](https://code.claude.com/docs/en/cloud-environments#github-proxy). -- **As of:** 2026-10-11. -- **Recheck trigger:** either section changes which GitHub tools or `gh` paths a cloud session - has, or which repositories or endpoints the proxy serves. Derive `/` from the first configured remote URL (`git remote` / `git remote get-url`), not from directory names. @@ -46,9 +43,6 @@ anything on it. Every duration number below comes from run timestamps instead. - **Pointer**: when checking the endpoint's status, fetch [Get workflow run usage](https://docs.github.com/en/rest/actions/workflow-runs#get-workflow-run-usage) live. -- **As of**: 2026-11-10 -- **Recheck trigger**: that section drops its retirement notice, or the endpoint is removed and the - call starts returning 404. ## Iterate by `created` date windows, never deep pagination @@ -67,10 +61,6 @@ buckets (record at the end of the list below). Use the documented `created` date - **Pointer**: for the per-search result cap, the filters it applies to and the page-size limit (the `per_page` parameter), read [List workflow runs for a repository](https://docs.github.com/en/rest/actions/workflow-runs#list-workflow-runs-for-a-repository). - - **As of**: 2026-11-10 - - **Recheck trigger**: that section drops the per-search cap, stops applying it to `created`, - changes the `per_page` maximum, or a page past the cap starts returning an error instead of an - empty list. ## Metrics @@ -115,9 +105,6 @@ iteration needs the REST call above (`gh api` or an equivalent raw-request path) - **Pointer**: for the filters `actions_list` takes and the options `get_job_logs` offers, fetch [GitHub MCP Server: Tools](https://github.com/github/github-mcp-server#tools) live. -- **As of**: 2026-11-03 -- **Recheck trigger**: `actions_list` documents a date filter, or `get_job_logs` changes its - options. Derived signals: diff --git a/plugins/improvement/skills/find/context/unattended.md b/plugins/improvement/skills/find/context/unattended.md index 252007ea4de..1e6739ec865 100644 --- a/plugins/improvement/skills/find/context/unattended.md +++ b/plugins/improvement/skills/find/context/unattended.md @@ -73,8 +73,6 @@ for operators: uninstalling the plugin from its last scope deletes this whole tr - **Pointer**: when writing that note, fetch [plugins CLI reference: plugin uninstall](https://code.claude.com/docs/en/plugins/cli-reference#plugin-uninstall) live. -- **As of**: 2026-11-10 -- **Recheck trigger**: that section drops `--keep-data` or changes what it preserves. ## Persisted report shape diff --git a/plugins/improvement/skills/improve/SKILL.md b/plugins/improvement/skills/improve/SKILL.md index 2084e1c4405..a5ae7fa9305 100644 --- a/plugins/improvement/skills/improve/SKILL.md +++ b/plugins/improvement/skills/improve/SKILL.md @@ -12,8 +12,7 @@ metadata: Collect these with **individual** Bash calls, one command per call, never combined into a single invocation, so a worktree-isolated session screens each git command on its own -([worktrees: how Claude Code enforces isolation](https://code.claude.com/docs/en/worktrees#how-claude-code-enforces-isolation), -as of 2026-10-11; recheck when that section changes how it screens a command that runs git): +([worktrees: how Claude Code enforces isolation](https://code.claude.com/docs/en/worktrees#how-claude-code-enforces-isolation)): - Current branch, `git branch --show-current` - Working tree status (empty = clean), `git status --porcelain | head -20` diff --git a/plugins/kindle-dedrm/skills/manage/SKILL.md b/plugins/kindle-dedrm/skills/manage/SKILL.md index ea28f0473d4..636e7c5993d 100644 --- a/plugins/kindle-dedrm/skills/manage/SKILL.md +++ b/plugins/kindle-dedrm/skills/manage/SKILL.md @@ -185,6 +185,3 @@ writing it into a brief; never hand a `${…}` token from those files to the Bas carries, fetch [Where each variable resolves](https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves) live. -- **As of**: 2026-10-11 -- **Recheck trigger**: that table adds supporting files to where a `${…}` reference resolves, or the - Bash tool's environment starts carrying the plugin variables. diff --git a/plugins/markdown-format/README.md b/plugins/markdown-format/README.md index 78fb1385d4d..70e27eaf793 100644 --- a/plugins/markdown-format/README.md +++ b/plugins/markdown-format/README.md @@ -25,8 +25,7 @@ Markdown style, so nothing runs there. Carrying a config **is** the opt-in. repository root. A config the tool reads only when a flag points it there does not open the gate. Which file names it discovers, and how a nested config scopes, is [markdownlint-cli2: Configuration](https://github.com/DavidAnson/markdownlint-cli2#configuration)'s - to say (as of 2026-11-03; recheck when that section changes the discovered names or how - nested configs apply). Both the batch row and the pre-commit entry read the same gates + to say. Both the batch row and the pre-commit entry read the same gates (`git-hooks/markdown-gates.sh`). - **A config that can run code waits for your approval.** The plugin treats a `.cjs` or `.mjs` config, and a config naming `customRules`, `markdownItPlugins` or @@ -35,20 +34,18 @@ Markdown style, so nothing runs there. Carrying a config **is** the opt-in. [markdownlint-cli2: .markdownlint-cli2.cjs or .markdownlint-cli2.mjs](https://github.com/DavidAnson/markdownlint-cli2#markdownlint-cli2cjs-or-markdownlint-cli2mjs)'s and, for the three keys, [markdownlint-cli2: .markdownlint-cli2.jsonc](https://github.com/DavidAnson/markdownlint-cli2#markdownlint-cli2jsonc)'s - to say (as of 2026-11-03; recheck when either section changes which config formats or keys - load modules). Until you approve that config state, + to say. Until you approve that config state, the files it governs are neither rewritten nor checked: the pre-commit entry prints a trust-gate line and the batch row stays silent. See [Trust model](#trust-model). - **Gitignored paths are out of scope for the batch row.** A file git excludes, a scratch tier such as `.work/**`, build output, or a vendored tree, is not rewritten. The verdict comes from `git check-ignore`; which ignore sources it reads is [git-check-ignore: description](https://git-scm.com/docs/git-check-ignore#_description)'s - to say (as of 2026-11-03; recheck when that section changes which sources it consults or - how it treats tracked files). A **tracked** file is never treated as ignored. Set + to say. A **tracked** file is never treated as ignored. Set `markdown_format_lint_gitignored` to `true` to bypass this check. What markdownlint-cli2's own `ignores` and `gitignore` keys do then is [markdownlint-cli2: .markdownlint-cli2.jsonc](https://github.com/DavidAnson/markdownlint-cli2#markdownlint-cli2jsonc)'s - to say (as of 2026-11-03; recheck when that section changes either key). The pre-commit + to say. The pre-commit entry only sees files git stages, so it needs no such rule. - **Write paths the batch row does not see.** It reads only `Write`, `Edit` and `MultiEdit` calls. A file written through `Bash`, `PowerShell` or an MCP tool is not rewritten in @@ -193,8 +190,7 @@ plugin keeps no exemption list of its own. Both the batch row and the pre-commit entry pass each file as a literal path. Whether a key applies to a literal path is [markdownlint-cli2: .markdownlint-cli2.jsonc](https://github.com/DavidAnson/markdownlint-cli2#markdownlint-cli2jsonc)'s -to say (as of 2026-11-03; recheck when that section changes how `ignores` treats paths -passed on the command line). +to say. Three `userConfig` options tune the hooks: diff --git a/plugins/markdown-format/skills/setup/SKILL.md b/plugins/markdown-format/skills/setup/SKILL.md index bbf5d3dd060..7cffe2843a7 100644 --- a/plugins/markdown-format/skills/setup/SKILL.md +++ b/plugins/markdown-format/skills/setup/SKILL.md @@ -189,9 +189,7 @@ the repo's own Yarn: run `yarn config get nodeLinker` in the repo. `pnp` → ski and give guidance, because Plug'n'Play generates a loader file, not the `node_modules/.bin` shim the hook resolves; install `markdownlint-cli2` on `PATH` or switch the linker. `node-modules`/`pnpm`, or Yarn Classic → install. For the setting's values and default, fetch -[`nodeLinker`](https://yarnpkg.com/configuration/yarnrc#nodeLinker) live (as of 2026-11-10; -recheck when its default or values change, or a linker other than `pnp` stops writing -`node_modules/.bin`). The +[`nodeLinker`](https://yarnpkg.com/configuration/yarnrc#nodeLinker) live. The verify-after-remediation rule below is the backstop when an install still yields no usable shim. After ANY remediation, re-run the relevant `check` probe live via Bash (a pre-computed row predates the remediation) and report @@ -218,9 +216,6 @@ install command's exit code alone. For everything else `apply` only points: when a saved value applies, fetch [plugin CLI reference § plugin configure](https://code.claude.com/docs/en/plugins/cli-reference#plugin-configure) live. - - **As of**: 2026-11-11 - - **Recheck trigger**: that section changes the command's flags, how it reports a saved or - refused value, or when a saved value applies. - no markdownlint config: this is why the plugin does nothing here, so lead with it rather than leaving it as a footnote under the passing prerequisites. Then offer to create a minimal `.markdownlint-cli2.jsonc` in the repository root only when explicitly asked. diff --git a/plugins/naming/skills/name-it-better/context/sources.md b/plugins/naming/skills/name-it-better/context/sources.md index 4f6ffa6aa1b..8a8f5d838c6 100644 --- a/plugins/naming/skills/name-it-better/context/sources.md +++ b/plugins/naming/skills/name-it-better/context/sources.md @@ -26,7 +26,7 @@ the honest → intent → domain-abstraction progression. `https://arlobelshee.com/good-naming-is-a-process-not-a-single-step/`. PRIMARY. Belshee's exact per-stage prose is corroborated by the Deep Roots rewrite below rather than quoted from the origin. Basis: the host did not - resolve when the entry was written, as of 2026-07-17. Recheck trigger: the + resolve when the entry was written. Recheck trigger: the host resolving again, which allows quoting the origin directly and restores this entry to a fully primary citation. - Canonical rewrite, Tim Ottinger + Llewellyn Falco: [deeproots-series] @@ -74,7 +74,7 @@ truth is the consuming org's conventions). Nominally this is PRIMARY (the authors' own chapter), but its specific rules here rest on secondary write-ups, so treat it as Tier-2-for-verification. Basis: the full text sat behind the publisher's - paywall and was not obtained, as of 2026-07-18. Recheck trigger: obtaining + paywall and was not obtained. Recheck trigger: obtaining the chapter text, which promotes this entry to PRIMARY and lets its rules be cited directly. @@ -131,9 +131,6 @@ style conflicts route to the consuming ecosystem, not a house verdict. - **Pointer**: when naming a skill, fetch live for how the name and description fields are used. - - **As of**: 2026-11-10 - - **Recheck trigger**: that section changes which field drives skill - loading, or the listing cap it states. - Documented, unresolved style conflicts. Route these to the consuming ecosystem's guide and do not pick a side: - abbreviation policy: .NET forbids ([dotnet-naming]) vs Go endorses @@ -147,8 +144,8 @@ style conflicts route to the consuming ecosystem, not a house verdict. - .NET naming guidelines (Microsoft): [dotnet-naming]. PRIMARY. Reproduces the 2008 2nd-edition text (self-flagged), so treat the specific DO/DO NOT - rules as Tier-2. Basis: the 3rd edition (2020) was not freely available, as - of 2026-07-18. Recheck trigger: the 3rd-edition text becoming reachable, + rules as Tier-2. Basis: the 3rd edition (2020) was not freely available. + Recheck trigger: the 3rd-edition text becoming reachable, which re-derives the DO/DO NOT rules against the current edition. - Kevlin Henney, "Seven Ineffective Coding Habits" (naming): [henney]. PRIMARY. Meaning over word-count; "adding words is not adding meaning". diff --git a/plugins/overengineering/reference/spoke-paths.md b/plugins/overengineering/reference/spoke-paths.md index 00a0d43cfbd..4ff6251c51d 100644 --- a/plugins/overengineering/reference/spoke-paths.md +++ b/plugins/overengineering/reference/spoke-paths.md @@ -10,6 +10,3 @@ environment. fetch [plugins reference § Where each variable resolves](https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves) live. -- **As of**: 2026-10-11 -- **Recheck trigger**: that section starts listing a skill's supporting files, or the Bash tool's - environment, as a place where `${CLAUDE_PLUGIN_ROOT}` resolves. diff --git a/plugins/overengineering/skills/audit/SKILL.md b/plugins/overengineering/skills/audit/SKILL.md index 7125060eeb9..e6a67eee657 100644 --- a/plugins/overengineering/skills/audit/SKILL.md +++ b/plugins/overengineering/skills/audit/SKILL.md @@ -140,7 +140,7 @@ marked unverified. An existing check is held to the enforcement ladder's guardrail criterion: read [the Guardrail criterion section](https://github.com/melodic-software/claude-code-plugins/blob/main/docs/contracts/enforcement-ladder/README.md#guardrail-criterion) -live. **As of**: 2026-10-21. **Recheck trigger**: the ladder's major version changes. +live. **Recheck trigger**: the ladder's major version changes. Protected items are audited in full: §7 caps the recommendation, not the scrutiny, and uncertain protection status counts as protected. A threshold that fires is cited with its source and its @@ -235,8 +235,7 @@ capped top findings. The `context/` files write the plugin's root directory as ``, which is `${CLAUDE_PLUGIN_ROOT}`. Substitute it before running a command or writing it into a brief. [`${CLAUDE_PLUGIN_ROOT}/reference/spoke-paths.md` § Spoke paths](${CLAUDE_PLUGIN_ROOT}/reference/spoke-paths.md#spoke-paths) -records why, with the pointer to recheck. **As of**: 2026-10-11. **Recheck trigger**: that section is -renamed or removed, or its own recheck trigger fires. +records why and holds the pointer. ## Next diff --git a/plugins/overengineering/skills/delta/SKILL.md b/plugins/overengineering/skills/delta/SKILL.md index 3d80b589199..4637fbc0c7a 100644 --- a/plugins/overengineering/skills/delta/SKILL.md +++ b/plugins/overengineering/skills/delta/SKILL.md @@ -219,8 +219,7 @@ scheduler, branch name or harness, and name no vendor's variables. The `context/` files write the plugin's root directory as ``, which is `${CLAUDE_PLUGIN_ROOT}`. Substitute it before running a command or writing it into a brief. [`${CLAUDE_PLUGIN_ROOT}/reference/spoke-paths.md` § Spoke paths](${CLAUDE_PLUGIN_ROOT}/reference/spoke-paths.md#spoke-paths) -records why, with the pointer to recheck. **As of**: 2026-10-11. **Recheck trigger**: that section is -renamed or removed, or its own recheck trigger fires. +records why and holds the pointer. ## Next diff --git a/plugins/overengineering/skills/delta/context/recurring-wiring.md b/plugins/overengineering/skills/delta/context/recurring-wiring.md index 2fd6d90e644..4fcb2a7f00d 100644 --- a/plugins/overengineering/skills/delta/context/recurring-wiring.md +++ b/plugins/overengineering/skills/delta/context/recurring-wiring.md @@ -39,15 +39,10 @@ interval is scheduled, are read live. - **Pointer**: when deciding whether `/loop` is available, fetch [Commands § All commands](https://code.claude.com/docs/en/commands#all-commands) live. -- **As of**: 2026-11-03 -- **Recheck trigger**: that section is removed or retitled, or its `/loop` row is dropped or renamed. - **Pointer**: when deciding how a supplied interval is scheduled and how far a fire time can drift, fetch [scheduled tasks § Run on a fixed interval](https://code.claude.com/docs/en/scheduled-tasks#run-on-a-fixed-interval) and [§ Jitter](https://code.claude.com/docs/en/scheduled-tasks#jitter) live. -- **As of**: 2026-10-11 -- **Recheck trigger**: either section is removed or retitled, or a release note names `/loop` - scheduling. **A fixed interval is the right shape here, and the reason is specific.** The self-paced shape, an omitted interval with the model choosing each delay, earns its keep for a *drain* loop, where what @@ -69,9 +64,6 @@ version. [scheduled tasks § Seven-day expiry](https://code.claude.com/docs/en/scheduled-tasks#seven-day-expiry) and [§ Let Claude choose the interval](https://code.claude.com/docs/en/scheduled-tasks#let-claude-choose-the-interval) live. -- **As of**: 2026-10-11 -- **Recheck trigger**: either section is removed or retitled, the expiry section changes the - window, or a release note names scheduled-task expiry or self-paced `/loop` scheduling. ## Shape 2: a scheduled task (headless) diff --git a/plugins/pixel-art/reference/backends.md b/plugins/pixel-art/reference/backends.md index a35d1c512ff..903948e6f3d 100644 --- a/plugins/pixel-art/reference/backends.md +++ b/plugins/pixel-art/reference/backends.md @@ -54,8 +54,7 @@ skip that feature, continue with the documented reduced result. forbids redistributing compiled builds; source can still be compiled for personal use, and art made with it can be sold. Do not copy the FAQ's pledge amount into a reply. - Verification record: claim = that license shape. Basis = - [Aseprite FAQ, Licensing & Commercial](https://www.aseprite.org/faq/). As-of 2026-09-28. - Recheck trigger: that section no longer saying the EULA replaced the GPL. + [Aseprite FAQ, Licensing & Commercial](https://www.aseprite.org/faq/). - Verification record: claim = `--batch` means do not start the UI, `--script` runs a Lua file, `--script-param` is read as `app.params`, `--version` prints the version, and the export flags above exist; the script uses `Sprite`, `Image:drawPixel`, `app.pixelColor.rgba`, `Sprite:newTag`, diff --git a/plugins/pixel-art/reference/brief.md b/plugins/pixel-art/reference/brief.md index 990dd6a02af..520b33f0d69 100644 --- a/plugins/pixel-art/reference/brief.md +++ b/plugins/pixel-art/reference/brief.md @@ -65,7 +65,5 @@ When the request is vague (no subject, or no checkable done criterion) or high-s This skill offers `/planning:interview` only when the planning plugin is installed, and says which path was taken, because another plugin's skill cannot be assumed present. - **Pointer**: when deciding whether another plugin's skill can be offered, fetch [Plugins overview: Decide whether you need a plugin](https://code.claude.com/docs/en/plugins/overview#decide-whether-you-need-a-plugin) and [What an enabled plugin adds to your sessions](https://code.claude.com/docs/en/plugins/overview#what-an-enabled-plugin-adds-to-your-sessions) live. -- **As of**: 2026-10-11 -- **Recheck trigger**: either section changes whether plugins install as units, or when a plugin's skills are present in a session. `craft-static.md` is in-repo. Re-read it when its silhouette, palette, or grid sections change; those sections are why proportions, style references, and palette are fields and why the rest default. diff --git a/plugins/playgrounds/skills/use/SKILL.md b/plugins/playgrounds/skills/use/SKILL.md index 7a4e2a4d46a..4f26588a50c 100644 --- a/plugins/playgrounds/skills/use/SKILL.md +++ b/plugins/playgrounds/skills/use/SKILL.md @@ -44,16 +44,12 @@ namespaced form. - **Pointer**: when a shadow is suspected or the bare name resolves unexpectedly, fetch [Skills: Resolve skills that share a name](https://code.claude.com/docs/en/skills#resolve-skills-that-share-a-name) live. -- **As of**: 2026-10-11 -- **Recheck trigger**: that section's same-name table changes how plugin skills - and local skills of one name load. ## Step 2: Present, so invoke When the upstream skill is present, invoke it via the Skill tool with the user's brief as arguments, using the namespaced form `playground:playground` -([Step 1](#step-1-presence-check-provenance-not-prose)'s pointer covers why; as of -2026-10-11, recheck when Step 1's pointer changes its target section). Pass the request +([Step 1](#step-1-presence-check-provenance-not-prose)'s pointer covers why). Pass the request as stated; the upstream skill owns template choice and generation. When the user names styles to leave out (italic accent words, pill-shaped buttons), carry that list in the brief; when they dislike a choice in the generated page, add it to the list and invoke @@ -83,9 +79,6 @@ organization policy, say so plainly and stop; there is no workaround to offer. could not, fetch [Plugin dependencies: How dependencies behave for your users](https://code.claude.com/docs/en/plugins/dependencies#how-dependencies-behave-for-your-users) and [Install plugins: Plugins with dependencies](https://code.claude.com/docs/en/plugins/install#plugins-with-dependencies) live. -- **As of**: 2026-10-11 -- **Recheck trigger**: either section changes when dependencies install, what is - reported when one cannot, or which marketplaces come preconfigured. ## Step 4: Delivery, especially off the desktop @@ -106,9 +99,6 @@ Degrade visibly at every tier; never name a delivery surface as guaranteed. - **Pointer**: when deciding whether the upstream flow can open the file in this session, fetch [the playground skill § How to use this skill](https://github.com/anthropics/claude-plugins-official/blob/main/plugins/playground/skills/playground/SKILL.md#how-to-use-this-skill) live. -- **As of**: 2026-11-03 -- **Recheck trigger**: that section is removed or retitled, or the skill moves out of - `plugins/playground/`. ## Recipes (field-tested) diff --git a/plugins/playwright/README.md b/plugins/playwright/README.md index cd3fed7cf7a..c22f602fb17 100644 --- a/plugins/playwright/README.md +++ b/plugins/playwright/README.md @@ -93,8 +93,7 @@ marketplace follows: - Its `SKILL.md` body is 493 lines, close to the size the skill-authoring guidance tells authors to stay under, and carries the whole command reference inline, so every invocation loads all of it. For that size guidance, see - [Skills: Add supporting files](https://code.claude.com/docs/en/skills#add-supporting-files) - (as of 2026-10-11; recheck when that section changes its size tip). + [Skills: Add supporting files](https://code.claude.com/docs/en/skills#add-supporting-files). - Seven of its ten reference files run past 100 lines (up to 433) with no contents list. diff --git a/plugins/playwright/skills/demo-video/SKILL.md b/plugins/playwright/skills/demo-video/SKILL.md index 84c33620f04..a15e43fff1b 100644 --- a/plugins/playwright/skills/demo-video/SKILL.md +++ b/plugins/playwright/skills/demo-video/SKILL.md @@ -43,8 +43,7 @@ option: use its Default. | `demo_captions` | `${user_config.demo_captions}` | `true` | step and outcome captions | | `demo_narration` | `${user_config.demo_narration}` | `false` | voice-over | -Pointer: [Reference a saved value](https://code.claude.com/docs/en/plugins/manifest-reference#reference-a-saved-value); -as of 2026-10-11; recheck when that section changes what an unset option renders as. +Pointer: [Reference a saved value](https://code.claude.com/docs/en/plugins/manifest-reference#reference-a-saved-value). `plain` removes the title, camera and captions whatever their toggles say; a toggle set to `false` removes its layer in either style. Pass them to `build_edl.py` as @@ -76,7 +75,7 @@ removes its layer in either style. Pass them to `build_edl.py` as uses device-pixel screenshots, not Chromium's screencast. Pointer: when weighing the screencast as a capture source, fetch [Page.startScreencast](https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-startScreencast) - live. As of: 2026-11-03. Recheck trigger: that method changes its frame size parameters. + live. 4. **Narration (only when `demo_narration` is true).** When the speech plugin is installed, run `/speech:narrate` once per line into `/audio//`, `/audio/.outcome/` and, for a typing step, `/audio/.results/`; each folder gets `narration.wav` and @@ -112,7 +111,7 @@ removes its layer in either style. Pass them to `build_edl.py` as evidence when that step does not resolve, goes locally through `gh pr comment --attach`, and in CI as a non-zipped Actions artifact plus a comment linking it. Pointer: when checking what `--attach` takes, fetch [gh pr comment: Options](https://cli.github.com/manual/gh_pr_comment#options) - live. As of: 2026-11-03. Recheck trigger: that list renames or drops `--attach`. + live. ## Next diff --git a/plugins/playwright/skills/demo-video/reference/posting.md b/plugins/playwright/skills/demo-video/reference/posting.md index 832eb9118f4..462a1ccb597 100644 --- a/plugins/playwright/skills/demo-video/reference/posting.md +++ b/plugins/playwright/skills/demo-video/reference/posting.md @@ -72,9 +72,6 @@ included. - **Pointer:** [actions/upload-artifact README](https://github.com/actions/upload-artifact#readme), the `archive` input (single file, no zip) and the `artifact-url` output. -- **As of:** 2026-10-04. -- **Recheck trigger:** a new major version of `actions/upload-artifact`, or the `archive` input - changing. Retention follows the repository's artifact retention setting; say in the comment that the link expires with it. diff --git a/plugins/playwright/skills/playwright/SKILL.md b/plugins/playwright/skills/playwright/SKILL.md index ad6c3c907e6..af22a4b5f00 100644 --- a/plugins/playwright/skills/playwright/SKILL.md +++ b/plugins/playwright/skills/playwright/SKILL.md @@ -63,7 +63,7 @@ bash "${CLAUDE_SKILL_DIR}/scripts/fill-secret.sh" e2 E2E_TEST_PASSWORD It reads the named variable, refuses an unset or empty one, discards `playwright-cli`'s output, and passes its exit status through. After a failure, take a `snapshot` to see the page. A `type` or `run-code` that carries a secret gets the same treatment by hand: redirect its stdout and stderr to `/dev/null`. -- **Pointer**: what the CLI prints for each command, in upstream's [test-generation reference, "0. How generation works"](https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/test-generation.md#0-how-generation-works). **As of**: 2026-11-08. **Recheck trigger**: the frontmatter `upstream-version` moves, or that section starts masking typed text. +- **Pointer**: what the CLI prints for each command, in upstream's [test-generation reference, "0. How generation works"](https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/test-generation.md#0-how-generation-works). ## Conventions @@ -111,7 +111,7 @@ Load the right reference file for the scenario. Each is distilled from Microsoft Microsoft's defaults are right for autonomous E2E work: accept them. Don't add `PLAYWRIGHT_MCP_*` env vars to project settings unless a real, recurring need surfaces; they add maintenance surface without benefit. Override per command instead: `--headed` when the user wants to watch, and a saved login state ([Logged-in sites](#logged-in-sites)) when a flow needs a logged-in site. -- **Pointer**: for the current default values (headed or headless, browser profile, timeouts, viewport, console level) and the full env-var and config-file schema, read `$(npm root -g)/@playwright/cli/README.md` or run `playwright-cli open --help`. **As of**: 2026-11-03. **Recheck trigger**: the frontmatter `upstream-version` moves. +- **Pointer**: for the current default values (headed or headless, browser profile, timeouts, viewport, console level) and the full env-var and config-file schema, read `$(npm root -g)/@playwright/cli/README.md` or run `playwright-cli open --help`. **One exception: video recording.** A bare `video-start` records at a small fixed size that `resize` does not change. A demo a reviewer will watch needs the viewport set on `open` and a matching `video-start --size`, both per command, so it does not contradict the guidance above. The levers, frame rate, cursor and action highlights, and the measured outcomes are in [reference/tracing-and-video.md](reference/tracing-and-video.md). @@ -138,8 +138,7 @@ The `reference/` files write this skill's directory as ``, which is it into a brief. Those files arrive through the Read tool as plain bytes, so a `${…}` token in them would reach the Bash tool unsubstituted, and the Bash tool's environment has no `CLAUDE_SKILL_DIR` to expand it from. Basis: the plugins reference, -, verified -2026-10-07; recheck when that table adds supporting files to where a `${…}` reference resolves. +. ## Next diff --git a/plugins/playwright/skills/playwright/reference/sessions.md b/plugins/playwright/skills/playwright/reference/sessions.md index 9847f217c2e..d5cf6130d73 100644 --- a/plugins/playwright/skills/playwright/reference/sessions.md +++ b/plugins/playwright/skills/playwright/reference/sessions.md @@ -61,7 +61,7 @@ playwright-cli -s=auth close playwright-cli -s=auth open https://app.example.com # still logged in ``` -- **Pointer**: for what a session keeps without `--persistent`, read upstream's [storage-state reference, "Security Notes"](https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/storage-state.md#security-notes). **As of**: 2026-11-10. **Recheck trigger**: the playwright skill's frontmatter `upstream-version` moves. +- **Pointer**: for what a session keeps without `--persistent`, read upstream's [storage-state reference, "Security Notes"](https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/storage-state.md#security-notes). For explicit profile location: diff --git a/plugins/playwright/skills/playwright/reference/storage-and-auth.md b/plugins/playwright/skills/playwright/reference/storage-and-auth.md index accc78e0ac0..a9f05d0bcab 100644 --- a/plugins/playwright/skills/playwright/reference/storage-and-auth.md +++ b/plugins/playwright/skills/playwright/reference/storage-and-auth.md @@ -127,7 +127,7 @@ For a real site the owner uses (GitHub first), one state file per site lets ever The owner saves the file once, from a headed session, and re-saves it only when the site expires the login (a loaded session lands on a sign-in page). Agents never run these steps: the owner, not an agent, decides when a login is written to disk. In one session on 2026-10-09 the auto-mode classifier also denied an agent's `state-save` as credential materialization; that single session is the only evidence, so treat it as an observation, not a guarantee. -- **Pointer**: when an agent's save step is denied or allowed unexpectedly, fetch [Permission modes: How auto mode evaluates actions](https://code.claude.com/docs/en/permission-modes#how-auto-mode-evaluates-actions) live. **As of**: 2026-10-11. **Recheck trigger**: that section changes what auto mode blocks by default. +- **Pointer**: when an agent's save step is denied or allowed unexpectedly, fetch [Permission modes: How auto mode evaluates actions](https://code.claude.com/docs/en/permission-modes#how-auto-mode-evaluates-actions) live. Linux and macOS, in a shell (in Claude Code, prefix each command line with `!`): @@ -153,7 +153,7 @@ What the file means: - It lives outside every repository, in an owner-only directory (mode 700, file mode 600; an owner-only ACL on Windows). It is never committed, copied, or read into an agent's context. - To revoke it, delete the file and sign that session out on the site (GitHub: Settings, Sessions). -- **Pointer**: the default directory follows `$XDG_STATE_HOME` from the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir/latest/); what a state file holds and why it is sensitive is in [Playwright authentication](https://playwright.dev/docs/auth). **As of**: 2026-11-03. **Recheck trigger**: the frontmatter `upstream-version` moves, or the spec changes `XDG_STATE_HOME`. +- **Pointer**: the default directory follows `$XDG_STATE_HOME` from the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir/latest/); what a state file holds and why it is sensitive is in [Playwright authentication](https://playwright.dev/docs/auth). ## Security invariants diff --git a/plugins/repo-fleet-hygiene/skills/apply/SKILL.md b/plugins/repo-fleet-hygiene/skills/apply/SKILL.md index c05f3f2cd2f..a0c38701cbc 100644 --- a/plugins/repo-fleet-hygiene/skills/apply/SKILL.md +++ b/plugins/repo-fleet-hygiene/skills/apply/SKILL.md @@ -20,8 +20,6 @@ fleet cleanup contract. It is a separate skill from `:audit` on purpose: keeping - **Pointer**: how a prefix rule matches the arguments after it is in [Permission rule syntax](https://code.claude.com/docs/en/permissions#permission-rule-syntax). - **As of**: 2026-10-11. **Recheck trigger**: that section changes how a trailing wildcard in a - Bash rule matches arguments, or is renamed. Default is **dry-run** (evidence refresh + ordered preview, no mutation). Execution requires an explicit `--apply`, then interactive confirmation **or** `--yes` for non-interactive consent. diff --git a/plugins/repo-fleet-hygiene/skills/audit/SKILL.md b/plugins/repo-fleet-hygiene/skills/audit/SKILL.md index 4f80c3f1e45..79cbf507ed4 100644 --- a/plugins/repo-fleet-hygiene/skills/audit/SKILL.md +++ b/plugins/repo-fleet-hygiene/skills/audit/SKILL.md @@ -75,9 +75,6 @@ the project rung below reachable at all. [Available string substitutions](https://code.claude.com/docs/en/skills#available-string-substitutions), and which processes receive the variable is in [Where each variable resolves](https://code.claude.com/docs/en/plugins/manifest-reference#where-each-variable-resolves). - **As of**: 2026-10-11. **Recheck trigger**: the first section stops substituting - `${CLAUDE_PROJECT_DIR}` in skill content, the second starts listing the Bash tool among the - processes that receive it, or either is renamed. If no explicit scope and no config-supplied `fleet.root`/`fleet.repo` resolve, the run uses the shared no-scope ladder: `--named` paths, then `ghq root --all` when `ghq` is installed, then the @@ -125,8 +122,7 @@ The bundled collector is authoritative for classifications. Preserve its evidenc repository's **main worktree**, read from `git worktree list --porcelain`, never from the checkout discovery reached first. Which record is the main worktree: git-worktree's [`list`](https://git-scm.com/docs/git-worktree#Documentation/git-worktree.txt-list) entry and - [List output format](https://git-scm.com/docs/git-worktree#_list_output_format), as of 2026-11-03; recheck when that entry changes the order it lists worktrees - in. When a supplied or discovered path resolves to a different main + [List output format](https://git-scm.com/docs/git-worktree#_list_output_format). When a supplied or discovered path resolves to a different main worktree, the header states the substitution on one `Resolved to main worktree:` line per repository, naming every path that resolved into it. Relay it, because the operator named one path and the report is about another. The report always shows @@ -340,8 +336,8 @@ Related fleet contracts that remain separate: as an `UNKNOWN` `discovery-symlink-skip` finding and counted on the discovery-skips header line. Like `discovery-skip`, it is disclosure-only and does not make the fleet BLOCKED. What a Windows directory junction is: - [Creating directory junctions](https://gitforwindows.org/symbolic-links.html#creating-directory-junctions), - as of 2026-11-03; recheck when that page moves or covers how Git Bash tests a junction. Symlinked + [Creating directory junctions](https://gitforwindows.org/symbolic-links.html#creating-directory-junctions). + Symlinked discovery *roots* remain a hard refusal (CLI) or `stale-config-entry` (configured). - `gh` missing/unauthenticated or API/timeout failure: continue Git/worktree checks, report GitHub evidence as `UNKNOWN`, and make no merged/migration claim. Compatible `timeout`/`gtimeout` is @@ -379,7 +375,7 @@ Related fleet contracts that remain separate: | `ls-remote-fleet-unavailable` | Confirm `git ls-remote --heads` works by hand with the operator's usual Git transport, then rerun | | `worktree-root-pluginconfigs-unreadable` | Install `jq`, or set `worktreeroot.path`; do not treat the fleet as unconfigured | | `worktree-placement-unverifiable` | Inspect the canonical checkout; placement was not checked for any of its worktrees, so their placement is unknown rather than confirmed | -| `bare-repo-with-working-tree` | Manual review: `core.bare=true` coincides with working-tree content or registered linked worktrees. What the setting does: the [`core.bare`](https://git-scm.com/docs/git-config#Documentation/git-config.txt-corebare) entry, as of 2026-11-03; recheck when that entry changes | +| `bare-repo-with-working-tree` | Manual review: `core.bare=true` coincides with working-tree content or registered linked worktrees. What the setting does: the [`core.bare`](https://git-scm.com/docs/git-config#Documentation/git-config.txt-corebare) entry | | `github-remote-moved` | Human-reviewed `git remote set-url`; this plugin never changes remotes | This plugin remains useful if those optional collaborators are absent: the report names the local diff --git a/plugins/repo-fleet-hygiene/skills/audit/reference/official-sources.md b/plugins/repo-fleet-hygiene/skills/audit/reference/official-sources.md index 78fc59b94b0..27ac39a401d 100644 --- a/plugins/repo-fleet-hygiene/skills/audit/reference/official-sources.md +++ b/plugins/repo-fleet-hygiene/skills/audit/reference/official-sources.md @@ -1,11 +1,7 @@ # Official source record -Fetched and re-verified 2026-07-16, except the Git entries dated 2026-09-29 under "Git claims the -skill bodies restate", which were fetched that day, and the Claude Code entries, re-verified -2026-10-11. Recheck trigger: any GitHub GraphQL or REST rate-limit change, -any change to the Git commands or porcelain fields the collector parses, and each Claude Code -minor release that touches skills, plugins, or `allowed-tools`. These sources define the runtime -and evidence contracts; the plugin does not rely on remembered behavior. +These sources define the runtime and evidence contracts; the plugin does not rely on remembered +behavior. ## Claude Code diff --git a/plugins/repo-fleet-hygiene/skills/audit/reference/security-review.md b/plugins/repo-fleet-hygiene/skills/audit/reference/security-review.md index ce732f3c42d..17964d04637 100644 --- a/plugins/repo-fleet-hygiene/skills/audit/reference/security-review.md +++ b/plugins/repo-fleet-hygiene/skills/audit/reference/security-review.md @@ -31,8 +31,7 @@ confirmation or `--yes`, re-derives OIDs before every delete, and skips fail-clo the same install-local path. The plugin writes no cache or persistent state and has no sibling-plugin reach-outs. Pointer: when checking where that token is substituted, fetch [skills: available string substitutions](https://code.claude.com/docs/en/skills#available-string-substitutions) - live. As of: 2026-11-10. Recheck trigger: that section stops substituting the token in - `allowed-tools` Bash rules. + live. 5. **Data egress:** `git` reads local metadata. `gh api` (REST identity GET and aliased GraphQL merged-PR queries) contacts only `github.com` and transmits repository identity, the non-default local branch names under audit for that repository, and any remote-only head names read from the local diff --git a/plugins/ruff-format/README.md b/plugins/ruff-format/README.md index c461a89a314..b5531b3294e 100644 --- a/plugins/ruff-format/README.md +++ b/plugins/ruff-format/README.md @@ -19,8 +19,6 @@ own and runs only when your repo has opted into Ruff. script unless the payload mentions `.py`, so a batch without Python costs one `node` process. - **Pointer**: when deciding what filters a `PostToolBatch` row, fetch [hooks: PostToolBatch](https://code.claude.com/docs/en/hooks#posttoolbatch) live. - **As of**: 2026-10-15. **Recheck trigger**: that section adds a matcher or an `if` for the - event, or changes the `tool_calls` fields. - **Opt-in on a Ruff config.** Ruff runs **only when a `.ruff.toml`, `ruff.toml`, or `pyproject.toml` with a `[tool.ruff]` section governs the edited file**, found by walking up from the file to the repository root. A @@ -32,8 +30,7 @@ own and runs only when your repo has opted into Ruff. safe: a missed opt-in, never a wrong edit). - **Pointer**: when comparing this walk with Ruff's own, fetch [Config file discovery](https://docs.astral.sh/ruff/configuration/#config-file-discovery) - live. **As of**: 2026-11-03. **Recheck trigger**: that section changes which files or - tables Ruff reads as its config. + live. - **Safe fixes only.** `ruff check --fix` never applies unsafe fixes, even when your config sets `unsafe-fixes = true`. - **Just-added imports are protected in the session.** The batch row passes `--unfixable F401`, @@ -41,8 +38,6 @@ own and runs only when your repo has opted into Ruff. not pass it, so an unused import goes at commit. - **Pointer**: when working out how the flag combines with your config's `unfixable` list, fetch [settings: lint.unfixable](https://docs.astral.sh/ruff/settings/#lint_unfixable) live. - **As of**: 2026-11-03. **Recheck trigger**: that entry changes how a command-line value - combines with the configured list. - **Pre-existing drift is rewritten whole.** The batch payload carries no pre-edit bytes, so a file that already drifted from your config is formatted in full, as the pre-commit entry would. - **Respects your excludes.** Both pass `--force-exclude`, so a path your config excludes diff --git a/plugins/ruff-format/skills/setup/SKILL.md b/plugins/ruff-format/skills/setup/SKILL.md index 3f2d59e6b09..46fe970d395 100644 --- a/plugins/ruff-format/skills/setup/SKILL.md +++ b/plugins/ruff-format/skills/setup/SKILL.md @@ -164,8 +164,7 @@ Principles, in order. They decide every case, whatever the tool: the tool's next sync or clean silently removes. 3. **Never create or mutate an environment.** When no environment exists yet, use the tool's record-only mode when it has one (e.g. `uv add --dev ruff --no-sync`; pointer: - [`uv add`](https://docs.astral.sh/uv/reference/cli/#uv-add), as of 2026-11-10, recheck trigger: - `--no-sync` stops skipping the environment sync) and hand the sync/install step to the + [`uv add`](https://docs.astral.sh/uv/reference/cli/#uv-add)) and hand the sync/install step to the consumer as their own command; when the tool's add command cannot avoid creating/instantiating an environment, don't run it. Give it as guidance instead. 4. **Only where the hook resolves.** The hook resolves repo-ancestor `.venv` interpreters @@ -206,9 +205,6 @@ only points: when a saved value applies, fetch [plugin CLI reference § plugin configure](https://code.claude.com/docs/en/plugins/cli-reference#plugin-configure) live. - - **As of**: 2026-11-11 - - **Recheck trigger**: that section changes the command's flags, how it reports a saved or - refused value, or when a saved value applies. - no Ruff config: offer to create a minimal Ruff config in the repository root only when explicitly asked. The plugin imposes no rules of its own. diff --git a/plugins/songwriting/agents/object-writer.md b/plugins/songwriting/agents/object-writer.md index daefc374b23..297eb5a653c 100644 --- a/plugins/songwriting/agents/object-writer.md +++ b/plugins/songwriting/agents/object-writer.md @@ -160,6 +160,5 @@ held every run. [Choose an effort level](https://code.claude.com/docs/en/model-config#choose-an-effort-level); for what the `opus` alias resolves to, see [Model aliases](https://code.claude.com/docs/en/model-config#model-aliases). -- **As of**: 2026-11-09 - **Recheck trigger**: the next model release, a change to the object-writing eval suite, or the model-config table's `medium` or `high` rows changing. diff --git a/plugins/songwriting/context/pat-pattison/research/title-game.md b/plugins/songwriting/context/pat-pattison/research/title-game.md index 0c4d9e1b017..30dc2eca792 100644 --- a/plugins/songwriting/context/pat-pattison/research/title-game.md +++ b/plugins/songwriting/context/pat-pattison/research/title-game.md @@ -2,7 +2,7 @@ Pat Pattison's documented Title Game exercise, used as a co-write warmup and as a solo title-generation drill. Source: Songwriter Trysts podcast -episode 40 (verified web research 2026-05-10), the most detailed public +episode 40, the most detailed public documentation of the mechanics. Recheck when Pat documents the Title Game in a book or on patpattison.com. diff --git a/plugins/songwriting/skills/object-writing/SKILL.md b/plugins/songwriting/skills/object-writing/SKILL.md index c04463612cc..a989d6568ca 100644 --- a/plugins/songwriting/skills/object-writing/SKILL.md +++ b/plugins/songwriting/skills/object-writing/SKILL.md @@ -85,9 +85,6 @@ Dispatch rules: [Choose a model](https://code.claude.com/docs/en/sub-agents#choose-a-model) and [Run every subagent on one model](https://code.claude.com/docs/en/sub-agents#run-every-subagent-on-one-model) live, and read the session's subagent-model environment variables against them. - - **As of**: 2026-11-10 - - **Recheck trigger**: either section changes the resolution order or what the forcing - setting overrides, or a release note names subagent model resolution. **The fleet default is the tier whose writing has cleared the writer's bar**, not a fixed model name, which goes stale at the next release. Resolve it from the consuming project's own @@ -98,24 +95,19 @@ Dispatch rules: **Never run a fleet on a tier priced above the fleet default.** A fan-out multiplies a tier's per-token rate by the agent count. A tier above the default belongs at a judge or verifier stage at most, where one call reads many writes. Pointer for the rates: - [Model pricing](https://platform.claude.com/docs/en/about-claude/pricing#model-pricing). As of: - 2026-11-10. Recheck trigger: that section prices a higher tier at or below the fleet default's - rate. + [Model pricing](https://platform.claude.com/docs/en/about-claude/pricing#model-pricing). + Recheck trigger: that section prices a higher tier at or below the fleet default's rate. **Reach for effort before reaching for a cheaper tier.** Effort scales the tokens one agent spends; tier scales the price of every token AND changes which model wrote the lines. Across a fleet both multiply, but only one of them changes the writing. A fan-out that needs the lever sets it on the spawn, not through a workflow (the pointer below, to [Choose an effort level](https://code.claude.com/docs/en/sub-agents#choose-an-effort-level), - says which spawns take it; as of 2026-10-11; recheck when that pointer's URL or as-of date - changes, or it is dropped). A spawn of `object-writer` omits `effort` unless the writer asks for + says which spawns take it). A spawn of `object-writer` omits `effort` unless the writer asks for another level. - **Pointer**: before relying on the effort of an agent spawn, whether or not it passes `effort`, fetch live. - - **As of**: 2026-10-11 - - **Recheck trigger**: that section changes which spawns take a per-call `effort` or how it - ranks against an agent definition's `effort`. **A tier step-down is a per-stage decision, never a fleet default.** Mechanical legs (rhyme-field enumeration, word-pool merge, syllable counting, dedup) are reading-heavy and low-reasoning, and diff --git a/plugins/speech/reference/elevenlabs.md b/plugins/speech/reference/elevenlabs.md index 7f5a454cf76..464f8b40cfd 100644 --- a/plugins/speech/reference/elevenlabs.md +++ b/plugins/speech/reference/elevenlabs.md @@ -11,9 +11,6 @@ for Text to Dialogue only, but a live with-timestamps call returned clean word t - **Pointer**: when choosing a model or rechecking a limit, fetch live. -- **As of**: 2026-10-10 -- **Recheck trigger**: that page changes a model's character limit, or lists `eleven_v4` under - Text to Speech. ## Writing a script for a voice @@ -26,9 +23,6 @@ not the plugin. [Prompting Eleven v4](https://elevenlabs.io/docs/overview/capabilities/text-to-speech/best-practices#prompting-eleven-v4) and [Prompting Eleven v3](https://elevenlabs.io/docs/overview/capabilities/text-to-speech/best-practices#prompting-eleven-v3). -- **As of**: 2026-10-04 -- **Recheck trigger**: either section is renamed or removed, or a new model gets its own prompting - section. ## Voice cloning @@ -40,8 +34,6 @@ id passed with `--voice`. or [Professional Voice Cloning](https://elevenlabs.io/docs/eleven-creative/voices/voice-cloning/professional-voice-cloning) live. -- **As of**: 2026-10-04 -- **Recheck trigger**: either page moves, or the plugin starts creating voices itself. ## Cost and quota @@ -50,9 +42,6 @@ remaining quota and links the pricing page; the `character-cost` header it recor `words.json` is what ElevenLabs counted for the call. - **Pointer**: when the user asks what a run costs, fetch live. -- **As of**: 2026-10-04 -- **Recheck trigger**: the pricing page moves, or ElevenLabs stops billing text to speech by - characters. ## The API the script calls @@ -67,16 +56,11 @@ retries only HTTP 429 and 5xx. [errors](https://elevenlabs.io/docs/eleven-api/resources/errors) live, and the machine-readable spec at (download it with curl; it is too large to read through a page fetch). -- **As of**: 2026-10-04 -- **Recheck trigger**: a call fails with a status or body shape the script does not handle, or the - spec changes the with-timestamps request body. ## Finding anything else - **Pointer**: when a topic is not above, fetch the docs index live. -- **As of**: 2026-10-04 -- **Recheck trigger**: the index moves. ## ElevenLabs' own agent tooling @@ -87,6 +71,5 @@ The hosted MCP server returns no word timings, so it cannot replace `elevenlabs. - **Pointer**: when comparing the plugin with ElevenLabs' own tooling, read , and the hosted MCP server at live. -- **As of**: 2026-10-04 - **Recheck trigger**: the hosted MCP server gains a text-to-speech tool that returns per-character or per-word timings. diff --git a/plugins/speech/reference/plugin-options.md b/plugins/speech/reference/plugin-options.md index b101a23ffed..752dc69b55e 100644 --- a/plugins/speech/reference/plugin-options.md +++ b/plugins/speech/reference/plugin-options.md @@ -8,6 +8,3 @@ the shell from expanding whatever text reaches the command. - **Pointer**: when changing how an option reaches a script, or what a script treats as unset, fetch live. -- **As of**: 2026-10-09 -- **Recheck trigger**: that section changes how an option with no stored value renders in a skill - body, or a run shows a script receiving text it neither accepts as a value nor treats as unset. diff --git a/plugins/sql-server/skills/setup/SKILL.md b/plugins/sql-server/skills/setup/SKILL.md index e72c8703be5..37a4edb7ef0 100644 --- a/plugins/sql-server/skills/setup/SKILL.md +++ b/plugins/sql-server/skills/setup/SKILL.md @@ -100,14 +100,8 @@ was skipped or refused, and each FAIL with its remediation. ## Upstream record - MCP scopes and environment variable expansion in registrations: - , as of - 2026-11-01. Recheck when Claude Code changes how `claude mcp add --env` stores a value or which - scopes expand `${VAR}`, or when a readback shows a literal `${NAME}` reaching the server. + . - When an added MCP server becomes available to a session: - , as of 2026-11-01. Recheck when - Claude Code changes how `claude mcp add` takes effect, or when a registration's tools appear in - the session that added it. + . - Persistence of `${CLAUDE_PLUGIN_DATA}` across plugin updates: - , as of - 2026-11-10. Recheck when that section changes, or when `check` reports no server copy after an - update that `apply` had installed. + . diff --git a/plugins/tdd/skills/principles/reference/characterization-testing.md b/plugins/tdd/skills/principles/reference/characterization-testing.md index 244d5e26f23..501440b0623 100644 --- a/plugins/tdd/skills/principles/reference/characterization-testing.md +++ b/plugins/tdd/skills/principles/reference/characterization-testing.md @@ -6,9 +6,8 @@ them proves sameness rather than correctness. **Provenance, read first.** This file is **not** a book distillation. Michael Feathers' *Working Effectively with Legacy Code* (2004) was **not** read; his definition and recipe below come from -his 2016 web page only. The other sources are tool documentation and one 2025 blog post, read on -2026-10-06. The sources, their read depth, and the recheck trigger are in [Sources](#sources) at -the end. +his 2016 web page only. The other sources are tool documentation and one 2025 blog post. The +sources and their read depth are in [Sources](#sources) at the end. ## What a Characterization Test Is @@ -79,8 +78,7 @@ Two consequences, stated as this file's reading of the sources: ## Sources -Read on 2026-10-06, at the depth noted. Recheck trigger: Feathers' or Seemann's page moves or is -revised, or ApprovalTests, Verify or Jest changes its acceptance workflow. +Each source was read at the depth noted. - Michael Feathers, "Characterization Testing" (2016-08-08, ). Page read. His book diff --git a/plugins/toolchain/skills/check/SKILL.md b/plugins/toolchain/skills/check/SKILL.md index 706d357577a..aaba3e5cd8f 100644 --- a/plugins/toolchain/skills/check/SKILL.md +++ b/plugins/toolchain/skills/check/SKILL.md @@ -17,7 +17,7 @@ Collect these with **individual** Bash calls, one command per call, never combin - Working tree status (empty = clean), `git status --porcelain | head -20` - Current branch, `git branch --show-current` -Keep the bound in the pipe; a read-time cap bounds nothing. Treat a failure (not a repository, git unavailable) as an unknown value and carry on. Pointers: what a large output returns, [Output limits](https://code.claude.com/docs/en/tools-reference#output-limits); how injected commands are grouped, [How injected commands run](https://code.claude.com/docs/en/skills#how-injected-commands-run); why a pre-compute block carrying git is refused, `/source-control:worktree`'s gather-block reference, "The pre-compute block runs as one shell invocation". As of: 2026-10-11. Recheck trigger: either docs section changes, or that skill drops or renames that section. +Keep the bound in the pipe; a read-time cap bounds nothing. Treat a failure (not a repository, git unavailable) as an unknown value and carry on. Pointers: what a large output returns, [Output limits](https://code.claude.com/docs/en/tools-reference#output-limits); how injected commands are grouped, [How injected commands run](https://code.claude.com/docs/en/skills#how-injected-commands-run); why a pre-compute block carrying git is refused, `/source-control:worktree`'s gather-block reference, "The pre-compute block runs as one shell invocation". ## Purpose @@ -111,7 +111,7 @@ For each affected ecosystem run the resolved `build-cmd`, `test-cmd` and `check- **Missing declared dependencies.** When the ecosystem's tool is on `PATH` but a command cannot start because the project's declared dependencies are not installed (a package or module not found, a project not restored), install them once and rerun that command, within these limits: -- Install only from the committed lockfile, with install scripts disabled, and only with one of these commands: `npm ci --ignore-scripts`, `uv sync --frozen --no-build --no-install-local`, `dotnet restore --locked-mode`. Any other package manager installs nothing: report `skip (dependencies missing: no vetted install)`. With no lockfile, do not install; report `skip (dependencies missing: no lockfile)`. The uv command builds nothing at install time, so a third-party dependency that ships no wheel fails the install: report `skip (dependencies missing: no wheel for )`. Pointer: for the flags, see and . As of: 2026-10-02. Recheck trigger: either entry changes what it builds or installs. +- Install only from the committed lockfile, with install scripts disabled, and only with one of these commands: `npm ci --ignore-scripts`, `uv sync --frozen --no-build --no-install-local`, `dotnet restore --locked-mode`. Any other package manager installs nothing: report `skip (dependencies missing: no vetted install)`. With no lockfile, do not install; report `skip (dependencies missing: no lockfile)`. The uv command builds nothing at install time, so a third-party dependency that ships no wheel fails the install: report `skip (dependencies missing: no wheel for )`. Pointer: for the flags, see and . - Stay within the session's permission mode. Never use `sudo` or any other elevation, and never retry a denied install another way: report `skip (dependencies missing: install denied)`. - Never install a tool. A runner missing from `PATH` stays `skip (tool missing: )`. - Capture `git status --porcelain` and a hash of `git diff HEAD --binary` before the install and again after it, so a file that was already modified and changes again is caught. If either differs, stop the whole run and report `Overall: STOPPED (dependency install changed: )`. Run no further check: the tree is no longer the one under test. diff --git a/plugins/toolchain/skills/check/context/dotnet.md b/plugins/toolchain/skills/check/context/dotnet.md index 6f8e0686b23..502f910ffc6 100644 --- a/plugins/toolchain/skills/check/context/dotnet.md +++ b/plugins/toolchain/skills/check/context/dotnet.md @@ -51,8 +51,6 @@ dotnet format "$REPO_ROOT/" - **Prefer `--project`** for test project paths under either runner (VSTest or Microsoft.Testing.Platform). - **Pointer**: when a bare project path is rejected, or to check which runner is the default and what each accepts, fetch [dotnet test with MTP: options](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-test-mtp#options) live. - - **As of**: 2026-11-10 - - **Recheck trigger**: either runner stops accepting `--project` for a test project path, or the default runner changes. - **`--nologo` breaks xUnit v3** MTP runner. The flag passes through to the xUnit executable which rejects it as "Unknown option". Result: zero tests ran, exit code 5. Same issue with `-v q`. Use plain `dotnet test` or `-v n` - **`TreatWarningsAsErrors` repos**: when the repo turns warnings into errors globally, every warning is build-breaking; don't dismiss a warning as cosmetic - **VS locks analyzer DLLs**: if `dotnet build` fails with MSB3021 while Visual Studio is open, close VS or skip analyzers for quick iteration diff --git a/plugins/toolchain/skills/check/context/typescript.md b/plugins/toolchain/skills/check/context/typescript.md index df2d713bd3e..37db04afcd6 100644 --- a/plugins/toolchain/skills/check/context/typescript.md +++ b/plugins/toolchain/skills/check/context/typescript.md @@ -38,8 +38,6 @@ cd "$PROJECT_DIR" && npx @biomejs/biome check --write Run Biome through `npx` by its scoped package name `@biomejs/biome`, never the bare `biome` name: #12573 is the observed failure of the bare name. When the project pins Biome, its consumer `check-cmd`, `fix-cmd` and `code-fix-cmd` may instead name the local binary (`node_modules/.bin/biome`), or a `biome` binary on PATH when there is no local one, in place of `npx`. - **Pointer**: when deciding how `npx` resolves a package name given without a version, fetch live. -- **As of**: 2026-11-03 -- **Recheck trigger**: npm changes how `npx` resolves a name without a version, or the unscoped `biome` npm package changes owner. ## Gotchas diff --git a/plugins/toolchain/skills/ratchet/SKILL.md b/plugins/toolchain/skills/ratchet/SKILL.md index 93f7c4b56bb..db0d1d2367f 100644 --- a/plugins/toolchain/skills/ratchet/SKILL.md +++ b/plugins/toolchain/skills/ratchet/SKILL.md @@ -74,10 +74,8 @@ Native per-file baselines, read live from each linter's own docs: | ESLint | [Bulk Suppressions, Suppressions File](https://eslint.org/docs/latest/use/suppressions#suppressions-file) | | PHPStan | [The Baseline, Generating the baseline](https://phpstan.org/user-guide/baseline#generating-the-baseline) | -- **As of:** 2026-11-01. -- **Recheck trigger:** either page renames its baseline file or flags, changes which severity its - baseline covers, or stops recording violations per file. A linter not in the table: read its docs - for a checked-in per-file baseline before falling back to the ratchet. +A linter not in the table: read its docs for a checked-in per-file baseline before falling back to +the ratchet. A suppression count of `0` lands the same way only when the tool has a rule that forbids the suppression comment itself (for example an ESLint rule that reports every disable directive): turn @@ -107,9 +105,6 @@ directly: no ratchet. The vendor's own side-by-side setup, read live: [Oxlint, Running Oxlint and ESLint together](https://oxc.rs/docs/guide/usage/linter/migrate-from-eslint#running-oxlint-and-eslint-together). -- **As of:** 2026-11-11. -- **Recheck trigger:** the page renames or drops that section, or changes when it says to run both. - ## 3. The ceilings file Add to the file the repository's CI already checks. Find the calls with @@ -292,9 +287,6 @@ stored as a secret avoids the wait. - **Pointer:** for the setting's default and the approval rule, fetch [Actions settings: creating or approving pull requests](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#preventing-github-actions-from-creating-or-approving-pull-requests) and [when GITHUB_TOKEN triggers workflow runs](https://docs.github.com/en/actions/concepts/security/github_token#when-github_token-triggers-workflow-runs) live. -- **As of:** 2026-11-10. -- **Recheck trigger:** either page renames the "Allow GitHub Actions to create and approve pull - requests" setting or changes what a `GITHUB_TOKEN`-created pull request triggers. ## Output diff --git a/plugins/typos-format/README.md b/plugins/typos-format/README.md index 9bba1a58beb..30aaf37d2f3 100644 --- a/plugins/typos-format/README.md +++ b/plugins/typos-format/README.md @@ -11,7 +11,6 @@ The check honors your repository's own typos configuration: typos discovers it f path, and the plugin's bundled `config/default-typos.toml` (passed with `-c`, so that SHA-shaped hex is not read as a misspelling) merges with it through `extend-*` keys. Pointer: the Sources list in [typos' configuration reference](https://github.com/crate-ci/typos/blob/master/docs/reference.md#sources). -As of: 2026-10-01. Recheck trigger: typos changes its config file names or search order. ## Git pre-commit entry @@ -43,8 +42,7 @@ same host. ## Requirements - **typos** on `PATH`, installed at the machine level by the machine's owner - ([install typos](https://github.com/crate-ci/typos#install); as of 2026-11-03, recheck trigger: - typos moves or retitles its Install section). It is never downloaded on the fly. The + ([install typos](https://github.com/crate-ci/typos#install)). It is never downloaded on the fly. The SessionStart probe reports a missing `typos` once per session from `prerequisites.json`. - **Bash** runs the check (3.2 or newer, so macOS's own bash works). On native Windows, install [Git for Windows](https://code.claude.com/docs/en/setup#set-up-on-windows). diff --git a/plugins/typos-format/skills/setup/SKILL.md b/plugins/typos-format/skills/setup/SKILL.md index 205bc3c87aa..510dc8d3c85 100644 --- a/plugins/typos-format/skills/setup/SKILL.md +++ b/plugins/typos-format/skills/setup/SKILL.md @@ -91,8 +91,7 @@ without Claude Code. Node.js (step 5) is a FAIL either way too. version-manager shim or a shell function resolves there yet cannot run the launcher. FAIL when the command is absent or exits non-zero: the hook rows run `node hooks/exec-bash.mjs` and the installer is a node script. Node is a prerequisite separate from Claude Code. Pointer: - [Install with npm](https://code.claude.com/docs/en/setup#install-with-npm). As of: 2026-11-10. - Recheck trigger: that section says the installed `claude` binary runs Node itself. + [Install with npm](https://code.claude.com/docs/en/setup#install-with-npm). 6. **Git pre-commit entry.** Run `node "${CLAUDE_PLUGIN_ROOT}/lib/git-hooks/install.mjs" verify` from the repository. Each line is `\t[\t]`: `ok` is PASS, `declined` is INFO (this clone said no; silent at session start), and `missing`, `stale` or `modified` is a @@ -173,9 +172,6 @@ Never claim resolved without re-verifying. For everything else `apply` only poin when a saved value applies, fetch [plugin CLI reference § plugin configure](https://code.claude.com/docs/en/plugins/cli-reference#plugin-configure) live. - - **As of**: 2026-11-11 - - **Recheck trigger**: that section changes the command's flags, how it reports a saved or - refused value, or when a saved value applies. - no typos config: offer to create a minimal `_typos.toml` in the repository root only when explicitly asked. The plugin imposes no rules of its own. diff --git a/plugins/wizard/skills/unattended/SKILL.md b/plugins/wizard/skills/unattended/SKILL.md index b04f13b967d..d1ecf4c945a 100644 --- a/plugins/wizard/skills/unattended/SKILL.md +++ b/plugins/wizard/skills/unattended/SKILL.md @@ -249,8 +249,6 @@ real run, read `result-latest.json`. Do not ask them to paste the transcript. [`-AsPlainText`](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.secretmanagement/get-secret?view=ps-modules#-asplaintext), and Set-SecretStoreConfiguration [`-Interaction`](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.secretstore/set-secretstoreconfiguration?view=ps-modules#-interaction). - As of 2026-11-10. Recheck when the PowerShell Gallery lists a new release of - either module, or the overview page changes the modules' maintenance status. - The native store rungs can block an unattended run. The Keychain can raise an access dialog for an item the calling app is not trusted for or in a locked keychain, and `pass` runs `gpg`, which asks for a passphrase through pinentry @@ -262,8 +260,7 @@ real run, read `result-latest.json`. Do not ask them to paste the transcript. [`security` man page](https://keith.github.io/xcode-man-pages/security.1.html) (`find-generic-password`, `unlock-keychain`) and the passwordstore.org [pass man page](https://git.zx2c4.com/password-store/plain/man/pass.1) - (`show`, `gpg-agent`). As of 2026-11-10. Recheck when either man page changes - those flags or commands. + (`show`, `gpg-agent`). - A secret resolved at runtime stays in the human's process. Do not ask for the value in chat. - `Confirm-Irreversible` is the consent prompt. Do not skip it because the diff --git a/plugins/writing/skills/be-concise/reference/doctrine.md b/plugins/writing/skills/be-concise/reference/doctrine.md index b5e00ccd3a9..d872ca00d72 100644 --- a/plugins/writing/skills/be-concise/reference/doctrine.md +++ b/plugins/writing/skills/be-concise/reference/doctrine.md @@ -180,8 +180,7 @@ Linux kernel's patch-submission guidance says a body must describe the problem that motivated the work and its user-visible impact, which is the record a shorter body destroys. Claude Code's own Concise output style also keeps a floor of content in full -([record](sources.md#claude-code-concise-output-style); as of 2026-10-11; -recheck trigger: that heading is renamed or the record leaves it). +([record](sources.md#claude-code-concise-output-style)). When brevity and completeness genuinely conflict, put the bottom line first and keep the full record below it or one link away. Do not resolve the conflict by diff --git a/plugins/writing/skills/be-concise/reference/sources.md b/plugins/writing/skills/be-concise/reference/sources.md index 72e3d715b6a..0b31e0f8aca 100644 --- a/plugins/writing/skills/be-concise/reference/sources.md +++ b/plugins/writing/skills/be-concise/reference/sources.md @@ -9,13 +9,15 @@ Every rule in [`doctrine.md`](doctrine.md) is paraphrased from one of the sources below. Nothing upstream is vendored into this repository, and no -article is reproduced. Each entry carries the four parts this repository's -upstream-drift convention requires: the claim, the basis with its URL, the -as-of date, and the recheck trigger that obliges re-deriving the claim. +article is reproduced. Each entry carries the claim and the basis with its URL. +An entry that records a figure from its basis is a stored value under this +repository's upstream-drift convention, so it also carries the as-of date and +the recheck trigger that obliges re-deriving the claim. -The as-of date on every entry is the verified research run of 2026-09-05, which -fetched each basis directly. A date is not authority. Re-fetch the basis before -relying on a claim; the stamp is a ceiling on how current the claim can be. +The as-of date on each such entry is the verified research run of 2026-09-05, +which fetched each basis directly. A date is not authority. Re-fetch the basis +before relying on a claim; the stamp is a ceiling on how current the claim can +be. Two entries carry no rule of their own. The licensing entry records what may be quoted from Nielsen Norman Group and why nothing is vendored. The two @@ -79,11 +81,6 @@ screen sizes. Basis: https://www.nngroup.com/articles/inverted-pyramid/ -As of: 2026-09-05 - -Recheck when: the article withdraws the front-loading rule or bounds it to a -screen size or content type. - ### F-Shaped Pattern of Reading (Pernice, 2017, last reviewed 2026-08-19) Claim: Scanning persists on desktop and mobile; the F-pattern is the default @@ -95,11 +92,6 @@ is weighted to the start of lines. Basis: https://www.nngroup.com/articles/f-shaped-pattern-reading-web-content/ -As of: 2026-09-05 - -Recheck when: the article's review date moves and its conclusion changes, or a -replication settles the shape dispute either way. - ### How Little Do Users Read? (Nielsen, 2008) Claim: Users have time to read at most 28% of the words during an average @@ -139,11 +131,6 @@ it. Basis: https://www.nngroup.com/terms-and-conditions/ -As of: 2026-09-05 - -Recheck when: the terms page's "Last updated" line moves, or its fair-use or -reprinting clauses change. - ## Government and vendor writing standards ### GOV.UK content design @@ -195,12 +182,6 @@ guide publishes no numeric sentence limit. Basis: https://developers.google.com/style/highlights -As of: 2026-09-05 - -Recheck when: the guide's What's New page records a change to a rule the -doctrine states, since this is a continuously edited site with no edition to -pin. - ### Microsoft Writing Style Guide Claim: Bigger ideas, fewer words; get to the point fast and then stop; prune @@ -246,11 +227,6 @@ requirement instead of the document restating it. Basis: https://www.govinfo.gov/content/pkg/FR-2017-12-29/pdf/2017-28124.pdf -As of: 2026-09-05 - -Recheck when: the Administrative Conference supersedes or amends -Recommendation 2017-3. - ### DOE-STD-1029, Writer's Guide for Technical Procedures Claim: Procedures must be accurate, complete and usable together; actions are @@ -263,11 +239,6 @@ Basis: https://www.osti.gov/biblio/308015 (the Department of Energy record for the 1992 standard; the full text was read from a third-party mirror, one rung below a primary read) -As of: 2026-09-05 - -Recheck when: the Department of Energy supersedes or withdraws the standard, -or a primary copy of the full text becomes reachable and replaces the mirror. - ### Linux kernel patch-submission guidance Claim: A change description must describe the problem that motivated the work, @@ -276,10 +247,6 @@ what a body shortened past the floor destroys. Basis: https://www.kernel.org/doc/html/latest/process/submitting-patches.html -As of: 2026-09-05 - -Recheck when: the page drops or rewrites its "Describe your changes" guidance. - ### Claude Code concise output style Our use: a brevity mode in Claude Code itself keeps some content in full rather @@ -290,9 +257,6 @@ compare our floor against it live rather than from a copy here. - **Pointer**: when checking our floor against the Concise style, fetch [Output styles, Concise](https://code.claude.com/docs/en/output-styles#concise) live. -- **As of**: 2026-10-11 -- **Recheck trigger**: that section changes what the Concise style keeps in - full, or the style is renamed or removed. ## Evidence on the reader model diff --git a/plugins/x/skills/read/SKILL.md b/plugins/x/skills/read/SKILL.md index 698646afa04..cbda2ce7799 100644 --- a/plugins/x/skills/read/SKILL.md +++ b/plugins/x/skills/read/SKILL.md @@ -161,8 +161,7 @@ curl -q -sS --proto '=https' --max-time 30 --max-filesize 5000000 \ ``` **`-q` must stay first.** It is what keeps curl from reading a default `.curlrc`, and only in the -first position (pointer: curl's manual, [`-q, --disable`](https://curl.se/docs/manpage.html#-q); as -of 2026-11-10; recheck when that entry changes where the option must appear). Without it, an ambient `.curlrc` setting `location` silently re-enables redirect following and the bounds +first position (pointer: curl's manual, [`-q, --disable`](https://curl.se/docs/manpage.html#-q)). Without it, an ambient `.curlrc` setting `location` silently re-enables redirect following and the bounds below stop holding. `--proto '=https'` refuses non-HTTPS and no `-L` means the request cannot be steered to another host. `--max-filesize` is best-effort. `--max-time` is the bound that always holds; see [`context/failure-modes.md`](context/failure-modes.md). diff --git a/plugins/x/skills/read/context/failure-modes.md b/plugins/x/skills/read/context/failure-modes.md index af99654b503..cf647b605c6 100644 --- a/plugins/x/skills/read/context/failure-modes.md +++ b/plugins/x/skills/read/context/failure-modes.md @@ -16,8 +16,8 @@ moves that detail somewhere the prompt cannot show: - **Inline JSON is not portable.** How PowerShell passes embedded quotes to a native command depends on its version and `$PSNativeCommandArgumentPassing` (pointer: - [Passing arguments that contain quote characters](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_parsing#passing-arguments-that-contain-quote-characters); - as of 2026-11-10; recheck when that section changes which modes keep embedded quotes), so no + [Passing arguments that contain quote characters](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_parsing#passing-arguments-that-contain-quote-characters)), + so no one quoting of `{"url":"..."}` arrives intact under every mode. - **A curl config file fixes the quoting and breaks the prompt.** `curl.exe -q -K ` shows the operator a filename. The URL, the `data` reference, any `output` directive, and redirect behavior @@ -116,8 +116,7 @@ exact command, path included, before it runs. `--max-filesize` is best-effort: on some curl versions a chunked reply from a compromised or malfunctioning converter can exceed the stated cap (which versions: curl's manual, -[`--max-filesize`](https://curl.se/docs/manpage.html#--max-filesize); as of 2026-11-10; recheck when -that entry changes how a response of unknown length is handled). Treat the +[`--max-filesize`](https://curl.se/docs/manpage.html#--max-filesize)). Treat the byte cap as a courtesy limit and `--max-time` as the real ceiling on how much third-party text can arrive. diff --git a/plugins/x/skills/read/context/sources.md b/plugins/x/skills/read/context/sources.md index ff5f5f72a68..a5a9a79d378 100644 --- a/plugins/x/skills/read/context/sources.md +++ b/plugins/x/skills/read/context/sources.md @@ -24,7 +24,7 @@ Every service here gets the same treatment as the ladder: Check curl's exit status first, then the HTTP code, read the file in bounded slices, and delete it on every exit path. Use `WebFetch` only for a summary, never for the post's exact text (why: fetch [WebFetch tool behavior](https://code.claude.com/docs/en/tools-reference#webfetch-tool-behavior) - live; as of 2026-10-11; recheck when that section changes what the tool returns). + live). - **One budget per invocation.** Expand replies one level deep only (a reply's own replies, never theirs), at most 10 reply-id requests, and at most 256 KB read across all responses in the invocation together. When the budget stops you, say the result is partial and where it stopped. From ac4816b711aca071a232e5ca9300f9149809202b Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Wed, 11 Nov 2026 22:31:07 -0500 Subject: [PATCH 2/3] docs(ai-slop): keep the stamp on the dontAsk zero-turn probe record The line records a probe result, so under contract 6.0.0 it keeps its date and release-note trigger. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm --- plugins/ai-slop/skills/audit/SKILL.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/ai-slop/skills/audit/SKILL.md b/plugins/ai-slop/skills/audit/SKILL.md index 28c855c6de1..e94277de9c5 100644 --- a/plugins/ai-slop/skills/audit/SKILL.md +++ b/plugins/ai-slop/skills/audit/SKILL.md @@ -33,7 +33,8 @@ is one command, the detector alone, which an `allowed-tools` grant names. - **Pointer**: when changing this line or its grants, fetch live; the probe that found a zero-turn run under dontAsk is in - . + . **As of**: 2026-10-10. **Recheck trigger**: a Claude + Code release note that changes how pre-compute commands are permission-checked. ## Purpose From 767b1d4b2328816f7d396a7c9c0806103b6216cc Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Wed, 11 Nov 2026 22:41:04 -0500 Subject: [PATCH 3/3] docs: revert a stamp restore that contract 6.0.0 rules out Contract 6.0.0 on main (upstream-drift README "Required parts", the probed-behavior and no-docs-page cases) gives a record of observed behavior with no recorded number or string no stamp. The review that asked for this stamp read the pre-6.0.0 contract on the branch head. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VcupojQwC9uJAfmSt4EHZm --- plugins/ai-slop/skills/audit/SKILL.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/ai-slop/skills/audit/SKILL.md b/plugins/ai-slop/skills/audit/SKILL.md index e94277de9c5..28c855c6de1 100644 --- a/plugins/ai-slop/skills/audit/SKILL.md +++ b/plugins/ai-slop/skills/audit/SKILL.md @@ -33,8 +33,7 @@ is one command, the detector alone, which an `allowed-tools` grant names. - **Pointer**: when changing this line or its grants, fetch live; the probe that found a zero-turn run under dontAsk is in - . **As of**: 2026-10-10. **Recheck trigger**: a Claude - Code release note that changes how pre-compute commands are permission-checked. + . ## Purpose