@rasensio/aidlc 1.15.2 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/compliance.d.ts +36 -0
- package/dist/commands/compliance.d.ts.map +1 -0
- package/dist/commands/compliance.js +275 -0
- package/dist/commands/compliance.js.map +1 -0
- package/dist/commands/constitution.d.ts +26 -0
- package/dist/commands/constitution.d.ts.map +1 -0
- package/dist/commands/constitution.js +145 -0
- package/dist/commands/constitution.js.map +1 -0
- package/dist/commands/cost.d.ts.map +1 -1
- package/dist/commands/cost.js +54 -35
- package/dist/commands/cost.js.map +1 -1
- package/dist/commands/doctor.js +7 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/gate.d.ts.map +1 -1
- package/dist/commands/gate.js +13 -0
- package/dist/commands/gate.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +119 -10
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +6 -1
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/review.d.ts +2 -27
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +10 -166
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +7 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/transition.d.ts.map +1 -1
- package/dist/commands/transition.js +24 -1
- package/dist/commands/transition.js.map +1 -1
- package/dist/compile/adapters/claude-code.d.ts.map +1 -1
- package/dist/compile/adapters/claude-code.js +2 -1
- package/dist/compile/adapters/claude-code.js.map +1 -1
- package/dist/compile/adapters/codex.d.ts +22 -1
- package/dist/compile/adapters/codex.d.ts.map +1 -1
- package/dist/compile/adapters/codex.js +61 -27
- package/dist/compile/adapters/codex.js.map +1 -1
- package/dist/compile/adapters/cursor.d.ts.map +1 -1
- package/dist/compile/adapters/cursor.js +2 -19
- package/dist/compile/adapters/cursor.js.map +1 -1
- package/dist/compile/adapters/kiro.d.ts.map +1 -1
- package/dist/compile/adapters/kiro.js +1 -19
- package/dist/compile/adapters/kiro.js.map +1 -1
- package/dist/compile/adapters/windsurf.d.ts.map +1 -1
- package/dist/compile/adapters/windsurf.js +2 -1
- package/dist/compile/adapters/windsurf.js.map +1 -1
- package/dist/compile/guidance-install.d.ts +16 -19
- package/dist/compile/guidance-install.d.ts.map +1 -1
- package/dist/compile/guidance-install.js +26 -111
- package/dist/compile/guidance-install.js.map +1 -1
- package/dist/compile/layer-install.d.ts +122 -0
- package/dist/compile/layer-install.d.ts.map +1 -0
- package/dist/compile/layer-install.js +195 -0
- package/dist/compile/layer-install.js.map +1 -0
- package/dist/compile/loaders.d.ts +14 -0
- package/dist/compile/loaders.d.ts.map +1 -1
- package/dist/compile/loaders.js +23 -18
- package/dist/compile/loaders.js.map +1 -1
- package/dist/compile/skill-format.d.ts +39 -0
- package/dist/compile/skill-format.d.ts.map +1 -0
- package/dist/compile/skill-format.js +50 -0
- package/dist/compile/skill-format.js.map +1 -0
- package/dist/compliance/check.d.ts +79 -0
- package/dist/compliance/check.d.ts.map +1 -0
- package/dist/compliance/check.js +224 -0
- package/dist/compliance/check.js.map +1 -0
- package/dist/compliance/config.d.ts +91 -0
- package/dist/compliance/config.d.ts.map +1 -0
- package/dist/compliance/config.js +173 -0
- package/dist/compliance/config.js.map +1 -0
- package/dist/compliance/findings.d.ts +70 -0
- package/dist/compliance/findings.d.ts.map +1 -0
- package/dist/compliance/findings.js +132 -0
- package/dist/compliance/findings.js.map +1 -0
- package/dist/compliance/gate-criterion.d.ts +87 -0
- package/dist/compliance/gate-criterion.d.ts.map +1 -0
- package/dist/compliance/gate-criterion.js +168 -0
- package/dist/compliance/gate-criterion.js.map +1 -0
- package/dist/compliance/install.d.ts +135 -0
- package/dist/compliance/install.d.ts.map +1 -0
- package/dist/compliance/install.js +291 -0
- package/dist/compliance/install.js.map +1 -0
- package/dist/compliance/report.d.ts +144 -0
- package/dist/compliance/report.d.ts.map +1 -0
- package/dist/compliance/report.js +347 -0
- package/dist/compliance/report.js.map +1 -0
- package/dist/compliance/resolver.d.ts +65 -0
- package/dist/compliance/resolver.d.ts.map +1 -0
- package/dist/compliance/resolver.js +176 -0
- package/dist/compliance/resolver.js.map +1 -0
- package/dist/compliance/schema.d.ts +74 -0
- package/dist/compliance/schema.d.ts.map +1 -0
- package/dist/compliance/schema.js +474 -0
- package/dist/compliance/schema.js.map +1 -0
- package/dist/compliance/types.d.ts +140 -0
- package/dist/compliance/types.d.ts.map +1 -0
- package/dist/compliance/types.js +29 -0
- package/dist/compliance/types.js.map +1 -0
- package/dist/constitution/check.d.ts +22 -0
- package/dist/constitution/check.d.ts.map +1 -0
- package/dist/constitution/check.js +89 -0
- package/dist/constitution/check.js.map +1 -0
- package/dist/constitution/docx.d.ts +51 -0
- package/dist/constitution/docx.d.ts.map +1 -0
- package/dist/constitution/docx.js +157 -0
- package/dist/constitution/docx.js.map +1 -0
- package/dist/constitution/entries.d.ts +27 -0
- package/dist/constitution/entries.d.ts.map +1 -0
- package/dist/constitution/entries.js +65 -0
- package/dist/constitution/entries.js.map +1 -0
- package/dist/constitution/extract.d.ts +34 -0
- package/dist/constitution/extract.d.ts.map +1 -0
- package/dist/constitution/extract.js +117 -0
- package/dist/constitution/extract.js.map +1 -0
- package/dist/constitution/snapshot.d.ts +47 -0
- package/dist/constitution/snapshot.d.ts.map +1 -0
- package/dist/constitution/snapshot.js +159 -0
- package/dist/constitution/snapshot.js.map +1 -0
- package/dist/constitution/statements.d.ts +37 -0
- package/dist/constitution/statements.d.ts.map +1 -0
- package/dist/constitution/statements.js +64 -0
- package/dist/constitution/statements.js.map +1 -0
- package/dist/constitution/types.d.ts +80 -0
- package/dist/constitution/types.d.ts.map +1 -0
- package/dist/constitution/types.js +9 -0
- package/dist/constitution/types.js.map +1 -0
- package/dist/core/gate.d.ts +10 -0
- package/dist/core/gate.d.ts.map +1 -1
- package/dist/core/gate.js.map +1 -1
- package/dist/core/paths.d.ts +48 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +57 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/types.d.ts +12 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/cost/hooks/registry.d.ts +44 -0
- package/dist/cost/hooks/registry.d.ts.map +1 -0
- package/dist/cost/hooks/registry.js +66 -0
- package/dist/cost/hooks/registry.js.map +1 -0
- package/dist/cost/pin.d.ts +63 -0
- package/dist/cost/pin.d.ts.map +1 -0
- package/dist/cost/pin.js +95 -0
- package/dist/cost/pin.js.map +1 -0
- package/dist/cost/providers/claude-code.d.ts +9 -2
- package/dist/cost/providers/claude-code.d.ts.map +1 -1
- package/dist/cost/providers/claude-code.js +10 -5
- package/dist/cost/providers/claude-code.js.map +1 -1
- package/dist/cost/providers/codex.d.ts +107 -0
- package/dist/cost/providers/codex.d.ts.map +1 -0
- package/dist/cost/providers/codex.js +283 -0
- package/dist/cost/providers/codex.js.map +1 -0
- package/dist/cost/providers/index.d.ts.map +1 -1
- package/dist/cost/providers/index.js +6 -0
- package/dist/cost/providers/index.js.map +1 -1
- package/dist/cost/rates.d.ts.map +1 -1
- package/dist/cost/rates.js +14 -0
- package/dist/cost/rates.js.map +1 -1
- package/dist/cost/report.d.ts +23 -1
- package/dist/cost/report.d.ts.map +1 -1
- package/dist/cost/report.js +26 -5
- package/dist/cost/report.js.map +1 -1
- package/dist/cost/sessions.d.ts +10 -1
- package/dist/cost/sessions.d.ts.map +1 -1
- package/dist/cost/sessions.js +10 -2
- package/dist/cost/sessions.js.map +1 -1
- package/dist/cost/sync.d.ts.map +1 -1
- package/dist/cost/sync.js +190 -5
- package/dist/cost/sync.js.map +1 -1
- package/dist/doctor/migrations/compliance-pack-drift.d.ts +62 -0
- package/dist/doctor/migrations/compliance-pack-drift.d.ts.map +1 -0
- package/dist/doctor/migrations/compliance-pack-drift.js +255 -0
- package/dist/doctor/migrations/compliance-pack-drift.js.map +1 -0
- package/dist/doctor/migrations/index.d.ts.map +1 -1
- package/dist/doctor/migrations/index.js +11 -0
- package/dist/doctor/migrations/index.js.map +1 -1
- package/dist/doctor/migrations/legacy-cost-hooks.d.ts.map +1 -1
- package/dist/doctor/migrations/legacy-cost-hooks.js +7 -4
- package/dist/doctor/migrations/legacy-cost-hooks.js.map +1 -1
- package/dist/doctor/migrations/missing-cost-shim.d.ts.map +1 -1
- package/dist/doctor/migrations/missing-cost-shim.js +5 -4
- package/dist/doctor/migrations/missing-cost-shim.js.map +1 -1
- package/dist/doctor/migrations/outdated-cost-hooks.d.ts.map +1 -1
- package/dist/doctor/migrations/outdated-cost-hooks.js +7 -4
- package/dist/doctor/migrations/outdated-cost-hooks.js.map +1 -1
- package/dist/doctor/runner.js +14 -0
- package/dist/doctor/runner.js.map +1 -1
- package/dist/doctor/types.d.ts +35 -3
- package/dist/doctor/types.d.ts.map +1 -1
- package/dist/menu/roster.d.ts.map +1 -1
- package/dist/menu/roster.js +5 -0
- package/dist/menu/roster.js.map +1 -1
- package/dist/metrics/report.d.ts.map +1 -1
- package/dist/metrics/report.js +11 -2
- package/dist/metrics/report.js.map +1 -1
- package/dist/review/findings-parser.d.ts +92 -0
- package/dist/review/findings-parser.d.ts.map +1 -0
- package/dist/review/findings-parser.js +196 -0
- package/dist/review/findings-parser.js.map +1 -0
- package/dist/setup/setup-compute.d.ts +10 -15
- package/dist/setup/setup-compute.d.ts.map +1 -1
- package/dist/setup/setup-compute.js +39 -0
- package/dist/setup/setup-compute.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The guidance-layer install primitive.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from `guidance-install.ts` so compliance packs can reuse the copy,
|
|
5
|
+
* the containment check and the index merge without reusing its entry point.
|
|
6
|
+
* `installBundledGuidance` installs *every* layer registered in the content
|
|
7
|
+
* package's guidance index and is called from `init`, `update`, and a `safe`-tier
|
|
8
|
+
* doctor migration that auto-applies without prompting — so a pack layer
|
|
9
|
+
* registered in that index would land in every upgrading project with no pack
|
|
10
|
+
* requested. This primitive takes an explicit entry list and has no
|
|
11
|
+
* install-everything mode.
|
|
12
|
+
*
|
|
13
|
+
* **The modified-detector is injected, not shared.** `installBundledGuidance`
|
|
14
|
+
* decides "locally modified" by comparing the on-disk body against the
|
|
15
|
+
* *currently bundled* body. That is right for framework layers, whose bundled
|
|
16
|
+
* body is the only reference available, and wrong for packs: a pack whose content
|
|
17
|
+
* is updated upstream would make every installed layer read as locally edited, so
|
|
18
|
+
* `remove` would refuse to delete anything and corrected control text would never
|
|
19
|
+
* land. Packs compare against the hash recorded at install instead. A primitive
|
|
20
|
+
* that hard-coded either rule would be wrong for one caller.
|
|
21
|
+
*
|
|
22
|
+
* Requirements: compliance-packs/AC-63 (single containment definition), and the
|
|
23
|
+
* behaviour `guidance-layers-never-resolve/AC-1, AC-3, AC-4, AC-5, AC-14`
|
|
24
|
+
* established, which this file now carries.
|
|
25
|
+
*/
|
|
26
|
+
/** One entry in a guidance `index.yaml`. Extra keys are data and are preserved. */
|
|
27
|
+
export interface GuidanceIndexEntry {
|
|
28
|
+
name: string;
|
|
29
|
+
file: string;
|
|
30
|
+
[key: string]: unknown;
|
|
31
|
+
}
|
|
32
|
+
/** Outcome of an installation pass. */
|
|
33
|
+
export interface LayerInstallReport {
|
|
34
|
+
/** Layer names newly written to disk. */
|
|
35
|
+
installed: string[];
|
|
36
|
+
/**
|
|
37
|
+
* Repo-relative paths newly written, including `index.yaml` when it changed.
|
|
38
|
+
* Kept alongside `installed` so callers never have to reconstruct a filename
|
|
39
|
+
* from a layer name — the two differ whenever a layer registers a filename
|
|
40
|
+
* that is not `<name>.md`.
|
|
41
|
+
*/
|
|
42
|
+
installedPaths: string[];
|
|
43
|
+
/** Layer names already present with identical content. */
|
|
44
|
+
alreadyCurrent: string[];
|
|
45
|
+
/** Layer names present but modified per the injected detector — left untouched. */
|
|
46
|
+
locallyModified: string[];
|
|
47
|
+
/** True when the target `index.yaml` gained entries. */
|
|
48
|
+
indexUpdated: boolean;
|
|
49
|
+
warnings: string[];
|
|
50
|
+
}
|
|
51
|
+
/** How a caller decides a layer on disk is not ours to overwrite. */
|
|
52
|
+
export type ModifiedDetector = (targetPath: string, bundledBody: string) => boolean;
|
|
53
|
+
export interface InstallLayersOptions {
|
|
54
|
+
/** Decides whether an existing target counts as locally modified. */
|
|
55
|
+
isModified: ModifiedDetector;
|
|
56
|
+
/** Repo-relative prefix for `installedPaths`, e.g. `.aidlc/guidance`. */
|
|
57
|
+
relPrefix: string;
|
|
58
|
+
/** Compute the report without writing anything. */
|
|
59
|
+
dryRun?: boolean;
|
|
60
|
+
/** Label used in warnings, e.g. `guidance layer` or `pack 'soc2' layer`. */
|
|
61
|
+
label?: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Read and validate a guidance `index.yaml`, returning its entries.
|
|
65
|
+
*
|
|
66
|
+
* @returns Entries, or null when the file is absent or unusable.
|
|
67
|
+
*/
|
|
68
|
+
export declare function readIndexEntries(indexPath: string): GuidanceIndexEntry[] | null;
|
|
69
|
+
/**
|
|
70
|
+
* True when `file` is a safe relative name that stays inside `dir`.
|
|
71
|
+
*
|
|
72
|
+
* `file` comes out of a YAML index, so it is data, not a constant: an absolute
|
|
73
|
+
* path or a `..` segment would make `join` escape the guidance directory and, on
|
|
74
|
+
* the target side, write outside it. Checked lexically **before** any disk access
|
|
75
|
+
* — ordering this after an existence check is how a sibling defect in this repo
|
|
76
|
+
* turned an error path into an out-of-bounds oracle.
|
|
77
|
+
*
|
|
78
|
+
* Exported so there is exactly one definition of the rule; a pack loader calls
|
|
79
|
+
* this rather than writing a second one (compliance-packs/AC-63).
|
|
80
|
+
*/
|
|
81
|
+
export declare function isContainedRelative(dir: string, file: string): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Copy an explicit list of layers into `targetDir` and merge the target index.
|
|
84
|
+
*
|
|
85
|
+
* Non-destructive by construction: a layer the injected detector reports as
|
|
86
|
+
* modified is left alone, and existing index entries are preserved wholesale
|
|
87
|
+
* rather than rebuilt, so fields the target owns (notably the retrospective-fed
|
|
88
|
+
* `lessons` layer's `last_consolidated`) survive.
|
|
89
|
+
*
|
|
90
|
+
* @param sourceDir - Directory holding the layer bodies to copy from.
|
|
91
|
+
* @param targetDir - Directory to install into, e.g. `<root>/.aidlc/guidance`.
|
|
92
|
+
* @param entries - The layers to install. There is no "everything" mode.
|
|
93
|
+
* @param opts - Injected detector, path prefix, dry-run flag, warning label.
|
|
94
|
+
*/
|
|
95
|
+
export declare function installLayers(sourceDir: string, targetDir: string, entries: GuidanceIndexEntry[], opts: InstallLayersOptions): LayerInstallReport;
|
|
96
|
+
/**
|
|
97
|
+
* The framework's modified-detector: the on-disk body differs from the bundled one.
|
|
98
|
+
*
|
|
99
|
+
* Correct for bundled framework layers, whose bundled body is the only reference
|
|
100
|
+
* that exists. Deliberately **not** used for packs — see the module note.
|
|
101
|
+
*/
|
|
102
|
+
export declare const bundledBodyDiffers: ModifiedDetector;
|
|
103
|
+
/**
|
|
104
|
+
* Drop layer registrations from a target index by name.
|
|
105
|
+
*
|
|
106
|
+
* Removing the registration is what makes a layer *inert*, and it is separate from
|
|
107
|
+
* deleting the file on purpose. When a pack is removed but one of its layers has
|
|
108
|
+
* been locally edited, the bytes stay (they are the project's now) while the
|
|
109
|
+
* registration goes — otherwise `loadGuidanceLayers` keeps handing an uninstalled
|
|
110
|
+
* pack's constraints to every agent, which is the drift state `doctor` classifies
|
|
111
|
+
* as a defect.
|
|
112
|
+
*
|
|
113
|
+
* Never touches the files themselves, and never touches a registration it was not
|
|
114
|
+
* asked about.
|
|
115
|
+
*
|
|
116
|
+
* @returns The names actually removed, so a caller can report accurately rather
|
|
117
|
+
* than assuming.
|
|
118
|
+
*/
|
|
119
|
+
export declare function unregisterLayers(targetDir: string, names: string[], opts?: {
|
|
120
|
+
dryRun?: boolean;
|
|
121
|
+
}): string[];
|
|
122
|
+
//# sourceMappingURL=layer-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-install.d.ts","sourceRoot":"","sources":["../../src/compile/layer-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAOH,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,0DAA0D;IAC1D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mFAAmF;IACnF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qEAAqE;AACrE,MAAM,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;AAEpF,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,UAAU,EAAE,gBAAgB,CAAC;IAC7B,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE,GAAG,IAAI,CA4B/E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOtE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kBAAkB,EAAE,EAC7B,IAAI,EAAE,oBAAoB,GACzB,kBAAkB,CA4EpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBACiB,CAAC;AAEnD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9B,MAAM,EAAE,CAaV"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The guidance-layer install primitive.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from `guidance-install.ts` so compliance packs can reuse the copy,
|
|
5
|
+
* the containment check and the index merge without reusing its entry point.
|
|
6
|
+
* `installBundledGuidance` installs *every* layer registered in the content
|
|
7
|
+
* package's guidance index and is called from `init`, `update`, and a `safe`-tier
|
|
8
|
+
* doctor migration that auto-applies without prompting — so a pack layer
|
|
9
|
+
* registered in that index would land in every upgrading project with no pack
|
|
10
|
+
* requested. This primitive takes an explicit entry list and has no
|
|
11
|
+
* install-everything mode.
|
|
12
|
+
*
|
|
13
|
+
* **The modified-detector is injected, not shared.** `installBundledGuidance`
|
|
14
|
+
* decides "locally modified" by comparing the on-disk body against the
|
|
15
|
+
* *currently bundled* body. That is right for framework layers, whose bundled
|
|
16
|
+
* body is the only reference available, and wrong for packs: a pack whose content
|
|
17
|
+
* is updated upstream would make every installed layer read as locally edited, so
|
|
18
|
+
* `remove` would refuse to delete anything and corrected control text would never
|
|
19
|
+
* land. Packs compare against the hash recorded at install instead. A primitive
|
|
20
|
+
* that hard-coded either rule would be wrong for one caller.
|
|
21
|
+
*
|
|
22
|
+
* Requirements: compliance-packs/AC-63 (single containment definition), and the
|
|
23
|
+
* behaviour `guidance-layers-never-resolve/AC-1, AC-3, AC-4, AC-5, AC-14`
|
|
24
|
+
* established, which this file now carries.
|
|
25
|
+
*/
|
|
26
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
27
|
+
import { isAbsolute, join, resolve, sep } from 'node:path';
|
|
28
|
+
import { parse as parseYaml } from 'yaml';
|
|
29
|
+
import { serializeYaml } from '../state/yaml-helpers.js';
|
|
30
|
+
/**
|
|
31
|
+
* Read and validate a guidance `index.yaml`, returning its entries.
|
|
32
|
+
*
|
|
33
|
+
* @returns Entries, or null when the file is absent or unusable.
|
|
34
|
+
*/
|
|
35
|
+
export function readIndexEntries(indexPath) {
|
|
36
|
+
if (!existsSync(indexPath)) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
let parsed;
|
|
40
|
+
try {
|
|
41
|
+
parsed = parseYaml(readFileSync(indexPath, 'utf8'));
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
if (typeof parsed !== 'object' || parsed === null || !('layers' in parsed)) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const layers = parsed.layers;
|
|
50
|
+
if (!Array.isArray(layers)) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
return layers.filter((e) => typeof e === 'object' &&
|
|
54
|
+
e !== null &&
|
|
55
|
+
typeof e.name === 'string' &&
|
|
56
|
+
typeof e.file === 'string');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* True when `file` is a safe relative name that stays inside `dir`.
|
|
60
|
+
*
|
|
61
|
+
* `file` comes out of a YAML index, so it is data, not a constant: an absolute
|
|
62
|
+
* path or a `..` segment would make `join` escape the guidance directory and, on
|
|
63
|
+
* the target side, write outside it. Checked lexically **before** any disk access
|
|
64
|
+
* — ordering this after an existence check is how a sibling defect in this repo
|
|
65
|
+
* turned an error path into an out-of-bounds oracle.
|
|
66
|
+
*
|
|
67
|
+
* Exported so there is exactly one definition of the rule; a pack loader calls
|
|
68
|
+
* this rather than writing a second one (compliance-packs/AC-63).
|
|
69
|
+
*/
|
|
70
|
+
export function isContainedRelative(dir, file) {
|
|
71
|
+
if (file === '' || isAbsolute(file))
|
|
72
|
+
return false;
|
|
73
|
+
if (file.split(/[\\/]/).includes('..'))
|
|
74
|
+
return false;
|
|
75
|
+
const root = resolve(dir);
|
|
76
|
+
const target = resolve(dir, file);
|
|
77
|
+
return target !== root && target.startsWith(root + sep);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Copy an explicit list of layers into `targetDir` and merge the target index.
|
|
81
|
+
*
|
|
82
|
+
* Non-destructive by construction: a layer the injected detector reports as
|
|
83
|
+
* modified is left alone, and existing index entries are preserved wholesale
|
|
84
|
+
* rather than rebuilt, so fields the target owns (notably the retrospective-fed
|
|
85
|
+
* `lessons` layer's `last_consolidated`) survive.
|
|
86
|
+
*
|
|
87
|
+
* @param sourceDir - Directory holding the layer bodies to copy from.
|
|
88
|
+
* @param targetDir - Directory to install into, e.g. `<root>/.aidlc/guidance`.
|
|
89
|
+
* @param entries - The layers to install. There is no "everything" mode.
|
|
90
|
+
* @param opts - Injected detector, path prefix, dry-run flag, warning label.
|
|
91
|
+
*/
|
|
92
|
+
export function installLayers(sourceDir, targetDir, entries, opts) {
|
|
93
|
+
const label = opts.label ?? 'guidance layer';
|
|
94
|
+
const report = {
|
|
95
|
+
installed: [],
|
|
96
|
+
installedPaths: [],
|
|
97
|
+
alreadyCurrent: [],
|
|
98
|
+
locallyModified: [],
|
|
99
|
+
indexUpdated: false,
|
|
100
|
+
warnings: [],
|
|
101
|
+
};
|
|
102
|
+
const indexPath = join(targetDir, 'index.yaml');
|
|
103
|
+
const existingEntries = readIndexEntries(indexPath);
|
|
104
|
+
const mergedEntries = existingEntries ? [...existingEntries] : [];
|
|
105
|
+
const registeredNames = new Set(mergedEntries.map((e) => e.name));
|
|
106
|
+
for (const entry of entries) {
|
|
107
|
+
// Bounds before existence: a registration naming an absolute path or a `..`
|
|
108
|
+
// segment is rejected outright rather than resolved and then stat'd.
|
|
109
|
+
if (!isContainedRelative(sourceDir, entry.file) || !isContainedRelative(targetDir, entry.file)) {
|
|
110
|
+
report.warnings.push(`${label} '${entry.name}' registers an out-of-bounds file and was skipped: ${entry.file}`);
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const source = join(sourceDir, entry.file);
|
|
114
|
+
if (!existsSync(source)) {
|
|
115
|
+
report.warnings.push(`${label} '${entry.name}' is registered but its file is missing: ${entry.file}`);
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
const bundledBody = readFileSync(source, 'utf8');
|
|
119
|
+
const target = join(targetDir, entry.file);
|
|
120
|
+
if (existsSync(target)) {
|
|
121
|
+
// A layer the project has changed is the project's, not ours.
|
|
122
|
+
if (opts.isModified(target, bundledBody)) {
|
|
123
|
+
report.locallyModified.push(entry.name);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
report.alreadyCurrent.push(entry.name);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
report.installed.push(entry.name);
|
|
131
|
+
report.installedPaths.push(`${opts.relPrefix}/${entry.file}`);
|
|
132
|
+
if (!opts.dryRun) {
|
|
133
|
+
mkdirSync(targetDir, { recursive: true });
|
|
134
|
+
writeFileSync(target, bundledBody, 'utf8');
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Register by name regardless of whether the body was written, so a
|
|
138
|
+
// locally-modified layer that is missing from the index still becomes active.
|
|
139
|
+
//
|
|
140
|
+
// The whole entry is spread rather than rebuilt as `{name, file}`: rebuilding
|
|
141
|
+
// silently drops every other key on first registration, which is where a pack
|
|
142
|
+
// layer's `always_pointer` flag would be lost. Safe because `readIndexEntries`
|
|
143
|
+
// already guarantees `name` and `file` are strings.
|
|
144
|
+
if (!registeredNames.has(entry.name)) {
|
|
145
|
+
mergedEntries.push({ ...entry });
|
|
146
|
+
registeredNames.add(entry.name);
|
|
147
|
+
report.indexUpdated = true;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (report.indexUpdated) {
|
|
151
|
+
report.installedPaths.push(`${opts.relPrefix}/index.yaml`);
|
|
152
|
+
if (!opts.dryRun) {
|
|
153
|
+
mkdirSync(targetDir, { recursive: true });
|
|
154
|
+
writeFileSync(indexPath, serializeYaml({ layers: mergedEntries }), 'utf8');
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return report;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* The framework's modified-detector: the on-disk body differs from the bundled one.
|
|
161
|
+
*
|
|
162
|
+
* Correct for bundled framework layers, whose bundled body is the only reference
|
|
163
|
+
* that exists. Deliberately **not** used for packs — see the module note.
|
|
164
|
+
*/
|
|
165
|
+
export const bundledBodyDiffers = (targetPath, bundledBody) => readFileSync(targetPath, 'utf8') !== bundledBody;
|
|
166
|
+
/**
|
|
167
|
+
* Drop layer registrations from a target index by name.
|
|
168
|
+
*
|
|
169
|
+
* Removing the registration is what makes a layer *inert*, and it is separate from
|
|
170
|
+
* deleting the file on purpose. When a pack is removed but one of its layers has
|
|
171
|
+
* been locally edited, the bytes stay (they are the project's now) while the
|
|
172
|
+
* registration goes — otherwise `loadGuidanceLayers` keeps handing an uninstalled
|
|
173
|
+
* pack's constraints to every agent, which is the drift state `doctor` classifies
|
|
174
|
+
* as a defect.
|
|
175
|
+
*
|
|
176
|
+
* Never touches the files themselves, and never touches a registration it was not
|
|
177
|
+
* asked about.
|
|
178
|
+
*
|
|
179
|
+
* @returns The names actually removed, so a caller can report accurately rather
|
|
180
|
+
* than assuming.
|
|
181
|
+
*/
|
|
182
|
+
export function unregisterLayers(targetDir, names, opts = {}) {
|
|
183
|
+
const indexPath = join(targetDir, 'index.yaml');
|
|
184
|
+
const entries = readIndexEntries(indexPath);
|
|
185
|
+
if (!entries)
|
|
186
|
+
return [];
|
|
187
|
+
const wanted = new Set(names);
|
|
188
|
+
const kept = entries.filter((e) => !wanted.has(e.name));
|
|
189
|
+
const removed = entries.filter((e) => wanted.has(e.name)).map((e) => e.name);
|
|
190
|
+
if (removed.length > 0 && !opts.dryRun) {
|
|
191
|
+
writeFileSync(indexPath, serializeYaml({ layers: kept }), 'utf8');
|
|
192
|
+
}
|
|
193
|
+
return removed;
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=layer-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-install.js","sourceRoot":"","sources":["../../src/compile/layer-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,20 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import type { GlossaryTerm } from '@rasensio/aidlc-content';
|
|
16
16
|
import type { Skill, GuidanceLayer } from '../core/types.js';
|
|
17
|
+
/**
|
|
18
|
+
* Maximum size (bytes) for inline placeholder resolution. Larger files get a
|
|
19
|
+
* read-instruction. Deliberately small: guidance layers live in ONE place
|
|
20
|
+
* (`.aidlc/guidance/`) so an edited or newly installed layer (compliance packs
|
|
21
|
+
* like SOC2/HIPAA included) applies without recompiling skills — inlining
|
|
22
|
+
* bakes a stale copy into every compiled skill. The skip-risk of a pointer is
|
|
23
|
+
* carried by the read-instruction's MUST wording, not by duplication.
|
|
24
|
+
*
|
|
25
|
+
* A compliance pack layer bypasses this bound entirely via `always_pointer`, since
|
|
26
|
+
* its text may not be inlined at any size. Exported so a test can prove its
|
|
27
|
+
* fixture is genuinely under the threshold — a large fixture would pass whether the
|
|
28
|
+
* flag worked or not.
|
|
29
|
+
*/
|
|
30
|
+
export declare const INLINE_THRESHOLD_BYTES = 2048;
|
|
17
31
|
/**
|
|
18
32
|
* Parse a single skill file (YAML frontmatter delimited by `---` + markdown body).
|
|
19
33
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loaders.d.ts","sourceRoot":"","sources":["../../src/compile/loaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"loaders.d.ts","sourceRoot":"","sources":["../../src/compile/loaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,EAAE,KAAK,EAAa,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMxE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAe3C;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CA0DvE;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,EAAE,CAerD;AAqFD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAuB1C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EAAE,EACvB,cAAc,SAAoB,GACjC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA0B1C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,YAAY,EAAE,GACpB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAgB1C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,EAAE,EACf,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,GAC/E;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAiBzC;AAkCD,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAuEtE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA8CzF"}
|
package/dist/compile/loaders.js
CHANGED
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
* plain-language-vocabulary/AC-8
|
|
14
14
|
*/
|
|
15
15
|
import { readFileSync, readdirSync, existsSync, statSync } from 'node:fs';
|
|
16
|
-
import { join, basename, extname
|
|
16
|
+
import { join, basename, extname } from 'node:path';
|
|
17
17
|
import { parse as parseYaml } from 'yaml';
|
|
18
|
+
import { toPosixRelative } from '../core/paths.js';
|
|
18
19
|
// ---------------------------------------------------------------------------
|
|
19
20
|
// Constants
|
|
20
21
|
// ---------------------------------------------------------------------------
|
|
@@ -25,8 +26,13 @@ import { parse as parseYaml } from 'yaml';
|
|
|
25
26
|
* like SOC2/HIPAA included) applies without recompiling skills — inlining
|
|
26
27
|
* bakes a stale copy into every compiled skill. The skip-risk of a pointer is
|
|
27
28
|
* carried by the read-instruction's MUST wording, not by duplication.
|
|
29
|
+
*
|
|
30
|
+
* A compliance pack layer bypasses this bound entirely via `always_pointer`, since
|
|
31
|
+
* its text may not be inlined at any size. Exported so a test can prove its
|
|
32
|
+
* fixture is genuinely under the threshold — a large fixture would pass whether the
|
|
33
|
+
* flag worked or not.
|
|
28
34
|
*/
|
|
29
|
-
const INLINE_THRESHOLD_BYTES = 2048;
|
|
35
|
+
export const INLINE_THRESHOLD_BYTES = 2048;
|
|
30
36
|
/** Regex matching `{{context:<doc-name>}}` placeholders. */
|
|
31
37
|
const CONTEXT_PLACEHOLDER_RE = /\{\{context:([^}]+)\}\}/g;
|
|
32
38
|
/** Regex matching `{{guidance:<layer-name>}}` placeholders. */
|
|
@@ -240,7 +246,12 @@ export function resolveGuidancePlaceholders(body, layers, guidanceRelDir = '.aid
|
|
|
240
246
|
warnings.push(`unresolved guidance placeholder: {{guidance:${layerName}}}`);
|
|
241
247
|
return renderUnresolvedMarker('guidance', layerName);
|
|
242
248
|
}
|
|
243
|
-
|
|
249
|
+
// Hop four: the flag is checked BEFORE the size comparison. A compliance pack
|
|
250
|
+
// layer is delivered by pointer whatever its size, because inlining pack text
|
|
251
|
+
// into an emitted skill is forbidden outright rather than discouraged — and
|
|
252
|
+
// relying on the shipped pack being over the threshold would make the guarantee
|
|
253
|
+
// a coincidence (compliance-packs/AC-21, AC-77).
|
|
254
|
+
if (layer.always_pointer !== true && Buffer.byteLength(layer.body, 'utf8') <= INLINE_THRESHOLD_BYTES) {
|
|
244
255
|
return layer.body;
|
|
245
256
|
}
|
|
246
257
|
const relPath = `${guidanceRelDir}/${layer.file}`;
|
|
@@ -316,20 +327,6 @@ export function resolveSkillBodies(skills, opts) {
|
|
|
316
327
|
});
|
|
317
328
|
return { skills: resolvedSkills, warnings };
|
|
318
329
|
}
|
|
319
|
-
/**
|
|
320
|
-
* Express `filePath` relative to `projectRoot` using forward slashes.
|
|
321
|
-
*
|
|
322
|
-
* Generated skill bodies are committed and read on other machines, so a path in
|
|
323
|
-
* one must never be absolute (guidance-layers-never-resolve/AC-8). Falls back to
|
|
324
|
-
* the basename if the target lies outside the project.
|
|
325
|
-
*/
|
|
326
|
-
function toPosixRelative(projectRoot, filePath) {
|
|
327
|
-
const rel = relative(projectRoot, filePath);
|
|
328
|
-
if (!rel || rel.startsWith('..') || isAbsolute(rel)) {
|
|
329
|
-
return basename(filePath);
|
|
330
|
-
}
|
|
331
|
-
return rel.split(sep).join('/');
|
|
332
|
-
}
|
|
333
330
|
/**
|
|
334
331
|
* Resolve a context doc name to a file path.
|
|
335
332
|
* Tries exact match first, then with common extensions.
|
|
@@ -414,7 +411,15 @@ export function loadGuidanceLayers(guidanceDir) {
|
|
|
414
411
|
if (parsed) {
|
|
415
412
|
// The registered `file` wins over the basename `parseGuidanceFile` infers,
|
|
416
413
|
// so a registration naming a subdirectory keeps its path.
|
|
417
|
-
|
|
414
|
+
//
|
|
415
|
+
// `always_pointer` comes off the index entry, not the layer's frontmatter:
|
|
416
|
+
// it describes how the layer was *registered* — a compliance pack sets it at
|
|
417
|
+
// install — not what the layer contains. This is hop three of four. The flag
|
|
418
|
+
// is written by the pack installer, survives the index merge because entries
|
|
419
|
+
// are spread whole rather than rebuilt, is picked up here, and is honoured by
|
|
420
|
+
// `resolveGuidancePlaceholders`. Drop any single hop and a small pack layer
|
|
421
|
+
// is inlined into an emitted skill, which is forbidden outright.
|
|
422
|
+
layers.push({ ...parsed, file, ...(e.always_pointer === true && { always_pointer: true }) });
|
|
418
423
|
}
|
|
419
424
|
else {
|
|
420
425
|
warnings.push(`failed to parse guidance layer: ${filePath}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loaders.js","sourceRoot":"","sources":["../../src/compile/loaders.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loaders.js","sourceRoot":"","sources":["../../src/compile/loaders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one canonical skill format, shared by every platform adapter.
|
|
3
|
+
*
|
|
4
|
+
* Each adapter writes two kinds of file: a **canonical copy** under
|
|
5
|
+
* `.aidlc/skills/`, which is platform-neutral and which every adapter writes to
|
|
6
|
+
* the same path, and a **platform-visible file** whose shape that platform's own
|
|
7
|
+
* validator dictates. This module owns the first only.
|
|
8
|
+
*
|
|
9
|
+
* The distinction is not cosmetic — unifying the second is impossible.
|
|
10
|
+
* `cursor.ts` validates that its rule file carries `description` and
|
|
11
|
+
* `alwaysApply` and **no** `name`; `claude-code.ts` validates that its skill file's
|
|
12
|
+
* frontmatter `name` equals the directory name. One shared format across both
|
|
13
|
+
* breaks one validator or the other, which is why AC-26 was retired and reissued
|
|
14
|
+
* as AC-47 scoped to the canonical copy.
|
|
15
|
+
*
|
|
16
|
+
* What this fixes is a live defect rather than an inconsistency: claude-code and
|
|
17
|
+
* codex already write `.aidlc/skills/<name>.md` with **different** content —
|
|
18
|
+
* claude-code wrote `skill.body` raw, with no frontmatter at all — so on a
|
|
19
|
+
* two-platform project the canonical copy depended on adapter iteration order.
|
|
20
|
+
*
|
|
21
|
+
* Field order is pinned to the codex adapter's existing order so its canonical
|
|
22
|
+
* output is unchanged (AC-22); kiro's changes, because it emitted `priority`
|
|
23
|
+
* before `trigger` while the other three emitted the reverse, and 6 of the 17
|
|
24
|
+
* shipped skills carry both fields.
|
|
25
|
+
*
|
|
26
|
+
* Requirements: agent-portability/AC-47, AC-48, AC-22
|
|
27
|
+
*
|
|
28
|
+
* @module
|
|
29
|
+
*/
|
|
30
|
+
import type { Skill } from '../core/types.js';
|
|
31
|
+
/**
|
|
32
|
+
* Format a skill as its canonical file content: frontmatter, then body.
|
|
33
|
+
*
|
|
34
|
+
* Order is `name, description, phase, trigger, priority` — fixed here so no
|
|
35
|
+
* adapter can drift, and matching what codex already wrote so AC-22 holds.
|
|
36
|
+
* Optional fields are omitted when absent rather than emitted empty.
|
|
37
|
+
*/
|
|
38
|
+
export declare function formatCanonicalSkill(skill: Skill): string;
|
|
39
|
+
//# sourceMappingURL=skill-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-format.d.ts","sourceRoot":"","sources":["../../src/compile/skill-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAUzD"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one canonical skill format, shared by every platform adapter.
|
|
3
|
+
*
|
|
4
|
+
* Each adapter writes two kinds of file: a **canonical copy** under
|
|
5
|
+
* `.aidlc/skills/`, which is platform-neutral and which every adapter writes to
|
|
6
|
+
* the same path, and a **platform-visible file** whose shape that platform's own
|
|
7
|
+
* validator dictates. This module owns the first only.
|
|
8
|
+
*
|
|
9
|
+
* The distinction is not cosmetic — unifying the second is impossible.
|
|
10
|
+
* `cursor.ts` validates that its rule file carries `description` and
|
|
11
|
+
* `alwaysApply` and **no** `name`; `claude-code.ts` validates that its skill file's
|
|
12
|
+
* frontmatter `name` equals the directory name. One shared format across both
|
|
13
|
+
* breaks one validator or the other, which is why AC-26 was retired and reissued
|
|
14
|
+
* as AC-47 scoped to the canonical copy.
|
|
15
|
+
*
|
|
16
|
+
* What this fixes is a live defect rather than an inconsistency: claude-code and
|
|
17
|
+
* codex already write `.aidlc/skills/<name>.md` with **different** content —
|
|
18
|
+
* claude-code wrote `skill.body` raw, with no frontmatter at all — so on a
|
|
19
|
+
* two-platform project the canonical copy depended on adapter iteration order.
|
|
20
|
+
*
|
|
21
|
+
* Field order is pinned to the codex adapter's existing order so its canonical
|
|
22
|
+
* output is unchanged (AC-22); kiro's changes, because it emitted `priority`
|
|
23
|
+
* before `trigger` while the other three emitted the reverse, and 6 of the 17
|
|
24
|
+
* shipped skills carry both fields.
|
|
25
|
+
*
|
|
26
|
+
* Requirements: agent-portability/AC-47, AC-48, AC-22
|
|
27
|
+
*
|
|
28
|
+
* @module
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Format a skill as its canonical file content: frontmatter, then body.
|
|
32
|
+
*
|
|
33
|
+
* Order is `name, description, phase, trigger, priority` — fixed here so no
|
|
34
|
+
* adapter can drift, and matching what codex already wrote so AC-22 holds.
|
|
35
|
+
* Optional fields are omitted when absent rather than emitted empty.
|
|
36
|
+
*/
|
|
37
|
+
export function formatCanonicalSkill(skill) {
|
|
38
|
+
const lines = ['---'];
|
|
39
|
+
lines.push(`name: ${skill.meta.name}`);
|
|
40
|
+
lines.push(`description: ${skill.meta.description}`);
|
|
41
|
+
lines.push(`phase: ${skill.meta.phase}`);
|
|
42
|
+
if (skill.meta.trigger)
|
|
43
|
+
lines.push(`trigger: ${skill.meta.trigger}`);
|
|
44
|
+
if (skill.meta.priority !== undefined)
|
|
45
|
+
lines.push(`priority: ${skill.meta.priority}`);
|
|
46
|
+
lines.push('---');
|
|
47
|
+
lines.push(skill.body);
|
|
48
|
+
return lines.join('\n');
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=skill-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-format.js","sourceRoot":"","sources":["../../src/compile/skill-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAY;IAC/C,MAAM,KAAK,GAAa,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|