@isaacriehm/cairn-core 0.7.2 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/doctor/index.js +57 -0
  3. package/dist/doctor/index.js.map +1 -1
  4. package/dist/gc/citation-integrity.js +3 -1
  5. package/dist/gc/citation-integrity.js.map +1 -1
  6. package/dist/gc/doc-claims.d.ts +31 -0
  7. package/dist/gc/doc-claims.js +213 -0
  8. package/dist/gc/doc-claims.js.map +1 -0
  9. package/dist/gc/doc-source-drift.d.ts +31 -0
  10. package/dist/gc/doc-source-drift.js +190 -0
  11. package/dist/gc/doc-source-drift.js.map +1 -0
  12. package/dist/gc/index.d.ts +4 -0
  13. package/dist/gc/index.js +2 -0
  14. package/dist/gc/index.js.map +1 -1
  15. package/dist/gc/sweep.js +18 -0
  16. package/dist/gc/sweep.js.map +1 -1
  17. package/dist/gc/types.d.ts +2 -2
  18. package/dist/hooks/runners/context-threshold.d.ts +63 -0
  19. package/dist/hooks/runners/context-threshold.js +179 -0
  20. package/dist/hooks/runners/context-threshold.js.map +1 -0
  21. package/dist/hooks/runners/gc-autotrigger.d.ts +49 -0
  22. package/dist/hooks/runners/gc-autotrigger.js +87 -0
  23. package/dist/hooks/runners/gc-autotrigger.js.map +1 -0
  24. package/dist/hooks/runners/index.d.ts +2 -0
  25. package/dist/hooks/runners/index.js +1 -0
  26. package/dist/hooks/runners/index.js.map +1 -1
  27. package/dist/hooks/runners/session-start.js +110 -6
  28. package/dist/hooks/runners/session-start.js.map +1 -1
  29. package/dist/hooks/runners/stop.js +119 -0
  30. package/dist/hooks/runners/stop.js.map +1 -1
  31. package/dist/init/index.d.ts +5 -1
  32. package/dist/init/index.js +2 -0
  33. package/dist/init/index.js.map +1 -1
  34. package/dist/init/ingest-docs.d.ts +6 -1
  35. package/dist/init/ingest-docs.js.map +1 -1
  36. package/dist/init/init.js +11 -6
  37. package/dist/init/init.js.map +1 -1
  38. package/dist/init/mapper-parallel.js +13 -6
  39. package/dist/init/mapper-parallel.js.map +1 -1
  40. package/dist/init/phases/1-detect.d.ts +17 -4
  41. package/dist/init/phases/1-detect.js +48 -4
  42. package/dist/init/phases/1-detect.js.map +1 -1
  43. package/dist/init/phases/10-rules-merge.js +13 -1
  44. package/dist/init/phases/10-rules-merge.js.map +1 -1
  45. package/dist/init/phases/11-baseline.js.map +1 -1
  46. package/dist/init/phases/12-strip.js +14 -1
  47. package/dist/init/phases/12-strip.js.map +1 -1
  48. package/dist/init/phases/3-mapper.js.map +1 -1
  49. package/dist/init/phases/4-seed.js +1 -1
  50. package/dist/init/phases/4-seed.js.map +1 -1
  51. package/dist/init/phases/5-pilot.js.map +1 -1
  52. package/dist/init/phases/6-brand.js +2 -4
  53. package/dist/init/phases/6-brand.js.map +1 -1
  54. package/dist/init/phases/8-docs-ingest.js +13 -1
  55. package/dist/init/phases/8-docs-ingest.js.map +1 -1
  56. package/dist/init/phases/9-source-comments.js +13 -1
  57. package/dist/init/phases/9-source-comments.js.map +1 -1
  58. package/dist/init/phases/orchestrator.d.ts +10 -0
  59. package/dist/init/phases/orchestrator.js +12 -0
  60. package/dist/init/phases/orchestrator.js.map +1 -1
  61. package/dist/init/phases/parallel-8910.js +29 -4
  62. package/dist/init/phases/parallel-8910.js.map +1 -1
  63. package/dist/init/phases/source-comments-output-io.d.ts +7 -2
  64. package/dist/init/phases/source-comments-output-io.js.map +1 -1
  65. package/dist/init/phases/types.d.ts +49 -9
  66. package/dist/init/phases/types.js.map +1 -1
  67. package/dist/init/post-git-init.d.ts +53 -0
  68. package/dist/init/post-git-init.js +74 -0
  69. package/dist/init/post-git-init.js.map +1 -0
  70. package/dist/init/preflight-guards.d.ts +11 -2
  71. package/dist/init/preflight-guards.js +27 -5
  72. package/dist/init/preflight-guards.js.map +1 -1
  73. package/dist/init/rules-merge/index.d.ts +1 -1
  74. package/dist/init/rules-merge/ingest.d.ts +6 -1
  75. package/dist/init/rules-merge/ingest.js.map +1 -1
  76. package/dist/init/skill-budget.d.ts +39 -0
  77. package/dist/init/skill-budget.js +99 -0
  78. package/dist/init/skill-budget.js.map +1 -0
  79. package/dist/init/types.d.ts +9 -0
  80. package/dist/join/index.js +3 -3
  81. package/dist/join/index.js.map +1 -1
  82. package/dist/mcp/bootstrap-guard.js +2 -2
  83. package/dist/mcp/bootstrap-guard.js.map +1 -1
  84. package/dist/mcp/schemas.d.ts +34 -0
  85. package/dist/mcp/schemas.js +50 -0
  86. package/dist/mcp/schemas.js.map +1 -1
  87. package/dist/mcp/telemetry.d.ts +1 -1
  88. package/dist/mcp/tools/bootstrap-retry.d.ts +23 -0
  89. package/dist/mcp/tools/bootstrap-retry.js +53 -0
  90. package/dist/mcp/tools/bootstrap-retry.js.map +1 -0
  91. package/dist/mcp/tools/index.js +10 -0
  92. package/dist/mcp/tools/index.js.map +1 -1
  93. package/dist/mcp/tools/init-phases.js +4 -8
  94. package/dist/mcp/tools/init-phases.js.map +1 -1
  95. package/dist/mcp/tools/resume.d.ts +21 -0
  96. package/dist/mcp/tools/resume.js +88 -0
  97. package/dist/mcp/tools/resume.js.map +1 -0
  98. package/dist/mcp/tools/task-complete.d.ts +23 -0
  99. package/dist/mcp/tools/task-complete.js +51 -0
  100. package/dist/mcp/tools/task-complete.js.map +1 -0
  101. package/dist/mcp/tools/task-create.js +17 -11
  102. package/dist/mcp/tools/task-create.js.map +1 -1
  103. package/dist/mcp/tools/task-journal-append.d.ts +22 -0
  104. package/dist/mcp/tools/task-journal-append.js +44 -0
  105. package/dist/mcp/tools/task-journal-append.js.map +1 -0
  106. package/dist/paths/index.js +1 -1
  107. package/dist/paths/index.js.map +1 -1
  108. package/dist/status-line/format.js +20 -0
  109. package/dist/status-line/format.js.map +1 -1
  110. package/dist/tasks/index.d.ts +2 -0
  111. package/dist/tasks/index.js +2 -0
  112. package/dist/tasks/index.js.map +1 -0
  113. package/dist/tasks/lifecycle.d.ts +107 -0
  114. package/dist/tasks/lifecycle.js +302 -0
  115. package/dist/tasks/lifecycle.js.map +1 -0
  116. package/dist/trace/index.d.ts +1 -1
  117. package/dist/trace/index.js +2 -2
  118. package/dist/trace/index.js.map +1 -1
  119. package/package.json +2 -2
@@ -8,8 +8,20 @@
8
8
  */
9
9
  import { runDocsIngestion } from "../ingest-docs.js";
10
10
  import { clearProgress, writeProgress } from "../progress.js";
11
- import { advancePhase } from "./orchestrator.js";
11
+ import { advancePhase, isSelfAdoptState } from "./orchestrator.js";
12
12
  export async function runPhase8DocsIngest(state) {
13
+ if (isSelfAdoptState(state)) {
14
+ const skipped = { skipped: "self-adopt" };
15
+ const next = {
16
+ ...state,
17
+ outputs: { ...state.outputs, "8-docs-ingest": skipped },
18
+ };
19
+ return {
20
+ status: "complete",
21
+ nextPhase: "9-source-comments",
22
+ state: advancePhase(next),
23
+ };
24
+ }
13
25
  const startedAt = Date.now();
14
26
  try {
15
27
  const result = await runDocsIngestion({
@@ -1 +1 @@
1
- {"version":3,"file":"8-docs-ingest.js","sourceRoot":"","sources":["../../../src/init/phases/8-docs-ingest.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAiB;IACzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAoB,MAAM,gBAAgB,CAAC;YACrD,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE;oBAC5B,KAAK,EAAE,iBAAiB,GAAG,CAAC,KAAK,EAAE;oBACnC,KAAK,EAAE,GAAG,CAAC,WAAW;oBACtB,KAAK,EAAE,GAAG,CAAC,YAAY;oBACvB,SAAS;iBACV,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QACH,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAe;YACvB,GAAG,KAAK;YACR,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE;SACvD,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,mBAAmB;YAC9B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,gCAAgC;gBACzC,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtE;YACD,KAAK;SACN,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"8-docs-ingest.js","sourceRoot":"","sources":["../../../src/init/phases/8-docs-ingest.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAiB;IACzD,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAoB,EAAE,OAAO,EAAE,YAAqB,EAAE,CAAC;QACpE,MAAM,IAAI,GAAe;YACvB,GAAG,KAAK;YACR,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE;SACxD,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,mBAAmB;YAC9B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAoB,MAAM,gBAAgB,CAAC;YACrD,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE;oBAC5B,KAAK,EAAE,iBAAiB,GAAG,CAAC,KAAK,EAAE;oBACnC,KAAK,EAAE,GAAG,CAAC,WAAW;oBACtB,KAAK,EAAE,GAAG,CAAC,YAAY;oBACvB,SAAS;iBACV,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QACH,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAe;YACvB,GAAG,KAAK;YACR,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE;SACvD,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,mBAAmB;YAC9B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,gCAAgC;gBACzC,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtE;YACD,KAAK;SACN,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -4,9 +4,21 @@
4
4
  */
5
5
  import { runSourceCommentsIngestion, } from "../source-comments/index.js";
6
6
  import { clearProgress } from "../progress.js";
7
- import { advancePhase } from "./orchestrator.js";
7
+ import { advancePhase, isSelfAdoptState } from "./orchestrator.js";
8
8
  import { to7bResultPersisted, writeSourceCommentsWalkFile, } from "./source-comments-output-io.js";
9
9
  export async function runPhase9SourceComments(state) {
10
+ if (isSelfAdoptState(state)) {
11
+ const skipped = { skipped: "self-adopt" };
12
+ const next = {
13
+ ...state,
14
+ outputs: { ...state.outputs, "9-source-comments": skipped },
15
+ };
16
+ return {
17
+ status: "complete",
18
+ nextPhase: "10-rules-merge",
19
+ state: advancePhase(next),
20
+ };
21
+ }
10
22
  const mapper = state.outputs["3-mapper"];
11
23
  const globs = mapper
12
24
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"9-source-comments.js","sourceRoot":"","sources":["../../../src/init/phases/9-source-comments.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,0BAA0B,GAE3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC;AAGxC,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAAiB;IAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAsC,CAAC;IAC9E,MAAM,KAAK,GAAiB,MAAM;QAChC,CAAC,CAAC;YACE,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB;YACtD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;YAClC,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAsB;YAC5D,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB;YAClD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB;SAC3C;QACH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAoC,CAAC;IAC7E,MAAM,WAAW,GACf,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAChE,CAAC,CAAC,QAAQ,CAAC,MAAM;QACjB,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAA+B,MAAM,0BAA0B,CAAC;YAC1E,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,2BAA2B,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC9C,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAe;YACvB,GAAG,KAAK;YACR,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE;SAC9D,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,iCAAiC;gBAC1C,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtE;YACD,KAAK;SACN,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"9-source-comments.js","sourceRoot":"","sources":["../../../src/init/phases/9-source-comments.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,0BAA0B,GAE3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAE5B,MAAM,gCAAgC,CAAC;AAGxC,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAAiB;IAC7D,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAwC,EAAE,OAAO,EAAE,YAAqB,EAAE,CAAC;QACxF,MAAM,IAAI,GAAe;YACvB,GAAG,KAAK;YACR,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE;SAC5D,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,KAAK,GAAiB,MAAM;QAChC,CAAC,CAAC;YACE,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB;YACtD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;YAClC,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAsB;YAC5D,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB;YAClD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB;SAC3C;QACH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,WAAW,GACf,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAChE,CAAC,CAAC,QAAQ,CAAC,MAAM;QACjB,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAA+B,MAAM,0BAA0B,CAAC;YAC1E,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,2BAA2B,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC9C,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAe;YACvB,GAAG,KAAK;YACR,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE;SAC9D,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,iCAAiC;gBAC1C,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtE;YACD,KAAK;SACN,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -35,6 +35,16 @@ export declare function freshPhaseState(repoRoot: string): PhaseState;
35
35
  * runs again.
36
36
  */
37
37
  export declare function resumePhases(repoRoot: string): ResumeReport;
38
+ /**
39
+ * Self-adoption flag check. True when Phase 1 detect set
40
+ * `outputs["1-detect"].is_self_adopt = true` because the operator is
41
+ * dogfooding Cairn against its own source repo via the
42
+ * `CAIRN_SELF_ADOPT=1` escape hatch. Phases 8 / 9 / 10 / 12 read this
43
+ * and short-circuit so the recursive-ingest scenario (Cairn's own
44
+ * docs / source comments / CLAUDE.md / essay-class block strip)
45
+ * never runs against the source tree.
46
+ */
47
+ export declare function isSelfAdoptState(state: PhaseState): boolean;
38
48
  /**
39
49
  * Compute the phase id that follows `current` in PHASE_IDS, or null
40
50
  * when `current` is already the last id. Pure function — useful from
@@ -58,6 +58,18 @@ export function resumePhases(repoRoot) {
58
58
  state: persisted,
59
59
  };
60
60
  }
61
+ /**
62
+ * Self-adoption flag check. True when Phase 1 detect set
63
+ * `outputs["1-detect"].is_self_adopt = true` because the operator is
64
+ * dogfooding Cairn against its own source repo via the
65
+ * `CAIRN_SELF_ADOPT=1` escape hatch. Phases 8 / 9 / 10 / 12 read this
66
+ * and short-circuit so the recursive-ingest scenario (Cairn's own
67
+ * docs / source comments / CLAUDE.md / essay-class block strip)
68
+ * never runs against the source tree.
69
+ */
70
+ export function isSelfAdoptState(state) {
71
+ return state.outputs["1-detect"]?.is_self_adopt === true;
72
+ }
61
73
  /**
62
74
  * Compute the phase id that follows `current` in PHASE_IDS, or null
63
75
  * when `current` is already the last id. Pure function — useful from
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/init/phases/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAoD,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO;QACL,QAAQ;QACR,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;QAC1B,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,aAAa,EAAE,CAAC;KACjB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YACvB,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC;SACjC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,SAAS,CAAC,YAAY;QACjC,KAAK,EAAE,SAAS;KACjB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,GAAG,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/init/phases/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAoD,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO;QACL,QAAQ;QACR,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;QAC1B,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,aAAa,EAAE,CAAC;KACjB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YACvB,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC;SACjC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,SAAS,CAAC,YAAY;QACjC,KAAK,EAAE,SAAS;KACjB,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAiB;IAChD,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,GAAG,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC7D,CAAC"}
@@ -30,7 +30,7 @@ import { clearProgress, writeProgress } from "../progress.js";
30
30
  import { runRulesMerge } from "../rules-merge/index.js";
31
31
  import { runSourceCommentsIngestion } from "../source-comments/index.js";
32
32
  import { to7bResultPersisted, writeSourceCommentsWalkFile, } from "./source-comments-output-io.js";
33
- import { advancePhase } from "./orchestrator.js";
33
+ import { advancePhase, isSelfAdoptState } from "./orchestrator.js";
34
34
  const log = logger("init.phases.parallel-8910");
35
35
  export async function runPhases8910Parallel(state) {
36
36
  // Sanity: this runner only enters at the start of the 8 / 9 / 10
@@ -46,6 +46,32 @@ export async function runPhases8910Parallel(state) {
46
46
  state,
47
47
  };
48
48
  }
49
+ // Self-adopt skip — Q11. Stamp empty outputs for all three phases
50
+ // and advance past 9 + 10 to 11-baseline so the pipeline mirrors
51
+ // the normal-path exit shape.
52
+ if (isSelfAdoptState(state)) {
53
+ const skippedDocs = { skipped: "self-adopt" };
54
+ const skippedSrc = { skipped: "self-adopt" };
55
+ const skippedRules = { skipped: "self-adopt" };
56
+ let next = {
57
+ ...state,
58
+ outputs: {
59
+ ...state.outputs,
60
+ "8-docs-ingest": skippedDocs,
61
+ "9-source-comments": skippedSrc,
62
+ "10-rules-merge": skippedRules,
63
+ },
64
+ };
65
+ const skipTargets = ["8-docs-ingest", "9-source-comments", "10-rules-merge"];
66
+ for (const _ of skipTargets) {
67
+ next = advancePhase(next);
68
+ }
69
+ return {
70
+ status: "complete",
71
+ nextPhase: "11-baseline",
72
+ state: next,
73
+ };
74
+ }
49
75
  const mapper = state.outputs["3-mapper"];
50
76
  const globs = mapper
51
77
  ? {
@@ -135,12 +161,11 @@ export async function runPhases8910Parallel(state) {
135
161
  for (const id of skipTargets) {
136
162
  const out = next.outputs[id];
137
163
  if (typeof out === "object" && out !== null) {
138
- const obj = out;
139
- if (obj["duration_ms"] === undefined) {
164
+ if (!("duration_ms" in out)) {
140
165
  // Approximate per-phase duration via the wall-clock divided
141
166
  // among the three phases — until each ingest function reports
142
167
  // its own duration, this is the best we can do.
143
- obj["duration_ms"] = durationMs;
168
+ Object.assign(out, { duration_ms: durationMs });
144
169
  }
145
170
  }
146
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-8910.js","sourceRoot":"","sources":["../../../src/init/phases/parallel-8910.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parallel-8910.js","sourceRoot":"","sources":["../../../src/init/phases/parallel-8910.ts"],"names":[],"mappings":"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"}
@@ -31,13 +31,17 @@ export declare function writeSourceCommentsWalkFile(repoRoot: string, full: Inge
31
31
  * stored on state.
32
32
  */
33
33
  export declare function readSourceCommentsWalkFile(repoRoot: string): IngestSourceCommentsResult | null;
34
+ /** Phase was skipped because the repo is the Cairn source repo itself. */
35
+ export interface IngestSourceCommentsSkippedResult {
36
+ readonly skipped: "self-adopt";
37
+ }
34
38
  /**
35
39
  * Lightweight projection persisted into `init-state.json` outputs. Drops
36
40
  * `walk.blocks` and `classifications` (the heavy fields); keeps ledger /
37
41
  * triage references that downstream phases + the cairn-adopt summary
38
42
  * skill query directly.
39
43
  */
40
- export interface IngestSourceCommentsResultPersisted {
44
+ export interface IngestSourceCommentsRunResult {
41
45
  /** Repo-relative path to the spilled full result, or null when not written. */
42
46
  walkPath: string;
43
47
  walkSummary: {
@@ -80,5 +84,6 @@ export interface IngestSourceCommentsResultPersisted {
80
84
  batchesFailed: number;
81
85
  kindCounts: Record<CommentClassKind, number>;
82
86
  }
87
+ export type IngestSourceCommentsResultPersisted = IngestSourceCommentsRunResult | IngestSourceCommentsSkippedResult;
83
88
  /** Strip the heavy fields from a fresh ingest result for state persistence. */
84
- export declare function to7bResultPersisted(full: IngestSourceCommentsResult): IngestSourceCommentsResultPersisted;
89
+ export declare function to7bResultPersisted(full: IngestSourceCommentsResult): IngestSourceCommentsRunResult;
@@ -1 +1 @@
1
- {"version":3,"file":"source-comments-output-io.js","sourceRoot":"","sources":["../../../src/init/phases/source-comments-output-io.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAI1C,qCAAqC;AACrC,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAC3C,QAAQ,EACR,MAAM,EACN,2BAA2B,CAC5B,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IACxD,OAAO,IAAI,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,QAAgB,EAChB,IAAgC;IAEhC,MAAM,GAAG,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAChD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAgB;IAEhB,MAAM,GAAG,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAA+B,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAoDD,+EAA+E;AAC/E,MAAM,UAAU,mBAAmB,CACjC,IAAgC;IAEhC,OAAO;QACL,QAAQ,EAAE,yBAAyB;QACnC,WAAW,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;YAC7B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAC/B,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACpC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;YAC1C,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;YACxC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB;SACjD;QACD,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"source-comments-output-io.js","sourceRoot":"","sources":["../../../src/init/phases/source-comments-output-io.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAI1C,qCAAqC;AACrC,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAC3C,QAAQ,EACR,MAAM,EACN,2BAA2B,CAC5B,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IACxD,OAAO,IAAI,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,QAAgB,EAChB,IAAgC;IAEhC,MAAM,GAAG,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAChD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAgB;IAEhB,MAAM,GAAG,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAA+B,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AA6DD,+EAA+E;AAC/E,MAAM,UAAU,mBAAmB,CACjC,IAAgC;IAEhC,OAAO;QACL,QAAQ,EAAE,yBAAyB;QACnC,WAAW,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;YAC7B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAC/B,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACpC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;YAC1C,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;YACxC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB;SACjD;QACD,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;AACJ,CAAC"}
@@ -12,6 +12,15 @@
12
12
  * pipeline is crash-safe — operator can `/exit` Claude Code mid-init
13
13
  * and pick up at the same phase on the next session.
14
14
  */
15
+ import type { DetectionResult } from "../types.js";
16
+ import type { RepoSummary } from "../walker.js";
17
+ import type { IngestionResult } from "../ingest-docs.js";
18
+ import type { RunRulesMergeResult } from "../rules-merge/index.js";
19
+ import type { BaselineAuditResult } from "../baseline-audit.js";
20
+ import type { MultiDevInstallResult } from "../multi-dev/index.js";
21
+ import type { MapperResultPersisted } from "./mapper-output-io.js";
22
+ import type { IngestSourceCommentsResultPersisted } from "./source-comments-output-io.js";
23
+ import type { TopicIndexPhaseOutput } from "./7-topic-index.js";
15
24
  /** Phase ids in execution order. */
16
25
  export declare const PHASE_IDS: readonly ["1-detect", "2-walker", "3-mapper", "4-seed", "5-pilot", "6-brand", "7-topic-index", "8-docs-ingest", "9-source-comments", "10-rules-merge", "11-baseline", "12-strip", "13-multidev"];
17
26
  export type PhaseId = (typeof PHASE_IDS)[number];
@@ -19,7 +28,7 @@ export type PhaseId = (typeof PHASE_IDS)[number];
19
28
  export interface PhaseQuestion {
20
29
  /** Stable identifier so the skill can correlate answers across re-invocations. */
21
30
  id: string;
22
- /** Operator-facing prompt — full English, not caveman. */
31
+ /** Operator-facing prompt — full plain English; no operator-personal voice. */
23
32
  prompt: string;
24
33
  /** Options labeled A/B/C/... */
25
34
  options: PhaseOption[];
@@ -53,14 +62,45 @@ export interface PhaseState {
53
62
  /** Schema version for the on-disk state file (bump on breaking change). */
54
63
  schemaVersion: 1;
55
64
  }
56
- /**
57
- * Phase outputs are deliberately loose-typed — each phase function
58
- * stamps its own typed result under its id. Downstream phases read
59
- * via type-narrowing helpers in their own modules.
60
- */
61
- export type PhaseOutputs = {
62
- -readonly [K in PhaseId]?: unknown;
63
- };
65
+ export interface SeedPhaseOutput {
66
+ written_files: string[];
67
+ collisions: string[];
68
+ config_path: string;
69
+ scope_index_path: string;
70
+ workflow_slug_patched: boolean;
71
+ workflow_patch_error: string | null;
72
+ attested_seeded: number;
73
+ attested_seed_status: "ok" | "skipped" | "error";
74
+ }
75
+ export interface PilotOutput {
76
+ picked: string;
77
+ }
78
+ export interface BrandOutput {
79
+ choice: string;
80
+ applied: {
81
+ updated: string[];
82
+ warnings: string[];
83
+ } | null;
84
+ }
85
+ export interface StripState {
86
+ pending: string[];
87
+ decisions: Record<string, "strip" | "keep" | "skip">;
88
+ }
89
+ export interface PhaseOutputs {
90
+ "1-detect"?: DetectionResult;
91
+ "2-walker"?: RepoSummary;
92
+ "3-mapper"?: MapperResultPersisted;
93
+ "4-seed"?: SeedPhaseOutput;
94
+ "5-pilot"?: PilotOutput;
95
+ "6-brand"?: BrandOutput;
96
+ "7-topic-index"?: TopicIndexPhaseOutput;
97
+ "8-docs-ingest"?: IngestionResult;
98
+ "9-source-comments"?: IngestSourceCommentsResultPersisted;
99
+ "10-rules-merge"?: RunRulesMergeResult;
100
+ "11-baseline"?: BaselineAuditResult;
101
+ "12-strip"?: StripState;
102
+ "13-multidev"?: MultiDevInstallResult;
103
+ }
64
104
  /** Discriminated union returned by every phase function. */
65
105
  export type PhaseResult = {
66
106
  readonly status: "complete";
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/init/phases/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,oCAAoC;AACpC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU;IACV,UAAU;IACV,UAAU;IACV,QAAQ;IACR,SAAS;IACT,SAAS;IACT,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,gBAAgB;IAChB,aAAa;IACb,UAAU;IACV,aAAa;CACL,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/init/phases/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAYH,oCAAoC;AACpC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU;IACV,UAAU;IACV,UAAU;IACV,QAAQ;IACR,SAAS;IACT,SAAS;IACT,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,gBAAgB;IAChB,aAAa;IACb,UAAU;IACV,aAAa;CACL,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Post-git-init configuration helper.
3
+ *
4
+ * Cairn drives a `git init` only when adoption starts in a directory
5
+ * that isn't already a working tree (cairn-adopt skill, Step 2). On
6
+ * WSL+Windows volumes the freshly-initialized repo's owner uid often
7
+ * differs from the WSL user, and `git` then refuses to operate with
8
+ * `fatal: detected dubious ownership in repository`. The fix is per-
9
+ * clone, idempotent, and silent if already set:
10
+ *
11
+ * git config --local safe.directory <abs-path>
12
+ * git config --local core.fileMode false
13
+ *
14
+ * `applyPostInitGitConfig` is callable two ways:
15
+ *
16
+ * 1. Right after Cairn drives a `git init` — run unconditionally.
17
+ * 2. From Phase 1 detect, when WSL-from-Windows is active — run
18
+ * whether or not Cairn drove the init.
19
+ *
20
+ * The git runner is injectable so smokes can record argv without a
21
+ * real fork.
22
+ */
23
+ export interface GitRunResult {
24
+ ok: boolean;
25
+ stdout: string;
26
+ stderr: string;
27
+ }
28
+ export type GitRunner = (args: string[], cwd: string) => GitRunResult;
29
+ export interface PostGitInitOptions {
30
+ repoRoot: string;
31
+ /** Test injection. Defaults to `spawnSync("git", args, {cwd})`. */
32
+ gitRunner?: GitRunner;
33
+ }
34
+ export interface PostGitInitResult {
35
+ /** One entry per `git config` call attempted. */
36
+ applied: {
37
+ command: string[];
38
+ ok: boolean;
39
+ stderr: string;
40
+ }[];
41
+ }
42
+ export declare function applyPostInitGitConfig(opts: PostGitInitOptions): PostGitInitResult;
43
+ export interface WslDetectOptions {
44
+ platform?: NodeJS.Platform;
45
+ /** Test injection. Defaults to reading `/proc/version`. */
46
+ procVersionReader?: () => string | null;
47
+ }
48
+ /**
49
+ * `true` when the current process is Linux running inside WSL.
50
+ * Defaults to live `process.platform` + `/proc/version` lookup; tests
51
+ * inject both.
52
+ */
53
+ export declare function detectWsl(opts?: WslDetectOptions): boolean;
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Post-git-init configuration helper.
3
+ *
4
+ * Cairn drives a `git init` only when adoption starts in a directory
5
+ * that isn't already a working tree (cairn-adopt skill, Step 2). On
6
+ * WSL+Windows volumes the freshly-initialized repo's owner uid often
7
+ * differs from the WSL user, and `git` then refuses to operate with
8
+ * `fatal: detected dubious ownership in repository`. The fix is per-
9
+ * clone, idempotent, and silent if already set:
10
+ *
11
+ * git config --local safe.directory <abs-path>
12
+ * git config --local core.fileMode false
13
+ *
14
+ * `applyPostInitGitConfig` is callable two ways:
15
+ *
16
+ * 1. Right after Cairn drives a `git init` — run unconditionally.
17
+ * 2. From Phase 1 detect, when WSL-from-Windows is active — run
18
+ * whether or not Cairn drove the init.
19
+ *
20
+ * The git runner is injectable so smokes can record argv without a
21
+ * real fork.
22
+ */
23
+ import { existsSync, readFileSync } from "node:fs";
24
+ import { resolve } from "node:path";
25
+ import { spawnSync } from "node:child_process";
26
+ const defaultGitRunner = (args, cwd) => {
27
+ const r = spawnSync("git", args, { cwd, encoding: "utf8" });
28
+ return {
29
+ ok: r.status === 0,
30
+ stdout: r.stdout ?? "",
31
+ stderr: r.stderr ?? "",
32
+ };
33
+ };
34
+ export function applyPostInitGitConfig(opts) {
35
+ const runner = opts.gitRunner ?? defaultGitRunner;
36
+ const abs = resolve(opts.repoRoot);
37
+ const calls = [
38
+ ["config", "--local", "safe.directory", abs],
39
+ ["config", "--local", "core.fileMode", "false"],
40
+ ];
41
+ const applied = [];
42
+ for (const args of calls) {
43
+ const r = runner(args, abs);
44
+ applied.push({ command: ["git", ...args], ok: r.ok, stderr: r.stderr });
45
+ }
46
+ return { applied };
47
+ }
48
+ const defaultProcVersionReader = () => {
49
+ if (!existsSync("/proc/version"))
50
+ return null;
51
+ try {
52
+ return readFileSync("/proc/version", "utf8");
53
+ }
54
+ catch {
55
+ return null;
56
+ }
57
+ };
58
+ const WSL_PROC_RE = /Microsoft|WSL/;
59
+ /**
60
+ * `true` when the current process is Linux running inside WSL.
61
+ * Defaults to live `process.platform` + `/proc/version` lookup; tests
62
+ * inject both.
63
+ */
64
+ export function detectWsl(opts = {}) {
65
+ const platform = opts.platform ?? process.platform;
66
+ if (platform !== "linux")
67
+ return false;
68
+ const reader = opts.procVersionReader ?? defaultProcVersionReader;
69
+ const text = reader();
70
+ if (typeof text !== "string")
71
+ return false;
72
+ return WSL_PROC_RE.test(text);
73
+ }
74
+ //# sourceMappingURL=post-git-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-git-init.js","sourceRoot":"","sources":["../../src/init/post-git-init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAqB/C,MAAM,gBAAgB,GAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAChD,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;QACtB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;KACvB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,sBAAsB,CACpC,IAAwB;IAExB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,KAAK,GAAe;QACxB,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,CAAC;QAC5C,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,CAAC;KAChD,CAAC;IACF,MAAM,OAAO,GAAiC,EAAE,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAQD,MAAM,wBAAwB,GAAG,GAAkB,EAAE;IACnD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,eAAe,CAAC;AAEpC;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,OAAyB,EAAE;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACnD,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,IAAI,wBAAwB,CAAC;IAClE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;IACtB,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
@@ -36,7 +36,16 @@ export interface MonorepoContext {
36
36
  export declare function detectMonorepoContext(startCwd: string, gitRoot: string | null): MonorepoContext | null;
37
37
  /**
38
38
  * Returns true when `repoRoot` looks like the Cairn source repository.
39
- * Checks for the conjunction of all three markers — any single one would
40
- * false-positive on too many repos.
39
+ *
40
+ * Conjunction of three load-bearing markers any single one
41
+ * false-positives on too many repos:
42
+ *
43
+ * 1. `packages/cairn-core/package.json` exists AND its `name` field
44
+ * is `@isaacriehm/cairn-core`.
45
+ * 2. `packages/cairn-frontend-claudecode/package.json` exists.
46
+ * 3. `pnpm-workspace.yaml` at the root.
47
+ *
48
+ * The package.json `name` check is what actually identifies the repo
49
+ * — directory names are not unique enough.
41
50
  */
42
51
  export declare function isCairnSourceRepo(repoRoot: string): boolean;
@@ -97,12 +97,34 @@ function checkWorkspaceMarker(dir) {
97
97
  }
98
98
  /**
99
99
  * Returns true when `repoRoot` looks like the Cairn source repository.
100
- * Checks for the conjunction of all three markers — any single one would
101
- * false-positive on too many repos.
100
+ *
101
+ * Conjunction of three load-bearing markers any single one
102
+ * false-positives on too many repos:
103
+ *
104
+ * 1. `packages/cairn-core/package.json` exists AND its `name` field
105
+ * is `@isaacriehm/cairn-core`.
106
+ * 2. `packages/cairn-frontend-claudecode/package.json` exists.
107
+ * 3. `pnpm-workspace.yaml` at the root.
108
+ *
109
+ * The package.json `name` check is what actually identifies the repo
110
+ * — directory names are not unique enough.
102
111
  */
103
112
  export function isCairnSourceRepo(repoRoot) {
104
- return (existsSync(join(repoRoot, "cairn-build")) &&
105
- existsSync(join(repoRoot, "packages", "cairn-core")) &&
106
- existsSync(join(repoRoot, "pnpm-workspace.yaml")));
113
+ if (!existsSync(join(repoRoot, "pnpm-workspace.yaml")))
114
+ return false;
115
+ if (!existsSync(join(repoRoot, "packages", "cairn-frontend-claudecode", "package.json"))) {
116
+ return false;
117
+ }
118
+ const corePkgPath = join(repoRoot, "packages", "cairn-core", "package.json");
119
+ if (!existsSync(corePkgPath))
120
+ return false;
121
+ try {
122
+ const raw = readFileSync(corePkgPath, "utf8");
123
+ const parsed = JSON.parse(raw);
124
+ return parsed.name === "@isaacriehm/cairn-core";
125
+ }
126
+ catch {
127
+ return false;
128
+ }
107
129
  }
108
130
  //# sourceMappingURL=preflight-guards.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preflight-guards.js","sourceRoot":"","sources":["../../src/init/preflight-guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preflight-guards.js","sourceRoot":"","sources":["../../src/init/preflight-guards.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,4 @@ export type { RuleSection } from "./parse-sections.js";
7
7
  export { regenerateRulesFiles } from "./regenerate.js";
8
8
  export type { RegenerateRulesArgs, RegenerateRulesResult, } from "./regenerate.js";
9
9
  export { runRulesMerge } from "./ingest.js";
10
- export type { RuleClassKind, RuleClassification, RunRulesMergeArgs, RunRulesMergeResult, } from "./ingest.js";
10
+ export type { RuleClassKind, RuleClassification, RunRulesMergeArgs, RunRulesMergeResult, RunRulesMergeRunResult, RunRulesMergeSkippedResult, } from "./ingest.js";
@@ -107,7 +107,7 @@ interface RuleConflictRecord {
107
107
  /** Haiku judge's verdict reasoning excerpt. */
108
108
  reasoning: string;
109
109
  }
110
- export interface RunRulesMergeResult {
110
+ export interface RunRulesMergeRunResult {
111
111
  sources: RuleSourceFile[];
112
112
  sectionsTotal: number;
113
113
  classifications: RuleClassification[];
@@ -119,5 +119,10 @@ export interface RunRulesMergeResult {
119
119
  auditRelPath: string;
120
120
  kindCounts: Record<RuleClassKind, number>;
121
121
  }
122
+ /** Phase was skipped because the repo is the Cairn source repo itself. */
123
+ export interface RunRulesMergeSkippedResult {
124
+ readonly skipped: "self-adopt";
125
+ }
126
+ export type RunRulesMergeResult = RunRulesMergeRunResult | RunRulesMergeSkippedResult;
122
127
  export declare function runRulesMerge(args: RunRulesMergeArgs): Promise<RunRulesMergeResult>;
123
128
  export {};