Skip to content

fix(cli): refuse more coding-agent instruction files in registry installs - #7549

Merged
jrusso1020 merged 1 commit into
mainfrom
fix/registry-more-agent-files
Nov 11, 2026
Merged

jrusso1020 merged 1 commit into
mainfrom
fix/registry-more-agent-files

Conversation

@jrusso1020

Copy link
Copy Markdown
Collaborator

Registry installs now also refuse QWEN.md, CRUSH.md, WARP.md and CONVENTIONS.md at any depth. These are instruction files that coding agents load on their own, like the AGENTS.md, CLAUDE.md and GEMINI.md names that #7523 already refuses.

What

AGENT_INSTRUCTIONS in packages/cli/src/registry/installer.ts gains qwen, crush, warp and conventions. Names are compared after lowercasing, with either path separator.

Why

Follow-up to #7523. Its root allowlist (TEMPLATE.md only) stops these names at the project root, but a block could still write one inside compositions/ or assets/. The official catalog's nested .md files are SKILL.md and README.md, which this change leaves alone.

Related work

Refs #7523

Test plan

  • Unit tests added/updated: installer.test.ts refuses compositions/QWEN.md, assets/Crush.md, compositions\WARP.md and compositions/conventions.md before any write. All 63 installer tests pass. With the source change reverted, the 4 new cases fail and the rest pass. The official-catalog test still accepts every target.
  • Manual testing performed
  • Documentation updated (if applicable)
  • Comments follow CONTRIBUTING.md "Comments"

— Rames Jusso

🤖 Generated with Claude Code

…alls

Registry items may not write QWEN.md, CRUSH.md, WARP.md or CONVENTIONS.md at
any depth, in any case, alongside the AGENTS.md, CLAUDE.md and GEMINI.md
names already refused. The catalog's nested SKILL.md and README.md notes are
unaffected.

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

Copy link
Copy Markdown
Contributor

Edit accuracy: accurate 267 (base branch 267), smooth 92 of those

The gate passes.
Smoothness is reported in the artifact, not gated. A case fails only if it fails 2 of 3 runs.

Quarantined, measured but not gated (8)

@heygengenesis heygengenesis Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Verdict: APPROVE · 0 blocker · 0 important · 0 nits · d3a6459

All four names are now refused at any depth, after lowercasing and separator normalization. The four new test cases sit in compositions/ and assets/, so on the base regex each one reaches the agent rule and is accepted, which means they really pin this change. No catalog target or remote example writes these names. All Actions runs on this head are green.

Scope

Read installer.ts CONFIG_TARGET_RULES and targetSegments end to end. Rule 2 sweep: the other non-hidden instruction names that agents load on their own (AGENT.md, AGENTS.override.md, CLAUDE.local.md, CRUSH.local.md) already match through agents? and the optional (\.[a-z]+)? group. Cursor, Windsurf, Cline, Kiro and Junie keep their files in dotfiles or dot-directories, which the hidden-path rules already cover. Repo conventions.md exists only under skills/ and is not installed by the registry.

— Genesis

@jrusso1020
jrusso1020 added this pull request to the merge queue Nov 11, 2026
Merged via the queue into main with commit 9bab57a Nov 11, 2026
84 checks passed
@jrusso1020
jrusso1020 deleted the fix/registry-more-agent-files branch November 11, 2026 08:53
@miguel-heygen miguel-heygen mentioned this pull request Nov 11, 2026
3 of 4 tasks
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.

1 participant