@rasensio/aidlc 1.27.0 → 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 (48) hide show
  1. package/dist/commands/discover.d.ts.map +1 -1
  2. package/dist/commands/discover.js +32 -4
  3. package/dist/commands/discover.js.map +1 -1
  4. package/dist/commands/doctor.js +5 -1
  5. package/dist/commands/doctor.js.map +1 -1
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/update.d.ts +35 -0
  8. package/dist/commands/update.d.ts.map +1 -1
  9. package/dist/commands/update.js +162 -35
  10. package/dist/commands/update.js.map +1 -1
  11. package/dist/compile/install-plan.d.ts +45 -0
  12. package/dist/compile/install-plan.d.ts.map +1 -1
  13. package/dist/compile/install-plan.js +49 -6
  14. package/dist/compile/install-plan.js.map +1 -1
  15. package/dist/compile/loaders.d.ts.map +1 -1
  16. package/dist/compile/loaders.js +10 -1
  17. package/dist/compile/loaders.js.map +1 -1
  18. package/dist/compile/skill-format.d.ts +64 -0
  19. package/dist/compile/skill-format.d.ts.map +1 -1
  20. package/dist/compile/skill-format.js +133 -0
  21. package/dist/compile/skill-format.js.map +1 -1
  22. package/dist/discover/scanner.d.ts +20 -1
  23. package/dist/discover/scanner.d.ts.map +1 -1
  24. package/dist/discover/scanner.js +21 -3
  25. package/dist/discover/scanner.js.map +1 -1
  26. package/dist/doctor/git.d.ts +15 -0
  27. package/dist/doctor/git.d.ts.map +1 -1
  28. package/dist/doctor/git.js +28 -0
  29. package/dist/doctor/git.js.map +1 -1
  30. package/dist/doctor/migrations/artifact-source-drift.d.ts +41 -0
  31. package/dist/doctor/migrations/artifact-source-drift.d.ts.map +1 -0
  32. package/dist/doctor/migrations/artifact-source-drift.js +153 -0
  33. package/dist/doctor/migrations/artifact-source-drift.js.map +1 -0
  34. package/dist/doctor/migrations/context-doc-stale.d.ts +34 -0
  35. package/dist/doctor/migrations/context-doc-stale.d.ts.map +1 -0
  36. package/dist/doctor/migrations/context-doc-stale.js +130 -0
  37. package/dist/doctor/migrations/context-doc-stale.js.map +1 -0
  38. package/dist/doctor/migrations/index.d.ts.map +1 -1
  39. package/dist/doctor/migrations/index.js +14 -0
  40. package/dist/doctor/migrations/index.js.map +1 -1
  41. package/dist/operational/discover.d.ts.map +1 -1
  42. package/dist/operational/discover.js +3 -1
  43. package/dist/operational/discover.js.map +1 -1
  44. package/dist/operational/emit.d.ts +11 -0
  45. package/dist/operational/emit.d.ts.map +1 -1
  46. package/dist/operational/emit.js +33 -11
  47. package/dist/operational/emit.js.map +1 -1
  48. package/package.json +2 -2
@@ -819,26 +819,44 @@ function isMachineOwned(path) {
819
819
  * @param opts.force - Overwrite even hand-edited docs.
820
820
  * @returns Which paths were written and which were preserved.
821
821
  */
822
- export function writeContextDocs(projectRoot, result, opts = {}) {
822
+ export async function writeContextDocs(projectRoot, result, opts = {}) {
823
823
  const contextDir = join(projectRoot, '.aidlc', 'context');
824
824
  mkdirSync(contextDir, { recursive: true });
825
825
  const docs = [
826
826
  { rel: 'style-guide.md', body: renderStyleGuide(result) },
827
827
  { rel: 'architecture.md', body: renderArchitectureDoc(result) },
828
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
+ }
829
839
  const written = [];
830
840
  const preserved = [];
841
+ const declined = [];
831
842
  for (const { rel, body } of docs) {
832
843
  const abs = join(contextDir, rel);
833
844
  const relPath = `.aidlc/context/${rel}`;
834
- if (opts.force === true || isMachineOwned(abs)) {
845
+ const machineOwned = isMachineOwned(abs);
846
+ if (machineOwned || forceHandOwned) {
835
847
  writeFileSync(abs, body, 'utf8');
836
848
  written.push(relPath);
837
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
+ }
838
856
  else {
839
857
  preserved.push(relPath);
840
858
  }
841
859
  }
842
- return { written, preserved };
860
+ return { written, preserved, declined };
843
861
  }
844
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAsB,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGhD;;;;;;;GAOG;AACH,MAAM,SAAS,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAU,CAAC;AAO/D,iFAAiF;AACjF,SAAS,SAAS,CAAC,WAAmB;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC/B,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,6EAA6E;YAC7E,4BAA4B;YAC5B,SAAS;QACX,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACnC,4EAA4E;YAC5E,oDAAoD;YACpD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAC5C,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAkB;IACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,8CAA8C,EAAE,CAAC;IACvF,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;IAC7E,CAAC;IAED,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,SAAS,QAAQ,CAAC,QAAsB;IACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;IAEpE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,MAAM,uCAAuC,OAAO,yBAAyB;YACrF,kEAAkE;YAClE,GAAG,IAAI,CAAC,MAAM,CAAC,oEAAoE;YACnF,6DAA6D,CAChE,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG;YACf,GAAG,IAAI,GAAG,CACR,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CACpF;SACF,CAAC,IAAI,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,MAAM,sCAAsC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB;YACvF,MAAM,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,iDAAiD;YAC/E,sDAAsD,CACzD,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CACR,GAAG,QAAQ,CAAC,MAAM,sEAAsE;YACtF,gDAAgD,IAAI,CAAC,QAAQ,CAAC,QAAQ;YACtE,4EAA4E,CAC/E,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,mFAAmF;AACnF,SAAS,IAAI,CAAC,KAAmB;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACzC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAc;IAC5C,EAAE,EAAE,uBAAuB;IAC3B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,kBAAkB;CAC1B,CAAC"}
@@ -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"}
@@ -0,0 +1,130 @@
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 { existsSync, readFileSync, readdirSync } from 'node:fs';
28
+ import { join } from 'node:path';
29
+ import { lastCommitISO } from '../git.js';
30
+ /** The marker `discover` stamps on docs it owns. Kept in step with `discover/scanner.ts`. */
31
+ const GENERATED_MARKER = 'generated_by: aidlc-discover';
32
+ const CONTEXT_DIR = '.aidlc/context';
33
+ /**
34
+ * Pathspecs for "the code this doc describes": the whole tree except lifecycle
35
+ * bookkeeping and the generated artifacts that derive from it.
36
+ *
37
+ * Excluding `.aidlc/` is what makes the signal mean something. Without it every
38
+ * lifecycle state write — a phase YAML, a cost record — would count as a code
39
+ * change and every doc would read as stale within minutes of any work at all.
40
+ */
41
+ const CODE_PATHSPECS = [
42
+ '.',
43
+ ':(exclude).aidlc',
44
+ ':(exclude).claude',
45
+ ':(exclude).github/skills',
46
+ ];
47
+ /** Is this doc still machine-owned? Mirrors `discover/scanner.ts`'s frontmatter check. */
48
+ function isGenerated(body) {
49
+ if (!body.startsWith('---\n'))
50
+ return false;
51
+ const end = body.indexOf('\n---', 4);
52
+ if (end === -1)
53
+ return false;
54
+ return body.slice(4, end).includes(GENERATED_MARKER);
55
+ }
56
+ /**
57
+ * The single source of pending-ness (`../types.ts`). Exported for the tests, which
58
+ * drive it against fixture repositories.
59
+ */
60
+ export function contextDocStaleCheck(ctx) {
61
+ if (ctx.gitCommonDir === null) {
62
+ return { applicable: false, reason: 'not a git repository — no commit dates to compare' };
63
+ }
64
+ const contextAbs = join(ctx.projectRoot, CONTEXT_DIR);
65
+ if (!existsSync(contextAbs)) {
66
+ return { applicable: false, reason: 'no .aidlc/context/ directory' };
67
+ }
68
+ let entries;
69
+ try {
70
+ entries = readdirSync(contextAbs).filter((e) => e.endsWith('.md'));
71
+ }
72
+ catch {
73
+ return { applicable: false, reason: '.aidlc/context/ could not be read' };
74
+ }
75
+ const generated = entries.sort().filter((entry) => {
76
+ try {
77
+ return isGenerated(readFileSync(join(contextAbs, entry), 'utf8'));
78
+ }
79
+ catch {
80
+ // Unreadable is treated as hand-owned, matching `isMachineOwned`: refusing to
81
+ // report is recoverable, guessing is not.
82
+ return false;
83
+ }
84
+ });
85
+ if (generated.length === 0) {
86
+ return {
87
+ applicable: false,
88
+ reason: 'every context doc is hand-written — nothing here is generated',
89
+ };
90
+ }
91
+ // One git invocation for the code side, shared across every doc.
92
+ const codeDate = lastCommitISO(ctx.projectRoot, CODE_PATHSPECS);
93
+ if (codeDate === null) {
94
+ return { applicable: false, reason: 'no commits touching code yet' };
95
+ }
96
+ const stale = [];
97
+ for (const entry of generated) {
98
+ const rel = `${CONTEXT_DIR}/${entry}`;
99
+ const docDate = lastCommitISO(ctx.projectRoot, [rel]);
100
+ // Never committed → new, not stale.
101
+ if (docDate === null)
102
+ continue;
103
+ if (docDate < codeDate) {
104
+ stale.push({ path: rel, docDate, codeDate });
105
+ }
106
+ }
107
+ if (stale.length === 0) {
108
+ return { applicable: true, pending: false };
109
+ }
110
+ return {
111
+ applicable: true,
112
+ pending: true,
113
+ description: `${stale.length} generated context doc(s) are older than the code they describe, and are ` +
114
+ `inlined into every phase skill: ` +
115
+ `${stale.map((s) => `${s.path} (last committed ${day(s.docDate)}, code ${day(s.codeDate)})`).join('; ')}. ` +
116
+ `Doctor applies nothing here — a directory scan cannot describe a seam. Either rewrite the ` +
117
+ `doc by hand and remove its \`${GENERATED_MARKER}\` frontmatter, which also stops this ` +
118
+ `report for good, or regenerate with \`aidlc discover --rediscover\`.`,
119
+ };
120
+ }
121
+ /** ISO date without the time — the comparison needs precision, the message does not. */
122
+ function day(iso) {
123
+ return iso.slice(0, 10);
124
+ }
125
+ export const contextDocStale = {
126
+ id: 'context-doc-stale',
127
+ tier: 'report',
128
+ check: contextDocStaleCheck,
129
+ };
130
+ //# sourceMappingURL=context-doc-stale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-doc-stale.js","sourceRoot":"","sources":["../../../src/doctor/migrations/context-doc-stale.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA+B7C,eAAO,MAAM,UAAU,EAAE,SAAS,EA0EjC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiC7C,eAAO,MAAM,UAAU,EAAE,SAAS,EAsFjC,CAAC"}