wogiflow 1.0.16 → 1.0.18

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 (65) hide show
  1. package/.workflow/templates/api-map.md.template +37 -0
  2. package/.workflow/templates/claude-md.hbs +156 -7
  3. package/.workflow/templates/function-map.md.template +33 -0
  4. package/README.md +1 -77
  5. package/lib/installer.js +3 -1
  6. package/lib/utils.js +27 -13
  7. package/package.json +1 -1
  8. package/scripts/flow +62 -10
  9. package/scripts/flow-api-index.js +803 -0
  10. package/scripts/flow-context-compact/expander.js +430 -0
  11. package/scripts/flow-context-compact/index.js +295 -0
  12. package/scripts/flow-context-compact/section-extractor.js +345 -0
  13. package/scripts/flow-context-compact/summary-tree.js +464 -0
  14. package/scripts/flow-done.js +903 -11
  15. package/scripts/flow-durable-session.js +1 -1
  16. package/scripts/flow-epics.js +978 -0
  17. package/scripts/flow-error-recovery.js +788 -0
  18. package/scripts/flow-feature.js +797 -0
  19. package/scripts/flow-file-ops.js +13 -7
  20. package/scripts/flow-function-index.js +607 -0
  21. package/scripts/flow-hooks-install.js +291 -0
  22. package/scripts/flow-hooks.js +1 -0
  23. package/scripts/flow-hybrid-interactive.js +243 -33
  24. package/scripts/flow-hypothesis-generator.js +651 -0
  25. package/scripts/flow-item-link.js +272 -0
  26. package/scripts/flow-knowledge-sync.js +13 -9
  27. package/scripts/flow-morning.js +20 -7
  28. package/scripts/flow-orchestrate.js +48 -10
  29. package/scripts/flow-parallel.js +39 -0
  30. package/scripts/flow-phased-task.js +548 -0
  31. package/scripts/flow-plan.js +798 -0
  32. package/scripts/flow-ready.js +52 -1
  33. package/scripts/flow-review-passes/index.js +447 -0
  34. package/scripts/flow-review-passes/integration.js +637 -0
  35. package/scripts/flow-review-passes/logic.js +419 -0
  36. package/scripts/flow-review-passes/security.js +463 -0
  37. package/scripts/flow-review-passes/structure.js +378 -0
  38. package/scripts/flow-review.js +458 -0
  39. package/scripts/flow-roadmap.js +1008 -0
  40. package/scripts/flow-scanner-base.js +302 -0
  41. package/scripts/flow-semantic-match.js +460 -0
  42. package/scripts/flow-session-end.js +157 -0
  43. package/scripts/flow-session-learning.js +770 -0
  44. package/scripts/flow-session-state.js +150 -1
  45. package/scripts/flow-setup-hooks +63 -8
  46. package/scripts/flow-skill-matcher.js +2 -6
  47. package/scripts/flow-spec-verifier.js +819 -0
  48. package/scripts/flow-start.js +251 -4
  49. package/scripts/flow-story.js +102 -74
  50. package/scripts/{flow-loop-enforcer.js → flow-task-enforcer.js} +101 -85
  51. package/scripts/flow-utils.js +684 -22
  52. package/scripts/hooks/adapters/claude-code.js +78 -7
  53. package/scripts/hooks/core/component-check.js +123 -90
  54. package/scripts/hooks/core/index.js +6 -1
  55. package/scripts/hooks/core/session-context.js +51 -8
  56. package/scripts/hooks/core/setup-check.js +6 -8
  57. package/scripts/hooks/core/setup-handler.js +216 -0
  58. package/scripts/hooks/core/task-gate.js +38 -16
  59. package/scripts/hooks/entry/claude-code/session-start.js +25 -0
  60. package/scripts/hooks/entry/claude-code/setup.js +68 -0
  61. package/scripts/hooks/git/post-commit.js +153 -0
  62. package/scripts/postinstall.js +48 -34
  63. package/templates/roadmap.md +80 -0
  64. package/scripts/flow-new-feature +0 -86
  65. package/scripts/flow-voice-input.js +0 -638
@@ -0,0 +1,37 @@
1
+ # API Registry
2
+
3
+ Quick reference of API calls and endpoints. **Check before creating anything new.**
4
+
5
+ > Run `flow api-index scan` to populate this file.
6
+
7
+ ---
8
+
9
+ ## User Endpoints
10
+
11
+ | Endpoint | Method | Purpose | File |
12
+ |----------|--------|---------|------|
13
+ | `/api/users` | GET | Fetch all users | `src/api/users.ts` |
14
+ | `/api/users/:id` | GET | Fetch single user | `src/api/users.ts` |
15
+
16
+ ---
17
+
18
+ ## API Client Functions
19
+
20
+ ### Users
21
+
22
+ | Function | Method | Endpoint | File |
23
+ |----------|--------|----------|------|
24
+ | `fetchUsers` | GET | /api/users | `src/api/users.ts` |
25
+ | `createUser` | POST | /api/users | `src/api/users.ts` |
26
+
27
+ ---
28
+
29
+ ## Rules
30
+
31
+ 1. **Before creating** → Search this file for existing API calls
32
+ 2. **If similar exists** → Extend with parameter or options
33
+ 3. **After creating** → Run `flow api-index scan` to update
34
+
35
+ ---
36
+
37
+ Last scanned: _Not yet scanned_
@@ -37,16 +37,25 @@ Check `.workflow/state/ready.json` for existing tasks.
37
37
 
38
38
  ### Step 3: Assess task size
39
39
 
40
- | Size | Criteria | Action |
41
- |------|----------|--------|
42
- | **Small** | < {{config.enforcement.taskSizeThresholds.small.maxFiles}} files, < {{config.enforcement.taskSizeThresholds.small.maxHours}} hour, obvious scope | Create task inline, proceed with `/wogi-start` |
43
- | **Medium** | {{config.enforcement.taskSizeThresholds.small.maxFiles}}-{{config.enforcement.taskSizeThresholds.medium.maxFiles}} files, {{config.enforcement.taskSizeThresholds.small.maxHours}}-{{config.enforcement.taskSizeThresholds.medium.maxHours}} hours, some complexity | **STOP** - Create story first |
44
- | **Large** | > {{config.enforcement.taskSizeThresholds.medium.maxFiles}} files, > {{config.enforcement.taskSizeThresholds.medium.maxHours}} hours, new feature | **STOP** - Create story first |
40
+ | Level | Type | Files | Criteria | Action |
41
+ |-------|------|-------|----------|--------|
42
+ | L3 | **Subtask** | 1 | Atomic operation, trivial | Execute inline |
43
+ | L2 | **Task** | 1-5 | Single concern, 1-3 AC | Create task, proceed with `/wogi-start` |
44
+ | L1 | **Story** | 5-15 | Multi-component, 3-10 AC | **STOP** - Create story first |
45
+ | L0 | **Epic** | 15+ | New subsystem, 3+ stories | **STOP** - Create epic, decompose to stories |
45
46
 
46
- ### For Medium/Large Tasks:
47
+ **Classification Keywords:**
48
+ - Epic indicators: system, architecture, migration, redesign, platform
49
+ - Story indicators: feature, flow, integration, module, workflow
50
+ - Task indicators: add, fix, update, change, remove
47
51
 
52
+ Note: WogiFlow can auto-classify requests. If unsure, default to creating a story for medium+ requests.
53
+
54
+ ### For Story/Epic Requests:
55
+
56
+ **For Stories (L1):**
48
57
  ```
49
- This looks like a medium/large task.
58
+ This looks like a story-level feature (5-15 files).
50
59
 
51
60
  Before I start implementing, I need to create a story with acceptance criteria.
52
61
 
@@ -60,6 +69,22 @@ Then:
60
69
  2. **WAIT for user approval** on the story
61
70
  3. Only then proceed with `/wogi-start`
62
71
 
72
+ **For Epics (L0):**
73
+ ```
74
+ This is a large feature that qualifies as an Epic (15+ files, multiple stories).
75
+
76
+ I'll need to decompose this into stories first.
77
+
78
+ **Proposed epic:** "[title based on request]"
79
+
80
+ Should I create this epic and decompose it into stories for your approval?
81
+ ```
82
+
83
+ Then:
84
+ 1. Run `/wogi-epic "[title]"` to create the epic with story breakdown
85
+ 2. **WAIT for user approval** on the epic structure
86
+ 3. Start with the first story using `/wogi-start`
87
+
63
88
  **This is NON-NEGOTIABLE when strict mode is enabled.**
64
89
 
65
90
  ---
@@ -92,6 +117,7 @@ npx flow onboard
92
117
  | `/wogi-story "title"` | Create story with acceptance criteria |
93
118
  | `/wogi-status` | Project overview |
94
119
  | `/wogi-health` | Check workflow health |
120
+ | `/wogi-roadmap` | View/manage deferred work |
95
121
 
96
122
  See `.claude/docs/commands.md` for complete command reference.
97
123
 
@@ -107,6 +133,7 @@ See `.claude/docs/commands.md` for complete command reference.
107
133
  | "check health", "workflow health", "is everything ok" | `/wogi-health` |
108
134
  | "wrap up", "end session", "that's all" | `/wogi-session-end` |
109
135
  | "compact context", "save context", "running low on context" | `/wogi-compact` |
136
+ | "show roadmap", "what's planned", "future work", "deferred items" | `/wogi-roadmap` |
110
137
 
111
138
  **IMPORTANT**: When a user's message matches one of these patterns, immediately invoke the Skill tool with the corresponding command. Do not ask for confirmation.
112
139
 
@@ -173,6 +200,29 @@ After EVERY request that changes files:
173
200
  2. Search codebase for existing
174
201
  3. Priority: Use existing → Add variant → Extend → Create new (last resort)
175
202
 
203
+ ## Function & API Reuse
204
+
205
+ **Before creating ANY new utility function or API call:**
206
+
207
+ 1. **Check `function-map.md`** for existing utilities
208
+ - Search by purpose (date formatting, validation, parsing)
209
+ - Check if extending an existing function makes sense
210
+
211
+ 2. **Check `api-map.md`** for existing API endpoints
212
+ - Search by entity type (users, products, orders)
213
+ - Check if existing endpoint can be parameterized
214
+
215
+ 3. **Evaluate**: Can you extend an existing item instead of creating new?
216
+ - Same intent? → Extend with variant/parameter
217
+ - Similar but different? → Create new, reference existing
218
+ - Completely new? → Create and register
219
+
220
+ **Decision criteria**: Does extending require LESS effort AND make logical sense?
221
+
222
+ **After creating new functions/APIs:**
223
+ - Run `flow function-index scan` to update the function registry
224
+ - Run `flow api-index scan` to update the API registry
225
+
176
226
  {{#if skills}}
177
227
  ## Installed Skills
178
228
 
@@ -191,8 +241,11 @@ Check `.claude/skills/[name]/skill.md` for skill-specific guidance.
191
241
  | Tasks | `.workflow/state/ready.json` |
192
242
  | Logs | `.workflow/state/request-log.md` |
193
243
  | Components | `.workflow/state/app-map.md` |
244
+ | Functions | `.workflow/state/function-map.md` |
245
+ | APIs | `.workflow/state/api-map.md` |
194
246
  | Rules | `.workflow/state/decisions.md` |
195
247
  | Progress | `.workflow/state/progress.md` |
248
+ | Roadmap | `.workflow/roadmap.md` |
196
249
 
197
250
  ## Commit Behavior
198
251
 
@@ -226,6 +279,102 @@ Check `config.json → qualityGates` before closing any task:
226
279
  }
227
280
  ```
228
281
 
282
+ ## Handling Large Requests (IMPORTANT)
283
+
284
+ When a user requests work that would require:
285
+ - More than 5 distinct tasks or files
286
+ - Multiple logical phases
287
+ - Work that spans beyond a reasonable session
288
+ - A "build me X" request for a substantial system
289
+
290
+ **You MUST:**
291
+
292
+ ### Step 1: Acknowledge and Break Down
293
+ Break the request into logical phases. Present it clearly:
294
+
295
+ ```
296
+ This is a substantial feature. Let me break it down:
297
+
298
+ **Phase 1 (Implement Now):**
299
+ - [Core foundation tasks]
300
+
301
+ **Phase 2 (Defer to Roadmap):**
302
+ - [Tasks that depend on Phase 1]
303
+
304
+ **Phase 3 (Defer to Roadmap):**
305
+ - [Future enhancements]
306
+ ```
307
+
308
+ ### Step 2: Ask User
309
+ ```
310
+ Should I:
311
+ 1. Implement Phase 1 now and add Phases 2-3 to your roadmap?
312
+ 2. Create stories for all phases (you choose when to implement)?
313
+ 3. Just implement Phase 1 (forget the rest)?
314
+ ```
315
+
316
+ ### Step 3: If User Chooses Option 1 (Recommended)
317
+ 1. Create stories for Phase 1
318
+ 2. Add remaining phases to `.workflow/roadmap.md` using this format:
319
+
320
+ ```markdown
321
+ ### [Phase Name]: [Feature]
322
+
323
+ **Status:** Deferred
324
+ **Created:** [TODAY]
325
+ **Depends On:** [Parent phase]
326
+
327
+ **Assumes:**
328
+ - [Key assumptions from current implementation]
329
+ - [Architectural decisions that must remain true]
330
+
331
+ **Key Files:**
332
+ - `path/to/file.ts` - [Why this file matters]
333
+
334
+ **Context When Deferred:**
335
+ [Brief description of current project state]
336
+
337
+ **Implementation Plan:**
338
+ 1. [Step 1]
339
+ 2. [Step 2]
340
+ ```
341
+
342
+ 3. Inform user: "Added N items to your roadmap. Run `/wogi-roadmap` to see them."
343
+
344
+ ### Before Implementing Roadmap Items
345
+
346
+ When user asks to implement something from the roadmap:
347
+
348
+ 1. **Find the item**: Check `.workflow/roadmap.md`
349
+ 2. **Validate dependencies**:
350
+ - Is "Depends On" complete?
351
+ - Do "Key Files" still exist?
352
+ - Do "Assumes" still hold true?
353
+ 3. **If validation fails**:
354
+ ```
355
+ ⚠️ This roadmap item may be outdated.
356
+
357
+ Issue: [What changed]
358
+
359
+ Options:
360
+ 1. Update this item to match current architecture
361
+ 2. Remove this item (no longer relevant)
362
+ 3. Proceed anyway (you take responsibility)
363
+ ```
364
+ 4. **If validation passes**: Proceed with implementation
365
+
366
+ ### When Modifying Code That Roadmap Items Depend On
367
+
368
+ If you're about to modify a file listed in any roadmap item's "Key Files":
369
+
370
+ ```
371
+ Note: This change may affect roadmap items:
372
+ - [Item 1 name]
373
+ - [Item 2 name]
374
+
375
+ Should I review and update those items after this change?
376
+ ```
377
+
229
378
  ## Context Management
230
379
 
231
380
  Use `/wogi-compact` when:
@@ -0,0 +1,33 @@
1
+ # Function Registry
2
+
3
+ Quick reference of utility functions. **Check before creating anything new.**
4
+
5
+ > Run `flow function-index scan` to populate this file.
6
+
7
+ ---
8
+
9
+ ## Utilities
10
+
11
+ | Function | Purpose | File | Parameters |
12
+ |----------|---------|------|------------|
13
+ | _Example_ | Format dates for display | `src/utils/date.ts` | date: Date, format?: string |
14
+
15
+ ---
16
+
17
+ ## Helpers
18
+
19
+ | Function | Purpose | File | Parameters |
20
+ |----------|---------|------|------------|
21
+ | _Example_ | Validate email format | `src/helpers/validation.ts` | email: string |
22
+
23
+ ---
24
+
25
+ ## Rules
26
+
27
+ 1. **Before creating** → Search this file
28
+ 2. **If similar exists** → Extend with parameter, don't create new
29
+ 3. **After creating** → Run `flow function-index scan` to update
30
+
31
+ ---
32
+
33
+ Last scanned: _Not yet scanned_
package/README.md CHANGED
@@ -52,7 +52,7 @@ A self-improving AI development workflow that learns from your feedback and accu
52
52
  | [Task Execution](.claude/docs/knowledge-base/02-task-execution/) | The execution pipeline with trade-offs |
53
53
  | [Self-Improvement](.claude/docs/knowledge-base/03-self-improvement/) | How WogiFlow learns and improves |
54
54
  | [Memory & Context](.claude/docs/knowledge-base/04-memory-context/) | Context management and session persistence |
55
- | [Development Tools](.claude/docs/knowledge-base/05-development-tools/) | Figma, traces, voice, MCP integrations |
55
+ | [Development Tools](.claude/docs/knowledge-base/05-development-tools/) | Figma, traces, MCP integrations |
56
56
  | [Safety & Guardrails](.claude/docs/knowledge-base/06-safety-guardrails/) | Protection and recovery systems |
57
57
  | [Configuration Reference](.claude/docs/knowledge-base/configuration/all-options.md) | All 200+ configuration options |
58
58
 
@@ -119,7 +119,6 @@ Daily commands for working with WogiFlow. Start with `/wogi-ready` to see tasks,
119
119
  - [Parallel Auto-Detection](#parallel-auto-detection)
120
120
  - [Skill Auto-Creation](#skill-auto-creation)
121
121
  - [Project-Based Team Sync](#project-based-team-sync)
122
- - [Voice Input](#voice-input)
123
122
  - [Damage Control](#damage-control)
124
123
  - [Safety & Verification](#safety--verification)
125
124
  - [Execution Traces & Checkpoints](#execution-traces--checkpoints)
@@ -431,74 +430,6 @@ Sync workflow files at project scope - share decisions, patterns, and knowledge
431
430
 
432
431
  ---
433
432
 
434
- ## Voice Input
435
- Voice-to-transcript support with multiple provider options. Create tasks, stories, and commands using your voice.
436
-
437
- ### How It Works
438
-
439
- ```
440
- ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
441
- │ Microphone │ ──▶ │ Record │ ──▶ │ Transcribe │
442
- │ Input │ │ Audio │ │ (Whisper) │
443
- └─────────────┘ └─────────────┘ └─────────────┘
444
-
445
-
446
- ┌──────────┐
447
- │ Text │
448
- │ Output │
449
- └──────────┘
450
- ```
451
-
452
- ### Providers
453
-
454
- | Provider | API Key | Description |
455
- |----------|---------|-------------|
456
- | **Local** | No | Whisper.cpp - works offline |
457
- | **OpenAI** | Yes | Best accuracy |
458
- | **Groq** | Yes (free tier) | Fast cloud transcription |
459
-
460
- ### Setup
461
-
462
- ```bash
463
- ./scripts/flow voice-input setup # Interactive setup
464
- ```
465
-
466
- The setup wizard will:
467
- 1. Ask if you want to enable voice input
468
- 2. Let you choose a provider
469
- 3. Configure API keys (if using cloud)
470
-
471
- ### Configuration
472
-
473
- ```json
474
- {
475
- "voice": {
476
- "enabled": true,
477
- "provider": "groq",
478
- "groqApiKey": "gsk_...",
479
- "defaultDuration": 30
480
- }
481
- }
482
- ```
483
-
484
- ### Commands
485
-
486
- ```bash
487
- ./scripts/flow voice-input # Record and transcribe
488
- ./scripts/flow voice-input -d 60 # Record for 60 seconds
489
- ./scripts/flow voice-input -p openai # Use specific provider
490
- ./scripts/flow voice-input --to-story # Create story from voice
491
- ./scripts/flow voice-input status # Show configuration
492
- ./scripts/flow voice-input test # Test with 5-second recording
493
- ```
494
-
495
- ### Requirements
496
-
497
- - **Recording**: `sox` - install with `brew install sox` (macOS) or `apt install sox` (Linux)
498
- - **Local Whisper**: `pip install openai-whisper` or download whisper.cpp
499
-
500
- ---
501
-
502
433
  ## Damage Control
503
434
 
504
435
  Prevents destructive commands from running accidentally. Pattern-based blocking with configurable protection levels.
@@ -1492,13 +1423,6 @@ flow parallel suggest # Check if suggestion available
1492
1423
  flow team sync-init # Initialize project sync
1493
1424
  flow team project-id # Show/set project ID
1494
1425
 
1495
- # Voice Inputflow voice-input setup # Configure voice input
1496
- flow voice-input # Record and transcribe
1497
- flow voice-input -d 60 # Record for 60 seconds
1498
- flow voice-input -p groq # Use specific provider
1499
- flow voice-input status # Show configuration
1500
- flow voice-input test # Test recording
1501
-
1502
1426
  # Hybrid Mode
1503
1427
  flow hybrid enable # Enable with wizard
1504
1428
  flow hybrid disable # Disable
package/lib/installer.js CHANGED
@@ -254,7 +254,9 @@ function createWorkflowStructure(projectRoot, config) {
254
254
  { name: 'request-log.md', content: '# Request Log\n\nAutomatic log of all requests that changed files.\n\n---\n' },
255
255
  { name: 'decisions.md', content: '# Project Decisions\n\nKey decisions and patterns for this project.\n\n---\n' },
256
256
  { name: 'app-map.md', content: '# Application Map\n\nComponent registry for this project.\n\n---\n' },
257
- { name: 'progress.md', content: '# Progress Notes\n\nSession handoff notes.\n\n---\n' }
257
+ { name: 'progress.md', content: '# Progress Notes\n\nSession handoff notes.\n\n---\n' },
258
+ { name: 'function-map.md', content: '# Function Registry\n\nUtility function registry. Run `flow function-index scan` to populate.\n\n---\n' },
259
+ { name: 'api-map.md', content: '# API Registry\n\nAPI calls registry. Run `flow api-index scan` to populate.\n\n---\n' }
258
260
  ];
259
261
 
260
262
  for (const file of stateFiles) {
package/lib/utils.js CHANGED
@@ -37,27 +37,40 @@ function findProjectRoot() {
37
37
  }
38
38
 
39
39
  /**
40
- * Safely parse JSON with prototype pollution protection
40
+ * Safely parse JSON content with prototype pollution protection
41
+ *
42
+ * Note: For parsing JSON files, use safeJsonParseFile from flow-file-ops.js
43
+ * or safeReadJson from this module instead.
44
+ *
41
45
  * @param {string} content - JSON string to parse
42
46
  * @param {*} defaultValue - Default value if parsing fails
43
47
  * @returns {Object} Parsed object or default value
44
48
  */
45
- function safeJsonParse(content, defaultValue = null) {
49
+ function safeJsonParseContent(content, defaultValue = null) {
46
50
  try {
51
+ // Check for prototype pollution attempts in raw content
52
+ // Covers various quote styles and whitespace variants
53
+ if (/__proto__|constructor\s*["'`:]|prototype\s*["'`:]/i.test(content)) {
54
+ console.warn('[safeJsonParse] Suspicious content detected');
55
+ return defaultValue;
56
+ }
57
+
47
58
  const parsed = JSON.parse(content);
48
59
 
49
- // Protect against prototype pollution
50
- // Only check for __proto__ and prototype as own properties (not inherited)
51
- if (parsed && typeof parsed === 'object') {
52
- if (Object.prototype.hasOwnProperty.call(parsed, '__proto__') ||
53
- Object.prototype.hasOwnProperty.call(parsed, 'prototype')) {
54
- console.warn('Warning: Potentially malicious JSON detected');
55
- return defaultValue;
56
- }
60
+ // Validate it's an object (not primitive)
61
+ if (typeof parsed !== 'object' || parsed === null) {
62
+ return parsed; // Allow primitives to pass through
63
+ }
64
+
65
+ // Additional check: ensure no proto/constructor keys were added
66
+ const keys = Object.getOwnPropertyNames(parsed);
67
+ if (keys.includes('__proto__') || keys.includes('constructor') || keys.includes('prototype')) {
68
+ console.warn('[safeJsonParse] Prototype pollution attempt detected');
69
+ return defaultValue;
57
70
  }
58
71
 
59
72
  return parsed;
60
- } catch (err) {
73
+ } catch (_err) {
61
74
  return defaultValue;
62
75
  }
63
76
  }
@@ -74,7 +87,7 @@ function safeReadJson(filePath, defaultValue = null) {
74
87
  return defaultValue;
75
88
  }
76
89
  const content = fs.readFileSync(filePath, 'utf8');
77
- return safeJsonParse(content, defaultValue);
90
+ return safeJsonParseContent(content, defaultValue);
78
91
  } catch (err) {
79
92
  return defaultValue;
80
93
  }
@@ -290,7 +303,8 @@ function safeWriteFile(basePath, relativePath, content) {
290
303
 
291
304
  module.exports = {
292
305
  findProjectRoot,
293
- safeJsonParse,
306
+ safeJsonParseContent,
307
+ safeJsonParse: safeJsonParseContent, // Backward-compatible alias (deprecated)
294
308
  safeReadJson,
295
309
  httpsGet,
296
310
  copyDir,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wogiflow",
3
- "version": "1.0.16",
3
+ "version": "1.0.18",
4
4
  "description": "AI-powered development workflow management system with multi-model support",
5
5
  "main": "lib/index.js",
6
6
  "bin": {
package/scripts/flow CHANGED
@@ -57,6 +57,13 @@ show_help() {
57
57
  echo " new-feature <n> Create new feature"
58
58
  echo " bug <title> Create bug report"
59
59
  echo ""
60
+ echo "Roadmap & Planning:"
61
+ echo " roadmap Show project roadmap"
62
+ echo " roadmap add <title> Add item to roadmap"
63
+ echo " roadmap validate <t> Validate item dependencies"
64
+ echo " roadmap move <t> Move item between phases"
65
+ echo " roadmap list [phase] List items by phase"
66
+ echo ""
60
67
  echo "Workflow:"
61
68
  echo " morning Morning briefing - where you left off"
62
69
  echo " health Check workflow health"
@@ -85,8 +92,17 @@ show_help() {
85
92
  echo " map-index scan Rescan codebase"
86
93
  echo " map-sync Compare index with app-map"
87
94
  echo ""
95
+ echo "Functions & APIs:"
96
+ echo " function-index scan Scan for utility functions"
97
+ echo " function-index show Show function details"
98
+ echo " function-index map Regenerate function-map.md"
99
+ echo " api-index scan Scan for API calls"
100
+ echo " api-index show Show API function or endpoint"
101
+ echo " api-index map Regenerate api-map.md"
102
+ echo ""
88
103
  echo "Skills & Learning:"
89
104
  echo " skill-learn Extract learnings from recent changes"
105
+ echo " auto-learn Auto-learn from session reviews and bug fixes"
90
106
  echo " skill-create <name> Create a new skill"
91
107
  echo " skill-create --list List existing skills"
92
108
  echo " skill detect Detect frameworks in project"
@@ -101,6 +117,22 @@ show_help() {
101
117
  echo " correct list List recent corrections"
102
118
  echo " aggregate Aggregate learnings across skills"
103
119
  echo " aggregate --promote Interactive promotion wizard"
120
+ echo " pattern-enforce Enforce patterns from decisions/app-map"
121
+ echo ""
122
+ echo "Code Analysis:"
123
+ echo " code-intel analyze Analyze imports/exports in codebase"
124
+ echo " code-intel deps Show dependency graph"
125
+ echo " review Code review with auto multi-pass detection"
126
+ echo " review --multipass Force multi-pass review mode"
127
+ echo ""
128
+ echo "Error Recovery:"
129
+ echo " error-recovery analyze Analyze error output hierarchically"
130
+ echo " error-recovery status Show recovery session status"
131
+ echo ""
132
+ echo "Epics:"
133
+ echo " epic list List all epics"
134
+ echo " epic show <id> Show epic details and progress"
135
+ echo " epic create Create a new epic"
104
136
  echo ""
105
137
  echo "Code Traces:"
106
138
  echo " trace \"<prompt>\" Generate task-focused code trace"
@@ -283,9 +315,6 @@ show_help() {
283
315
  echo " confidence stats Show confidence statistics"
284
316
  echo ""
285
317
  echo "Input & Editing:"
286
- echo " voice-input Voice-to-transcript input"
287
- echo " voice-input setup Install/configure voice dependencies"
288
- echo " voice-input record Record and transcribe audio"
289
318
  echo " guided-edit \"task\" Step-by-step guided multi-file editing"
290
319
  echo " guided-edit status Show current guided edit session"
291
320
  echo ""
@@ -325,6 +354,9 @@ case "${1:-}" in
325
354
  story)
326
355
  node "$SCRIPT_DIR/flow-story.js" "${@:2}"
327
356
  ;;
357
+ roadmap)
358
+ node "$SCRIPT_DIR/flow-roadmap.js" "${@:2}"
359
+ ;;
328
360
  new-feature)
329
361
  "$SCRIPT_DIR/flow-new-feature" "${@:2}"
330
362
  ;;
@@ -412,9 +444,33 @@ case "${1:-}" in
412
444
  map-sync)
413
445
  "$SCRIPT_DIR/flow-map-sync" "${@:2}"
414
446
  ;;
447
+ function-index)
448
+ node "$SCRIPT_DIR/flow-function-index.js" "${@:2}"
449
+ ;;
450
+ api-index)
451
+ node "$SCRIPT_DIR/flow-api-index.js" "${@:2}"
452
+ ;;
415
453
  skill-learn)
416
454
  node "$SCRIPT_DIR/flow-skill-learn.js" "${@:2}"
417
455
  ;;
456
+ auto-learn)
457
+ node "$SCRIPT_DIR/flow-auto-learn.js" "${@:2}"
458
+ ;;
459
+ code-intel|code-intelligence)
460
+ node "$SCRIPT_DIR/flow-code-intelligence.js" "${@:2}"
461
+ ;;
462
+ error-recovery)
463
+ node "$SCRIPT_DIR/flow-error-recovery.js" "${@:2}"
464
+ ;;
465
+ epic|epics)
466
+ node "$SCRIPT_DIR/flow-epics.js" "${@:2}"
467
+ ;;
468
+ pattern-enforce)
469
+ node "$SCRIPT_DIR/flow-pattern-enforcer.js" "${@:2}"
470
+ ;;
471
+ review)
472
+ node "$SCRIPT_DIR/flow-review.js" "${@:2}"
473
+ ;;
418
474
  correct)
419
475
  node "$SCRIPT_DIR/flow-correct.js" "${@:2}"
420
476
  ;;
@@ -479,13 +535,13 @@ case "${1:-}" in
479
535
  loop)
480
536
  case "${2:-status}" in
481
537
  status)
482
- node "$SCRIPT_DIR/flow-loop-enforcer.js" status
538
+ node "$SCRIPT_DIR/flow-task-enforcer.js" status
483
539
  ;;
484
540
  stats)
485
- node "$SCRIPT_DIR/flow-loop-enforcer.js" stats
541
+ node "$SCRIPT_DIR/flow-task-enforcer.js" stats
486
542
  ;;
487
543
  can-exit)
488
- node "$SCRIPT_DIR/flow-loop-enforcer.js" can-exit
544
+ node "$SCRIPT_DIR/flow-task-enforcer.js" can-exit
489
545
  ;;
490
546
  enable)
491
547
  node "$SCRIPT_DIR/flow-config-set.js" loops.enforced true
@@ -930,9 +986,6 @@ case "${1:-}" in
930
986
  # Phase 6: Background Sync Daemon
931
987
  node "$SCRIPT_DIR/flow-sync-daemon.js" "${@:2}"
932
988
  ;;
933
- voice-input|voice)
934
- node "$SCRIPT_DIR/flow-voice-input.js" "${@:2}"
935
- ;;
936
989
  guided-edit)
937
990
  node "$SCRIPT_DIR/flow-guided-edit.js" "${@:2}"
938
991
  ;;
@@ -965,7 +1018,6 @@ case "${1:-}" in
965
1018
  hybrid) echo "Manage hybrid mode. Subcommands: enable, disable, status, execute, test, learning" ;;
966
1019
  parallel) echo "Manage parallel execution. Subcommands: config, check, enable, disable" ;;
967
1020
  worktree) echo "Manage worktree isolation. Subcommands: enable, disable, list, cleanup" ;;
968
- voice-input|voice) echo "Voice-to-transcript input. Subcommands: setup, status, test, record" ;;
969
1021
  long-input|long-input-process|transcript-digest|digest) echo "Long input processing. Ensures nothing missed from long prompts/transcripts/specs. Subcommands: status, new, check, topics, save-topics" ;;
970
1022
  guided-edit) echo "Step-by-step guided multi-file editing. Usage: flow guided-edit \"task description\"" ;;
971
1023
  *) echo "No detailed help for '$2'. Run 'flow help' for all commands." ;;