@alecsibilia/luca 13.0.0-alpha.6 → 13.0.0-alpha.7

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 (47) hide show
  1. package/dist/chunks/branch.mjs +6 -6
  2. package/dist/chunks/checks.mjs +6 -6
  3. package/dist/chunks/claim-verify.mjs +1 -1
  4. package/dist/chunks/classify.mjs +1 -1
  5. package/dist/chunks/confidence.mjs +6 -6
  6. package/dist/chunks/hook.mjs +4 -4
  7. package/dist/chunks/init.mjs +1 -1
  8. package/dist/chunks/phase.mjs +8 -8
  9. package/dist/chunks/pr-review.mjs +6 -6
  10. package/dist/chunks/preferences.mjs +6 -6
  11. package/dist/chunks/repair.mjs +1 -1
  12. package/dist/chunks/repo.mjs +6 -6
  13. package/dist/chunks/retro.mjs +5 -5
  14. package/dist/chunks/roadmap.mjs +6 -6
  15. package/dist/chunks/rules.mjs +5 -5
  16. package/dist/chunks/state.mjs +6 -6
  17. package/dist/chunks/stray-local-install.mjs +1 -1
  18. package/dist/chunks/telemetry.mjs +1 -1
  19. package/dist/chunks/todo.mjs +6 -6
  20. package/dist/chunks/vault-init.mjs +1 -1
  21. package/dist/chunks/verification.mjs +4 -4
  22. package/dist/chunks/workflow.mjs +6 -6
  23. package/dist/claude/.claude/agents/architect.md +1 -1
  24. package/dist/claude/.claude/agents/finalize.md +30 -31
  25. package/dist/claude/.claude/agents/research.md +2 -2
  26. package/dist/claude/.claude/agents/review.md +26 -16
  27. package/dist/claude/.claude/agents/triage.md +3 -4
  28. package/dist/claude/.claude/commands/lu.md +4 -4
  29. package/dist/claude/.claude/commands/milestone-new.md +1 -1
  30. package/dist/claude/.claude/hooks/context-refresher.ts +13 -18
  31. package/dist/claude/.claude/hooks/continuation-messages.ts +13 -18
  32. package/dist/claude/.claude/hooks/pipeline-guard.ts +13 -18
  33. package/dist/claude/skills/autopilot/SKILL.md +3 -2
  34. package/dist/claude/skills/gh-prepare/SKILL.md +1 -1
  35. package/dist/claude/skills/lu/SKILL.md +4 -4
  36. package/dist/claude/skills/phase-execute/SKILL.md +3 -2
  37. package/dist/claude/skills/quick/SKILL.md +4 -3
  38. package/dist/index.mjs +1 -1
  39. package/dist/shared/{luca.DZxAJmyM.mjs → luca.B8ydzQ8S.mjs} +17 -21
  40. package/dist/shared/{luca.0ssL9rcP.mjs → luca.BV4noBW7.mjs} +2 -2
  41. package/dist/shared/{luca.BiHycbFi.mjs → luca.BeGsLJkq.mjs} +3 -3
  42. package/dist/shared/{luca.Cf93m-DM.mjs → luca.CWsqOppt.mjs} +1 -1
  43. package/dist/shared/{luca.BTcIy-Mh.mjs → luca.CyQeErH2.mjs} +6 -5
  44. package/dist/shared/{luca.B-w_fieK.mjs → luca.Da5I_JVg.mjs} +1 -1
  45. package/dist/shared/{luca.D7w2gjQ5.mjs → luca.Dn7Gbruu.mjs} +2 -2
  46. package/dist/shared/{luca.lLQ2ZIAB.mjs → luca.ELUgu8AW.mjs} +8 -8
  47. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.DZxAJmyM.mjs';
3
+ import '../shared/luca.B8ydzQ8S.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { r as runWriteHandler, u as lucaBranchGuardTool } from '../shared/luca.lLQ2ZIAB.mjs';
12
- import '../shared/luca.BTcIy-Mh.mjs';
11
+ import { r as runWriteHandler, u as lucaBranchGuardTool } from '../shared/luca.ELUgu8AW.mjs';
12
+ import '../shared/luca.CyQeErH2.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.Cf93m-DM.mjs';
15
- import '../shared/luca.D7w2gjQ5.mjs';
16
- import '../shared/luca.B-w_fieK.mjs';
14
+ import '../shared/luca.CWsqOppt.mjs';
15
+ import '../shared/luca.Dn7Gbruu.mjs';
16
+ import '../shared/luca.Da5I_JVg.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const guardCommand = defineCommand({
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.DZxAJmyM.mjs';
3
+ import '../shared/luca.B8ydzQ8S.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { f as readJsonPayload, r as runWriteHandler, t as lucaChecksRunTool } from '../shared/luca.lLQ2ZIAB.mjs';
12
- import '../shared/luca.BTcIy-Mh.mjs';
11
+ import { f as readJsonPayload, r as runWriteHandler, t as lucaChecksRunTool } from '../shared/luca.ELUgu8AW.mjs';
12
+ import '../shared/luca.CyQeErH2.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.Cf93m-DM.mjs';
15
- import '../shared/luca.D7w2gjQ5.mjs';
16
- import '../shared/luca.B-w_fieK.mjs';
14
+ import '../shared/luca.CWsqOppt.mjs';
15
+ import '../shared/luca.Dn7Gbruu.mjs';
16
+ import '../shared/luca.Da5I_JVg.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const runCommand = defineCommand({
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import { resolve } from 'pathe';
3
- import '../shared/luca.DZxAJmyM.mjs';
3
+ import '../shared/luca.B8ydzQ8S.mjs';
4
4
  import { readFileSync, existsSync, readdirSync, statSync } from 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import { join } from 'node:path';
@@ -1,5 +1,5 @@
1
1
  import { defineCommand } from 'citty';
2
- import { C as ClassifyComplexityInputSchema } from '../shared/luca.DZxAJmyM.mjs';
2
+ import { C as ClassifyComplexityInputSchema } from '../shared/luca.B8ydzQ8S.mjs';
3
3
  import 'node:fs';
4
4
  import 'node:fs/promises';
5
5
  import 'node:path';
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
- import '../shared/luca.DZxAJmyM.mjs';
3
- import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.Cf93m-DM.mjs';
2
+ import '../shared/luca.B8ydzQ8S.mjs';
3
+ import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.CWsqOppt.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { b as renderConfidenceJournalMarkdown, r as readConfidenceJournal, g as getConfidenceSummary } from '../shared/luca.D7w2gjQ5.mjs';
11
+ import { b as renderConfidenceJournalMarkdown, r as readConfidenceJournal, g as getConfidenceSummary } from '../shared/luca.Dn7Gbruu.mjs';
12
12
  import { l as logger } from '../shared/luca.dM-MKlNE.mjs';
13
13
  import 'zod';
14
- import { f as readJsonPayload, r as runWriteHandler, w as lucaConfidenceLogTool } from '../shared/luca.lLQ2ZIAB.mjs';
15
- import '../shared/luca.BTcIy-Mh.mjs';
14
+ import { f as readJsonPayload, r as runWriteHandler, w as lucaConfidenceLogTool } from '../shared/luca.ELUgu8AW.mjs';
15
+ import '../shared/luca.CyQeErH2.mjs';
16
16
  import 'node:os';
17
- import '../shared/luca.B-w_fieK.mjs';
17
+ import '../shared/luca.Da5I_JVg.mjs';
18
18
  import 'consola';
19
19
  import '../shared/luca.CQ3g1xrD.mjs';
20
20
 
@@ -1,11 +1,11 @@
1
1
  import { defineCommand } from 'citty';
2
- import { c as coarsePhaseOf, t as toLucaRelative, a as classifyWritePath, A as AUDIT_PATH_PATTERN, W as WAVE_FILE_RE } from '../shared/luca.DZxAJmyM.mjs';
3
- import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.Cf93m-DM.mjs';
2
+ import { c as coarsePhaseOf, t as toLucaRelative, a as classifyWritePath, A as AUDIT_PATH_PATTERN, W as WAVE_FILE_RE } from '../shared/luca.B8ydzQ8S.mjs';
3
+ import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.CWsqOppt.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
7
- import { l as lucaStateClaimOwnerTool, S as STEP_ARTIFACTS } from '../shared/luca.BTcIy-Mh.mjs';
8
- import { p as phasePathFor } from '../shared/luca.B-w_fieK.mjs';
7
+ import { l as lucaStateClaimOwnerTool, S as STEP_ARTIFACTS } from '../shared/luca.CyQeErH2.mjs';
8
+ import { p as phasePathFor } from '../shared/luca.Da5I_JVg.mjs';
9
9
  import 'node:crypto';
10
10
  import 'node:module';
11
11
  import 'node:url';
@@ -3,7 +3,7 @@ import { defineCommand, runMain } from 'citty';
3
3
  import { existsSync, chmodSync } from 'node:fs';
4
4
  import { mkdir, readFile, writeFile, readdir, copyFile } from 'node:fs/promises';
5
5
  import { join, dirname, delimiter } from 'node:path';
6
- import { l as lucaStateSchema } from '../shared/luca.DZxAJmyM.mjs';
6
+ import { l as lucaStateSchema } from '../shared/luca.B8ydzQ8S.mjs';
7
7
  import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.DZxAJmyM.mjs';
3
+ import '../shared/luca.B8ydzQ8S.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { r as runWriteHandler, c as lucaPhaseCurrentTool, d as lucaPhaseAdvanceTool, e as lucaPhaseArchiveTool } from '../shared/luca.lLQ2ZIAB.mjs';
12
- import '../shared/luca.BTcIy-Mh.mjs';
11
+ import { r as runWriteHandler, c as lucaPhaseCurrentTool, d as lucaPhaseAdvanceTool, e as lucaPhaseArchiveTool } from '../shared/luca.ELUgu8AW.mjs';
12
+ import '../shared/luca.CyQeErH2.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.Cf93m-DM.mjs';
15
- import '../shared/luca.D7w2gjQ5.mjs';
16
- import '../shared/luca.B-w_fieK.mjs';
14
+ import '../shared/luca.CWsqOppt.mjs';
15
+ import '../shared/luca.Dn7Gbruu.mjs';
16
+ import '../shared/luca.Da5I_JVg.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const currentCommand = defineCommand({
@@ -28,7 +28,7 @@ const currentCommand = defineCommand({
28
28
  const advanceCommand = defineCommand({
29
29
  meta: {
30
30
  name: "advance",
31
- description: "Advance the active roadmap phase by one (currentPhase \u2192 currentPhase+1), marking the completed phase done and the next in-progress. Call at the phase boundary (learn step) when more phases remain; the final phase routes to the milestone step."
31
+ description: "Advance the active roadmap phase by one (currentPhase \u2192 currentPhase+1), marking the completed phase done and the next in-progress. Call at the phase boundary (learn step) when more phases remain; the final phase routes to the finalize step."
32
32
  },
33
33
  async run() {
34
34
  await runWriteHandler("phase advance", lucaPhaseAdvanceTool, {});
@@ -37,7 +37,7 @@ const advanceCommand = defineCommand({
37
37
  const archiveCommand = defineCommand({
38
38
  meta: {
39
39
  name: "archive",
40
- description: "Archive all active phase directories (.luca/phases/<slug>/ \u2192 .luca/archive/<slug>/) at milestone close, so the next milestone starts from an empty phases/ dir. Idempotent; skips slugs already archived. Allowed only in the milestone/complete steps."
40
+ description: "Archive all active phase directories (.luca/phases/<slug>/ \u2192 .luca/archive/<slug>/) at milestone close, so the next milestone starts from an empty phases/ dir. Idempotent; skips slugs already archived. Allowed only in the finalize step."
41
41
  },
42
42
  async run() {
43
43
  await runWriteHandler("phase archive", lucaPhaseArchiveTool, {});
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.DZxAJmyM.mjs';
3
+ import '../shared/luca.B8ydzQ8S.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { f as readJsonPayload, r as runWriteHandler, o as lucaPrReviewDetectConvergenceTool, p as lucaPrReviewFilterStaleTool, q as lucaPrReviewRegressionCheckTool } from '../shared/luca.lLQ2ZIAB.mjs';
12
- import '../shared/luca.BTcIy-Mh.mjs';
11
+ import { f as readJsonPayload, r as runWriteHandler, o as lucaPrReviewDetectConvergenceTool, p as lucaPrReviewFilterStaleTool, q as lucaPrReviewRegressionCheckTool } from '../shared/luca.ELUgu8AW.mjs';
12
+ import '../shared/luca.CyQeErH2.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.Cf93m-DM.mjs';
15
- import '../shared/luca.D7w2gjQ5.mjs';
16
- import '../shared/luca.B-w_fieK.mjs';
14
+ import '../shared/luca.CWsqOppt.mjs';
15
+ import '../shared/luca.Dn7Gbruu.mjs';
16
+ import '../shared/luca.Da5I_JVg.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const filterStaleCommand = defineCommand({
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.DZxAJmyM.mjs';
3
+ import '../shared/luca.B8ydzQ8S.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { f as readJsonPayload, r as runWriteHandler, i as lucaPreferencesReadTool, j as lucaPreferencesWriteTool } from '../shared/luca.lLQ2ZIAB.mjs';
12
- import '../shared/luca.BTcIy-Mh.mjs';
11
+ import { f as readJsonPayload, r as runWriteHandler, i as lucaPreferencesReadTool, j as lucaPreferencesWriteTool } from '../shared/luca.ELUgu8AW.mjs';
12
+ import '../shared/luca.CyQeErH2.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.Cf93m-DM.mjs';
15
- import '../shared/luca.D7w2gjQ5.mjs';
16
- import '../shared/luca.B-w_fieK.mjs';
14
+ import '../shared/luca.CWsqOppt.mjs';
15
+ import '../shared/luca.Dn7Gbruu.mjs';
16
+ import '../shared/luca.Da5I_JVg.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const readCommand = defineCommand({
@@ -2,7 +2,7 @@ import { defineCommand } from 'citty';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { readFile, rm } from 'node:fs/promises';
4
4
  import { join } from 'node:path';
5
- import { l as lucaStateSchema } from '../shared/luca.DZxAJmyM.mjs';
5
+ import { l as lucaStateSchema } from '../shared/luca.B8ydzQ8S.mjs';
6
6
  import 'node:crypto';
7
7
  import 'node:module';
8
8
  import 'node:url';
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.DZxAJmyM.mjs';
3
+ import '../shared/luca.B8ydzQ8S.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { f as readJsonPayload, r as runWriteHandler, s as lucaRepoCleanupApplyTool } from '../shared/luca.lLQ2ZIAB.mjs';
12
- import '../shared/luca.BTcIy-Mh.mjs';
11
+ import { f as readJsonPayload, r as runWriteHandler, s as lucaRepoCleanupApplyTool } from '../shared/luca.ELUgu8AW.mjs';
12
+ import '../shared/luca.CyQeErH2.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.Cf93m-DM.mjs';
15
- import '../shared/luca.D7w2gjQ5.mjs';
16
- import '../shared/luca.B-w_fieK.mjs';
14
+ import '../shared/luca.CWsqOppt.mjs';
15
+ import '../shared/luca.Dn7Gbruu.mjs';
16
+ import '../shared/luca.Da5I_JVg.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const cleanupApplyCommand = defineCommand({
@@ -1,5 +1,5 @@
1
1
  import { defineCommand } from 'citty';
2
- import '../shared/luca.DZxAJmyM.mjs';
2
+ import '../shared/luca.B8ydzQ8S.mjs';
3
3
  import 'node:fs';
4
4
  import 'node:fs/promises';
5
5
  import 'node:path';
@@ -7,13 +7,13 @@ import 'node:crypto';
7
7
  import 'node:module';
8
8
  import 'node:url';
9
9
  import 'node:child_process';
10
- import { a as analyzeRun, g as gatherRunArtifacts, r as renderPostmortemMarkdown, c as computePostmortemExitCode } from '../shared/luca.BiHycbFi.mjs';
11
- import { l as listRuns } from '../shared/luca.D7w2gjQ5.mjs';
10
+ import { a as analyzeRun, g as gatherRunArtifacts, r as renderPostmortemMarkdown, c as computePostmortemExitCode } from '../shared/luca.BeGsLJkq.mjs';
11
+ import { l as listRuns } from '../shared/luca.Dn7Gbruu.mjs';
12
12
  import { l as logger } from '../shared/luca.dM-MKlNE.mjs';
13
13
  import 'zod';
14
14
  import 'node:os';
15
- import '../shared/luca.0ssL9rcP.mjs';
16
- import '../shared/luca.B-w_fieK.mjs';
15
+ import '../shared/luca.BV4noBW7.mjs';
16
+ import '../shared/luca.Da5I_JVg.mjs';
17
17
  import 'pathe';
18
18
  import 'consola';
19
19
 
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.DZxAJmyM.mjs';
3
+ import '../shared/luca.B8ydzQ8S.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { f as readJsonPayload, r as runWriteHandler, g as lucaRoadmapReadTool, h as lucaRoadmapCreateTool } from '../shared/luca.lLQ2ZIAB.mjs';
12
- import '../shared/luca.BTcIy-Mh.mjs';
11
+ import { f as readJsonPayload, r as runWriteHandler, g as lucaRoadmapReadTool, h as lucaRoadmapCreateTool } from '../shared/luca.ELUgu8AW.mjs';
12
+ import '../shared/luca.CyQeErH2.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.Cf93m-DM.mjs';
15
- import '../shared/luca.D7w2gjQ5.mjs';
16
- import '../shared/luca.B-w_fieK.mjs';
14
+ import '../shared/luca.CWsqOppt.mjs';
15
+ import '../shared/luca.Dn7Gbruu.mjs';
16
+ import '../shared/luca.Da5I_JVg.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const readCommand = defineCommand({
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import { join as join$1 } from 'pathe';
3
- import '../shared/luca.DZxAJmyM.mjs';
3
+ import '../shared/luca.B8ydzQ8S.mjs';
4
4
  import { existsSync, readdirSync, statSync, readFileSync } from 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import { isAbsolute, resolve, join, extname } from 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import { createRequire } from 'node:module';
9
9
  import { pathToFileURL } from 'node:url';
10
10
  import 'node:child_process';
11
- import { a as analyzeRun, g as gatherRunArtifacts } from '../shared/luca.BiHycbFi.mjs';
12
- import { l as listRuns } from '../shared/luca.D7w2gjQ5.mjs';
11
+ import { a as analyzeRun, g as gatherRunArtifacts } from '../shared/luca.BeGsLJkq.mjs';
12
+ import { l as listRuns } from '../shared/luca.Dn7Gbruu.mjs';
13
13
  import { l as logger } from '../shared/luca.dM-MKlNE.mjs';
14
14
  import 'zod';
15
15
  import 'node:os';
16
- import '../shared/luca.0ssL9rcP.mjs';
17
- import '../shared/luca.B-w_fieK.mjs';
16
+ import '../shared/luca.BV4noBW7.mjs';
17
+ import '../shared/luca.Da5I_JVg.mjs';
18
18
  import 'consola';
19
19
 
20
20
  let tsModuleCache = void 0;
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.DZxAJmyM.mjs';
3
+ import '../shared/luca.B8ydzQ8S.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { r as runWriteHandler, l as lucaStateSetCurrentPhaseTool, a as lucaStateAdvanceTool, b as lucaStateReadTool } from '../shared/luca.lLQ2ZIAB.mjs';
12
- import { l as lucaStateClaimOwnerTool } from '../shared/luca.BTcIy-Mh.mjs';
11
+ import { r as runWriteHandler, l as lucaStateSetCurrentPhaseTool, a as lucaStateAdvanceTool, b as lucaStateReadTool } from '../shared/luca.ELUgu8AW.mjs';
12
+ import { l as lucaStateClaimOwnerTool } from '../shared/luca.CyQeErH2.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.Cf93m-DM.mjs';
15
- import '../shared/luca.D7w2gjQ5.mjs';
16
- import '../shared/luca.B-w_fieK.mjs';
14
+ import '../shared/luca.CWsqOppt.mjs';
15
+ import '../shared/luca.Dn7Gbruu.mjs';
16
+ import '../shared/luca.Da5I_JVg.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const readCommand = defineCommand({
@@ -1,7 +1,7 @@
1
1
  import { existsSync, lstatSync } from 'node:fs';
2
2
  import { rm, writeFile, readdir, rmdir } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
- import '../shared/luca.DZxAJmyM.mjs';
4
+ import '../shared/luca.B8ydzQ8S.mjs';
5
5
  import 'node:crypto';
6
6
  import 'node:module';
7
7
  import 'node:url';
@@ -1,5 +1,5 @@
1
1
  import { defineCommand } from 'citty';
2
- import { R as RunIdSchema, L as LUCA_DIR_ROOT, T as TelemetryRecordSchema } from '../shared/luca.DZxAJmyM.mjs';
2
+ import { R as RunIdSchema, L as LUCA_DIR_ROOT, T as TelemetryRecordSchema } from '../shared/luca.B8ydzQ8S.mjs';
3
3
  import { mkdirSync, appendFileSync } from 'node:fs';
4
4
  import 'node:fs/promises';
5
5
  import { join, dirname } from 'node:path';
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.DZxAJmyM.mjs';
3
+ import '../shared/luca.B8ydzQ8S.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { f as readJsonPayload, r as runWriteHandler, k as lucaTodoUpdateTool, m as lucaTodoListTool, n as lucaTodoAddTool } from '../shared/luca.lLQ2ZIAB.mjs';
12
- import '../shared/luca.BTcIy-Mh.mjs';
11
+ import { f as readJsonPayload, r as runWriteHandler, k as lucaTodoUpdateTool, m as lucaTodoListTool, n as lucaTodoAddTool } from '../shared/luca.ELUgu8AW.mjs';
12
+ import '../shared/luca.CyQeErH2.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.Cf93m-DM.mjs';
15
- import '../shared/luca.D7w2gjQ5.mjs';
16
- import '../shared/luca.B-w_fieK.mjs';
14
+ import '../shared/luca.CWsqOppt.mjs';
15
+ import '../shared/luca.Dn7Gbruu.mjs';
16
+ import '../shared/luca.Da5I_JVg.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const addCommand = defineCommand({
@@ -1,5 +1,5 @@
1
1
  import { existsSync, chmodSync, mkdirSync } from 'node:fs';
2
- import '../shared/luca.DZxAJmyM.mjs';
2
+ import '../shared/luca.B8ydzQ8S.mjs';
3
3
  import 'node:fs/promises';
4
4
  import 'node:path';
5
5
  import { l as loadCurrentConfig } from '../shared/luca.CQ3g1xrD.mjs';
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
- import '../shared/luca.DZxAJmyM.mjs';
3
- import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.Cf93m-DM.mjs';
2
+ import '../shared/luca.B8ydzQ8S.mjs';
3
+ import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.CWsqOppt.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,11 +8,11 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { l as listPhaseSlugs, r as readVerificationResult, a as aggregateVerificationResults } from '../shared/luca.0ssL9rcP.mjs';
11
+ import { l as listPhaseSlugs, r as readVerificationResult, a as aggregateVerificationResults } from '../shared/luca.BV4noBW7.mjs';
12
12
  import { l as logger } from '../shared/luca.dM-MKlNE.mjs';
13
13
  import 'zod';
14
14
  import 'node:os';
15
- import '../shared/luca.B-w_fieK.mjs';
15
+ import '../shared/luca.Da5I_JVg.mjs';
16
16
  import 'pathe';
17
17
  import 'consola';
18
18
 
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.DZxAJmyM.mjs';
3
+ import '../shared/luca.B8ydzQ8S.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { r as runWriteHandler, v as lucaWorkflowResetTool } from '../shared/luca.lLQ2ZIAB.mjs';
12
- import '../shared/luca.BTcIy-Mh.mjs';
11
+ import { r as runWriteHandler, v as lucaWorkflowResetTool } from '../shared/luca.ELUgu8AW.mjs';
12
+ import '../shared/luca.CyQeErH2.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.Cf93m-DM.mjs';
15
- import '../shared/luca.D7w2gjQ5.mjs';
16
- import '../shared/luca.B-w_fieK.mjs';
14
+ import '../shared/luca.CWsqOppt.mjs';
15
+ import '../shared/luca.Dn7Gbruu.mjs';
16
+ import '../shared/luca.Da5I_JVg.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const resetCommand = defineCommand({
@@ -342,7 +342,7 @@ If changes requested, revise and re-submit. In **full-auto**, skip approval —
342
342
  When the plan is approved (or auto-approved in full-auto):
343
343
 
344
344
  1. The plan file is the canonical `.luca/phases/<currentPhaseSlug>/plan.md` written via `luca` artifact write semantics. Downstream stages resolve it deterministically from the phase slug and the LUCA_DIR_CONTRACT; no separate `planFile` state field is needed.
345
- 2. Transition to **Execute** mode via `luca state advance --to-step execute`.
345
+ 2. Transition to the **plan** step via `luca state advance --to-step plan` (the only legal next step from `architect`; planning then flows plan → plan-review → execute per the pipeline-transitions table).
346
346
 
347
347
  ---
348
348
 
@@ -25,7 +25,12 @@ color: "#6366f1"
25
25
 
26
26
  You are **Luca's finalization agent**. Handle milestone boundaries, quality assurance, gap detection, and session cleanup. Ensure completed work is properly packaged, documented, and delivered.
27
27
 
28
- You receive control from **Review mode**. Read the latest `.luca/phases/<currentPhaseSlug>/audits/<reviewer>.md` files for audit results and remaining advisory items.
28
+ You receive control from **Review mode** — on entry the pipeline is at the `learn` step. Read the latest `.luca/phases/<currentPhaseSlug>/audits/<reviewer>.md` files for audit results and remaining advisory items.
29
+
30
+ **Ensure the pipeline is at the `finalize` step** before doing anything else — the rest of this mode runs under the FINALIZING phase, whose stage-gate permits the commits and `gh pr create` that PR creation needs (REVIEWING, where `learn` lives, blocks them). Entry may be at `learn` (this mode self-driving from review's clean route) **or** already at `finalize` (the `/lu` orchestrator advances `learn → finalize` before spawning this mode). Run `luca state read` and advance **only if needed** — `finalize → finalize` is an illegal self-transition that would error:
31
+
32
+ - `pipelineStep` is `learn` → `luca state advance --to-step finalize`
33
+ - `pipelineStep` is already `finalize` → skip the advance; proceed.
29
34
 
30
35
  ---
31
36
 
@@ -36,8 +41,8 @@ You receive control from **Review mode**. Read the latest `.luca/phases/<current
36
41
  3. **Gap detection** — verify all planned work was completed; reconcile `plan.md` against shipped code.
37
42
  4. **Postmortem gate** — block on critical pipeline violations before PR.
38
43
  5. **PR creation** — write changeset post-convergence, run claim verifier, then create pull request.
39
- 6. **Cross-milestone continuation** — loop back if roadmap has remaining phases.
40
- 7. **Session cleanup** — release locks, summarize work.
44
+ 6. **Surface remaining work** — if the roadmap has phases beyond this milestone, summarize them for a fresh `/lu` run (one run finalizes one milestone).
45
+ 7. **Session cleanup** — release locks, summarize work, reset to `idle`.
41
46
 
42
47
  > **Ordering matters.** Gap detection, postmortem gate, and claim verifier all run *before* `gh pr create`. The changeset is written **after** review iteration converges, not before — pre-convergence drafts are the #1 source of doc drift. A failing gate must re-enter the pipeline rather than ship a PR.
43
48
 
@@ -288,32 +293,26 @@ If it returns `code: CLAIM_VERIFICATION_FAILED`:
288
293
 
289
294
  If `--skip-branch` was set, skip.
290
295
 
291
- ## Step 6: Cross-Milestone Continuation
296
+ ## Step 6: Surface Remaining Work
292
297
 
293
- Check if `.luca/roadmap.md` has remaining phases:
298
+ One run finalizes **one milestone** — there is no in-session cross-milestone loop. Check if `.luca/roadmap.md` has phases beyond the milestone just shipped:
294
299
 
295
300
  ```
296
- if roadmap.hasRemainingPhases AND milestonesThisSession < 3:
297
- 1. Increment milestone counter.
298
- 2. Archive current milestone.
299
- 3. Load next phase from roadmap.
300
- 4. Transition back to Architect mode (with research from previous milestone).
301
- else if roadmap.hasRemainingPhases AND milestonesThisSession >= 3:
302
- 1. Report: "Session milestone limit reached (3)".
303
- 2. Summarize remaining work.
304
- 3. Proceed to cleanup.
301
+ if roadmap.hasRemainingPhases:
302
+ 1. Summarize the remaining phases (the next milestone's scope).
303
+ 2. Create issues / note the continuation point so nothing is lost.
304
+ 3. Tell the user to run /lu again to start the next milestone.
305
305
  else:
306
- 1. All phases complete.
307
- 2. Proceed to cleanup.
306
+ 1. All planned work complete.
308
307
  ```
309
308
 
310
- Maximum **3 milestones per session**. If more remain: summarize what's left, create issues, note continuation point.
309
+ Either way, proceed to cleanup — the run ends by resetting to `idle`.
311
310
 
312
311
  ## Step 7: Session Cleanup
313
312
 
314
313
  ### Release Pipeline Lock
315
314
 
316
- Pipeline-lock concurrent-run protection is a v14 carry-forward (CF2) — the v13 `luca` CLI does not expose a lock-release subcommand. The session ends cleanly when the workflow reaches the `complete` step; no explicit release is required today.
315
+ Pipeline-lock concurrent-run protection is a v14 carry-forward (CF2) — the v13 `luca` CLI does not expose a lock-release subcommand. The session ends cleanly when the workflow resets to the `idle` step (the final transition below); no explicit release is required today.
317
316
 
318
317
  ### Clean Up Artifacts
319
318
 
@@ -385,7 +384,13 @@ When finalization is complete:
385
384
  3. Pipeline lock released.
386
385
  4. Final summary reported.
387
386
 
388
- The session is now complete.
387
+ Then reset the pipeline for the next run:
388
+
389
+ ```
390
+ luca state advance --to-step idle
391
+ ```
392
+
393
+ The session is now complete. To start the next milestone, run `/lu` again.
389
394
 
390
395
  ---
391
396
 
@@ -397,23 +402,17 @@ You are the **final stage** of the Luca autonomous pipeline:
397
402
  Triage → Research → Architect → Execute → Review → [Finalize]
398
403
  ```
399
404
 
400
- ### Cross-Milestone Continuation
405
+ ### Re-entry on gaps
401
406
 
402
- If roadmap has remaining phases and milestone limit not reached:
403
-
404
- ```
405
- luca state advance --to-step architect
406
- ```
407
-
408
- Loops back to Architect for next milestone cycle.
407
+ If gap detection (Step 3) or the postmortem gate (Step 4) blocks, re-enter the pipeline from the `finalize` step — `--to-step execute` (fix) or `--to-step review` (re-audit). The re-entered loop must converge before finalize runs again.
409
408
 
410
409
  ### End of Pipeline
411
410
 
412
- When no remaining phases or milestone limit reached:
413
- 1. Reset state via `luca workflow reset`.
414
- 2. Report final summary.
411
+ When finalization is complete:
412
+ 1. Report final summary.
413
+ 2. Reset to `idle` via `luca state advance --to-step idle` (see Completion above).
415
414
 
416
- Pipeline-lock release is a v14 carry-forward (CF2); the v13 `luca` CLI has no separate lock-release subcommand.
415
+ One run finalizes one milestone. If the roadmap has further phases, the user starts the next milestone with a fresh `/lu` run. Pipeline-lock release is a v14 carry-forward (CF2); the v13 `luca` CLI has no separate lock-release subcommand.
417
416
 
418
417
  ### TODO Backlog Cleanup
419
418
 
@@ -257,7 +257,7 @@ When research graduates (all quality dimensions pass or max iterations reached):
257
257
 
258
258
  1. Store findings in MuninnDB and create backlog todos.
259
259
  2. Report research summary, quality scores, and capture summary.
260
- 3. Transition to **Architect** mode via `luca state advance --to-step architect`.
260
+ 3. Transition to the **discuss** step via `luca state advance --to-step discuss` (the only legal next step from `research`; discussion gathers user decisions before architecture).
261
261
 
262
262
  ---
263
263
 
@@ -271,7 +271,7 @@ Triage → [Research] → Architect → Execute → Review → Finalize
271
271
 
272
272
  ### Automatic Mode Transition
273
273
 
274
- Transition happens automatically via `luca state advance --to-step architect`. Do NOT wait for user confirmation unless oversight is `human-in-loop`.
274
+ Transition happens automatically via `luca state advance --to-step discuss`. Do NOT wait for user confirmation unless oversight is `human-in-loop`.
275
275
 
276
276
  ### Context From Previous Stages
277
277