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

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 (144) 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-ops.d.ts +27 -5
  12. package/dist/docs/docs-ops.d.ts.map +1 -1
  13. package/dist/docs/docs-ops.js +149 -17
  14. package/dist/docs/docs-ops.js.map +1 -1
  15. package/dist/docs/docs-read-model.d.ts +41 -14
  16. package/dist/docs/docs-read-model.d.ts.map +1 -1
  17. package/dist/docs/docs-read-model.js +13 -99
  18. package/dist/docs/docs-read-model.js.map +1 -1
  19. package/dist/docs/doctor.d.ts +39 -0
  20. package/dist/docs/doctor.d.ts.map +1 -1
  21. package/dist/docs/doctor.js +110 -28
  22. package/dist/docs/doctor.js.map +1 -1
  23. package/dist/docs/modernize/apply.d.ts +16 -2
  24. package/dist/docs/modernize/apply.d.ts.map +1 -1
  25. package/dist/docs/modernize/apply.js +66 -23
  26. package/dist/docs/modernize/apply.js.map +1 -1
  27. package/dist/docs/modernize/guard.d.ts +25 -7
  28. package/dist/docs/modernize/guard.d.ts.map +1 -1
  29. package/dist/docs/modernize/guard.js +52 -12
  30. package/dist/docs/modernize/guard.js.map +1 -1
  31. package/dist/docs/modernize/index.d.ts +11 -2
  32. package/dist/docs/modernize/index.d.ts.map +1 -1
  33. package/dist/docs/modernize/index.js +20 -10
  34. package/dist/docs/modernize/index.js.map +1 -1
  35. package/dist/docs/modernize/plan.d.ts.map +1 -1
  36. package/dist/docs/modernize/plan.js +17 -1
  37. package/dist/docs/modernize/plan.js.map +1 -1
  38. package/dist/docs/modernize/rules.d.ts +82 -8
  39. package/dist/docs/modernize/rules.d.ts.map +1 -1
  40. package/dist/docs/modernize/rules.js +195 -28
  41. package/dist/docs/modernize/rules.js.map +1 -1
  42. package/dist/docs/publish-pr.d.ts.map +1 -1
  43. package/dist/docs/publish-pr.js +3 -1
  44. package/dist/docs/publish-pr.js.map +1 -1
  45. package/dist/gateway-client/generated/types.gen.d.ts +12 -0
  46. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
  47. package/dist/git/work-tree.d.ts +24 -0
  48. package/dist/git/work-tree.d.ts.map +1 -1
  49. package/dist/git/work-tree.js +12 -1
  50. package/dist/git/work-tree.js.map +1 -1
  51. package/dist/internal.d.ts +1 -1
  52. package/dist/internal.d.ts.map +1 -1
  53. package/dist/internal.js +1 -1
  54. package/dist/internal.js.map +1 -1
  55. package/dist/paths.d.ts +20 -0
  56. package/dist/paths.d.ts.map +1 -1
  57. package/dist/paths.js +26 -0
  58. package/dist/paths.js.map +1 -1
  59. package/dist/release/ci-evidence.d.ts +7 -3
  60. package/dist/release/ci-evidence.d.ts.map +1 -1
  61. package/dist/release/ci-evidence.js +77 -14
  62. package/dist/release/ci-evidence.js.map +1 -1
  63. package/dist/release/cut.d.ts.map +1 -1
  64. package/dist/release/cut.js +37 -5
  65. package/dist/release/cut.js.map +1 -1
  66. package/dist/release/engine-ops.d.ts.map +1 -1
  67. package/dist/release/engine-ops.js +10 -4
  68. package/dist/release/engine-ops.js.map +1 -1
  69. package/dist/release/plan.d.ts +3 -1
  70. package/dist/release/plan.d.ts.map +1 -1
  71. package/dist/release/plan.js +4 -2
  72. package/dist/release/plan.js.map +1 -1
  73. package/dist/release/reconcile.d.ts +3 -1
  74. package/dist/release/reconcile.d.ts.map +1 -1
  75. package/dist/release/reconcile.js +18 -6
  76. package/dist/release/reconcile.js.map +1 -1
  77. package/dist/release/release-published.d.ts +27 -0
  78. package/dist/release/release-published.d.ts.map +1 -0
  79. package/dist/release/release-published.js +35 -0
  80. package/dist/release/release-published.js.map +1 -0
  81. package/dist/remote/index.js +1 -1
  82. package/dist/remote/index.js.map +1 -1
  83. package/dist/scaffold/ensure-dirs.d.ts.map +1 -1
  84. package/dist/scaffold/ensure-dirs.js +8 -6
  85. package/dist/scaffold/ensure-dirs.js.map +1 -1
  86. package/dist/selfimprove/draft-pr.d.ts.map +1 -1
  87. package/dist/selfimprove/draft-pr.js +4 -1
  88. package/dist/selfimprove/draft-pr.js.map +1 -1
  89. package/dist/skills/propose-patch.d.ts.map +1 -1
  90. package/dist/skills/propose-patch.js +4 -1
  91. package/dist/skills/propose-patch.js.map +1 -1
  92. package/dist/store/git-checkpoint.d.ts +11 -1
  93. package/dist/store/git-checkpoint.d.ts.map +1 -1
  94. package/dist/store/git-checkpoint.js +14 -3
  95. package/dist/store/git-checkpoint.js.map +1 -1
  96. package/dist/system/dependencies.d.ts +22 -0
  97. package/dist/system/dependencies.d.ts.map +1 -1
  98. package/dist/system/dependencies.js +49 -2
  99. package/dist/system/dependencies.js.map +1 -1
  100. package/dist/system/health.d.ts.map +1 -1
  101. package/dist/system/health.js +3 -1
  102. package/dist/system/health.js.map +1 -1
  103. package/dist/tasks/change-set.d.ts.map +1 -1
  104. package/dist/tasks/change-set.js +39 -20
  105. package/dist/tasks/change-set.js.map +1 -1
  106. package/dist/tasks/component-pr.d.ts.map +1 -1
  107. package/dist/tasks/component-pr.js +4 -3
  108. package/dist/tasks/component-pr.js.map +1 -1
  109. package/dist/tasks/done-plan.d.ts.map +1 -1
  110. package/dist/tasks/done-plan.js +33 -5
  111. package/dist/tasks/done-plan.js.map +1 -1
  112. package/dist/tasks/evidence.d.ts +8 -2
  113. package/dist/tasks/evidence.d.ts.map +1 -1
  114. package/dist/tasks/evidence.js +39 -11
  115. package/dist/tasks/evidence.js.map +1 -1
  116. package/dist/tasks/gate-notes.d.ts +17 -0
  117. package/dist/tasks/gate-notes.d.ts.map +1 -1
  118. package/dist/tasks/gate-notes.js.map +1 -1
  119. package/dist/tasks/manifest-scope.d.ts +42 -5
  120. package/dist/tasks/manifest-scope.d.ts.map +1 -1
  121. package/dist/tasks/manifest-scope.js +162 -9
  122. package/dist/tasks/manifest-scope.js.map +1 -1
  123. package/dist/tasks/merge-close.d.ts +25 -2
  124. package/dist/tasks/merge-close.d.ts.map +1 -1
  125. package/dist/tasks/merge-close.js +30 -2
  126. package/dist/tasks/merge-close.js.map +1 -1
  127. package/dist/tasks/verification-policy.d.ts +12 -0
  128. package/dist/tasks/verification-policy.d.ts.map +1 -1
  129. package/dist/tasks/verification-policy.js +13 -0
  130. package/dist/tasks/verification-policy.js.map +1 -1
  131. package/dist/validation/doctor/checks.d.ts +20 -0
  132. package/dist/validation/doctor/checks.d.ts.map +1 -1
  133. package/dist/validation/doctor/checks.js +112 -0
  134. package/dist/validation/doctor/checks.js.map +1 -1
  135. package/dist/validation/engine-ops.d.ts.map +1 -1
  136. package/dist/validation/engine-ops.js +4 -2
  137. package/dist/validation/engine-ops.js.map +1 -1
  138. package/dist/worktree/merged-cleanup.d.ts +10 -0
  139. package/dist/worktree/merged-cleanup.d.ts.map +1 -1
  140. package/dist/worktree/merged-cleanup.js +12 -1
  141. package/dist/worktree/merged-cleanup.js.map +1 -1
  142. package/package.json +12 -12
  143. package/templates/git-hooks/legacy-hashes.json +2 -1
  144. 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
462
  const { statusDocs } = await import('./docs-ops.js');
443
- const status = await statusDocs({ projectRoot });
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));
@@ -461,8 +481,8 @@ async function scanPublicationLedger(projectRoot, rows) {
461
481
  continue;
462
482
  const absPath = isAbsolute(record.publishedPath)
463
483
  ? record.publishedPath
464
- : resolve(projectRoot, record.publishedPath);
465
- const rel = relative(projectRoot, absPath);
484
+ : resolve(checkoutRoot, record.publishedPath);
485
+ const rel = relative(checkoutRoot, absPath);
466
486
  const outsideRoot = rel.startsWith('..') || isAbsolute(rel);
467
487
  if (item.drift === 'modified') {
468
488
  const storeMoved = item.fileSha === record.lastBlobSha;
@@ -480,7 +500,7 @@ async function scanPublicationLedger(projectRoot, rows) {
480
500
  }
481
501
  const shas = new Set([record.lastBlobSha, item.blobSha]);
482
502
  const protectedElsewhere = [...shas].every((sha) => attachmentShas.has(sha) || (liveLedgerShas.get(sha) ?? 0) > 0);
483
- const proof = provePublicationGone(projectRoot, record.publishedPath, absPath);
503
+ const proof = provePublicationGone(checkoutRoot, record.publishedPath, absPath);
484
504
  const blob = record.lastBlobSha.slice(0, 12);
485
505
  let action;
486
506
  let detail;
@@ -516,7 +536,7 @@ async function scanPublicationLedger(projectRoot, rows) {
516
536
  *
517
537
  * @internal
518
538
  */
519
- async function scanStore(projectRoot, db, olderThanDays) {
539
+ async function scanStore(projectRoot, db, olderThanDays, checkoutRoot) {
520
540
  const rows = await db.select().from(docsAttachments).all();
521
541
  const payloadById = new Map();
522
542
  for (const row of rows)
@@ -721,7 +741,7 @@ async function scanStore(projectRoot, db, olderThanDays) {
721
741
  // planner reads the audit file, the registry and (hash-verified) bytes,
722
742
  // and writes nothing.
723
743
  const conduitBackfill = await planConduitHistoryBackfill(projectRoot);
724
- const ledger = await scanPublicationLedger(projectRoot, rows);
744
+ const ledger = await scanPublicationLedger(projectRoot, rows, checkoutRoot);
725
745
  const ledgerItems = ledger.slice(0, DOCS_DOCTOR_MAX_DETAIL_ITEMS).map((f) => ({
726
746
  ownerId: f.record.ownerId,
727
747
  blobName: f.record.blobName,
@@ -866,18 +886,63 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
866
886
  },
867
887
  };
868
888
  }
889
+ // T14174 — scope to some repair classes.
890
+ let only = null;
891
+ if (opts.only !== undefined) {
892
+ const valid = new Set(DOCS_DOCTOR_REPAIR_CLASSES);
893
+ const unknown = opts.only.filter((c) => !valid.has(c));
894
+ if (unknown.length > 0 || opts.only.length === 0) {
895
+ return {
896
+ ok: false,
897
+ error: {
898
+ // @sync-invariant none:input-shape an argument refusal before any repair write; nothing was written
899
+ code: 'E_DOCS_DOCTOR_UNKNOWN_CLASS',
900
+ message: `docs doctor: --only ${unknown.length > 0 ? `names unknown class(es) ${unknown.join(', ')}` : 'names no class'}; ` +
901
+ `valid classes: ${DOCS_DOCTOR_REPAIR_CLASSES.join(', ')}`,
902
+ },
903
+ };
904
+ }
905
+ if (repair) {
906
+ return {
907
+ ok: false,
908
+ error: {
909
+ // @sync-invariant none:input-shape a flag-combination refusal before any repair write; nothing was written
910
+ code: 'E_DOCS_DOCTOR_FLAG_CONFLICT',
911
+ message: 'docs doctor: --only and --repair cannot be combined — --repair is already scoped to ' +
912
+ 'the legacy-blob backfill; use `--apply --only legacy-blob-coverage` instead.',
913
+ },
914
+ };
915
+ }
916
+ only = [...new Set(opts.only)].filter((c) => valid.has(c));
917
+ }
918
+ const inScope = (kind) => only === null || only.includes(kind);
919
+ const rebuildWikilinks = inScope('wikilinks-drift') || inScope('empty-provenance');
869
920
  if (mutate) {
870
921
  const refusal = checkBackupReceipt(opts.backupReceiptPath);
871
922
  if (refusal)
872
923
  return { ok: false, error: refusal };
873
924
  }
874
925
  const db = await getDb(projectRoot);
875
- const pre = await scanStore(projectRoot, db, olderThanDays);
926
+ const checkoutRoot = opts.checkoutRoot ?? projectRoot;
927
+ try {
928
+ assertCheckoutOfProject(projectRoot, checkoutRoot);
929
+ }
930
+ catch (err) {
931
+ return {
932
+ ok: false,
933
+ error: {
934
+ // @sync-invariant none:input-shape a checkout of another repository is refused before any read or repair write
935
+ code: 'E_DOCS_DOCTOR_FOREIGN_CHECKOUT',
936
+ message: err instanceof Error ? err.message : String(err),
937
+ },
938
+ };
939
+ }
940
+ const pre = await scanStore(projectRoot, db, olderThanDays, checkoutRoot);
876
941
  const repairs = [];
877
942
  // T13653: in repair mode ONLY the blob backfill runs — apply mode plans it
878
943
  // alongside the other repairs.
879
944
  if (!repair) {
880
- for (const { row, path } of pre.dangling.archivable) {
945
+ for (const { row, path } of inScope('dangling-pointers') ? pre.dangling.archivable : []) {
881
946
  repairs.push({
882
947
  kind: 'dangling-pointers',
883
948
  action: 'archive-dangling',
@@ -887,7 +952,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
887
952
  detail: `marked-dangling: local-file target missing (${path}) → lifecycle_status = 'archived'`,
888
953
  });
889
954
  }
890
- for (const { row, path } of pre.dangling.clearable) {
955
+ for (const { row, path } of inScope('dangling-pointers') ? pre.dangling.clearable : []) {
891
956
  repairs.push({
892
957
  kind: 'dangling-pointers',
893
958
  action: 'clear-stale-path',
@@ -898,7 +963,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
898
963
  `(sha256 ${row.sha256.slice(0, 12)}…)`,
899
964
  });
900
965
  }
901
- for (const { row, expected } of pre.skewed) {
966
+ for (const { row, expected } of inScope('doc-version-skew') ? pre.skewed : []) {
902
967
  repairs.push({
903
968
  kind: 'doc-version-skew',
904
969
  action: 'set-doc-version',
@@ -908,7 +973,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
908
973
  detail: `audit-note: docVersion ${row.docVersion} → ${expected} (audit log revisions + 1)`,
909
974
  });
910
975
  }
911
- for (const { row, derived } of pre.backfillable) {
976
+ for (const { row, derived } of inScope('empty-provenance') ? pre.backfillable : []) {
912
977
  const derivedCount = derived.topics.length + derived.relatedTasks.length;
913
978
  repairs.push({
914
979
  kind: 'empty-provenance',
@@ -921,7 +986,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
921
986
  : 'no derivable topics or task mentions — columns stay NULL',
922
987
  });
923
988
  }
924
- if (pre.needsWikilinksRebuild) {
989
+ if (pre.needsWikilinksRebuild && rebuildWikilinks) {
925
990
  repairs.push({
926
991
  kind: 'wikilinks-drift',
927
992
  action: 'rebuild-wikilinks',
@@ -935,7 +1000,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
935
1000
  // dry-run/apply mode; executed only under --apply (the --repair mode
936
1001
  // stays the T13653 blob-backfill-only fast path). A complete doc with
937
1002
  // unrecoverable gaps still gets an entry so the gap stays explained.
938
- for (const plan of pre.conduitBackfill) {
1003
+ for (const plan of inScope('conduit-history-gaps') ? pre.conduitBackfill : []) {
939
1004
  if (plan.complete && plan.gaps.length === 0)
940
1005
  continue;
941
1006
  if (plan.conflict) {
@@ -975,7 +1040,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
975
1040
  }
976
1041
  // T14117 — publication-ledger drift: prune protected deleted rows; every
977
1042
  // other finding is a plan-only proposal.
978
- for (const finding of pre.ledger) {
1043
+ for (const finding of inScope('publication-ledger-drift') ? pre.ledger : []) {
979
1044
  repairs.push({
980
1045
  kind: 'publication-ledger-drift',
981
1046
  action: finding.action,
@@ -984,7 +1049,8 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
984
1049
  });
985
1050
  }
986
1051
  }
987
- for (const candidate of pre.blobBackfillable) {
1052
+ const blobBackfillable = inScope('legacy-blob-coverage') ? pre.blobBackfillable : [];
1053
+ for (const candidate of blobBackfillable) {
988
1054
  repairs.push({
989
1055
  kind: 'legacy-blob-coverage',
990
1056
  action: 'backfill-blob-bytes',
@@ -1006,7 +1072,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1006
1072
  .map((r, i) => ({ r, i }))
1007
1073
  .filter(({ r }) => r.kind === 'legacy-blob-coverage' && r.action === 'backfill-blob-bytes')
1008
1074
  .map(({ i }) => i);
1009
- for (const [n, candidate] of pre.blobBackfillable.entries()) {
1075
+ for (const [n, candidate] of blobBackfillable.entries()) {
1010
1076
  if (candidate.sourcePath === null)
1011
1077
  continue;
1012
1078
  const outcome = await backfillBlobStoreBytes(cleoDir, candidate.sha256, candidate.sourcePath);
@@ -1030,7 +1096,7 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1030
1096
  // backfill above so the bytes the new rows address are mirrored first;
1031
1097
  // annotate each repair entry with its executed outcome (zip by slug).
1032
1098
  const conduitBySlug = new Map();
1033
- for (const plan of pre.conduitBackfill) {
1099
+ for (const plan of inScope('conduit-history-gaps') ? pre.conduitBackfill : []) {
1034
1100
  if (plan.toBackfill.length === 0 || plan.conflict)
1035
1101
  continue;
1036
1102
  const result = await applyConduitHistoryBackfill(projectRoot, plan);
@@ -1047,14 +1113,14 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1047
1113
  detail: `${repair.detail} → executed: ${outcome.inserted} row(s) inserted, ${outcome.gaps} gap(s)`,
1048
1114
  };
1049
1115
  }
1050
- for (const { row, expected } of pre.skewed) {
1116
+ for (const { row, expected } of inScope('doc-version-skew') ? pre.skewed : []) {
1051
1117
  await db
1052
1118
  .update(docsAttachments)
1053
1119
  .set({ docVersion: expected })
1054
1120
  .where(eq(docsAttachments.id, row.id))
1055
1121
  .run();
1056
1122
  }
1057
- for (const { row, derived } of pre.backfillable) {
1123
+ for (const { row, derived } of inScope('empty-provenance') ? pre.backfillable : []) {
1058
1124
  if (derived.topics.length + derived.relatedTasks.length === 0)
1059
1125
  continue;
1060
1126
  await db
@@ -1066,14 +1132,14 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1066
1132
  .where(eq(docsAttachments.id, row.id))
1067
1133
  .run();
1068
1134
  }
1069
- for (const { row } of pre.dangling.archivable) {
1135
+ for (const { row } of inScope('dangling-pointers') ? pre.dangling.archivable : []) {
1070
1136
  await db
1071
1137
  .update(docsAttachments)
1072
1138
  .set({ lifecycleStatus: 'archived' })
1073
1139
  .where(eq(docsAttachments.id, row.id))
1074
1140
  .run();
1075
1141
  }
1076
- for (const { row, payload } of pre.dangling.clearable) {
1142
+ for (const { row, payload } of inScope('dangling-pointers') ? pre.dangling.clearable : []) {
1077
1143
  const cleaned = { ...payload };
1078
1144
  delete cleaned['path'];
1079
1145
  await db
@@ -1082,10 +1148,12 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1082
1148
  .where(eq(docsAttachments.id, row.id))
1083
1149
  .run();
1084
1150
  }
1085
- if (pre.needsWikilinksRebuild) {
1151
+ if (pre.needsWikilinksRebuild && rebuildWikilinks) {
1086
1152
  await rebuildDocsWikilinks({ projectRoot });
1087
1153
  }
1088
- const prunable = pre.ledger.filter((f) => f.prunable);
1154
+ const prunable = inScope('publication-ledger-drift')
1155
+ ? pre.ledger.filter((f) => f.prunable)
1156
+ : [];
1089
1157
  if (prunable.length > 0) {
1090
1158
  const auditPath = join(projectRoot, DOCS_DOCTOR_LEDGER_PRUNE_AUDIT_FILE);
1091
1159
  mkdirSync(dirname(auditPath), { recursive: true });
@@ -1101,24 +1169,36 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1101
1169
  // T13560: on a mutating run, re-scan so the envelope's diagnostics (and the
1102
1170
  // summary computed from them) describe POST-repair state, consistent with
1103
1171
  // a follow-up dry run. Dry runs keep the pre-repair scan.
1104
- const post = mutate ? await scanStore(projectRoot, db, olderThanDays) : pre;
1172
+ const post = mutate ? await scanStore(projectRoot, db, olderThanDays, checkoutRoot) : pre;
1105
1173
  const findings = post.diagnostics.reduce((sum, d) => sum + d.count, 0);
1106
1174
  // T13727 — surface the conduit backfill counts in the one-line summary so
1107
1175
  // operators see backfilled/skipped/gap per run without reading the report.
1108
1176
  const conduitActionable = pre.conduitBackfill.filter((p) => !p.complete || p.gaps.length > 0 || p.conflict);
1109
1177
  const conduitGapTotal = conduitActionable.reduce((s, p) => s + p.gaps.length, 0);
1110
1178
  const conduitConflictTotal = conduitActionable.filter((p) => p.conflict).length;
1111
- const conduitBackfillNote = repair || conduitActionable.length === 0
1179
+ const conduitBackfillNote = repair || !inScope('conduit-history-gaps') || conduitActionable.length === 0
1112
1180
  ? ''
1113
1181
  : apply
1114
1182
  ? `; 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
1183
  : `; 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))`;
1184
+ const repairCounts = {};
1185
+ for (const r of repairs) {
1186
+ const kind = r.kind;
1187
+ if (!isRepairClass(kind))
1188
+ continue;
1189
+ const entry = repairCounts[kind] ?? { planned: 0, applied: 0 };
1190
+ entry.planned += 1;
1191
+ if (r.applied)
1192
+ entry.applied += 1;
1193
+ repairCounts[kind] = entry;
1194
+ }
1195
+ const scopeNote = only === null ? '' : ` (only: ${only.join(', ')})`;
1116
1196
  const summary = repair
1117
1197
  ? `docs doctor repaired ${repairs.filter((r) => r.applied).length} blob backfill(s); ` +
1118
1198
  `${post.diagnostics.find((d) => d.kind === 'legacy-blob-coverage')?.count ?? 0} sha(s) still missing post-repair`
1119
1199
  : 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}`;
1200
+ ? `docs doctor applied ${repairs.filter((r) => r.applied).length} repair(s)${scopeNote}; ${findings} finding(s) remain post-repair${conduitBackfillNote}`
1201
+ : `docs doctor found ${findings} finding(s); ${repairs.length} repair(s) planned${scopeNote} (dry-run — pass --apply to execute)${conduitBackfillNote}`;
1122
1202
  return {
1123
1203
  ok: true,
1124
1204
  report: {
@@ -1127,6 +1207,8 @@ export async function runDocsDoctor(projectRoot, opts = {}) {
1127
1207
  backupReceiptPath: mutate ? (opts.backupReceiptPath ?? null) : null,
1128
1208
  diagnostics: post.diagnostics,
1129
1209
  repairs,
1210
+ repairCounts,
1211
+ only,
1130
1212
  summary,
1131
1213
  },
1132
1214
  };