@promptci/core 0.0.1 → 0.2.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.
- package/LICENSE +201 -201
- package/README.md +29 -30
- package/dist/action-pinning.d.ts +37 -0
- package/dist/action-pinning.d.ts.map +1 -0
- package/dist/action-pinning.js +277 -0
- package/dist/action-pinning.js.map +1 -0
- package/dist/agent-practices.d.ts +3 -1
- package/dist/agent-practices.d.ts.map +1 -1
- package/dist/agent-practices.js +198 -94
- package/dist/agent-practices.js.map +1 -1
- package/dist/ai-config.d.ts +178 -0
- package/dist/ai-config.d.ts.map +1 -0
- package/dist/ai-config.js +721 -0
- package/dist/ai-config.js.map +1 -0
- package/dist/alias-files.d.ts +33 -0
- package/dist/alias-files.d.ts.map +1 -0
- package/dist/alias-files.js +60 -0
- package/dist/alias-files.js.map +1 -0
- package/dist/baseline.d.ts +17 -1
- package/dist/baseline.d.ts.map +1 -1
- package/dist/baseline.js +5 -1
- package/dist/baseline.js.map +1 -1
- package/dist/buried-critical.d.ts +17 -0
- package/dist/buried-critical.d.ts.map +1 -0
- package/dist/buried-critical.js +107 -0
- package/dist/buried-critical.js.map +1 -0
- package/dist/canonical-owner.d.ts.map +1 -1
- package/dist/canonical-owner.js +60 -30
- package/dist/canonical-owner.js.map +1 -1
- package/dist/ci-alignment.d.ts.map +1 -1
- package/dist/ci-alignment.js +3 -2
- package/dist/ci-alignment.js.map +1 -1
- package/dist/command-validity.d.ts +16 -0
- package/dist/command-validity.d.ts.map +1 -1
- package/dist/command-validity.js +387 -134
- package/dist/command-validity.js.map +1 -1
- package/dist/conflicts.d.ts.map +1 -1
- package/dist/conflicts.js +4 -44
- package/dist/conflicts.js.map +1 -1
- package/dist/context-analysis.d.ts.map +1 -1
- package/dist/context-analysis.js +13 -2
- package/dist/context-analysis.js.map +1 -1
- package/dist/context-bloat.d.ts +20 -1
- package/dist/context-bloat.d.ts.map +1 -1
- package/dist/context-bloat.js +99 -15
- package/dist/context-bloat.js.map +1 -1
- package/dist/context-optimizer.d.ts.map +1 -1
- package/dist/context-optimizer.js +18 -54
- package/dist/context-optimizer.js.map +1 -1
- package/dist/copilot-instructions-detector.d.ts +24 -0
- package/dist/copilot-instructions-detector.d.ts.map +1 -0
- package/dist/copilot-instructions-detector.js +145 -0
- package/dist/copilot-instructions-detector.js.map +1 -0
- package/dist/cursor-rules-detector.d.ts +17 -0
- package/dist/cursor-rules-detector.d.ts.map +1 -0
- package/dist/cursor-rules-detector.js +110 -0
- package/dist/cursor-rules-detector.js.map +1 -0
- package/dist/custom-rules.d.ts +52 -0
- package/dist/custom-rules.d.ts.map +1 -0
- package/dist/custom-rules.js +303 -0
- package/dist/custom-rules.js.map +1 -0
- package/dist/dead-references.d.ts +8 -2
- package/dist/dead-references.d.ts.map +1 -1
- package/dist/dead-references.js +315 -68
- package/dist/dead-references.js.map +1 -1
- package/dist/dependency-staleness.d.ts +35 -0
- package/dist/dependency-staleness.d.ts.map +1 -0
- package/dist/dependency-staleness.js +1001 -0
- package/dist/dependency-staleness.js.map +1 -0
- package/dist/detectors.d.ts +1 -3
- package/dist/detectors.d.ts.map +1 -1
- package/dist/detectors.js +74 -56
- package/dist/detectors.js.map +1 -1
- package/dist/duplicates.d.ts.map +1 -1
- package/dist/duplicates.js +15 -9
- package/dist/duplicates.js.map +1 -1
- package/dist/evidence.d.ts +39 -0
- package/dist/evidence.d.ts.map +1 -0
- package/dist/evidence.js +78 -0
- package/dist/evidence.js.map +1 -0
- package/dist/finding-id.d.ts +21 -0
- package/dist/finding-id.d.ts.map +1 -0
- package/dist/finding-id.js +31 -0
- package/dist/finding-id.js.map +1 -0
- package/dist/fix-engine.d.ts +11 -0
- package/dist/fix-engine.d.ts.map +1 -1
- package/dist/fix-engine.js +88 -71
- package/dist/fix-engine.js.map +1 -1
- package/dist/frameworks/dotnet.js +2 -2
- package/dist/frameworks/dotnet.js.map +1 -1
- package/dist/frameworks/python.d.ts.map +1 -1
- package/dist/frameworks/python.js +5 -2
- package/dist/frameworks/python.js.map +1 -1
- package/dist/frameworks/rust.d.ts.map +1 -1
- package/dist/frameworks/rust.js +2 -1
- package/dist/frameworks/rust.js.map +1 -1
- package/dist/git-symlinks.d.ts +30 -0
- package/dist/git-symlinks.d.ts.map +1 -0
- package/dist/git-symlinks.js +161 -0
- package/dist/git-symlinks.js.map +1 -0
- package/dist/gitignore.d.ts +22 -0
- package/dist/gitignore.d.ts.map +1 -0
- package/dist/gitignore.js +157 -0
- package/dist/gitignore.js.map +1 -0
- package/dist/health-score.d.ts.map +1 -1
- package/dist/health-score.js +35 -5
- package/dist/health-score.js.map +1 -1
- package/dist/hooks-settings-detector.d.ts +17 -0
- package/dist/hooks-settings-detector.d.ts.map +1 -0
- package/dist/hooks-settings-detector.js +228 -0
- package/dist/hooks-settings-detector.js.map +1 -0
- package/dist/index.d.ts +29 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -6
- package/dist/index.js.map +1 -1
- package/dist/makefile.d.ts +37 -0
- package/dist/makefile.d.ts.map +1 -0
- package/dist/makefile.js +156 -0
- package/dist/makefile.js.map +1 -0
- package/dist/manifest-consistency.d.ts +6 -0
- package/dist/manifest-consistency.d.ts.map +1 -1
- package/dist/manifest-consistency.js +75 -10
- package/dist/manifest-consistency.js.map +1 -1
- package/dist/markdown-fences.d.ts +112 -0
- package/dist/markdown-fences.d.ts.map +1 -0
- package/dist/markdown-fences.js +174 -0
- package/dist/markdown-fences.js.map +1 -0
- package/dist/mcp-config-detector.d.ts +20 -0
- package/dist/mcp-config-detector.d.ts.map +1 -0
- package/dist/mcp-config-detector.js +237 -0
- package/dist/mcp-config-detector.js.map +1 -0
- package/dist/missing-context.d.ts.map +1 -1
- package/dist/missing-context.js +2 -52
- package/dist/missing-context.js.map +1 -1
- package/dist/model-budgets.d.ts +69 -0
- package/dist/model-budgets.d.ts.map +1 -0
- package/dist/model-budgets.js +110 -0
- package/dist/model-budgets.js.map +1 -0
- package/dist/negative-instructions.d.ts +26 -0
- package/dist/negative-instructions.d.ts.map +1 -0
- package/dist/negative-instructions.js +169 -0
- package/dist/negative-instructions.js.map +1 -0
- package/dist/path-containment.d.ts +41 -0
- package/dist/path-containment.d.ts.map +1 -0
- package/dist/path-containment.js +123 -0
- package/dist/path-containment.js.map +1 -0
- package/dist/project-type.d.ts +12 -2
- package/dist/project-type.d.ts.map +1 -1
- package/dist/project-type.js +25 -12
- package/dist/project-type.js.map +1 -1
- package/dist/prompt-cache.d.ts.map +1 -1
- package/dist/prompt-cache.js +33 -24
- package/dist/prompt-cache.js.map +1 -1
- package/dist/promptci-gitignore.d.ts +34 -0
- package/dist/promptci-gitignore.d.ts.map +1 -0
- package/dist/promptci-gitignore.js +42 -0
- package/dist/promptci-gitignore.js.map +1 -0
- package/dist/repo-context.d.ts +80 -0
- package/dist/repo-context.d.ts.map +1 -1
- package/dist/repo-context.js +170 -16
- package/dist/repo-context.js.map +1 -1
- package/dist/report.d.ts +8 -0
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +163 -63
- package/dist/report.js.map +1 -1
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +47 -4
- package/dist/scan.js.map +1 -1
- package/dist/scanner.d.ts +61 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +367 -70
- package/dist/scanner.js.map +1 -1
- package/dist/security-pack.d.ts +20 -0
- package/dist/security-pack.d.ts.map +1 -1
- package/dist/security-pack.js +33 -14
- package/dist/security-pack.js.map +1 -1
- package/dist/skill-supply-chain.d.ts +132 -0
- package/dist/skill-supply-chain.d.ts.map +1 -0
- package/dist/skill-supply-chain.js +2954 -0
- package/dist/skill-supply-chain.js.map +1 -0
- package/dist/skills-detector.d.ts +23 -0
- package/dist/skills-detector.d.ts.map +1 -0
- package/dist/skills-detector.js +279 -0
- package/dist/skills-detector.js.map +1 -0
- package/dist/stale-instructions.d.ts +4 -1
- package/dist/stale-instructions.d.ts.map +1 -1
- package/dist/stale-instructions.js +53 -55
- package/dist/stale-instructions.js.map +1 -1
- package/dist/subagents-detector.d.ts +19 -0
- package/dist/subagents-detector.d.ts.map +1 -0
- package/dist/subagents-detector.js +155 -0
- package/dist/subagents-detector.js.map +1 -0
- package/dist/suppression.d.ts +2 -0
- package/dist/suppression.d.ts.map +1 -1
- package/dist/suppression.js +16 -47
- package/dist/suppression.js.map +1 -1
- package/dist/types.d.ts +62 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +47 -1
- package/dist/types.js.map +1 -1
- package/dist/vague-guidance.d.ts +15 -2
- package/dist/vague-guidance.d.ts.map +1 -1
- package/dist/vague-guidance.js +44 -41
- package/dist/vague-guidance.js.map +1 -1
- package/dist/windsurf-detector.d.ts +22 -0
- package/dist/windsurf-detector.d.ts.map +1 -0
- package/dist/windsurf-detector.js +96 -0
- package/dist/windsurf-detector.js.map +1 -0
- package/dist/within-section-dedup.d.ts +16 -0
- package/dist/within-section-dedup.d.ts.map +1 -0
- package/dist/within-section-dedup.js +148 -0
- package/dist/within-section-dedup.js.map +1 -0
- package/dist/workspace-manifests.d.ts +80 -0
- package/dist/workspace-manifests.d.ts.map +1 -0
- package/dist/workspace-manifests.js +333 -0
- package/dist/workspace-manifests.js.map +1 -0
- package/package.json +11 -8
- package/dist/cheap-model-routing.d.ts +0 -4
- package/dist/cheap-model-routing.d.ts.map +0 -1
- package/dist/cheap-model-routing.js +0 -43
- package/dist/cheap-model-routing.js.map +0 -1
- package/dist/cli-output-filter.d.ts +0 -16
- package/dist/cli-output-filter.d.ts.map +0 -1
- package/dist/cli-output-filter.js +0 -88
- package/dist/cli-output-filter.js.map +0 -1
- package/dist/context-cost.d.ts +0 -4
- package/dist/context-cost.d.ts.map +0 -1
- package/dist/context-cost.js +0 -70
- package/dist/context-cost.js.map +0 -1
- package/dist/context-recommender.d.ts +0 -3
- package/dist/context-recommender.d.ts.map +0 -1
- package/dist/context-recommender.js +0 -329
- package/dist/context-recommender.js.map +0 -1
- package/dist/llm.d.ts +0 -6
- package/dist/llm.d.ts.map +0 -1
- package/dist/llm.js +0 -67
- package/dist/llm.js.map +0 -1
- package/dist/mcp-detector.d.ts +0 -4
- package/dist/mcp-detector.d.ts.map +0 -1
- package/dist/mcp-detector.js +0 -131
- package/dist/mcp-detector.js.map +0 -1
- package/dist/native-tool-preference.d.ts +0 -20
- package/dist/native-tool-preference.d.ts.map +0 -1
- package/dist/native-tool-preference.js +0 -94
- package/dist/native-tool-preference.js.map +0 -1
- package/dist/output-verbosity.d.ts +0 -3
- package/dist/output-verbosity.d.ts.map +0 -1
- package/dist/output-verbosity.js +0 -83
- package/dist/output-verbosity.js.map +0 -1
- package/dist/product-boundary.d.ts +0 -11
- package/dist/product-boundary.d.ts.map +0 -1
- package/dist/product-boundary.js +0 -301
- package/dist/product-boundary.js.map +0 -1
package/dist/agent-practices.js
CHANGED
|
@@ -10,8 +10,10 @@
|
|
|
10
10
|
* Checks:
|
|
11
11
|
* - Verification loop — "run lint/tests before saying done"
|
|
12
12
|
* - Honesty policy — "report failures, don't fake success"
|
|
13
|
+
* - Ask-when-unsure — "say so and ask when uncertain, don't guess"
|
|
13
14
|
* - Read-before-edit — "read a file before editing it"
|
|
14
15
|
* - Scope control — "prefer focused diffs, don't rewrite unrelated code"
|
|
16
|
+
* - Code preservation — "preserve existing code, only change what's needed"
|
|
15
17
|
* - Plan-first guidance — "outline the approach before coding"
|
|
16
18
|
* - No contradictory "do not edit" header in human-maintained files
|
|
17
19
|
*
|
|
@@ -19,6 +21,9 @@
|
|
|
19
21
|
*/
|
|
20
22
|
import * as crypto from 'node:crypto';
|
|
21
23
|
import * as path from 'node:path';
|
|
24
|
+
import { stripCodeBlocks } from './markdown-fences.js';
|
|
25
|
+
import { fileIdPath } from './finding-id.js';
|
|
26
|
+
import { aliasesWithNewType, groupAliasesByTarget } from './alias-files.js';
|
|
22
27
|
const CHECKS = [
|
|
23
28
|
{
|
|
24
29
|
id: 'no-verification-loop',
|
|
@@ -62,10 +67,40 @@ const CHECKS = [
|
|
|
62
67
|
/never\s+hide\s+(error|fail)/i,
|
|
63
68
|
],
|
|
64
69
|
recommendation: 'Add a rule such as: "If tests fail, report the failure. Never claim success when commands error or tests are skipped."',
|
|
65
|
-
|
|
66
|
-
|
|
70
|
+
// An AI that doesn't report uncertainty or failures is a production risk,
|
|
71
|
+
// not a style suggestion — elevated from info 0.70 (roadmap FEAT-003).
|
|
72
|
+
severity: 'warning',
|
|
73
|
+
confidence: 0.75,
|
|
67
74
|
fixRecipe: 'If tests or commands fail, report the failure honestly. Never claim success when checks are skipped or error.',
|
|
68
75
|
},
|
|
76
|
+
{
|
|
77
|
+
// FEAT-005: uncertainty handling. Arguably the single most impactful missing
|
|
78
|
+
// instruction — an agent that guesses instead of asking produces confidently
|
|
79
|
+
// wrong work. Distinct from the honesty policy above: honesty is about
|
|
80
|
+
// reporting failures *after* a command runs; this is about surfacing doubt
|
|
81
|
+
// *before* acting, so a file can satisfy one and miss the other.
|
|
82
|
+
id: 'no-ask-when-unsure',
|
|
83
|
+
title: 'No "ask when unsure" instruction',
|
|
84
|
+
summary: 'No instruction found telling the agent to surface uncertainty — to ask or say so when it is unsure — ' +
|
|
85
|
+
'instead of guessing. Without this, agents may proceed on assumptions and produce confidently wrong work.',
|
|
86
|
+
patterns: [
|
|
87
|
+
/\bif\s+(?:you(?:'|’)?re\s+|you\s+are\s+|ever\s+)?unsure\b/i,
|
|
88
|
+
/\bif\s+in\s+(?:any\s+)?doubt\b/i,
|
|
89
|
+
/\bwhen\s+(?:you(?:'|’)?re\s+|you\s+are\s+)?(?:unsure|uncertain)\b/i,
|
|
90
|
+
/\bif\s+(?:you(?:'|’)?re\s+|you\s+are\s+|it(?:'|’)?s\s+)?uncertain\b/i,
|
|
91
|
+
/\bif\s+you\s+(?:don(?:'|’)?t|do\s+not|dont)\s+know\b/i,
|
|
92
|
+
/\bask\s+(?:before|first|for\s+clarification|the\s+user|a\s+question|questions)\b/i,
|
|
93
|
+
/\bclarify\s+(?:before|first|with)\b/i,
|
|
94
|
+
/\b(?:don(?:'|’)?t|do\s+not|dont)\s+guess\b/i,
|
|
95
|
+
/\bsay\s+(?:you|that\s+you)\s+(?:don(?:'|’)?t|do\s+not|dont)\s+know\b/i,
|
|
96
|
+
/\breport\s+uncertainty\b/i,
|
|
97
|
+
/\backnowledge\s+(?:when|uncertainty|any\s+uncertainty)\b/i,
|
|
98
|
+
],
|
|
99
|
+
recommendation: 'Add a rule such as: "If you are uncertain about the correct approach, say so and ask before proceeding rather than guessing."',
|
|
100
|
+
severity: 'warning',
|
|
101
|
+
confidence: 0.75,
|
|
102
|
+
fixRecipe: 'If you are uncertain about the correct approach, say so before proceeding rather than guessing.',
|
|
103
|
+
},
|
|
69
104
|
{
|
|
70
105
|
id: 'no-read-before-edit',
|
|
71
106
|
title: 'No "read before edit" instruction',
|
|
@@ -84,8 +119,10 @@ const CHECKS = [
|
|
|
84
119
|
/before\s+(?:you\s+)?(?:edit|modif|chang)\w*\b[^.\n]{0,40}\bread(?:ing)?\b/i,
|
|
85
120
|
],
|
|
86
121
|
recommendation: 'Add a rule such as: "Always read a file fully before editing it."',
|
|
87
|
-
|
|
88
|
-
|
|
122
|
+
// Editing files without reading them is the #1 source of AI coding
|
|
123
|
+
// mistakes — elevated from info 0.70 (roadmap FEAT-003).
|
|
124
|
+
severity: 'warning',
|
|
125
|
+
confidence: 0.75,
|
|
89
126
|
fixRecipe: 'Read a file before editing it. Preserve unrelated user changes.',
|
|
90
127
|
},
|
|
91
128
|
{
|
|
@@ -104,10 +141,40 @@ const CHECKS = [
|
|
|
104
141
|
/prefer\s+(small|focused|minimal)\s+(diff|change|pr)/i,
|
|
105
142
|
],
|
|
106
143
|
recommendation: 'Add a rule such as: "Prefer focused, minimal diffs. Do not rewrite or refactor code unrelated to the current task."',
|
|
107
|
-
|
|
108
|
-
|
|
144
|
+
// Unconstrained scope produces sweeping unrelated diffs that are hard to
|
|
145
|
+
// review — elevated from info 0.65 (roadmap FEAT-003).
|
|
146
|
+
severity: 'warning',
|
|
147
|
+
confidence: 0.7,
|
|
109
148
|
fixRecipe: 'Prefer focused, minimal diffs. Do not rewrite or refactor code unrelated to the current task.',
|
|
110
149
|
},
|
|
150
|
+
{
|
|
151
|
+
// FEAT-006: code preservation. Deliberately kept DISTINCT from
|
|
152
|
+
// `no-scope-control` above, which constrains the *breadth* of new changes
|
|
153
|
+
// ("prefer small, focused diffs"). This check constrains *destruction* of
|
|
154
|
+
// what already exists — deleting working code, dropping tests, or clobbering
|
|
155
|
+
// the user's uncommitted edits. An agent can honor one and violate the other
|
|
156
|
+
// (a tightly-scoped diff can still delete a working function), so the two
|
|
157
|
+
// behaviors are covered by two checks. The patterns are intentionally
|
|
158
|
+
// non-overlapping: scope-control keys on "focused/minimal/unrelated", this
|
|
159
|
+
// keys on "preserve/keep existing/only change what/don't delete".
|
|
160
|
+
id: 'no-preserve-scope',
|
|
161
|
+
title: 'No code-preservation instruction',
|
|
162
|
+
summary: 'No instruction found telling the agent to preserve existing code and only change what the task requires. ' +
|
|
163
|
+
'Without this, agents may delete working code, drop tests, or overwrite unrelated edits to reach a passing state.',
|
|
164
|
+
patterns: [
|
|
165
|
+
/\bpreserve\s+(?:existing|unrelated|the\s+existing|current|working|any\s+existing)\b/i,
|
|
166
|
+
/\bpreserve\s+(?:unrelated\s+changes|the\s+user(?:'|’)?s?\s+(?:changes|edits|work))\b/i,
|
|
167
|
+
/\b(?:don(?:'|’)?t|do\s+not|dont|never)\s+(?:delete|remove|drop|strip)\s+(?:existing|working|unrelated|any)\b/i,
|
|
168
|
+
/\bkeep\s+(?:existing|the\s+existing|current|working)\s+(?:code|behaviou?r|functionality|logic|tests?)\b/i,
|
|
169
|
+
/\bonly\s+(?:change|modify|touch|edit|update)\s+(?:what|the\s+code\s+(?:that|you)|files?\s+(?:that|you)|lines?)\b/i,
|
|
170
|
+
/\b(?:don(?:'|’)?t|do\s+not|dont)\s+(?:modify|change|touch)\s+code\s+outside\b/i,
|
|
171
|
+
/\bleave\s+(?:unrelated|existing|working|other)\s+(?:code|files?|logic|behaviou?r)\s+(?:untouched|alone|intact|as[- ]is)\b/i,
|
|
172
|
+
],
|
|
173
|
+
recommendation: 'Add a rule such as: "Preserve existing code and only change what the task requires. Do not delete working code, tests, or unrelated edits."',
|
|
174
|
+
severity: 'warning',
|
|
175
|
+
confidence: 0.7,
|
|
176
|
+
fixRecipe: 'Preserve existing code and only change what the task requires. Do not delete working code, tests, or unrelated edits.',
|
|
177
|
+
},
|
|
111
178
|
{
|
|
112
179
|
id: 'no-plan-first',
|
|
113
180
|
title: 'No "plan before implementing" instruction',
|
|
@@ -160,6 +227,12 @@ const CLAUDE_XML_TAG_RE = /<\/?claude:[\w-]+|<instructions-for-claude[\s>]/i;
|
|
|
160
227
|
// and must not exempt the file. The `.md` extension is required so prose like
|
|
161
228
|
// "use Claude to review" cannot match the bare word.
|
|
162
229
|
const FORWARDING_RE = /(?:follow|use|see|refer\s+to|canonical\s+(?:source|instructions?)|pointer\s+to)\s+[`'"*]*(?:\.?\/)?(?:\.github\/)?(?:AGENTS|CLAUDE)\.md\b/i;
|
|
230
|
+
// The same delegation phrased subject-first: "`AGENTS.md` is the single source
|
|
231
|
+
// of truth for all agents" / "AGENTS.md is canonical". Common in the tool stubs
|
|
232
|
+
// (GEMINI.md, .clinerules) that rule-sync setups generate next to AGENTS.md.
|
|
233
|
+
// Same-line only, so an unrelated "canonical" further down cannot pair up; and
|
|
234
|
+
// a file naming ITSELF as the source of truth is not delegating (see caller).
|
|
235
|
+
const SOURCE_OF_TRUTH_RE = /\b(AGENTS|CLAUDE)\.md\b[^\n]{0,60}?\b(?:single\s+source\s+of\s+truth|canonical)\b/i;
|
|
163
236
|
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
164
237
|
function issueId(checkId) {
|
|
165
238
|
const hash = crypto.createHash('sha1').update(checkId).digest('hex').slice(0, 12);
|
|
@@ -211,68 +284,55 @@ function stripChecklistLines(content) {
|
|
|
211
284
|
.filter((line) => !/^\s*(?:[-*+]|\d+\.)\s+/.test(line) || !/\[[ x?]\]/.test(line))
|
|
212
285
|
.join('\n');
|
|
213
286
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
if (openMatch) {
|
|
224
|
-
inBlock = true;
|
|
225
|
-
fenceChar = openMatch[1][0] ?? null;
|
|
226
|
-
fenceLen = openMatch[1].length;
|
|
227
|
-
continue;
|
|
228
|
-
}
|
|
229
|
-
kept.push(line);
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
const closeMatch = /^ {0,3}([`~]{3,})\s*$/.exec(line);
|
|
233
|
-
if (closeMatch && closeMatch[1][0] === fenceChar && closeMatch[1].length >= fenceLen) {
|
|
234
|
-
inBlock = false;
|
|
235
|
-
fenceChar = null;
|
|
236
|
-
fenceLen = 0;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
return kept.join('\n');
|
|
241
|
-
}
|
|
242
|
-
function normalizedFilePath(filePath) {
|
|
243
|
-
return filePath.replace(/\\/g, '/').toLowerCase();
|
|
244
|
-
}
|
|
287
|
+
// BUG-006: classify by the scanner-computed `fileType` (derived from the repo-
|
|
288
|
+
// RELATIVE path in deriveFileType) plus the location-independent basename.
|
|
289
|
+
// Never substring-match a directory like `/.claude/` against the ABSOLUTE
|
|
290
|
+
// `file.path`: the checkout location leaks in, so a repo checked out under a
|
|
291
|
+
// Claude Code worktree (`.../.claude/worktrees/<branch>/`) misclassifies every
|
|
292
|
+
// file — README.md included — as a Claude instruction file. deriveFileType
|
|
293
|
+
// already maps the in-repo `.claude/`, `.cursor/rules/`, and
|
|
294
|
+
// `.github/instructions/` directories, so `fileType` is the authoritative,
|
|
295
|
+
// checkout-location-independent signal.
|
|
245
296
|
function isCopilotInstructionsFile(file) {
|
|
246
|
-
const normalizedPath = normalizedFilePath(file.path);
|
|
247
297
|
return (file.fileType === 'copilot' ||
|
|
248
|
-
|
|
249
|
-
normalizedPath.endsWith('/.github/copilot-instructions.md') ||
|
|
250
|
-
normalizedPath.includes('/.github/instructions/'));
|
|
298
|
+
path.basename(file.path).toLowerCase() === 'copilot-instructions.md');
|
|
251
299
|
}
|
|
252
300
|
function isCursorRulesFile(file) {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
normalizedPath.includes('/.cursor/rules/'));
|
|
301
|
+
return file.fileType === 'cursor' || path.basename(file.path).toLowerCase() === '.cursorrules';
|
|
302
|
+
}
|
|
303
|
+
function isWindsurfRulesFile(file) {
|
|
304
|
+
return file.fileType === 'windsurf' || path.basename(file.path).toLowerCase() === '.windsurfrules';
|
|
258
305
|
}
|
|
259
306
|
function isClaudeInstructionsFile(file) {
|
|
260
|
-
|
|
261
|
-
const baseName = path.basename(file.path).toLowerCase();
|
|
262
|
-
return (file.fileType === 'claude' ||
|
|
263
|
-
baseName === 'claude.md' ||
|
|
264
|
-
normalizedPath.includes('/.claude/'));
|
|
307
|
+
return file.fileType === 'claude' || path.basename(file.path).toLowerCase() === 'claude.md';
|
|
265
308
|
}
|
|
266
309
|
function perFileBehaviorTarget(file) {
|
|
267
310
|
if (isCursorRulesFile(file)) {
|
|
268
311
|
return { label: 'Cursor rules file', agent: 'Cursor agents' };
|
|
269
312
|
}
|
|
313
|
+
// BUG-19: `.windsurfrules` is scanned but previously typed 'unknown', so it
|
|
314
|
+
// never matched a per-agent target and the per-file behavior checks skipped it.
|
|
315
|
+
if (isWindsurfRulesFile(file)) {
|
|
316
|
+
return { label: '.windsurfrules', agent: 'Windsurf agents' };
|
|
317
|
+
}
|
|
270
318
|
if (isClaudeInstructionsFile(file)) {
|
|
271
319
|
return { label: 'CLAUDE.md', agent: 'Claude' };
|
|
272
320
|
}
|
|
273
321
|
if (isCopilotInstructionsFile(file)) {
|
|
274
322
|
return { label: '.github/copilot-instructions.md', agent: 'GitHub Copilot' };
|
|
275
323
|
}
|
|
324
|
+
// GEMINI.md and a single-file `.clinerules` are read standalone by their
|
|
325
|
+
// tool, exactly like the files above — the same BUG-19 reasoning as
|
|
326
|
+
// `.windsurfrules`. Files inside a `.clinerules/` DIRECTORY are not targets:
|
|
327
|
+
// Cline concatenates the whole directory, so one rule file lacking guidance
|
|
328
|
+
// that a sibling provides is not a gap. Persona files (SOUL.md etc.) are not
|
|
329
|
+
// tool-specific rule files, so they are not per-agent targets either.
|
|
330
|
+
if (file.fileType === 'gemini') {
|
|
331
|
+
return { label: 'GEMINI.md', agent: 'Gemini CLI' };
|
|
332
|
+
}
|
|
333
|
+
if (file.fileType === 'cline' && path.basename(file.path) === '.clinerules') {
|
|
334
|
+
return { label: '.clinerules', agent: 'Cline' };
|
|
335
|
+
}
|
|
276
336
|
return undefined;
|
|
277
337
|
}
|
|
278
338
|
function isForwardingFile(file) {
|
|
@@ -284,13 +344,76 @@ function isForwardingFile(file) {
|
|
|
284
344
|
const head = file.content.split(/\r?\n/).slice(0, 12).join('\n');
|
|
285
345
|
if (FORWARDING_RE.test(head))
|
|
286
346
|
return true;
|
|
347
|
+
const sourceOfTruth = SOURCE_OF_TRUTH_RE.exec(head);
|
|
348
|
+
if (sourceOfTruth && `${sourceOfTruth[1].toLowerCase()}.md` !== path.basename(file.path).toLowerCase()) {
|
|
349
|
+
return true;
|
|
350
|
+
}
|
|
287
351
|
// Legacy: a short file with a forwarding pointer anywhere.
|
|
288
352
|
return file.lineCount < 20 && FORWARDING_RE.test(file.content);
|
|
289
353
|
}
|
|
290
354
|
// ── Detector ─────────────────────────────────────────────────────────────────
|
|
291
|
-
|
|
355
|
+
/**
|
|
356
|
+
* Symlink aliases whose OWN tool-specific name adds a per-agent target the real
|
|
357
|
+
* file does not have: `CLAUDE.md -> AGENTS.md` means Claude reads AGENTS.md's
|
|
358
|
+
* content, so the per-file behavior checks apply to it as the CLAUDE.md it is.
|
|
359
|
+
* An alias whose target is the same kind of file as the real one adds nothing.
|
|
360
|
+
*/
|
|
361
|
+
function aliasesWithNewTarget(files, aliases) {
|
|
362
|
+
return aliases.filter((alias) => {
|
|
363
|
+
const target = perFileBehaviorTarget(alias);
|
|
364
|
+
if (!target)
|
|
365
|
+
return false;
|
|
366
|
+
const canonical = files.find((f) => f.relativePath === alias.aliasOf);
|
|
367
|
+
return canonical === undefined || perFileBehaviorTarget(canonical)?.label !== target.label;
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
/** A Claude XML tag is only meaningful in a CLAUDE.md; README files document the tags as examples. */
|
|
371
|
+
function isClaudeTagTarget(fileType) {
|
|
372
|
+
return fileType !== 'claude' && fileType !== 'readme';
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* BUG-007: Claude-specific XML tags in a non-Claude instruction file.
|
|
376
|
+
* <claude:thinking> and similar tags are Claude-specific features; embedding them
|
|
377
|
+
* in .cursorrules or AGENTS.md is tool-specific syntax in the wrong file type.
|
|
378
|
+
* Skip README files — they often document Claude XML tags as examples rather than using them
|
|
379
|
+
* Skip if the tag only appears inside fenced code blocks (documentation, not real usage)
|
|
380
|
+
*/
|
|
381
|
+
function claudeXmlTagIssue(names) {
|
|
382
|
+
// `names` is one real file, or every link to one real file (one finding listing them all, id from the first).
|
|
383
|
+
const file = names[0];
|
|
384
|
+
if (!isClaudeTagTarget(file.fileType))
|
|
385
|
+
return undefined;
|
|
386
|
+
const contentOutsideCode = stripCodeBlocks(file.content).replace(/`[^`\n]+`/g, '');
|
|
387
|
+
if (!CLAUDE_XML_TAG_RE.test(contentOutsideCode))
|
|
388
|
+
return undefined;
|
|
389
|
+
const hash = crypto.createHash('sha1').update(`claude-xml-tag:${fileIdPath(file)}`).digest('hex').slice(0, 12);
|
|
390
|
+
// AP3: search contentOutsideCode (the same text the gate above tested),
|
|
391
|
+
// not the raw file.content — otherwise an earlier occurrence of the
|
|
392
|
+
// tag that exists ONLY inside a code fence (documentation, not real
|
|
393
|
+
// usage) could be picked as evidence instead of the real match that
|
|
394
|
+
// actually made the gate fire.
|
|
395
|
+
const firstTag = (/<\/?claude:[\w-]+/i).exec(contentOutsideCode)?.[0] ?? '<claude:...>';
|
|
396
|
+
return {
|
|
397
|
+
id: `claude-xml-tag-${hash}`,
|
|
398
|
+
severity: 'warning',
|
|
399
|
+
category: 'structure',
|
|
400
|
+
title: 'Claude-specific XML tag in non-Claude instruction file',
|
|
401
|
+
summary: `This file contains a Claude-specific XML tag (${firstTag}) but is not a CLAUDE.md file. ` +
|
|
402
|
+
`Claude XML tags are only interpreted by Claude; other AI tools (Cursor, Copilot, etc.) ` +
|
|
403
|
+
`will treat them as literal text or ignore them.`,
|
|
404
|
+
filePaths: names.map((f) => f.path),
|
|
405
|
+
locations: names.map((f) => ({ filePath: f.path })),
|
|
406
|
+
evidence: [`Found: ${firstTag} in ${[...new Set(names.map((f) => f.fileType))].join(', ')} file`],
|
|
407
|
+
recommendation: 'Move Claude-specific directives to CLAUDE.md, or replace this tag with a plain-text ' +
|
|
408
|
+
'instruction that all tools can understand.',
|
|
409
|
+
confidence: 0.85,
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
export function detectAgentPractices(files, aliases = []) {
|
|
292
413
|
if (files.length === 0)
|
|
293
414
|
return [];
|
|
415
|
+
// Files the per-agent checks run over: every scanned file plus the symlink aliases that are a different tool's file.
|
|
416
|
+
const targetFiles = [...files, ...aliasesWithNewTarget(files, aliases)];
|
|
294
417
|
const issues = [];
|
|
295
418
|
const combinedContent = files.map((f) => f.content).join('\n');
|
|
296
419
|
// BUG-002: For the verification-loop check, strip human-facing checklist items
|
|
@@ -338,7 +461,7 @@ export function detectAgentPractices(files) {
|
|
|
338
461
|
// granular "missing critical guidance" issues (one per CHECKS entry),
|
|
339
462
|
// inflating the health-score penalty ~6x for a single underlying gap.
|
|
340
463
|
const filesWithNoGuidanceFinding = new Set();
|
|
341
|
-
for (const file of
|
|
464
|
+
for (const file of targetFiles) {
|
|
342
465
|
const target = perFileBehaviorTarget(file);
|
|
343
466
|
if (!target)
|
|
344
467
|
continue;
|
|
@@ -356,7 +479,7 @@ export function detectAgentPractices(files) {
|
|
|
356
479
|
continue;
|
|
357
480
|
filesWithNoGuidanceFinding.add(file.path);
|
|
358
481
|
issues.push({
|
|
359
|
-
id: perFileBehaviorIssueId(file
|
|
482
|
+
id: perFileBehaviorIssueId(fileIdPath(file)),
|
|
360
483
|
severity: 'warning',
|
|
361
484
|
category: 'agent_practices',
|
|
362
485
|
title: `No behavioral guidance in ${target.label}`,
|
|
@@ -384,7 +507,7 @@ export function detectAgentPractices(files) {
|
|
|
384
507
|
const sourceFile = files.find((f) => matchesAny(stripChecklistLines(f.content), check.patterns));
|
|
385
508
|
if (!sourceFile)
|
|
386
509
|
continue;
|
|
387
|
-
for (const file of
|
|
510
|
+
for (const file of targetFiles) {
|
|
388
511
|
if (file === sourceFile)
|
|
389
512
|
continue;
|
|
390
513
|
const target = perFileBehaviorTarget(file);
|
|
@@ -399,7 +522,7 @@ export function detectAgentPractices(files) {
|
|
|
399
522
|
const hasThisGuidance = matchesAny(stripChecklistLines(file.content), check.patterns);
|
|
400
523
|
if (!hasThisGuidance) {
|
|
401
524
|
const checkName = check.title.toLowerCase().replace('no ', '').replace(' instruction', '');
|
|
402
|
-
const hash = crypto.createHash('sha1').update(`behavior-gap:${file
|
|
525
|
+
const hash = crypto.createHash('sha1').update(`behavior-gap:${fileIdPath(file)}:${check.id}`).digest('hex').slice(0, 12);
|
|
403
526
|
issues.push({
|
|
404
527
|
id: `per-file-behavioral-gap-${hash}`,
|
|
405
528
|
severity: 'warning',
|
|
@@ -448,7 +571,7 @@ export function detectAgentPractices(files) {
|
|
|
448
571
|
if (hasGeneralBehaviorOnlyInCopilot()) {
|
|
449
572
|
const copilotFile = files.find(isCopilotInstructionsFile);
|
|
450
573
|
issues.push({
|
|
451
|
-
id: copilotAgentBehaviorId(copilotFile
|
|
574
|
+
id: copilotAgentBehaviorId(fileIdPath(copilotFile)),
|
|
452
575
|
severity: 'warning',
|
|
453
576
|
category: 'structure',
|
|
454
577
|
title: 'General behavioral guidance placed only in Copilot instructions',
|
|
@@ -471,10 +594,10 @@ export function detectAgentPractices(files) {
|
|
|
471
594
|
if (!matchesAny(file.content, KEY_BEHAVIORAL_PATTERNS))
|
|
472
595
|
continue;
|
|
473
596
|
// Check if we already flagged this via general-behavior-only check
|
|
474
|
-
if (issues.some(i => i.id === copilotAgentBehaviorId(file
|
|
597
|
+
if (issues.some(i => i.id === copilotAgentBehaviorId(fileIdPath(file))))
|
|
475
598
|
continue;
|
|
476
599
|
issues.push({
|
|
477
|
-
id: copilotAgentBehaviorId(file
|
|
600
|
+
id: copilotAgentBehaviorId(fileIdPath(file)),
|
|
478
601
|
severity: 'warning',
|
|
479
602
|
category: 'structure',
|
|
480
603
|
title: 'Agent-behavior section in copilot-instructions.md',
|
|
@@ -505,7 +628,7 @@ export function detectAgentPractices(files) {
|
|
|
505
628
|
if (hasDoNotEdit && !hasGeneratorNote) {
|
|
506
629
|
// Case 1 (original): "do not edit" present but NO generator note.
|
|
507
630
|
issues.push({
|
|
508
|
-
id: doNotEditIssueId(file
|
|
631
|
+
id: doNotEditIssueId(fileIdPath(file)),
|
|
509
632
|
severity: 'warning',
|
|
510
633
|
category: 'agent_practices',
|
|
511
634
|
title: '"Do not edit" header in human-maintained instruction file',
|
|
@@ -528,7 +651,7 @@ export function detectAgentPractices(files) {
|
|
|
528
651
|
return `auto-gen-header-${hash}`;
|
|
529
652
|
};
|
|
530
653
|
issues.push({
|
|
531
|
-
id: autoGenId(file
|
|
654
|
+
id: autoGenId(fileIdPath(file)),
|
|
532
655
|
severity: 'warning',
|
|
533
656
|
category: 'agent_practices',
|
|
534
657
|
title: 'Misleading auto-generated header on human-maintained instruction file',
|
|
@@ -543,39 +666,20 @@ export function detectAgentPractices(files) {
|
|
|
543
666
|
confidence: 0.75,
|
|
544
667
|
});
|
|
545
668
|
}
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
// usage) could be picked as evidence instead of the real match that
|
|
561
|
-
// actually made the gate fire.
|
|
562
|
-
const firstTag = (/<\/?claude:[\w-]+/i).exec(contentOutsideCode)?.[0] ?? '<claude:...>';
|
|
563
|
-
issues.push({
|
|
564
|
-
id: claudeTagId(file.path),
|
|
565
|
-
severity: 'warning',
|
|
566
|
-
category: 'structure',
|
|
567
|
-
title: 'Claude-specific XML tag in non-Claude instruction file',
|
|
568
|
-
summary: `This file contains a Claude-specific XML tag (${firstTag}) but is not a CLAUDE.md file. ` +
|
|
569
|
-
`Claude XML tags are only interpreted by Claude; other AI tools (Cursor, Copilot, etc.) ` +
|
|
570
|
-
`will treat them as literal text or ignore them.`,
|
|
571
|
-
filePaths: [file.path],
|
|
572
|
-
locations: [{ filePath: file.path }],
|
|
573
|
-
evidence: [`Found: ${firstTag} in ${file.fileType} file`],
|
|
574
|
-
recommendation: 'Move Claude-specific directives to CLAUDE.md, or replace this tag with a plain-text ' +
|
|
575
|
-
'instruction that all tools can understand.',
|
|
576
|
-
confidence: 0.85,
|
|
577
|
-
});
|
|
578
|
-
}
|
|
669
|
+
const claudeTag = claudeXmlTagIssue([file]);
|
|
670
|
+
if (claudeTag)
|
|
671
|
+
issues.push(claudeTag);
|
|
672
|
+
}
|
|
673
|
+
// The Claude-tag check is gated by file type, and `AGENTS.md -> CLAUDE.md` is an AGENTS.md to every
|
|
674
|
+
// tool that reads that name: run it for such an alias, against the real content. (An alias of a file
|
|
675
|
+
// that is already "not Claude" would only repeat the real file's finding, so it is left out.) The
|
|
676
|
+
// other per-type content checks above are not repeated for aliases: "do not edit" is type-independent,
|
|
677
|
+
// and the Copilot agent-behavior check assumes copilot-instructions.md is Copilot-only, which a link
|
|
678
|
+
// to AGENTS.md is not. Several links to one file give ONE finding that lists every link.
|
|
679
|
+
for (const group of groupAliasesByTarget(aliasesWithNewType(files, aliases, isClaudeTagTarget))) {
|
|
680
|
+
const claudeTag = claudeXmlTagIssue(group);
|
|
681
|
+
if (claudeTag)
|
|
682
|
+
issues.push(claudeTag);
|
|
579
683
|
}
|
|
580
684
|
return issues;
|
|
581
685
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-practices.js","sourceRoot":"","sources":["../src/agent-practices.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-practices.js","sourceRoot":"","sources":["../src/agent-practices.ts"],"names":[],"mappings":"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"}
|