projecta-rrr 1.5.28 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,8 +15,49 @@ Initialize a new project through unified flow: questioning → research (optiona
15
15
 
16
16
  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.
17
17
 
18
+ ## Projecta Preferred Pack
19
+
20
+ **Source of Truth:** `projecta.defaults.json` at repo root.
21
+
22
+ **Core Stack (always assumed):**
23
+ - Framework: Next.js (App Router)
24
+ - Language: TypeScript
25
+ - Package Manager: npm only
26
+ - UI: Tailwind CSS + shadcn/ui
27
+ - Unit Tests: Vitest + Testing Library
28
+ - E2E Tests: Playwright
29
+
30
+ **Preferred Providers (defaults, overrideable with reason):**
31
+ - Database: Neon
32
+ - Auth: Clerk (default), Neon Auth (alternative)
33
+ - Payments: Stripe
34
+ - Object Storage: Cloudflare R2
35
+ - Analytics: PostHog
36
+ - Voice: Deepgram
37
+ - Deploy: Render
38
+
39
+ **Agent Stack (when agents needed):**
40
+ - Orchestration: Mastra
41
+ - Agent Auth: Auth.dev
42
+ - Agent Mail: Agentmail
43
+ - Sandbox: E2B
44
+ - Browser Automation: Browserbase
45
+
46
+ **Discouraged (allowed with explicit reason):**
47
+ - Firebase, Supabase, Auth0, Vercel, PlanetScale
48
+
49
+ **Override Rules:**
50
+ - Defaults are recommended, NOT mandatory.
51
+ - If user wants to override any default, they must explicitly say so and provide a reason.
52
+ - All overrides are recorded in "Deviation Notes" section of PROJECT.md.
53
+
54
+ **Greenfield vs Brownfield:**
55
+ - GREENFIELD (empty folder): Runs `/rrr:bootstrap-nextjs` logic first, then questionnaire.
56
+ - BROWNFIELD (existing code): Skips bootstrap entirely, only creates `.planning/` artifacts. Does NOT run create-next-app, does NOT overwrite files.
57
+
18
58
  **Creates:**
19
- - `.planning/PROJECT.md` — project context
59
+ - `.planning/PROJECT.md` — project context (includes Deviation Notes)
60
+ - `.planning/MVP_FEATURES.yml` — capability selections per project
20
61
  - `.planning/config.json` — workflow preferences
21
62
  - `.planning/research/` — domain research (optional)
22
63
  - `.planning/REQUIREMENTS.md` — scoped requirements
@@ -30,25 +71,222 @@ This is the most leveraged moment in any project. Deep questioning here means be
30
71
 
31
72
  <execution_context>
32
73
 
33
- @~/.claude/rrr/references/questioning.md
34
- @~/.claude/rrr/references/ui-brand.md
35
- @~/.claude/rrr/templates/project.md
36
- @~/.claude/rrr/templates/requirements.md
74
+ @./.claude/rrr/references/questioning.md
75
+ @./.claude/rrr/references/ui-brand.md
76
+ @./.claude/rrr/templates/project.md
77
+ @./.claude/rrr/templates/requirements.md
37
78
 
38
79
  </execution_context>
39
80
 
40
81
  <process>
41
82
 
42
- ## Phase 1: Setup
83
+ ## Preflight: Greenfield vs Brownfield Safety
84
+
85
+ **MANDATORY FIRST STEP — Run these checks before ANY user interaction or modification:**
86
+
87
+ Display initial banner:
88
+ ```
89
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
90
+ RRR ► NEW PROJECT
91
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
92
+ ```
93
+
94
+ ### Step 1: Preflight Shell Checks
95
+
96
+ Run these commands to detect repo state (use Bash tool):
97
+
98
+ ```bash
99
+ # Preflight detection
100
+ echo "=== PREFLIGHT CHECK ==="
101
+
102
+ # Check for existing files/dirs
103
+ ls -la 2>/dev/null | head -20
104
+
105
+ # Check package.json
106
+ test -f package.json && echo "HAS_PACKAGE_JSON=yes" && cat package.json | head -10 || echo "HAS_PACKAGE_JSON=no"
107
+
108
+ # Check app directories
109
+ test -d app && echo "HAS_APP_DIR=yes" && ls app | head -5 || echo "HAS_APP_DIR=no"
110
+ test -d src && echo "HAS_SRC_DIR=yes" && ls src | head -5 || echo "HAS_SRC_DIR=no"
111
+
112
+ # Check next.config
113
+ ls next.config.* 2>/dev/null && echo "HAS_NEXT_CONFIG=yes" || echo "HAS_NEXT_CONFIG=no"
114
+
115
+ # Check git state
116
+ git rev-parse --is-inside-work-tree 2>/dev/null && git log -1 --oneline 2>/dev/null && echo "HAS_GIT_COMMITS=yes" || echo "HAS_GIT_COMMITS=no"
117
+
118
+ # Check RRR state
119
+ test -f .planning/STATE.md && echo "HAS_RRR_STATE=yes" || echo "HAS_RRR_STATE=no"
120
+ test -f .planning/PROJECT.md && echo "HAS_RRR_PROJECT=yes" || echo "HAS_RRR_PROJECT=no"
121
+
122
+ echo "=== END PREFLIGHT ==="
123
+ ```
124
+
125
+ ### Step 2: Classify Repo Mode
126
+
127
+ Based on preflight results, classify as:
128
+
129
+ **BROWNFIELD** if ANY of these are true:
130
+ - `HAS_PACKAGE_JSON=yes`
131
+ - `HAS_APP_DIR=yes`
132
+ - `HAS_SRC_DIR=yes`
133
+ - `HAS_NEXT_CONFIG=yes`
134
+ - `HAS_GIT_COMMITS=yes`
135
+ - `HAS_RRR_STATE=yes`
136
+
137
+ **GREENFIELD** if ALL are false (empty directory).
138
+
139
+ ### Step 3: Handle Based on Mode
140
+
141
+ **If `HAS_RRR_STATE=yes` (RRR already initialized):**
142
+
143
+ Display and EXIT:
144
+ ```
145
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
146
+ RRR project already initialized
147
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
148
+
149
+ This repo has .planning/STATE.md — RRR is already set up.
150
+
151
+ To resume work: /rrr:progress
152
+ To check status: /rrr:resume-work
153
+ ```
154
+
155
+ Stop here. Do NOT proceed.
156
+
157
+ ---
158
+
159
+ **If `HAS_RRR_PROJECT=yes` but `HAS_RRR_STATE=no`:**
160
+
161
+ Project was partially initialized. Continue to Phase 1 to complete setup.
162
+
163
+ ---
164
+
165
+ **If BROWNFIELD (existing code, no RRR):**
166
+
167
+ Display:
168
+ ```
169
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
170
+ BROWNFIELD MODE — Existing repo detected
171
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
172
+
173
+ Detected existing code. RRR will:
174
+ ✓ Add .planning/ directory for project management
175
+ ✓ Keep all existing files untouched
176
+ ✗ Skip bootstrap (no create-next-app, no restructuring)
177
+
178
+ Starting RRR questionnaire...
179
+ ```
180
+
181
+ **BROWNFIELD RULES:**
182
+ - Do NOT run `create-next-app`
183
+ - Do NOT overwrite or restructure existing files
184
+ - Do NOT reinstall Tailwind/shadcn/Vitest/Playwright
185
+ - ONLY create `.planning/` artifacts
186
+ - Proceed directly to Phase 1 (Setup)
187
+
188
+ Continue to Phase 1.
189
+
190
+ ---
191
+
192
+ **If GREENFIELD (empty directory):**
193
+
194
+ Display:
195
+ ```
196
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
197
+ GREENFIELD MODE — Empty directory
198
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
199
+
200
+ Bootstrapping with Projecta defaults...
201
+ (Next.js + TypeScript + Tailwind + shadcn/ui + Vitest + Playwright)
202
+ ```
203
+
204
+ Run `/rrr:bootstrap-nextjs` logic:
205
+
206
+ a. **Initialize git:**
207
+ ```bash
208
+ git init
209
+ ```
210
+
211
+ b. **Create Next.js app:**
212
+ ```bash
213
+ npx create-next-app@latest . --typescript --tailwind --eslint --app --src-dir --import-alias "@/*" --use-npm --no-turbopack
214
+ ```
215
+
216
+ c. **Initialize shadcn/ui and add Button:**
217
+ ```bash
218
+ npx shadcn@latest init -d
219
+ npx shadcn@latest add button -y
220
+ ```
221
+
222
+ d. **Update homepage** — Edit `src/app/page.tsx`:
223
+ ```tsx
224
+ import { Button } from "@/components/ui/button";
225
+
226
+ export default function Home() {
227
+ return (
228
+ <main className="flex min-h-screen flex-col items-center justify-center p-24">
229
+ <div className="text-center space-y-6">
230
+ <h1 className="text-4xl font-bold">Welcome to Your MVP</h1>
231
+ <p className="text-muted-foreground">
232
+ Built with Next.js, TypeScript, Tailwind, and shadcn/ui
233
+ </p>
234
+ <Button size="lg">Get Started</Button>
235
+ </div>
236
+ </main>
237
+ );
238
+ }
239
+ ```
240
+
241
+ e. **Install Vitest + Testing Library:**
242
+ ```bash
243
+ npm install -D vitest @vitejs/plugin-react jsdom @testing-library/react @testing-library/jest-dom @testing-library/user-event
244
+ ```
245
+
246
+ f. **Create vitest.config.ts** and **src/test/setup.ts** and **src/app/page.test.tsx** (see `/rrr:bootstrap-nextjs` for full content)
247
+
248
+ g. **Add test scripts to package.json:** `"test": "vitest run"`, `"test:watch": "vitest"`
249
+
250
+ h. **Install Playwright:**
251
+ ```bash
252
+ npm install -D @playwright/test
253
+ npx playwright install chromium
254
+ ```
255
+
256
+ i. **Create playwright.config.ts** and **e2e/home.spec.ts** (see `/rrr:bootstrap-nextjs` for full content)
257
+
258
+ j. **Add e2e scripts to package.json:** `"e2e": "playwright test"`, `"e2e:ui": "playwright test --ui"`
43
259
 
44
- **MANDATORY FIRST STEP Execute these checks before ANY user interaction:**
260
+ k. **Create .env.example** with MVP placeholders
45
261
 
46
- 1. **Abort if project exists:**
262
+ l. **Run tests:**
47
263
  ```bash
48
- [ -f .planning/PROJECT.md ] && echo "ERROR: Project already initialized. Use /rrr:progress" && exit 1
264
+ npm test
265
+ npm run e2e
49
266
  ```
50
267
 
51
- 2. **Initialize git repo in THIS directory** (required even if inside a parent repo):
268
+ m. **Commit bootstrap:**
269
+ ```bash
270
+ git add -A
271
+ git commit -m "chore: bootstrap nextjs mvp"
272
+ ```
273
+
274
+ Display:
275
+ ```
276
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
277
+ BOOTSTRAP COMPLETE ✓
278
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
279
+
280
+ Starting RRR questionnaire...
281
+ ```
282
+
283
+ Continue to Phase 1.
284
+
285
+ ## Phase 1: Setup
286
+
287
+ **Execute these checks:**
288
+
289
+ 1. **Initialize git repo in THIS directory** (required even if inside a parent repo):
52
290
  ```bash
53
291
  if [ -d .git ] || [ -f .git ]; then
54
292
  echo "Git repo exists in current directory"
@@ -58,7 +296,7 @@ This is the most leveraged moment in any project. Deep questioning here means be
58
296
  fi
59
297
  ```
60
298
 
61
- 3. **Detect existing code (brownfield detection):**
299
+ 2. **Detect existing code (brownfield detection):**
62
300
  ```bash
63
301
  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)
64
302
  HAS_PACKAGE=$([ -f package.json ] || [ -f requirements.txt ] || [ -f Cargo.toml ] || [ -f go.mod ] || [ -f Package.swift ] && echo "yes")
@@ -90,7 +328,177 @@ Exit command.
90
328
 
91
329
  **If "Skip mapping":** Continue to Phase 3.
92
330
 
93
- **If no existing code detected OR codebase already mapped:** Continue to Phase 3.
331
+ **If no existing code detected OR codebase already mapped:** Continue to Phase 2.5.
332
+
333
+ ## Phase 2.5: Capability Selection (MVP_FEATURES.yml)
334
+
335
+ **This phase generates `.planning/MVP_FEATURES.yml` based on capability needs.**
336
+
337
+ Display:
338
+ ```
339
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
340
+ RRR ► CAPABILITY SELECTION
341
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
342
+
343
+ Using Projecta Preferred Pack defaults.
344
+ Overrides allowed with explicit reason.
345
+ ```
346
+
347
+ ### Step 1: Preset Quick-Start (Optional)
348
+
349
+ Use AskUserQuestion:
350
+ - header: "Preset"
351
+ - question: "Start with a use-case preset? This pre-configures capabilities."
352
+ - options:
353
+ - "landing-waitlist" — Landing page + email capture (no auth, no db)
354
+ - "saas-dashboard" — SaaS with Clerk + Neon + optional Stripe
355
+ - "api-admin" — API backend + admin panel (Neon, optional auth)
356
+ - "voice-agent" — Voice AI agent (Deepgram + full agent stack)
357
+ - "None" — Configure capabilities manually (Recommended for custom)
358
+
359
+ **If preset selected:** Load preset defaults, skip to Step 3 (confirm/override).
360
+
361
+ **If "None":** Continue to Step 2.
362
+
363
+ ### Step 2: Capability Questionnaire
364
+
365
+ Ask these questions using AskUserQuestion (can batch into 2-3 calls):
366
+
367
+ **Authentication:**
368
+ - header: "Auth"
369
+ - question: "Is user login needed?"
370
+ - options:
371
+ - "Yes, use Clerk (Recommended)" — Clerk for auth
372
+ - "Yes, use Neon Auth" — Neon's built-in auth
373
+ - "Yes, other" — Specify provider (requires reason)
374
+ - "No auth needed" — Skip authentication
375
+
376
+ **Database:**
377
+ - header: "Database"
378
+ - question: "Is a database needed?"
379
+ - options:
380
+ - "Yes, use Neon (Recommended)" — Neon PostgreSQL
381
+ - "Yes, other" — Specify provider (requires reason)
382
+ - "No database needed" — Skip database
383
+
384
+ **Payments:**
385
+ - header: "Payments"
386
+ - question: "Are payments needed?"
387
+ - options:
388
+ - "Yes, use Stripe (Recommended)" — Stripe for payments
389
+ - "Yes, other" — Specify provider (requires reason)
390
+ - "No payments needed" — Skip payments
391
+
392
+ **Storage & Analytics:**
393
+ - header: "Storage"
394
+ - question: "Are file uploads/media needed?"
395
+ - options:
396
+ - "Yes, use R2 (Recommended)" — Cloudflare R2
397
+ - "Yes, other" — Specify provider (requires reason)
398
+ - "No storage needed" — Skip object storage
399
+
400
+ - header: "Analytics"
401
+ - question: "Is analytics needed?"
402
+ - options:
403
+ - "Yes, use PostHog (Recommended)" — PostHog analytics
404
+ - "Yes, other" — Specify provider (requires reason)
405
+ - "No analytics needed" — Skip analytics
406
+
407
+ **Voice:**
408
+ - header: "Voice"
409
+ - question: "Is voice/speech needed?"
410
+ - options:
411
+ - "Yes, use Deepgram (Recommended)" — Deepgram STT/TTS
412
+ - "Yes, other" — Specify provider (requires reason)
413
+ - "No voice needed" — Skip voice
414
+
415
+ **Agents:**
416
+ - header: "Agents"
417
+ - question: "Are AI agents needed?"
418
+ - options:
419
+ - "Yes, full agent stack (Recommended)" — Mastra + Auth.dev + Agentmail + E2B + Browserbase
420
+ - "Yes, minimal" — Just Mastra orchestration
421
+ - "Yes, custom" — Specify stack (requires reason)
422
+ - "No agents needed" — Skip agent stack
423
+
424
+ **Deployment:**
425
+ - header: "Deploy"
426
+ - question: "Deploy target?"
427
+ - options:
428
+ - "Render (Recommended)" — Deploy to Render
429
+ - "Other" — Specify platform (requires reason)
430
+ - "Not yet" — Skip deployment setup
431
+
432
+ ### Step 3: Collect Override Reasons
433
+
434
+ **If user selected "other" for any capability OR selected a discouraged provider:**
435
+
436
+ Ask inline: "You chose [provider] instead of the default [default]. What's the reason for this choice?"
437
+
438
+ Record each override with:
439
+ - capability: what changed
440
+ - default: Preferred Pack value
441
+ - chosen: user's choice
442
+ - reason: user's explanation
443
+
444
+ ### Step 4: Generate MVP_FEATURES.yml
445
+
446
+ Write `.planning/MVP_FEATURES.yml`:
447
+
448
+ ```yaml
449
+ # Generated by /rrr:new-project
450
+ # Source: Projecta Preferred Pack with user selections
451
+
452
+ features:
453
+ auth: [clerk | neon-auth | none | other]
454
+ db: [neon | none | other]
455
+ deploy: [render | none | other]
456
+ payments: [stripe | none | other]
457
+ object_storage: [r2 | none | other]
458
+ analytics: [posthog | none | other]
459
+ voice: [deepgram | none | other]
460
+
461
+ agent_stack:
462
+ enabled: [true | false]
463
+ orchestration: [mastra | none | other]
464
+ agent_auth: [authdev | none | other]
465
+ agent_mail: [agentmail | none | other]
466
+ sandbox: [e2b | none | other]
467
+ browser_automation: [browserbase | none | other]
468
+
469
+ # Deviation Notes (if any overrides from Preferred Pack)
470
+ deviations:
471
+ # - capability: auth
472
+ # default: clerk
473
+ # chosen: auth0
474
+ # reason: "Client requires Auth0 for SSO compliance"
475
+ ```
476
+
477
+ ### Step 5: Display Summary
478
+
479
+ ```
480
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
481
+ MVP FEATURES CONFIGURED ✓
482
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
483
+
484
+ Features:
485
+ Auth: [value]
486
+ Database: [value]
487
+ Payments: [value]
488
+ Storage: [value]
489
+ Analytics: [value]
490
+ Voice: [value]
491
+
492
+ Agent Stack: [enabled/disabled]
493
+ [if enabled, list components]
494
+
495
+ Deviations: [count or "None"]
496
+
497
+ File: .planning/MVP_FEATURES.yml
498
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
499
+ ```
500
+
501
+ Continue to Phase 3.
94
502
 
95
503
  ## Phase 3: Deep Questioning
96
504
 
@@ -214,6 +622,24 @@ Initialize with any decisions made during questioning:
214
622
  | [Choice from questioning] | [Why] | — Pending |
215
623
  ```
216
624
 
625
+ **Deviation Notes (from Preferred Pack):**
626
+
627
+ Include any overrides from the capability selection phase:
628
+
629
+ ```markdown
630
+ ## Deviation Notes
631
+
632
+ Overrides from Projecta Preferred Pack (`projecta.defaults.json`):
633
+
634
+ | Capability | Default | Chosen | Reason |
635
+ |------------|---------|--------|--------|
636
+ | [capability] | [preferred pack default] | [user's choice] | [user's reason] |
637
+
638
+ _If no deviations: "None — using all Preferred Pack defaults."_
639
+ ```
640
+
641
+ Read deviations from `.planning/MVP_FEATURES.yml` deviations section and format as table.
642
+
217
643
  **Last updated footer:**
218
644
 
219
645
  ```markdown
@@ -367,7 +793,7 @@ Your STACK.md feeds into roadmap creation. Be prescriptive:
367
793
 
368
794
  <output>
369
795
  Write to: .planning/research/STACK.md
370
- Use template: ~/.claude/rrr/templates/research-project/STACK.md
796
+ Use template: ./.claude/rrr/templates/research-project/STACK.md
371
797
  </output>
372
798
  ", subagent_type="rrr-project-researcher", description="Stack research")
373
799
 
@@ -406,7 +832,7 @@ Your FEATURES.md feeds into requirements definition. Categorize clearly:
406
832
 
407
833
  <output>
408
834
  Write to: .planning/research/FEATURES.md
409
- Use template: ~/.claude/rrr/templates/research-project/FEATURES.md
835
+ Use template: ./.claude/rrr/templates/research-project/FEATURES.md
410
836
  </output>
411
837
  ", subagent_type="rrr-project-researcher", description="Features research")
412
838
 
@@ -445,7 +871,7 @@ Your ARCHITECTURE.md informs phase structure in roadmap. Include:
445
871
 
446
872
  <output>
447
873
  Write to: .planning/research/ARCHITECTURE.md
448
- Use template: ~/.claude/rrr/templates/research-project/ARCHITECTURE.md
874
+ Use template: ./.claude/rrr/templates/research-project/ARCHITECTURE.md
449
875
  </output>
450
876
  ", subagent_type="rrr-project-researcher", description="Architecture research")
451
877
 
@@ -484,7 +910,7 @@ Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
484
910
 
485
911
  <output>
486
912
  Write to: .planning/research/PITFALLS.md
487
- Use template: ~/.claude/rrr/templates/research-project/PITFALLS.md
913
+ Use template: ./.claude/rrr/templates/research-project/PITFALLS.md
488
914
  </output>
489
915
  ", subagent_type="rrr-project-researcher", description="Pitfalls research")
490
916
  ```
@@ -507,7 +933,7 @@ Read these files:
507
933
 
508
934
  <output>
509
935
  Write to: .planning/research/SUMMARY.md
510
- Use template: ~/.claude/rrr/templates/research-project/SUMMARY.md
936
+ Use template: ./.claude/rrr/templates/research-project/SUMMARY.md
511
937
  Commit after writing.
512
938
  </output>
513
939
  ", subagent_type="rrr-research-synthesizer", description="Synthesize research")
@@ -853,7 +1279,8 @@ Present completion with next steps:
853
1279
 
854
1280
  <output>
855
1281
 
856
- - `.planning/PROJECT.md`
1282
+ - `.planning/PROJECT.md` (includes Deviation Notes)
1283
+ - `.planning/MVP_FEATURES.yml` (capability selections)
857
1284
  - `.planning/config.json`
858
1285
  - `.planning/research/` (if research selected)
859
1286
  - `STACK.md`
@@ -870,11 +1297,18 @@ Present completion with next steps:
870
1297
 
871
1298
  <success_criteria>
872
1299
 
1300
+ - [ ] Preflight checks completed (greenfield vs brownfield detection)
1301
+ - [ ] If RRR already initialized (.planning/STATE.md): User directed to /rrr:progress and command exits
1302
+ - [ ] If GREENFIELD: Bootstrap completed (Next.js + Tailwind + shadcn/ui + Vitest + Playwright), tests pass, committed
1303
+ - [ ] If BROWNFIELD: Existing files untouched, only .planning/ artifacts created
873
1304
  - [ ] .planning/ directory created
874
1305
  - [ ] Git repo initialized
875
- - [ ] Brownfield detection completed
1306
+ - [ ] Brownfield codebase mapping offered (if existing code detected)
1307
+ - [ ] Capability questionnaire completed (auth, db, payments, storage, analytics, voice, agents, deploy)
1308
+ - [ ] MVP_FEATURES.yml created with capability selections
1309
+ - [ ] Deviation Notes collected for any overrides from Preferred Pack
876
1310
  - [ ] Deep questioning completed (threads followed, not rushed)
877
- - [ ] PROJECT.md captures full context → **committed**
1311
+ - [ ] PROJECT.md captures full context + Deviation Notes → **committed**
878
1312
  - [ ] config.json has workflow mode, depth, parallelization → **committed**
879
1313
  - [ ] Research completed (if selected) — 4 parallel agents spawned → **committed**
880
1314
  - [ ] Requirements gathered (from research or conversation)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "projecta-rrr",
3
- "version": "1.5.28",
3
+ "version": "1.6.0",
4
4
  "description": "A meta-prompting, context engineering and spec-driven development system for Claude Code by Projecta.ai",
5
5
  "bin": {
6
6
  "projecta-rrr": "bin/install.js"
@@ -0,0 +1,73 @@
1
+ # API + Admin Preset
2
+ # Database required, auth optional for admin access
3
+
4
+ name: api-admin
5
+ description: API backend with admin dashboard for data management
6
+
7
+ stack:
8
+ framework: nextjs-app-router
9
+ language: typescript
10
+ package_manager: npm
11
+ ui: tailwind-shadcn
12
+ testing:
13
+ unit: vitest
14
+ e2e: playwright
15
+
16
+ features:
17
+ core:
18
+ - RESTful API routes (/api/*)
19
+ - Admin dashboard for CRUD operations
20
+ - Database schema with migrations
21
+ - Data validation (Zod)
22
+
23
+ optional:
24
+ - Admin authentication
25
+ - API key authentication for external access
26
+ - Rate limiting
27
+ - Audit logging
28
+ - Data export (CSV, JSON)
29
+ - Bulk operations
30
+
31
+ integrations:
32
+ required:
33
+ - neon # PostgreSQL database
34
+ optional:
35
+ - clerk # Admin authentication
36
+
37
+ env_vars:
38
+ required:
39
+ - DATABASE_URL
40
+ optional:
41
+ - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
42
+ - CLERK_SECRET_KEY
43
+ - API_SECRET_KEY
44
+
45
+ pages:
46
+ - path: /admin
47
+ name: Admin Dashboard
48
+ auth: optional
49
+ - path: /admin/[resource]
50
+ name: Resource List
51
+ auth: optional
52
+ - path: /admin/[resource]/[id]
53
+ name: Resource Detail
54
+ auth: optional
55
+
56
+ api_routes:
57
+ - path: /api/[resource]
58
+ methods: [GET, POST]
59
+ - path: /api/[resource]/[id]
60
+ methods: [GET, PUT, DELETE]
61
+
62
+ database:
63
+ orm: drizzle
64
+ tables:
65
+ - Define based on requirements
66
+
67
+ done_criteria:
68
+ - API endpoints return correct responses
69
+ - Admin can list, create, update, delete records
70
+ - Data validates correctly (rejects invalid input)
71
+ - Database migrations run successfully
72
+ - Unit tests pass
73
+ - E2E test confirms CRUD operations
@@ -0,0 +1,55 @@
1
+ # Landing + Waitlist Preset
2
+ # No auth, no database, no payments - just a landing page with email capture
3
+
4
+ name: landing-waitlist
5
+ description: Landing page with email waitlist capture
6
+
7
+ stack:
8
+ framework: nextjs-app-router
9
+ language: typescript
10
+ package_manager: npm
11
+ ui: tailwind-shadcn
12
+ testing:
13
+ unit: vitest
14
+ e2e: playwright
15
+
16
+ features:
17
+ core:
18
+ - Hero section with value proposition
19
+ - Email capture form
20
+ - Thank you / confirmation state
21
+ - Mobile-responsive layout
22
+
23
+ optional:
24
+ - Social proof section (testimonials, logos)
25
+ - Feature highlights section
26
+ - FAQ accordion
27
+ - Footer with links
28
+
29
+ integrations:
30
+ required: []
31
+ optional:
32
+ - resend # For sending confirmation emails
33
+ - google-analytics # For tracking
34
+
35
+ env_vars:
36
+ required: []
37
+ optional:
38
+ - RESEND_API_KEY
39
+ - NEXT_PUBLIC_GA_ID
40
+
41
+ pages:
42
+ - path: /
43
+ name: Landing Page
44
+ components:
45
+ - Hero
46
+ - EmailCapture
47
+ - Features (optional)
48
+ - Footer
49
+
50
+ done_criteria:
51
+ - Landing page renders with hero and email form
52
+ - Email form submits and shows confirmation
53
+ - Page is mobile-responsive
54
+ - Unit tests pass
55
+ - E2E test confirms form submission flow