docs: promote stranded conventions to path-scoped rules and nested AGENTS.md - #3388
Conversation
Applies accepted instruction-placement finding IP-001: the repo-wide affected-tests convention (zero suites is an error, not nothing-to-run) was reachable only by opening README.md; a four-line pointer on the always-loaded surface makes it visible in every session while README.md keeps the full rationale. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01THL7Bu9RBnbob7xMeiXTBU
Applies accepted instruction-placement finding IP-002: the category taxonomy in docs/CATALOG-TAXONOMY.md had zero inbound references from any surface Claude loads, so category edits happened without it. The rule injects the pointer on read of .claude-plugin/marketplace.json (validated: exactly 1 tracked file) and the generated on-demand index in AGENTS.md keeps it reachable from subagents. Load verified empirically with verify-load.sh (VERDICT PASS). Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01THL7Bu9RBnbob7xMeiXTBU
Applies accepted instruction-placement finding IP-003: the hook-budget Rules section (measured-share statement required when adding or widening an always-on hook; the budget never relaxes) was reachable only from human-facing prose. The rule injects the pointer on read of any file under plugins/*/hooks/** (validated: 146 tracked files) and the generated index in AGENTS.md keeps it reachable from subagents. Known priced edge: a brand-new plugin's first hooks.json is a create, not a read, and will not fire the rule. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01THL7Bu9RBnbob7xMeiXTBU
Applies accepted instruction-placement finding IP-004: the workstation ruff convention (verify through scripts/run-ruff.sh, never a bare ruff on PATH; pin bumps are deliberate Dependabot changes) was referenced only from a CHANGELOG entry and a test script. The rule injects the pointer on read of any tracked Python file (validated: 100 files) and the generated index in AGENTS.md keeps it reachable from subagents. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01THL7Bu9RBnbob7xMeiXTBU
…ut convention Applies accepted instruction-placement finding IP-005: the audit skill's README declares itself human-only, so its layout convention (OS-agnostic content in references/shared/, new OS = populate two folders, never refactor) was invisible to Claude. The nested AGENTS.md plus mandatory CLAUDE.md shim loads on any read under the subtree (verified empirically with verify-load.sh, VERDICT PASS) and points at the README rather than copying it. Root index regenerated to carry the nested pair. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01THL7Bu9RBnbob7xMeiXTBU
…ontract Applies accepted instruction-placement finding IP-006: check scripts' two invocation modes (single JSON object for Claude, -Human readable output via Write-Host) were stated only in the human-only README. Adds a pointer section to the subtree's AGENTS.md; index unchanged (the nested pair is already indexed). Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01THL7Bu9RBnbob7xMeiXTBU
…invariant Applies accepted instruction-placement finding IP-007: the architecture invariant (checks never read history.jsonl directly; the orchestrator hands them a slice over stdin and owns trend logic) was stated only in the human-only README. Adds a pointer section to the subtree's AGENTS.md; index unchanged. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01THL7Bu9RBnbob7xMeiXTBU
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1c6c37e1a3
ℹ️ 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".
|
Claude finished @kyle-sexton's task in 2m 59s —— View job Code review complete
Scope reviewed (per
Verification performed independently (not just re-stating the PR's own claims):
Not independently verified (author-claimed only, could not run in this sandbox): the Findings: none. This is a clean, self-consistent documentation change — no correctness issues, broken links, glob mistakes, or maintainability concerns found. Nothing to anchor as inline comments. |
|
Claude finished @kyle-sexton's task in 48s —— View job Security review
Skip gate triggered: no security-relevant surface. This PR only adds Markdown convention/pointer files ( No security issues found. |
…entions surface The changelog-parity gate requires a version bump plus a new release entry whenever a change set modifies shipped plugin files; the nested AGENTS.md and CLAUDE.md shim added under skills/audit/ are such files. Reproduced the --check-bump failure locally, applied the bump, and all four parity modes now pass locally along with manifest schema validation and markdownlint. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01THL7Bu9RBnbob7xMeiXTBU
|
Last security-reviewed head: |
|
Claude has reviewed this PR 2 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
|
Claude finished @kyle-sexton's task in 48s —— View job Security review
Skip gate triggered: no security-relevant surface. All 8 changed files at HEAD
No executable code, scripts, GitHub Actions workflow changes, auth/access-control logic, or data-handling paths are touched. Nothing here for a security review to hunt in. No security issues found. |
|
Claude finished @kyle-sexton's task in 2m 24s —— View job Code review
Skip gate: not triggered — this is a real (if low-risk) review surface: new path-scoped rule files and a nested What I checked
I was not able to execute FindingsNone. I reviewed the already-open thread between Codex and the author on This is a low-risk, well-verified documentation-placement change. No correctness or maintainability issues found. |
No linked issue
Summary
Applies the accepted findings of a full-repo
/instruction-placement:auditrun (1,195 files swept, eight adjudication lanes, independent fresh-context verification). The repo's always-loaded instruction layer was nearly empty while several genuinely normative contributor conventions lived only in docs Claude never loads; this PR makes each reachable at its actual trigger point, as pointers so the human-facing docs stay the single source of truth.Fix
One commit per accepted finding, in ranked order:
effa775a): rootAGENTS.mdgains a four-line pointer to README's "Validate a change" contract (zero suites is an error, never "nothing to run").173869be):.claude/rules/catalog-taxonomy.md, scoped to.claude-plugin/marketplace.json(1 tracked file), pointing atdocs/CATALOG-TAXONOMY.md.3e78bcc4):.claude/rules/hook-budget.md, scoped toplugins/*/hooks/**(146 files), pointing at the hook-budget convention's Rules section.b056a6ef):.claude/rules/ruff-pin.md, scoped to**/*.py(100 files), pointing at the pinned-ruff wrapper contract indocs/CI-RUNNER-ROUTING.md.730f24e7,fa1a3856,1c6c37e1): nestedAGENTS.mdplus mandatoryCLAUDE.mdshim atplugins/machine-health/skills/audit/, pointing at the human-only README's layout, dual-invocation, and stateless-checks conventions.The generated on-demand rules index in root
AGENTS.mdis regenerated with each move so every deferred surface stays reachable from subagents.Verification
paths:glob machine-validated (match counts above; no zero-match, no bad brackets, within budget).verify-load.sh(real CLI with anInstructionsLoadedhook): the catalog-taxonomy rule fires on read ofmarketplace.json, and the nested machine-health pair loads via shim traversal; both VERDICT PASS.render-index.sh checkreports IN-SYNC at every commit.scripts/affected-tests.sh --explain: all six changed files are recorded no-suite classes (prose), zero suites owed.markdownlint-cli2clean over all changed files.Related
Findings artifact (statuses per finding, held-back Gate 0 items, routed-out questions) lives under the instruction-placement plugin's data directory, keyed to this project; not committed by design. N/A for tracker links.
🤖 Generated with Claude Code
https://claude.ai/code/session_01THL7Bu9RBnbob7xMeiXTBU
Generated by Claude Code