wogiflow 1.8.3 → 1.8.5
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/.claude/commands/wogi-guided-edit.md +1 -1
- package/.claude/commands/wogi-register.md +28 -3
- package/.claude/commands/wogi-review.md +1 -1
- package/.claude/commands/wogi-start.md +6 -1
- package/.claude/commands/wogi-statusline-setup.md +9 -0
- package/.claude/docs/commands.md +1 -0
- package/.claude/docs/knowledge-base/01-setup-onboarding/README.md +1 -1
- package/.claude/docs/knowledge-base/01-setup-onboarding/component-indexing.md +57 -43
- package/.claude/docs/knowledge-base/01-setup-onboarding/installation.md +8 -6
- package/.claude/docs/knowledge-base/01-setup-onboarding/onboarding-existing.md +10 -7
- package/.claude/docs/knowledge-base/02-task-execution/01-task-planning.md +12 -12
- package/.claude/docs/knowledge-base/02-task-execution/02-execution-loop.md +37 -45
- package/.claude/docs/knowledge-base/02-task-execution/03-verification.md +6 -7
- package/.claude/docs/knowledge-base/02-task-execution/04-completion.md +44 -107
- package/.claude/docs/knowledge-base/02-task-execution/05-session-review.md +7 -7
- package/.claude/docs/knowledge-base/02-task-execution/README.md +47 -18
- package/.claude/docs/knowledge-base/02-task-execution/branch-finalization.md +141 -0
- package/.claude/docs/knowledge-base/02-task-execution/debug-hypothesis.md +166 -0
- package/.claude/docs/knowledge-base/02-task-execution/eval-system.md +157 -0
- package/.claude/docs/knowledge-base/02-task-execution/external-integrations.md +6 -6
- package/.claude/docs/knowledge-base/02-task-execution/model-management.md +12 -10
- package/.claude/docs/knowledge-base/02-task-execution/peer-review.md +180 -0
- package/.claude/docs/knowledge-base/02-task-execution/plan-management.md +175 -0
- package/.claude/docs/knowledge-base/02-task-execution/quick-capture.md +165 -0
- package/.claude/docs/knowledge-base/02-task-execution/trade-offs.md +14 -14
- package/.claude/docs/knowledge-base/03-self-improvement/README.md +31 -23
- package/.claude/docs/knowledge-base/03-self-improvement/long-input-extraction.md +175 -0
- package/.claude/docs/knowledge-base/03-self-improvement/model-learning.md +7 -6
- package/.claude/docs/knowledge-base/03-self-improvement/project-learning.md +15 -11
- package/.claude/docs/knowledge-base/03-self-improvement/rules-management.md +141 -0
- package/.claude/docs/knowledge-base/03-self-improvement/skill-learning.md +25 -19
- package/.claude/docs/knowledge-base/03-self-improvement/skill-matching.md +1 -1
- package/.claude/docs/knowledge-base/04-memory-context/context-management.md +39 -29
- package/.claude/docs/knowledge-base/04-memory-context/memory-systems.md +41 -35
- package/.claude/docs/knowledge-base/04-memory-context/session-persistence.md +24 -22
- package/.claude/docs/knowledge-base/05-development-tools/README.md +7 -11
- package/.claude/docs/knowledge-base/05-development-tools/browser-debugging.md +210 -0
- package/.claude/docs/knowledge-base/05-development-tools/figma-analyzer.md +44 -178
- package/.claude/docs/knowledge-base/06-safety-guardrails/README.md +1 -0
- package/.claude/docs/knowledge-base/06-safety-guardrails/commit-gates.md +13 -9
- package/.claude/docs/knowledge-base/06-safety-guardrails/project-audit.md +179 -0
- package/.claude/docs/knowledge-base/README.md +6 -3
- package/.claude/docs/knowledge-base/configuration/all-options.md +770 -1167
- package/.claude/skills/_template/skill.md +4 -4
- package/.claude/skills/figma-analyzer/skill.md +62 -0
- package/.workflow/bridges/claude-bridge.js +5 -0
- package/README.md +30 -25
- package/lib/installer.js +3 -1
- package/package.json +1 -1
- package/scripts/flow-bridge-state.js +73 -2
- package/scripts/flow-figma-match.js +25 -9
- package/scripts/flow-figma-orchestrator.js +517 -0
- package/scripts/flow-figma-registry.js +480 -0
- package/scripts/flow-figma-state-analyzer.js +521 -0
- package/scripts/flow-plugin-registry.js +112 -10
- package/scripts/flow-watch +5 -2
- package/scripts/hooks/adapters/claude-code.js +44 -4
- package/scripts/hooks/core/instructions-loaded.js +330 -0
- package/scripts/hooks/core/phase-gate.js +27 -3
- package/scripts/hooks/entry/claude-code/instructions-loaded.js +56 -0
- package/scripts/hooks/entry/claude-code/pre-tool-use.js +46 -12
- package/scripts/hooks/entry/claude-code/session-start.js +33 -0
- package/scripts/hooks/entry/claude-code/user-prompt-submit.js +15 -3
|
@@ -47,7 +47,7 @@ This command modifies files. It MUST operate within one of these contexts:
|
|
|
47
47
|
4. **Apply**: Make approved changes
|
|
48
48
|
- **After each file edit**, validate by file type:
|
|
49
49
|
- `.js` files: `node --check <file>` + ESLint
|
|
50
|
-
- `.ts`/`.tsx` files: `
|
|
50
|
+
- `.ts`/`.tsx` files: Run typecheck from `config.scripts.typecheck` (read from `.workflow/config.json`) + ESLint
|
|
51
51
|
- `.json` files: JSON parse check
|
|
52
52
|
- Other types: skip validation
|
|
53
53
|
- Do NOT proceed to next file until current file passes validation
|
|
@@ -52,7 +52,18 @@ If MCP inspection yields few or no results:
|
|
|
52
52
|
|
|
53
53
|
### Step 3: Build Plugin Entry
|
|
54
54
|
|
|
55
|
-
From the discovered information, construct
|
|
55
|
+
From the discovered information, construct each capability entry. For each capability, classify its **mode** and **flowPhases**:
|
|
56
|
+
|
|
57
|
+
**Mode Classification Guide:**
|
|
58
|
+
| Mode | When to use | Examples |
|
|
59
|
+
|------|-------------|----------|
|
|
60
|
+
| `standalone` | Action works independently, no task context needed | Screenshots, status checks, lookups, notifications, sending messages |
|
|
61
|
+
| `flow-integrated` | Action is part of a development workflow phase | Running tests (validating), design checks (exploring), deploys (completing), linting (validating) |
|
|
62
|
+
| `trigger` | Action feeds events INTO WogiFlow routing | Error alerts → `/wogi-bug`, deployment failures → `/wogi-story`, PR comments → `/wogi-review` |
|
|
63
|
+
|
|
64
|
+
**flowPhases** (only for `flow-integrated` mode): `exploring`, `coding`, `validating`, `completing`
|
|
65
|
+
|
|
66
|
+
**outputFormat**: `text` (default), `json` (structured data), `artifact` (file/image output)
|
|
56
67
|
|
|
57
68
|
```json
|
|
58
69
|
{
|
|
@@ -66,7 +77,10 @@ From the discovered information, construct:
|
|
|
66
77
|
"description": "What this action does",
|
|
67
78
|
"triggerPhrases": ["send to X", "push to X"],
|
|
68
79
|
"mcpTool": "mcp__server__tool_name or null",
|
|
69
|
-
"requiresTask": false
|
|
80
|
+
"requiresTask": false,
|
|
81
|
+
"mode": "standalone|flow-integrated|trigger",
|
|
82
|
+
"flowPhases": ["validating"],
|
|
83
|
+
"outputFormat": "text"
|
|
70
84
|
}
|
|
71
85
|
],
|
|
72
86
|
"metadata": {
|
|
@@ -91,10 +105,11 @@ Source: MCP tools | Web search | Manual
|
|
|
91
105
|
|
|
92
106
|
Capabilities discovered (N):
|
|
93
107
|
1. <action>: <description>
|
|
94
|
-
Triggers: "phrase 1", "phrase 2"
|
|
108
|
+
Mode: standalone | Triggers: "phrase 1", "phrase 2"
|
|
95
109
|
MCP Tool: mcp__server__tool
|
|
96
110
|
|
|
97
111
|
2. <action>: <description>
|
|
112
|
+
Mode: flow-integrated | Phases: validating, completing
|
|
98
113
|
Triggers: "phrase 3"
|
|
99
114
|
|
|
100
115
|
Trigger phrases (top-level):
|
|
@@ -183,3 +198,13 @@ When `config.plugins.autoScanOnSessionStart` is true:
|
|
|
183
198
|
- Display: `New plugin detected: <name>. Auto-registered with N capabilities.`
|
|
184
199
|
|
|
185
200
|
Mid-session plugin installs require manual `/wogi-register <name>`.
|
|
201
|
+
|
|
202
|
+
## Post-Registration: Activate Plugin
|
|
203
|
+
|
|
204
|
+
After saving the plugin to the registry (Step 5), automatically run `/reload-plugins` to activate the newly registered plugin without requiring a session restart. This ensures the plugin's MCP tools are immediately available.
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
After registration completes, tell the user:
|
|
208
|
+
"Plugin registered. Running /reload-plugins to activate it immediately."
|
|
209
|
+
Then invoke /reload-plugins.
|
|
210
|
+
```
|
|
@@ -1473,7 +1473,7 @@ For each issue, follow this cycle:
|
|
|
1473
1473
|
│ Run targeted verification: │
|
|
1474
1474
|
│ node --check <file> (syntax) │
|
|
1475
1475
|
│ npx eslint <file> (lint) │
|
|
1476
|
-
│
|
|
1476
|
+
│ config.scripts.typecheck (types) │
|
|
1477
1477
|
│ ↓ │
|
|
1478
1478
|
│ If PASS → Mark todo: completed │
|
|
1479
1479
|
│ If FAIL → Fix and retry │
|
|
@@ -20,7 +20,12 @@ When invoked with a **quoted request** instead of a task ID, assess intent and r
|
|
|
20
20
|
|
|
21
21
|
**Plugin Registry Routing**: After command catalog finds no match and `config.plugins.enabled`, check `.workflow/state/plugin-registry.json` for trigger phrase matches (score >= 0.5). Plugin routing has LOWER priority than built-in commands.
|
|
22
22
|
|
|
23
|
-
**
|
|
23
|
+
**Plugin Mode-Aware Routing** (when a plugin match is found):
|
|
24
|
+
- **Standalone** (`mode: 'standalone'`): If `config.plugins.standaloneBypassTask` is true, skip task creation. Clear routing flag, let the AI use the plugin directly. Log the action with `#plugin:<name>` tag by running `node -e "require('./scripts/flow-plugin-registry').logPluginAction({pluginName:'<name>',action:'<action>',mode:'standalone'})"`.
|
|
25
|
+
- **Flow-integrated** (`mode: 'flow-integrated'`): Requires an active task. If no task is in progress, route to `/wogi-story` first. The plugin becomes available during its declared `flowPhases` (injected via phase context prompt).
|
|
26
|
+
- **Trigger** (`mode: 'trigger'`): Route to the appropriate `/wogi-*` command based on the trigger type (error triggers → `/wogi-bug`, deployment triggers → `/wogi-story`, PR triggers → `/wogi-review`). The plugin action feeds INTO WogiFlow routing.
|
|
27
|
+
|
|
28
|
+
**Routing order**: Task ID → Long input gate → Command Catalog → Plugin Registry (mode-aware) → Default (`/wogi-story`)
|
|
24
29
|
|
|
25
30
|
### Command Catalog
|
|
26
31
|
|
|
@@ -60,6 +60,10 @@ Add or update the `statusLine` section in `~/.claude/settings.json`:
|
|
|
60
60
|
| `{{task.id}}` | Current WogiFlow task ID (if any) |
|
|
61
61
|
| `{{task.title}}` | Current task title |
|
|
62
62
|
| `{{skill}}` | Currently active skill |
|
|
63
|
+
| `{{worktree.name}}` | Worktree name (if running in --worktree session) |
|
|
64
|
+
| `{{worktree.branch}}` | Worktree branch name |
|
|
65
|
+
| `{{worktree.path}}` | Worktree directory path |
|
|
66
|
+
| `{{worktree.original}}` | Original repo directory |
|
|
63
67
|
|
|
64
68
|
### Recommended Formats
|
|
65
69
|
|
|
@@ -78,6 +82,11 @@ Add or update the `statusLine` section in `~/.claude/settings.json`:
|
|
|
78
82
|
"format": "[{{task.id}}] {{model}} | {{context_window.used_percentage}}% used | {{#if skill}}{{skill}}{{/if}}"
|
|
79
83
|
```
|
|
80
84
|
|
|
85
|
+
**With Worktree** (for parallel task execution):
|
|
86
|
+
```json
|
|
87
|
+
"format": "{{#if worktree}}[WT:{{worktree.branch}}] {{/if}}{{#if task}}[{{task.id}}] {{/if}}{{model}} | Ctx: {{context_window.used_percentage}}%"
|
|
88
|
+
```
|
|
89
|
+
|
|
81
90
|
## WogiFlow Integration
|
|
82
91
|
|
|
83
92
|
To have WogiFlow automatically update the status line with current task info, we need to:
|
package/.claude/docs/commands.md
CHANGED
|
@@ -39,6 +39,7 @@ When user types these commands, execute the corresponding action immediately.
|
|
|
39
39
|
| `/wogi-init` | Initialize workflow structure. Create all directories and state files. Use for new projects. |
|
|
40
40
|
| `/wogi-review-fix` | Code review with automatic fixing. Runs full review process then auto-fixes all findings. |
|
|
41
41
|
| `/wogi-peer-review` | Multi-model code review - different AI models review same code for diverse perspectives. |
|
|
42
|
+
| `/wogi-eval` | Multi-judge scoring system — 1 Opus + 2 Sonnet judges score task output across 5 dimensions. |
|
|
42
43
|
| `/wogi-triage` | Interactive walkthrough of review findings from last-review.json. Categorize, dismiss, or create tasks. |
|
|
43
44
|
| `/wogi-onboard` | Analyze existing project with deep temporal analysis, pattern extraction, and state file generation. |
|
|
44
45
|
| `/wogi-rescan` | Re-scan project after external changes. Smart diff: auto-adds new items, auto-removes deleted items, presents conflicts one-by-one. Options: `--dry-run`, `--auto-resolve`, `--category`, `--since`. |
|
|
@@ -167,7 +167,7 @@ This analyzes your codebase and populates:
|
|
|
167
167
|
1. **Review Generated Files**: Check `decisions.md` and `app-map.md` for accuracy
|
|
168
168
|
2. **Run Health Check**: `/wogi-health` to verify setup
|
|
169
169
|
3. **View Tasks**: `/wogi-ready` to see available tasks
|
|
170
|
-
4. **Start Working**: `/wogi-start
|
|
170
|
+
4. **Start Working**: `/wogi-start wf-a1b2c3d4`
|
|
171
171
|
|
|
172
172
|
---
|
|
173
173
|
|
|
@@ -45,34 +45,39 @@ Component indexing solves:
|
|
|
45
45
|
|
|
46
46
|
## Configuration
|
|
47
47
|
|
|
48
|
+
Component indexing is now configured via the `registries` array in `config.json`. Each registry object defines a type, directories, and ignore patterns:
|
|
49
|
+
|
|
48
50
|
```json
|
|
49
51
|
{
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
"
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
52
|
+
"registries": [
|
|
53
|
+
{
|
|
54
|
+
"id": "components",
|
|
55
|
+
"autoScan": true, // Enable auto-scanning
|
|
56
|
+
"scanOn": [ // When to scan
|
|
57
|
+
"sessionStart", // On new Claude session
|
|
58
|
+
"afterTask", // After task completion
|
|
59
|
+
"preCommit" // Before git commits (requires hooks)
|
|
60
|
+
],
|
|
61
|
+
"staleAfterMinutes": 60, // Refresh if older than this
|
|
62
|
+
"directories": [ // Where to look
|
|
63
|
+
"src/components",
|
|
64
|
+
"src/hooks",
|
|
65
|
+
"src/services",
|
|
66
|
+
"src/pages",
|
|
67
|
+
"src/modules",
|
|
68
|
+
"app"
|
|
69
|
+
],
|
|
70
|
+
"ignore": [ // What to skip
|
|
71
|
+
"*.test.*",
|
|
72
|
+
"*.spec.*",
|
|
73
|
+
"*.stories.*",
|
|
74
|
+
"index.ts",
|
|
75
|
+
"index.js",
|
|
76
|
+
"__tests__",
|
|
77
|
+
"__mocks__"
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
]
|
|
76
81
|
}
|
|
77
82
|
```
|
|
78
83
|
|
|
@@ -167,10 +172,13 @@ Based on `scanOn` configuration:
|
|
|
167
172
|
|
|
168
173
|
```json
|
|
169
174
|
{
|
|
170
|
-
"
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
175
|
+
"registries": [
|
|
176
|
+
{
|
|
177
|
+
"id": "components",
|
|
178
|
+
"scanOn": ["sessionStart", "afterTask", "preCommit"],
|
|
179
|
+
"staleAfterMinutes": 60
|
|
180
|
+
}
|
|
181
|
+
]
|
|
174
182
|
}
|
|
175
183
|
```
|
|
176
184
|
|
|
@@ -300,28 +308,34 @@ Check directories are correct:
|
|
|
300
308
|
ls -la src/components/
|
|
301
309
|
```
|
|
302
310
|
|
|
303
|
-
Update
|
|
311
|
+
Update the component registry entry in the `registries` array:
|
|
304
312
|
```json
|
|
305
313
|
{
|
|
306
|
-
"
|
|
307
|
-
|
|
308
|
-
|
|
314
|
+
"registries": [
|
|
315
|
+
{
|
|
316
|
+
"id": "components",
|
|
317
|
+
"directories": ["components", "lib"] // Adjust paths
|
|
318
|
+
}
|
|
319
|
+
]
|
|
309
320
|
}
|
|
310
321
|
```
|
|
311
322
|
|
|
312
323
|
### Too Many Results
|
|
313
324
|
|
|
314
|
-
Add ignore patterns:
|
|
325
|
+
Add ignore patterns to the component registry entry:
|
|
315
326
|
```json
|
|
316
327
|
{
|
|
317
|
-
"
|
|
318
|
-
|
|
319
|
-
"
|
|
320
|
-
"
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
328
|
+
"registries": [
|
|
329
|
+
{
|
|
330
|
+
"id": "components",
|
|
331
|
+
"ignore": [
|
|
332
|
+
"*.test.*",
|
|
333
|
+
"*.stories.*",
|
|
334
|
+
"*.d.ts",
|
|
335
|
+
"internal/*"
|
|
336
|
+
]
|
|
337
|
+
}
|
|
338
|
+
]
|
|
325
339
|
}
|
|
326
340
|
```
|
|
327
341
|
|
|
@@ -37,7 +37,7 @@ trustedDependencies = ["wogiflow"]
|
|
|
37
37
|
|
|
38
38
|
```
|
|
39
39
|
.workflow/
|
|
40
|
-
├── config.json # Configuration (
|
|
40
|
+
├── config.json # Configuration (500+ options)
|
|
41
41
|
├── state/
|
|
42
42
|
│ ├── ready.json # Task queues
|
|
43
43
|
│ ├── app-map.md # Component registry
|
|
@@ -81,9 +81,11 @@ Check `.workflow/config.json` and adjust settings:
|
|
|
81
81
|
"strictMode": true,
|
|
82
82
|
"requireStoryForMediumTasks": true
|
|
83
83
|
},
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
|
|
84
|
+
"execution": {
|
|
85
|
+
"loops": {
|
|
86
|
+
"enforced": true,
|
|
87
|
+
"maxRetries": 5
|
|
88
|
+
}
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
91
|
```
|
|
@@ -125,8 +127,8 @@ The installer creates a balanced config:
|
|
|
125
127
|
| Setting | Default | Purpose |
|
|
126
128
|
|---------|---------|---------|
|
|
127
129
|
| `enforcement.strictMode` | `true` | Require tasks for implementation |
|
|
128
|
-
| `loops.enforced` | `true` | Enable self-completing loops |
|
|
129
|
-
| `loops.maxRetries` | `5` | Retry failed verifications |
|
|
130
|
+
| `execution.loops.enforced` | `true` | Enable self-completing loops |
|
|
131
|
+
| `execution.loops.maxRetries` | `5` | Retry failed verifications |
|
|
130
132
|
| `durableSteps.enabled` | `true` | Enable crash recovery |
|
|
131
133
|
| `autoLog` | `true` | Auto-log changes |
|
|
132
134
|
| `autoUpdateAppMap` | `true` | Auto-update component registry |
|
|
@@ -169,12 +169,12 @@ From known issues:
|
|
|
169
169
|
{
|
|
170
170
|
"tasks": [
|
|
171
171
|
{
|
|
172
|
-
"id": "
|
|
172
|
+
"id": "wf-a1b2c3d4",
|
|
173
173
|
"title": "Login sometimes fails on slow connections",
|
|
174
174
|
"type": "bugfix"
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
|
-
"id": "
|
|
177
|
+
"id": "wf-b2c3d4e5",
|
|
178
178
|
"title": "Dashboard needs performance optimization",
|
|
179
179
|
"type": "refactor"
|
|
180
180
|
}
|
|
@@ -242,7 +242,7 @@ Edit files to add:
|
|
|
242
242
|
### 5. Start Working
|
|
243
243
|
|
|
244
244
|
```bash
|
|
245
|
-
/wogi-start
|
|
245
|
+
/wogi-start wf-a1b2c3d4
|
|
246
246
|
```
|
|
247
247
|
|
|
248
248
|
---
|
|
@@ -288,12 +288,15 @@ This helps local LLMs understand your project structure.
|
|
|
288
288
|
|
|
289
289
|
### Components Not Detected
|
|
290
290
|
|
|
291
|
-
Check directory patterns in config:
|
|
291
|
+
Check directory patterns in the `registries` array in config:
|
|
292
292
|
```json
|
|
293
293
|
{
|
|
294
|
-
"
|
|
295
|
-
|
|
296
|
-
|
|
294
|
+
"registries": [
|
|
295
|
+
{
|
|
296
|
+
"type": "component",
|
|
297
|
+
"directories": ["src/components", "src/hooks", "src/services"]
|
|
298
|
+
}
|
|
299
|
+
]
|
|
297
300
|
}
|
|
298
301
|
```
|
|
299
302
|
|
|
@@ -45,7 +45,7 @@ User: "Add a login button"
|
|
|
45
45
|
┌─────────────────────────────────────────┐
|
|
46
46
|
│ Does task exist in ready.json? │
|
|
47
47
|
├─────────────────────────────────────────┤
|
|
48
|
-
│ YES → /wogi-start
|
|
48
|
+
│ YES → /wogi-start wf-XXXXXXXX │
|
|
49
49
|
│ NO → Assess size first │
|
|
50
50
|
└─────────────────────────────────────────┘
|
|
51
51
|
```
|
|
@@ -102,7 +102,7 @@ Stories define acceptance criteria that drive the execution loop.
|
|
|
102
102
|
This generates a structured story:
|
|
103
103
|
|
|
104
104
|
```markdown
|
|
105
|
-
# [
|
|
105
|
+
# [wf-a1b2c3d4] Add user authentication
|
|
106
106
|
|
|
107
107
|
## User Story
|
|
108
108
|
**As a** user
|
|
@@ -136,7 +136,7 @@ This generates a structured story:
|
|
|
136
136
|
1. Story is created with proposed acceptance criteria
|
|
137
137
|
2. User reviews and approves (or modifies)
|
|
138
138
|
3. Task is added to `ready.json` with criteria attached
|
|
139
|
-
4. `/wogi-start
|
|
139
|
+
4. `/wogi-start wf-XXXXXXXX` uses criteria to drive loop
|
|
140
140
|
|
|
141
141
|
---
|
|
142
142
|
|
|
@@ -170,13 +170,13 @@ Original story: "Add user authentication"
|
|
|
170
170
|
|
|
171
171
|
Decomposed tasks:
|
|
172
172
|
```
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
173
|
+
wf-a1b2c3d4-01: Create AuthService with login/logout methods
|
|
174
|
+
wf-a1b2c3d4-02: Create LoginForm component
|
|
175
|
+
wf-a1b2c3d4-03: Add form validation with error states
|
|
176
|
+
wf-a1b2c3d4-04: Handle loading state during auth
|
|
177
|
+
wf-a1b2c3d4-05: Add error handling for failed auth
|
|
178
|
+
wf-a1b2c3d4-06: Integrate with existing routing
|
|
179
|
+
wf-a1b2c3d4-07: Add session persistence
|
|
180
180
|
```
|
|
181
181
|
|
|
182
182
|
### Configuration Options
|
|
@@ -238,8 +238,8 @@ For complex tasks, analyze multiple implementation approaches before committing.
|
|
|
238
238
|
| `/wogi-story "title"` | Create story with acceptance criteria |
|
|
239
239
|
| `/wogi-story "title" --deep` | Create story with forced decomposition |
|
|
240
240
|
| `/wogi-ready` | Show available tasks |
|
|
241
|
-
| `/wogi-start
|
|
242
|
-
| `/wogi-deps
|
|
241
|
+
| `/wogi-start wf-XXXXXXXX` | Start executing a task |
|
|
242
|
+
| `/wogi-deps wf-XXXXXXXX` | Show task dependencies |
|
|
243
243
|
|
|
244
244
|
---
|
|
245
245
|
|
|
@@ -55,18 +55,20 @@ The execution loop is the core mechanism that ensures task completion. When enab
|
|
|
55
55
|
|
|
56
56
|
```json
|
|
57
57
|
{
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
58
|
+
"execution": {
|
|
59
|
+
"maxIterations": 20,
|
|
60
|
+
"maxRetries": 5,
|
|
61
61
|
"blockExitUntilComplete": true,
|
|
62
|
-
"requireVerification": true, // Must verify each criterion
|
|
63
|
-
"blockOnSkip": true, // Cannot skip without approval
|
|
64
|
-
"maxRetries": 5, // Failed verification retries
|
|
65
|
-
"maxIterations": 20, // Total loop cycles
|
|
66
|
-
"commitEvery": 3, // Checkpoint commits
|
|
67
|
-
"pauseBetweenScenarios": false,
|
|
68
62
|
"autoInferVerification": true,
|
|
69
|
-
"
|
|
63
|
+
"loops": {
|
|
64
|
+
"enabled": true,
|
|
65
|
+
"enforced": true,
|
|
66
|
+
"requireVerification": true,
|
|
67
|
+
"blockOnSkip": true,
|
|
68
|
+
"commitEvery": 3,
|
|
69
|
+
"pauseBetweenScenarios": false,
|
|
70
|
+
"fallbackToManual": true
|
|
71
|
+
}
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
74
|
```
|
|
@@ -106,7 +108,7 @@ Durable sessions persist:
|
|
|
106
108
|
1. **Task Start**: Creates `durable-session.json` with all steps
|
|
107
109
|
2. **Step Execution**: Updates step status after each action
|
|
108
110
|
3. **Interruption**: Session persists on disk
|
|
109
|
-
4. **Resume**: `/wogi-start
|
|
111
|
+
4. **Resume**: `/wogi-start wf-XXXXXXXX` detects existing session
|
|
110
112
|
5. **Completion**: Session archived for learning
|
|
111
113
|
|
|
112
114
|
### Configuration
|
|
@@ -114,10 +116,7 @@ Durable sessions persist:
|
|
|
114
116
|
```json
|
|
115
117
|
{
|
|
116
118
|
"durableSteps": {
|
|
117
|
-
"enabled": true
|
|
118
|
-
"autoResume": true, // Auto-resume on restart
|
|
119
|
-
"checkSuspensionsOnStart": true,
|
|
120
|
-
"defaultMaxAttempts": 5
|
|
119
|
+
"enabled": true
|
|
121
120
|
}
|
|
122
121
|
}
|
|
123
122
|
```
|
|
@@ -126,7 +125,7 @@ Durable sessions persist:
|
|
|
126
125
|
|
|
127
126
|
```json
|
|
128
127
|
{
|
|
129
|
-
"taskId": "
|
|
128
|
+
"taskId": "wf-a1b2c3d4",
|
|
130
129
|
"taskType": "task",
|
|
131
130
|
"startedAt": "2024-01-15T10:30:00Z",
|
|
132
131
|
"steps": [
|
|
@@ -155,7 +154,7 @@ Durable sessions persist:
|
|
|
155
154
|
|
|
156
155
|
```bash
|
|
157
156
|
# Normal start detects existing session
|
|
158
|
-
/wogi-start
|
|
157
|
+
/wogi-start wf-a1b2c3d4
|
|
159
158
|
# Output: "🔄 Resuming from durable session (3/7 steps completed)"
|
|
160
159
|
|
|
161
160
|
# Force resume after suspension
|
|
@@ -185,10 +184,7 @@ For tasks that require waiting (external reviews, CI runs, etc.), suspend/resume
|
|
|
185
184
|
```json
|
|
186
185
|
{
|
|
187
186
|
"suspension": {
|
|
188
|
-
"enabled": true
|
|
189
|
-
"pollIntervalSeconds": 60, // How often to check poll conditions
|
|
190
|
-
"maxPollAttempts": 120, // Max checks before timeout
|
|
191
|
-
"reminderAfterHours": 24 // Remind about suspended tasks
|
|
187
|
+
"enabled": true
|
|
192
188
|
}
|
|
193
189
|
}
|
|
194
190
|
```
|
|
@@ -233,13 +229,13 @@ flow suspend --poll \
|
|
|
233
229
|
|
|
234
230
|
## Hybrid Mode
|
|
235
231
|
|
|
236
|
-
Hybrid mode uses a local LLM for execution while Claude plans,
|
|
232
|
+
Hybrid mode uses a local LLM for execution while Claude plans, with configurable token savings depending on model and task complexity.
|
|
237
233
|
|
|
238
234
|
### The Trade-off
|
|
239
235
|
|
|
240
236
|
| Aspect | Claude Only | Hybrid Mode |
|
|
241
237
|
|--------|-------------|-------------|
|
|
242
|
-
| Token Cost | 100% |
|
|
238
|
+
| Token Cost | 100% | Reduced (varies by model) |
|
|
243
239
|
| Code Quality | Highest | Good (varies by model) |
|
|
244
240
|
| Speed | Fast | Depends on hardware |
|
|
245
241
|
| Context | Full | Limited to prompt |
|
|
@@ -256,9 +252,10 @@ Hybrid mode uses a local LLM for execution while Claude plans, saving 85-95% of
|
|
|
256
252
|
|
|
257
253
|
```json
|
|
258
254
|
{
|
|
259
|
-
"
|
|
260
|
-
"
|
|
261
|
-
|
|
255
|
+
"models": {
|
|
256
|
+
"hybrid": {
|
|
257
|
+
"enabled": true,
|
|
258
|
+
"executor": {
|
|
262
259
|
"type": "local", // "local" | "cloud"
|
|
263
260
|
"provider": "ollama", // "ollama" | "lmstudio" | "openai" | etc.
|
|
264
261
|
"providerEndpoint": "http://localhost:11434",
|
|
@@ -268,12 +265,13 @@ Hybrid mode uses a local LLM for execution while Claude plans, saving 85-95% of
|
|
|
268
265
|
"adaptToExecutor": true, // Adjust plan for model capabilities
|
|
269
266
|
"useAdapterKnowledge": true // Use learned model behaviors
|
|
270
267
|
},
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
268
|
+
"settings": {
|
|
269
|
+
"temperature": 0.7,
|
|
270
|
+
"maxTokens": 4096,
|
|
271
|
+
"maxRetries": 20,
|
|
272
|
+
"timeout": 120000,
|
|
273
|
+
"autoExecute": false
|
|
274
|
+
}
|
|
277
275
|
}
|
|
278
276
|
}
|
|
279
277
|
}
|
|
@@ -318,7 +316,7 @@ flow session stats
|
|
|
318
316
|
# Output:
|
|
319
317
|
# Total sessions: 15
|
|
320
318
|
# Completed: 14
|
|
321
|
-
# Avg tokens saved:
|
|
319
|
+
# Avg tokens saved: varies by model
|
|
322
320
|
```
|
|
323
321
|
|
|
324
322
|
---
|
|
@@ -331,16 +329,10 @@ Execute independent tasks simultaneously using git worktrees.
|
|
|
331
329
|
|
|
332
330
|
```json
|
|
333
331
|
{
|
|
334
|
-
"
|
|
335
|
-
"
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
"requireWorktree": true, // Isolate in worktrees
|
|
339
|
-
"showProgress": true,
|
|
340
|
-
"autoDetect": true, // Detect parallelizable tasks
|
|
341
|
-
"autoSuggest": true, // Suggest when beneficial
|
|
342
|
-
"autoExecute": false, // Require approval
|
|
343
|
-
"minTasksForParallel": 2
|
|
332
|
+
"parallelExecution": {
|
|
333
|
+
"parallel": {
|
|
334
|
+
"enabled": true
|
|
335
|
+
}
|
|
344
336
|
}
|
|
345
337
|
}
|
|
346
338
|
```
|
|
@@ -357,7 +349,7 @@ Execute independent tasks simultaneously using git worktrees.
|
|
|
357
349
|
|
|
358
350
|
```bash
|
|
359
351
|
# Suggest parallel execution
|
|
360
|
-
/wogi-bulk
|
|
352
|
+
/wogi-bulk wf-a1b2c3d4 wf-b2c3d4e5 wf-c3d4e5f6
|
|
361
353
|
|
|
362
354
|
# Check parallel status
|
|
363
355
|
flow parallel status
|
|
@@ -378,7 +370,7 @@ node scripts/flow-task-enforcer.js status
|
|
|
378
370
|
|
|
379
371
|
# Output:
|
|
380
372
|
# 📊 Active Loop Session
|
|
381
|
-
# Task:
|
|
373
|
+
# Task: wf-a1b2c3d4
|
|
382
374
|
# Iteration: 3
|
|
383
375
|
# Retries: 1
|
|
384
376
|
#
|
|
@@ -24,9 +24,8 @@ Auto-inference automatically verifies certain types of criteria without manual c
|
|
|
24
24
|
|
|
25
25
|
```json
|
|
26
26
|
{
|
|
27
|
-
"
|
|
28
|
-
"autoInferVerification": true
|
|
29
|
-
"fallbackToManual": true // Ask user if can't infer
|
|
27
|
+
"execution": {
|
|
28
|
+
"autoInferVerification": true
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
31
|
```
|
|
@@ -126,7 +125,7 @@ The `smokeTest` gate ensures basic functionality still works after refactoring.
|
|
|
126
125
|
|
|
127
126
|
### Gate Execution
|
|
128
127
|
|
|
129
|
-
When
|
|
128
|
+
When task completion runs (automatically via `/wogi-start`):
|
|
130
129
|
|
|
131
130
|
```
|
|
132
131
|
Running quality gates...
|
|
@@ -146,7 +145,7 @@ If a gate fails:
|
|
|
146
145
|
1. Error output is captured
|
|
147
146
|
2. Failure details saved to `.workflow/state/last-failure.json`
|
|
148
147
|
3. Task completion is blocked
|
|
149
|
-
4. Fix issues and retry
|
|
148
|
+
4. Fix issues and retry
|
|
150
149
|
|
|
151
150
|
```
|
|
152
151
|
Running quality gates...
|
|
@@ -181,8 +180,8 @@ Run validation commands after file edits or before commits.
|
|
|
181
180
|
"afterFileEdit": {
|
|
182
181
|
"enabled": true,
|
|
183
182
|
"commands": {
|
|
184
|
-
"*.ts": ["
|
|
185
|
-
"*.tsx": ["
|
|
183
|
+
"*.ts": ["npm run type-check"],
|
|
184
|
+
"*.tsx": ["npm run type-check", "npx eslint {file} --fix"],
|
|
186
185
|
"*.js": ["npx eslint {file} --fix"],
|
|
187
186
|
"*.jsx": ["npx eslint {file} --fix"]
|
|
188
187
|
},
|