@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.
- package/LICENSE +201 -0
- package/README.md +47 -0
- package/bin/luca.js +3 -0
- package/dist/chunks/branch.mjs +47 -0
- package/dist/chunks/bun-runtime.mjs +46 -0
- package/dist/chunks/checks.mjs +53 -0
- package/dist/chunks/claim-verify.mjs +465 -0
- package/dist/chunks/classify.mjs +105 -0
- package/dist/chunks/confidence.mjs +199 -0
- package/dist/chunks/doctor.mjs +158 -0
- package/dist/chunks/hook.mjs +696 -0
- package/dist/chunks/init.mjs +715 -0
- package/dist/chunks/muninndb-health.mjs +66 -0
- package/dist/chunks/phase.mjs +38 -0
- package/dist/chunks/pr-review.mjs +122 -0
- package/dist/chunks/preferences.mjs +61 -0
- package/dist/chunks/repair.mjs +111 -0
- package/dist/chunks/repo.mjs +58 -0
- package/dist/chunks/retro.mjs +86 -0
- package/dist/chunks/roadmap.mjs +58 -0
- package/dist/chunks/rules.mjs +527 -0
- package/dist/chunks/stale-mcp-server.mjs +90 -0
- package/dist/chunks/state.mjs +57 -0
- package/dist/chunks/stray-local-install.mjs +200 -0
- package/dist/chunks/telemetry.mjs +165 -0
- package/dist/chunks/todo.mjs +151 -0
- package/dist/chunks/vault-init.mjs +300 -0
- package/dist/chunks/verification.mjs +95 -0
- package/dist/chunks/version.mjs +70 -0
- package/dist/chunks/workflow.mjs +47 -0
- package/dist/claude/.claude/agents/architect.md +410 -0
- package/dist/claude/.claude/agents/build.md +111 -0
- package/dist/claude/.claude/agents/discuss.md +93 -0
- package/dist/claude/.claude/agents/discussion.md +149 -0
- package/dist/claude/.claude/agents/execute.md +416 -0
- package/dist/claude/.claude/agents/executor.md +161 -0
- package/dist/claude/.claude/agents/fast.md +84 -0
- package/dist/claude/.claude/agents/finalize.md +484 -0
- package/dist/claude/.claude/agents/learner.md +160 -0
- package/dist/claude/.claude/agents/plan-reviewer.md +129 -0
- package/dist/claude/.claude/agents/plan.md +96 -0
- package/dist/claude/.claude/agents/research.md +327 -0
- package/dist/claude/.claude/agents/researcher.md +78 -0
- package/dist/claude/.claude/agents/review.md +283 -0
- package/dist/claude/.claude/agents/reviewer.md +163 -0
- package/dist/claude/.claude/agents/shadow-scanner.md +257 -0
- package/dist/claude/.claude/agents/triage.md +230 -0
- package/dist/claude/.claude/agents/verifier.md +131 -0
- package/dist/claude/.claude/commands/bug-diagnose.md +12 -0
- package/dist/claude/.claude/commands/gh-issue-triage.md +14 -0
- package/dist/claude/.claude/commands/gh-pr-address.md +235 -0
- package/dist/claude/.claude/commands/gh-prepare.md +12 -0
- package/dist/claude/.claude/commands/grill-me.md +12 -0
- package/dist/claude/.claude/commands/lu-review.md +51 -0
- package/dist/claude/.claude/commands/lu.md +75 -0
- package/dist/claude/.claude/commands/luca-init.md +14 -0
- package/dist/claude/.claude/commands/luca-telemetry-report.md +12 -0
- package/dist/claude/.claude/commands/memory-audit.md +12 -0
- package/dist/claude/.claude/commands/milestone-new.md +122 -0
- package/dist/claude/.claude/commands/phase-discuss.md +45 -0
- package/dist/claude/.claude/commands/phase-execute.md +39 -0
- package/dist/claude/.claude/commands/phase-plan.md +53 -0
- package/dist/claude/.claude/commands/repo-cleanup.md +80 -0
- package/dist/claude/.claude/commands/todo-add.md +28 -0
- package/dist/claude/.claude/commands/todo-check.md +36 -0
- package/dist/claude/.claude/hooks/context-refresher.ts +285 -0
- package/dist/claude/.claude/hooks/continuation-messages.ts +215 -0
- package/dist/claude/.claude/hooks/pipeline-guard.ts +182 -0
- package/dist/claude/.claude/settings.json +41 -0
- package/dist/claude/skills/arch-audit/SKILL.md +161 -0
- package/dist/claude/skills/autopilot/SKILL.md +1299 -0
- package/dist/claude/skills/bug-diagnose/SKILL.md +102 -0
- package/dist/claude/skills/choose/SKILL.md +124 -0
- package/dist/claude/skills/gh-issue-triage/SKILL.md +97 -0
- package/dist/claude/skills/gh-pr-address/SKILL.md +235 -0
- package/dist/claude/skills/gh-prepare/SKILL.md +209 -0
- package/dist/claude/skills/grill-me/SKILL.md +46 -0
- package/dist/claude/skills/lu/SKILL.md +112 -0
- package/dist/claude/skills/lu-review/SKILL.md +51 -0
- package/dist/claude/skills/luca-init/SKILL.md +91 -0
- package/dist/claude/skills/luca-telemetry-report/SKILL.md +145 -0
- package/dist/claude/skills/luca-write-surface/SKILL.md +213 -0
- package/dist/claude/skills/memory-audit/SKILL.md +217 -0
- package/dist/claude/skills/milestone-audit/SKILL.md +545 -0
- package/dist/claude/skills/milestone-complete/SKILL.md +168 -0
- package/dist/claude/skills/milestone-gaps/SKILL.md +60 -0
- package/dist/claude/skills/milestone-new/SKILL.md +125 -0
- package/dist/claude/skills/note/SKILL.md +162 -0
- package/dist/claude/skills/phase-add/SKILL.md +91 -0
- package/dist/claude/skills/phase-assumptions/SKILL.md +92 -0
- package/dist/claude/skills/phase-discuss/SKILL.md +165 -0
- package/dist/claude/skills/phase-execute/SKILL.md +1786 -0
- package/dist/claude/skills/phase-insert/SKILL.md +100 -0
- package/dist/claude/skills/phase-plan/SKILL.md +461 -0
- package/dist/claude/skills/phase-remove/SKILL.md +113 -0
- package/dist/claude/skills/phase-research/SKILL.md +80 -0
- package/dist/claude/skills/post-init-tour/SKILL.md +58 -0
- package/dist/claude/skills/progress/SKILL.md +271 -0
- package/dist/claude/skills/project-new/SKILL.md +609 -0
- package/dist/claude/skills/quick/SKILL.md +256 -0
- package/dist/claude/skills/rename-audit/SKILL.md +52 -0
- package/dist/claude/skills/repo-audit/SKILL.md +88 -0
- package/dist/claude/skills/repo-cleanup/SKILL.md +80 -0
- package/dist/claude/skills/seed-memory/SKILL.md +235 -0
- package/dist/claude/skills/session-pause/SKILL.md +126 -0
- package/dist/claude/skills/session-plan/SKILL.md +112 -0
- package/dist/claude/skills/session-resume/SKILL.md +75 -0
- package/dist/claude/skills/todo-add/SKILL.md +85 -0
- package/dist/claude/skills/todo-check/SKILL.md +77 -0
- package/dist/claude/skills/workflow-save/SKILL.md +277 -0
- package/dist/index.d.mts +33 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.mjs +69 -0
- package/dist/shared/luca.B3Mimc0P.mjs +52 -0
- package/dist/shared/luca.B3saVjJm.mjs +163 -0
- package/dist/shared/luca.BYdjkfnz.mjs +217 -0
- package/dist/shared/luca.BmhNkYe2.mjs +56 -0
- package/dist/shared/luca.C4gMUoBd.mjs +358 -0
- package/dist/shared/luca.CQ3g1xrD.mjs +19 -0
- package/dist/shared/luca.CRmaAfXR.mjs +713 -0
- package/dist/shared/luca.CrXzXueR.mjs +57 -0
- package/dist/shared/luca.DTomPq7I.mjs +91 -0
- package/dist/shared/luca.DjDTeDCi.mjs +1904 -0
- package/dist/shared/luca.HZxBTBgD.mjs +201 -0
- package/dist/shared/luca.TSMg1t7I.mjs +10 -0
- package/dist/shared/luca.dM-MKlNE.mjs +25 -0
- package/dist/shared/luca.naWEcQ4B.mjs +7 -0
- 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>
|