Skip to content

chore(instruction-placement): address Claude Code v2.1.265..v2.1.296 changelog - #6780

Merged
kyle-sexton merged 10 commits into
mainfrom
cc296-instruction-placement
Oct 10, 2026
Merged

kyle-sexton merged 10 commits into
mainfrom
cc296-instruction-placement

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

Closes #6199

Summary

The instruction-placement plugin, and the root index preamble that render-index.sh generates into every consuming repo's always-loaded file, said path-scoped surfaces load only when Claude reads a matching file. That has been false for path-scoped rules and nested CLAUDE.md since Claude Code 2.1.288, which also loads them on write and edit. The plugin and the preamble no longer say load-on-read only; each surface type now points at its own memory docs section for the exact triggers. The root AGENTS.md changed only as generator output.

Fix

  • 2.1.288-061, 2.1.293-039 (row 33), plugins/instruction-placement/scripts/render-index.sh: the generated preamble says a surface loads once a file it covers triggers it and links the memory docs sections for rules, nested CLAUDE.md and AGENTS.md instead of listing triggers; hooks/index-drift.sh matches.
  • 2.1.288-061, README.md, skills/realign/SKILL.md, skills/check/evals/evals.json, context/routing-rubric.md, context/verified-mechanics.md, evals/adherence-experiment.sh, evals/adherence-experiment.test.sh, evals/adherence-results.md: the read-only trigger wording is replaced by a pointer to verified-mechanics.md; recorded adherence results are unchanged, and creation-governing content is still denied the path-scoped destination.
  • 2.1.290-132, skills/migrate/reference/verification.md: no longer says a nested AGENTS.md attaches only on a Read; records the changelog and memory docs disagreement as a source-conflict pointer.
  • AGENTS.md: regenerated preamble only.
  • Changelog fragment added under .changes/instruction-placement/.

Verification

  • render-index.sh check: IN-SYNC.
  • Fragment check passed.
  • markdownlint passed.
  • shellcheck passed.
  • Fresh-context verifier findings fixed through 2ee5711.
  • render-index.test.sh (5 failures) and adherence-experiment.test.sh (2 failures) fail on main on Windows (symlink and drive-letter cases) and are unchanged by this PR.

Related

Part of the Claude Code v2.1.265..v2.1.296 changelog apply (one PR per plugin; the upstream
ledger PR comes last). Related: #6193 (creation deny, out of scope) and #6103.

🤖 Generated with Claude Code

kyle-sexton and others added 5 commits October 10, 2026 15:48
…changelog

Row 33 (2.1.288-061, with 2.1.293-039) and the scope of #6199: path-scoped
rules and nested CLAUDE.md no longer load only on Read.

- render-index.sh: the rendered index preamble now says a surface loads
  when Claude works with a file it covers and links
  memory#path-specific-rules for which tool calls count, instead of
  listing them; pointer record (as-of 2026-10-10, recheck trigger) added
  beside the heredoc; header comments updated to match.
- AGENTS.md: regenerated with render-index.sh write (preamble, plus the
  pending tests/fixtures row from #6669).
- realign SKILL.md, README.md: read-only trigger wording replaced with a
  pointer to context/verified-mechanics.md; creation deny unchanged.
- adherence-experiment.sh and adherence-results.md: trigger wording only;
  recorded results untouched.

Refs: #6199
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
skills/migrate/reference/verification.md said a nested AGENTS.md
attaches on a Read "and nowhere else". It now says the file attaches
when Claude works with a file there, and adds a source-conflict record:
changelog v2.1.290 and memory#agents-md disagree on what attaches a
subdirectory AGENTS.md (as of 2026-10-10, with a recheck trigger).

Refs: #6199
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…agment

Refs: #6199
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…NTS.md

The rendered index preamble and the migrate verification guide said a
surface or nested AGENTS.md loads when Claude "works with" a covered
file, which implies Write/Edit triggers no source supports for
AGENTS.md. The preamble now says a surface loads once a covered file
triggers it and links memory#path-specific-rules (rules, nested
CLAUDE.md) and memory#when-claude-code-reads-agents-md (AGENTS.md);
the verification guide states no trigger set and points its
source-conflict record at the AGENTS.md subsection. AGENTS.md
regenerated with render-index.sh write; check is IN-SYNC.

Refs: #6199
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Reword the remaining "until a read happens to match" and "read again"
phrasings in routing-rubric.md, verified-mechanics.md, index-drift.sh,
the check skill's evals.json and an adherence-experiment.test.sh
comment, without listing triggers. The rendered index preamble and its
pointer record now link each surface type to its own memory section:
path-specific-rules (rules), how-claude-md-files-load (nested
CLAUDE.md), when-claude-code-reads-agents-md (AGENTS.md). AGENTS.md
regenerated; render-index.sh check is IN-SYNC.

Refs: #6199
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@kyle-sexton
kyle-sexton marked this pull request as ready for review October 10, 2026 23:07
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Codex Review Summary

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

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-10T23:11:07.154498Z 88e310e Draft marked ready
ℹ️ About Codex in GitHub

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

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

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

@claude

claude Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 3m 21s —— View job


Code review complete

  • Gather context (PR diff, CLAUDE.md/AGENTS.md, REVIEW.md)
  • Review changed files for correctness and maintainability
  • Run skip-gate checks (draft, trivial, duplicate review)
  • Post findings (inline + summary)

This is a docs/wording-accuracy PR for the instruction-placement plugin, correcting the plugin's and the generated root-index preamble's claim that path-scoped rules and nested CLAUDE.md/AGENTS.md load only on a Read, which has been false for rules and nested CLAUDE.md since Claude Code 2.1.288. I compared the changed wording across render-index.sh, AGENTS.md, README.md, routing-rubric.md, verified-mechanics.md, the realign skill, the evals scripts/results, and migrate/reference/verification.md for internal consistency, and manually diffed the generated preamble in render-index.sh against the regenerated AGENTS.md block (textually in sync; the one new table row — plugins/user-experience/tests/fixtures/pointer-home/AGENTS.md — predates this PR on main and is a correct side effect of regenerating after the merge). I could not execute render-index.sh check/shellcheck/markdownlint myself in this sandbox (no Bash approval), so the PR's own "IN-SYNC" / lint-pass claims are author-reported and unverified by me, not independently confirmed.

One finding posted inline on plugins/instruction-placement/skills/migrate/reference/verification.md (lines 29–38): the new "source conflict" note there — that the Claude Code changelog and the memory docs disagree on what attaches a nested AGENTS.md (changelog v2.1.290) — isn't reflected back in context/verified-mechanics.md, which is the file README.md, the render-index.sh preamble, and routing-rubric.md all point to as the single source of truth for exactly this kind of trigger fact. Its surface table still states the bare-nested-AGENTS.md trigger as settled, Read-only (context/verified-mechanics.md#L38-L39), with no mention of the 2.1.290 entry or the conflict. That leaves two of this plugin's own docs disagreeing about where the authoritative pointer record lives, which is exactly the duplication this PR's "point, don't restate" approach is meant to prevent.

Everything else I checked — the render-index.sh comment/heredoc updates, the README/rubric/realign/evals wording, the changelog fragment — reads as consistent and accurately scoped to the stated fix.

@claude

claude Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 1m 38s —— View job


Security review

  • Gather context (PR diff, changed files)
  • Check skip gate
  • Review changed files for security-relevant surface
  • Check instruction-surface deletions against protected classes
  • Adversarially validate any findings
  • Post final review

No security issues found.

This PR changes only documentation/comment text and generator output in the instruction-placement
plugin: it corrects the wording about when path-scoped rules, nested CLAUDE.md, and nested
AGENTS.md enter context (replacing an outdated "loads only on read" claim with pointers to the
Claude Code memory docs, since this changed as of Claude Code 2.1.288). No executable logic
changed — the diffs to scripts/render-index.sh, hooks/index-drift.sh, and the eval shell
scripts touch only comments and a heredoc preamble string, not control flow, parsing, or any
command construction. AGENTS.md is regenerated output of that same script. There is no new
input handling, no credential/token/secret path, no injection surface, and no change to
permissions or trust boundaries.

Instruction-surface deletion check: several of the changed files are standing-instruction
surfaces (AGENTS.md, plugins/instruction-placement/README.md,
plugins/instruction-placement/context/routing-rubric.md,
plugins/instruction-placement/context/verified-mechanics.md,
plugins/instruction-placement/skills/realign/SKILL.md,
plugins/instruction-placement/skills/migrate/reference/verification.md), so I checked each
edit against the instruction exception register
(Gate 0 classes: irreversible-action, secret-handling, data-integrity,
external-publication, legal-compliance, agent-authority). None of the edits delete, narrow,
or soften a rule in any of those classes — every change is a like-for-like correction of when a
deferred surface loads (e.g. AGENTS.md#L23-L36,
plugins/instruction-placement/scripts/render-index.sh#L239-L256),
not a removal of what the rule forbids or requires. No finding.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 88e310e165

ℹ️ About Codex in GitHub

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

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

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

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

Comment thread plugins/instruction-placement/skills/realign/SKILL.md Outdated
@github-actions

github-actions Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

claude-security-review has reviewed this pull request through 58f123f; a later push is reviewed from there.

Comment thread plugins/instruction-placement/skills/migrate/reference/verification.md Outdated
@github-actions

github-actions Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

claude-review has reviewed this pull request through bd294af; a later push is reviewed from there.

…tive path in realign

The changed-skills gate resolves backticked paths against the skill directory;
context/verified-mechanics.md lives two levels up.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@claude

claude Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 56s —— View job


Code review complete

  • Gather context (incremental diff, custom instructions, prior review scope)
  • Run /review:code-review for the incremental scope (only plugins/instruction-placement/skills/realign/SKILL.md changed since 88e310e)
  • Post findings (inline + summary)

Scope: per this lane's instructions, only the change since 88e310e was reviewed — the one-line edit in plugins/instruction-placement/skills/realign/SKILL.md (bd294af#diff). All other files were reviewed at 88e310e and are unchanged since.

What changed: commit bd294af fixes the Codex P2 finding from the prior round — the "forgetting the index regeneration" bullet pointed at context/verified-mechanics.md, which resolves incorrectly relative to the skill file; it's now ../../context/verified-mechanics.md.

Verification:

  • Confirmed the target file exists at plugins/instruction-placement/context/verified-mechanics.md, and that ../../context/verified-mechanics.md is the correct path from skills/realign/SKILL.md (two levels up: realign/ → skills/ → instruction-placement/, then into context/).
  • Confirmed this matches the already-correct link convention used earlier in the same file (line 50: [`../../context/verified-mechanics.md`](../../context/verified-mechanics.md)), so the reference is now internally consistent.
  • No other bare/incorrect context/verified-mechanics.md references remain in this file.

No findings. This is a correct, narrowly-scoped one-line path fix with no remaining review surface; nothing to flag.

@claude

claude Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 42s —— View job


Security review

  • Gather context (PR diff, incremental scope, CLAUDE.md/AGENTS.md)
  • Invoke /review:security-review and follow it for this PR
  • Post final findings

Scope: incremental. Per the lane header, this lane last reviewed 88e310e; only what changed since then was reviewed: plugins/instruction-placement/skills/realign/SKILL.md, per .claude-lane/incremental.diff. Every other file in this PR was already reviewed at 88e310e by this lane and is unchanged since.

The change: one line, fixing the relative path in the "Forgetting the index regeneration" gotcha bullet from context/verified-mechanics.md to ../../context/verified-mechanics.md — this is exactly the broken-link fix Codex flagged on 88e310e (the path, written relative to skills/realign/SKILL.md, previously resolved to a nonexistent skills/realign/context/verified-mechanics.md; it now correctly resolves to plugins/instruction-placement/context/verified-mechanics.md).

No security issues found.

  • No executable logic: markdown prose only, no scripts, no command construction, no input handling.
  • Instruction-surface check: SKILL.md is a standing-instruction surface, but this edit doesn't delete, narrow, or soften a rule — it corrects a pointer so it resolves to the intended file instead of a dead path, which strengthens the surface's reliability rather than weakening it. No protected-class rule (irreversible-action, secret-handling, data-integrity, external-publication, legal-compliance, agent-authority) is touched. (The instruction exception register wasn't fetched — no WebFetch in this lane — but docs/conventions/instruction-exception-register/README.md is present in the checkout and was consulted for the class list.)
  • No injection surface: the path is plain reference text consumed by a human/agent reader, not interpolated into a shell command or template.

melodic-automation-lanes Bot and others added 2 commits October 10, 2026 23:24
…sm with plain statement

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ict in verified-mechanics

verification.md now points at that record instead of carrying its own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@claude

claude Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 1m 10s —— View job


Code review complete

  • Gather context (incremental diff, custom instructions, prior review scope)
  • Run /review:code-review for the incremental scope (changes to README.md, context/verified-mechanics.md, skills/migrate/reference/verification.md since bd294af)
  • Post findings (inline + summary)

Scope: per this lane's instructions, only what changed since bd294af was reviewed, in plugins/instruction-placement/README.md, plugins/instruction-placement/context/verified-mechanics.md, and plugins/instruction-placement/skills/migrate/reference/verification.md (.claude-lane/incremental.diff). All other files in this PR were reviewed at 88e310e/bd294af and are unchanged since.

What changed:

  1. README.md and verified-mechanics.md both drop the "the glob is the product" aphorism for the plain "the saving comes from the glob; the file move is bookkeeping" — a cosmetic, consistent rewrite in both places (README.md#L66-L67, verified-mechanics.md#L70-L71).

  2. verified-mechanics.md gains the source-conflict record this PR was missing at 88e310e (flagged in the prior round's code review): the "Bare nested AGENTS.md, nothing on its path" row now notes the changelog/memory-page disagreement on 2.1.290 (verified-mechanics.md#L39), and the pointer/as-of/recheck-trigger block below it is updated to cover that conflict (verified-mechanics.md#L56-L65).

  3. skills/migrate/reference/verification.md drops the independent pointer record it previously carried for the same conflict, replacing it with a sentence pointing at verified-mechanics.md, "The surface table" (verification.md#L29-L33).

Verification:

  • Confirmed the link target: verification.md lives at skills/migrate/reference/, so ../../../context/verified-mechanics.md resolves to plugins/instruction-placement/context/verified-mechanics.md — correct.
  • Confirmed ## The surface table is the actual heading at verified-mechanics.md:25, matching the cited anchor text.
  • Grepped for source conflict / 2.1.290 across the plugin: the conflict now has exactly one record (verified-mechanics.md), with verification.md pointing to it rather than duplicating it — this is exactly the fix my prior round's finding asked for, and it satisfies the repo's skill-bodies-state-current-rules.md convention (pointer + as-of + recheck trigger, single canonical location).
  • No remaining dangling or duplicate pointer records for this fact.

No findings. This is a well-scoped follow-up that resolves the prior round's finding without introducing new inconsistencies.

@claude

claude Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 1m 14s —— View job


Security review complete

  • Gather context (incremental diff, custom instructions, prior review scope)
  • Invoke /review:security-review and follow it for this PR
  • Post final findings

Scope: incremental. Per the lane header, this lane last reviewed bd294af65f0c1a77e8b318c5f6949a4cfeeaabd8; only what changed since then was reviewed, read from .claude-lane/incremental.diff:

  • plugins/instruction-placement/README.md
  • plugins/instruction-placement/context/verified-mechanics.md
  • plugins/instruction-placement/skills/migrate/reference/verification.md

Every other file in this PR was already reviewed at 88e310e/bd294af by prior lane runs and is unchanged since.

The changes:

  • README.md: replaces the "the glob is the product" aphorism with a plain statement ("the saving comes from the glob"). Wording only.
  • context/verified-mechanics.md: the surface table's "Bare nested AGENTS.md, nothing on its path" row now records the changelog-vs-memory-docs source conflict (2.1.290), with a matching Pointer/As-of/Recheck-trigger update (lines 56–65).
  • skills/migrate/reference/verification.md: removes the standalone Pointer/As-of/Recheck-trigger block this lane flagged on 88e310e for duplicating a record that belongs in verified-mechanics.md, and replaces it with a pointer there instead.

This closes the finding from the earlier full review on 88e310e (and the inline Codex comment on 88e310e): the source-conflict record previously lived only in verification.md, disagreeing with verified-mechanics.md's then-unqualified table row. Now the record lives once, in verified-mechanics.md ("The surface table", confirmed the heading and anchor resolve), with its own Pointer/As-of/Recheck-trigger, and verification.md points there — matching this repo's skill-bodies-state-current-rules.md convention (pointer, as-of date, recheck trigger, no restatement). I confirmed the relative link ../../../context/verified-mechanics.md from skills/migrate/reference/ resolves to the correct file (3 levels up into context/).

No security issues found.

  • No executable logic changed: all three files are markdown prose/comments. No command construction, no input handling, no new injection surface.
  • Instruction-surface check: verification.md and verified-mechanics.md are reference surfaces this plugin's skills point to, so I checked the edit under the instruction-surface-deletion lens. The verification.md edit removes a Pointer/As-of/Recheck-trigger block, but the full record (pointer, as-of, recheck trigger) still exists — consolidated into verified-mechanics.md, not dropped — so nothing a reader relied on is now unenforced or unrecorded; this is deduplication per the repo's own convention, not a softened rule. verified-mechanics.md's table change only adds a caveat (the source conflict), narrowing nothing. No protected-class rule (irreversible-action, secret-handling, data-integrity, external-publication, legal-compliance, agent-authority) is touched. docs/conventions/instruction-exception-register/README.md was present in the checkout and consulted for the class list.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@kyle-sexton
kyle-sexton added this pull request to the merge queue Oct 10, 2026
Merged via the queue into main with commit 6368fba Oct 10, 2026
25 checks passed
@kyle-sexton
kyle-sexton deleted the cc296-instruction-placement branch October 10, 2026 23:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(instruction-placement): three surfaces still say path-scoped rules load only on read

1 participant