@cleocode/core 2026.11.1-canary.2 → 2026.11.1-canary.4

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 (217) hide show
  1. package/README.md +2 -0
  2. package/binaries/README.md +30 -10
  3. package/dist/.source-stamp.json +1 -1
  4. package/dist/audit/reconstruct.d.ts.map +1 -1
  5. package/dist/audit/reconstruct.js +3 -13
  6. package/dist/audit/reconstruct.js.map +1 -1
  7. package/dist/build-provenance.json +2 -2
  8. package/dist/cloud/nexus-vault.d.ts.map +1 -1
  9. package/dist/cloud/nexus-vault.js +3 -9
  10. package/dist/cloud/nexus-vault.js.map +1 -1
  11. package/dist/docs/docs-fts.d.ts +102 -0
  12. package/dist/docs/docs-fts.d.ts.map +1 -0
  13. package/dist/docs/docs-fts.js +276 -0
  14. package/dist/docs/docs-fts.js.map +1 -0
  15. package/dist/docs/docs-ops.d.ts +40 -5
  16. package/dist/docs/docs-ops.d.ts.map +1 -1
  17. package/dist/docs/docs-ops.js +168 -19
  18. package/dist/docs/docs-ops.js.map +1 -1
  19. package/dist/docs/docs-read-model.d.ts +41 -14
  20. package/dist/docs/docs-read-model.d.ts.map +1 -1
  21. package/dist/docs/docs-read-model.js +13 -99
  22. package/dist/docs/docs-read-model.js.map +1 -1
  23. package/dist/docs/doctor.d.ts +39 -0
  24. package/dist/docs/doctor.d.ts.map +1 -1
  25. package/dist/docs/doctor.js +111 -31
  26. package/dist/docs/doctor.js.map +1 -1
  27. package/dist/docs/lineage.d.ts +16 -1
  28. package/dist/docs/lineage.d.ts.map +1 -1
  29. package/dist/docs/lineage.js +73 -0
  30. package/dist/docs/lineage.js.map +1 -1
  31. package/dist/docs/modernize/apply.d.ts +16 -2
  32. package/dist/docs/modernize/apply.d.ts.map +1 -1
  33. package/dist/docs/modernize/apply.js +116 -28
  34. package/dist/docs/modernize/apply.js.map +1 -1
  35. package/dist/docs/modernize/guard.d.ts +27 -7
  36. package/dist/docs/modernize/guard.d.ts.map +1 -1
  37. package/dist/docs/modernize/guard.js +110 -14
  38. package/dist/docs/modernize/guard.js.map +1 -1
  39. package/dist/docs/modernize/index.d.ts +11 -2
  40. package/dist/docs/modernize/index.d.ts.map +1 -1
  41. package/dist/docs/modernize/index.js +20 -10
  42. package/dist/docs/modernize/index.js.map +1 -1
  43. package/dist/docs/modernize/plan.d.ts.map +1 -1
  44. package/dist/docs/modernize/plan.js +113 -5
  45. package/dist/docs/modernize/plan.js.map +1 -1
  46. package/dist/docs/modernize/rules.d.ts +92 -8
  47. package/dist/docs/modernize/rules.d.ts.map +1 -1
  48. package/dist/docs/modernize/rules.js +224 -28
  49. package/dist/docs/modernize/rules.js.map +1 -1
  50. package/dist/docs/publish-pr.d.ts.map +1 -1
  51. package/dist/docs/publish-pr.js +3 -1
  52. package/dist/docs/publish-pr.js.map +1 -1
  53. package/dist/gateway-client/generated/index.d.ts +2 -2
  54. package/dist/gateway-client/generated/index.d.ts.map +1 -1
  55. package/dist/gateway-client/generated/index.js +1 -1
  56. package/dist/gateway-client/generated/index.js.map +1 -1
  57. package/dist/gateway-client/generated/namespaces.gen.d.ts +1 -0
  58. package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -1
  59. package/dist/gateway-client/generated/namespaces.gen.js +2 -1
  60. package/dist/gateway-client/generated/namespaces.gen.js.map +1 -1
  61. package/dist/gateway-client/generated/sdk.gen.d.ts +5 -1
  62. package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -1
  63. package/dist/gateway-client/generated/sdk.gen.js +11 -0
  64. package/dist/gateway-client/generated/sdk.gen.js.map +1 -1
  65. package/dist/gateway-client/generated/types.gen.d.ts +54 -0
  66. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
  67. package/dist/git/work-tree.d.ts +24 -0
  68. package/dist/git/work-tree.d.ts.map +1 -1
  69. package/dist/git/work-tree.js +12 -1
  70. package/dist/git/work-tree.js.map +1 -1
  71. package/dist/init.d.ts.map +1 -1
  72. package/dist/init.js +13 -5
  73. package/dist/init.js.map +1 -1
  74. package/dist/internal.d.ts +1 -1
  75. package/dist/internal.d.ts.map +1 -1
  76. package/dist/internal.js +1 -1
  77. package/dist/internal.js.map +1 -1
  78. package/dist/memory/engine-compat.d.ts.map +1 -1
  79. package/dist/memory/engine-compat.js +44 -12
  80. package/dist/memory/engine-compat.js.map +1 -1
  81. package/dist/orchestration/spawn-prompt.d.ts +17 -0
  82. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  83. package/dist/orchestration/spawn-prompt.js +41 -3
  84. package/dist/orchestration/spawn-prompt.js.map +1 -1
  85. package/dist/orchestration/spawn.d.ts.map +1 -1
  86. package/dist/orchestration/spawn.js +12 -0
  87. package/dist/orchestration/spawn.js.map +1 -1
  88. package/dist/paths.d.ts +20 -0
  89. package/dist/paths.d.ts.map +1 -1
  90. package/dist/paths.js +26 -0
  91. package/dist/paths.js.map +1 -1
  92. package/dist/release/ci-evidence.d.ts +7 -3
  93. package/dist/release/ci-evidence.d.ts.map +1 -1
  94. package/dist/release/ci-evidence.js +77 -14
  95. package/dist/release/ci-evidence.js.map +1 -1
  96. package/dist/release/cut.d.ts +13 -0
  97. package/dist/release/cut.d.ts.map +1 -1
  98. package/dist/release/cut.js +63 -9
  99. package/dist/release/cut.js.map +1 -1
  100. package/dist/release/engine-ops.d.ts.map +1 -1
  101. package/dist/release/engine-ops.js +10 -4
  102. package/dist/release/engine-ops.js.map +1 -1
  103. package/dist/release/plan.d.ts +3 -1
  104. package/dist/release/plan.d.ts.map +1 -1
  105. package/dist/release/plan.js +4 -2
  106. package/dist/release/plan.js.map +1 -1
  107. package/dist/release/reconcile.d.ts +3 -1
  108. package/dist/release/reconcile.d.ts.map +1 -1
  109. package/dist/release/reconcile.js +18 -6
  110. package/dist/release/reconcile.js.map +1 -1
  111. package/dist/release/release-published.d.ts +27 -0
  112. package/dist/release/release-published.d.ts.map +1 -0
  113. package/dist/release/release-published.js +35 -0
  114. package/dist/release/release-published.js.map +1 -0
  115. package/dist/remote/index.js +1 -1
  116. package/dist/remote/index.js.map +1 -1
  117. package/dist/scaffold/ensure-dirs.d.ts.map +1 -1
  118. package/dist/scaffold/ensure-dirs.js +8 -6
  119. package/dist/scaffold/ensure-dirs.js.map +1 -1
  120. package/dist/selfimprove/draft-pr.d.ts.map +1 -1
  121. package/dist/selfimprove/draft-pr.js +4 -1
  122. package/dist/selfimprove/draft-pr.js.map +1 -1
  123. package/dist/skills/propose-patch.d.ts.map +1 -1
  124. package/dist/skills/propose-patch.js +4 -1
  125. package/dist/skills/propose-patch.js.map +1 -1
  126. package/dist/store/ac-binding-prune.d.ts +3 -2
  127. package/dist/store/ac-binding-prune.d.ts.map +1 -1
  128. package/dist/store/ac-binding-prune.js +4 -3
  129. package/dist/store/ac-binding-prune.js.map +1 -1
  130. package/dist/store/git-checkpoint.d.ts +11 -1
  131. package/dist/store/git-checkpoint.d.ts.map +1 -1
  132. package/dist/store/git-checkpoint.js +14 -3
  133. package/dist/store/git-checkpoint.js.map +1 -1
  134. package/dist/store/schema/tasks.d.ts +1 -1
  135. package/dist/store/schema/tasks.d.ts.map +1 -1
  136. package/dist/store/schema/tasks.js +2 -0
  137. package/dist/store/schema/tasks.js.map +1 -1
  138. package/dist/store/table-classification.d.ts.map +1 -1
  139. package/dist/store/table-classification.js +8 -0
  140. package/dist/store/table-classification.js.map +1 -1
  141. package/dist/system/dependencies.d.ts +22 -0
  142. package/dist/system/dependencies.d.ts.map +1 -1
  143. package/dist/system/dependencies.js +49 -2
  144. package/dist/system/dependencies.js.map +1 -1
  145. package/dist/system/health.d.ts.map +1 -1
  146. package/dist/system/health.js +3 -1
  147. package/dist/system/health.js.map +1 -1
  148. package/dist/task-work/index.d.ts.map +1 -1
  149. package/dist/task-work/index.js +3 -1
  150. package/dist/task-work/index.js.map +1 -1
  151. package/dist/tasks/ac-immutability.d.ts +21 -2
  152. package/dist/tasks/ac-immutability.d.ts.map +1 -1
  153. package/dist/tasks/ac-immutability.js +25 -0
  154. package/dist/tasks/ac-immutability.js.map +1 -1
  155. package/dist/tasks/ac-table.d.ts +15 -1
  156. package/dist/tasks/ac-table.d.ts.map +1 -1
  157. package/dist/tasks/ac-table.js +21 -0
  158. package/dist/tasks/ac-table.js.map +1 -1
  159. package/dist/tasks/add.d.ts +8 -0
  160. package/dist/tasks/add.d.ts.map +1 -1
  161. package/dist/tasks/add.js +12 -3
  162. package/dist/tasks/add.js.map +1 -1
  163. package/dist/tasks/change-set.d.ts.map +1 -1
  164. package/dist/tasks/change-set.js +92 -27
  165. package/dist/tasks/change-set.js.map +1 -1
  166. package/dist/tasks/complete.d.ts.map +1 -1
  167. package/dist/tasks/complete.js +23 -14
  168. package/dist/tasks/complete.js.map +1 -1
  169. package/dist/tasks/component-pr.d.ts.map +1 -1
  170. package/dist/tasks/component-pr.js +4 -3
  171. package/dist/tasks/component-pr.js.map +1 -1
  172. package/dist/tasks/criterion-receipt.d.ts +63 -0
  173. package/dist/tasks/criterion-receipt.d.ts.map +1 -0
  174. package/dist/tasks/criterion-receipt.js +145 -0
  175. package/dist/tasks/criterion-receipt.js.map +1 -0
  176. package/dist/tasks/done-plan.d.ts.map +1 -1
  177. package/dist/tasks/done-plan.js +70 -6
  178. package/dist/tasks/done-plan.js.map +1 -1
  179. package/dist/tasks/evidence.d.ts +8 -2
  180. package/dist/tasks/evidence.d.ts.map +1 -1
  181. package/dist/tasks/evidence.js +51 -15
  182. package/dist/tasks/evidence.js.map +1 -1
  183. package/dist/tasks/gate-notes.d.ts +17 -0
  184. package/dist/tasks/gate-notes.d.ts.map +1 -1
  185. package/dist/tasks/gate-notes.js.map +1 -1
  186. package/dist/tasks/manifest-scope.d.ts +42 -5
  187. package/dist/tasks/manifest-scope.d.ts.map +1 -1
  188. package/dist/tasks/manifest-scope.js +162 -9
  189. package/dist/tasks/manifest-scope.js.map +1 -1
  190. package/dist/tasks/merge-close.d.ts +25 -2
  191. package/dist/tasks/merge-close.d.ts.map +1 -1
  192. package/dist/tasks/merge-close.js +30 -2
  193. package/dist/tasks/merge-close.js.map +1 -1
  194. package/dist/tasks/req.d.ts +49 -0
  195. package/dist/tasks/req.d.ts.map +1 -1
  196. package/dist/tasks/req.js +156 -2
  197. package/dist/tasks/req.js.map +1 -1
  198. package/dist/tasks/verification-policy.d.ts +34 -0
  199. package/dist/tasks/verification-policy.d.ts.map +1 -1
  200. package/dist/tasks/verification-policy.js +77 -5
  201. package/dist/tasks/verification-policy.js.map +1 -1
  202. package/dist/validation/doctor/checks.d.ts +20 -0
  203. package/dist/validation/doctor/checks.d.ts.map +1 -1
  204. package/dist/validation/doctor/checks.js +112 -0
  205. package/dist/validation/doctor/checks.js.map +1 -1
  206. package/dist/validation/engine-ops.d.ts.map +1 -1
  207. package/dist/validation/engine-ops.js +11 -4
  208. package/dist/validation/engine-ops.js.map +1 -1
  209. package/dist/worktree/merged-cleanup.d.ts +10 -0
  210. package/dist/worktree/merged-cleanup.d.ts.map +1 -1
  211. package/dist/worktree/merged-cleanup.js +12 -1
  212. package/dist/worktree/merged-cleanup.js.map +1 -1
  213. package/package.json +12 -12
  214. package/templates/CLEO-INJECTION.md +1 -1
  215. package/templates/CLEO-REFERENCE.md +6 -2
  216. package/templates/git-hooks/legacy-hashes.json +2 -1
  217. package/templates/git-hooks/pre-commit +43 -11
@@ -1,36 +1,3 @@
1
- /**
2
- * DocsReadModel — unified read-side query surface for the CLEO docs system.
3
- *
4
- * Abstracts the scattered document surfaces (the `attachments` doc registry,
5
- * manifest.db blobs, and the `docs_publications` store ledger) behind one
6
- * coherent read API. Agents and CLI command handlers query through this
7
- * model instead of navigating the individual stores directly.
8
- *
9
- * Lookup axes:
10
- * - slug → resolve by stable human-readable slug (from attachments.slug)
11
- * - owner → resolve all docs owned by a task/session/observation
12
- * - attachmentId → resolve by attachment UUID or SHA-256 content address
13
- * - blobName → resolve by blob name within an owner's manifest
14
- * - latest → resolve the latest version for a given slug
15
- *
16
- * The read model also surfaces publication status and drift classification
17
- * from the `docs_publications` store ledger, which is the canonical record
18
- * of which blobs have been published to git-tracked paths and whether those
19
- * published files are in-sync with the backing blob store.
20
- *
21
- * Content reads are blob-store ONLY (T13362): the legacy
22
- * `.cleo/attachments/sha256/` byte tree has no fallback path here — docs
23
- * whose bytes were never mirrored/consolidated into `.cleo/blobs/blobs/`
24
- * report `no-content` until migrated.
25
- *
26
- * @task T11049 (T10516-C2)
27
- * @epic T10519 (T10516-C)
28
- * @saga T10516 (SG-DOCS-CLI-SIMPLIFICATION)
29
- * @see packages/core/src/store/attachment-store.ts (doc registry)
30
- * @see packages/core/src/store/blob-ops.ts (manifest.db blobs via llmtxt)
31
- * @see packages/core/src/docs/docs-ops.ts (publications ledger + status)
32
- */
33
- import { createHash } from 'node:crypto';
34
1
  import { getProjectRoot } from '../paths.js';
35
2
  import { createAttachmentStore } from '../store/attachment-store.js';
36
3
  import { blobList, blobRead, blobReadBySha } from '../store/blob-ops.js';
@@ -346,73 +313,20 @@ export class DocsReadModel {
346
313
  /**
347
314
  * Check publication status for all published docs.
348
315
  *
349
- * Compares the blob SHA in the store against the file SHA on disk
350
- * for every row of the `docs_publications` store ledger.
351
- * Returns the same shape as `statusDocs()` for backward compatibility.
316
+ * Delegates to {@link statusDocs} so `cleo docs status`, the doctor and
317
+ * every other caller share one drift classification (T14135), including the
318
+ * default-branch and unmerged-worktree cases.
319
+ *
320
+ * @param projectRootOverride - Store root (default: the model's project root).
321
+ * @param checkoutRoot - Where the mirror files are read (default: the store
322
+ * root); the invoking CLEO worktree when run from one (T14188).
352
323
  */
353
- async status(projectRootOverride) {
354
- const root = projectRootOverride ?? this.projectRoot;
355
- const publications = await this.loadPublications();
356
- if (publications.length === 0) {
357
- return { items: [], allInSync: true };
358
- }
359
- const { readFile, stat } = await import('node:fs/promises');
360
- const { resolve: resolvePathFn, isAbsolute: isAbs } = await import('node:path');
361
- // Build blob sha cache from the manifest
362
- const ownerCache = new Map();
363
- async function getBlobSha(ownerId, blobName, ledgerSha) {
364
- let perOwner = ownerCache.get(ownerId);
365
- if (!perOwner) {
366
- perOwner = new Map();
367
- const rows = await blobList(ownerId, root).catch(() => []);
368
- for (const row of rows)
369
- perOwner.set(row.name, row.sha256);
370
- ownerCache.set(ownerId, perOwner);
371
- }
372
- return perOwner.get(blobName) ?? ledgerSha;
373
- }
374
- const items = [];
375
- for (const row of publications) {
376
- const filePath = isAbs(row.publishedPath)
377
- ? row.publishedPath
378
- : resolvePathFn(root, row.publishedPath);
379
- const blobSha = await getBlobSha(row.ownerId, row.blobName, row.lastBlobSha);
380
- let fileSha = null;
381
- let exists = false;
382
- try {
383
- await stat(filePath);
384
- exists = true;
385
- }
386
- catch {
387
- /* missing */
388
- }
389
- let drift;
390
- if (exists) {
391
- try {
392
- const data = await readFile(filePath);
393
- fileSha = createHash('sha256').update(data).digest('hex');
394
- drift = fileSha === blobSha ? 'in-sync' : 'modified';
395
- }
396
- catch {
397
- drift = 'deleted';
398
- }
399
- }
400
- else {
401
- drift = 'deleted';
402
- }
403
- items.push({
404
- ownerId: row.ownerId,
405
- blobName: row.blobName,
406
- publishedPath: row.publishedPath,
407
- blobSha,
408
- fileSha,
409
- drift,
410
- });
411
- }
412
- return {
413
- items,
414
- allInSync: items.every((i) => i.drift === 'in-sync'),
415
- };
324
+ async status(projectRootOverride, checkoutRoot) {
325
+ const { statusDocs } = await import('./docs-ops.js');
326
+ return statusDocs({
327
+ projectRoot: projectRootOverride ?? this.projectRoot,
328
+ ...(checkoutRoot !== undefined ? { checkoutRoot } : {}),
329
+ });
416
330
  }
417
331
  // -----------------------------------------------------------------------
418
332
  // Private: resolution helpers
@@ -1 +1 @@
1
- {"version":3,"file":"docs-read-model.js","sourceRoot":"","sources":["../../src/docs/docs-read-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs-read-model.js","sourceRoot":"","sources":["../../src/docs/docs-read-model.ts"],"names":[],"mappings":"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"}
@@ -152,6 +152,19 @@ export interface DocsDoctorDiagnostic {
152
152
  /** True when `count` exceeded the detail cap. */
153
153
  readonly truncated: boolean;
154
154
  }
155
+ /**
156
+ * The diagnostic classes that carry a repair, accepted by
157
+ * {@link DocsDoctorOptions.only} to scope a run to some of them (T14174).
158
+ *
159
+ * @task T14174
160
+ */
161
+ export declare const DOCS_DOCTOR_REPAIR_CLASSES: readonly ["dangling-pointers", "doc-version-skew", "empty-provenance", "wikilinks-drift", "legacy-blob-coverage", "conduit-history-gaps", "publication-ledger-drift"];
162
+ /**
163
+ * A diagnostic class that carries a repair.
164
+ *
165
+ * @task T14174
166
+ */
167
+ export type DocsDoctorRepairClass = (typeof DOCS_DOCTOR_REPAIR_CLASSES)[number];
155
168
  /**
156
169
  * One planned or executed repair step.
157
170
  *
@@ -187,6 +200,16 @@ export interface DocsDoctorReport {
187
200
  readonly diagnostics: readonly DocsDoctorDiagnostic[];
188
201
  /** Repair plan (dry run) or executed repairs (apply). */
189
202
  readonly repairs: readonly DocsDoctorRepairAction[];
203
+ /**
204
+ * Repairs per class: `planned` lists every repair entry of the class,
205
+ * `applied` the ones written (0 on a dry run) (T14174).
206
+ */
207
+ readonly repairCounts: Readonly<Partial<Record<DocsDoctorRepairClass, {
208
+ readonly planned: number;
209
+ readonly applied: number;
210
+ }>>>;
211
+ /** The classes this run was scoped to, or null for every class (T14174). */
212
+ readonly only: readonly DocsDoctorRepairClass[] | null;
190
213
  /** One-line human summary. */
191
214
  readonly summary: string;
192
215
  }
@@ -210,12 +233,28 @@ export interface DocsDoctorOptions {
210
233
  readonly repair?: boolean;
211
234
  /** Age threshold (days) for the `stale-drafts` diagnostic. Default 30. */
212
235
  readonly olderThanDays?: number;
236
+ /**
237
+ * Scope the run to these repair classes ({@link DOCS_DOCTOR_REPAIR_CLASSES})
238
+ * (T14174): only their repairs are planned and, under {@link apply},
239
+ * written; every other class is left untouched. Diagnostics still report
240
+ * every class. An unknown name is refused with `E_DOCS_DOCTOR_UNKNOWN_CLASS`.
241
+ * The wikilinks rebuild also runs for `empty-provenance`, since a provenance
242
+ * backfill changes the derived edges. Cannot be combined with {@link repair}.
243
+ */
244
+ readonly only?: readonly string[];
213
245
  /**
214
246
  * Path to a backup artifact created within the last
215
247
  * {@link DOCS_DOCTOR_BACKUP_MAX_AGE_MS} milliseconds (checked via mtime).
216
248
  * Required when {@link apply} is true.
217
249
  */
218
250
  readonly backupReceiptPath?: string;
251
+ /**
252
+ * Where the published mirrors are read and git is asked (T14188): the
253
+ * invoking checkout, so a run from a CLEO worktree compares the store
254
+ * against that worktree's docs/. The store, ledger and backups stay at the
255
+ * project root. Default: the project root.
256
+ */
257
+ readonly checkoutRoot?: string;
219
258
  }
220
259
  /**
221
260
  * Discriminated outcome of {@link runDocsDoctor}.
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/docs/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/docs/doctor.ts"],"names":[],"mappings":"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"}
@@ -115,6 +115,7 @@ import { docsAttachments } from '../store/tasks-schema.js';
115
115
  import { applyConduitHistoryBackfill, planConduitHistoryBackfill, } from './conduit-history-backfill.js';
116
116
  import { deriveDocLinks, isScannableTextMime, linksJsonOrNull, } from './derive-links.js';
117
117
  import { DOCS_VERSIONING_AUDIT_FILE } from './docs-update.js';
118
+ import { assertCheckoutOfProject } from './modernize/guard.js';
118
119
  import { deleteDocsPublication, readDocsPublications } from './publications-store.js';
119
120
  import { deriveWikilinkEdges, rebuildDocsWikilinks } from './wikilinks.js';
120
121
  /**
@@ -147,6 +148,25 @@ export const DOCS_DOCTOR_MAX_DETAIL_ITEMS = 50;
147
148
  * @task T14117
148
149
  */
149
150
  export const DOCS_DOCTOR_LEDGER_PRUNE_AUDIT_FILE = '.cleo/audit/docs-publications-prune.jsonl';
151
+ /**
152
+ * The diagnostic classes that carry a repair, accepted by
153
+ * {@link DocsDoctorOptions.only} to scope a run to some of them (T14174).
154
+ *
155
+ * @task T14174
156
+ */
157
+ export const DOCS_DOCTOR_REPAIR_CLASSES = [
158
+ 'dangling-pointers',
159
+ 'doc-version-skew',
160
+ 'empty-provenance',
161
+ 'wikilinks-drift',
162
+ 'legacy-blob-coverage',
163
+ 'conduit-history-gaps',
164
+ 'publication-ledger-drift',
165
+ ];
166
+ /** Whether a diagnostic kind carries a repair (T14174). @internal */
167
+ function isRepairClass(kind) {
168
+ return DOCS_DOCTOR_REPAIR_CLASSES.includes(kind);
169
+ }
150
170
  /**
151
171
  * Parse a row's `attachment_json` defensively. Malformed JSON yields null —
152
172
  * such rows are skipped by kind-scoped checks rather than failing the run.
@@ -435,12 +455,12 @@ function provePublicationGone(projectRoot, publishedPath, absPath) {
435
455
  *
436
456
  * @internal
437
457
  */
438
- async function scanPublicationLedger(projectRoot, rows) {
458
+ async function scanPublicationLedger(projectRoot, rows, checkoutRoot) {
439
459
  const ledger = await readDocsPublications(projectRoot);
440
460
  if (ledger.length === 0)
441
461
  return [];
442
- const { statusDocs } = await import('./docs-ops.js');
443
- const status = await statusDocs({ projectRoot });
462
+ const { resolvePublishedMirror, statusDocs } = await import('./docs-ops.js');
463
+ const status = await statusDocs({ projectRoot, checkoutRoot });
444
464
  const key = (r) => `${r.ownerId}\u0000${r.blobName}\u0000${r.publishedPath}`;
445
465
  const recordByKey = new Map(ledger.map((r) => [key(r), r]));
446
466
  const attachmentShas = new Set(rows.map((r) => r.sha256));
@@ -459,10 +479,8 @@ async function scanPublicationLedger(projectRoot, rows) {
459
479
  const record = recordByKey.get(key(item));
460
480
  if (!record)
461
481
  continue;
462
- const absPath = isAbsolute(record.publishedPath)
463
- ? record.publishedPath
464
- : resolve(projectRoot, record.publishedPath);
465
- const rel = relative(projectRoot, absPath);
482
+ const absPath = resolvePublishedMirror(projectRoot, checkoutRoot, record.publishedPath);
483
+ const rel = relative(checkoutRoot, absPath);
466
484
  const outsideRoot = rel.startsWith('..') || isAbsolute(rel);
467
485
  if (item.drift === 'modified') {
468
486
  const storeMoved = item.fileSha === record.lastBlobSha;
@@ -480,7 +498,7 @@ async function scanPublicationLedger(projectRoot, rows) {
480
498
  }
481
499
  const shas = new Set([record.lastBlobSha, item.blobSha]);
482
500
  const protectedElsewhere = [...shas].every((sha) => attachmentShas.has(sha) || (liveLedgerShas.get(sha) ?? 0) > 0);
483
- const proof = provePublicationGone(projectRoot, record.publishedPath, absPath);
501
+ const proof = provePublicationGone(checkoutRoot, record.publishedPath, absPath);
484
502
  const blob = record.lastBlobSha.slice(0, 12);
485
503
  let action;
486
504
  let detail;
@@ -516,7 +534,7 @@ async function scanPublicationLedger(projectRoot, rows) {
516
534
  *
517
535
  * @internal
518
536
  */
519
- async function scanStore(projectRoot, db, olderThanDays) {
537
+ async function scanStore(projectRoot, db, olderThanDays, checkoutRoot) {
520
538
  const rows = await db.select().from(docsAttachments).all();
521
539
  const payloadById = new Map();
522
540
  for (const row of rows)
@@ -721,7 +739,7 @@ async function scanStore(projectRoot, db, olderThanDays) {
721
739
  // planner reads the audit file, the registry and (hash-verified) bytes,
722
740
  // and writes nothing.
723
741
  const conduitBackfill = await planConduitHistoryBackfill(projectRoot);
724
- const ledger = await scanPublicationLedger(projectRoot, rows);
742
+ const ledger = await scanPublicationLedger(projectRoot, rows, checkoutRoot);
725
743
  const ledgerItems = ledger.slice(0, DOCS_DOCTOR_MAX_DETAIL_ITEMS).map((f) => ({
726
744
  ownerId: f.record.ownerId,
727
745
  blobName: f.record.blobName,
@@ -866,18 +884,63 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
866
884
  },
867
885
  };
868
886
  }
887
+ // T14174 — scope to some repair classes.
888
+ let only = null;
889
+ if (opts.only !== undefined) {
890
+ const valid = new Set(DOCS_DOCTOR_REPAIR_CLASSES);
891
+ const unknown = opts.only.filter((c) => !valid.has(c));
892
+ if (unknown.length > 0 || opts.only.length === 0) {
893
+ return {
894
+ ok: false,
895
+ error: {
896
+ // @sync-invariant none:input-shape an argument refusal before any repair write; nothing was written
897
+ code: 'E_DOCS_DOCTOR_UNKNOWN_CLASS',
898
+ message: `docs doctor: --only ${unknown.length > 0 ? `names unknown class(es) ${unknown.join(', ')}` : 'names no class'}; ` +
899
+ `valid classes: ${DOCS_DOCTOR_REPAIR_CLASSES.join(', ')}`,
900
+ },
901
+ };
902
+ }
903
+ if (repair) {
904
+ return {
905
+ ok: false,
906
+ error: {
907
+ // @sync-invariant none:input-shape a flag-combination refusal before any repair write; nothing was written
908
+ code: 'E_DOCS_DOCTOR_FLAG_CONFLICT',
909
+ message: 'docs doctor: --only and --repair cannot be combined — --repair is already scoped to ' +
910
+ 'the legacy-blob backfill; use `--apply --only legacy-blob-coverage` instead.',
911
+ },
912
+ };
913
+ }
914
+ only = [...new Set(opts.only)].filter((c) => valid.has(c));
915
+ }
916
+ const inScope = (kind) => only === null || only.includes(kind);
917
+ const rebuildWikilinks = inScope('wikilinks-drift') || inScope('empty-provenance');
869
918
  if (mutate) {
870
919
  const refusal = checkBackupReceipt(opts.backupReceiptPath);
871
920
  if (refusal)
872
921
  return { ok: false, error: refusal };
873
922
  }
874
923
  const db = await getDb(projectRoot);
875
- const pre = await scanStore(projectRoot, db, olderThanDays);
924
+ const checkoutRoot = opts.checkoutRoot ?? projectRoot;
925
+ try {
926
+ assertCheckoutOfProject(projectRoot, checkoutRoot);
927
+ }
928
+ catch (err) {
929
+ return {
930
+ ok: false,
931
+ error: {
932
+ // @sync-invariant none:input-shape a checkout of another repository is refused before any read or repair write
933
+ code: 'E_DOCS_DOCTOR_FOREIGN_CHECKOUT',
934
+ message: err instanceof Error ? err.message : String(err),
935
+ },
936
+ };
937
+ }
938
+ const pre = await scanStore(projectRoot, db, olderThanDays, checkoutRoot);
876
939
  const repairs = [];
877
940
  // T13653: in repair mode ONLY the blob backfill runs — apply mode plans it
878
941
  // alongside the other repairs.
879
942
  if (!repair) {
880
- for (const { row, path } of pre.dangling.archivable) {
943
+ for (const { row, path } of inScope('dangling-pointers') ? pre.dangling.archivable : []) {
881
944
  repairs.push({
882
945
  kind: 'dangling-pointers',
883
946
  action: 'archive-dangling',
@@ -887,7 +950,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
887
950
  detail: `marked-dangling: local-file target missing (${path}) → lifecycle_status = 'archived'`,
888
951
  });
889
952
  }
890
- for (const { row, path } of pre.dangling.clearable) {
953
+ for (const { row, path } of inScope('dangling-pointers') ? pre.dangling.clearable : []) {
891
954
  repairs.push({
892
955
  kind: 'dangling-pointers',
893
956
  action: 'clear-stale-path',
@@ -898,7 +961,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
898
961
  `(sha256 ${row.sha256.slice(0, 12)}…)`,
899
962
  });
900
963
  }
901
- for (const { row, expected } of pre.skewed) {
964
+ for (const { row, expected } of inScope('doc-version-skew') ? pre.skewed : []) {
902
965
  repairs.push({
903
966
  kind: 'doc-version-skew',
904
967
  action: 'set-doc-version',
@@ -908,7 +971,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
908
971
  detail: `audit-note: docVersion ${row.docVersion} → ${expected} (audit log revisions + 1)`,
909
972
  });
910
973
  }
911
- for (const { row, derived } of pre.backfillable) {
974
+ for (const { row, derived } of inScope('empty-provenance') ? pre.backfillable : []) {
912
975
  const derivedCount = derived.topics.length + derived.relatedTasks.length;
913
976
  repairs.push({
914
977
  kind: 'empty-provenance',
@@ -921,7 +984,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
921
984
  : 'no derivable topics or task mentions — columns stay NULL',
922
985
  });
923
986
  }
924
- if (pre.needsWikilinksRebuild) {
987
+ if (pre.needsWikilinksRebuild && rebuildWikilinks) {
925
988
  repairs.push({
926
989
  kind: 'wikilinks-drift',
927
990
  action: 'rebuild-wikilinks',
@@ -935,7 +998,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
935
998
  // dry-run/apply mode; executed only under --apply (the --repair mode
936
999
  // stays the T13653 blob-backfill-only fast path). A complete doc with
937
1000
  // unrecoverable gaps still gets an entry so the gap stays explained.
938
- for (const plan of pre.conduitBackfill) {
1001
+ for (const plan of inScope('conduit-history-gaps') ? pre.conduitBackfill : []) {
939
1002
  if (plan.complete && plan.gaps.length === 0)
940
1003
  continue;
941
1004
  if (plan.conflict) {
@@ -975,7 +1038,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
975
1038
  }
976
1039
  // T14117 — publication-ledger drift: prune protected deleted rows; every
977
1040
  // other finding is a plan-only proposal.
978
- for (const finding of pre.ledger) {
1041
+ for (const finding of inScope('publication-ledger-drift') ? pre.ledger : []) {
979
1042
  repairs.push({
980
1043
  kind: 'publication-ledger-drift',
981
1044
  action: finding.action,
@@ -984,7 +1047,8 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
984
1047
  });
985
1048
  }
986
1049
  }
987
- for (const candidate of pre.blobBackfillable) {
1050
+ const blobBackfillable = inScope('legacy-blob-coverage') ? pre.blobBackfillable : [];
1051
+ for (const candidate of blobBackfillable) {
988
1052
  repairs.push({
989
1053
  kind: 'legacy-blob-coverage',
990
1054
  action: 'backfill-blob-bytes',
@@ -1006,7 +1070,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1006
1070
  .map((r, i) => ({ r, i }))
1007
1071
  .filter(({ r }) => r.kind === 'legacy-blob-coverage' && r.action === 'backfill-blob-bytes')
1008
1072
  .map(({ i }) => i);
1009
- for (const [n, candidate] of pre.blobBackfillable.entries()) {
1073
+ for (const [n, candidate] of blobBackfillable.entries()) {
1010
1074
  if (candidate.sourcePath === null)
1011
1075
  continue;
1012
1076
  const outcome = await backfillBlobStoreBytes(cleoDir, candidate.sha256, candidate.sourcePath);
@@ -1030,7 +1094,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1030
1094
  // backfill above so the bytes the new rows address are mirrored first;
1031
1095
  // annotate each repair entry with its executed outcome (zip by slug).
1032
1096
  const conduitBySlug = new Map();
1033
- for (const plan of pre.conduitBackfill) {
1097
+ for (const plan of inScope('conduit-history-gaps') ? pre.conduitBackfill : []) {
1034
1098
  if (plan.toBackfill.length === 0 || plan.conflict)
1035
1099
  continue;
1036
1100
  const result = await applyConduitHistoryBackfill(projectRoot, plan);
@@ -1047,14 +1111,14 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1047
1111
  detail: `${repair.detail} → executed: ${outcome.inserted} row(s) inserted, ${outcome.gaps} gap(s)`,
1048
1112
  };
1049
1113
  }
1050
- for (const { row, expected } of pre.skewed) {
1114
+ for (const { row, expected } of inScope('doc-version-skew') ? pre.skewed : []) {
1051
1115
  await db
1052
1116
  .update(docsAttachments)
1053
1117
  .set({ docVersion: expected })
1054
1118
  .where(eq(docsAttachments.id, row.id))
1055
1119
  .run();
1056
1120
  }
1057
- for (const { row, derived } of pre.backfillable) {
1121
+ for (const { row, derived } of inScope('empty-provenance') ? pre.backfillable : []) {
1058
1122
  if (derived.topics.length + derived.relatedTasks.length === 0)
1059
1123
  continue;
1060
1124
  await db
@@ -1066,14 +1130,14 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1066
1130
  .where(eq(docsAttachments.id, row.id))
1067
1131
  .run();
1068
1132
  }
1069
- for (const { row } of pre.dangling.archivable) {
1133
+ for (const { row } of inScope('dangling-pointers') ? pre.dangling.archivable : []) {
1070
1134
  await db
1071
1135
  .update(docsAttachments)
1072
1136
  .set({ lifecycleStatus: 'archived' })
1073
1137
  .where(eq(docsAttachments.id, row.id))
1074
1138
  .run();
1075
1139
  }
1076
- for (const { row, payload } of pre.dangling.clearable) {
1140
+ for (const { row, payload } of inScope('dangling-pointers') ? pre.dangling.clearable : []) {
1077
1141
  const cleaned = { ...payload };
1078
1142
  delete cleaned['path'];
1079
1143
  await db
@@ -1082,10 +1146,12 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1082
1146
  .where(eq(docsAttachments.id, row.id))
1083
1147
  .run();
1084
1148
  }
1085
- if (pre.needsWikilinksRebuild) {
1149
+ if (pre.needsWikilinksRebuild && rebuildWikilinks) {
1086
1150
  await rebuildDocsWikilinks({ projectRoot });
1087
1151
  }
1088
- const prunable = pre.ledger.filter((f) => f.prunable);
1152
+ const prunable = inScope('publication-ledger-drift')
1153
+ ? pre.ledger.filter((f) => f.prunable)
1154
+ : [];
1089
1155
  if (prunable.length > 0) {
1090
1156
  const auditPath = join(projectRoot, DOCS_DOCTOR_LEDGER_PRUNE_AUDIT_FILE);
1091
1157
  mkdirSync(dirname(auditPath), { recursive: true });
@@ -1101,24 +1167,36 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1101
1167
  // T13560: on a mutating run, re-scan so the envelope's diagnostics (and the
1102
1168
  // summary computed from them) describe POST-repair state, consistent with
1103
1169
  // a follow-up dry run. Dry runs keep the pre-repair scan.
1104
- const post = mutate ? await scanStore(projectRoot, db, olderThanDays) : pre;
1170
+ const post = mutate ? await scanStore(projectRoot, db, olderThanDays, checkoutRoot) : pre;
1105
1171
  const findings = post.diagnostics.reduce((sum, d) => sum + d.count, 0);
1106
1172
  // T13727 — surface the conduit backfill counts in the one-line summary so
1107
1173
  // operators see backfilled/skipped/gap per run without reading the report.
1108
1174
  const conduitActionable = pre.conduitBackfill.filter((p) => !p.complete || p.gaps.length > 0 || p.conflict);
1109
1175
  const conduitGapTotal = conduitActionable.reduce((s, p) => s + p.gaps.length, 0);
1110
1176
  const conduitConflictTotal = conduitActionable.filter((p) => p.conflict).length;
1111
- const conduitBackfillNote = repair || conduitActionable.length === 0
1177
+ const conduitBackfillNote = repair || !inScope('conduit-history-gaps') || conduitActionable.length === 0
1112
1178
  ? ''
1113
1179
  : apply
1114
1180
  ? `; conduit history: ${conduitActionable.reduce((s, p) => s + p.toBackfill.length, 0)} version(s) backfilled across ${conduitActionable.length} doc(s) (${conduitGapTotal} gap(s) unrecoverable, ${conduitConflictTotal} conflict(s))`
1115
1181
  : `; conduit history: ${conduitActionable.length} doc(s) need attention (${conduitActionable.reduce((s, p) => s + p.toBackfill.length, 0)} version(s) to backfill, ${conduitGapTotal} gap(s) unrecoverable, ${conduitConflictTotal} conflict(s))`;
1182
+ const repairCounts = {};
1183
+ for (const r of repairs) {
1184
+ const kind = r.kind;
1185
+ if (!isRepairClass(kind))
1186
+ continue;
1187
+ const entry = repairCounts[kind] ?? { planned: 0, applied: 0 };
1188
+ entry.planned += 1;
1189
+ if (r.applied)
1190
+ entry.applied += 1;
1191
+ repairCounts[kind] = entry;
1192
+ }
1193
+ const scopeNote = only === null ? '' : ` (only: ${only.join(', ')})`;
1116
1194
  const summary = repair
1117
1195
  ? `docs doctor repaired ${repairs.filter((r) => r.applied).length} blob backfill(s); ` +
1118
1196
  `${post.diagnostics.find((d) => d.kind === 'legacy-blob-coverage')?.count ?? 0} sha(s) still missing post-repair`
1119
1197
  : apply
1120
- ? `docs doctor applied ${repairs.filter((r) => r.applied).length} repair(s); ${findings} finding(s) remain post-repair${conduitBackfillNote}`
1121
- : `docs doctor found ${findings} finding(s); ${repairs.length} repair(s) planned (dry-run — pass --apply to execute)${conduitBackfillNote}`;
1198
+ ? `docs doctor applied ${repairs.filter((r) => r.applied).length} repair(s)${scopeNote}; ${findings} finding(s) remain post-repair${conduitBackfillNote}`
1199
+ : `docs doctor found ${findings} finding(s); ${repairs.length} repair(s) planned${scopeNote} (dry-run — pass --apply to execute)${conduitBackfillNote}`;
1122
1200
  return {
1123
1201
  ok: true,
1124
1202
  report: {
@@ -1127,6 +1205,8 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1127
1205
  backupReceiptPath: mutate ? (opts.backupReceiptPath ?? null) : null,
1128
1206
  diagnostics: post.diagnostics,
1129
1207
  repairs,
1208
+ repairCounts,
1209
+ only,
1130
1210
  summary,
1131
1211
  },
1132
1212
  };