@tacuchi/agent-workflow-cli 13.1.0 → 14.1.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 (65) hide show
  1. package/README.md +2 -2
  2. package/dist/application/paths-service.d.ts +2 -0
  3. package/dist/application/paths-service.d.ts.map +1 -1
  4. package/dist/application/paths-service.js +4 -0
  5. package/dist/application/paths-service.js.map +1 -1
  6. package/dist/application/plugin-doctor/skills.d.ts.map +1 -1
  7. package/dist/application/plugin-doctor/skills.js +78 -32
  8. package/dist/application/plugin-doctor/skills.js.map +1 -1
  9. package/dist/application/project-tab-data.d.ts +1 -1
  10. package/dist/application/project-tab-data.d.ts.map +1 -1
  11. package/dist/application/project-tab-data.js +4 -4
  12. package/dist/application/project-tab-data.js.map +1 -1
  13. package/dist/application/skill-index-service.d.ts.map +1 -1
  14. package/dist/application/skill-index-service.js +5 -24
  15. package/dist/application/skill-index-service.js.map +1 -1
  16. package/dist/application/skills-resolver-service.d.ts +25 -1
  17. package/dist/application/skills-resolver-service.d.ts.map +1 -1
  18. package/dist/application/skills-resolver-service.js +84 -0
  19. package/dist/application/skills-resolver-service.js.map +1 -1
  20. package/dist/application/source-launch-scripts-service.d.ts +8 -10
  21. package/dist/application/source-launch-scripts-service.d.ts.map +1 -1
  22. package/dist/application/source-launch-scripts-service.js +8 -15
  23. package/dist/application/source-launch-scripts-service.js.map +1 -1
  24. package/dist/application/source-launch-service.d.ts +1 -1
  25. package/dist/application/source-launch-service.d.ts.map +1 -1
  26. package/dist/application/source-launch-service.js +3 -3
  27. package/dist/application/source-launch-service.js.map +1 -1
  28. package/dist/application/source-remove-service.d.ts +1 -1
  29. package/dist/application/source-remove-service.js +3 -3
  30. package/dist/application/source-remove-service.js.map +1 -1
  31. package/dist/application/workspace-init-service.d.ts +1 -1
  32. package/dist/application/workspace-init-service.d.ts.map +1 -1
  33. package/dist/application/workspace-init-service.js +55 -16
  34. package/dist/application/workspace-init-service.js.map +1 -1
  35. package/dist/cli/commands/remove-source.js +1 -1
  36. package/dist/cli/commands/remove-source.js.map +1 -1
  37. package/dist/cli/commands/skills.d.ts.map +1 -1
  38. package/dist/cli/commands/skills.js +8 -2
  39. package/dist/cli/commands/skills.js.map +1 -1
  40. package/dist/cli/tui/data/workflow-content.js +1 -1
  41. package/dist/cli/tui/data/workflow-content.js.map +1 -1
  42. package/dist/cli/tui/tabs/project-tab.js +3 -3
  43. package/dist/cli/tui/tabs/project-tab.js.map +1 -1
  44. package/dist/domain/skill-frontmatter.d.ts +26 -0
  45. package/dist/domain/skill-frontmatter.d.ts.map +1 -0
  46. package/dist/domain/skill-frontmatter.js +141 -0
  47. package/dist/domain/skill-frontmatter.js.map +1 -0
  48. package/dist/domain/skills.d.ts +1 -1
  49. package/dist/domain/skills.d.ts.map +1 -1
  50. package/dist/domain/skills.js +1 -10
  51. package/dist/domain/skills.js.map +1 -1
  52. package/package.json +1 -1
  53. package/skills/w/README.md +3 -3
  54. package/skills/w/SKILL.md +4 -5
  55. package/skills/w/artifacts/README.md +2 -2
  56. package/skills/w/commands/README.md +5 -5
  57. package/skills/w/commands/plan-exec.md +1 -1
  58. package/skills/w/commands/workspace-init.md +1 -1
  59. package/skills/w/exports/README.md +1 -1
  60. package/skills/w/loops/README.md +4 -5
  61. package/skills/w/loops/plan-exec-loop/SKILL.md +15 -18
  62. package/skills/w/loops/quick-loop/SKILL.md +1 -1
  63. package/skills/w/loops/spec-refine-loop/SKILL.md +11 -1
  64. package/skills/w/roles/README.md +4 -7
  65. package/skills/w/roles/tools/SKILL.md +0 -148
package/README.md CHANGED
@@ -16,14 +16,14 @@ The harness has three layers plus a permanent `docs/` zone:
16
16
 
17
17
  - **Layer 1 · Commands** (`/w:*`) — the only thing the user invokes:
18
18
  - **SPEC** — `/w:spec-new` (single-pass draft) → `/w:spec-refine` (gap-driven loop) → `docs/specs/`.
19
- - **PLAN** — `/w:plan-new` → `/w:plan-exec` → `docs/plans/` + `docs/tools/`.
19
+ - **PLAN** — `/w:plan-new` → `/w:plan-exec` → `docs/plans/`.
20
20
  - **QUICK** — `/w:quick` — lightweight shortcut.
21
21
  - **EXPORTS** — `/w:export-scripts` · `export-manuals` · `export-diagrams` · `export-reports` (the only path that promotes artifacts to `docs/`).
22
22
  - **Bootstrap** — `/w:workspace-init` turns any folder into a workspace (1+ sources; no project/hub distinction).
23
23
  - **Layer 2 · Loops** — the AI runs them whole: `spec-refine-loop` (chassis) · `plan-new-loop` · `plan-exec-loop` · `quick-loop`. Each loop is a **persistent goal** that runs until its success criteria are green (verification-first); gap-driven, with **structured-choice** lifecycle control (compact/close — `AskUserQuestion` on Claude Code, numbered markdown elsewhere) and resumable `CHECKPOINT`.
24
24
  - **Layer 3 · Sessions + artifacts** — internal, ephemeral process state under `.workflow/sessions/` (`SESSION` · `CHECKPOINT` · `BACKLOG` · `SCRIPTS.sql` · `ANALYSIS-FILE` · `CONCLUSIONS` · `DECISION` · …). Sessions are slug-named folders, created by loops, never by the user.
25
25
 
26
- **Pluggable capabilities.** Loops compose capability **roles** (`ui-design`, `sql`, `git`, `research`, `tools`, `diagrams`, `overview`); the concrete skill bound to each role is resolved via `.workflow/skills.toml` (cascade: built-in default → `~/.workflow/skills.toml` → workspace). Inspect bindings with `aw skills`. Code/testing/writing conventions are **not** roles — they're ambient skills the host auto-applies when present, independent of the workflow.
26
+ **Pluggable capabilities.** Loops compose capability **roles** (`ui-design`, `sql`, `git`, `research`, `diagrams`, `overview`); the concrete skill bound to each role is resolved via `.workflow/skills.toml` (cascade: built-in default → `~/.workflow/skills.toml` → workspace). Inspect bindings with `aw skills` (advisory: it also warns when a bound skill is not installed in the standard skill roots — the binding itself is not auto-validated). Code/testing/writing conventions **and tool authoring** (`creating-tools`) are **not** roles — they're ambient skills the host auto-applies when present, independent of the workflow. Per-source launch scripts live under `.workflow/launch/` (machine-specific, gitignored); created tools live under `docs/tools/`.
27
27
 
28
28
  **Invariants.** No auto-export (only `export-*` writes `docs/`); the spec and plan are documents, not artifacts; DB scripts-only (never executes DML/DDL); git-safe (verifies the per-source working branch before edits; proposes commits).
29
29
 
@@ -31,6 +31,8 @@ export declare class PathsService {
31
31
  cwdLockFile(): string;
32
32
  /** Persistent registry of detached source processes (machine-specific; gitignored). */
33
33
  cwdProcessesFile(): string;
34
+ /** Per-source launch artifacts (descriptor + run scripts); machine-specific, gitignored. */
35
+ cwdLaunchDir(): string;
34
36
  /** Workspace docs/logs dir — per-process launch logs (gitignored). */
35
37
  cwdDocsLogsDir(): string;
36
38
  userSkillsToml(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"paths-service.d.ts","sourceRoot":"","sources":["../../src/application/paths-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFH,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM;IAG9B,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,sEAAsE;IACtE,YAAY,IAAI,MAAM;IAKtB,QAAQ,IAAI,MAAM;IAGlB,UAAU,IAAI,MAAM;IAGpB,WAAW,IAAI,MAAM;IAGrB,sBAAsB,IAAI,MAAM;IAGhC,WAAW,IAAI,MAAM;IAGrB,gBAAgB,IAAI,MAAM;IAG1B,eAAe,IAAI,MAAM;IAGzB,YAAY,IAAI,MAAM;IAGtB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAG3C,iBAAiB,IAAI,MAAM;IAK3B,OAAO,IAAI,MAAM;IAGjB,cAAc,IAAI,MAAM;IAGxB,cAAc,IAAI,MAAM;IAGxB,UAAU,IAAI,MAAM;IAGpB,UAAU,IAAI,MAAM;IAGpB,WAAW,IAAI,MAAM;IAGrB,uFAAuF;IACvF,gBAAgB,IAAI,MAAM;IAG1B,sEAAsE;IACtE,cAAc,IAAI,MAAM;IAKxB,cAAc,IAAI,MAAM;IAGxB,aAAa,IAAI,MAAM;IAKvB,YAAY,IAAI,mBAAmB;CAOpC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,MAAM,CAAC,CAUjB"}
1
+ {"version":3,"file":"paths-service.d.ts","sourceRoot":"","sources":["../../src/application/paths-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFH,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM;IAG9B,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,sEAAsE;IACtE,YAAY,IAAI,MAAM;IAKtB,QAAQ,IAAI,MAAM;IAGlB,UAAU,IAAI,MAAM;IAGpB,WAAW,IAAI,MAAM;IAGrB,sBAAsB,IAAI,MAAM;IAGhC,WAAW,IAAI,MAAM;IAGrB,gBAAgB,IAAI,MAAM;IAG1B,eAAe,IAAI,MAAM;IAGzB,YAAY,IAAI,MAAM;IAGtB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAG3C,iBAAiB,IAAI,MAAM;IAK3B,OAAO,IAAI,MAAM;IAGjB,cAAc,IAAI,MAAM;IAGxB,cAAc,IAAI,MAAM;IAGxB,UAAU,IAAI,MAAM;IAGpB,UAAU,IAAI,MAAM;IAGpB,WAAW,IAAI,MAAM;IAGrB,uFAAuF;IACvF,gBAAgB,IAAI,MAAM;IAG1B,4FAA4F;IAC5F,YAAY,IAAI,MAAM;IAGtB,sEAAsE;IACtE,cAAc,IAAI,MAAM;IAKxB,cAAc,IAAI,MAAM;IAGxB,aAAa,IAAI,MAAM;IAKvB,YAAY,IAAI,mBAAmB;CAOpC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,MAAM,CAAC,CAUjB"}
@@ -69,6 +69,10 @@ export class PathsService {
69
69
  cwdProcessesFile() {
70
70
  return join(this.cwdRoot(), "processes.json");
71
71
  }
72
+ /** Per-source launch artifacts (descriptor + run scripts); machine-specific, gitignored. */
73
+ cwdLaunchDir() {
74
+ return join(this.cwdRoot(), "launch");
75
+ }
72
76
  /** Workspace docs/logs dir — per-process launch logs (gitignored). */
73
77
  cwdDocsLogsDir() {
74
78
  return join(this.cwd, "docs", "logs");
@@ -1 +1 @@
1
- {"version":3,"file":"paths-service.js","sourceRoot":"","sources":["../../src/application/paths-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths-service.js","sourceRoot":"","sources":["../../src/application/paths-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/application/plugin-doctor/skills.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAwB,MAAM,aAAa,CAAC;AAUlG,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,cAAc,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAqB5B;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,cAAc,GACjB,OAAO,CAAC,iBAAiB,CAAC,CA+B5B;AAED,wBAAsB,iCAAiC,CACrD,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,cAAc,GACjB,OAAO,CAAC,aAAa,EAAE,CAAC,CAgB1B"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/application/plugin-doctor/skills.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAwB,MAAM,aAAa,CAAC;AAUlG,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,cAAc,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAqB5B;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,cAAc,GACjB,OAAO,CAAC,iBAAiB,CAAC,CA+B5B;AAED,wBAAsB,iCAAiC,CACrD,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,cAAc,GACjB,OAAO,CAAC,aAAa,EAAE,CAAC,CAgB1B"}
@@ -1,4 +1,5 @@
1
1
  import { join, relative, sep } from "node:path";
2
+ import { getSkillVersion, parseSkillFrontmatter, } from "../../domain/skill-frontmatter.js";
2
3
  import { collectMarkdownFiles } from "./common.js";
3
4
  const SESSION_SPECIFIC_MARKERS = [
4
5
  "session034",
@@ -15,16 +16,16 @@ export async function checkSkillsFrontmatter(skillsDir, fs) {
15
16
  const skillMd = join(sd, "SKILL.md");
16
17
  const dirName = sd.split(sep).pop() ?? "";
17
18
  const parsed = await parseSkillFile(skillMd, fs);
18
- if (parsed.error) {
19
- findings.push({ level: "error", file: skillMd, msg: parsed.error });
19
+ if (parsed.error || !parsed.fm) {
20
+ findings.push({ level: "error", file: skillMd, msg: parsed.error ?? "invalid frontmatter" });
20
21
  skillsInfo.push({ dir: dirName, name: null, version: null });
21
22
  continue;
22
23
  }
23
- validateSkillFrontmatter(skillMd, dirName, parsed.frontmatter, findings);
24
+ validateSkillFrontmatter(skillMd, dirName, parsed.fm, findings);
24
25
  skillsInfo.push({
25
26
  dir: dirName,
26
- name: parsed.frontmatter.name ?? null,
27
- version: parsed.frontmatter.version ?? null,
27
+ name: parsed.fm.fields.name ?? null,
28
+ version: getSkillVersion(parsed.fm),
28
29
  });
29
30
  }
30
31
  return { skillsCount: skillDirs.length, skillsInfo, findings };
@@ -102,49 +103,94 @@ async function parseSkillFile(skillMd, fs) {
102
103
  content = await fs.readText(skillMd);
103
104
  }
104
105
  catch (e) {
105
- return { frontmatter: {}, error: `cannot read: ${e.message}` };
106
+ return { fm: null, error: `cannot read: ${e.message}` };
106
107
  }
107
- const lines = content.split(/\r?\n/);
108
- if (lines.length === 0 || (lines[0] ?? "").trim() !== "---") {
109
- return { frontmatter: {}, error: "missing frontmatter opening ---" };
110
- }
111
- let endIdx = -1;
112
- for (let i = 1; i < lines.length; i++) {
113
- if ((lines[i] ?? "").trim() === "---") {
114
- endIdx = i;
115
- break;
116
- }
117
- }
118
- if (endIdx === -1) {
119
- return { frontmatter: {}, error: "missing frontmatter closing ---" };
120
- }
121
- const fm = {};
122
- for (let i = 1; i < endIdx; i++) {
123
- const m = (lines[i] ?? "").match(/^(\w+):\s*(.+)$/);
124
- if (m?.[1] && m[2] !== undefined)
125
- fm[m[1]] = m[2].trim();
126
- }
127
- return { frontmatter: fm, error: null };
108
+ const fm = parseSkillFrontmatter(content);
109
+ if (!fm)
110
+ return { fm: null, error: "missing or unclosed frontmatter (---)" };
111
+ return { fm, error: null };
128
112
  }
113
+ // Limits from the Agent Skills standard (agentskills.io/specification).
114
+ const NAME_MAX = 64;
115
+ const DESCRIPTION_MAX = 1024;
116
+ const NAME_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
117
+ const ALLOWED_TOP_LEVEL_KEYS = new Set([
118
+ "name",
119
+ "description",
120
+ "license",
121
+ "allowed-tools",
122
+ "metadata",
123
+ "compatibility",
124
+ ]);
129
125
  function validateSkillFrontmatter(skillMd, dirName, fm, findings) {
130
- const { name, version, description } = fm;
126
+ checkName(skillMd, dirName, fm.fields.name, findings);
127
+ checkDescription(skillMd, fm.fields.description, findings);
128
+ checkTopLevelKeys(skillMd, fm.fields, findings);
129
+ checkVersion(skillMd, getSkillVersion(fm), findings);
130
+ }
131
+ function checkName(skillMd, dirName, name, findings) {
131
132
  if (!name) {
132
133
  findings.push({ level: "error", file: skillMd, msg: "missing 'name' in frontmatter" });
134
+ return;
133
135
  }
134
- else if (name !== dirName) {
136
+ if (name !== dirName) {
135
137
  findings.push({
136
138
  level: "warn",
137
139
  file: skillMd,
138
140
  msg: `frontmatter name '${name}' differs from directory '${dirName}'`,
139
141
  });
140
142
  }
143
+ if (name.length > NAME_MAX) {
144
+ findings.push({
145
+ level: "warn",
146
+ file: skillMd,
147
+ msg: `name is ${name.length} chars; the Agent Skills standard caps it at ${NAME_MAX}`,
148
+ });
149
+ }
150
+ if (!NAME_PATTERN.test(name)) {
151
+ findings.push({
152
+ level: "warn",
153
+ file: skillMd,
154
+ msg: `name '${name}' is not lowercase alphanumeric + single hyphens (no leading/trailing or doubled '-')`,
155
+ });
156
+ }
157
+ }
158
+ function checkDescription(skillMd, description, findings) {
141
159
  if (!description) {
142
160
  findings.push({ level: "error", file: skillMd, msg: "missing 'description' in frontmatter" });
161
+ return;
143
162
  }
144
- if (!version) {
145
- findings.push({ level: "warn", file: skillMd, msg: "missing 'version' in frontmatter" });
163
+ if (description.length > DESCRIPTION_MAX) {
164
+ findings.push({
165
+ level: "warn",
166
+ file: skillMd,
167
+ msg: `description is ${description.length} chars; the Agent Skills standard caps it at ${DESCRIPTION_MAX} — lenient clients truncate the overflow (often the cross-skill 'For X load Y' pointers)`,
168
+ });
146
169
  }
147
- else if (!/^\d+\.\d+\.\d+$/.test(version)) {
170
+ }
171
+ function checkTopLevelKeys(skillMd, fields, findings) {
172
+ if ("version" in fields) {
173
+ findings.push({
174
+ level: "warn",
175
+ file: skillMd,
176
+ msg: "top-level 'version' is non-standard; move it to metadata.version (the Agent Skills standard rejects unknown top-level keys)",
177
+ });
178
+ }
179
+ for (const key of Object.keys(fields)) {
180
+ if (key === "version" || ALLOWED_TOP_LEVEL_KEYS.has(key))
181
+ continue;
182
+ findings.push({
183
+ level: "warn",
184
+ file: skillMd,
185
+ msg: `unknown top-level frontmatter key '${key}'; the Agent Skills standard allows only ${[...ALLOWED_TOP_LEVEL_KEYS].join(", ")} (extra data goes under metadata)`,
186
+ });
187
+ }
188
+ }
189
+ function checkVersion(skillMd, version, findings) {
190
+ // version is OPTIONAL per the Agent Skills standard (metadata.version); only a
191
+ // malformed value is worth a warning. Skills registered in plugin.json
192
+ // exportedSkills still require a version — that is enforced in exported-skills.ts.
193
+ if (version && !/^\d+\.\d+\.\d+$/.test(version)) {
148
194
  findings.push({
149
195
  level: "warn",
150
196
  file: skillMd,
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/application/plugin-doctor/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/application/plugin-doctor/skills.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ export interface ProjectSource {
38
38
  mainBranch: string;
39
39
  dirty: boolean;
40
40
  changedFiles: number;
41
- /** True when a launch descriptor (docs/tools/<alias>/launch.json) exists with a command. */
41
+ /** True when a launch descriptor (.workflow/launch/<alias>/launch.json) exists with a command. */
42
42
  launchable: boolean;
43
43
  }
44
44
  export interface ProjectTabData {
@@ -1 +1 @@
1
- {"version":3,"file":"project-tab-data.d.ts","sourceRoot":"","sources":["../../src/application/project-tab-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-tab-data.d.ts","sourceRoot":"","sources":["../../src/application/project-tab-data.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,7 @@ export async function buildProjectTabData(deps, options = {}) {
46
46
  continue;
47
47
  const branch = await safeRun(`branch:${f.alias}`, () => git.currentBranch(repoPath), warnings, undefined);
48
48
  const changed = await safeRun(`dirty:${f.alias}`, () => git.changedFiles(repoPath), warnings, []);
49
- const launchable = await safeRun(`launchable:${f.alias}`, () => readLaunchable(fs, cwd, f.alias), warnings, false);
49
+ const launchable = await safeRun(`launchable:${f.alias}`, () => readLaunchable(fs, paths.cwdLaunchDir(), f.alias), warnings, false);
50
50
  sources.push({
51
51
  alias: f.alias,
52
52
  path: f.path,
@@ -74,9 +74,9 @@ export async function buildProjectTabData(deps, options = {}) {
74
74
  warnings,
75
75
  };
76
76
  }
77
- /** True when docs/tools/<alias>/launch.json exists and declares a command. */
78
- async function readLaunchable(fs, cwd, alias) {
79
- const file = join(cwd, "docs", "tools", alias, "launch.json");
77
+ /** True when .workflow/launch/<alias>/launch.json exists and declares a command. */
78
+ async function readLaunchable(fs, launchDir, alias) {
79
+ const file = join(launchDir, alias, "launch.json");
80
80
  if (!(await fs.exists(file)))
81
81
  return false;
82
82
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"project-tab-data.js","sourceRoot":"","sources":["../../src/application/project-tab-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-tab-data.js","sourceRoot":"","sources":["../../src/application/project-tab-data.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,EAAE;AACF,+EAA+E;AAC/E,cAAc;AACd,EAAE;AACF,+FAA+F;AAC/F,yCAAyC;AACzC,uDAAuD;AACvD,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,4DAA4D;AAE5D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAK3C,OAAO,EAA2B,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAsB,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAmF3F;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAwB,EACxB,UAAwB,EAAE;IAE1B,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACpD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,KAAK,GAAG,MAAM,OAAO,CACzB,oBAAoB,EACpB,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,EACtC,QAAQ,EACR,IAAiC,CAClC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEvD,qEAAqE;IACrE,MAAM,eAAe,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAClG,MAAM,iBAAiB,GACrB,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACzF,+EAA+E;IAC/E,+EAA+E;IAC/E,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAEhE,yCAAyC;IACzC,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,KAAK,EACL,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,EACvF,QAAQ,EACR,IAAI,CACL,CAAC;IAEF,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,UAAU,EACV,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,EACpE,QAAQ,EACR,EAAqB,CACtB,CAAC;IAEF,qDAAqD;IACrD,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,WAAW,CAAC,CAAC,KAAK,EAAE,EACpB,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC7B,QAAQ,EACR,KAAK,CACN,CAAC;YACF,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,UAAU,CAAC,CAAC,KAAK,EAAE,EACnB,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,EACjC,QAAQ,EACR,SAAS,CACV,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,SAAS,CAAC,CAAC,KAAK,EAAE,EAClB,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,EAChC,QAAQ,EACR,EAAc,CACf,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,OAAO,CAC9B,cAAc,CAAC,CAAC,KAAK,EAAE,EACvB,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EACvD,QAAQ,EACR,KAAK,CACN,CAAC;YACF,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,MAAM,IAAI,IAAI;gBACtB,UAAU,EAAE,CAAC,CAAC,WAAW;gBACzB,KAAK,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;gBACzB,YAAY,EAAE,OAAO,CAAC,MAAM;gBAC5B,UAAU;aACX,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAChF,MAAM,SAAS,GAAG,MAAM,OAAO,CAC7B,WAAW,EACX,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EACrB,QAAQ,EACR,EAAqB,CACtB,CAAC;IAEF,OAAO;QACL,aAAa;QACb,aAAa,EAAE,GAAG;QAClB,WAAW,EAAE,KAAK,KAAK,IAAI;QAC3B,GAAG,EAAE,OAAO;QACZ,QAAQ;QACR,OAAO;QACP,eAAe,EAAE,KAAK,EAAE,gBAAgB,IAAI,EAAE;QAC9C,UAAU,EAAE,KAAK,EAAE,WAAW,IAAI,EAAE;QACpC,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,KAAK,UAAU,cAAc,CAC3B,EAAkB,EAClB,SAAiB,EACjB,KAAa;IAEb,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IACnD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAA0B,CAAC;QAC1E,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,oCAAoC;AAEpC,KAAK,UAAU,YAAY,CACzB,GAAY,EACZ,IAAiB,EACjB,QAAgB,EAChB,UAAkB,EAClB,UAAmB;IAEnB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,gFAAgF;IAChF,8EAA8E;IAC9E,+EAA+E;IAC/E,MAAM,MAAM,GAAG,UAAU,IAAI,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,YAAY,CAAC;IAEjF,iEAAiE;IACjE,MAAM,WAAW,GAAG,MAAM,OAAO,CAC/B,IAAI,EACJ,KAAK,EACL,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,UAAU,MAAM,MAAM,EAAE,CAAC,EAC3E,QAAQ,CACT,CAAC;IACF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACnD,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAChC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3B,SAAS,EAAE,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;oBAAE,MAAM,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,OAAO,CACxB,IAAI,EACJ,KAAK,EACL,CAAC,KAAK,EAAE,IAAI,EAAE,wCAAwC,CAAC,EACvD,QAAQ,CACT,CAAC;IACF,IAAI,UAAU,GAAyB,IAAI,CAAC;IAC5C,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,UAAU,GAAG;gBACX,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACzB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBACf,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;gBAChB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBACjB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,IAAI,EAAE,UAAU;QAChB,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,IAAiB,EACjB,QAAgB,EAChB,KAAa;IAEb,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,IAAI,EACJ,KAAK,EACL;QACE,cAAc;QACd,WAAW,KAAK,GAAG,CAAC,EAAE;QACtB,uBAAuB;QACvB,4FAA4F;QAC5F,YAAY;KACb,EACD,QAAQ,CACT,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,IAAI,QAAQ,CAAC,MAAM,IAAI,KAAK;YAAE,MAAM;IACtC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8BAA8B;AAE9B,KAAK,UAAU,OAAO,CACpB,KAAa,EACb,EAAoB,EACpB,QAAkB,EAClB,QAAW;IAEX,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,IAAiB,EACjB,GAAW,EACX,IAAc,EACd,GAAW;IAEX,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AACxE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAgC;IAC1E,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IAC7C,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjD,OAAO,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAC9C,CAAC;AAED,2EAA2E;AAC3E,KAAK,UAAU,gBAAgB,CAC7B,EAAkB,EAClB,GAAW,EACX,KAAmB;IAEnB,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAE,SAAS;QACvC,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/E,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-index-service.d.ts","sourceRoot":"","sources":["../../src/application/skill-index-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAK9D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAY3B"}
1
+ {"version":3,"file":"skill-index-service.d.ts","sourceRoot":"","sources":["../../src/application/skill-index-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAY3B"}
@@ -1,7 +1,6 @@
1
1
  import { join, posix as posixPath, relative } from "node:path";
2
2
  import { HARNESSES } from "../domain/harnesses.js";
3
- const FRONTMATTER_DELIMITER = "---";
4
- const FRONTMATTER_MAX_LINES = 60;
3
+ import { getSkillVersion, parseSkillFrontmatter } from "../domain/skill-frontmatter.js";
5
4
  export async function runSkillIndex(fs, env, input) {
6
5
  const pluginRoot = input.pluginRoot ?? env.cwd();
7
6
  const pluginName = await readPluginName(fs, pluginRoot);
@@ -44,7 +43,7 @@ async function buildIndex(fs, pluginRoot) {
44
43
  if (!(await fs.exists(skillMd)))
45
44
  continue;
46
45
  const text = await fs.readText(skillMd);
47
- const fm = parseFrontmatter(text);
46
+ const fm = parseSkillFrontmatter(text);
48
47
  const relPath = toPosixRelative(skillMd, pluginRoot);
49
48
  if (!fm) {
50
49
  items.push({
@@ -57,11 +56,11 @@ async function buildIndex(fs, pluginRoot) {
57
56
  });
58
57
  continue;
59
58
  }
60
- const name = fm.name ?? dir.name;
59
+ const name = fm.fields.name ?? dir.name;
61
60
  items.push({
62
61
  name,
63
- description: fm.description ?? null,
64
- version: fm.version ?? null,
62
+ description: fm.fields.description ?? null,
63
+ version: getSkillVersion(fm),
65
64
  exported: false,
66
65
  registry_version: null,
67
66
  since_export: null,
@@ -72,24 +71,6 @@ async function buildIndex(fs, pluginRoot) {
72
71
  items.sort((a, b) => a.name.localeCompare(b.name));
73
72
  return items;
74
73
  }
75
- function parseFrontmatter(text) {
76
- const lines = text.split("\n");
77
- if ((lines[0] ?? "").trim() !== FRONTMATTER_DELIMITER)
78
- return null;
79
- const fm = {};
80
- for (let i = 1; i <= FRONTMATTER_MAX_LINES && i < lines.length; i++) {
81
- const line = lines[i];
82
- if (line === undefined)
83
- return null;
84
- if (line.trim() === FRONTMATTER_DELIMITER)
85
- return fm;
86
- const m = line.match(/^(\w+):\s*(.+)$/);
87
- if (m?.[1] && m[2] !== undefined) {
88
- fm[m[1]] = m[2].trim();
89
- }
90
- }
91
- return null;
92
- }
93
74
  function toPosixRelative(path, base) {
94
75
  const rel = relative(base, path);
95
76
  return rel.split(/[\\/]/).join(posixPath.sep);
@@ -1 +1 @@
1
- {"version":3,"file":"skill-index-service.js","sourceRoot":"","sources":["../../src/application/skill-index-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-index-service.js","sourceRoot":"","sources":["../../src/application/skill-index-service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { type ResolvedSkills } from "../domain/skills.js";
1
+ import { type ResolvedSkills, type SkillBindingSource, type SkillRole } from "../domain/skills.js";
2
+ import type { EnvPort } from "../ports/env.js";
2
3
  import type { FileSystemPort } from "../ports/file-system.js";
3
4
  import type { PathsService } from "./paths-service.js";
4
5
  export interface SkillsResolution {
@@ -19,4 +20,27 @@ export interface SkillsResolution {
19
20
  * and never crash resolution (this runs for every command).
20
21
  */
21
22
  export declare function resolveSkills(fs: FileSystemPort, paths: PathsService): Promise<SkillsResolution>;
23
+ /** One bound role checked against the skills actually installed in the host. */
24
+ export interface BindingCheck {
25
+ role: SkillRole;
26
+ skill: string;
27
+ source: SkillBindingSource;
28
+ installed: boolean;
29
+ }
30
+ export interface BindingValidation {
31
+ checks: BindingCheck[];
32
+ warnings: string[];
33
+ rootsScanned: string[];
34
+ }
35
+ /**
36
+ * Best-effort, ADVISORY check of `skills.toml` bindings against installed skills.
37
+ *
38
+ * The resolver itself never validates that a bound skill exists, and never falls
39
+ * back to the default — a typo'd binding silently leaves the role mute. This scans
40
+ * the standard skill roots (cwd + home × each host's skillsDirs) and warns when a
41
+ * user-set binding names a skill that is neither a built-in default nor found
42
+ * installed. It never blocks: a not-found is a hint, not an error (the skill may
43
+ * live somewhere this scan does not cover).
44
+ */
45
+ export declare function checkInstalledBindings(fs: FileSystemPort, env: EnvPort, resolution: SkillsResolution): Promise<BindingValidation>;
22
46
  //# sourceMappingURL=skills-resolver-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills-resolver-service.d.ts","sourceRoot":"","sources":["../../src/application/skills-resolver-service.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,cAAc,EAGpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,2DAA2D;IAC3D,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,cAAc,EAClB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAkB3B"}
1
+ {"version":3,"file":"skills-resolver-service.d.ts","sourceRoot":"","sources":["../../src/application/skills-resolver-service.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,cAAc,EAEnB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,2DAA2D;IAC3D,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,cAAc,EAClB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAkB3B;AA+BD,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAID;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,gBAAgB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAyB5B"}
@@ -1,4 +1,7 @@
1
+ import { join } from "node:path";
1
2
  import { parse as parseToml } from "smol-toml";
3
+ import { HARNESSES } from "../domain/harnesses.js";
4
+ import { parseSkillFrontmatter } from "../domain/skill-frontmatter.js";
2
5
  import { BUILTIN_DEFAULT_SKILLS, SKILL_ROLES, isSkillRole, } from "../domain/skills.js";
3
6
  const OFF = "off";
4
7
  /**
@@ -52,6 +55,87 @@ async function readSkillsTable(fs, path, warnings) {
52
55
  return null;
53
56
  }
54
57
  }
58
+ const BUILTIN_SKILL_NAMES = new Set(Object.values(BUILTIN_DEFAULT_SKILLS));
59
+ /**
60
+ * Best-effort, ADVISORY check of `skills.toml` bindings against installed skills.
61
+ *
62
+ * The resolver itself never validates that a bound skill exists, and never falls
63
+ * back to the default — a typo'd binding silently leaves the role mute. This scans
64
+ * the standard skill roots (cwd + home × each host's skillsDirs) and warns when a
65
+ * user-set binding names a skill that is neither a built-in default nor found
66
+ * installed. It never blocks: a not-found is a hint, not an error (the skill may
67
+ * live somewhere this scan does not cover).
68
+ */
69
+ export async function checkInstalledBindings(fs, env, resolution) {
70
+ const roots = skillRoots(env);
71
+ const installed = await enumerateInstalledSkills(fs, roots);
72
+ const checks = [];
73
+ const warnings = [];
74
+ for (const role of SKILL_ROLES) {
75
+ const r = resolution.skills[role];
76
+ if (!r.enabled || r.skill === null || r.source === "default")
77
+ continue;
78
+ const skill = r.skill;
79
+ if (BUILTIN_SKILL_NAMES.has(skill)) {
80
+ checks.push({ role, skill, source: r.source, installed: true });
81
+ continue;
82
+ }
83
+ const leaf = skill.includes("/") ? (skill.split("/").pop() ?? skill) : skill;
84
+ const installedHere = installed.has(skill) || installed.has(leaf);
85
+ checks.push({ role, skill, source: r.source, installed: installedHere });
86
+ if (!installedHere) {
87
+ warnings.push(`role '${role}' is bound to '${skill}' (${r.source}) but no installed skill by that name was found in the standard skill roots (${roots.join(", ")}). The binding is advisory — the CLI does not auto-fallback. Install it (e.g. \`npx skills add <owner/repo>\`) or fix the name; if it lives elsewhere, ignore this.`);
88
+ }
89
+ }
90
+ return { checks, warnings, rootsScanned: roots };
91
+ }
92
+ /** cwd + home crossed with every host's skill directory (deduped). */
93
+ function skillRoots(env) {
94
+ const dirs = [...new Set(HARNESSES.flatMap((h) => [...h.skillsDirs]))];
95
+ const roots = [];
96
+ for (const d of dirs) {
97
+ roots.push(join(env.cwd(), d));
98
+ roots.push(join(env.homeDir(), d));
99
+ }
100
+ return [...new Set(roots)];
101
+ }
102
+ /** Collect the names of skills installed under the given roots (dir name + frontmatter name). */
103
+ async function enumerateInstalledSkills(fs, roots) {
104
+ const names = new Set();
105
+ for (const root of roots) {
106
+ await collectNamesFromRoot(fs, root, names);
107
+ }
108
+ return names;
109
+ }
110
+ async function collectNamesFromRoot(fs, root, names) {
111
+ if (!(await fs.exists(root)))
112
+ return;
113
+ let entries;
114
+ try {
115
+ entries = await fs.list(root);
116
+ }
117
+ catch {
118
+ return;
119
+ }
120
+ for (const entry of entries) {
121
+ if (entry.type !== "dir")
122
+ continue;
123
+ names.add(entry.name);
124
+ await addFrontmatterName(fs, join(entry.path, "SKILL.md"), names);
125
+ }
126
+ }
127
+ async function addFrontmatterName(fs, skillMd, names) {
128
+ if (!(await fs.exists(skillMd)))
129
+ return;
130
+ try {
131
+ const fm = parseSkillFrontmatter(await fs.readText(skillMd));
132
+ if (fm?.fields.name)
133
+ names.add(fm.fields.name);
134
+ }
135
+ catch {
136
+ // ignore unreadable skill files
137
+ }
138
+ }
55
139
  /** Merge one cascade level's `[skills]` table onto the resolved bindings. */
56
140
  function applyLevel(skills, table, source, path, warnings) {
57
141
  for (const [key, value] of Object.entries(table)) {
@@ -1 +1 @@
1
- {"version":3,"file":"skills-resolver-service.js","sourceRoot":"","sources":["../../src/application/skills-resolver-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills-resolver-service.js","sourceRoot":"","sources":["../../src/application/skills-resolver-service.ts"],"names":[],"mappings":"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"}