@yawlabs/ctxlint 0.20.0 → 0.21.0

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.
@@ -4,7 +4,7 @@
4
4
  # Version-pinned so a checkout at `rev: vX.Y.Z` runs exactly that release
5
5
  # of ctxlint — matches the pinning done by `ctxlint init`. release.sh keeps
6
6
  # this in sync with package.json on each bump.
7
- entry: npx @yawlabs/ctxlint@0.20.0 --strict
7
+ entry: npx @yawlabs/ctxlint@0.21.0 --strict
8
8
  language: node
9
9
  always_run: true
10
10
  pass_filenames: false
package/README.md CHANGED
@@ -386,12 +386,17 @@ Create a `.ctxlintrc` or `.ctxlintrc.json` in your project root:
386
386
  "tierBreakdown": 1000,
387
387
  "tierAggregate": 4000
388
388
  },
389
- "contextFiles": ["CONVENTIONS.md", "docs/ai-rules.md"]
389
+ "contextFiles": ["CONVENTIONS.md", "docs/ai-rules.md"],
390
+ "exclude": ["fixtures/**", "examples/**"]
390
391
  }
391
392
  ```
392
393
 
393
394
  The `contextFiles` array adds custom file patterns to scan alongside the built-in list. Useful for project-specific context files like `CONVENTIONS.md`.
394
395
 
396
+ The `exclude` array is its counterpart: globs of context files to drop from the scan entirely. Use it for files that are not this project's agent context at all — test fixtures, example projects, vendored templates.
397
+
398
+ `exclude` removes **files**, where `ignore` / `ignoreRules` / `.ctxlintignore` suppress **findings**. That distinction matters for the cross-file checks: `contradictions` and `redundancy/duplicate-content` compare the discovered set and report against the literal `(project)` path, which no per-file glob can match. Excluding the files is the only way to silence a conflict between two files you never wanted linted. Reach for `.ctxlintignore` when a real context file has one noisy finding; reach for `exclude` when the file shouldn't be in the corpus.
399
+
395
400
  ### Config Reference
396
401
 
397
402
  | Field | Type | Default | Meaning |
@@ -407,6 +412,7 @@ The `contextFiles` array adds custom file patterns to scan alongside the built-i
407
412
  | `tokenThresholds.tierBreakdown` | `number` | `1000` | Always-loaded file threshold for `tier-tokens/section-breakdown`. |
408
413
  | `tokenThresholds.tierAggregate` | `number` | `4000` | Combined always-loaded threshold for `tier-tokens/aggregate`. |
409
414
  | `contextFiles` | `string[]` | `[]` | Extra glob patterns to scan alongside the built-in list. |
415
+ | `exclude` | `string[]` | `[]` | Globs of context files to drop from the scan entirely, matched against each file's project-relative path. Removes files rather than suppressing findings, so excluded files are also invisible to the cross-file checks. |
410
416
  | `mcp` | `boolean` | `false` | Enable MCP config checks by default (same as `--mcp`). |
411
417
  | `mcpOnly` | `boolean` | `false` | Run only MCP config checks, skip context-file checks (same as `--mcp-only`). |
412
418
  | `mcpGlobal` | `boolean` | `false` | Also scan user/global MCP configs (same as `--mcp-global`). |