@phamvuhoang/otto-core 0.24.0 → 0.26.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.
Files changed (47) hide show
  1. package/dist/cli-help.d.ts +6 -0
  2. package/dist/cli-help.d.ts.map +1 -1
  3. package/dist/cli-help.js +15 -1
  4. package/dist/cli-help.js.map +1 -1
  5. package/dist/context-compressor.d.ts +30 -10
  6. package/dist/context-compressor.d.ts.map +1 -1
  7. package/dist/context-compressor.js +77 -43
  8. package/dist/context-compressor.js.map +1 -1
  9. package/dist/headroom-adapter.d.ts +8 -1
  10. package/dist/headroom-adapter.d.ts.map +1 -1
  11. package/dist/headroom-adapter.js +14 -0
  12. package/dist/headroom-adapter.js.map +1 -1
  13. package/dist/index.d.ts +5 -4
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +5 -4
  16. package/dist/index.js.map +1 -1
  17. package/dist/loop.d.ts +6 -0
  18. package/dist/loop.d.ts.map +1 -1
  19. package/dist/loop.js +17 -1
  20. package/dist/loop.js.map +1 -1
  21. package/dist/render.d.ts +1 -0
  22. package/dist/render.d.ts.map +1 -1
  23. package/dist/render.js +5 -2
  24. package/dist/render.js.map +1 -1
  25. package/dist/run-bin.d.ts.map +1 -1
  26. package/dist/run-bin.js +6 -0
  27. package/dist/run-bin.js.map +1 -1
  28. package/dist/runner.d.ts +4 -1
  29. package/dist/runner.d.ts.map +1 -1
  30. package/dist/runner.js.map +1 -1
  31. package/dist/skill-validation.d.ts +155 -0
  32. package/dist/skill-validation.d.ts.map +1 -0
  33. package/dist/skill-validation.js +376 -0
  34. package/dist/skill-validation.js.map +1 -0
  35. package/dist/skills-cli.d.ts +7 -0
  36. package/dist/skills-cli.d.ts.map +1 -1
  37. package/dist/skills-cli.js +80 -2
  38. package/dist/skills-cli.js.map +1 -1
  39. package/dist/skills.d.ts +40 -4
  40. package/dist/skills.d.ts.map +1 -1
  41. package/dist/skills.js +43 -1
  42. package/dist/skills.js.map +1 -1
  43. package/dist/stage-exec.d.ts +7 -0
  44. package/dist/stage-exec.d.ts.map +1 -1
  45. package/dist/stage-exec.js +31 -1
  46. package/dist/stage-exec.js.map +1 -1
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ import { type Skill, type SkillCompatibility } from "./skills.js";
2
+ /**
3
+ * Skill compatibility & validation gate (issue #113 P17). Before an imported or
4
+ * repo-authored skill is eligible to influence a live run, it must pass a gate:
5
+ * static manifest lint, frontmatter/capability extraction, license/provenance
6
+ * checks (this slice, #132), an instruction-risk scan (#133), and a derived
7
+ * compatibility class persisted back to `skill.json` (#134).
8
+ *
9
+ * This module is **pure** — no fs, no model, deterministic over a {@link Skill}
10
+ * value — mirroring `skills.ts`/`safety-policy.ts`. The bin reads a skill, runs
11
+ * {@link validateSkill}, and prints the report; persistence and selection are
12
+ * separate concerns layered on later. Validation never makes a skill eligible by
13
+ * itself: "validated" means "passed the gate", not "auto-applied".
14
+ */
15
+ /** Severity of one validation finding. `error` blocks; `warn`/`info` advise. */
16
+ export type SkillCheckSeverity = "error" | "warn" | "info";
17
+ /** Which axis of the gate a finding came from. */
18
+ export type SkillCheckKind = "manifest" | "provenance" | "risk";
19
+ /**
20
+ * One validation finding. `rule` is the stable check id (for tests + remediation
21
+ * lookup); `message` says what is wrong; `remediation` says how to fix it — the
22
+ * issue's "failures explain the exact blocker + remediation path".
23
+ */
24
+ export type SkillCheckFinding = {
25
+ kind: SkillCheckKind;
26
+ severity: SkillCheckSeverity;
27
+ rule: string;
28
+ message: string;
29
+ remediation: string;
30
+ };
31
+ /** The aggregate result of validating one skill. */
32
+ export type SkillValidationReport = {
33
+ /** Skill name validated. */
34
+ skill: string;
35
+ /** Capabilities extracted from the manifest + instruction frontmatter. */
36
+ capabilities: string[];
37
+ findings: SkillCheckFinding[];
38
+ /**
39
+ * True when no `error`-severity finding fired AND no applicable behavior drill
40
+ * failed — the skill clears the gate.
41
+ */
42
+ ok: boolean;
43
+ /** Derived compatibility class (issue #134). */
44
+ compatibility: SkillCompatibility;
45
+ /** Stages a `stage-scoped` skill is valid for; empty otherwise. */
46
+ stages: string[];
47
+ /** sha256 of the instruction body validated (for drift detection, #135). */
48
+ checksum: string;
49
+ /** Behavior-drill outcomes (issue #135). */
50
+ drills: DrillResult[];
51
+ };
52
+ /** sha256 of a skill's instruction body, hex. The hash domain matches the */
53
+ /** imported-package checksum in `external-skills.ts` so drift compares cleanly. */
54
+ export declare function skillChecksum(instructions: string): string;
55
+ /**
56
+ * Derive a {@link SkillCompatibility} class from a validation report (issue
57
+ * #134), as a priority ladder: an error-severity finding → `blocked` (cannot be
58
+ * applied anywhere); an interactive hard stop → `interactive-only` (needs a human,
59
+ * so AFK-unsafe even when otherwise valid); capabilities that imply specific
60
+ * stages → `stage-scoped` (with the stage list); otherwise `afk-safe`. Pure.
61
+ */
62
+ export declare function classifyCompatibility(report: SkillValidationReport): {
63
+ compatibility: SkillCompatibility;
64
+ stages: string[];
65
+ };
66
+ /**
67
+ * Static manifest/schema lint. Checks the structural invariants a usable skill
68
+ * package must hold: a filesystem-safe name, a non-empty instruction body, at
69
+ * least one capability (the retrieval key), and a set version. Returns one
70
+ * finding per broken rule; a well-formed manifest yields `[]`.
71
+ */
72
+ export declare function lintManifest(skill: Skill): SkillCheckFinding[];
73
+ /**
74
+ * Extract the skill's effective capabilities: the manifest `capabilities` plus
75
+ * any declared in a leading frontmatter block in the instruction body (skill
76
+ * packs often carry `capabilities:` there). De-duplicated, manifest order first.
77
+ */
78
+ export declare function extractCapabilities(skill: Skill): string[];
79
+ /**
80
+ * License/provenance check. For an imported skill (has `provenance`): the
81
+ * upstream ref must be pinned and a license declared, and when an explicit
82
+ * `--source` is given it must match the recorded source. For a repo-authored
83
+ * skill (no provenance) there is nothing external to check — but asserting a
84
+ * `--source` against it is an error, since it was never imported.
85
+ */
86
+ export declare function checkProvenance(skill: Skill, source?: string): SkillCheckFinding[];
87
+ /**
88
+ * Scan a skill's instruction body for the six P17 risk categories (issue #133):
89
+ * unsafe shell advice, secret handling, network use, interactive hard stops,
90
+ * unsupported tool assumptions, and conflicting hierarchy (a skill trying to
91
+ * overrule repo policy). Each finding names the exact matched phrase and a
92
+ * remediation. Pure, deterministic, conservative — benign guidance yields `[]`.
93
+ */
94
+ export declare function scanInstructionRisks(instructions: string): SkillCheckFinding[];
95
+ /**
96
+ * A small behavior drill (issue #135): a declarative expectation about how a
97
+ * skill of a given kind must classify. Drills are the cheap, deterministic half
98
+ * of "static rules + small behavioral drills" — they assert that an imported
99
+ * methodology lands in a usable, non-contradictory class for its intended stage,
100
+ * without paying for a model run. `appliesTo` (any-match against the skill's
101
+ * capabilities) decides whether a drill is in scope for a skill.
102
+ */
103
+ export type SkillDrill = {
104
+ name: string;
105
+ description: string;
106
+ /** Capabilities that bring this drill into scope (any-match). */
107
+ appliesTo: string[];
108
+ /** Compatibility classes this drill accepts. */
109
+ expectClassIn: SkillCompatibility[];
110
+ /** Finding rules that must NOT be present for the drill to pass. */
111
+ forbidRules: string[];
112
+ };
113
+ /** One drill's outcome against a report. */
114
+ export type DrillResult = {
115
+ drill: string;
116
+ /** Whether the drill was in scope for this skill. */
117
+ applied: boolean;
118
+ /** True when not applied, or applied and satisfied. */
119
+ passed: boolean;
120
+ detail: string;
121
+ };
122
+ /**
123
+ * The standard drills from the roadmap (issue #135): a Superpowers planning/TDD
124
+ * drill (the methodology must be usable, not interactive-only/blocked), a PM
125
+ * roadmap/PRD drill (must scope to the plan stage), and a review drill (a review
126
+ * skill must not try to overrule repo policy).
127
+ */
128
+ export declare const STANDARD_DRILLS: SkillDrill[];
129
+ /**
130
+ * Run behavior drills against a validation report (issue #135). A drill applies
131
+ * when the skill declares one of its `appliesTo` capabilities; an applied drill
132
+ * passes when the report's class is in `expectClassIn` and none of its
133
+ * `forbidRules` fired. A non-applicable drill is reported `applied: false,
134
+ * passed: true` so it never blocks an unrelated skill. Pure, deterministic.
135
+ */
136
+ export declare function runDrills(report: SkillValidationReport, drills?: SkillDrill[]): DrillResult[];
137
+ /**
138
+ * Whether a statically-validated skill must be revalidated before reuse (issue
139
+ * #135). True when the skill carries a recorded `instructionsChecksum` (it was
140
+ * validated) but its current body no longer hashes to it — the skill drifted
141
+ * (e.g. an upstream re-sync changed it) since the gate last ran. A skill that was
142
+ * never statically validated has nothing to revalidate, so this is false. Pure.
143
+ */
144
+ export declare function needsRevalidation(skill: Skill): boolean;
145
+ /**
146
+ * Run the full static gate over one skill and aggregate the result: manifest
147
+ * lint, capability extraction, provenance check (#132), instruction-risk scan
148
+ * (#133), derived compatibility class (#134), and behavior drills (#135). `ok` is
149
+ * false when any `error`-severity finding fired OR an applicable drill failed.
150
+ * Pure — the caller decides whether to persist or print the report.
151
+ */
152
+ export declare function validateSkill(skill: Skill, opts?: {
153
+ source?: string;
154
+ }): SkillValidationReport;
155
+ //# sourceMappingURL=skill-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-validation.d.ts","sourceRoot":"","sources":["../src/skill-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,376 @@
1
+ import { createHash } from "node:crypto";
2
+ import { parseFrontmatter } from "./external-skills.js";
3
+ import { toSkillName } from "./skills.js";
4
+ /** sha256 of a skill's instruction body, hex. The hash domain matches the */
5
+ /** imported-package checksum in `external-skills.ts` so drift compares cleanly. */
6
+ export function skillChecksum(instructions) {
7
+ return createHash("sha256").update(instructions).digest("hex");
8
+ }
9
+ /**
10
+ * Map one capability tag to the stage it scopes to, or null when it does not
11
+ * imply a specific stage (a general capability → afk-safe, not stage-scoped).
12
+ * Mirrors the P18 stage capability tags in the roadmap.
13
+ */
14
+ const CAPABILITY_STAGE = new Map([
15
+ ["planning", "plan"],
16
+ ["roadmap-planning", "plan"],
17
+ ["prd", "plan"],
18
+ ["prioritization", "plan"],
19
+ ["problem-framing", "plan"],
20
+ ["discovery", "plan"],
21
+ ["tdd", "implement"],
22
+ ["coding", "implement"],
23
+ ["refactor", "implement"],
24
+ ["code-review", "review"],
25
+ ["review", "review"],
26
+ ["security", "review"],
27
+ ["structural", "review"],
28
+ ["reporting", "report"],
29
+ ["report", "report"],
30
+ ["journal", "journal"],
31
+ ["context-engineering", "tool-output"],
32
+ ["compression", "tool-output"],
33
+ ]);
34
+ /** The stages a skill's capabilities imply (sorted, de-duplicated). */
35
+ function impliedStages(capabilities) {
36
+ const stages = new Set();
37
+ for (const cap of capabilities) {
38
+ const stage = CAPABILITY_STAGE.get(cap.toLowerCase());
39
+ if (stage)
40
+ stages.add(stage);
41
+ }
42
+ return [...stages].sort();
43
+ }
44
+ /**
45
+ * Derive a {@link SkillCompatibility} class from a validation report (issue
46
+ * #134), as a priority ladder: an error-severity finding → `blocked` (cannot be
47
+ * applied anywhere); an interactive hard stop → `interactive-only` (needs a human,
48
+ * so AFK-unsafe even when otherwise valid); capabilities that imply specific
49
+ * stages → `stage-scoped` (with the stage list); otherwise `afk-safe`. Pure.
50
+ */
51
+ export function classifyCompatibility(report) {
52
+ if (report.findings.some((f) => f.severity === "error")) {
53
+ return { compatibility: "blocked", stages: [] };
54
+ }
55
+ if (report.findings.some((f) => f.rule === "interactive-hard-stop")) {
56
+ return { compatibility: "interactive-only", stages: [] };
57
+ }
58
+ const stages = impliedStages(report.capabilities);
59
+ if (stages.length > 0) {
60
+ return { compatibility: "stage-scoped", stages };
61
+ }
62
+ return { compatibility: "afk-safe", stages: [] };
63
+ }
64
+ /**
65
+ * Static manifest/schema lint. Checks the structural invariants a usable skill
66
+ * package must hold: a filesystem-safe name, a non-empty instruction body, at
67
+ * least one capability (the retrieval key), and a set version. Returns one
68
+ * finding per broken rule; a well-formed manifest yields `[]`.
69
+ */
70
+ export function lintManifest(skill) {
71
+ const findings = [];
72
+ if (toSkillName(skill.name) !== skill.name) {
73
+ findings.push({
74
+ kind: "manifest",
75
+ severity: "error",
76
+ rule: "name-slug",
77
+ message: `name "${skill.name}" is not a filesystem-safe slug`,
78
+ remediation: `rename the package to "${toSkillName(skill.name)}"`,
79
+ });
80
+ }
81
+ if (skill.instructions.trim().length === 0) {
82
+ findings.push({
83
+ kind: "manifest",
84
+ severity: "error",
85
+ rule: "empty-instructions",
86
+ message: "the skill has no instruction body",
87
+ remediation: "add the procedure to instructions.md",
88
+ });
89
+ }
90
+ if (skill.capabilities.length === 0) {
91
+ findings.push({
92
+ kind: "manifest",
93
+ severity: "warn",
94
+ rule: "no-capabilities",
95
+ message: "no capabilities declared — retrieval cannot key on this skill",
96
+ remediation: "declare capability tags (e.g. planning, tdd, code-review)",
97
+ });
98
+ }
99
+ if (skill.version === "0.0.0" || skill.version.trim().length === 0) {
100
+ findings.push({
101
+ kind: "manifest",
102
+ severity: "warn",
103
+ rule: "unversioned",
104
+ message: `version "${skill.version}" looks unset`,
105
+ remediation: "set a real version so drift and revalidation can be tracked",
106
+ });
107
+ }
108
+ return findings;
109
+ }
110
+ /**
111
+ * Extract the skill's effective capabilities: the manifest `capabilities` plus
112
+ * any declared in a leading frontmatter block in the instruction body (skill
113
+ * packs often carry `capabilities:` there). De-duplicated, manifest order first.
114
+ */
115
+ export function extractCapabilities(skill) {
116
+ const out = [...skill.capabilities];
117
+ const { fields } = parseFrontmatter(skill.instructions);
118
+ const raw = fields.capabilities;
119
+ if (raw) {
120
+ for (const cap of raw
121
+ .replace(/^\[|\]$/g, "")
122
+ .split(",")
123
+ .map((s) => s.trim().replace(/^["']|["']$/g, ""))
124
+ .filter((s) => s.length > 0)) {
125
+ if (!out.includes(cap))
126
+ out.push(cap);
127
+ }
128
+ }
129
+ return out;
130
+ }
131
+ /**
132
+ * License/provenance check. For an imported skill (has `provenance`): the
133
+ * upstream ref must be pinned and a license declared, and when an explicit
134
+ * `--source` is given it must match the recorded source. For a repo-authored
135
+ * skill (no provenance) there is nothing external to check — but asserting a
136
+ * `--source` against it is an error, since it was never imported.
137
+ */
138
+ export function checkProvenance(skill, source) {
139
+ const findings = [];
140
+ const p = skill.provenance;
141
+ if (!p) {
142
+ if (source !== undefined) {
143
+ findings.push({
144
+ kind: "provenance",
145
+ severity: "error",
146
+ rule: "not-imported",
147
+ message: `--source "${source}" was given but "${skill.name}" is repo-authored (no provenance)`,
148
+ remediation: "drop --source, or import the skill via otto-skills sync",
149
+ });
150
+ }
151
+ return findings;
152
+ }
153
+ if (source !== undefined && p.source !== source) {
154
+ findings.push({
155
+ kind: "provenance",
156
+ severity: "error",
157
+ rule: "source-mismatch",
158
+ message: `--source "${source}" does not match recorded source "${p.source}"`,
159
+ remediation: `validate with --source ${p.source}, or re-import from ${source}`,
160
+ });
161
+ }
162
+ if (!p.upstreamRef) {
163
+ findings.push({
164
+ kind: "provenance",
165
+ severity: "warn",
166
+ rule: "unpinned-ref",
167
+ message: `imported "${skill.name}" has no pinned upstream ref`,
168
+ remediation: "pin the source: otto-skills sources add <name> <url> --ref <sha-or-tag>",
169
+ });
170
+ }
171
+ if (!p.license) {
172
+ findings.push({
173
+ kind: "provenance",
174
+ severity: "warn",
175
+ rule: "missing-license",
176
+ message: `imported "${skill.name}" declares no license`,
177
+ remediation: "add a license: field to the upstream SKILL.md and re-sync",
178
+ });
179
+ }
180
+ return findings;
181
+ }
182
+ const RISK_PATTERNS = [
183
+ // Unsafe shell advice — destructive or self-elevating commands.
184
+ {
185
+ rule: "unsafe-shell",
186
+ severity: "error",
187
+ re: /\brm\s+-[a-z]*[rf][a-z]*\s+(?:-[a-z]+\s+)*(?:\/|~|\$\w|\*)/i,
188
+ message: (h) => `destructive delete in shell advice: "${h.trim()}"`,
189
+ remediation: "scope deletes to a named path; never rm -rf / ~ or $VAR",
190
+ },
191
+ {
192
+ rule: "unsafe-shell",
193
+ severity: "error",
194
+ re: /\b(?:curl|wget)\b[^\n|]*\|\s*(?:sudo\s+)?(?:ba|z|da|)sh\b/i,
195
+ message: (h) => `pipes a download straight into a shell: "${h.trim()}"`,
196
+ remediation: "download, inspect, then run — never pipe a fetch into a shell",
197
+ },
198
+ {
199
+ rule: "unsafe-shell",
200
+ severity: "error",
201
+ re: /\bsudo\s+\S+/i,
202
+ message: (h) => `requires elevated privileges: "${h.trim()}"`,
203
+ remediation: "AFK runs unprivileged; remove sudo and operate in the workspace",
204
+ },
205
+ {
206
+ rule: "unsafe-shell",
207
+ severity: "error",
208
+ re: /\bchmod\s+(?:-[a-z]+\s+)*777\b/i,
209
+ message: (h) => `world-writable permissions: "${h.trim()}"`,
210
+ remediation: "grant least-privilege permissions instead of 777",
211
+ },
212
+ // Secret handling — printing/echoing/logging credentials.
213
+ {
214
+ rule: "secret-handling",
215
+ severity: "error",
216
+ re: /\b(?:echo|print|printf|cat|log|paste|export)\b[^\n]{0,40}\b(?:[A-Z0-9_]*(?:SECRET|PASSWORD|API[_-]?KEY|TOKEN|CREDENTIAL)[A-Z0-9_]*)\b/i,
217
+ message: (h) => `exposes a secret: "${h.trim()}"`,
218
+ remediation: "never echo/log secrets; read them from the environment only",
219
+ },
220
+ // Network use — fetch commands that AFK policy may forbid.
221
+ {
222
+ rule: "network-use",
223
+ severity: "warn",
224
+ re: /\b(?:curl|wget|nc|netcat|ssh|scp|telnet)\s+\S+/i,
225
+ message: (h) => `performs network I/O: "${h.trim()}"`,
226
+ remediation: "AFK network is policy-scoped; declare needed domains in .otto/policy.json or avoid the call",
227
+ },
228
+ // Interactive hard stops — block AFK, mark the skill interactive-only.
229
+ {
230
+ rule: "interactive-hard-stop",
231
+ severity: "warn",
232
+ re: /\b(?:ask|prompt|wait for|confirm with|check with|get approval from)\b[^\n]{0,20}\b(?:the\s+)?(?:user|human|operator|reviewer)\b|\bdo not proceed until\b|\bSTOP and (?:ask|wait)\b|\bwait for (?:confirmation|approval|input)\b/i,
233
+ message: (h) => `requires human interaction: "${h.trim()}"`,
234
+ remediation: "provide an autonomous default for AFK, or classify the skill interactive-only",
235
+ },
236
+ // Unsupported tool assumptions — GUI/IDE/browser the AFK runtime lacks.
237
+ {
238
+ rule: "unsupported-tool",
239
+ severity: "warn",
240
+ re: /\b(?:open your browser|in your IDE|open .{0,20}in (?:vs ?code|the editor)|click (?:the|on)|drag and drop|take a screenshot)\b/i,
241
+ message: (h) => `assumes an interactive tool the AFK runtime lacks: "${h.trim()}"`,
242
+ remediation: "replace GUI/IDE steps with CLI/file operations",
243
+ },
244
+ // Conflicting hierarchy — attempts to overrule repo policy / prior context.
245
+ {
246
+ rule: "conflicting-hierarchy",
247
+ severity: "error",
248
+ re: /\b(?:ignore|disregard|override|bypass|forget)\b[^\n]{0,30}\b(?:previous|prior|above|all)?\s*(?:instructions?|system prompt|repo policy|safety|policy|agents\.md|rules?)\b/i,
249
+ message: (h) => `tries to overrule the instruction hierarchy: "${h.trim()}"`,
250
+ remediation: "skills are advisory; remove overrule language — repo policy and stage contracts win",
251
+ },
252
+ ];
253
+ /**
254
+ * Scan a skill's instruction body for the six P17 risk categories (issue #133):
255
+ * unsafe shell advice, secret handling, network use, interactive hard stops,
256
+ * unsupported tool assumptions, and conflicting hierarchy (a skill trying to
257
+ * overrule repo policy). Each finding names the exact matched phrase and a
258
+ * remediation. Pure, deterministic, conservative — benign guidance yields `[]`.
259
+ */
260
+ export function scanInstructionRisks(instructions) {
261
+ const findings = [];
262
+ for (const p of RISK_PATTERNS) {
263
+ const m = p.re.exec(instructions);
264
+ if (m) {
265
+ findings.push({
266
+ kind: "risk",
267
+ severity: p.severity,
268
+ rule: p.rule,
269
+ message: p.message(m[0]),
270
+ remediation: p.remediation,
271
+ });
272
+ }
273
+ }
274
+ return findings;
275
+ }
276
+ /**
277
+ * The standard drills from the roadmap (issue #135): a Superpowers planning/TDD
278
+ * drill (the methodology must be usable, not interactive-only/blocked), a PM
279
+ * roadmap/PRD drill (must scope to the plan stage), and a review drill (a review
280
+ * skill must not try to overrule repo policy).
281
+ */
282
+ export const STANDARD_DRILLS = [
283
+ {
284
+ name: "planning-tdd-usable",
285
+ description: "a planning/TDD skill must be applicable, not interactive-only or blocked",
286
+ appliesTo: ["planning", "tdd"],
287
+ expectClassIn: ["afk-safe", "stage-scoped"],
288
+ forbidRules: [],
289
+ },
290
+ {
291
+ name: "pm-roadmap-prd-stage-scoped",
292
+ description: "a PM roadmap/PRD skill must scope to a stage (plan), not be blocked",
293
+ appliesTo: ["roadmap-planning", "prd"],
294
+ expectClassIn: ["stage-scoped", "afk-safe"],
295
+ forbidRules: [],
296
+ },
297
+ {
298
+ name: "review-respects-policy",
299
+ description: "a review skill must not try to overrule repo policy",
300
+ appliesTo: ["code-review", "review"],
301
+ expectClassIn: ["stage-scoped", "afk-safe"],
302
+ forbidRules: ["conflicting-hierarchy"],
303
+ },
304
+ ];
305
+ /**
306
+ * Run behavior drills against a validation report (issue #135). A drill applies
307
+ * when the skill declares one of its `appliesTo` capabilities; an applied drill
308
+ * passes when the report's class is in `expectClassIn` and none of its
309
+ * `forbidRules` fired. A non-applicable drill is reported `applied: false,
310
+ * passed: true` so it never blocks an unrelated skill. Pure, deterministic.
311
+ */
312
+ export function runDrills(report, drills = STANDARD_DRILLS) {
313
+ const caps = new Set(report.capabilities.map((c) => c.toLowerCase()));
314
+ return drills.map((drill) => {
315
+ const applied = drill.appliesTo.some((c) => caps.has(c.toLowerCase()));
316
+ if (!applied) {
317
+ return {
318
+ drill: drill.name,
319
+ applied: false,
320
+ passed: true,
321
+ detail: "not in scope",
322
+ };
323
+ }
324
+ const classOk = drill.expectClassIn.includes(report.compatibility);
325
+ const firedForbidden = drill.forbidRules.filter((r) => report.findings.some((f) => f.rule === r));
326
+ const passed = classOk && firedForbidden.length === 0;
327
+ const detail = passed
328
+ ? `class ${report.compatibility} accepted`
329
+ : !classOk
330
+ ? `class ${report.compatibility} not in {${drill.expectClassIn.join(", ")}}`
331
+ : `forbidden finding(s): ${firedForbidden.join(", ")}`;
332
+ return { drill: drill.name, applied: true, passed, detail };
333
+ });
334
+ }
335
+ /**
336
+ * Whether a statically-validated skill must be revalidated before reuse (issue
337
+ * #135). True when the skill carries a recorded `instructionsChecksum` (it was
338
+ * validated) but its current body no longer hashes to it — the skill drifted
339
+ * (e.g. an upstream re-sync changed it) since the gate last ran. A skill that was
340
+ * never statically validated has nothing to revalidate, so this is false. Pure.
341
+ */
342
+ export function needsRevalidation(skill) {
343
+ const recorded = skill.validation.instructionsChecksum;
344
+ if (!recorded)
345
+ return false;
346
+ return skillChecksum(skill.instructions) !== recorded;
347
+ }
348
+ /**
349
+ * Run the full static gate over one skill and aggregate the result: manifest
350
+ * lint, capability extraction, provenance check (#132), instruction-risk scan
351
+ * (#133), derived compatibility class (#134), and behavior drills (#135). `ok` is
352
+ * false when any `error`-severity finding fired OR an applicable drill failed.
353
+ * Pure — the caller decides whether to persist or print the report.
354
+ */
355
+ export function validateSkill(skill, opts = {}) {
356
+ const findings = [
357
+ ...lintManifest(skill),
358
+ ...checkProvenance(skill, opts.source),
359
+ ...scanInstructionRisks(skill.instructions),
360
+ ];
361
+ const base = {
362
+ skill: skill.name,
363
+ capabilities: extractCapabilities(skill),
364
+ findings,
365
+ ok: !findings.some((f) => f.severity === "error"),
366
+ compatibility: "afk-safe",
367
+ stages: [],
368
+ checksum: skillChecksum(skill.instructions),
369
+ drills: [],
370
+ };
371
+ const { compatibility, stages } = classifyCompatibility(base);
372
+ const drills = runDrills({ ...base, compatibility, stages });
373
+ const ok = base.ok && drills.every((d) => d.passed);
374
+ return { ...base, compatibility, stages, drills, ok };
375
+ }
376
+ //# sourceMappingURL=skill-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-validation.js","sourceRoot":"","sources":["../src/skill-validation.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type ExternalAuditFinding, type ExternalSkillSource, type SyncPlan } from "./external-skills.js";
2
+ import { type SkillValidationReport } from "./skill-validation.js";
2
3
  import { type Skill, type SkillCandidate, type SkillMatch } from "./skills.js";
3
4
  /**
4
5
  * Injectable host surface for {@link runSkills} so the bin stays unit-testable
@@ -32,6 +33,12 @@ export declare function formatCandidates(candidates: SkillCandidate[]): string;
32
33
  export declare function formatSources(sources: ExternalSkillSource[]): string;
33
34
  /** Render a sync plan; `dryRun` flips the header between preview and applied. Pure. */
34
35
  export declare function formatSyncPlan(plan: SyncPlan, dryRun: boolean): string;
36
+ /**
37
+ * Render a skill validation report (issue #113 P17): the extracted capabilities,
38
+ * each finding with its severity/rule/message/remediation, and a pass/fail line.
39
+ * Pure — the bin decides the exit code from `report.ok`.
40
+ */
41
+ export declare function formatValidationReport(report: SkillValidationReport): string;
35
42
  /** Render the external-registry audit findings. Pure. */
36
43
  export declare function formatExternalAudit(findings: ExternalAuditFinding[]): string;
37
44
  /**