@rasensio/aidlc 1.26.2 → 1.27.1

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 (89) hide show
  1. package/dist/commands/cost.d.ts +7 -0
  2. package/dist/commands/cost.d.ts.map +1 -1
  3. package/dist/commands/cost.js +137 -0
  4. package/dist/commands/cost.js.map +1 -1
  5. package/dist/commands/discover.d.ts.map +1 -1
  6. package/dist/commands/discover.js +40 -4
  7. package/dist/commands/discover.js.map +1 -1
  8. package/dist/commands/doctor.js +5 -1
  9. package/dist/commands/doctor.js.map +1 -1
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/start.d.ts.map +1 -1
  12. package/dist/commands/start.js +27 -66
  13. package/dist/commands/start.js.map +1 -1
  14. package/dist/commands/update.d.ts +35 -0
  15. package/dist/commands/update.d.ts.map +1 -1
  16. package/dist/commands/update.js +169 -36
  17. package/dist/commands/update.js.map +1 -1
  18. package/dist/compile/install-plan.d.ts +45 -0
  19. package/dist/compile/install-plan.d.ts.map +1 -1
  20. package/dist/compile/install-plan.js +49 -6
  21. package/dist/compile/install-plan.js.map +1 -1
  22. package/dist/compile/loaders.d.ts.map +1 -1
  23. package/dist/compile/loaders.js +10 -1
  24. package/dist/compile/loaders.js.map +1 -1
  25. package/dist/compile/skill-format.d.ts +64 -0
  26. package/dist/compile/skill-format.d.ts.map +1 -1
  27. package/dist/compile/skill-format.js +133 -0
  28. package/dist/compile/skill-format.js.map +1 -1
  29. package/dist/cost/context.d.ts +72 -0
  30. package/dist/cost/context.d.ts.map +1 -0
  31. package/dist/cost/context.js +155 -0
  32. package/dist/cost/context.js.map +1 -0
  33. package/dist/cost/dedupe-history.d.ts +98 -0
  34. package/dist/cost/dedupe-history.d.ts.map +1 -0
  35. package/dist/cost/dedupe-history.js +275 -0
  36. package/dist/cost/dedupe-history.js.map +1 -0
  37. package/dist/cost/ledger.d.ts.map +1 -1
  38. package/dist/cost/ledger.js +11 -5
  39. package/dist/cost/ledger.js.map +1 -1
  40. package/dist/cost/providers/claude-code.d.ts +13 -1
  41. package/dist/cost/providers/claude-code.d.ts.map +1 -1
  42. package/dist/cost/providers/claude-code.js +112 -10
  43. package/dist/cost/providers/claude-code.js.map +1 -1
  44. package/dist/cost/rates.d.ts +16 -1
  45. package/dist/cost/rates.d.ts.map +1 -1
  46. package/dist/cost/rates.js +21 -0
  47. package/dist/cost/rates.js.map +1 -1
  48. package/dist/cost/recorder.d.ts.map +1 -1
  49. package/dist/cost/recorder.js +3 -0
  50. package/dist/cost/recorder.js.map +1 -1
  51. package/dist/cost/report.d.ts +30 -0
  52. package/dist/cost/report.d.ts.map +1 -1
  53. package/dist/cost/report.js +96 -5
  54. package/dist/cost/report.js.map +1 -1
  55. package/dist/cost/sync.d.ts +18 -0
  56. package/dist/cost/sync.d.ts.map +1 -1
  57. package/dist/cost/sync.js +1 -1
  58. package/dist/cost/sync.js.map +1 -1
  59. package/dist/cost/types.d.ts +40 -0
  60. package/dist/cost/types.d.ts.map +1 -1
  61. package/dist/cost/types.js +15 -0
  62. package/dist/cost/types.js.map +1 -1
  63. package/dist/discover/scanner.d.ts +39 -2
  64. package/dist/discover/scanner.d.ts.map +1 -1
  65. package/dist/discover/scanner.js +98 -14
  66. package/dist/discover/scanner.js.map +1 -1
  67. package/dist/doctor/git.d.ts +15 -0
  68. package/dist/doctor/git.d.ts.map +1 -1
  69. package/dist/doctor/git.js +28 -0
  70. package/dist/doctor/git.js.map +1 -1
  71. package/dist/doctor/migrations/artifact-source-drift.d.ts +41 -0
  72. package/dist/doctor/migrations/artifact-source-drift.d.ts.map +1 -0
  73. package/dist/doctor/migrations/artifact-source-drift.js +153 -0
  74. package/dist/doctor/migrations/artifact-source-drift.js.map +1 -0
  75. package/dist/doctor/migrations/context-doc-stale.d.ts +34 -0
  76. package/dist/doctor/migrations/context-doc-stale.d.ts.map +1 -0
  77. package/dist/doctor/migrations/context-doc-stale.js +130 -0
  78. package/dist/doctor/migrations/context-doc-stale.js.map +1 -0
  79. package/dist/doctor/migrations/index.d.ts.map +1 -1
  80. package/dist/doctor/migrations/index.js +14 -0
  81. package/dist/doctor/migrations/index.js.map +1 -1
  82. package/dist/operational/discover.d.ts.map +1 -1
  83. package/dist/operational/discover.js +3 -1
  84. package/dist/operational/discover.js.map +1 -1
  85. package/dist/operational/emit.d.ts +11 -0
  86. package/dist/operational/emit.d.ts.map +1 -1
  87. package/dist/operational/emit.js +33 -11
  88. package/dist/operational/emit.js.map +1 -1
  89. package/package.json +2 -2
@@ -559,13 +559,22 @@ function detectEntryPoints(root, files) {
559
559
  const prefix = pkg.relPath ? `${pkg.relPath}/` : '';
560
560
  try {
561
561
  const manifest = JSON.parse(readFileSync(pkgPath, 'utf8'));
562
+ // Deduped, because `main` and `bin` routinely name the same file: this repo's
563
+ // own CLI has `main: dist/cli.js` and `bin: {aidlc: dist/cli.js}`, which listed
564
+ // `packages/cli/dist/cli.js` twice in its architecture doc. The commonEntries
565
+ // loop below already guards this way; the manifest loop did not.
566
+ const add = (p) => {
567
+ if (!entryPoints.includes(p))
568
+ entryPoints.push(p);
569
+ };
562
570
  if (manifest.main)
563
- entryPoints.push(prefix + manifest.main);
571
+ add(prefix + manifest.main);
564
572
  if (typeof manifest.bin === 'string') {
565
- entryPoints.push(prefix + manifest.bin);
573
+ add(prefix + manifest.bin);
566
574
  }
567
575
  else if (manifest.bin && typeof manifest.bin === 'object') {
568
- entryPoints.push(...Object.values(manifest.bin).map((b) => prefix + b));
576
+ for (const b of Object.values(manifest.bin))
577
+ add(prefix + b);
569
578
  }
570
579
  }
571
580
  catch {
@@ -752,27 +761,102 @@ export function renderArchitectureDoc(result) {
752
761
  // ---------------------------------------------------------------------------
753
762
  // Write Context_Docs to disk
754
763
  // ---------------------------------------------------------------------------
764
+ /**
765
+ * Frontmatter marker the renderers stamp on every doc they produce.
766
+ *
767
+ * Its presence is what makes a context doc *ours* to overwrite. Remove it — which
768
+ * is what editing the file by hand amounts to — and the doc belongs to a human.
769
+ */
770
+ const GENERATED_MARKER = 'generated_by: aidlc-discover';
771
+ /**
772
+ * Is this file still machine-owned, i.e. safe to regenerate over?
773
+ *
774
+ * Absent file → yes, there is nothing to lose. Present with the marker **in its
775
+ * frontmatter** → yes, nobody has touched it. Anything else → **no**: a human wrote
776
+ * or edited it, and the scanner cannot reproduce what they knew.
777
+ *
778
+ * The frontmatter restriction is not pedantry. A whole-file substring check reads a
779
+ * doc that merely *mentions* the marker as machine-generated — and the first thing a
780
+ * hand-written context doc tends to explain is why it has no marker. That check
781
+ * deleted this repo's own replacement on the first real run.
782
+ *
783
+ * Unreadable is treated as human-owned. Refusing to write is recoverable; guessing
784
+ * and clobbering is not.
785
+ */
786
+ function isMachineOwned(path) {
787
+ if (!existsSync(path))
788
+ return true;
789
+ let body;
790
+ try {
791
+ body = readFileSync(path, 'utf8');
792
+ }
793
+ catch {
794
+ return false;
795
+ }
796
+ if (!body.startsWith('---\n'))
797
+ return false;
798
+ const end = body.indexOf('\n---', 4);
799
+ if (end === -1)
800
+ return false;
801
+ return body.slice(4, end).includes(GENERATED_MARKER);
802
+ }
755
803
  /**
756
804
  * Write generated Context_Docs to `.aidlc/context/`.
757
805
  * Creates the directory if it doesn't exist.
758
806
  * Total output ≤ 100KB, ≤ 10 files (Req 15.5, 17.2).
759
807
  *
808
+ * **Only overwrites docs it generated.** These files are injected verbatim into the
809
+ * Guidance section of every compiled phase skill, so they are resident context on
810
+ * every turn of every phase — which makes a hand-written one expensive to produce
811
+ * and worth keeping. Before this, `writeFileSync` ran unconditionally and the next
812
+ * `aidlc discover` silently destroyed any edit, so nobody could improve on what a
813
+ * directory-name scan could infer. The scanner cannot describe a seam; a person can.
814
+ *
815
+ * `force` restores the old behaviour for a deliberate regeneration.
816
+ *
760
817
  * @param projectRoot - Absolute path to the project root.
761
818
  * @param result - Scan result to render.
762
- * @returns Paths of written files relative to projectRoot.
819
+ * @param opts.force - Overwrite even hand-edited docs.
820
+ * @returns Which paths were written and which were preserved.
763
821
  */
764
- export function writeContextDocs(projectRoot, result) {
822
+ export async function writeContextDocs(projectRoot, result, opts = {}) {
765
823
  const contextDir = join(projectRoot, '.aidlc', 'context');
766
824
  mkdirSync(contextDir, { recursive: true });
767
- const styleGuide = renderStyleGuide(result);
768
- const architectureDoc = renderArchitectureDoc(result);
769
- const stylePath = join(contextDir, 'style-guide.md');
770
- const archPath = join(contextDir, 'architecture.md');
771
- writeFileSync(stylePath, styleGuide, 'utf8');
772
- writeFileSync(archPath, architectureDoc, 'utf8');
773
- return [
774
- '.aidlc/context/style-guide.md',
775
- '.aidlc/context/architecture.md',
825
+ const docs = [
826
+ { rel: 'style-guide.md', body: renderStyleGuide(result) },
827
+ { rel: 'architecture.md', body: renderArchitectureDoc(result) },
776
828
  ];
829
+ const handOwned = docs
830
+ .filter(({ rel }) => !isMachineOwned(join(contextDir, rel)))
831
+ .map(({ rel }) => `.aidlc/context/${rel}`);
832
+ // Resolved before the loop so the decision covers the whole run: a prompt per
833
+ // file would let someone answer yes to the first and lose the second to
834
+ // momentum.
835
+ let forceHandOwned = false;
836
+ if (opts.force === true && handOwned.length > 0) {
837
+ forceHandOwned = opts.confirmOverwrite ? await opts.confirmOverwrite(handOwned) : false;
838
+ }
839
+ const written = [];
840
+ const preserved = [];
841
+ const declined = [];
842
+ for (const { rel, body } of docs) {
843
+ const abs = join(contextDir, rel);
844
+ const relPath = `.aidlc/context/${rel}`;
845
+ const machineOwned = isMachineOwned(abs);
846
+ if (machineOwned || forceHandOwned) {
847
+ writeFileSync(abs, body, 'utf8');
848
+ written.push(relPath);
849
+ }
850
+ else if (opts.force === true) {
851
+ // Asked and refused (or nobody could be asked). Distinct from `preserved`:
852
+ // the operator explicitly requested the overwrite, so silence would look
853
+ // like the flag had worked.
854
+ declined.push(relPath);
855
+ }
856
+ else {
857
+ preserved.push(relPath);
858
+ }
859
+ }
860
+ return { written, preserved, declined };
777
861
  }
778
862
  //# sourceMappingURL=scanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/discover/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/discover/scanner.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,21 @@ export declare function trackedFiles(projectRoot: string, pathspecs: string[]):
12
12
  * untrack must never tangle into a pending commit (AC-8).
13
13
  */
14
14
  export declare function hasStagedChanges(projectRoot: string): boolean;
15
+ /**
16
+ * Committer date of the newest commit touching the given pathspecs, ISO 8601.
17
+ *
18
+ * `null` when nothing matches — an untracked path, an unborn HEAD, or not a repo.
19
+ * The caller must treat that as "no answer" rather than "old": a doc that was never
20
+ * committed is not stale, it is new.
21
+ *
22
+ * `execFileSync` with an argument array, never a shell string, so a pathspec
23
+ * containing a space or a semicolon cannot become a second command
24
+ * (secure-defaults: validate at the boundary, and never build a command by
25
+ * concatenation).
26
+ *
27
+ * Requirements: update-overwrites-authored-context/AC-18
28
+ */
29
+ export declare function lastCommitISO(projectRoot: string, pathspecs: string[]): string | null;
15
30
  /** Quote a path for display when it contains shell-special characters. */
16
31
  export declare function shellQuote(path: string): string;
17
32
  //# sourceMappingURL=git.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/doctor/git.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAW/E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAU7D;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/doctor/git.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAW/E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAU7D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAYrF;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C"}
@@ -36,6 +36,34 @@ export function hasStagedChanges(projectRoot) {
36
36
  return true;
37
37
  }
38
38
  }
39
+ /**
40
+ * Committer date of the newest commit touching the given pathspecs, ISO 8601.
41
+ *
42
+ * `null` when nothing matches — an untracked path, an unborn HEAD, or not a repo.
43
+ * The caller must treat that as "no answer" rather than "old": a doc that was never
44
+ * committed is not stale, it is new.
45
+ *
46
+ * `execFileSync` with an argument array, never a shell string, so a pathspec
47
+ * containing a space or a semicolon cannot become a second command
48
+ * (secure-defaults: validate at the boundary, and never build a command by
49
+ * concatenation).
50
+ *
51
+ * Requirements: update-overwrites-authored-context/AC-18
52
+ */
53
+ export function lastCommitISO(projectRoot, pathspecs) {
54
+ try {
55
+ const out = execFileSync('git', ['log', '-1', '--format=%cI', '--', ...pathspecs], {
56
+ cwd: projectRoot,
57
+ encoding: 'utf8',
58
+ stdio: ['ignore', 'pipe', 'ignore'],
59
+ });
60
+ const trimmed = out.trim();
61
+ return trimmed === '' ? null : trimmed;
62
+ }
63
+ catch {
64
+ return null;
65
+ }
66
+ }
39
67
  /** Quote a path for display when it contains shell-special characters. */
40
68
  export function shellQuote(path) {
41
69
  return /^[A-Za-z0-9._/-]+$/.test(path) ? path : `'${path.replaceAll("'", String.raw `'\''`)}'`;
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/doctor/git.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,iEAAiE;AACjE,MAAM,UAAU,YAAY,CAAC,WAAmB,EAAE,SAAmB;IACnE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE;YACtE,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,IAAI,CAAC;QACH,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;YACnD,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAA,MAAM,CAAC,GAAG,CAAC;AAChG,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/doctor/git.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,iEAAiE;AACjE,MAAM,UAAU,YAAY,CAAC,WAAmB,EAAE,SAAmB;IACnE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE;YACtE,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,IAAI,CAAC;QACH,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;YACnD,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAAC,WAAmB,EAAE,SAAmB;IACpE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE;YACjF,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAA,MAAM,CAAC,GAAG,CAAC;AAChG,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * `artifact-source-drift` (report tier): a generated skill disagrees with what
3
+ * generated it.
4
+ *
5
+ * `aidlc doctor` used to say `everything healthy — nothing to do` while committed
6
+ * artifacts had been emitted six versions ago and, in at least one repo, while a
7
+ * human's prose sat in a file the next `aidlc update` would silently overwrite.
8
+ * Doctor is the natural place to notice both, and noticing was the missing half of
9
+ * that defect (update-overwrites-authored-context/AC-14).
10
+ *
11
+ * **How it checks, and why not the obvious way.** Each generated body carries a
12
+ * marker recording the emitting version and a hash of the prose beneath it, so the
13
+ * whole check is a file read plus a hash — see `compile/skill-format.ts`. The
14
+ * obvious alternative, rebuilding the install plan and diffing it, would reach
15
+ * `compile/knowledge-section.ts` → `knowledge/engine.js` → `node:sqlite` and put
16
+ * Node's experimental-feature warning on the default path of `aidlc doctor`. That
17
+ * is the same hazard `knowledge-stale-sources.ts` documents, and an import-graph
18
+ * test pins this module against it too (AC-17).
19
+ *
20
+ * **Why `report` and not `confirm`.** The remedy is `aidlc update`, and doctor must
21
+ * not run it: `update` recompiles every skill, which is precisely the rewrite whose
22
+ * silence started this. Reporting hands the decision to the person who can tell a
23
+ * wanted upgrade from an unwanted overwrite. Nothing here writes anything under any
24
+ * tier or flag, and it never gates doctor's exit code (AC-14, NFR-4).
25
+ *
26
+ * **Two causes, told apart.** A missing marker means the file predates markers —
27
+ * every repo in the world reads that way until its first post-upgrade `update`, so
28
+ * it is reported as expected churn rather than as damage. A version mismatch is
29
+ * framework skew. Only a hash mismatch *at the running version* means somebody
30
+ * edited the artifact (AC-16).
31
+ *
32
+ * Requirements: update-overwrites-authored-context/AC-14 … AC-17, AC-19
33
+ */
34
+ import type { CheckResult, DoctorContext, Migration } from '../types.js';
35
+ /**
36
+ * The single source of pending-ness (`../types.ts`), so dry and real runs cannot
37
+ * disagree. Exported for the tests, which drive it against fixture roots.
38
+ */
39
+ export declare function artifactDriftCheck(ctx: DoctorContext): CheckResult;
40
+ export declare const artifactSourceDrift: Migration;
41
+ //# sourceMappingURL=artifact-source-drift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-source-drift.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/artifact-source-drift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiDzE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,WAAW,CA6BlE;AAwDD,eAAO,MAAM,mBAAmB,EAAE,SAIjC,CAAC"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * `artifact-source-drift` (report tier): a generated skill disagrees with what
3
+ * generated it.
4
+ *
5
+ * `aidlc doctor` used to say `everything healthy — nothing to do` while committed
6
+ * artifacts had been emitted six versions ago and, in at least one repo, while a
7
+ * human's prose sat in a file the next `aidlc update` would silently overwrite.
8
+ * Doctor is the natural place to notice both, and noticing was the missing half of
9
+ * that defect (update-overwrites-authored-context/AC-14).
10
+ *
11
+ * **How it checks, and why not the obvious way.** Each generated body carries a
12
+ * marker recording the emitting version and a hash of the prose beneath it, so the
13
+ * whole check is a file read plus a hash — see `compile/skill-format.ts`. The
14
+ * obvious alternative, rebuilding the install plan and diffing it, would reach
15
+ * `compile/knowledge-section.ts` → `knowledge/engine.js` → `node:sqlite` and put
16
+ * Node's experimental-feature warning on the default path of `aidlc doctor`. That
17
+ * is the same hazard `knowledge-stale-sources.ts` documents, and an import-graph
18
+ * test pins this module against it too (AC-17).
19
+ *
20
+ * **Why `report` and not `confirm`.** The remedy is `aidlc update`, and doctor must
21
+ * not run it: `update` recompiles every skill, which is precisely the rewrite whose
22
+ * silence started this. Reporting hands the decision to the person who can tell a
23
+ * wanted upgrade from an unwanted overwrite. Nothing here writes anything under any
24
+ * tier or flag, and it never gates doctor's exit code (AC-14, NFR-4).
25
+ *
26
+ * **Two causes, told apart.** A missing marker means the file predates markers —
27
+ * every repo in the world reads that way until its first post-upgrade `update`, so
28
+ * it is reported as expected churn rather than as damage. A version mismatch is
29
+ * framework skew. Only a hash mismatch *at the running version* means somebody
30
+ * edited the artifact (AC-16).
31
+ *
32
+ * Requirements: update-overwrites-authored-context/AC-14 … AC-17, AC-19
33
+ */
34
+ import { existsSync, readFileSync, readdirSync } from 'node:fs';
35
+ import { join } from 'node:path';
36
+ import { verifyMarker } from '../../compile/skill-format.js';
37
+ import { VERSION } from '../../core/version.js';
38
+ /**
39
+ * Where generated skill bodies live, relative to the project root.
40
+ *
41
+ * Only the two families that embed prose. `.claude/skills/` and `.cursor/rules/`
42
+ * hold pointer shims — a few hundred bytes naming the canonical body — so they
43
+ * carry no marker, and checking them would report every project as unmarked
44
+ * forever.
45
+ */
46
+ const BODY_DIRS = ['.aidlc/skills', '.github/skills'];
47
+ /** Every generated body file under the given root, as project-relative paths. */
48
+ function bodyFiles(projectRoot) {
49
+ const found = [];
50
+ for (const dir of BODY_DIRS) {
51
+ const abs = join(projectRoot, dir);
52
+ if (!existsSync(abs))
53
+ continue;
54
+ let entries;
55
+ try {
56
+ entries = readdirSync(abs);
57
+ }
58
+ catch {
59
+ // Unreadable directory is not evidence of drift; a permissions problem has a
60
+ // better message elsewhere.
61
+ continue;
62
+ }
63
+ for (const entry of entries.sort()) {
64
+ // `.aidlc/skills/<name>.md` is flat; `.github/skills/<name>/SKILL.md` nests
65
+ // one level. Both shapes, no recursion beyond that.
66
+ if (entry.endsWith('.md')) {
67
+ found.push(`${dir}/${entry}`);
68
+ continue;
69
+ }
70
+ const nested = join(abs, entry, 'SKILL.md');
71
+ if (existsSync(nested)) {
72
+ found.push(`${dir}/${entry}/SKILL.md`);
73
+ }
74
+ }
75
+ }
76
+ return found;
77
+ }
78
+ /**
79
+ * The single source of pending-ness (`../types.ts`), so dry and real runs cannot
80
+ * disagree. Exported for the tests, which drive it against fixture roots.
81
+ */
82
+ export function artifactDriftCheck(ctx) {
83
+ if (!existsSync(join(ctx.projectRoot, '.aidlc', 'config.yaml'))) {
84
+ return { applicable: false, reason: 'not an AIDLC project (no .aidlc/config.yaml)' };
85
+ }
86
+ const files = bodyFiles(ctx.projectRoot);
87
+ if (files.length === 0) {
88
+ return { applicable: false, reason: 'no generated skill bodies to check' };
89
+ }
90
+ const diverged = [];
91
+ for (const rel of files) {
92
+ let content;
93
+ try {
94
+ content = readFileSync(join(ctx.projectRoot, rel), 'utf8');
95
+ }
96
+ catch {
97
+ continue;
98
+ }
99
+ const verdict = verifyMarker(content, VERSION);
100
+ if (verdict.state !== 'clean') {
101
+ diverged.push({ path: rel, verdict });
102
+ }
103
+ }
104
+ if (diverged.length === 0) {
105
+ return { applicable: true, pending: false };
106
+ }
107
+ return { applicable: true, pending: true, description: describe(diverged) };
108
+ }
109
+ /**
110
+ * One sentence per cause, each naming its own files.
111
+ *
112
+ * Grouped by cause rather than listing files flatly, because the remedy differs:
113
+ * skew and unmarked both end with `aidlc update`, an edit needs somebody to decide
114
+ * whether the edit or the source is right.
115
+ */
116
+ function describe(diverged) {
117
+ const unmarked = diverged.filter((d) => d.verdict.state === 'unmarked');
118
+ const skewed = diverged.filter((d) => d.verdict.state === 'version-skew');
119
+ const edited = diverged.filter((d) => d.verdict.state === 'edited');
120
+ const parts = [];
121
+ if (edited.length > 0) {
122
+ parts.push(`${edited.length} generated file(s) differ from what ${VERSION} emitted, at that same ` +
123
+ `version — so the difference is a hand edit, not framework skew: ` +
124
+ `${list(edited)}. \`aidlc update\` will overwrite it; save anything worth keeping ` +
125
+ `to .aidlc/context/*.md first, which regeneration preserves.`);
126
+ }
127
+ if (skewed.length > 0) {
128
+ const versions = [
129
+ ...new Set(skewed.map((d) => (d.verdict.state === 'version-skew' ? d.verdict.emittedBy : '?'))),
130
+ ].sort();
131
+ parts.push(`${skewed.length} generated file(s) were emitted by ${versions.join(', ')} but this CLI ` +
132
+ `is ${VERSION}: ${list(skewed)}. Refresh with \`aidlc update --project-only\` ` +
133
+ `(dry-run first — it now shows per-file line counts).`);
134
+ }
135
+ if (unmarked.length > 0) {
136
+ parts.push(`${unmarked.length} generated file(s) carry no provenance marker, meaning they predate ` +
137
+ `markers rather than that anyone edited them: ${list(unmarked)}. One ` +
138
+ `\`aidlc update --project-only\` stamps them and this stops being reported.`);
139
+ }
140
+ return parts.join(' ');
141
+ }
142
+ /** At most five paths, then a count — a 57-file list is noise, not information. */
143
+ function list(items) {
144
+ const shown = items.slice(0, 5).map((d) => d.path);
145
+ const rest = items.length - shown.length;
146
+ return rest > 0 ? `${shown.join(', ')} and ${rest} more` : shown.join(', ');
147
+ }
148
+ export const artifactSourceDrift = {
149
+ id: 'artifact-source-drift',
150
+ tier: 'report',
151
+ check: artifactDriftCheck,
152
+ };
153
+ //# sourceMappingURL=artifact-source-drift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-source-drift.js","sourceRoot":"","sources":["../../../src/doctor/migrations/artifact-source-drift.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * `context-doc-stale` (report tier): a machine-generated context doc is older than
3
+ * the code it claims to describe.
4
+ *
5
+ * These docs are inlined verbatim into every compiled phase skill, so they are
6
+ * resident context on every turn of every phase. A stale one does not sit quietly
7
+ * being out of date — it actively tells an agent something false at the moment the
8
+ * agent is deciding what to build. One downstream repo's regenerated doc asserted
9
+ * the project "contains no product runtime or cloud resources" four commits after a
10
+ * verified AWS deployment (update-overwrites-authored-context/AC-18).
11
+ *
12
+ * **Only generated docs are reported.** A doc whose frontmatter lacks
13
+ * `generated_by: aidlc-discover` is hand-owned, and `discover` already preserves it
14
+ * (`discover/scanner.ts`'s `isMachineOwned`). Nagging about a hand-written doc would
15
+ * punish exactly the behaviour that protection exists to encourage, and its author
16
+ * maintains it on their own schedule. So the report has a permanent exit: write the
17
+ * doc by hand, drop the marker, and it never fires again.
18
+ *
19
+ * **Why `report`.** The remedy is a person writing prose. `aidlc discover
20
+ * --rediscover` would regenerate from a directory scan, which is what produced the
21
+ * wrong text in the first place — a scanner cannot describe a seam. Doctor states
22
+ * the condition and applies nothing, under any tier or flag, and never gates the
23
+ * exit code (NFR-4).
24
+ *
25
+ * Requirements: update-overwrites-authored-context/AC-18, AC-19
26
+ */
27
+ import type { CheckResult, DoctorContext, Migration } from '../types.js';
28
+ /**
29
+ * The single source of pending-ness (`../types.ts`). Exported for the tests, which
30
+ * drive it against fixture repositories.
31
+ */
32
+ export declare function contextDocStaleCheck(ctx: DoctorContext): CheckResult;
33
+ export declare const contextDocStale: Migration;
34
+ //# sourceMappingURL=context-doc-stale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-doc-stale.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/context-doc-stale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAoCzE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,WAAW,CAkEpE;AAOD,eAAO,MAAM,eAAe,EAAE,SAI7B,CAAC"}