@vibe-agent-toolkit/agent-skills 0.1.41-rc.8 → 0.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/files-config.d.ts +219 -29
  2. package/dist/files-config.d.ts.map +1 -1
  3. package/dist/files-config.js +434 -131
  4. package/dist/files-config.js.map +1 -1
  5. package/dist/index.d.ts +4 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +8 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/post-build-checks.d.ts +10 -1
  10. package/dist/post-build-checks.d.ts.map +1 -1
  11. package/dist/post-build-checks.js +55 -6
  12. package/dist/post-build-checks.js.map +1 -1
  13. package/dist/skill-packager.d.ts.map +1 -1
  14. package/dist/skill-packager.js +128 -20
  15. package/dist/skill-packager.js.map +1 -1
  16. package/dist/validators/agent-instruction-presence.d.ts +41 -0
  17. package/dist/validators/agent-instruction-presence.d.ts.map +1 -0
  18. package/dist/validators/agent-instruction-presence.js +79 -0
  19. package/dist/validators/agent-instruction-presence.js.map +1 -0
  20. package/dist/validators/index.d.ts +1 -0
  21. package/dist/validators/index.d.ts.map +1 -1
  22. package/dist/validators/index.js +1 -0
  23. package/dist/validators/index.js.map +1 -1
  24. package/dist/validators/packaging-validator.d.ts +1 -1
  25. package/dist/validators/packaging-validator.d.ts.map +1 -1
  26. package/dist/validators/packaging-validator.js +18 -4
  27. package/dist/validators/packaging-validator.js.map +1 -1
  28. package/dist/validators/rule-engine/rule-context.d.ts +4 -2
  29. package/dist/validators/rule-engine/rule-context.d.ts.map +1 -1
  30. package/dist/validators/rule-engine/rule-context.js.map +1 -1
  31. package/dist/validators/rule-engine/rule-engine.d.ts.map +1 -1
  32. package/dist/validators/rule-engine/rule-engine.js +15 -3
  33. package/dist/validators/rule-engine/rule-engine.js.map +1 -1
  34. package/dist/validators/skill-validator.d.ts.map +1 -1
  35. package/dist/validators/skill-validator.js +14 -8
  36. package/dist/validators/skill-validator.js.map +1 -1
  37. package/dist/validators/source-only-codes.d.ts.map +1 -1
  38. package/dist/validators/source-only-codes.js +1 -0
  39. package/dist/validators/source-only-codes.js.map +1 -1
  40. package/dist/validators/validation-rules.d.ts +93 -3
  41. package/dist/validators/validation-rules.d.ts.map +1 -1
  42. package/dist/validators/validation-rules.js +139 -17
  43. package/dist/validators/validation-rules.js.map +1 -1
  44. package/dist/validators/walker-to-issues.d.ts.map +1 -1
  45. package/dist/validators/walker-to-issues.js +2 -0
  46. package/dist/validators/walker-to-issues.js.map +1 -1
  47. package/dist/walk-link-graph.d.ts +1 -1
  48. package/dist/walk-link-graph.d.ts.map +1 -1
  49. package/dist/walk-link-graph.js +55 -6
  50. package/dist/walk-link-graph.js.map +1 -1
  51. package/package.json +5 -5
@@ -10,7 +10,7 @@ import { detectUndeclaredCrossSkillAuth } from './cross-skill-dependency-detecti
10
10
  import { validateFrontmatterRules, validateFrontmatterSchema } from './frontmatter-validation.js';
11
11
  import { detectNonImperativeBody } from './imperative-body-detection.js';
12
12
  import { detectKebabCaseViolation } from './kebab-case-detection.js';
13
- import { NAVIGATION_FILE_PATTERNS } from './validation-rules.js';
13
+ import { isNeverPackagedBasename } from './validation-rules.js';
14
14
  /**
15
15
  * Validate an Agent Skill (SKILL.md file)
16
16
  *
@@ -115,12 +115,18 @@ export async function validateSkill(options) {
115
115
  // ============================================================================
116
116
  // Link Traversal (BFS)
117
117
  // ============================================================================
118
- /** Files to never flag as unreferenced */
119
- const UNREFERENCED_EXCLUDE_PATTERNS = new Set([
120
- 'SKILL.md',
121
- 'CLAUDE.md',
122
- ...NAVIGATION_FILE_PATTERNS,
123
- ]);
118
+ /**
119
+ * Files to never flag as unreferenced.
120
+ *
121
+ * The skill's own entry point, plus everything VAT never packages into a skill
122
+ * bundle (agent-instruction files and navigation files). Delegates to the shared
123
+ * CASE-INSENSITIVE matcher rather than a Set of literal spellings: a `Readme.md`
124
+ * is as unreferenceable as a `README.md`, and a Set can only ever know the
125
+ * spellings someone thought to enumerate.
126
+ */
127
+ function isExemptFromUnreferencedCheck(fileName) {
128
+ return fileName === 'SKILL.md' || isNeverPackagedBasename(fileName);
129
+ }
124
130
  /**
125
131
  * Validate a single local_file link: boundary check, existence check.
126
132
  *
@@ -273,7 +279,7 @@ function detectUnreferencedFiles(skillPath, skillDir, locationRoot, linkedFiles,
273
279
  const absPath = safePath.resolve(skillDir, relPath);
274
280
  const fileName = basename(relPath);
275
281
  // Skip excluded patterns
276
- if (UNREFERENCED_EXCLUDE_PATTERNS.has(fileName)) {
282
+ if (isExemptFromUnreferencedCheck(fileName)) {
277
283
  continue;
278
284
  }
279
285
  // Skip files that were visited during traversal
@@ -1 +1 @@
1
- {"version":3,"file":"skill-validator.js","sourceRoot":"","sources":["../../src/validators/skill-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-validator.js","sourceRoot":"","sources":["../../src/validators/skill-validator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"source-only-codes.d.ts","sourceRoot":"","sources":["../../src/validators/source-only-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAMhD,CAAC"}
1
+ {"version":3,"file":"source-only-codes.d.ts","sourceRoot":"","sources":["../../src/validators/source-only-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAOhD,CAAC"}
@@ -8,5 +8,6 @@ export const SOURCE_ONLY_CODES = new Set([
8
8
  'LINK_TARGETS_DIRECTORY',
9
9
  'REFERENCE_TOO_DEEP',
10
10
  'LINK_TO_NAVIGATION_FILE',
11
+ 'LINK_TO_AGENT_INSTRUCTION_FILE',
11
12
  ]);
12
13
  //# sourceMappingURL=source-only-codes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source-only-codes.js","sourceRoot":"","sources":["../../src/validators/source-only-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,sBAAsB;IACtB,yBAAyB;IACzB,wBAAwB;IACxB,oBAAoB;IACpB,yBAAyB;CAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"source-only-codes.js","sourceRoot":"","sources":["../../src/validators/source-only-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,sBAAsB;IACtB,yBAAyB;IACzB,wBAAwB;IACxB,oBAAoB;IACpB,yBAAyB;IACzB,gCAAgC;CACjC,CAAC,CAAC"}
@@ -26,7 +26,7 @@ export type RuleCategory = 'required' | 'best_practice';
26
26
  /**
27
27
  * Validation rule code
28
28
  */
29
- export type ValidationRuleCode = 'BROKEN_INTERNAL_LINK' | 'CIRCULAR_REFERENCE' | 'OUTSIDE_PROJECT_BOUNDARY' | 'WINDOWS_BACKSLASH_IN_PATH' | 'LINK_TARGETS_DIRECTORY' | 'SKILL_LENGTH_EXCEEDS_RECOMMENDED' | 'SKILL_TOTAL_SIZE_LARGE' | 'SKILL_TOO_MANY_FILES' | 'REFERENCE_TOO_DEEP' | 'LINKS_TO_NAVIGATION_FILES' | 'DESCRIPTION_TOO_VAGUE' | 'NO_PROGRESSIVE_DISCLOSURE' | 'PACKAGED_UNREFERENCED_FILE' | 'PACKAGED_TEST_INPUT' | 'PACKAGED_BROKEN_LINK';
29
+ export type ValidationRuleCode = 'BROKEN_INTERNAL_LINK' | 'CIRCULAR_REFERENCE' | 'OUTSIDE_PROJECT_BOUNDARY' | 'WINDOWS_BACKSLASH_IN_PATH' | 'LINK_TARGETS_DIRECTORY' | 'SKILL_LENGTH_EXCEEDS_RECOMMENDED' | 'SKILL_TOTAL_SIZE_LARGE' | 'SKILL_TOO_MANY_FILES' | 'REFERENCE_TOO_DEEP' | 'LINKS_TO_NAVIGATION_FILES' | 'DESCRIPTION_TOO_VAGUE' | 'NO_PROGRESSIVE_DISCLOSURE' | 'PACKAGED_UNREFERENCED_FILE';
30
30
  /**
31
31
  * Validation rule definition
32
32
  */
@@ -96,9 +96,99 @@ export declare const VALIDATION_THRESHOLDS: {
96
96
  readonly MAX_DESCRIPTION_CHARS_CLAUDE_CODE: 250;
97
97
  };
98
98
  /**
99
- * Navigation file patterns to detect
99
+ * Navigation file patterns to detect.
100
+ *
101
+ * ONE canonical spelling per name. Every consumer matches these
102
+ * **case-insensitively** — via {@link isNavigationBasename} /
103
+ * {@link isNeverPackagedBasename} for basename lookups, or via
104
+ * {@link toAnyDepthGlobs} for glob lanes.
105
+ *
106
+ * This list used to enumerate spellings (`README.md` *and* `readme.md`,
107
+ * `index.md` *and* `INDEX.md`, …) and that approach provably cannot win: it
108
+ * never contained `Readme.md`, the single most common real spelling, nor
109
+ * `ReadMe.md` or `README.MD`. Do not re-add a second spelling of any name —
110
+ * matching handles case, and a duplicate implies enumeration still matters.
111
+ */
112
+ export declare const NAVIGATION_FILE_PATTERNS: readonly ["README.md", "index.md", "toc.md", "overview.md"];
113
+ /**
114
+ * Repo-internal agent-instruction files. Deliberately a SEPARATE list from
115
+ * {@link NAVIGATION_FILE_PATTERNS}: a README is real content at the wrong
116
+ * granularity, whereas these files are guidance *about the repository they live
117
+ * in* and are meaningless — or actively misleading — once copied into a
118
+ * distributed bundle.
119
+ *
120
+ * Two distinct harms, both observed:
121
+ *
122
+ * 1. **Silent mis-resolution.** Two packages' `CLAUDE.md` files bundled under
123
+ * `resourceNaming: basename` collide on one destination; one wins, and every
124
+ * link to either source then resolves to the winner's content.
125
+ * 2. **Unintended instruction loading.** Claude Code loads `CLAUDE.md` files
126
+ * found in subdirectories *under the working directory* on demand, when it
127
+ * reads a file in that directory. A skill installed project-locally (e.g.
128
+ * `.claude/skills/<name>/`) is under the working directory, so a bundled
129
+ * `CLAUDE.md` is read as instructions the moment the agent opens a reference
130
+ * beside it. (Skills installed outside the cwd — `~/.claude/skills`, plugin
131
+ * directories — are not affected by this second harm. `AGENTS.md` and
132
+ * `GEMINI.md` are not loaded as memory by Claude Code — it reads `CLAUDE.md`,
133
+ * and picks up an `AGENTS.md` only where a `CLAUDE.md` imports it explicitly
134
+ * (`@AGENTS.md`) or `/init` incorporates it — so they are listed here for the
135
+ * portability and collision reasons, and treated identically to `CLAUDE.md`.)
136
+ *
137
+ * @vendor-claim reviewed=2026-08-02 verify=Re-read https://code.claude.com/docs/en/memory — "How CLAUDE.md files load" for harm 2, and the "AGENTS.md" section for the AGENTS.md/GEMINI.md sentence
138
+ */
139
+ export declare const AGENT_INSTRUCTION_FILE_PATTERNS: readonly ["CLAUDE.md", "CLAUDE.local.md", "AGENTS.md", "GEMINI.md"];
140
+ /**
141
+ * Basenames a GLOB `files:` entry never packages into a **skill bundle**.
142
+ *
143
+ * Two tiers, deliberately composed here rather than merged at the source:
144
+ *
145
+ * - {@link AGENT_INSTRUCTION_FILE_PATTERNS} — never packaged on ANY surface.
146
+ * - {@link NAVIGATION_FILE_PATTERNS} — never packaged into a *skill bundle*, and
147
+ * **only** there. A plugin-root `README.md` is the plugin's front page (measured
148
+ * 2026-08-02: 50 of 86 installed plugins ship one; 57 of 94 when first measured),
149
+ * so the plugin tree-copy must import the agent-instruction list alone. Merging
150
+ * the two lists would strip the front page off three in five real plugins. The
151
+ * population moves as plugins are installed and removed — the ratio is the load-
152
+ * bearing part, so re-measure before citing the count as current.
153
+ *
154
+ * Only globs consult this list. Naming `source: README.md` explicitly is an
155
+ * unambiguous instruction to ship that file; a glob is a net, not a declaration,
156
+ * and does not get to launder an exemption for a file it never named.
157
+ */
158
+ export declare const NEVER_PACKAGE_IN_SKILL_BUNDLE: readonly ["CLAUDE.md", "CLAUDE.local.md", "AGENTS.md", "GEMINI.md", "README.md", "index.md", "toc.md", "overview.md"];
159
+ /**
160
+ * Is this basename a navigation file (README/index/toc/overview, any case)?
161
+ *
162
+ * Skill-bundle scope only — see {@link NEVER_PACKAGE_IN_SKILL_BUNDLE}.
163
+ */
164
+ export declare const isNavigationBasename: (name: string) => boolean;
165
+ /**
166
+ * Is this basename a repo-internal agent-instruction file (CLAUDE.md/AGENTS.md/…, any case)?
167
+ *
168
+ * Case-insensitivity is not cosmetic here: on APFS and NTFS, `Claude.md` and
169
+ * `claude.md` satisfy Claude Code's project-local instruction lookup exactly as
170
+ * `CLAUDE.md` does, so a case-sensitive check leaves the harm fully reachable.
171
+ */
172
+ export declare const isAgentInstructionBasename: (name: string) => boolean;
173
+ /**
174
+ * Is this basename one a GLOB `files:` entry never packages into a skill bundle?
175
+ *
176
+ * The basename-lane counterpart of {@link toAnyDepthGlobs}; both read
177
+ * {@link NEVER_PACKAGE_IN_SKILL_BUNDLE}. Any lane doing a `Set.has(basename)`
178
+ * against that constant must call this instead — a raw Set is case-sensitive and
179
+ * is exactly the gap this exists to close.
180
+ */
181
+ export declare const isNeverPackagedBasename: (name: string) => boolean;
182
+ /**
183
+ * Expand basenames into globs matching them at the tree root AND at any depth,
184
+ * **regardless of case**.
185
+ *
186
+ * `**\/name` alone is not portable across matchers for a root-level hit, so both
187
+ * depths are emitted. Shared by the presence detector's include globs and the
188
+ * plugin tree-copy's exclude globs so the two can never drift apart — and folded
189
+ * to case-insensitive so neither can be evaded by spelling the file `Claude.md`.
100
190
  */
101
- export declare const NAVIGATION_FILE_PATTERNS: readonly ["README.md", "readme.md", "index.md", "INDEX.md", "toc.md", "TOC.md", "overview.md", "OVERVIEW.md"];
191
+ export declare function toAnyDepthGlobs(patterns: readonly string[]): string[];
102
192
  /**
103
193
  * Create a validation issue from a rule
104
194
  */
@@ -1 +1 @@
1
- {"version":3,"file":"validation-rules.d.ts","sourceRoot":"","sources":["../../src/validators/validation-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,eAAe,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAE1B,sBAAsB,GACtB,oBAAoB,GACpB,0BAA0B,GAC1B,2BAA2B,GAC3B,wBAAwB,GAExB,kCAAkC,GAClC,wBAAwB,GACxB,sBAAsB,GACtB,oBAAoB,GACpB,2BAA2B,GAC3B,uBAAuB,GACvB,2BAA2B,GAC3B,4BAA4B,GAC5B,qBAAqB,GACrB,sBAAsB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAoHvE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,qBAAqB;IAChC,6CAA6C;;IAG7C,uDAAuD;;IAGvD,uCAAuC;;IAGvC,uDAAuD;;IAGvD,8CAA8C;;IAG9C;;;OAGG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,wBAAwB,+GAS3B,CAAC;AAEX;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe,CAajB"}
1
+ {"version":3,"file":"validation-rules.d.ts","sourceRoot":"","sources":["../../src/validators/validation-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,eAAe,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAE1B,sBAAsB,GACtB,oBAAoB,GACpB,0BAA0B,GAC1B,2BAA2B,GAC3B,wBAAwB,GAExB,kCAAkC,GAClC,wBAAwB,GACxB,sBAAsB,GACtB,oBAAoB,GACpB,2BAA2B,GAC3B,uBAAuB,GACvB,2BAA2B,GAC3B,4BAA4B,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAwGvE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,qBAAqB;IAChC,6CAA6C;;IAG7C,uDAAuD;;IAGvD,uCAAuC;;IAGvC,uDAAuD;;IAGvD,8CAA8C;;IAG9C;;;OAGG;;CAEK,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,6DAK3B,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,+BAA+B,qEAKlC,CAAC;AAEX;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,6BAA6B,uHAGhC,CAAC;AAoBX;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OACV,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OACT,CAAC;AAEnD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OACR,CAAC;AAqBjD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAKrE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe,CAajB"}
@@ -121,18 +121,6 @@ export const VALIDATION_RULES = {
121
121
  // that restates the `files:` map is the symptom this text used to cause.
122
122
  fix: 'Add a markdown link from SKILL.md or a linked resource, or declare it under skills.config.<name>.files as a source/dest pair',
123
123
  },
124
- PACKAGED_TEST_INPUT: {
125
- code: 'PACKAGED_TEST_INPUT',
126
- category: 'best_practice',
127
- message: (ctx) => `Declared test input packaged into the shipped skill: ${ctx['relativePath'] ?? 'unknown'}`,
128
- fix: 'Remove the files: entry mapping the eval suite into the bundle — test input is read from source, never shipped',
129
- },
130
- PACKAGED_BROKEN_LINK: {
131
- code: 'PACKAGED_BROKEN_LINK',
132
- category: 'best_practice',
133
- message: (ctx) => `Broken link in packaged output: ${ctx['href'] ?? 'unknown'} (from ${ctx['mdPath'] ?? 'unknown'})`,
134
- fix: 'Indicates a link-rewriting bug — the source link was valid but the packaged link is broken',
135
- },
136
124
  };
137
125
  /**
138
126
  * Validation thresholds — mostly VAT's, not Anthropic's (see the audit below)
@@ -188,18 +176,152 @@ export const VALIDATION_THRESHOLDS = {
188
176
  MAX_DESCRIPTION_CHARS_CLAUDE_CODE: 250,
189
177
  };
190
178
  /**
191
- * Navigation file patterns to detect
179
+ * Navigation file patterns to detect.
180
+ *
181
+ * ONE canonical spelling per name. Every consumer matches these
182
+ * **case-insensitively** — via {@link isNavigationBasename} /
183
+ * {@link isNeverPackagedBasename} for basename lookups, or via
184
+ * {@link toAnyDepthGlobs} for glob lanes.
185
+ *
186
+ * This list used to enumerate spellings (`README.md` *and* `readme.md`,
187
+ * `index.md` *and* `INDEX.md`, …) and that approach provably cannot win: it
188
+ * never contained `Readme.md`, the single most common real spelling, nor
189
+ * `ReadMe.md` or `README.MD`. Do not re-add a second spelling of any name —
190
+ * matching handles case, and a duplicate implies enumeration still matters.
192
191
  */
193
192
  export const NAVIGATION_FILE_PATTERNS = [
194
193
  'README.md',
195
- 'readme.md',
196
194
  'index.md',
197
- 'INDEX.md',
198
195
  'toc.md',
199
- 'TOC.md',
200
196
  'overview.md',
201
- 'OVERVIEW.md',
202
197
  ];
198
+ /**
199
+ * Repo-internal agent-instruction files. Deliberately a SEPARATE list from
200
+ * {@link NAVIGATION_FILE_PATTERNS}: a README is real content at the wrong
201
+ * granularity, whereas these files are guidance *about the repository they live
202
+ * in* and are meaningless — or actively misleading — once copied into a
203
+ * distributed bundle.
204
+ *
205
+ * Two distinct harms, both observed:
206
+ *
207
+ * 1. **Silent mis-resolution.** Two packages' `CLAUDE.md` files bundled under
208
+ * `resourceNaming: basename` collide on one destination; one wins, and every
209
+ * link to either source then resolves to the winner's content.
210
+ * 2. **Unintended instruction loading.** Claude Code loads `CLAUDE.md` files
211
+ * found in subdirectories *under the working directory* on demand, when it
212
+ * reads a file in that directory. A skill installed project-locally (e.g.
213
+ * `.claude/skills/<name>/`) is under the working directory, so a bundled
214
+ * `CLAUDE.md` is read as instructions the moment the agent opens a reference
215
+ * beside it. (Skills installed outside the cwd — `~/.claude/skills`, plugin
216
+ * directories — are not affected by this second harm. `AGENTS.md` and
217
+ * `GEMINI.md` are not loaded as memory by Claude Code — it reads `CLAUDE.md`,
218
+ * and picks up an `AGENTS.md` only where a `CLAUDE.md` imports it explicitly
219
+ * (`@AGENTS.md`) or `/init` incorporates it — so they are listed here for the
220
+ * portability and collision reasons, and treated identically to `CLAUDE.md`.)
221
+ *
222
+ * @vendor-claim reviewed=2026-08-02 verify=Re-read https://code.claude.com/docs/en/memory — "How CLAUDE.md files load" for harm 2, and the "AGENTS.md" section for the AGENTS.md/GEMINI.md sentence
223
+ */
224
+ export const AGENT_INSTRUCTION_FILE_PATTERNS = [
225
+ 'CLAUDE.md',
226
+ 'CLAUDE.local.md',
227
+ 'AGENTS.md',
228
+ 'GEMINI.md',
229
+ ];
230
+ /**
231
+ * Basenames a GLOB `files:` entry never packages into a **skill bundle**.
232
+ *
233
+ * Two tiers, deliberately composed here rather than merged at the source:
234
+ *
235
+ * - {@link AGENT_INSTRUCTION_FILE_PATTERNS} — never packaged on ANY surface.
236
+ * - {@link NAVIGATION_FILE_PATTERNS} — never packaged into a *skill bundle*, and
237
+ * **only** there. A plugin-root `README.md` is the plugin's front page (measured
238
+ * 2026-08-02: 50 of 86 installed plugins ship one; 57 of 94 when first measured),
239
+ * so the plugin tree-copy must import the agent-instruction list alone. Merging
240
+ * the two lists would strip the front page off three in five real plugins. The
241
+ * population moves as plugins are installed and removed — the ratio is the load-
242
+ * bearing part, so re-measure before citing the count as current.
243
+ *
244
+ * Only globs consult this list. Naming `source: README.md` explicitly is an
245
+ * unambiguous instruction to ship that file; a glob is a net, not a declaration,
246
+ * and does not get to launder an exemption for a file it never named.
247
+ */
248
+ export const NEVER_PACKAGE_IN_SKILL_BUNDLE = [
249
+ ...AGENT_INSTRUCTION_FILE_PATTERNS,
250
+ ...NAVIGATION_FILE_PATTERNS,
251
+ ];
252
+ /**
253
+ * Build a case-insensitive basename predicate over a fixed pattern list.
254
+ *
255
+ * THE matcher every never-package lane shares. Two lanes ask this question — a
256
+ * glob lane (crawler include/exclude patterns) and a basename lane (`files:`
257
+ * expansion, broken-link remediation) — and they must not be able to drift: the
258
+ * glob lane's patterns come from {@link toAnyDepthGlobs} over the same arrays,
259
+ * and its verdict is asserted equal to this predicate's in the unit tests.
260
+ *
261
+ * `toLowerCase()` (not `toLocaleLowerCase()`) is deliberate: the ASCII-only
262
+ * basenames here must fold identically under every locale, and the Turkish
263
+ * dotless-i rule would otherwise break `INDEX.md` on a `tr-TR` host.
264
+ */
265
+ function basenameMatcher(patterns) {
266
+ const lowered = new Set(patterns.map((pattern) => pattern.toLowerCase()));
267
+ return (name) => lowered.has(name.toLowerCase());
268
+ }
269
+ /**
270
+ * Is this basename a navigation file (README/index/toc/overview, any case)?
271
+ *
272
+ * Skill-bundle scope only — see {@link NEVER_PACKAGE_IN_SKILL_BUNDLE}.
273
+ */
274
+ export const isNavigationBasename = basenameMatcher(NAVIGATION_FILE_PATTERNS);
275
+ /**
276
+ * Is this basename a repo-internal agent-instruction file (CLAUDE.md/AGENTS.md/…, any case)?
277
+ *
278
+ * Case-insensitivity is not cosmetic here: on APFS and NTFS, `Claude.md` and
279
+ * `claude.md` satisfy Claude Code's project-local instruction lookup exactly as
280
+ * `CLAUDE.md` does, so a case-sensitive check leaves the harm fully reachable.
281
+ */
282
+ export const isAgentInstructionBasename = basenameMatcher(AGENT_INSTRUCTION_FILE_PATTERNS);
283
+ /**
284
+ * Is this basename one a GLOB `files:` entry never packages into a skill bundle?
285
+ *
286
+ * The basename-lane counterpart of {@link toAnyDepthGlobs}; both read
287
+ * {@link NEVER_PACKAGE_IN_SKILL_BUNDLE}. Any lane doing a `Set.has(basename)`
288
+ * against that constant must call this instead — a raw Set is case-sensitive and
289
+ * is exactly the gap this exists to close.
290
+ */
291
+ export const isNeverPackagedBasename = basenameMatcher(NEVER_PACKAGE_IN_SKILL_BUNDLE);
292
+ /**
293
+ * Fold one literal basename into a case-insensitive glob.
294
+ *
295
+ * `CLAUDE.md` → `[cC][lL][aA][uU][dD][eE].[mM][dD]`. Bracket classes rather than a
296
+ * matcher-level `nocase` flag because these patterns travel INTO crawls whose
297
+ * other patterns (caller excludes, `skills/<dir>/**`) must stay case-sensitive —
298
+ * picomatch's `nocase` applies to every pattern compiled in the same call, so it
299
+ * would silently widen those too.
300
+ */
301
+ function toCaseInsensitiveGlob(name) {
302
+ return [...name]
303
+ .map((char) => {
304
+ const lower = char.toLowerCase();
305
+ const upper = char.toUpperCase();
306
+ return lower === upper ? char : `[${lower}${upper}]`;
307
+ })
308
+ .join('');
309
+ }
310
+ /**
311
+ * Expand basenames into globs matching them at the tree root AND at any depth,
312
+ * **regardless of case**.
313
+ *
314
+ * `**\/name` alone is not portable across matchers for a root-level hit, so both
315
+ * depths are emitted. Shared by the presence detector's include globs and the
316
+ * plugin tree-copy's exclude globs so the two can never drift apart — and folded
317
+ * to case-insensitive so neither can be evaded by spelling the file `Claude.md`.
318
+ */
319
+ export function toAnyDepthGlobs(patterns) {
320
+ return patterns.flatMap((name) => {
321
+ const glob = toCaseInsensitiveGlob(name);
322
+ return [glob, `**/${glob}`];
323
+ });
324
+ }
203
325
  /**
204
326
  * Create a validation issue from a rule
205
327
  */
@@ -1 +1 @@
1
- {"version":3,"file":"validation-rules.js","sourceRoot":"","sources":["../../src/validators/validation-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation-rules.js","sourceRoot":"","sources":["../../src/validators/validation-rules.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"walker-to-issues.d.ts","sourceRoot":"","sources":["../../src/validators/walker-to-issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAyD5D;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,SAAS,cAAc,EAAE,EACrC,YAAY,EAAE,MAAM,GACnB,eAAe,EAAE,CAmBnB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,YAAY,EAAE,MAAM,GACnB,eAAe,EAAE,CAKnB"}
1
+ {"version":3,"file":"walker-to-issues.d.ts","sourceRoot":"","sources":["../../src/validators/walker-to-issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AA2D5D;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,SAAS,cAAc,EAAE,EACrC,YAAY,EAAE,MAAM,GACnB,eAAe,EAAE,CAmBnB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,YAAY,EAAE,MAAM,GACnB,eAAe,EAAE,CAKnB"}
@@ -35,6 +35,8 @@ function exclusionToContext(reason, targetExists) {
35
35
  return makeRuleContext({ subject: 'edge', fileKind: 'directory' });
36
36
  case 'navigation-file':
37
37
  return makeRuleContext({ subject: 'edge', fileKind: 'nav' });
38
+ case 'agent-instruction-file':
39
+ return makeRuleContext({ subject: 'edge', fileKind: 'agent-instruction' });
38
40
  case 'missing-target':
39
41
  return makeRuleContext({ subject: 'edge', phase: 'source', existsAtSource: targetExists });
40
42
  case 'pattern-matched':
@@ -1 +1 @@
1
- {"version":3,"file":"walker-to-issues.js","sourceRoot":"","sources":["../../src/validators/walker-to-issues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"walker-to-issues.js","sourceRoot":"","sources":["../../src/validators/walker-to-issues.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAoB,MAAM,wBAAwB,CAAC;AAEvG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,kBAAkB,CACzB,MAAoD,EACpD,YAAqB;IAErB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,gBAAgB;YACnB,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,KAAK,iBAAiB;YACpB,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,KAAK,YAAY;YACf,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;QAC9F,KAAK,kBAAkB;YACrB,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,KAAK,kBAAkB;YACrB,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QACrE,KAAK,iBAAiB;YACpB,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,KAAK,wBAAwB;YAC3B,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC7E,KAAK,gBAAgB;YACnB,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;QAC7F,KAAK,iBAAiB;YACpB,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,CAAC,CAAC;YACR,wEAAwE;YACxE,wEAAwE;YACxE,yEAAyE;YACzE,0EAA0E;YAC1E,MAAM,WAAW,GAAU,MAAM,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAAqC,EACrC,YAAoB;IAEpB,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,aAAa;YAAE,SAAS;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QAC3E,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QAC5B,gEAAgE;QAChE,sEAAsE;QACtE,yEAAyE;QACzE,kCAAkC;QAClC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;YACjC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC;YACnD,GAAG,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;YACzD,IAAI,EAAE,CAAC,CAAC,QAAQ,IAAI,MAAM;YAC1B,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,IAAI,MAAM,EAAE;SACxC,CAAC,CAAC,CAAC;IACN,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,cAAiC,EACjC,YAAoB;IAEpB,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACpD,OAAO,gBAAgB,CAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -40,7 +40,7 @@ export interface LinkResolution {
40
40
  /** Whether the file will be bundled */
41
41
  bundled: boolean;
42
42
  /** Reason it was excluded (only set when bundled is false) */
43
- excludeReason?: 'depth-exceeded' | 'pattern-matched' | 'directory-target' | 'outside-project' | 'navigation-file' | 'skill-definition' | 'gitignored' | 'missing-target' | undefined;
43
+ excludeReason?: 'depth-exceeded' | 'pattern-matched' | 'directory-target' | 'outside-project' | 'navigation-file' | 'agent-instruction-file' | 'skill-definition' | 'gitignored' | 'missing-target' | undefined;
44
44
  /** The rule that matched (only set for pattern-matched exclusions) */
45
45
  matchedRule?: ExcludeRule | undefined;
46
46
  /** Link text from the source markdown */
@@ -1 +1 @@
1
- {"version":3,"file":"walk-link-graph.d.ts","sourceRoot":"","sources":["../src/walk-link-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAgB,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,KAAK,UAAU,EAA0C,MAAM,2BAA2B,CAAC;AAKpG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC;;;;;;;OAOG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,YAAY,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACrL,sEAAsE;IACtE,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACtC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAMD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAC1D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,oEAAoE;IACpE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iEAAiE;IACjE,kBAAkB,EAAE,cAAc,EAAE,CAAC;IACrC,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAmXD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,oBAAoB,GAC5B,eAAe,CAgDjB"}
1
+ {"version":3,"file":"walk-link-graph.d.ts","sourceRoot":"","sources":["../src/walk-link-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAgB,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,KAAK,UAAU,EAA0C,MAAM,2BAA2B,CAAC;AAKpG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC;;;;;;;OAOG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,kBAAkB,GAAG,YAAY,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAChN,sEAAsE;IACtE,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACtC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAMD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAC1D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,oEAAoE;IACpE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iEAAiE;IACjE,kBAAkB,EAAE,cAAc,EAAE,CAAC;IACrC,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAoaD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,oBAAoB,GAC5B,eAAe,CAgDjB"}
@@ -14,7 +14,7 @@ import { basename, dirname } from 'node:path';
14
14
  import { isLocalFileLink, resolveLocalHref } from '@vibe-agent-toolkit/resources';
15
15
  import { isGitIgnored, toForwardSlash, safePath } from '@vibe-agent-toolkit/utils';
16
16
  import picomatch from 'picomatch';
17
- import { NAVIGATION_FILE_PATTERNS } from './validators/validation-rules.js';
17
+ import { isAgentInstructionBasename, isNavigationBasename } from './validators/validation-rules.js';
18
18
  // ============================================================================
19
19
  // Internal Helpers
20
20
  // ============================================================================
@@ -50,10 +50,10 @@ function resolveHrefToPath(hrefWithoutAnchor, sourceFilePath, projectRoot) {
50
50
  function isOutsideProject(targetPath, projectRoot) {
51
51
  return safePath.relative(projectRoot, targetPath).startsWith('..');
52
52
  }
53
- /** Check if a filename is a navigation file */
54
- function isNavigationFile(filename) {
55
- return NAVIGATION_FILE_PATTERNS.includes(filename);
56
- }
53
+ // Navigation / agent-instruction classification is the shared, case-insensitive
54
+ // matcher from validation-rules (`isNavigationBasename` / `isAgentInstructionBasename`),
55
+ // used directly at the call sites below. On APFS/NTFS a `Claude.md` is loaded as
56
+ // instructions exactly as a `CLAUDE.md` is, so the walker must refuse both spellings.
57
57
  /** Create an exclusion record */
58
58
  function makeExclusion(targetPath, sourcePath, targetExists, reason, link, matchedRule) {
59
59
  return {
@@ -97,6 +97,49 @@ function checkDeferred(targetPath, targetExists, deferredArtifacts, deferredAsse
97
97
  }
98
98
  return false;
99
99
  }
100
+ /**
101
+ * Does the walker refuse to bundle this target because it is a repo-internal
102
+ * agent-instruction file (`CLAUDE.md`, `AGENTS.md`, `GEMINI.md`)?
103
+ *
104
+ * These cannot normally travel in a bundle: they describe the repository they
105
+ * live in, they collide on basename across packages, and a project-locally
106
+ * installed skill puts them where Claude Code will load them as instructions.
107
+ * Deliberately NOT gated on `excludeNavigationFiles` — that knob is about content
108
+ * granularity, a different question from "this file is not distributable".
109
+ *
110
+ * The escape hatch is an EXPLICIT `skills.config.<name>.files` entry naming the
111
+ * file, and it is honoured HERE rather than "bypassing the walker". It was
112
+ * documented as a bypass and was not one: the walker refused the LINK whatever the
113
+ * config said, so an author who declared the file got it shipped, got the link to
114
+ * it silently stripped from the packaged content, and STILL got a build-failing
115
+ * error whose own remedy was the thing they had already done. Honouring the
116
+ * declaration here is what makes that remedy real — the file is bundled,
117
+ * `applyFilesEntriesToPathMap` re-points it at the declared dest, and the
118
+ * rewritten link resolves to it.
119
+ *
120
+ * "Explicit" is EXACT membership in {@link DeferredArtifacts.sourcePaths},
121
+ * deliberately NOT the directory-prefix test {@link DeferredArtifacts.covers}
122
+ * performs. That set registers a GLOB entry by its STATIC BASE — a directory — so
123
+ * a glob's matches are only ever prefix CHILDREN of what is in the set, while an
124
+ * explicit `source: notes/CLAUDE.md` is in it verbatim. Exact equality is
125
+ * therefore precisely the explicit-vs-glob discriminator, and reusing the
126
+ * already-plumbed `deferredArtifacts` avoids standing up a second model of the
127
+ * same `files:` config for one lane to drift away from.
128
+ *
129
+ * That distinction is load-bearing: naming a file is an unambiguous instruction to
130
+ * ship it, whereas a glob is a net, not a declaration — it never named the file it
131
+ * caught and so does not get to launder the exemption an explicit declaration
132
+ * earns. `partitionNeverPackaged` in files-config.ts draws the same line on the
133
+ * copy side; both must agree or the two mechanisms disagree about one bundle.
134
+ */
135
+ function refusesAgentInstructionFile(targetPath, options) {
136
+ if (!isAgentInstructionBasename(basename(targetPath)))
137
+ return false;
138
+ const declaredSources = options.deferredArtifacts?.sourcePaths;
139
+ if (declaredSources === undefined)
140
+ return true;
141
+ return !declaredSources.has(toForwardSlash(safePath.relative(options.projectRoot, targetPath)));
142
+ }
100
143
  /**
101
144
  * Record a gitignored target as either a leak or an exempted `files:` build
102
145
  * artifact — the caller always excludes it from the walk either way; only
@@ -198,10 +241,16 @@ function checkExclusions(targetPath, sourcePath, link, options, excludeMatchers,
198
241
  return true;
199
242
  }
200
243
  // Check navigation file exclusion
201
- if (options.excludeNavigationFiles && isNavigationFile(basename(targetPath))) {
244
+ if (options.excludeNavigationFiles && isNavigationBasename(basename(targetPath))) {
202
245
  excludedReferences.push(makeExclusion(targetPath, sourcePath, targetExists, 'navigation-file', link));
203
246
  return true;
204
247
  }
248
+ // Repo-internal agent-instruction files — see {@link refusesAgentInstructionFile}
249
+ // for why they cannot travel, and for the explicit-`files:` escape hatch.
250
+ if (refusesAgentInstructionFile(targetPath, options)) {
251
+ excludedReferences.push(makeExclusion(targetPath, sourcePath, targetExists, 'agent-instruction-file', link));
252
+ return true;
253
+ }
205
254
  // Check for cross-skill SKILL.md links — a SKILL.md is a skill definition marker,
206
255
  // not a resource. Bundling another skill's SKILL.md creates duplicate skill definitions
207
256
  // in the output, which causes marketplace sync failures and confuses skill consumers.