@alecsibilia/luca 13.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +47 -0
  3. package/bin/luca.js +3 -0
  4. package/dist/chunks/branch.mjs +47 -0
  5. package/dist/chunks/bun-runtime.mjs +46 -0
  6. package/dist/chunks/checks.mjs +53 -0
  7. package/dist/chunks/claim-verify.mjs +465 -0
  8. package/dist/chunks/classify.mjs +105 -0
  9. package/dist/chunks/confidence.mjs +199 -0
  10. package/dist/chunks/doctor.mjs +158 -0
  11. package/dist/chunks/hook.mjs +696 -0
  12. package/dist/chunks/init.mjs +715 -0
  13. package/dist/chunks/muninndb-health.mjs +66 -0
  14. package/dist/chunks/phase.mjs +38 -0
  15. package/dist/chunks/pr-review.mjs +122 -0
  16. package/dist/chunks/preferences.mjs +61 -0
  17. package/dist/chunks/repair.mjs +111 -0
  18. package/dist/chunks/repo.mjs +58 -0
  19. package/dist/chunks/retro.mjs +86 -0
  20. package/dist/chunks/roadmap.mjs +58 -0
  21. package/dist/chunks/rules.mjs +527 -0
  22. package/dist/chunks/stale-mcp-server.mjs +90 -0
  23. package/dist/chunks/state.mjs +57 -0
  24. package/dist/chunks/stray-local-install.mjs +200 -0
  25. package/dist/chunks/telemetry.mjs +165 -0
  26. package/dist/chunks/todo.mjs +151 -0
  27. package/dist/chunks/vault-init.mjs +300 -0
  28. package/dist/chunks/verification.mjs +95 -0
  29. package/dist/chunks/version.mjs +70 -0
  30. package/dist/chunks/workflow.mjs +47 -0
  31. package/dist/claude/.claude/agents/architect.md +410 -0
  32. package/dist/claude/.claude/agents/build.md +111 -0
  33. package/dist/claude/.claude/agents/discuss.md +93 -0
  34. package/dist/claude/.claude/agents/discussion.md +149 -0
  35. package/dist/claude/.claude/agents/execute.md +416 -0
  36. package/dist/claude/.claude/agents/executor.md +161 -0
  37. package/dist/claude/.claude/agents/fast.md +84 -0
  38. package/dist/claude/.claude/agents/finalize.md +484 -0
  39. package/dist/claude/.claude/agents/learner.md +160 -0
  40. package/dist/claude/.claude/agents/plan-reviewer.md +129 -0
  41. package/dist/claude/.claude/agents/plan.md +96 -0
  42. package/dist/claude/.claude/agents/research.md +327 -0
  43. package/dist/claude/.claude/agents/researcher.md +78 -0
  44. package/dist/claude/.claude/agents/review.md +283 -0
  45. package/dist/claude/.claude/agents/reviewer.md +163 -0
  46. package/dist/claude/.claude/agents/shadow-scanner.md +257 -0
  47. package/dist/claude/.claude/agents/triage.md +230 -0
  48. package/dist/claude/.claude/agents/verifier.md +131 -0
  49. package/dist/claude/.claude/commands/bug-diagnose.md +12 -0
  50. package/dist/claude/.claude/commands/gh-issue-triage.md +14 -0
  51. package/dist/claude/.claude/commands/gh-pr-address.md +235 -0
  52. package/dist/claude/.claude/commands/gh-prepare.md +12 -0
  53. package/dist/claude/.claude/commands/grill-me.md +12 -0
  54. package/dist/claude/.claude/commands/lu-review.md +51 -0
  55. package/dist/claude/.claude/commands/lu.md +75 -0
  56. package/dist/claude/.claude/commands/luca-init.md +14 -0
  57. package/dist/claude/.claude/commands/luca-telemetry-report.md +12 -0
  58. package/dist/claude/.claude/commands/memory-audit.md +12 -0
  59. package/dist/claude/.claude/commands/milestone-new.md +122 -0
  60. package/dist/claude/.claude/commands/phase-discuss.md +45 -0
  61. package/dist/claude/.claude/commands/phase-execute.md +39 -0
  62. package/dist/claude/.claude/commands/phase-plan.md +53 -0
  63. package/dist/claude/.claude/commands/repo-cleanup.md +80 -0
  64. package/dist/claude/.claude/commands/todo-add.md +28 -0
  65. package/dist/claude/.claude/commands/todo-check.md +36 -0
  66. package/dist/claude/.claude/hooks/context-refresher.ts +285 -0
  67. package/dist/claude/.claude/hooks/continuation-messages.ts +215 -0
  68. package/dist/claude/.claude/hooks/pipeline-guard.ts +182 -0
  69. package/dist/claude/.claude/settings.json +41 -0
  70. package/dist/claude/skills/arch-audit/SKILL.md +161 -0
  71. package/dist/claude/skills/autopilot/SKILL.md +1299 -0
  72. package/dist/claude/skills/bug-diagnose/SKILL.md +102 -0
  73. package/dist/claude/skills/choose/SKILL.md +124 -0
  74. package/dist/claude/skills/gh-issue-triage/SKILL.md +97 -0
  75. package/dist/claude/skills/gh-pr-address/SKILL.md +235 -0
  76. package/dist/claude/skills/gh-prepare/SKILL.md +209 -0
  77. package/dist/claude/skills/grill-me/SKILL.md +46 -0
  78. package/dist/claude/skills/lu/SKILL.md +112 -0
  79. package/dist/claude/skills/lu-review/SKILL.md +51 -0
  80. package/dist/claude/skills/luca-init/SKILL.md +91 -0
  81. package/dist/claude/skills/luca-telemetry-report/SKILL.md +145 -0
  82. package/dist/claude/skills/luca-write-surface/SKILL.md +213 -0
  83. package/dist/claude/skills/memory-audit/SKILL.md +217 -0
  84. package/dist/claude/skills/milestone-audit/SKILL.md +545 -0
  85. package/dist/claude/skills/milestone-complete/SKILL.md +168 -0
  86. package/dist/claude/skills/milestone-gaps/SKILL.md +60 -0
  87. package/dist/claude/skills/milestone-new/SKILL.md +125 -0
  88. package/dist/claude/skills/note/SKILL.md +162 -0
  89. package/dist/claude/skills/phase-add/SKILL.md +91 -0
  90. package/dist/claude/skills/phase-assumptions/SKILL.md +92 -0
  91. package/dist/claude/skills/phase-discuss/SKILL.md +165 -0
  92. package/dist/claude/skills/phase-execute/SKILL.md +1786 -0
  93. package/dist/claude/skills/phase-insert/SKILL.md +100 -0
  94. package/dist/claude/skills/phase-plan/SKILL.md +461 -0
  95. package/dist/claude/skills/phase-remove/SKILL.md +113 -0
  96. package/dist/claude/skills/phase-research/SKILL.md +80 -0
  97. package/dist/claude/skills/post-init-tour/SKILL.md +58 -0
  98. package/dist/claude/skills/progress/SKILL.md +271 -0
  99. package/dist/claude/skills/project-new/SKILL.md +609 -0
  100. package/dist/claude/skills/quick/SKILL.md +256 -0
  101. package/dist/claude/skills/rename-audit/SKILL.md +52 -0
  102. package/dist/claude/skills/repo-audit/SKILL.md +88 -0
  103. package/dist/claude/skills/repo-cleanup/SKILL.md +80 -0
  104. package/dist/claude/skills/seed-memory/SKILL.md +235 -0
  105. package/dist/claude/skills/session-pause/SKILL.md +126 -0
  106. package/dist/claude/skills/session-plan/SKILL.md +112 -0
  107. package/dist/claude/skills/session-resume/SKILL.md +75 -0
  108. package/dist/claude/skills/todo-add/SKILL.md +85 -0
  109. package/dist/claude/skills/todo-check/SKILL.md +77 -0
  110. package/dist/claude/skills/workflow-save/SKILL.md +277 -0
  111. package/dist/index.d.mts +33 -0
  112. package/dist/index.d.ts +33 -0
  113. package/dist/index.mjs +69 -0
  114. package/dist/shared/luca.B3Mimc0P.mjs +52 -0
  115. package/dist/shared/luca.B3saVjJm.mjs +163 -0
  116. package/dist/shared/luca.BYdjkfnz.mjs +217 -0
  117. package/dist/shared/luca.BmhNkYe2.mjs +56 -0
  118. package/dist/shared/luca.C4gMUoBd.mjs +358 -0
  119. package/dist/shared/luca.CQ3g1xrD.mjs +19 -0
  120. package/dist/shared/luca.CRmaAfXR.mjs +713 -0
  121. package/dist/shared/luca.CrXzXueR.mjs +57 -0
  122. package/dist/shared/luca.DTomPq7I.mjs +91 -0
  123. package/dist/shared/luca.DjDTeDCi.mjs +1904 -0
  124. package/dist/shared/luca.HZxBTBgD.mjs +201 -0
  125. package/dist/shared/luca.TSMg1t7I.mjs +10 -0
  126. package/dist/shared/luca.dM-MKlNE.mjs +25 -0
  127. package/dist/shared/luca.naWEcQ4B.mjs +7 -0
  128. package/package.json +76 -0
@@ -0,0 +1,609 @@
1
+ ---
2
+ name: project-new
3
+ description: Initialize a new Luca project with deep context gathering and MuninnDB memory seeding.
4
+ ---
5
+
6
+ <main>
7
+ # Luca New Project
8
+
9
+ Initialize a new project through unified flow: questioning → research (optional) → requirements → roadmap.
10
+
11
+ This is the most leveraged moment in any project. Deep questioning here means better plans, better execution, better outcomes. One command takes you from idea to ready-for-planning.
12
+
13
+ ## Sub-agent Delegation Requirements
14
+
15
+ This skill is an **orchestrator**. YOU MUST delegate work to sub-agents using the Task tool.
16
+
17
+ **Required sub-agents for this skill:**
18
+
19
+ - `lu-project-researcher` - Domain research (4 parallel agents for Stack, Features, Architecture, Pitfalls)
20
+ - `lu-research-synthesizer` - Synthesizes research outputs into SUMMARY.md
21
+ - `lu-roadmapper` - Creates `.luca/roadmap.md` from requirements via `luca roadmap create`
22
+
23
+ **DO NOT** attempt to research, synthesize, or create roadmaps yourself. Spawn the appropriate agents.
24
+
25
+
26
+ ### Model Resolution
27
+
28
+ Resolve models before spawning agents:
29
+
30
+ ```bash
31
+ MODEL_PROFILE=$(cat .luca/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
32
+ ```
33
+
34
+ | Agent | quality | balanced | budget |
35
+ | -------------------------- | ------- | -------- | ------ |
36
+ | lu-project-researcher | opus | sonnet | haiku |
37
+ | lu-research-synthesizer | opus | sonnet | haiku |
38
+ | lu-roadmapper | opus | opus | sonnet |
39
+
40
+ > **Current Limitation:** Cursor's Task tool only supports `model="fast"` or inheriting from parent. This table is preserved for future compatibility.
41
+
42
+ **Current model variable values:**
43
+
44
+ ```
45
+ # Lightweight summarization → use "fast"
46
+ synthesizer_model = "fast"
47
+
48
+ # Reasoning-intensive agents → omit (inherit from parent)
49
+ researcher_model = (omit)
50
+ roadmapper_model = (omit)
51
+ ```
52
+
53
+ ## Creates
54
+
55
+ - `.luca/state.json` — workflow state machine (created by `luca init`)
56
+ - `.luca/config.json` — workflow preferences
57
+ - `.luca/roadmap.md` — phase structure (created via `luca roadmap create`)
58
+ - `.luca/phases/<NN-slug>/research.md` — domain research (per phase, optional)
59
+ - **MuninnDB** — project identity (`brain:project-identity`), project requirements (`brain:project-requirements`), and long-term learnings (seeded via `/seed-memory`)
60
+ - **GitHub issue** — project tracking (optional)
61
+ - **Feature branch** — linked to issue (optional)
62
+
63
+ **After this command:** Run `/phase-plan 1` to start execution.
64
+
65
+ ## Cognitive Initialization
66
+
67
+ As part of project setup, seed the MuninnDB memory system:
68
+
69
+ ### Seed Project Memory
70
+
71
+ After gathering project context through questioning, run the `/seed-memory` skill to populate MuninnDB with project identity:
72
+
73
+ ```
74
+ Skill(skill: "seed-memory", args: "--from-context")
75
+ ```
76
+
77
+ This seeds MuninnDB with:
78
+
79
+ - **Identity**: Project name, domain, purpose, vision
80
+ - **Stack**: Languages, frameworks, databases, key dependencies
81
+ - **Architecture**: Pattern, structure, key modules
82
+ - **Conventions**: Code style, file naming, commit format, testing approach
83
+ - **Personality**: Communication style, development preferences, verbosity
84
+
85
+ MuninnDB will then accumulate over time:
86
+
87
+ - Patterns discovered during development
88
+ - Decisions made with rationale
89
+ - Pitfalls encountered and how to avoid them
90
+ - Session context for continuity across context resets
91
+
92
+ ## Process
93
+
94
+ ### Phase 1: Setup
95
+
96
+ **MANDATORY FIRST STEP — Execute these checks before ANY user interaction:**
97
+
98
+ 1. **Abort if project exists:**
99
+
100
+ ```bash
101
+ [ -f .luca/state.json ] && echo "ERROR: Project already initialized. Use /progress" && exit 1
102
+ ```
103
+
104
+ 2. **Initialize git repo in THIS directory** (required even if inside a parent repo):
105
+
106
+ ```bash
107
+ if [ -d .git ] || [ -f .git ]; then
108
+ echo "Git repo exists in current directory"
109
+ else
110
+ git init
111
+ echo "Initialized new git repo"
112
+ fi
113
+ ```
114
+
115
+ 3. **Ask about GitHub issue (optional):**
116
+
117
+ Use AskQuestion tool:
118
+
119
+ - question: "Is this project tied to a GitHub issue? If so, enter the issue number (or leave blank to skip):"
120
+
121
+ If issue number provided:
122
+
123
+ - Store as `$ISSUE_NUMBER` for use in commits
124
+ - Create feature branch: `git checkout -b {issue}--{project-slug}`
125
+ - Example: `42--user-dashboard-project`
126
+
127
+ 4. **Detect existing code (brownfield detection):**
128
+
129
+ ```bash
130
+ CODE_FILES=$(find . -name "*.ts" -o -name "*.js" -o -name "*.py" -o -name "*.go" -o -name "*.rs" -o -name "*.swift" -o -name "*.java" 2>/dev/null | grep -v node_modules | grep -v .git | head -20)
131
+ HAS_PACKAGE=$([ -f package.json ] || [ -f requirements.txt ] || [ -f Cargo.toml ] || [ -f go.mod ] || [ -f Package.swift ] && echo "yes")
132
+ HAS_CODEBASE_MAP=$([ -d .luca/codebase ] && echo "yes")
133
+ ```
134
+
135
+ ### Phase 2: Brownfield Offer
136
+
137
+ **If existing code detected and .luca/codebase/ doesn't exist:**
138
+
139
+ Use AskQuestion tool:
140
+
141
+ - header: "Existing Code"
142
+ - question: "I detected existing code in this directory. Would you like to map the codebase first?"
143
+ - options:
144
+ - "Map codebase first" — Run /codebase-map to understand existing architecture (Recommended)
145
+ - "Skip mapping" — Proceed with project initialization
146
+
147
+ **If "Map codebase first":** Run `/codebase-map` first, then return to `/project-new`. Exit command.
148
+
149
+ ### Phase 3: Deep Questioning
150
+
151
+ **Display stage banner:**
152
+
153
+ ```
154
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
155
+ Luca ► QUESTIONING
156
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
157
+ ```
158
+
159
+ **Open the conversation:**
160
+
161
+ Ask inline (freeform, NOT AskQuestion): "What do you want to build?"
162
+
163
+ Wait for their response. This gives you the context needed to ask intelligent follow-up questions.
164
+
165
+ **Follow the thread:**
166
+
167
+ Based on what they said, ask follow-up questions that dig into their response. Use AskQuestion with options that probe what they mentioned — interpretations, clarifications, concrete examples.
168
+
169
+ Keep following threads. Each answer opens new threads to explore. Ask about:
170
+
171
+ - What excited them
172
+ - What problem sparked this
173
+ - What they mean by vague terms
174
+ - What it would actually look like
175
+ - What's already decided
176
+
177
+ Consult `questioning.md` for techniques:
178
+
179
+ - Challenge vagueness
180
+ - Make abstract concrete
181
+ - Surface assumptions
182
+ - Find edges
183
+ - Reveal motivation
184
+
185
+ **Decision gate:**
186
+
187
+ When you have a clear project identity, use AskQuestion:
188
+
189
+ - header: "Ready?"
190
+ - question: "I think I understand what you're after. Ready to capture the project identity?"
191
+ - options:
192
+ - "Capture identity" — Let's move forward
193
+ - "Keep exploring" — I want to share more / ask me more
194
+
195
+ Loop until "Capture identity" selected.
196
+
197
+ ### Phase 4: Capture Project Identity in MuninnDB
198
+
199
+ Synthesize all context into a structured `brain:project-identity` tree in MuninnDB (vault: repo vault):
200
+
201
+ ```
202
+ mcp__muninn__muninn_remember_tree(
203
+ vault: "<repo_vault>",
204
+ root: { concept: "brain:project-identity", content: "<one-line summary>", tags: ["brain","identity"] },
205
+ children: [
206
+ { concept: "brain:project-identity:what-this-is", content: "<what this is>" },
207
+ { concept: "brain:project-identity:core-value", content: "<core value proposition>" },
208
+ { concept: "brain:project-identity:scope", content: "<v1 scope>" },
209
+ { concept: "brain:project-identity:out-of-scope", content: "<v2+ out of scope>" }
210
+ ]
211
+ )
212
+ ```
213
+
214
+ Project identity lives as MuninnDB engrams, not as a hand-authored `PROJECT.md` (the legacy file has no canonical home in LUCA_DIR_CONTRACT). Run `luca init` to write the canonical `.luca/` skeleton.
215
+
216
+ ```bash
217
+ luca init
218
+ git add .luca/
219
+ bun run commit --message="initialize project identity" --type=docs --scope=project --no-push --skip-checks
220
+ ```
221
+
222
+ ### Phase 5: Workflow Preferences
223
+
224
+ Ask about workflow settings using AskQuestion:
225
+
226
+ **Round 1 — Core workflow settings:**
227
+
228
+ - Mode: YOLO (auto-approve) vs Interactive (confirm each step)
229
+ - Depth: Quick (3-5 phases) vs Standard (5-8 phases) vs Comprehensive (8-12 phases)
230
+ - Execution: Parallel vs Sequential
231
+ - Git Tracking: Yes (planning docs in git) vs No (local only)
232
+
233
+ **Round 2 — Workflow agents:**
234
+
235
+ - Research: Research before planning each phase?
236
+ - Plan Check: Verify plans achieve their goals?
237
+ - Verifier: Verify work satisfies requirements?
238
+ - Model Profile: Quality vs Balanced vs Budget
239
+
240
+ Create `.luca/config.json` with all settings.
241
+
242
+ ### Phase 6: Research Decision (Optional)
243
+
244
+ Ask if user wants to research the domain ecosystem before defining requirements.
245
+
246
+ If "Research first":
247
+
248
+ **MANDATORY**: You MUST spawn 4 parallel researcher agents. Do NOT attempt to research yourself.
249
+
250
+ First, recall the project context from MuninnDB:
251
+
252
+ ```
253
+ mcp__muninn__muninn_recall_tree(vault: "<repo_vault>", id: "brain:project-identity")
254
+ ```
255
+
256
+ Per-phase research lives under `.luca/phases/<NN-slug>/research.md` (per LUCA_DIR_CONTRACT). For the project-initialization domain research, persist findings to MuninnDB engrams under `research:project-init-<topic>` (vault: repo vault).
257
+
258
+ Then spawn ALL 4 researchers in PARALLEL (same message, multiple Task calls):
259
+
260
+ ```python
261
+ # Stack Researcher - technologies, frameworks, databases
262
+ Task(
263
+ prompt="""
264
+ <research_context>
265
+
266
+ **Focus Area:** Stack/Technology
267
+ **Project:**
268
+ {project_content}
269
+
270
+ </research_context>
271
+
272
+ <research_questions>
273
+ 1. What technologies are best suited for this project?
274
+ 2. What frameworks are commonly used in this domain?
275
+ 3. What database/storage solutions fit the requirements?
276
+ 4. What are the trade-offs of different tech choices?
277
+ </research_questions>
278
+
279
+ <output_requirements>
280
+ - Create .luca/research/STACK.md
281
+ - Include recommendations with rationale
282
+ - Note any compatibility considerations
283
+ </output_requirements>
284
+
285
+ Research the optimal technology stack for this project.
286
+ """,
287
+ subagent_type="lu-project-researcher",
288
+ model="{researcher_model}",
289
+ description="Research Stack"
290
+ )
291
+
292
+ # Features Researcher - similar products, feature sets
293
+ Task(
294
+ prompt="""
295
+ <research_context>
296
+
297
+ **Focus Area:** Features/Competition
298
+ **Project:**
299
+ {project_content}
300
+
301
+ </research_context>
302
+
303
+ <research_questions>
304
+ 1. What similar products exist in this space?
305
+ 2. What features are considered table-stakes?
306
+ 3. What differentiators could provide competitive advantage?
307
+ 4. What are common user expectations in this domain?
308
+ </research_questions>
309
+
310
+ <output_requirements>
311
+ - Create .luca/research/FEATURES.md
312
+ - Include competitive analysis
313
+ - Identify must-have vs nice-to-have features
314
+ </output_requirements>
315
+
316
+ Research features and competitive landscape for this project.
317
+ """,
318
+ subagent_type="lu-project-researcher",
319
+ model="{researcher_model}",
320
+ description="Research Features"
321
+ )
322
+
323
+ # Architecture Researcher - patterns, structure, scalability
324
+ Task(
325
+ prompt="""
326
+ <research_context>
327
+
328
+ **Focus Area:** Architecture
329
+ **Project:**
330
+ {project_content}
331
+
332
+ </research_context>
333
+
334
+ <research_questions>
335
+ 1. What architectural patterns fit this project?
336
+ 2. How should the system be structured?
337
+ 3. What scalability considerations are important?
338
+ 4. What are best practices for this type of application?
339
+ </research_questions>
340
+
341
+ <output_requirements>
342
+ - Create .luca/research/ARCHITECTURE.md
343
+ - Include recommended patterns with rationale
344
+ - Note scaling considerations
345
+ </output_requirements>
346
+
347
+ Research architectural patterns and best practices for this project.
348
+ """,
349
+ subagent_type="lu-project-researcher",
350
+ model="{researcher_model}",
351
+ description="Research Architecture"
352
+ )
353
+
354
+ # Pitfalls Researcher - common mistakes, risks, gotchas
355
+ Task(
356
+ prompt="""
357
+ <research_context>
358
+
359
+ **Focus Area:** Pitfalls/Risks
360
+ **Project:**
361
+ {project_content}
362
+
363
+ </research_context>
364
+
365
+ <research_questions>
366
+ 1. What are common mistakes in similar projects?
367
+ 2. What technical risks should be anticipated?
368
+ 3. What are known gotchas in this domain?
369
+ 4. What security considerations are critical?
370
+ </research_questions>
371
+
372
+ <output_requirements>
373
+ - Create .luca/research/PITFALLS.md
374
+ - Include specific warnings with mitigation strategies
375
+ - Prioritize by severity
376
+ </output_requirements>
377
+
378
+ Research common pitfalls and risks for this project.
379
+ """,
380
+ subagent_type="lu-project-researcher",
381
+ model="{researcher_model}",
382
+ description="Research Pitfalls"
383
+ )
384
+ ```
385
+
386
+ **Do NOT proceed until ALL 4 Tasks return.**
387
+
388
+ After all researchers complete, spawn synthesizer:
389
+
390
+ ```python
391
+ Task(
392
+ prompt="""
393
+ <synthesis_context>
394
+
395
+ **Stack Research:**
396
+ {stack_content from .luca/research/STACK.md}
397
+
398
+ **Features Research:**
399
+ {features_content from .luca/research/FEATURES.md}
400
+
401
+ **Architecture Research:**
402
+ {architecture_content from .luca/research/ARCHITECTURE.md}
403
+
404
+ **Pitfalls Research:**
405
+ {pitfalls_content from .luca/research/PITFALLS.md}
406
+
407
+ </synthesis_context>
408
+
409
+ <output_requirements>
410
+ - Create .luca/research/SUMMARY.md
411
+ - Combine key insights from all research
412
+ - Prioritize recommendations
413
+ - Highlight decisions that need user input
414
+ </output_requirements>
415
+
416
+ Synthesize all research outputs into a cohesive summary.
417
+ """,
418
+ subagent_type="lu-research-synthesizer",
419
+ model="{synthesizer_model}",
420
+ description="Synthesize Research"
421
+ )
422
+ ```
423
+
424
+ **Do NOT proceed until the Task returns.**
425
+
426
+ ### Phase 7: Define Requirements
427
+
428
+ Present features by category, scope each category for v1/v2/out of scope.
429
+ Store the requirements as a MuninnDB tree under `brain:project-requirements` with REQ-IDs as children. The legacy hand-authored `REQUIREMENTS.md` has no canonical home in LUCA_DIR_CONTRACT.
430
+
431
+ ### Phase 8: Create Roadmap
432
+
433
+ **MANDATORY**: You MUST spawn a lu-roadmapper sub-agent. Do NOT attempt to create the roadmap yourself.
434
+
435
+ First, recall the required context from MuninnDB:
436
+
437
+ ```
438
+ mcp__muninn__muninn_recall_tree(vault: "<repo_vault>", id: "brain:project-identity")
439
+ mcp__muninn__muninn_recall_tree(vault: "<repo_vault>", id: "brain:project-requirements")
440
+ mcp__muninn__muninn_recall(vault: "<repo_vault>", context: "project-init research summary", tags: ["research","project-init"])
441
+ ```
442
+
443
+ ```bash
444
+ CONFIG_CONTENT=$(cat .luca/config.json)
445
+ ```
446
+
447
+ Then spawn the roadmapper:
448
+
449
+ ```python
450
+ Task(
451
+ prompt="""
452
+ <roadmap_context>
453
+
454
+ **Project:**
455
+ {project_content}
456
+
457
+ **Requirements:**
458
+ {requirements_content}
459
+
460
+ **Research Summary:**
461
+ {research_summary}
462
+
463
+ **Config (for depth setting):**
464
+ {config_content}
465
+
466
+ </roadmap_context>
467
+
468
+ <depth_guidance>
469
+ Based on config depth setting:
470
+ - Quick: 3-5 phases
471
+ - Standard: 5-8 phases
472
+ - Comprehensive: 8-12 phases
473
+ </depth_guidance>
474
+
475
+ <output_requirements>
476
+ 1. Create .luca/roadmap.md via `luca roadmap create --file <payload.json>` with:
477
+ - Phase structure with clear goals
478
+ - Requirement mappings (REQ-XXX → Phase X)
479
+ - Success criteria for each phase
480
+ - Dependencies between phases
481
+
482
+ 2. Initialize the workflow state via `luca init` (which creates `.luca/state.json`, `config.json`, and the canonical directory skeleton).
483
+
484
+ 3. The project requirements + traceability are already stored in MuninnDB (`brain:project-requirements` tree, Phase 7); the roadmap-creation step should reference those engrams for requirement → phase mapping. Per-phase requirement traceability surfaces via the per-phase `audits/` artifacts.
485
+ </output_requirements>
486
+
487
+ Create the project roadmap based on requirements and research.
488
+ """,
489
+ subagent_type="lu-roadmapper",
490
+ model="{roadmapper_model}",
491
+ description="Create Roadmap"
492
+ )
493
+ ```
494
+
495
+ **Do NOT proceed until the Task returns.**
496
+
497
+ ### Phase 9: GitHub Issue & Branch
498
+
499
+ **After roadmap is complete, offer to create a GitHub issue:**
500
+
501
+ Use AskQuestion tool:
502
+
503
+ - header: "GitHub Tracking"
504
+ - question: "Create a GitHub issue to track this project?"
505
+ - options:
506
+ - "Create issue" — Create issue with project summary and create feature branch
507
+ - "Skip" — No GitHub issue needed
508
+
509
+ **If "Create issue":**
510
+
511
+ 1. **Create GitHub issue** using `gh issue create`:
512
+
513
+ ```bash
514
+ gh issue create --title "feat([scope]): [project one-liner from brain:project-identity]" --body "[Generated from brain:project-identity + brain:project-requirements MuninnDB engrams + roadmap.md summary]"
515
+ ```
516
+
517
+ Issue body should include:
518
+
519
+ - Summary (from `brain:project-identity:what-this-is` engram)
520
+ - Core Value
521
+ - v1 Scope (requirements grouped by category)
522
+ - Roadmap table (phase | goal)
523
+ - Out of Scope (v2 items)
524
+ - Reference to `.luca/` docs
525
+
526
+ 2. **Create feature branch** linked to issue:
527
+
528
+ ```bash
529
+ git checkout -b {issue_number}--{project-slug}
530
+ ```
531
+
532
+ 3. **Record the issue and branch references in MuninnDB:**
533
+
534
+ ```
535
+ mcp__muninn__muninn_remember(
536
+ vault: "<repo_vault>",
537
+ concept: "session:project-init",
538
+ content: "GitHub issue #{issue_number} / branch {issue_number}--{project-slug} — initial project tracking",
539
+ tags: ["session","project-init","github"]
540
+ )
541
+ ```
542
+
543
+ Branch metadata (`branchName`, `baseBranch`, `prBase`) flows through `luca branch guard` and the architect mode-agent's branch-establishment flow; no separate state-field write is required.
544
+
545
+ 4. **Commit and push:**
546
+
547
+ ```bash
548
+ git add .
549
+ bun run commit --message="link planning docs to GitHub issue" --type=docs --scope=repo --no-push --skip-checks
550
+ git push -u origin {branch_name}
551
+ ```
552
+
553
+ **If "Skip":** Continue to Phase 10.
554
+
555
+ ### Phase 10: Done
556
+
557
+ Present completion with next steps:
558
+
559
+ ```
560
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
561
+ Luca ► PROJECT INITIALIZED ✓
562
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
563
+
564
+ ## ▶ Next Up
565
+
566
+ **Phase 1: [Phase Name]** — [Goal from roadmap.md]
567
+
568
+ /phase-discuss 1 — gather context and clarify approach
569
+
570
+ ---
571
+
572
+ **Also available:**
573
+ - /phase-plan 1 — skip discussion, plan directly
574
+ ```
575
+
576
+ ## Success Criteria
577
+
578
+ - [ ] .luca/ directory created
579
+ - [ ] Git repo initialized
580
+ - [ ] Brownfield detection completed
581
+ - [ ] Deep questioning completed (threads followed, not rushed)
582
+ - [ ] Project identity captured as MuninnDB `brain:project-identity` tree → committed
583
+ - [ ] config.json has workflow mode, depth, parallelization → committed
584
+ - [ ] Research completed (if selected) — 4 parallel agents spawned → MuninnDB research engrams persisted
585
+ - [ ] Requirements gathered (from research or conversation)
586
+ - [ ] User scoped each category (v1/v2/out of scope)
587
+ - [ ] Requirements stored as MuninnDB `brain:project-requirements` tree with REQ-IDs
588
+ - [ ] `.luca/roadmap.md` created via `luca roadmap create` with phases, requirement mappings, success criteria
589
+ - [ ] `.luca/state.json` initialized via `luca init`
590
+ - [ ] GitHub issue created (if selected) with project summary
591
+ - [ ] Feature branch created and pushed (if issue created)
592
+ - [ ] GitHub issue/branch refs stored in MuninnDB `session:project-init` engram (if issue created)
593
+ - [ ] User knows next step is `/phase-discuss 1`
594
+
595
+ ## Next Steps
596
+
597
+ | Condition | Action | Command |
598
+ |-----------|--------|---------|
599
+ | Project initialized | Discuss first phase | `/phase-discuss 1` |
600
+ | Want to skip discussion | Plan directly | `/phase-plan 1` |
601
+ | Need to map existing code | Map codebase | `/codebase-map` |
602
+
603
+ **Primary:** `/phase-discuss 1` — Gather context for first phase
604
+
605
+ **Also available:**
606
+
607
+ - `/phase-plan 1` — Skip discussion, plan directly
608
+ - `/codebase-map` — Map existing codebase first (brownfield)
609
+ </main>