wogiflow 1.0.21 → 1.0.23

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 (122) hide show
  1. package/.claude/commands/wogi-bug.md +43 -0
  2. package/.claude/commands/wogi-bulk.md +144 -0
  3. package/.claude/commands/wogi-changelog.md +36 -0
  4. package/.claude/commands/wogi-compact.md +99 -0
  5. package/.claude/commands/wogi-config.md +50 -0
  6. package/.claude/commands/wogi-context.md +68 -0
  7. package/.claude/commands/wogi-correction.md +73 -0
  8. package/.claude/commands/wogi-debt.md +128 -0
  9. package/.claude/commands/wogi-deps.md +32 -0
  10. package/.claude/commands/wogi-epics.md +145 -0
  11. package/.claude/commands/wogi-export.md +100 -0
  12. package/.claude/commands/wogi-feature.md +149 -0
  13. package/.claude/commands/wogi-guided-edit.md +83 -0
  14. package/.claude/commands/wogi-health.md +43 -0
  15. package/.claude/commands/wogi-help.md +96 -0
  16. package/.claude/commands/wogi-hybrid-edit.md +36 -0
  17. package/.claude/commands/wogi-hybrid-off.md +24 -0
  18. package/.claude/commands/wogi-hybrid-setup.md +79 -0
  19. package/.claude/commands/wogi-hybrid-status.md +45 -0
  20. package/.claude/commands/wogi-hybrid.md +54 -0
  21. package/.claude/commands/wogi-import.md +44 -0
  22. package/.claude/commands/wogi-init.md +618 -0
  23. package/.claude/commands/wogi-log.md +38 -0
  24. package/.claude/commands/wogi-map-add.md +29 -0
  25. package/.claude/commands/wogi-map-check.md +35 -0
  26. package/.claude/commands/wogi-map-index.md +98 -0
  27. package/.claude/commands/wogi-map-scan.md +38 -0
  28. package/.claude/commands/wogi-map-sync.md +91 -0
  29. package/.claude/commands/wogi-map.md +33 -0
  30. package/.claude/commands/wogi-morning.md +65 -0
  31. package/.claude/commands/wogi-onboard.md +99 -0
  32. package/.claude/commands/wogi-plan.md +173 -0
  33. package/.claude/commands/wogi-ready.md +84 -0
  34. package/.claude/commands/wogi-resume.md +95 -0
  35. package/.claude/commands/wogi-review.md +636 -0
  36. package/.claude/commands/wogi-roadmap.md +241 -0
  37. package/.claude/commands/wogi-rules.md +104 -0
  38. package/.claude/commands/wogi-search.md +33 -0
  39. package/.claude/commands/wogi-session-end.md +49 -0
  40. package/.claude/commands/wogi-setup-stack.md +151 -0
  41. package/.claude/commands/wogi-skill-learn.md +66 -0
  42. package/.claude/commands/wogi-skills.md +87 -0
  43. package/.claude/commands/wogi-standup.md +28 -0
  44. package/.claude/commands/wogi-start.md +465 -0
  45. package/.claude/commands/wogi-status.md +41 -0
  46. package/.claude/commands/wogi-statusline-setup/skill.md +109 -0
  47. package/.claude/commands/wogi-story.md +98 -0
  48. package/.claude/commands/wogi-suspend.md +87 -0
  49. package/.claude/commands/wogi-test-browser.md +43 -0
  50. package/.claude/commands/wogi-trace.md +198 -0
  51. package/.claude/docs/architecture.md +37 -0
  52. package/.claude/docs/commands.md +343 -0
  53. package/.claude/docs/knowledge-base/01-setup-onboarding/README.md +177 -0
  54. package/.claude/docs/knowledge-base/01-setup-onboarding/component-indexing.md +341 -0
  55. package/.claude/docs/knowledge-base/01-setup-onboarding/framework-detection.md +269 -0
  56. package/.claude/docs/knowledge-base/01-setup-onboarding/installation.md +146 -0
  57. package/.claude/docs/knowledge-base/01-setup-onboarding/onboarding-existing.md +317 -0
  58. package/.claude/docs/knowledge-base/01-setup-onboarding/team-setup.md +346 -0
  59. package/.claude/docs/knowledge-base/02-task-execution/01-task-planning.md +259 -0
  60. package/.claude/docs/knowledge-base/02-task-execution/02-execution-loop.md +443 -0
  61. package/.claude/docs/knowledge-base/02-task-execution/03-verification.md +417 -0
  62. package/.claude/docs/knowledge-base/02-task-execution/04-completion.md +374 -0
  63. package/.claude/docs/knowledge-base/02-task-execution/05-session-review.md +170 -0
  64. package/.claude/docs/knowledge-base/02-task-execution/README.md +173 -0
  65. package/.claude/docs/knowledge-base/02-task-execution/external-integrations.md +133 -0
  66. package/.claude/docs/knowledge-base/02-task-execution/model-management.md +202 -0
  67. package/.claude/docs/knowledge-base/02-task-execution/specification-mode.md +292 -0
  68. package/.claude/docs/knowledge-base/02-task-execution/sync-daemon.md +96 -0
  69. package/.claude/docs/knowledge-base/02-task-execution/trade-offs.md +345 -0
  70. package/.claude/docs/knowledge-base/02-task-execution/workflow-steps.md +357 -0
  71. package/.claude/docs/knowledge-base/03-self-improvement/README.md +199 -0
  72. package/.claude/docs/knowledge-base/03-self-improvement/long-input-processing.md +160 -0
  73. package/.claude/docs/knowledge-base/03-self-improvement/model-learning.md +334 -0
  74. package/.claude/docs/knowledge-base/03-self-improvement/project-learning.md +301 -0
  75. package/.claude/docs/knowledge-base/03-self-improvement/skill-learning.md +372 -0
  76. package/.claude/docs/knowledge-base/03-self-improvement/skill-matching.md +304 -0
  77. package/.claude/docs/knowledge-base/03-self-improvement/team-learning.md +342 -0
  78. package/.claude/docs/knowledge-base/04-memory-context/README.md +189 -0
  79. package/.claude/docs/knowledge-base/04-memory-context/context-management.md +308 -0
  80. package/.claude/docs/knowledge-base/04-memory-context/memory-commands.md +176 -0
  81. package/.claude/docs/knowledge-base/04-memory-context/memory-systems.md +359 -0
  82. package/.claude/docs/knowledge-base/04-memory-context/prd-management.md +115 -0
  83. package/.claude/docs/knowledge-base/04-memory-context/session-persistence.md +359 -0
  84. package/.claude/docs/knowledge-base/04-memory-context/team-history.md +317 -0
  85. package/.claude/docs/knowledge-base/05-development-tools/README.md +84 -0
  86. package/.claude/docs/knowledge-base/05-development-tools/code-traces.md +278 -0
  87. package/.claude/docs/knowledge-base/05-development-tools/figma-analyzer.md +253 -0
  88. package/.claude/docs/knowledge-base/05-development-tools/guided-edit.md +173 -0
  89. package/.claude/docs/knowledge-base/05-development-tools/mcp-integrations.md +286 -0
  90. package/.claude/docs/knowledge-base/06-safety-guardrails/README.md +153 -0
  91. package/.claude/docs/knowledge-base/06-safety-guardrails/checkpoint-rollback.md +302 -0
  92. package/.claude/docs/knowledge-base/06-safety-guardrails/commit-gates.md +309 -0
  93. package/.claude/docs/knowledge-base/06-safety-guardrails/damage-control.md +292 -0
  94. package/.claude/docs/knowledge-base/06-safety-guardrails/security-scanning.md +291 -0
  95. package/.claude/docs/knowledge-base/README.md +92 -0
  96. package/.claude/docs/knowledge-base/configuration/README.md +228 -0
  97. package/.claude/docs/knowledge-base/configuration/all-options.md +1632 -0
  98. package/.claude/docs/knowledge-base/future-features.md +277 -0
  99. package/.claude/docs/stack.md +25 -0
  100. package/.claude/docs/testing.md +71 -0
  101. package/.claude/rules/README.md +60 -0
  102. package/.claude/rules/architecture/component-reuse.md +38 -0
  103. package/.claude/rules/architecture/document-structure.md +76 -0
  104. package/.claude/rules/architecture/feature-refactoring-cleanup.md +87 -0
  105. package/.claude/rules/architecture/model-management.md +35 -0
  106. package/.claude/rules/code-style/naming-conventions.md +55 -0
  107. package/.claude/rules/security/security-patterns.md +116 -0
  108. package/.claude/skills/.gitkeep +0 -0
  109. package/.claude/skills/README.md +131 -0
  110. package/.claude/skills/_template/commands/.gitkeep +0 -0
  111. package/.claude/skills/_template/knowledge/anti-patterns.md +49 -0
  112. package/.claude/skills/_template/knowledge/learnings.md +60 -0
  113. package/.claude/skills/_template/knowledge/patterns.md +45 -0
  114. package/.claude/skills/_template/rules/.gitkeep +0 -0
  115. package/.claude/skills/_template/skill.md +99 -0
  116. package/.claude/skills/_template/templates/.gitkeep +0 -0
  117. package/.claude/skills/figma-analyzer/knowledge/anti-patterns.md +216 -0
  118. package/.claude/skills/figma-analyzer/knowledge/patterns.md +144 -0
  119. package/.claude/skills/figma-analyzer/skill.md +236 -0
  120. package/lib/installer.js +59 -19
  121. package/package.json +5 -1
  122. package/scripts/postinstall.js +65 -3
@@ -0,0 +1,618 @@
1
+ # /wogi-init - AI-Driven Project Setup
2
+
3
+ Initialize WogiFlow for a new project through conversational setup.
4
+
5
+ ## When This Runs
6
+
7
+ This command activates when:
8
+ 1. User runs `/wogi-init` explicitly
9
+ 2. User says "setup wogiflow" or similar
10
+ 3. AI detects `.workflow/state/pending-setup.json` exists (fresh install)
11
+ 4. AI detects `.workflow/config.json` is missing
12
+
13
+ ## Pre-Flight Check
14
+
15
+ Before starting, verify setup is needed:
16
+
17
+ ```javascript
18
+ // Check if already configured
19
+ const configPath = '.workflow/config.json';
20
+ const pendingPath = '.workflow/state/pending-setup.json';
21
+
22
+ if (fs.existsSync(configPath)) {
23
+ // Already configured - offer to reconfigure
24
+ return "WogiFlow is already configured. Would you like to reconfigure? (This will overwrite existing settings)";
25
+ }
26
+ ```
27
+
28
+ ---
29
+
30
+ ## Setup Flow
31
+
32
+ ### Step 1: Project Name Confirmation
33
+
34
+ 1. Read `package.json` to detect project name
35
+ 2. Ask for confirmation using AskUserQuestion:
36
+
37
+ ```javascript
38
+ AskUserQuestion({
39
+ questions: [{
40
+ question: `I detected your project name as "${detectedName}". Is this correct?`,
41
+ header: "Project",
42
+ options: [
43
+ { label: "Yes, that's correct", description: `Use "${detectedName}" as the project name` },
44
+ { label: "No, let me specify", description: "Enter a different project name" }
45
+ ],
46
+ multiSelect: false
47
+ }]
48
+ });
49
+ ```
50
+
51
+ If user selects "No", ask them to provide the name in their next message.
52
+
53
+ ### Step 2: Import Sources
54
+
55
+ Ask about existing resources that can help configure the project:
56
+
57
+ ```javascript
58
+ AskUserQuestion({
59
+ questions: [{
60
+ question: "Do you have any of these to help me understand your project?",
61
+ header: "Import",
62
+ options: [
63
+ { label: "Other project folder", description: "A folder with patterns to learn from (I'll scan package.json, configs, and code)" },
64
+ { label: "Exported WogiFlow profile", description: "A .zip file exported from another WogiFlow project" },
65
+ { label: "PRD or project description", description: "Paste text or provide a file path to a project description" },
66
+ { label: "None - start fresh", description: "Set up from scratch with tech stack selection" }
67
+ ],
68
+ multiSelect: true
69
+ }]
70
+ });
71
+ ```
72
+
73
+ #### If "Other project folder" selected:
74
+ 1. Ask user to provide the folder path
75
+ 2. Scan the folder:
76
+ - Read `package.json` for dependencies
77
+ - Read `.workflow/` if exists for patterns
78
+ - Read `.eslintrc`, `tsconfig.json`, `.prettierrc` for conventions
79
+ - Read `src/` structure for file organization patterns
80
+ 3. Use `scripts/flow-pattern-extractor.js` to extract and analyze patterns
81
+ 4. Detect conflicts (different approaches in same codebase)
82
+ 5. Present findings with conflict resolution:
83
+
84
+ ```
85
+ I found the following patterns in [project-name]:
86
+
87
+ ## Tech Stack (Detected)
88
+ - Framework: Next.js 14
89
+ - Styling: Tailwind CSS
90
+ - State: Zustand
91
+ - Testing: Vitest
92
+
93
+ ## Coding Patterns (5 found)
94
+ 1. Use functional components with hooks
95
+ 2. API routes follow /api/[resource]/[action] pattern
96
+ 3. Use zod for validation
97
+ 4. Components in src/components/[feature]/
98
+ 5. Server actions for mutations
99
+
100
+ ## Conflicts Detected (2)
101
+ These need your decision:
102
+
103
+ ### 1. Error Handling
104
+ - Pattern A (8 files): try/catch with console.error
105
+ - Pattern B (12 files): try/catch with error boundary (Recommended)
106
+
107
+ ### 2. API Response Format
108
+ - Pattern A (3 files): { data, error, status }
109
+ - Pattern B (5 files): { success, data, message } (Recommended)
110
+ ```
111
+
112
+ Then ask:
113
+ ```javascript
114
+ AskUserQuestion({
115
+ questions: [{
116
+ question: "How would you like to handle the detected patterns?",
117
+ header: "Patterns",
118
+ options: [
119
+ { label: "Accept All with Recommended (Recommended)", description: "Use the recommended resolution for conflicts" },
120
+ { label: "Manual Review 1-by-1", description: "Review each conflict and pattern individually" }
121
+ ],
122
+ multiSelect: false
123
+ }]
124
+ });
125
+ ```
126
+
127
+ #### If "Exported WogiFlow profile" selected:
128
+ 1. Ask for the .zip file path
129
+ 2. Extract to temp folder
130
+ 3. Read `profile.json` for metadata
131
+ 4. Display contents: rules, skills, decisions, tech stack
132
+ 5. Same conflict detection as above
133
+
134
+ #### If "PRD or project description" selected:
135
+ 1. Ask user to paste or provide file path
136
+ 2. Analyze content for:
137
+ - Technology mentions
138
+ - Architecture requirements
139
+ - Feature requirements
140
+ 3. Use detected info to pre-select tech stack options
141
+ 4. Also use this to populate `product.md` (see Step 2.5)
142
+
143
+ ### Step 2.5: Product Description (NEW)
144
+
145
+ After import sources, ask about product documentation:
146
+
147
+ ```javascript
148
+ AskUserQuestion({
149
+ questions: [{
150
+ question: "Would you like to describe your product? This helps me generate better stories and features.",
151
+ header: "Product",
152
+ options: [
153
+ { label: "Describe my product", description: "Paste a PRD or describe what you're building" },
154
+ { label: "Scan and infer", description: "I'll analyze your project and show you what I found" },
155
+ { label: "Skip for now", description: "Create a placeholder - you can fill it in later" }
156
+ ],
157
+ multiSelect: false
158
+ }]
159
+ });
160
+ ```
161
+
162
+ #### If "Describe my product" selected:
163
+ 1. Ask user to paste PRD or description in their next message
164
+ 2. Parse the content and extract:
165
+ - Product name and tagline
166
+ - Target users
167
+ - Key features
168
+ - Non-goals
169
+ 3. Show a summary:
170
+ ```
171
+ I understood your product as:
172
+
173
+ **Name**: [extracted name]
174
+ **Tagline**: [one-liner]
175
+ **Target Users**: [list]
176
+ **Key Features**: [list 3-5]
177
+
178
+ Is this correct? [Yes / Let me correct]
179
+ ```
180
+ 4. Generate `product.md` with PIN markers to `.workflow/specs/product.md`
181
+
182
+ #### If "Scan and infer" selected:
183
+ 1. Run `scripts/flow-product-scanner.js` to analyze:
184
+ - `package.json` (name, description, keywords)
185
+ - `README.md` (description, features)
186
+ - Project structure (routes, screens, API)
187
+ 2. Show brief summary:
188
+ ```
189
+ Based on scanning your project:
190
+
191
+ **Name**: [from package.json]
192
+ **Type**: [web-app | api | cli] (detected [framework])
193
+ **Features**: [top 3 detected]
194
+
195
+ Is this correct? [Yes / Let me correct]
196
+ ```
197
+ 3. If user says "Let me correct", ask what to change
198
+ 4. Generate `product.md` with PIN markers
199
+
200
+ #### If "Skip for now" selected:
201
+ 1. Copy `templates/context/product-placeholder.md` to `.workflow/specs/product.md`
202
+ 2. Show reminder:
203
+ ```
204
+ Created a placeholder product.md. You can fill it in later by:
205
+ - Running `/wogi-init` again and selecting "Describe my product"
206
+ - Editing `.workflow/specs/product.md` directly
207
+ ```
208
+
209
+ ### Step 3: Tech Stack Selection (if no import or new project)
210
+
211
+ If user selected "None - start fresh" or to supplement imported patterns, run the step-by-step tech stack wizard.
212
+
213
+ **IMPORTANT**: Ask ONE question at a time. Wait for response before proceeding.
214
+
215
+ #### Step 3a: Project Type
216
+
217
+ ```javascript
218
+ AskUserQuestion({
219
+ questions: [{
220
+ question: "What type of project is this?",
221
+ header: "Type",
222
+ options: [
223
+ { label: "Web Application", description: "Website or web app running in a browser" },
224
+ { label: "Mobile App", description: "React Native, Flutter, or native iOS/Android" },
225
+ { label: "Desktop App", description: "Electron, Tauri, or native desktop application" },
226
+ { label: "Backend/API Only", description: "REST API, GraphQL, or microservice" }
227
+ ],
228
+ multiSelect: false
229
+ }]
230
+ });
231
+ ```
232
+
233
+ If user needs more options, offer:
234
+ - Full-Stack (Web + API)
235
+ - CLI Tool
236
+ - Library/Package
237
+
238
+ #### Step 3b: Focus Area (if applicable)
239
+
240
+ Skip if Backend/API Only or CLI Tool.
241
+
242
+ ```javascript
243
+ AskUserQuestion({
244
+ questions: [{
245
+ question: "What's your focus area?",
246
+ header: "Focus",
247
+ options: [
248
+ { label: "Frontend only", description: "UI and client-side code" },
249
+ { label: "Backend only", description: "Server-side and API code" },
250
+ { label: "Full-stack (Recommended)", description: "Both frontend and backend" }
251
+ ],
252
+ multiSelect: false
253
+ }]
254
+ });
255
+ ```
256
+
257
+ #### Step 3c: Frontend Framework (if frontend)
258
+
259
+ ```javascript
260
+ AskUserQuestion({
261
+ questions: [{
262
+ question: "Which frontend framework would you like to use?",
263
+ header: "Frontend",
264
+ options: [
265
+ { label: "Next.js (Recommended)", description: "React framework with SSR, routing, and API routes built-in" },
266
+ { label: "React", description: "UI library - you'll configure routing and bundling separately" },
267
+ { label: "Vue 3", description: "Progressive framework with gentle learning curve" },
268
+ { label: "Svelte / SvelteKit", description: "Compiler-based framework with minimal runtime" }
269
+ ],
270
+ multiSelect: false
271
+ }]
272
+ });
273
+ ```
274
+
275
+ Other options if requested: Nuxt, Angular, Astro, Solid.js, Qwik
276
+
277
+ #### Step 3d: Backend Framework (if backend)
278
+
279
+ ```javascript
280
+ AskUserQuestion({
281
+ questions: [{
282
+ question: "Which backend framework would you like to use?",
283
+ header: "Backend",
284
+ options: [
285
+ { label: "NestJS (Recommended)", description: "TypeScript framework with dependency injection and decorators" },
286
+ { label: "Express", description: "Minimal, flexible Node.js web framework" },
287
+ { label: "FastAPI (Python)", description: "Modern Python framework with automatic OpenAPI docs" },
288
+ { label: "Hono", description: "Lightweight, fast edge-ready framework" }
289
+ ],
290
+ multiSelect: false
291
+ }]
292
+ });
293
+ ```
294
+
295
+ Other options: Fastify, tRPC, Django, Flask, Go (Gin), Rails, Phoenix
296
+
297
+ #### Step 3e: Database & ORM
298
+
299
+ ```javascript
300
+ AskUserQuestion({
301
+ questions: [{
302
+ question: "Which database and ORM combination?",
303
+ header: "Database",
304
+ options: [
305
+ { label: "PostgreSQL + Prisma (Recommended)", description: "Type-safe ORM with great DX and migrations" },
306
+ { label: "PostgreSQL + TypeORM", description: "Decorator-based ORM, popular with NestJS" },
307
+ { label: "MongoDB + Mongoose", description: "Document database with schema validation" },
308
+ { label: "SQLite + Drizzle", description: "Lightweight DB with type-safe SQL-like queries" }
309
+ ],
310
+ multiSelect: false
311
+ }]
312
+ });
313
+ ```
314
+
315
+ Other options: MySQL, Redis, DynamoDB, raw SQL
316
+
317
+ #### Step 3f: State Management (if frontend)
318
+
319
+ Skip for Vue (default to Pinia) or if no frontend.
320
+
321
+ ```javascript
322
+ AskUserQuestion({
323
+ questions: [{
324
+ question: "Which state management solution?",
325
+ header: "State",
326
+ options: [
327
+ { label: "Zustand (Recommended)", description: "Simple, minimal boilerplate, works great with React" },
328
+ { label: "Redux Toolkit", description: "Predictable state container with dev tools" },
329
+ { label: "TanStack Query", description: "Server state management with caching" },
330
+ { label: "React Context only", description: "Built-in React state, no extra library" }
331
+ ],
332
+ multiSelect: false
333
+ }]
334
+ });
335
+ ```
336
+
337
+ For Vue: Pinia (default), Vuex
338
+
339
+ #### Step 3g: Form Handling (if frontend)
340
+
341
+ ```javascript
342
+ AskUserQuestion({
343
+ questions: [{
344
+ question: "Which form handling library?",
345
+ header: "Forms",
346
+ options: [
347
+ { label: "React Hook Form (Recommended)", description: "Performant, flexible, easy validation" },
348
+ { label: "Formik", description: "Popular form library with comprehensive features" },
349
+ { label: "Native controlled", description: "No library, just useState for forms" }
350
+ ],
351
+ multiSelect: false
352
+ }]
353
+ });
354
+ ```
355
+
356
+ For Vue: VeeValidate, FormKit
357
+
358
+ #### Step 3h: Styling
359
+
360
+ ```javascript
361
+ AskUserQuestion({
362
+ questions: [{
363
+ question: "Which styling approach?",
364
+ header: "Styling",
365
+ options: [
366
+ { label: "Tailwind CSS (Recommended)", description: "Utility-first CSS framework" },
367
+ { label: "shadcn/ui + Tailwind", description: "Copy-paste components with Tailwind" },
368
+ { label: "CSS Modules", description: "Scoped CSS with component co-location" },
369
+ { label: "Styled Components", description: "CSS-in-JS with tagged template literals" }
370
+ ],
371
+ multiSelect: false
372
+ }]
373
+ });
374
+ ```
375
+
376
+ Other options: Emotion, Vanilla Extract, Sass/SCSS, plain CSS
377
+
378
+ #### Step 3i: Testing
379
+
380
+ ```javascript
381
+ AskUserQuestion({
382
+ questions: [{
383
+ question: "Which testing setup?",
384
+ header: "Testing",
385
+ options: [
386
+ { label: "Vitest (Recommended)", description: "Fast unit testing, Vite-native, Jest compatible" },
387
+ { label: "Jest", description: "Popular testing framework with snapshots" },
388
+ { label: "Playwright", description: "E2E testing with browser automation" },
389
+ { label: "Skip for now", description: "Set up testing later" }
390
+ ],
391
+ multiSelect: true
392
+ }]
393
+ });
394
+ ```
395
+
396
+ ### Step 4: Generate Files
397
+
398
+ After collecting all selections, generate the project files:
399
+
400
+ #### 4.1 Create config.json
401
+
402
+ ```javascript
403
+ const config = {
404
+ projectName: selectedName,
405
+ version: "1.0",
406
+ stack: {
407
+ platform: selectedPlatform,
408
+ focus: selectedFocus,
409
+ frontend: selectedFrontend,
410
+ backend: selectedBackend,
411
+ database: selectedDatabase,
412
+ orm: selectedOrm,
413
+ stateManagement: selectedState,
414
+ forms: selectedForms,
415
+ styling: selectedStyling,
416
+ testing: selectedTesting
417
+ },
418
+ createdAt: new Date().toISOString()
419
+ };
420
+ ```
421
+
422
+ Save to `.workflow/config.json`.
423
+
424
+ #### 4.2 Generate Skills Using Context7
425
+
426
+ For each selected technology that has a Context7 ID:
427
+
428
+ 1. Call `mcp__MCP_DOCKER__resolve-library-id` to verify the library
429
+ 2. Call `mcp__MCP_DOCKER__get-library-docs` with topic "patterns" to fetch best practices
430
+ 3. Use `scripts/flow-skill-generator.js` to create skill files
431
+
432
+ ```javascript
433
+ // For each technology in stack
434
+ const techOptions = require('./scripts/flow-tech-options.js');
435
+ const technologies = techOptions.collectTechnologiesFromSelections(config.stack);
436
+
437
+ for (const tech of technologies) {
438
+ if (tech.context7) {
439
+ // Fetch docs from Context7
440
+ const docs = await getLibraryDocs(tech.context7, { topic: 'patterns', tokens: 8000 });
441
+
442
+ // Generate skill
443
+ await generateSkill({
444
+ name: tech.value,
445
+ label: tech.label,
446
+ context7Id: tech.context7,
447
+ content: docs,
448
+ isFramework: techOptions.getSkillType(tech.value) === 'framework'
449
+ });
450
+ }
451
+ }
452
+ ```
453
+
454
+ #### 4.3 Create State Files
455
+
456
+ Create the following files in `.workflow/state/`:
457
+
458
+ **ready.json** (task queue):
459
+ ```json
460
+ {
461
+ "ready": [],
462
+ "inProgress": [],
463
+ "recentlyCompleted": [],
464
+ "lastUpdated": "2026-01-13T..."
465
+ }
466
+ ```
467
+
468
+ **decisions.md** (coding patterns):
469
+ ```markdown
470
+ # Project Decisions & Patterns
471
+
472
+ ## Component Architecture
473
+ <!-- Patterns will be added as we work -->
474
+
475
+ ## Coding Standards
476
+ <!-- Standards will be added as we work -->
477
+
478
+ ## Architecture Decisions
479
+ <!-- Decisions will be added as we work -->
480
+ ```
481
+
482
+ **app-map.md** (component registry):
483
+ ```markdown
484
+ # Application Component Map
485
+
486
+ ## Overview
487
+ This file tracks all components in the application.
488
+
489
+ ## Components
490
+ <!-- Components will be registered as they're created -->
491
+
492
+ ## Screens
493
+ <!-- Screens will be registered as they're created -->
494
+ ```
495
+
496
+ **request-log.md** (change history):
497
+ ```markdown
498
+ # Request Log
499
+
500
+ This file tracks all changes made to the project.
501
+
502
+ ---
503
+
504
+ ### R-001 | [DATE]
505
+ **Type**: setup
506
+ **Tags**: #system
507
+ **Request**: "Initialize WogiFlow"
508
+ **Result**: Project configured with [stack summary]
509
+ **Files**: .workflow/*, .claude/*
510
+ ```
511
+
512
+ **roadmap.md** (future work):
513
+ Copy from `templates/roadmap.md` to `.workflow/roadmap.md`
514
+
515
+ #### 4.4 Create Spec Files
516
+
517
+ **stack.md** in `.workflow/specs/`:
518
+ ```markdown
519
+ # Tech Stack
520
+
521
+ ## Frontend
522
+ - Framework: [selected]
523
+ - State Management: [selected]
524
+ - Forms: [selected]
525
+ - Styling: [selected]
526
+
527
+ ## Backend
528
+ - Framework: [selected]
529
+ - Database: [selected]
530
+ - ORM: [selected]
531
+
532
+ ## Testing
533
+ - Unit: [selected]
534
+ - E2E: [selected]
535
+
536
+ ## Context7 Documentation
537
+ Skills with documentation have been generated in `.claude/skills/`.
538
+ ```
539
+
540
+ #### 4.5 Delete Pending Setup Marker
541
+
542
+ ```javascript
543
+ const pendingPath = '.workflow/state/pending-setup.json';
544
+ if (fs.existsSync(pendingPath)) {
545
+ fs.unlinkSync(pendingPath);
546
+ }
547
+ ```
548
+
549
+ ### Step 5: Summary & Learning Explanation
550
+
551
+ Display the completion summary:
552
+
553
+ ```
554
+ Setup Complete!
555
+
556
+ ## Generated Files
557
+
558
+ .workflow/
559
+ config.json # Project configuration
560
+ specs/
561
+ stack.md # Your tech stack details
562
+ state/
563
+ ready.json # Task queue
564
+ request-log.md # Change history
565
+ app-map.md # Component registry (grows as you work)
566
+ decisions.md # Coding patterns (grows as you work)
567
+
568
+ .claude/
569
+ skills/
570
+ [framework]/ # Framework patterns from Context7
571
+ [library]/ # Library patterns from Context7
572
+
573
+ ## Your Stack
574
+ - Frontend: [selection]
575
+ - Backend: [selection]
576
+ - Database: [selection]
577
+ - Styling: [selection]
578
+ - Testing: [selection]
579
+
580
+ ## How to Customize
581
+
582
+ - **Edit directly**: Open any .md or .json file and modify it
583
+ - **Ask me**: Say "update the rules to prefer X" and I'll update the files
584
+
585
+ ## WogiFlow Learns With You
586
+
587
+ As we work together, WogiFlow automatically:
588
+ - Records patterns you prefer in decisions.md
589
+ - Learns from corrections you make
590
+ - Updates skills when you change approaches
591
+ - Tracks components in app-map.md
592
+
593
+ Say "show me the rules" or "what patterns are we using?" anytime.
594
+
595
+ ## Next Steps
596
+
597
+ 1. Run `/wogi-health` to verify everything is set up correctly
598
+ 2. Create your first task with `/wogi-story "Your first feature"`
599
+ 3. Or just tell me what you'd like to build!
600
+ ```
601
+
602
+ ---
603
+
604
+ ## Error Handling
605
+
606
+ ### If Context7 fetch fails
607
+ - Log the error but continue
608
+ - Create a minimal skill file noting that docs couldn't be fetched
609
+ - Inform user they can run `/wogi-skills refresh` later to retry
610
+
611
+ ### If file creation fails
612
+ - Report which file failed
613
+ - Attempt to clean up partial state
614
+ - Suggest manual intervention if needed
615
+
616
+ ### If user cancels mid-wizard
617
+ - Save progress to `.workflow/state/setup-progress.json`
618
+ - Next run can offer to resume
@@ -0,0 +1,38 @@
1
+ Add an entry to the request log.
2
+
3
+ Usage: `/wogi-log` (interactive) or with parameters
4
+
5
+ Steps:
6
+ 1. Get next entry number from request-log.md
7
+ 2. Ask for or parse:
8
+ - Type (new/change/fix/refactor/remove)
9
+ - Request description
10
+ - Result summary
11
+ - Files changed
12
+ - Tags (#screen:X, #component:Y, etc.)
13
+ 3. Append to `.workflow/state/request-log.md`
14
+
15
+ Interactive:
16
+ ```
17
+ 📝 New Request Log Entry
18
+
19
+ Type? (new/change/fix/refactor/remove): change
20
+ Request: Added forgot password link to login
21
+ Result: Link added, routes to /forgot-password
22
+ Files changed: LoginScreen.tsx, routes.ts
23
+ Tags: #screen:login #feature:auth
24
+
25
+ ✓ Added R-046 to request-log
26
+ ```
27
+
28
+ Entry format:
29
+ ```markdown
30
+ ### R-046 | 2024-01-15 14:32
31
+ **Type**: change
32
+ **Tags**: #screen:login #feature:auth
33
+ **Request**: Added forgot password link to login
34
+ **Result**: Link added, routes to /forgot-password
35
+ **Files**: `LoginScreen.tsx`, `routes.ts`
36
+
37
+ ---
38
+ ```
@@ -0,0 +1,29 @@
1
+ Add a component to the app-map.
2
+
3
+ Usage: `/wogi-map-add [name] [path] [variants]`
4
+
5
+ Example: `/wogi-map-add Button components/ui/Button "primary,secondary,ghost"`
6
+
7
+ Steps:
8
+ 1. Add entry to `.workflow/state/app-map.md` in Components table
9
+ 2. Create detail file at `.workflow/state/components/[name].md`
10
+ 3. Show confirmation
11
+
12
+ Output:
13
+ ```
14
+ ✓ Added to app-map: Button
15
+
16
+ | Component | Variants | Path |
17
+ |-----------|----------|------|
18
+ | Button | primary, secondary, ghost | `components/ui/Button` |
19
+
20
+ Created: .workflow/state/components/Button.md
21
+
22
+ Don't forget to document:
23
+ - Props and their types
24
+ - Usage examples
25
+ - Which screens use this component
26
+ ```
27
+
28
+ For screens: `/wogi-map-add screen Login /login`
29
+ For modals: `/wogi-map-add modal ConfirmDelete "Delete button click"`