mewkit 1.16.1 → 1.18.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 (83) hide show
  1. package/dist/commands/build-plugin.d.ts +6 -0
  2. package/dist/commands/build-plugin.d.ts.map +1 -1
  3. package/dist/commands/build-plugin.js +3 -3
  4. package/dist/commands/build-plugin.js.map +1 -1
  5. package/dist/commands/plan.d.ts +7 -0
  6. package/dist/commands/plan.d.ts.map +1 -0
  7. package/dist/commands/plan.js +124 -0
  8. package/dist/commands/plan.js.map +1 -0
  9. package/dist/commands/providers.js +15 -0
  10. package/dist/commands/providers.js.map +1 -1
  11. package/dist/commands/validate.d.ts +9 -1
  12. package/dist/commands/validate.d.ts.map +1 -1
  13. package/dist/commands/validate.js +93 -1
  14. package/dist/commands/validate.js.map +1 -1
  15. package/dist/core/build-inventory.d.ts +25 -0
  16. package/dist/core/build-inventory.d.ts.map +1 -1
  17. package/dist/core/build-inventory.js +83 -2
  18. package/dist/core/build-inventory.js.map +1 -1
  19. package/dist/core/capability.d.ts +24 -24
  20. package/dist/core/check-agent-conformance.d.ts +14 -0
  21. package/dist/core/check-agent-conformance.d.ts.map +1 -0
  22. package/dist/core/check-agent-conformance.js +127 -0
  23. package/dist/core/check-agent-conformance.js.map +1 -0
  24. package/dist/core/check-docs-references.d.ts.map +1 -1
  25. package/dist/core/check-docs-references.js +6 -0
  26. package/dist/core/check-docs-references.js.map +1 -1
  27. package/dist/core/check-gate-authority.d.ts +40 -0
  28. package/dist/core/check-gate-authority.d.ts.map +1 -0
  29. package/dist/core/check-gate-authority.js +313 -0
  30. package/dist/core/check-gate-authority.js.map +1 -0
  31. package/dist/core/check-generic-core-tokens.d.ts +12 -0
  32. package/dist/core/check-generic-core-tokens.d.ts.map +1 -0
  33. package/dist/core/check-generic-core-tokens.js +67 -0
  34. package/dist/core/check-generic-core-tokens.js.map +1 -0
  35. package/dist/core/check-operation-conformance.d.ts +27 -0
  36. package/dist/core/check-operation-conformance.d.ts.map +1 -0
  37. package/dist/core/check-operation-conformance.js +91 -0
  38. package/dist/core/check-operation-conformance.js.map +1 -0
  39. package/dist/core/check-plugin-parity.d.ts +15 -0
  40. package/dist/core/check-plugin-parity.d.ts.map +1 -0
  41. package/dist/core/check-plugin-parity.js +130 -0
  42. package/dist/core/check-plugin-parity.js.map +1 -0
  43. package/dist/core/check-pseudo-capabilities.d.ts +15 -0
  44. package/dist/core/check-pseudo-capabilities.d.ts.map +1 -0
  45. package/dist/core/check-pseudo-capabilities.js +89 -0
  46. package/dist/core/check-pseudo-capabilities.js.map +1 -0
  47. package/dist/core/check-stale-index.d.ts.map +1 -1
  48. package/dist/core/check-stale-index.js +7 -0
  49. package/dist/core/check-stale-index.js.map +1 -1
  50. package/dist/core/check-workflow-drift.d.ts +9 -4
  51. package/dist/core/check-workflow-drift.d.ts.map +1 -1
  52. package/dist/core/check-workflow-drift.js +33 -29
  53. package/dist/core/check-workflow-drift.js.map +1 -1
  54. package/dist/core/plan-parser.d.ts +40 -0
  55. package/dist/core/plan-parser.d.ts.map +1 -0
  56. package/dist/core/plan-parser.js +126 -0
  57. package/dist/core/plan-parser.js.map +1 -0
  58. package/dist/core/plugin-payload.d.ts.map +1 -1
  59. package/dist/core/plugin-payload.js +9 -0
  60. package/dist/core/plugin-payload.js.map +1 -1
  61. package/dist/core/provider-adapter.d.ts +4 -0
  62. package/dist/core/provider-adapter.d.ts.map +1 -1
  63. package/dist/core/provider-adapter.js +2 -0
  64. package/dist/core/provider-adapter.js.map +1 -1
  65. package/dist/core/provider-operations.d.ts +51 -0
  66. package/dist/core/provider-operations.d.ts.map +1 -0
  67. package/dist/core/provider-operations.js +171 -0
  68. package/dist/core/provider-operations.js.map +1 -0
  69. package/dist/core/substrate.d.ts +2 -2
  70. package/dist/core/substrate.d.ts.map +1 -1
  71. package/dist/core/substrate.js +3 -4
  72. package/dist/core/substrate.js.map +1 -1
  73. package/dist/index.js +18 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/migrate/model-taxonomy.d.ts +32 -0
  76. package/dist/migrate/model-taxonomy.d.ts.map +1 -1
  77. package/dist/migrate/model-taxonomy.js +59 -0
  78. package/dist/migrate/model-taxonomy.js.map +1 -1
  79. package/dist/migrate/providers/codex/capabilities.d.ts.map +1 -1
  80. package/dist/migrate/providers/codex/capabilities.js +6 -0
  81. package/dist/migrate/providers/codex/capabilities.js.map +1 -1
  82. package/dist/migrate/reconcile/portable-registry.d.ts +6 -6
  83. package/package.json +2 -2
@@ -0,0 +1,126 @@
1
+ // Shared read-only parser for the canonical plan shape.
2
+ //
3
+ // tasks/plans/YYMMDD-name/
4
+ // plan.md — overview, ≤80 lines (gate-rules.md → Plan Shape)
5
+ // phase-XX-name.md — the executable detail
6
+ //
7
+ // READ-ONLY BY CONSTRUCTION. This module imports `readFileSync`/`existsSync` and
8
+ // nothing that writes — no `writeFileSync`, no `mkdirSync`, no `rmSync`. That is
9
+ // the enforcement, not a convention: the plan Markdown is the sole authority, and
10
+ // a CLI that could edit it would become a second one. Checkboxes are the progress
11
+ // record; this reads them and says what it sees.
12
+ //
13
+ // It reports what the files SAY. It does not judge whether a phase is truly done
14
+ // — an unchecked box on finished work and a checked box on unfinished work are
15
+ // both real states the plan owner reconciles, not the parser.
16
+ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
17
+ import path from "node:path";
18
+ /** Required sections in a phase file (documentation-management.md → Phase Files). */
19
+ export const REQUIRED_PHASE_SECTIONS = [
20
+ "Overview",
21
+ "Requirements",
22
+ "Implementation Steps",
23
+ "Success Criteria",
24
+ "Risk Assessment",
25
+ ];
26
+ /** Extract the YAML frontmatter block as raw lines, or [] when absent. */
27
+ function frontmatterLines(body) {
28
+ if (!body.startsWith("---"))
29
+ return [];
30
+ const end = body.indexOf("\n---", 3);
31
+ if (end === -1)
32
+ return [];
33
+ return body.slice(4, end).split("\n");
34
+ }
35
+ /** A scalar frontmatter field. Quotes stripped; nothing clever — plans are hand-written. */
36
+ function field(fm, key) {
37
+ const line = fm.find((l) => l.trimStart().startsWith(`${key}:`));
38
+ if (!line)
39
+ return null;
40
+ const raw = line.slice(line.indexOf(":") + 1).trim();
41
+ return raw.replace(/^["']|["']$/g, "") || null;
42
+ }
43
+ /** An inline-array frontmatter field (`dependencies: [1, 2]`). */
44
+ function arrayField(fm, key) {
45
+ const raw = field(fm, key);
46
+ if (!raw)
47
+ return [];
48
+ const inner = raw.replace(/^\[|\]$/g, "").trim();
49
+ if (!inner)
50
+ return [];
51
+ return inner.split(",").map((s) => s.trim().replace(/^["']|["']$/g, "")).filter(Boolean);
52
+ }
53
+ /** Count `- [ ]` / `- [x]` task boxes. */
54
+ function checklist(body) {
55
+ const boxes = body.match(/^\s*[-*]\s+\[[ xX]\]/gm) ?? [];
56
+ const checked = boxes.filter((b) => /\[[xX]\]/.test(b)).length;
57
+ return { total: boxes.length, checked };
58
+ }
59
+ /** Parse one phase file. Throws only if the file is unreadable. */
60
+ export function parsePhaseFile(abs) {
61
+ const body = readFileSync(abs, "utf-8");
62
+ const fm = frontmatterLines(body);
63
+ const sections = (body.match(/^##\s+(.+)$/gm) ?? []).map((h) => h.replace(/^##\s+/, "").trim());
64
+ // A heading matches when the required name appears in it — real plans write
65
+ // "## Risk Assessment" but also "## Success Criteria (Phase 2)".
66
+ const missingSections = REQUIRED_PHASE_SECTIONS.filter((req) => !sections.some((s) => s.toLowerCase().includes(req.toLowerCase())));
67
+ return {
68
+ file: path.basename(abs),
69
+ title: field(fm, "title"),
70
+ status: field(fm, "status"),
71
+ phase: field(fm, "phase"),
72
+ dependencies: arrayField(fm, "dependencies"),
73
+ sections,
74
+ missingSections,
75
+ checklist: checklist(body),
76
+ };
77
+ }
78
+ /** Phase files in a plan dir, sorted by filename (which encodes phase order). */
79
+ export function listPhaseFiles(planDir) {
80
+ if (!existsSync(planDir) || !statSync(planDir).isDirectory())
81
+ return [];
82
+ return readdirSync(planDir)
83
+ .filter((f) => /^phase-\d+.*\.md$/.test(f))
84
+ .sort()
85
+ .map((f) => path.join(planDir, f));
86
+ }
87
+ /**
88
+ * Parse a plan directory into a summary.
89
+ *
90
+ * `issues` names what a reader should know before trusting the numbers — a
91
+ * missing plan.md, an over-length overview, a phase with no checklist. They are
92
+ * observations, not verdicts: this is an inspector, and Gate 1 belongs to the human.
93
+ */
94
+ export function parsePlan(planDir) {
95
+ const issues = [];
96
+ const planMd = path.join(planDir, "plan.md");
97
+ const planMdPresent = existsSync(planMd);
98
+ let title = null;
99
+ let status = null;
100
+ let planMdLines = 0;
101
+ if (planMdPresent) {
102
+ const body = readFileSync(planMd, "utf-8");
103
+ const fm = frontmatterLines(body);
104
+ title = field(fm, "title");
105
+ status = field(fm, "status");
106
+ planMdLines = body.split("\n").length;
107
+ // gate-rules.md → Plan Shape: "plan.md is the overview entrypoint and stays
108
+ // under 80 lines". Reported, never enforced — the CLI does not gate.
109
+ if (planMdLines > 80)
110
+ issues.push(`plan.md is ${planMdLines} lines (overview should stay under 80)`);
111
+ }
112
+ else {
113
+ issues.push("no plan.md — Gate 1 expects one at the plan root");
114
+ }
115
+ const phases = listPhaseFiles(planDir).map(parsePhaseFile);
116
+ if (phases.length === 0)
117
+ issues.push("no phase-XX-*.md files found");
118
+ for (const p of phases) {
119
+ if (p.missingSections.length > 0) {
120
+ issues.push(`${p.file} is missing: ${p.missingSections.join(", ")}`);
121
+ }
122
+ }
123
+ const aggregate = phases.reduce((acc, p) => ({ total: acc.total + p.checklist.total, checked: acc.checked + p.checklist.checked }), { total: 0, checked: 0 });
124
+ return { dir: planDir, title, status, planMdPresent, planMdLines, phases, checklist: aggregate, issues };
125
+ }
126
+ //# sourceMappingURL=plan-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-parser.js","sourceRoot":"","sources":["../../src/core/plan-parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-payload.d.ts","sourceRoot":"","sources":["../../src/core/plugin-payload.ts"],"names":[],"mappings":"AAqBA,OAAO,EAIN,KAAK,cAAc,EACnB,MAAM,sBAAsB,CAAC;AAuB9B,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC7D,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,cAAc,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,GAAG,qBAAqB,CAyDzF;AA4CD,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAK5D"}
1
+ {"version":3,"file":"plugin-payload.d.ts","sourceRoot":"","sources":["../../src/core/plugin-payload.ts"],"names":[],"mappings":"AAqBA,OAAO,EAIN,KAAK,cAAc,EACnB,MAAM,sBAAsB,CAAC;AAwB9B,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC7D,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,cAAc,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,GAAG,qBAAqB,CAkEzF;AA4CD,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAK5D"}
@@ -11,6 +11,7 @@ import { extname, join, relative } from "node:path";
11
11
  import { buildClaudePluginJson, buildCodexPluginJson, PLUGIN_NAME, } from "./plugin-manifest.js";
12
12
  import { collectAgentNames, rewriteAgentRefs } from "./plugin-agent-refs.js";
13
13
  import { buildPluginHooks, readSettingsHooks } from "./plugin-hooks.js";
14
+ import { findPseudoCapabilities, formatPseudoCapabilityError } from "./check-pseudo-capabilities.js";
14
15
  /** File extensions whose contents are scanned for agent references. */
15
16
  const TEXT_EXTENSIONS = new Set([
16
17
  ".md",
@@ -81,6 +82,14 @@ export function generatePluginPayload(opts) {
81
82
  refsRewritten += count;
82
83
  }
83
84
  }
85
+ // Reject unresolved pseudo-capability aliases in the PROJECTED tree, before the
86
+ // manifests are written. Scanning the output (not the source) is deliberate: it
87
+ // catches placeholders that survived projection, including any this build step
88
+ // itself could introduce. A payload carrying broken instructions must not ship.
89
+ const pseudo = findPseudoCapabilities(opts.outDir);
90
+ if (pseudo.length > 0) {
91
+ throw new Error(formatPseudoCapabilityError(pseudo));
92
+ }
84
93
  // Write both runtime plugin manifests into the plugin root.
85
94
  writeManifest(join(opts.outDir, ".claude-plugin", "plugin.json"), buildClaudePluginJson(opts));
86
95
  writeManifest(join(opts.outDir, ".codex-plugin", "plugin.json"), buildCodexPluginJson(opts));
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-payload.js","sourceRoot":"","sources":["../../src/core/plugin-payload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-payload.js","sourceRoot":"","sources":["../../src/core/plugin-payload.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { type ProviderProjection } from "./provider-projection.js";
2
2
  import { type AcquisitionDescriptor } from "./repo-context-adapter.js";
3
3
  import { type LifecycleMap, type LifecycleEvent, type EnforcementGap } from "./provider-lifecycle.js";
4
4
  import { type InvocationShapeMap } from "./provider-invocation.js";
5
+ import { type OperationShapeMap } from "./provider-operations.js";
5
6
  export interface ProviderAdapterView {
6
7
  provider: string;
7
8
  /** Aggregate: `supported` (projection supported) · `partial` · `report-only` (no projection). */
@@ -18,6 +19,9 @@ export interface ProviderAdapterView {
18
19
  enforcementGaps: EnforcementGap[];
19
20
  /** Logical invocation id → the provider-native operation shape (adapter-owned constants). */
20
21
  invocation: InvocationShapeMap;
22
+ /** Logical workflow operation → its shape here. Distinct from `invocation`: these are named
23
+ * in skill PROSE and are deliberately NOT frontmatter-reachable (see provider-operations.ts). */
24
+ operations: OperationShapeMap;
21
25
  /** Where durable task state lives for this provider. */
22
26
  storageBoundary: string;
23
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider-adapter.d.ts","sourceRoot":"","sources":["../../src/core/provider-adapter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAkD,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACtJ,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAExF,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrC,6FAA6F;IAC7F,UAAU,EAAE,kBAAkB,CAAC;IAC/B,uEAAuE;IACvE,WAAW,EAAE,qBAAqB,CAAC;IACnC,qDAAqD;IACrD,SAAS,EAAE,YAAY,CAAC;IACxB,wFAAwF;IACxF,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,6FAA6F;IAC7F,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,6FAA6F;IAC7F,UAAU,EAAE,kBAAkB,CAAC;IAC/B,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAC;CACxB;AAOD,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAatE;AAED,wFAAwF;AACxF,eAAO,MAAM,iBAAiB,oDAAqD,CAAC"}
1
+ {"version":3,"file":"provider-adapter.d.ts","sourceRoot":"","sources":["../../src/core/provider-adapter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAkD,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACtJ,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrC,6FAA6F;IAC7F,UAAU,EAAE,kBAAkB,CAAC;IAC/B,uEAAuE;IACvE,WAAW,EAAE,qBAAqB,CAAC;IACnC,qDAAqD;IACrD,SAAS,EAAE,YAAY,CAAC;IACxB,wFAAwF;IACxF,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,6FAA6F;IAC7F,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,6FAA6F;IAC7F,UAAU,EAAE,kBAAkB,CAAC;IAC/B;qGACiG;IACjG,UAAU,EAAE,iBAAiB,CAAC;IAC9B,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAC;CACxB;AAOD,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CActE;AAED,wFAAwF;AACxF,eAAO,MAAM,iBAAiB,oDAAqD,CAAC"}
@@ -7,6 +7,7 @@ import { getProjection } from "./provider-projection.js";
7
7
  import { getAcquisitionDescriptor } from "./repo-context-adapter.js";
8
8
  import { getLifecycleMap, gatingEvents, enforcementGaps } from "./provider-lifecycle.js";
9
9
  import { getInvocationShapes } from "./provider-invocation.js";
10
+ import { getOperationShapes } from "./provider-operations.js";
10
11
  /** Task-state storage boundary. Identical across providers by P4 decision #2: task records are the
11
12
  * CONSUMER PROJECT's state (`<cwd>/tasks/active`), never plugin-owned data — so a plugin install
12
13
  * does NOT relocate them to ${CLAUDE_PLUGIN_DATA}. */
@@ -23,6 +24,7 @@ export function describeProvider(provider) {
23
24
  gatingEvents: gatingEvents(provider),
24
25
  enforcementGaps: enforcementGaps(provider),
25
26
  invocation: getInvocationShapes(provider),
27
+ operations: getOperationShapes(provider),
26
28
  storageBoundary: STORAGE_BOUNDARY,
27
29
  };
28
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider-adapter.js","sourceRoot":"","sources":["../../src/core/provider-adapter.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,2FAA2F;AAC3F,4FAA4F;AAC5F,+FAA+F;AAC/F,gGAAgG;AAChG,OAAO,EAAE,aAAa,EAA2B,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAA8B,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAA+D,MAAM,yBAAyB,CAAC;AACtJ,OAAO,EAAE,mBAAmB,EAA2B,MAAM,0BAA0B,CAAC;AAsBxF;;sDAEsD;AACtD,MAAM,gBAAgB,GAAG,mEAAmE,CAAC;AAE7F,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAChD,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO;QACN,QAAQ;QACR,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,UAAU;QACV,WAAW,EAAE,wBAAwB,CAAC,QAAQ,CAAC;QAC/C,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC;QACpC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC;QACpC,eAAe,EAAE,eAAe,CAAC,QAAQ,CAAC;QAC1C,UAAU,EAAE,mBAAmB,CAAC,QAAQ,CAAC;QACzC,eAAe,EAAE,gBAAgB;KACjC,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,CAAU,CAAC"}
1
+ {"version":3,"file":"provider-adapter.js","sourceRoot":"","sources":["../../src/core/provider-adapter.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,2FAA2F;AAC3F,4FAA4F;AAC5F,+FAA+F;AAC/F,gGAAgG;AAChG,OAAO,EAAE,aAAa,EAA2B,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAA8B,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAA+D,MAAM,yBAAyB,CAAC;AACtJ,OAAO,EAAE,mBAAmB,EAA2B,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAA0B,MAAM,0BAA0B,CAAC;AAyBtF;;sDAEsD;AACtD,MAAM,gBAAgB,GAAG,mEAAmE,CAAC;AAE7F,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAChD,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO;QACN,QAAQ;QACR,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,UAAU;QACV,WAAW,EAAE,wBAAwB,CAAC,QAAQ,CAAC;QAC/C,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC;QACpC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC;QACpC,eAAe,EAAE,eAAe,CAAC,QAAQ,CAAC;QAC1C,UAAU,EAAE,mBAAmB,CAAC,QAAQ,CAAC;QACzC,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC;QACxC,eAAe,EAAE,gBAAgB;KACjC,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,CAAU,CAAC"}
@@ -0,0 +1,51 @@
1
+ /** The four portable workflow operations a skill's prose may refer to. */
2
+ export declare const LOGICAL_OPERATIONS: readonly ["ask_user", "manage_plan", "run_shell", "delegate_agent"];
3
+ export type LogicalOperation = (typeof LOGICAL_OPERATIONS)[number];
4
+ /**
5
+ * Per-operation conformance state.
6
+ * - `supported` — the host exposes a real primitive for it.
7
+ * - `unsupported` — it does not, and there is no fallback. Say so; do not pretend.
8
+ * - `permission-blocked`— the primitive exists but the host's policy denies it here.
9
+ * - `local-fallback` — no host primitive; the kit degrades to a disclosed substitute.
10
+ * - `unknown` — no tested projection for this provider. Claims nothing.
11
+ */
12
+ export type OperationSupport = "supported" | "unsupported" | "permission-blocked" | "local-fallback" | "unknown";
13
+ export interface OperationShape {
14
+ /** The provider-native operation, described — never a runnable string. */
15
+ operation: string;
16
+ support: OperationSupport;
17
+ /** Citable in-repo/runtime proof, matching provider-lifecycle.ts's evidence convention. */
18
+ evidence: string;
19
+ /** Set ONLY for `local-fallback`: what happens instead. An undisclosed fallback is a lie. */
20
+ fallback: string | null;
21
+ }
22
+ export type OperationShapeMap = Record<LogicalOperation, OperationShape>;
23
+ /**
24
+ * What an operation may NEVER do, regardless of provider support.
25
+ *
26
+ * Host support answers "can this run here". Authority answers "may it". A host
27
+ * that happily exposes a task-writing tool does not thereby grant permission to
28
+ * write gate-approval state — capability is not authority, and conflating the two
29
+ * is how an automated step ends up approving its own gate.
30
+ */
31
+ export interface OperationAuthority {
32
+ mayNot: string;
33
+ rationale: string;
34
+ }
35
+ export declare const OPERATION_AUTHORITY: Record<LogicalOperation, OperationAuthority>;
36
+ /** The operation map for a provider, or an all-`unknown` report-only fallback. */
37
+ export declare function getOperationShapes(provider: string): OperationShapeMap;
38
+ /** The shape for one operation on a provider (unknown-fallback if unrecognized). */
39
+ export declare function getOperationShape(provider: string, operation: string): OperationShape;
40
+ /** True when `name` is one of the four logical operations. */
41
+ export declare function isLogicalOperation(name: string): name is LogicalOperation;
42
+ /**
43
+ * The anti-smuggling invariant, enforced rather than documented: no logical
44
+ * operation may ever appear in the frontmatter-reachable invocation enum.
45
+ *
46
+ * Called by `validate`; also covered by a unit test. If someone "helpfully" adds
47
+ * `run_shell` to KNOWN_INVOCATION_IDS to make a skill resolve, this fails loudly
48
+ * instead of silently handing author-controlled frontmatter a shell.
49
+ */
50
+ export declare function assertOperationsNotInvocable(): string[];
51
+ //# sourceMappingURL=provider-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-operations.d.ts","sourceRoot":"","sources":["../../src/core/provider-operations.ts"],"names":[],"mappings":"AAyCA,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,qEAAsE,CAAC;AACtG,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,aAAa,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAEjH,MAAM,WAAW,cAAc;IAC9B,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,2FAA2F;IAC3F,QAAQ,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAsB5E,CAAC;AAuFF,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAEtE;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAUrF;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,gBAAgB,CAEzE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAOvD"}
@@ -0,0 +1,171 @@
1
+ // Per-provider LOGICAL WORKFLOW OPERATIONS — the second trusted adapter table.
2
+ //
3
+ // ─── Why this is NOT a second capability schema ──────────────────────────────
4
+ // It reuses the existing provider/diagnostics plumbing (same provider keys as
5
+ // provider-invocation.ts / provider-projection.ts, surfaced through the existing
6
+ // `doctor --providers` and `validate --portable` commands). It adds no manifest
7
+ // field, no CLI command, and no user-authored file. It is consumed ONLY by
8
+ // adapter code resolving operations named in skill PROSE.
9
+ //
10
+ // ─── Why frontmatter can never reach it ──────────────────────────────────────
11
+ // `capability.ts` keeps a closed enum, KNOWN_INVOCATION_IDS, for exactly one
12
+ // reason: a capability's `invocation.id` comes from FRONTMATTER, which is
13
+ // author-controlled and therefore hostile-input. Restricting it to a closed set
14
+ // of logical ids means hostile frontmatter can name an id at most — never smuggle
15
+ // an executable string. provider-invocation.ts is the seam that maps those ids to
16
+ // provider-native operations.
17
+ //
18
+ // The four operations here — `ask_user`, `manage_plan`, `run_shell`,
19
+ // `delegate_agent` — MUST NOT join that enum. `run_shell` and `delegate_agent`
20
+ // are precisely the strings the enum exists to keep out of frontmatter's reach:
21
+ // admitting them would hand author-controlled input a name for "execute a shell
22
+ // command" and "spawn an agent". The enum's value is entirely in what it EXCLUDES,
23
+ // so growing it to be convenient dissolves it.
24
+ //
25
+ // These names are therefore keyed off a SEPARATE type that frontmatter never
26
+ // indexes, and `assertOperationsNotInvocable()` fails the build if the two sets
27
+ // ever intersect. That is enforcement, not documentation — see the test.
28
+ //
29
+ // Mapping of the capability model vs these operations:
30
+ //
31
+ // | Layer | Source | Trust | Reachable from frontmatter |
32
+ // |----------------------|------------------|------------|----------------------------|
33
+ // | invocation.id | capability YAML | hostile | YES — closed enum only |
34
+ // | InvocationShape | adapter constant | trusted | no (mapped from id) |
35
+ // | LogicalOperation | skill prose | hostile | NO — never id-indexed |
36
+ // | OperationShape | adapter constant | trusted | no (mapped from operation) |
37
+ //
38
+ // Prose naming an operation is resolved by adapter code, never executed from the
39
+ // name. Descriptors below are DESCRIPTIVE (what the host does), not runnable.
40
+ import { KNOWN_INVOCATION_IDS } from "./capability.js";
41
+ /** The four portable workflow operations a skill's prose may refer to. */
42
+ export const LOGICAL_OPERATIONS = ["ask_user", "manage_plan", "run_shell", "delegate_agent"];
43
+ export const OPERATION_AUTHORITY = {
44
+ ask_user: {
45
+ mayNot: "Synthesize, infer, or default an answer the human did not give.",
46
+ rationale: "The value of asking is that a human answered. A fabricated answer is worse than no answer: it looks like consent.",
47
+ },
48
+ manage_plan: {
49
+ mayNot: "Create or flip Gate 1 / Gate 2 approval state.",
50
+ rationale: "gate-rules.md requires that a human explicitly typed approval. An operation that can write approval state lets automation approve its own work. Reading plan state and writing non-gate fields is fine.",
51
+ },
52
+ run_shell: {
53
+ mayNot: "Be named by capability frontmatter, or be reached from any author-controlled string.",
54
+ rationale: "This is the exact string KNOWN_INVOCATION_IDS exists to keep out of hostile frontmatter's reach.",
55
+ },
56
+ delegate_agent: {
57
+ mayNot: "Spawn a reviewer/evaluator to produce a verdict outside the orchestrated flow, or bypass the orchestrator boundary.",
58
+ rationale: "orchestration-rules.md routes delegation through the orchestrator. A skill that could spawn its own evaluator could manufacture the verdict that authorizes its own ship.",
59
+ },
60
+ };
61
+ // ─── Per-provider mappings ───────────────────────────────────────────────────
62
+ // Trusted constants. As with provider-projection.ts, they must never over-claim:
63
+ // assert `supported` only where the host really exposes the primitive.
64
+ // Claude Code exposes each of these as a typed tool in the current runtime.
65
+ const CLAUDE_CODE_OPERATIONS = {
66
+ ask_user: {
67
+ operation: "AskUserQuestion tool",
68
+ support: "supported",
69
+ evidence: "typed AskUserQuestion tool in the Claude Code runtime",
70
+ fallback: null,
71
+ },
72
+ manage_plan: {
73
+ operation: "TaskCreate / TaskUpdate / TaskList tools, plus plan files under tasks/plans/",
74
+ support: "supported",
75
+ evidence: "typed Task tools in the Claude Code runtime; plan files on disk",
76
+ fallback: null,
77
+ },
78
+ run_shell: {
79
+ operation: "Bash tool",
80
+ support: "supported",
81
+ evidence: "typed Bash tool in the Claude Code runtime",
82
+ fallback: null,
83
+ },
84
+ delegate_agent: {
85
+ operation: "Agent/Task tool (by agent type)",
86
+ support: "supported",
87
+ evidence: "typed Agent/Task tool; mirrors invoke-agent in provider-invocation.ts",
88
+ fallback: null,
89
+ },
90
+ };
91
+ const CLAUDE_PLUGIN_OPERATIONS = { ...CLAUDE_CODE_OPERATIONS };
92
+ // Codex reaches skills/commands/agents through instruction/prompt projection rather
93
+ // than typed invoke tools (see provider-projection.ts: codex invocable = advisory).
94
+ // Prompt projection is not a primitive: the model may comply or not. Anything that
95
+ // depends on a typed tool is therefore NOT `supported` here.
96
+ const CODEX_OPERATIONS = {
97
+ ask_user: {
98
+ operation: "question asked inline in the assistant's prose",
99
+ support: "local-fallback",
100
+ evidence: "no typed prompt primitive; codex surfaces are prompt-projected (provider-projection.ts)",
101
+ fallback: "The agent asks in prose and waits. There is no structured option list and no host guarantee that the turn actually blocks.",
102
+ },
103
+ manage_plan: {
104
+ operation: "plan files under tasks/plans/ (no typed task tool)",
105
+ support: "local-fallback",
106
+ evidence: "no typed Task tool on codex; plan files are plain files the kit already writes",
107
+ fallback: "Plan state lives only in files. Nothing enforces that the agent updates them.",
108
+ },
109
+ run_shell: {
110
+ operation: "codex shell execution",
111
+ support: "unknown",
112
+ evidence: "no in-repo proof of the shell surface's contract for this kit; not asserted",
113
+ fallback: null,
114
+ },
115
+ delegate_agent: {
116
+ operation: "codex subagent surface",
117
+ support: "unsupported",
118
+ evidence: "subagent surface exists (SubagentStart) but is not a typed invoke — invoke-agent is advisory on codex (provider-invocation.ts)",
119
+ fallback: null,
120
+ },
121
+ };
122
+ const OPERATIONS_BY_PROVIDER = {
123
+ "claude-code": CLAUDE_CODE_OPERATIONS,
124
+ "claude-plugin": CLAUDE_PLUGIN_OPERATIONS,
125
+ codex: CODEX_OPERATIONS,
126
+ };
127
+ /** An all-`unknown` map for a provider with no tested projection (claims nothing). */
128
+ function unknownOperations() {
129
+ const out = {};
130
+ for (const op of LOGICAL_OPERATIONS) {
131
+ out[op] = {
132
+ operation: "(unknown)",
133
+ support: "unknown",
134
+ evidence: "no tested operation projection for this provider",
135
+ fallback: null,
136
+ };
137
+ }
138
+ return out;
139
+ }
140
+ /** The operation map for a provider, or an all-`unknown` report-only fallback. */
141
+ export function getOperationShapes(provider) {
142
+ return OPERATIONS_BY_PROVIDER[provider] ?? unknownOperations();
143
+ }
144
+ /** The shape for one operation on a provider (unknown-fallback if unrecognized). */
145
+ export function getOperationShape(provider, operation) {
146
+ const map = getOperationShapes(provider);
147
+ return (map[operation] ?? {
148
+ operation: "(unknown)",
149
+ support: "unknown",
150
+ evidence: "unrecognized operation name",
151
+ fallback: null,
152
+ });
153
+ }
154
+ /** True when `name` is one of the four logical operations. */
155
+ export function isLogicalOperation(name) {
156
+ return LOGICAL_OPERATIONS.includes(name);
157
+ }
158
+ /**
159
+ * The anti-smuggling invariant, enforced rather than documented: no logical
160
+ * operation may ever appear in the frontmatter-reachable invocation enum.
161
+ *
162
+ * Called by `validate`; also covered by a unit test. If someone "helpfully" adds
163
+ * `run_shell` to KNOWN_INVOCATION_IDS to make a skill resolve, this fails loudly
164
+ * instead of silently handing author-controlled frontmatter a shell.
165
+ */
166
+ export function assertOperationsNotInvocable() {
167
+ const leaked = LOGICAL_OPERATIONS.filter((op) => KNOWN_INVOCATION_IDS.has(op));
168
+ return leaked.map((op) => `"${op}" appears in KNOWN_INVOCATION_IDS — frontmatter could then name it. ` +
169
+ `Logical operations are adapter-internal by design; remove it from the enum.`);
170
+ }
171
+ //# sourceMappingURL=provider-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-operations.js","sourceRoot":"","sources":["../../src/core/provider-operations.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { CheckResult } from "../commands/validate.js";
2
2
  import type { Status } from "../commands/doctor-checks.js";
3
- /** Canonical taxonomy: 11 vendor-neutral responsibilities + 1 MeowKit-specific. Order is the
4
- * display order; `core` marks the 11 Runtime-Substrate values vs the kit-specific addition. */
3
+ /** Canonical taxonomy: 11 vendor-neutral responsibilities plus one kit-specific addition. Order
4
+ * is display order; `core` marks the 11 Runtime-Substrate values versus that addition. */
5
5
  export declare const TAXONOMY: {
6
6
  value: string;
7
7
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"substrate.d.ts","sourceRoot":"","sources":["../../src/core/substrate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAQ3D;gGACgG;AAChG,eAAO,MAAM,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,EAarE,CAAC;AAIF,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,2FAA2F;IAC3F,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,mGAAmG;IACnG,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,oGAAoG;IACpG,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACvB;AAED,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAYrE;AAQD,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,CA8CxE;AAED;6CAC6C;AAC7C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAgCnE;AAED;+FAC+F;AAC/F,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,EAAE,CAwD5G;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI3D"}
1
+ {"version":3,"file":"substrate.d.ts","sourceRoot":"","sources":["../../src/core/substrate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAQ3D;2FAC2F;AAC3F,eAAO,MAAM,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,EAarE,CAAC;AAIF,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,2FAA2F;IAC3F,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,mGAAmG;IACnG,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,oGAAoG;IACpG,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACvB;AAED,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAYrE;AAQD,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,CA8CxE;AAED;6CAC6C;AAC7C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CA+BnE;AAED;+FAC+F;AAC/F,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,EAAE,CAwD5G;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI3D"}
@@ -6,8 +6,8 @@ import { buildInventory } from "./build-inventory.js";
6
6
  // The matrix is GENERATED from the registry/frontmatter on every call — a hand-maintained map
7
7
  // would lie about state. A committed view (.claude/harness-substrate.md) is regenerated via
8
8
  // `inventory --substrate --emit` and drift-checked by `validate`.
9
- /** Canonical taxonomy: 11 vendor-neutral responsibilities + 1 MeowKit-specific. Order is the
10
- * display order; `core` marks the 11 Runtime-Substrate values vs the kit-specific addition. */
9
+ /** Canonical taxonomy: 11 vendor-neutral responsibilities plus one kit-specific addition. Order
10
+ * is display order; `core` marks the 11 Runtime-Substrate values versus that addition. */
11
11
  export const TAXONOMY = [
12
12
  { value: "task-specification", label: "Task specification", core: true },
13
13
  { value: "context-selection", label: "Context selection", core: true },
@@ -102,7 +102,7 @@ export function renderSubstrateView(agg) {
102
102
  lines.push("");
103
103
  lines.push("Coverage of each vendor-neutral substrate responsibility, generated from the harness registry " +
104
104
  "+ artifact frontmatter. Eleven core values are the Runtime-Substrate taxonomy (repo-harness " +
105
- "synthesis, Runtime-Substrate-rooted); `Gate enforcement` is the MeowKit-specific addition.");
105
+ "synthesis, Runtime-Substrate-rooted); `Gate enforcement` is the kit-specific addition.");
106
106
  lines.push("");
107
107
  lines.push("| Responsibility | Coverage | Tagged | Active | Examples |");
108
108
  lines.push("| -------------- | -------- | -----: | -----: | -------- |");
@@ -116,7 +116,6 @@ export function renderSubstrateView(agg) {
116
116
  (missing.length ? ` Missing: ${missing.join(", ")}.` : ""));
117
117
  lines.push(`**Untagged:** ${agg.untaggedRegistry.length} registry + ${agg.untaggedFrontmatter.length} frontmatter ` +
118
118
  `artifacts carry no responsibility (frontmatter is tag-on-touch; registry should be 100%).`);
119
- lines.push("");
120
119
  return lines.join("\n");
121
120
  }
122
121
  /** Validate substrate tagging + the committed view's freshness. Registry untagged / out-of-enum
@@ -1 +1 @@
1
- {"version":3,"file":"substrate.js","sourceRoot":"","sources":["../../src/core/substrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"substrate.js","sourceRoot":"","sources":["../../src/core/substrate.ts"],"names":[],"mappings":"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"}