Skip to content

fix: converge every gitignore recommendation on the recursive overlay line - #3582

Open
kyle-sexton wants to merge 2 commits into
mainfrom
chore/gitignore-line-convergence
Open

fix: converge every gitignore recommendation on the recursive overlay line#3582
kyle-sexton wants to merge 2 commits into
mainfrom
chore/gitignore-line-convergence

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

Closes #3569

Summary

Phase 1a of the customization-consistency program: every surface that recommends (or, for source-control, appends) a consumer .gitignore line for personal overlays now uses config-cascade's mandated recursive form .claude/**/*.local.*. First of four stacked Phase 1 PRs (merge order 1a → 1b → 1c → 1d).

Fix

Narrow spellings fixed: .claude/*.local.* (codebase-health, mutation-testing, source-control incl. its appended line and FAIL-message remediation), .claude/ecosystems/*.local.* (toolchain, ecosystem-commands convention), .claude/ai-briefing/**/*.local.*, .claude/autonomy/**/*.local.* — in setup SKILL.md bodies, two evals, plugin READMEs, and reference docs. config-cascade's conformance narrative is updated in the same change (the "Overlay spelling drift" section now records the convergence and the two deliberate exceptions: standards-dir *.local.md, work-items' repo-root line per ADR 0015). Deliberately unchanged: claude-config's negative example, autonomy's layer-path descriptor, changelog history.

Class inventory (every setup file with a gitignore-recommendation context, classified) is in the plan's PR-body draft and reproduced here in short: 8 files fixed in setup dirs, 6 non-setup recommendation surfaces fixed, 20 setup files verified as non-recommenders (memory-root self-ignore, standards-dir ignore, tracked-file checks, artifact dirs, overlay filename prose, work-items ADR 0015 exception), 4 already-recursive.

Verification

  • grep -rn -F for the four narrow forms over plugins/ docs/: only the documented survivors remain (claude-config:147 negative example, autonomy setup:22 layer glob, source-control CHANGELOG, config-cascade's own negative-example/history lines).
  • Every file recommending a consumer .claude overlay ignore line now carries .claude/**/*.local.*.
  • markdownlint-cli2 over the 14 touched markdown files: 0 issues; both touched evals.json parse.
  • skill-quality check-skill (base main): PASS on all six touched setups (ai-briefing, autonomy, codebase-health, mutation-testing, source-control, toolchain).

Related

Refs docs/topics/customization-consistency/PLAN.md Phase 1a (branch chore/customization-consistency). Follow-ups filed for INVENTORY §6 items 1 (gitignore posture split) and 12 (ai-briefing phantom overlay).

… line

Phase 1a of the customization-consistency program: every surface that
recommends (or, for source-control, appends) a consumer .gitignore line
for personal overlays now uses config-cascade's mandated recursive form
`.claude/**/*.local.*`. Narrow spellings fixed: `.claude/*.local.*`
(codebase-health, mutation-testing, source-control),
`.claude/ecosystems/*.local.*` (toolchain, ecosystem-commands),
`.claude/ai-briefing/**/*.local.*` and `.claude/autonomy/**/*.local.*`.

config-cascade's conformance narrative is updated in the same change:
the "Overlay spelling drift" section now records the convergence and the
two deliberate exceptions (standards-dir `*.local.md`, work-items'
repo-root line per ADR 0015). Documented negative examples, changelog
history, and layer-path descriptors deliberately keep the old spellings.

Gates: markdownlint clean on touched files, both evals.json parse,
skill-quality check-skill PASS on all six touched setup skills.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014uBXt1tMEReShbpG5gsFUd
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 1, 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-09-01T17:19:03.295439Z 20f3396 PR opened
ℹ️ About Codex in GitHub

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

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

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

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 20f3396fbb

ℹ️ 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 on lines +76 to 79
- **Local overlay ignore rule** (the recursive `.claude/**/*.local.*`, covering
`REPO_ROOT/.claude/source-control.local.md`): probe the ignore rule whether or
not the overlay file exists. The rule's job is to be in place **before** the
first overlay is written; conditioning the probe on the file already existing

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Probe a nested path before accepting the recursive rule

When a consumer still has the previously recommended .claude/*.local.* rule, the prescribed probe of the flat .claude/source-control.local.md path succeeds, so both check and team-layer apply treat the newly named recursive rule as present and never append .claude/**/*.local.*. A later folder-form overlay therefore remains unignored despite setup passing; probe a nested sentinel or verify that the matched pattern provides recursive coverage.

Useful? React with 👍 / 👎.

Comment on lines +230 to +231
Every setup surface now recommends (or, for `source-control` and `work-items`, appends) the
recursive line above. The narrow spellings the fleet used to ship — `.claude/*.local.*`,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Correct the claim that work-items appends the recursive rule

The work-items setup does not append the recursive .claude/**/*.local.* line: step 5 of plugins/work-items/skills/setup/SKILL.md only ensures the separate repo-root .work-item-tracker.local.json rule, precisely because that path is outside .claude/. This sentence therefore contradicts both the implementation and the exception described immediately below, and can mislead consumers into believing work-items setup installs fleet-wide .claude overlay protection.

Useful? React with 👍 / 👎.

The changelog-parity gate requires a manifest bump plus a new release
entry for every plugin a change set touches (published-version reuse).
Patch bumps for ai-briefing, autonomy, codebase-health, mutation-testing,
source-control, toolchain with a matching CHANGELOG entry each.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014uBXt1tMEReShbpG5gsFUd
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.

setup: converge every gitignore recommendation on the recursive .claude/**/*.local.* line (Phase 1a)

1 participant