claudecode-linter 0.1.0 → 2.1.70

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/README.md CHANGED
@@ -168,6 +168,15 @@ Formatting is powered by [prettier](https://prettier.io/) for consistent JSON an
168
168
  | 1 | Lint errors found |
169
169
  | 2 | Fatal error |
170
170
 
171
+ ## Versioning
172
+
173
+ This linter's version tracks the Claude Code version it was extracted from:
174
+
175
+ - **Contract sync**: version matches Claude Code exactly (e.g., `2.1.69` for Claude Code v2.1.69)
176
+ - **Linter-only bugfix**: pre-release suffix `2.1.69-patch.1`, `2.1.69-patch.2`, etc.
177
+
178
+ Pre-release versions sort below the base version in npm (`2.1.69-patch.1 < 2.1.69`), but `^2.1.68` will still resolve them. When the next Claude Code version is released (e.g., `2.1.70`), it supersedes all patches.
179
+
171
180
  ## Development
172
181
 
173
182
  ```bash
@@ -176,6 +185,34 @@ npm run build
176
185
  npm test
177
186
  ```
178
187
 
188
+ ### Updating contracts
189
+
190
+ When a new Claude Code version is released:
191
+
192
+ ```bash
193
+ # 1. Extract contracts from latest Claude Code
194
+ npm run extract-contracts
195
+
196
+ # Or extract from a specific version
197
+ npm run extract-contracts -- --version 2.1.58
198
+
199
+ # 2. Generate src/contracts.ts from the JSON
200
+ npm run generate-contracts
201
+
202
+ # 3. Build and test
203
+ npm run build && npm test
204
+ ```
205
+
206
+ The `--version` flag is useful for testing the CI pipeline: extract an older version, commit it, then let CI detect the newer latest version and run the full release flow.
207
+
208
+ Use `--changelog` to also write a `CHANGELOG_ENTRY.md` file with a markdown drift report (used by CI):
209
+
210
+ ```bash
211
+ npm run extract-contracts -- --changelog
212
+ ```
213
+
214
+ This is automated in CI via `.woodpecker/release.yml`.
215
+
179
216
  ## License
180
217
 
181
218
  MIT
@@ -0,0 +1,13 @@
1
+ export declare const TOOLS: Set<string>;
2
+ export declare const HOOK_EVENTS: Set<string>;
3
+ export declare const HOOK_TYPES: Set<string>;
4
+ export declare const PROMPT_EVENTS: Set<string>;
5
+ export declare const AGENT_COLORS: Set<string>;
6
+ export declare const AGENT_MODELS: Set<string>;
7
+ export declare const PLUGIN_JSON_FIELDS: Set<string>;
8
+ export declare const AGENT_FRONTMATTER: Set<string>;
9
+ export declare const COMMAND_FRONTMATTER: Set<string>;
10
+ export declare const MCP_SERVER_FIELDS: Set<string>;
11
+ export declare const SKILL_FRONTMATTER: Set<string>;
12
+ export declare const SETTINGS_USER_FIELDS: Set<string>;
13
+ export declare const SETTINGS_PROJECT_FIELDS: Set<string>;
@@ -0,0 +1,195 @@
1
+ // Auto-generated from contracts/claude-code-contracts.json
2
+ // Claude Code v2.1.70 — extracted 2026-03-06T15:33:15.488Z
3
+ // Do not edit manually. Run: npm run generate-contracts
4
+ export const TOOLS = new Set([
5
+ "Agent",
6
+ "AskUserQuestion",
7
+ "Bash",
8
+ "Edit",
9
+ "EnterPlanMode",
10
+ "EnterWorktree",
11
+ "ExitPlanMode",
12
+ "Glob",
13
+ "Grep",
14
+ "LSP",
15
+ "NotebookEdit",
16
+ "NotebookRead",
17
+ "Read",
18
+ "SendMessage",
19
+ "Skill",
20
+ "TaskCreate",
21
+ "TaskGet",
22
+ "TaskList",
23
+ "TaskOutput",
24
+ "TaskStop",
25
+ "TaskUpdate",
26
+ "TeamCreate",
27
+ "TeamDelete",
28
+ "TodoWrite",
29
+ "ToolSearch",
30
+ "WebFetch",
31
+ "WebSearch",
32
+ "Write",
33
+ ]);
34
+ export const HOOK_EVENTS = new Set([
35
+ "ConfigChange",
36
+ "Elicitation",
37
+ "ElicitationResult",
38
+ "InstructionsLoaded",
39
+ "Notification",
40
+ "PermissionRequest",
41
+ "PostToolUse",
42
+ "PostToolUseFailure",
43
+ "PreCompact",
44
+ "PreToolUse",
45
+ "SessionEnd",
46
+ "SessionStart",
47
+ "Setup",
48
+ "Stop",
49
+ "SubagentStart",
50
+ "SubagentStop",
51
+ "TaskCompleted",
52
+ "TeammateIdle",
53
+ "UserPromptSubmit",
54
+ "WorktreeCreate",
55
+ "WorktreeRemove",
56
+ ]);
57
+ export const HOOK_TYPES = new Set(["agent", "command", "http", "prompt"]);
58
+ export const PROMPT_EVENTS = new Set([
59
+ "Notification",
60
+ "PostToolUse",
61
+ "PostToolUseFailure",
62
+ "PreToolUse",
63
+ "SessionStart",
64
+ "Setup",
65
+ "SubagentStart",
66
+ "UserPromptSubmit",
67
+ ]);
68
+ export const AGENT_COLORS = new Set([
69
+ "blue",
70
+ "cyan",
71
+ "green",
72
+ "magenta",
73
+ "orange",
74
+ "pink",
75
+ "purple",
76
+ "red",
77
+ "yellow",
78
+ ]);
79
+ export const AGENT_MODELS = new Set(["haiku", "inherit", "opus", "sonnet"]);
80
+ export const PLUGIN_JSON_FIELDS = new Set([
81
+ "name",
82
+ "version",
83
+ "description",
84
+ "author",
85
+ "homepage",
86
+ "repository",
87
+ "license",
88
+ "keywords",
89
+ ]);
90
+ export const AGENT_FRONTMATTER = new Set([
91
+ "description",
92
+ "tools",
93
+ "disallowedTools",
94
+ "prompt",
95
+ "model",
96
+ "mcpServers",
97
+ "criticalSystemReminder_EXPERIMENTAL",
98
+ "skills",
99
+ "maxTurns",
100
+ ]);
101
+ export const COMMAND_FRONTMATTER = new Set([
102
+ "source",
103
+ "content",
104
+ "description",
105
+ "argumentHint",
106
+ "model",
107
+ "allowedTools",
108
+ ]);
109
+ export const MCP_SERVER_FIELDS = new Set([
110
+ "type",
111
+ "command",
112
+ "args",
113
+ "env",
114
+ "url",
115
+ "headers",
116
+ "headersHelper",
117
+ "oauth",
118
+ "cwd",
119
+ ]);
120
+ export const SKILL_FRONTMATTER = new Set([
121
+ "allowed-tools",
122
+ "argument-hint",
123
+ "description",
124
+ "disable-model-invocation",
125
+ "model",
126
+ "name",
127
+ "user-invocable",
128
+ "version",
129
+ "when_to_use",
130
+ ]);
131
+ export const SETTINGS_USER_FIELDS = new Set([
132
+ "agent",
133
+ "allowManagedHooksOnly",
134
+ "allowManagedMcpServersOnly",
135
+ "allowManagedPermissionRulesOnly",
136
+ "allowedHttpHookUrls",
137
+ "allowedMcpServers",
138
+ "alwaysThinkingEnabled",
139
+ "apiKeyHelper",
140
+ "attribution",
141
+ "autoMemoryEnabled",
142
+ "autoUpdatesChannel",
143
+ "availableModels",
144
+ "awsAuthRefresh",
145
+ "awsCredentialExport",
146
+ "blockedMarketplaces",
147
+ "claudeMdExcludes",
148
+ "cleanupPeriodDays",
149
+ "companyAnnouncements",
150
+ "deniedMcpServers",
151
+ "disableAllHooks",
152
+ "disabledMcpjsonServers",
153
+ "enableAllProjectMcpServers",
154
+ "enabledMcpjsonServers",
155
+ "enabledPlugins",
156
+ "env",
157
+ "extraKnownMarketplaces",
158
+ "fastMode",
159
+ "fastModePerSessionOptIn",
160
+ "fileSuggestion",
161
+ "forceLoginMethod",
162
+ "forceLoginOrgUUID",
163
+ "hooks",
164
+ "httpHookAllowedEnvVars",
165
+ "includeCoAuthoredBy",
166
+ "includeGitInstructions",
167
+ "language",
168
+ "minimumVersion",
169
+ "model",
170
+ "otelHeadersHelper",
171
+ "outputStyle",
172
+ "permissions",
173
+ "plansDirectory",
174
+ "pluginConfigs",
175
+ "pluginTrustMessage",
176
+ "prefersReducedMotion",
177
+ "promptSuggestionEnabled",
178
+ "remote",
179
+ "respectGitignore",
180
+ "sandbox",
181
+ "showThinkingSummaries",
182
+ "skipDangerousModePermissionPrompt",
183
+ "skipWebFetchPreflight",
184
+ "spinnerTipsEnabled",
185
+ "spinnerTipsOverride",
186
+ "spinnerVerbs",
187
+ "sshConfigs",
188
+ "statusLine",
189
+ "strictKnownMarketplaces",
190
+ "syntaxHighlightingDisabled",
191
+ "terminalTitleFromRename",
192
+ "worktree",
193
+ ]);
194
+ export const SETTINGS_PROJECT_FIELDS = new Set(["permissions"]);
195
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,2DAA2D;AAC3D,wDAAwD;AAExD,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;IAC5B,OAAO;IACP,iBAAiB;IACjB,MAAM;IACN,MAAM;IACN,eAAe;IACf,eAAe;IACf,cAAc;IACd,MAAM;IACN,MAAM;IACN,KAAK;IACL,cAAc;IACd,cAAc;IACd,MAAM;IACN,aAAa;IACb,OAAO;IACP,YAAY;IACZ,SAAS;IACT,UAAU;IACV,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,UAAU;IACV,WAAW;IACX,OAAO;CACP,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAClC,cAAc;IACd,aAAa;IACb,mBAAmB;IACnB,oBAAoB;IACpB,cAAc;IACd,mBAAmB;IACnB,aAAa;IACb,oBAAoB;IACpB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,OAAO;IACP,MAAM;IACN,eAAe;IACf,cAAc;IACd,eAAe;IACf,cAAc;IACd,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;CAChB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IACpC,cAAc;IACd,aAAa;IACb,oBAAoB;IACpB,YAAY;IACZ,cAAc;IACd,OAAO;IACP,eAAe;IACf,kBAAkB;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IACnC,MAAM;IACN,MAAM;IACN,OAAO;IACP,SAAS;IACT,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,KAAK;IACL,QAAQ;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACzC,MAAM;IACN,SAAS;IACT,aAAa;IACb,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,SAAS;IACT,UAAU;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACxC,aAAa;IACb,OAAO;IACP,iBAAiB;IACjB,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,qCAAqC;IACrC,QAAQ;IACR,UAAU;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAC1C,QAAQ;IACR,SAAS;IACT,aAAa;IACb,cAAc;IACd,OAAO;IACP,cAAc;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACxC,MAAM;IACN,SAAS;IACT,MAAM;IACN,KAAK;IACL,KAAK;IACL,SAAS;IACT,eAAe;IACf,OAAO;IACP,KAAK;CACL,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACxC,eAAe;IACf,eAAe;IACf,aAAa;IACb,0BAA0B;IAC1B,OAAO;IACP,MAAM;IACN,gBAAgB;IAChB,SAAS;IACT,aAAa;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IAC3C,OAAO;IACP,uBAAuB;IACvB,4BAA4B;IAC5B,iCAAiC;IACjC,qBAAqB;IACrB,mBAAmB;IACnB,uBAAuB;IACvB,cAAc;IACd,aAAa;IACb,mBAAmB;IACnB,oBAAoB;IACpB,iBAAiB;IACjB,gBAAgB;IAChB,qBAAqB;IACrB,qBAAqB;IACrB,kBAAkB;IAClB,mBAAmB;IACnB,sBAAsB;IACtB,kBAAkB;IAClB,iBAAiB;IACjB,wBAAwB;IACxB,4BAA4B;IAC5B,uBAAuB;IACvB,gBAAgB;IAChB,KAAK;IACL,wBAAwB;IACxB,UAAU;IACV,yBAAyB;IACzB,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;IACnB,OAAO;IACP,wBAAwB;IACxB,qBAAqB;IACrB,wBAAwB;IACxB,UAAU;IACV,gBAAgB;IAChB,OAAO;IACP,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,QAAQ;IACR,kBAAkB;IAClB,SAAS;IACT,uBAAuB;IACvB,mCAAmC;IACnC,uBAAuB;IACvB,oBAAoB;IACpB,qBAAqB;IACrB,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,yBAAyB;IACzB,4BAA4B;IAC5B,yBAAyB;IACzB,UAAU;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { AGENT_MODELS, AGENT_COLORS } from "../contracts.js";
1
2
  import { isRuleEnabled, getRuleSeverity } from "../types.js";
2
3
  import { parseFrontmatter } from "../utils/frontmatter.js";
3
4
  const RULES = [
@@ -14,8 +15,6 @@ const RULES = [
14
15
  { id: "agent-md/system-prompt-length", defaultSeverity: "warning" },
15
16
  { id: "agent-md/system-prompt-second-person", defaultSeverity: "info" },
16
17
  ];
17
- const VALID_MODELS = new Set(["inherit", "sonnet", "opus", "haiku"]);
18
- const VALID_COLORS = new Set(["blue", "cyan", "green", "yellow", "magenta", "red"]);
19
18
  function diag(config, filePath, ruleId, defaultSeverity, message, line, column) {
20
19
  if (!isRuleEnabled(config, ruleId))
21
20
  return null;
@@ -62,15 +61,15 @@ export const agentMdLinter = {
62
61
  if (!("model" in fm.data) || typeof fm.data.model !== "string") {
63
62
  push(diag(config, filePath, "agent-md/model-required", "error", "\"model\" is required in frontmatter"));
64
63
  }
65
- else if (!VALID_MODELS.has(fm.data.model)) {
66
- push(diag(config, filePath, "agent-md/model-valid", "warning", `"model" must be one of: ${[...VALID_MODELS].join(", ")} (got "${fm.data.model}")`));
64
+ else if (!AGENT_MODELS.has(fm.data.model)) {
65
+ push(diag(config, filePath, "agent-md/model-valid", "warning", `"model" must be one of: ${[...AGENT_MODELS].join(", ")} (got "${fm.data.model}")`));
67
66
  }
68
67
  // color
69
68
  if (!("color" in fm.data) || typeof fm.data.color !== "string") {
70
69
  push(diag(config, filePath, "agent-md/color-required", "error", "\"color\" is required in frontmatter"));
71
70
  }
72
- else if (!VALID_COLORS.has(fm.data.color)) {
73
- push(diag(config, filePath, "agent-md/color-valid", "warning", `"color" must be one of: ${[...VALID_COLORS].join(", ")} (got "${fm.data.color}")`));
71
+ else if (!AGENT_COLORS.has(fm.data.color)) {
72
+ push(diag(config, filePath, "agent-md/color-valid", "warning", `"color" must be one of: ${[...AGENT_COLORS].join(", ")} (got "${fm.data.color}")`));
74
73
  }
75
74
  // system prompt (body)
76
75
  const body = fm.body.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"agent-md.js","sourceRoot":"","sources":["../../src/linters/agent-md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-md.js","sourceRoot":"","sources":["../../src/linters/agent-md.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { TOOLS } from "../contracts.js";
1
2
  import { isRuleEnabled, getRuleSeverity } from "../types.js";
2
3
  import { parseFrontmatter } from "../utils/frontmatter.js";
3
4
  const RULES = [
@@ -6,11 +7,6 @@ const RULES = [
6
7
  { id: "command-md/allowed-tools-valid", defaultSeverity: "warning" },
7
8
  { id: "command-md/body-present", defaultSeverity: "warning" },
8
9
  ];
9
- const KNOWN_TOOLS = new Set([
10
- "Read", "Write", "Edit", "Bash", "Glob", "Grep",
11
- "WebFetch", "WebSearch", "Agent", "AskUserQuestion",
12
- "NotebookEdit", "TodoWrite", "EnterPlanMode", "ExitPlanMode",
13
- ]);
14
10
  function diag(config, filePath, ruleId, defaultSeverity, message, line, column) {
15
11
  if (!isRuleEnabled(config, ruleId))
16
12
  return null;
@@ -43,7 +39,7 @@ export const commandMdLinter = {
43
39
  const tools = fm.data["allowed-tools"];
44
40
  if (Array.isArray(tools)) {
45
41
  for (const t of tools) {
46
- if (typeof t === "string" && !KNOWN_TOOLS.has(t)) {
42
+ if (typeof t === "string" && !TOOLS.has(t)) {
47
43
  push(diag(config, filePath, "command-md/allowed-tools-valid", "warning", `Unknown tool "${t}" in allowed-tools`));
48
44
  }
49
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"command-md.js","sourceRoot":"","sources":["../../src/linters/command-md.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAI3D,MAAM,KAAK,GAAc;IACvB,EAAE,EAAE,EAAE,8BAA8B,EAAE,eAAe,EAAE,OAAO,EAAE;IAChE,EAAE,EAAE,EAAE,iCAAiC,EAAE,eAAe,EAAE,OAAO,EAAE;IACnE,EAAE,EAAE,EAAE,gCAAgC,EAAE,eAAe,EAAE,SAAS,EAAE;IACpE,EAAE,EAAE,EAAE,yBAAyB,EAAE,eAAe,EAAE,SAAS,EAAE;CAC9D,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC/C,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB;IACnD,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc;CAC7D,CAAC,CAAC;AAEH,SAAS,IAAI,CACX,MAAoB,EACpB,QAAgB,EAChB,MAAc,EACd,eAAyB,EACzB,OAAe,EACf,IAAa,EACb,MAAe;IAEf,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC;QAC1D,OAAO;QACP,IAAI,EAAE,QAAQ;QACd,IAAI;QACJ,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAW;IACrC,YAAY,EAAE,YAAY;IAE1B,IAAI,CAAC,QAAgB,EAAE,OAAe,EAAE,MAAoB;QAC1D,MAAM,WAAW,GAAqB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,CAAC,CAAwB,EAAE,EAAE,GAAG,IAAI,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3E,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,8BAA8B,EAAE,OAAO,EACjE,EAAE,CAAC,KAAK,IAAI,qBAAqB,CAAC,CAAC,CAAC;YACtC,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,cAAc;QACd,IAAI,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC3E,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,iCAAiC,EAAE,OAAO,EACpE,4CAA4C,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,gBAAgB;QAChB,IAAI,eAAe,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBACjD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,gCAAgC,EAAE,SAAS,EACrE,iBAAiB,CAAC,oBAAoB,CAAC,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;QACP,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,yBAAyB,EAAE,SAAS,EAC9D,8CAA8C,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAC;AAEF,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"command-md.js","sourceRoot":"","sources":["../../src/linters/command-md.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { HOOK_EVENTS, PROMPT_EVENTS } from "../contracts.js";
1
2
  import { isRuleEnabled, getRuleSeverity } from "../types.js";
2
3
  const RULES = [
3
4
  { id: "hooks-json/valid-json", defaultSeverity: "error" },
@@ -10,14 +11,6 @@ const RULES = [
10
11
  { id: "hooks-json/prompt-event-support", defaultSeverity: "warning" },
11
12
  { id: "hooks-json/timeout-range", defaultSeverity: "warning" },
12
13
  ];
13
- const VALID_EVENTS = new Set([
14
- "PreToolUse", "PostToolUse", "UserPromptSubmit",
15
- "Stop", "SubagentStop", "SessionStart", "SessionEnd",
16
- "PreCompact", "Notification",
17
- ]);
18
- const PROMPT_EVENTS = new Set([
19
- "Stop", "SubagentStop", "UserPromptSubmit", "PreToolUse",
20
- ]);
21
14
  function findKeyPosition(content, key) {
22
15
  const re = new RegExp(`"${key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}"\\s*:`);
23
16
  const match = re.exec(content);
@@ -69,8 +62,8 @@ export const hooksJsonLinter = {
69
62
  for (const [eventName, matchers] of Object.entries(hooks)) {
70
63
  const ep = findKeyPosition(content, eventName);
71
64
  // valid event name
72
- if (!VALID_EVENTS.has(eventName)) {
73
- push(diag(config, filePath, "hooks-json/valid-event-names", "error", `Invalid event name "${eventName}" (valid: ${[...VALID_EVENTS].join(", ")})`, ep?.line, ep?.column));
65
+ if (!HOOK_EVENTS.has(eventName)) {
66
+ push(diag(config, filePath, "hooks-json/valid-event-names", "error", `Invalid event name "${eventName}" (valid: ${[...HOOK_EVENTS].join(", ")})`, ep?.line, ep?.column));
74
67
  continue;
75
68
  }
76
69
  if (!Array.isArray(matchers))
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-json.js","sourceRoot":"","sources":["../../src/linters/hooks-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks-json.js","sourceRoot":"","sources":["../../src/linters/hooks-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI7D,MAAM,KAAK,GAAc;IACvB,EAAE,EAAE,EAAE,uBAAuB,EAAE,eAAe,EAAE,OAAO,EAAE;IACzD,EAAE,EAAE,EAAE,2BAA2B,EAAE,eAAe,EAAE,OAAO,EAAE;IAC7D,EAAE,EAAE,EAAE,8BAA8B,EAAE,eAAe,EAAE,OAAO,EAAE;IAChE,EAAE,EAAE,EAAE,+BAA+B,EAAE,eAAe,EAAE,OAAO,EAAE;IACjE,EAAE,EAAE,EAAE,gCAAgC,EAAE,eAAe,EAAE,OAAO,EAAE;IAClE,EAAE,EAAE,EAAE,+BAA+B,EAAE,eAAe,EAAE,SAAS,EAAE;IACnE,EAAE,EAAE,EAAE,8BAA8B,EAAE,eAAe,EAAE,OAAO,EAAE;IAChE,EAAE,EAAE,EAAE,iCAAiC,EAAE,eAAe,EAAE,SAAS,EAAE;IACrE,EAAE,EAAE,EAAE,0BAA0B,EAAE,eAAe,EAAE,SAAS,EAAE;CAC/D,CAAC;AAEF,SAAS,eAAe,CAAC,OAAe,EAAE,GAAW;IACnD,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,IAAI,CACX,MAAoB,EACpB,QAAgB,EAChB,MAAc,EACd,eAAyB,EACzB,OAAe,EACf,IAAa,EACb,MAAe;IAEf,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC;QAC1D,OAAO;QACP,IAAI,EAAE,QAAQ;QACd,IAAI;QACJ,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAW;IACrC,YAAY,EAAE,YAAY;IAE1B,IAAI,CAAC,QAAgB,EAAE,OAAe,EAAE,MAAoB;QAC1D,MAAM,WAAW,GAAqB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,CAAC,CAAwB,EAAE,EAAE,GAAG,IAAI,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3E,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAC1D,iBAAkB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC5C,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAC1D,kCAAkC,CAAC,CAAC,CAAC;YACvC,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,IAAI,GAAG,MAAiC,CAAC;QAE/C,mBAAmB;QACnB,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAChF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,2BAA2B,EAAE,OAAO,EAC9D,6DAA6D,CAAC,CAAC,CAAC;YAClE,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgC,CAAC;QAEpD,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC/C,mBAAmB;YACnB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,8BAA8B,EAAE,OAAO,EACjE,uBAAuB,SAAS,aAAa,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;gBACtG,SAAS;YACX,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAEvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;oBAAE,SAAS;gBAC9D,MAAM,CAAC,GAAG,OAAkC,CAAC;gBAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAEvC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;wBAAE,SAAS;oBACxD,MAAM,CAAC,GAAG,IAA+B,CAAC;oBAE1C,gBAAgB;oBAChB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;wBACpE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,+BAA+B,EAAE,OAAO,EAClE,WAAW,SAAS,gDAAgD,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;wBAC/F,SAAS;oBACX,CAAC;oBAED,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBACzB,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACvD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EACnE,mBAAmB,SAAS,8BAA8B,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;wBACvF,CAAC;6BAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;4BACjF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,+BAA+B,EAAE,SAAS,EACpE,sEAAsE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;wBACnG,CAAC;oBACH,CAAC;oBAED,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACxB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;4BACrD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,8BAA8B,EAAE,OAAO,EACjE,kBAAkB,SAAS,6BAA6B,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;wBACrF,CAAC;wBACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;4BAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,iCAAiC,EAAE,SAAS,EACtE,6BAA6B,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,SAAS,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;wBAChH,CAAC;oBACH,CAAC;oBAED,UAAU;oBACV,IAAI,SAAS,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;wBACpD,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;4BACrC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,0BAA0B,EAAE,SAAS,EAC/D,gBAAgB,CAAC,CAAC,OAAO,yCAAyC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;wBAC/F,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAC;AAEF,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { basename } from "node:path";
2
+ import { MCP_SERVER_FIELDS } from "../contracts.js";
2
3
  import { isRuleEnabled, getRuleSeverity } from "../types.js";
3
4
  import { isKebabCase } from "../utils/kebab-case.js";
4
5
  const RULES = [
@@ -19,9 +20,6 @@ const RULES = [
19
20
  { id: "mcp-json/no-unknown-server-fields", defaultSeverity: "info" },
20
21
  { id: "mcp-json/no-unknown-root-fields", defaultSeverity: "info" },
21
22
  ];
22
- const KNOWN_SERVER_FIELDS = new Set([
23
- "type", "url", "command", "args", "env", "cwd",
24
- ]);
25
23
  function findKeyPosition(content, key) {
26
24
  const re = new RegExp(`"${key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}"\\s*:`);
27
25
  const match = re.exec(content);
@@ -141,7 +139,7 @@ export const mcpJsonLinter = {
141
139
  }
142
140
  // unknown fields
143
141
  for (const key of Object.keys(server)) {
144
- if (!KNOWN_SERVER_FIELDS.has(key)) {
142
+ if (!MCP_SERVER_FIELDS.has(key)) {
145
143
  push(diag(config, filePath, "mcp-json/no-unknown-server-fields", "info", `Server "${name}" has unknown field "${key}"`, sp?.line, sp?.column));
146
144
  }
147
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-json.js","sourceRoot":"","sources":["../../src/linters/mcp-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-json.js","sourceRoot":"","sources":["../../src/linters/mcp-json.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,7 @@
1
1
  import semver from "semver";
2
+ import { PLUGIN_JSON_FIELDS } from "../contracts.js";
2
3
  import { isRuleEnabled, getRuleSeverity } from "../types.js";
3
4
  import { isKebabCase } from "../utils/kebab-case.js";
4
- const KNOWN_FIELDS = new Set([
5
- "name", "version", "description", "author",
6
- "repository", "homepage", "license", "keywords",
7
- ]);
8
5
  const SPDX_COMMON = new Set([
9
6
  "MIT", "Apache-2.0", "GPL-2.0-only", "GPL-3.0-only",
10
7
  "BSD-2-Clause", "BSD-3-Clause", "ISC", "MPL-2.0",
@@ -147,9 +144,9 @@ export const pluginJsonLinter = {
147
144
  }
148
145
  // unknown fields
149
146
  for (const key of Object.keys(parsed)) {
150
- if (!KNOWN_FIELDS.has(key)) {
147
+ if (!PLUGIN_JSON_FIELDS.has(key)) {
151
148
  const p = pos(key);
152
- push(diag(config, filePath, "plugin-json/no-unknown-fields", "info", `Unknown field "${key}" (known: ${[...KNOWN_FIELDS].join(", ")})`, p?.line, p?.column));
149
+ push(diag(config, filePath, "plugin-json/no-unknown-fields", "info", `Unknown field "${key}" (known: ${[...PLUGIN_JSON_FIELDS].join(", ")})`, p?.line, p?.column));
153
150
  }
154
151
  }
155
152
  // license
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-json.js","sourceRoot":"","sources":["../../src/linters/plugin-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-json.js","sourceRoot":"","sources":["../../src/linters/plugin-json.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { basename } from "node:path";
2
+ import { SETTINGS_USER_FIELDS, SETTINGS_PROJECT_FIELDS, TOOLS } from "../contracts.js";
2
3
  import { isRuleEnabled, getRuleSeverity } from "../types.js";
3
4
  const RULES = [
4
5
  { id: "settings-json/valid-json", defaultSeverity: "error" },
@@ -16,23 +17,6 @@ const RULES = [
16
17
  { id: "settings-json/plugins-format", defaultSeverity: "warning" },
17
18
  { id: "settings-json/skip-prompt-boolean", defaultSeverity: "error" },
18
19
  ];
19
- // Fields valid at user level (settings.json)
20
- const USER_FIELDS = new Set([
21
- "env", "permissions", "enabledPlugins",
22
- "skipDangerousModePermissionPrompt", "voiceEnabled",
23
- ]);
24
- // Fields valid at project/subdirectory level (settings.local.json)
25
- const PROJECT_FIELDS = new Set([
26
- "permissions",
27
- ]);
28
- const KNOWN_TOOLS = new Set([
29
- "Read", "Write", "Edit", "Bash", "Glob", "Grep",
30
- "WebFetch", "WebSearch", "Agent", "AskUserQuestion",
31
- "NotebookEdit", "TodoWrite", "EnterPlanMode", "ExitPlanMode",
32
- "Skill", "EnterWorktree", "SendMessage", "TaskCreate",
33
- "TaskUpdate", "TaskGet", "TaskList", "TaskStop", "TaskOutput",
34
- "TeamCreate", "TeamDelete", "NotebookRead",
35
- ]);
36
20
  function findKeyPosition(content, key) {
37
21
  const re = new RegExp(`"${key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}"\\s*:`);
38
22
  const match = re.exec(content);
@@ -81,15 +65,15 @@ export const settingsJsonLinter = {
81
65
  push(diag(config, filePath, "settings-json/scope-file-name", "error", `"settings.json" should only exist at user level (~/.claude/). Use "settings.local.json" for project-level settings`));
82
66
  }
83
67
  // Determine which fields are valid for this scope
84
- const knownFields = (scope === "user" || !scope) ? USER_FIELDS : PROJECT_FIELDS;
68
+ const knownFields = (scope === "user" || !scope) ? SETTINGS_USER_FIELDS : SETTINGS_PROJECT_FIELDS;
85
69
  // unknown/misplaced top-level fields
86
70
  for (const key of Object.keys(parsed)) {
87
71
  if (!knownFields.has(key)) {
88
72
  const p = findKeyPosition(content, key);
89
- if (USER_FIELDS.has(key) && scope && scope !== "user") {
73
+ if (SETTINGS_USER_FIELDS.has(key) && scope && scope !== "user") {
90
74
  push(diag(config, filePath, "settings-json/scope-field", "warning", `"${key}" is a user-level field — it has no effect in project-level settings.local.json`, p?.line, p?.column));
91
75
  }
92
- else if (!USER_FIELDS.has(key)) {
76
+ else if (!SETTINGS_USER_FIELDS.has(key)) {
93
77
  push(diag(config, filePath, "settings-json/no-unknown-fields", "warning", `Unknown top-level field "${key}"`, p?.line, p?.column));
94
78
  }
95
79
  }
@@ -119,7 +103,7 @@ export const settingsJsonLinter = {
119
103
  const toolMatch = entry.match(/^([A-Za-z]+)(\(.*\))?$/);
120
104
  if (toolMatch) {
121
105
  const toolName = toolMatch[1];
122
- if (!KNOWN_TOOLS.has(toolName)) {
106
+ if (!TOOLS.has(toolName)) {
123
107
  // Allow MCP tool patterns (mcp__*)
124
108
  if (!entry.startsWith("mcp__")) {
125
109
  push(diag(config, filePath, "settings-json/allow-known-tools", "warning", `Unknown tool "${toolName}" in permissions.allow`, ap?.line, ap?.column));
@@ -1 +1 @@
1
- {"version":3,"file":"settings-json.js","sourceRoot":"","sources":["../../src/linters/settings-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-json.js","sourceRoot":"","sources":["../../src/linters/settings-json.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { SKILL_FRONTMATTER } from "../contracts.js";
1
2
  import { isRuleEnabled, getRuleSeverity } from "../types.js";
2
3
  import { parseFrontmatter } from "../utils/frontmatter.js";
3
4
  import { isKebabCase } from "../utils/kebab-case.js";
@@ -14,10 +15,6 @@ const RULES = [
14
15
  { id: "skill-md/body-word-count", defaultSeverity: "warning" },
15
16
  { id: "skill-md/body-has-headers", defaultSeverity: "info" },
16
17
  ];
17
- const KNOWN_FRONTMATTER = new Set([
18
- "name", "description", "version", "license",
19
- "allowed-tools", "metadata", "compatibility",
20
- ]);
21
18
  function diag(config, filePath, ruleId, defaultSeverity, message, line, column) {
22
19
  if (!isRuleEnabled(config, ruleId))
23
20
  return null;
@@ -72,8 +69,8 @@ export const skillMdLinter = {
72
69
  }
73
70
  // unknown frontmatter keys
74
71
  for (const key of Object.keys(fm.data)) {
75
- if (!KNOWN_FRONTMATTER.has(key)) {
76
- push(diag(config, filePath, "skill-md/no-unknown-frontmatter", "warning", `Unknown frontmatter key "${key}" (known: ${[...KNOWN_FRONTMATTER].join(", ")})`));
72
+ if (!SKILL_FRONTMATTER.has(key)) {
73
+ push(diag(config, filePath, "skill-md/no-unknown-frontmatter", "warning", `Unknown frontmatter key "${key}" (known: ${[...SKILL_FRONTMATTER].join(", ")})`));
77
74
  }
78
75
  }
79
76
  // body checks
@@ -1 +1 @@
1
- {"version":3,"file":"skill-md.js","sourceRoot":"","sources":["../../src/linters/skill-md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-md.js","sourceRoot":"","sources":["../../src/linters/skill-md.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudecode-linter",
3
- "version": "0.1.0",
3
+ "version": "2.1.70",
4
4
  "description": "Standalone linter for Claude Code plugin artifacts",
5
5
  "type": "module",
6
6
  "bin": {
@@ -15,7 +15,9 @@
15
15
  "prepublishOnly": "npm run build",
16
16
  "deps:check": "ncu",
17
17
  "deps:update": "ncu -u",
18
- "knip": "knip --exclude types"
18
+ "knip": "knip --exclude types",
19
+ "extract-contracts": "tsx scripts/extract-contracts.ts",
20
+ "generate-contracts": "tsx scripts/generate-contracts.ts"
19
21
  },
20
22
  "files": [
21
23
  "dist/",
@@ -45,8 +47,11 @@
45
47
  "devDependencies": {
46
48
  "@types/node": "^25.3.3",
47
49
  "@types/semver": "^7.7.1",
50
+ "acorn": "^8.16.0",
51
+ "acorn-walk": "^8.3.5",
48
52
  "knip": "^5.85.0",
49
53
  "npm-check-updates": "^19.6.3",
54
+ "tsx": "^4.21.0",
50
55
  "typescript": "^5.9.3",
51
56
  "vitest": "4.0.18"
52
57
  }