@dv.nghiem/flowdeck 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +1 -1
  2. package/dist/agents/auto-learner.d.ts +3 -0
  3. package/dist/agents/auto-learner.d.ts.map +1 -0
  4. package/dist/agents/index.d.ts +12 -9
  5. package/dist/agents/index.d.ts.map +1 -1
  6. package/dist/agents/orchestrator.d.ts.map +1 -1
  7. package/dist/agents/planner.d.ts +1 -0
  8. package/dist/agents/planner.d.ts.map +1 -1
  9. package/dist/agents/types.d.ts +1 -1
  10. package/dist/agents/types.d.ts.map +1 -1
  11. package/dist/config/index.d.ts +3 -0
  12. package/dist/config/index.d.ts.map +1 -0
  13. package/dist/config/loader.d.ts +7 -0
  14. package/dist/config/loader.d.ts.map +1 -0
  15. package/dist/config/schema.d.ts +21 -0
  16. package/dist/config/schema.d.ts.map +1 -0
  17. package/dist/hooks/auto-learn-hook.d.ts +20 -0
  18. package/dist/hooks/auto-learn-hook.d.ts.map +1 -0
  19. package/dist/hooks/guard-rails.d.ts.map +1 -1
  20. package/dist/hooks/orchestrator-guard-hook.d.ts +29 -0
  21. package/dist/hooks/orchestrator-guard-hook.d.ts.map +1 -0
  22. package/dist/hooks/session-events.d.ts.map +1 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +3285 -119
  25. package/dist/lib/logger.d.ts +20 -0
  26. package/dist/lib/logger.d.ts.map +1 -0
  27. package/dist/tools/create-skill.d.ts +3 -0
  28. package/dist/tools/create-skill.d.ts.map +1 -0
  29. package/dist/tools/reflect.d.ts +3 -0
  30. package/dist/tools/reflect.d.ts.map +1 -0
  31. package/docs/agents.md +14 -62
  32. package/docs/commands.md +1 -1
  33. package/docs/configuration.md +80 -1
  34. package/docs/quick-start.md +1 -1
  35. package/docs/skills.md +1 -1
  36. package/docs/workflows.md +14 -14
  37. package/package.json +2 -2
  38. package/src/commands/fd-learn.md +36 -0
  39. package/src/commands/fd-reflect.md +30 -0
  40. package/src/rules/common/agent-orchestration.md +2 -4
  41. package/src/workflows/execute-phase.md +17 -14
  42. package/src/workflows/plan-flow.md +2 -2
  43. package/src/workflows/plan-phase.md +12 -12
  44. package/dist/agents/flowdeck.d.ts +0 -5
  45. package/dist/agents/flowdeck.d.ts.map +0 -1
@@ -0,0 +1,20 @@
1
+ export interface LogEntry {
2
+ timestamp: string;
3
+ level: "info" | "warn" | "error" | "block";
4
+ source: string;
5
+ message: string;
6
+ }
7
+ /**
8
+ * Get the log file path for a given directory.
9
+ */
10
+ export declare function logPath(directory: string): string;
11
+ /**
12
+ * Write a log entry to .opencode/flowdeck.log
13
+ * Does NOT write to stdout - avoids overwriting OpenCode input box.
14
+ */
15
+ export declare function logWrite(directory: string, level: LogEntry["level"], source: string, message: string): void;
16
+ /**
17
+ * Read recent log entries from .opencode/flowdeck.log
18
+ */
19
+ export declare function logRead(directory: string, maxEntries?: number): LogEntry[];
20
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjD;AAWD;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CAgBN;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,QAAQ,EAAE,CAuBtE"}
@@ -0,0 +1,3 @@
1
+ import { type ToolDefinition } from "@opencode-ai/plugin";
2
+ export declare const createSkillTool: ToolDefinition;
3
+ //# sourceMappingURL=create-skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-skill.d.ts","sourceRoot":"","sources":["../../src/tools/create-skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAO/D,eAAO,MAAM,eAAe,EAAE,cAgD5B,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { type ToolDefinition } from "@opencode-ai/plugin";
2
+ export declare const reflectTool: ToolDefinition;
3
+ //# sourceMappingURL=reflect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../../src/tools/reflect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAY/D,eAAO,MAAM,WAAW,EAAE,cA8DxB,CAAA"}
package/docs/agents.md CHANGED
@@ -25,9 +25,8 @@ Agents are installed to `~/.config/opencode/agent/`. OpenCode loads them automat
25
25
  | [@debug-specialist](#debug-specialist) | Root cause analysis via hypothesis-driven investigation | Deep bugs that require systematic tracing |
26
26
  | [@discusser](#discusser) | Structured requirements Q&A, one question at a time | Starting new projects, defining feature scope |
27
27
  | [@doc-updater](#doc-updater) | Keeps documentation in sync with code changes | Post-implementation doc maintenance |
28
- | [@flowdeck-executor](#flowdeck-executor) | Step-by-step plan execution with atomic commits and state tracking | Executing confirmed PLAN.md files |
29
- | [@flowdeck-plan-checker](#flowdeck-plan-checker) | Validates plans before execution for completeness and feasibility | Quality gate before running a plan |
30
- | [@flowdeck-planner](#flowdeck-planner) | Creates detailed, wave-structured implementation plans | Creating execution-ready PLAN.md files |
28
+ | [@plan-checker](#plan-checker) | Validates plans before execution for completeness and feasibility | Quality gate before running a plan |
29
+ | [@planner](#planner) | Creates detailed, wave-structured implementation plans | Creating execution-ready PLAN.md files |
31
30
  | [@mapper](#mapper) | Maps codebase to `.codebase/` structured documentation | Producing STACK.md, ARCHITECTURE.md, CONVENTIONS.md, and more |
32
31
  | [@multi-repo-coordinator](#multi-repo-coordinator) | Cross-repo dependency graphs, change propagation, ordered CHANGE PLANs | Features spanning multiple microservices |
33
32
  | [@orchestrator](#orchestrator) | Coordinates multi-agent workflows, phase gating, go/no-go decisions | End-to-end feature delivery |
@@ -64,7 +63,7 @@ The architect designs systems before anyone writes code. It reads existing archi
64
63
  Read .codebase/ARCHITECTURE.md first. Save the ADR to .planning/adr/.
65
64
  ```
66
65
 
67
- **Works with:** `@coder` (consumes interface contracts), `@flowdeck-planner` (uses ADRs as planning input), `@multi-repo-coordinator` (defines contract-first change specs)
66
+ **Works with:** `@coder` (consumes interface contracts), `@planner` (uses ADRs as planning input), `@multi-repo-coordinator` (defines contract-first change specs)
68
67
 
69
68
  ---
70
69
 
@@ -158,7 +157,7 @@ The debug specialist finds root causes through systematic investigation — neve
158
157
 
159
158
  ### @discusser
160
159
 
161
- The discusser extracts clear requirements through focused, one-at-a-time questioning. It never asks two questions in a single turn. Every decision is numbered (D-01, D-02, ...) and recorded with its rationale. If a new answer conflicts with a previous decision, it flags the conflict immediately and presents options. All decisions are saved to `.planning/phases/phase-N/DISCUSS.md` in a format that `@flowdeck-planner` can trace back to individual tasks.
160
+ The discusser extracts clear requirements through focused, one-at-a-time questioning. It never asks two questions in a single turn. Every decision is numbered (D-01, D-02, ...) and recorded with its rationale. If a new answer conflicts with a previous decision, it flags the conflict immediately and presents options. All decisions are saved to `.planning/phases/phase-N/DISCUSS.md` in a format that `@planner` can trace back to individual tasks.
162
161
 
163
162
  **Model:** `anthropic/claude-sonnet-4-5`
164
163
 
@@ -174,7 +173,7 @@ The discusser extracts clear requirements through focused, one-at-a-time questio
174
173
  to nail down the requirements. One question at a time.
175
174
  ```
176
175
 
177
- **Works with:** `@flowdeck-planner` (uses DISCUSS.md as plan input), `@orchestrator` (manages the discuss phase), `@planner` (alternative for lighter planning workflows)
176
+ **Works with:** `@planner` (uses DISCUSS.md as plan input), `@orchestrator` (manages the discuss phase), `@planner` (alternative for lighter planning workflows)
178
177
 
179
178
  ---
180
179
 
@@ -200,31 +199,9 @@ The doc updater synchronizes documentation with the current implementation after
200
199
 
201
200
  ---
202
201
 
203
- ### @flowdeck-executor
202
+ ### @plan-checker
204
203
 
205
- The flowdeck executor runs confirmed PLAN.md files with discipline. It reads STATE.md, the active PLAN.md, and PROJECT.md before executing any task. Each task gets an atomic commit with a conventional commit message. If reality diverges from the plan, it documents the deviation in a `## Deviations` section rather than silently doing something different. After all tasks complete, it writes a SUMMARY.md with delivered items, verified success criteria, and deviations.
206
-
207
- **Model:** `anthropic/claude-sonnet-4-5`
208
-
209
- **Best for:**
210
- - Executing a confirmed phase plan step by step with checkpointed state
211
- - Ensuring every task in a plan is committed atomically before moving to the next
212
- - Documenting deviations from the plan without abandoning it
213
- - Generating a SUMMARY.md that makes the phase reviewable by humans
214
-
215
- **Example usage:**
216
- ```
217
- @flowdeck-executor Execute phase 2. Read STATE.md for the active plan path.
218
- Checkpoint after each task and document any deviations.
219
- ```
220
-
221
- **Works with:** `@orchestrator` (gates execution and manages phase state), `@flowdeck-plan-checker` (validates the plan before this agent runs), `@coder` (delegates implementation tasks)
222
-
223
- ---
224
-
225
- ### @flowdeck-plan-checker
226
-
227
- The flowdeck plan checker reviews a PLAN.md before execution and returns a scored PASS or FAIL verdict. It checks three dimensions: completeness (all requirements from DISCUSS.md are covered, every task has a defined scope and success criteria), feasibility (no task exceeds 3 hours, no circular dependencies, no assumed capabilities that don't exist), and testability (each success criterion is observable, edge cases are addressed, verification commands are specified). A score of 8–10 earns PASS, 6–7 earns PASS_WITH_NOTES, and 0–5 earns FAIL.
204
+ The plan checker reviews a PLAN.md before execution and returns a scored PASS or FAIL verdict. It checks three dimensions: completeness (all requirements from DISCUSS.md are covered, every task has a defined scope and success criteria), feasibility (no task exceeds 3 hours, no circular dependencies, no assumed capabilities that don't exist), and testability (each success criterion is observable, edge cases are addressed, verification commands are specified). A score of 8–10 earns PASS, 6–7 earns PASS_WITH_NOTES, and 0–5 earns FAIL.
228
205
 
229
206
  **Model:** `anthropic/claude-sonnet-4-5`
230
207
 
@@ -236,36 +213,11 @@ The flowdeck plan checker reviews a PLAN.md before execution and returns a score
236
213
 
237
214
  **Example usage:**
238
215
  ```
239
- @flowdeck-plan-checker Review .planning/phases/phase-1/PLAN.md. Score it and return
240
- PASS or FAIL with specific recommendations for any failures.
241
- ```
242
-
243
- **Works with:** `@flowdeck-planner` (generates the plan this agent reviews), `@orchestrator` (receives the verdict and decides whether to proceed), `@flowdeck-executor` (runs the plan only after this agent passes it)
244
-
245
- ---
246
-
247
- ### @flowdeck-planner
248
-
249
- The flowdeck planner creates execution-ready PLAN.md files with wave-structured task breakdown. Every task is scoped to specific files, sized to fit within 3 hours, and paired with a verifiable success criterion. Tasks are grouped into waves based on their dependency graph — Wave 1 contains foundation work that can run in parallel, Wave 2 gates on Wave 1, and so on. Every task traces back to a requirement from DISCUSS.md or REQUIREMENTS.md.
250
-
251
- **Model:** `anthropic/claude-sonnet-4-5`
252
-
253
- **Best for:**
254
- - Creating a PLAN.md for a new feature phase from DISCUSS.md decisions
255
- - Decomposing requirements into file-level tasks with explicit wave ordering
256
- - Building a dependency graph that maximizes parallel execution
257
- - Producing a plan that `@flowdeck-plan-checker` will score PASS on the first review
258
-
259
- **Example usage:**
260
- ```
261
- @flowdeck-planner Create a PLAN.md for phase 1 using the decisions in
262
- .planning/phases/phase-1/DISCUSS.md. Group tasks into waves.
263
- Save to .planning/phases/phase-1/PLAN.md.
216
+ @plan-checker Review .planning/phases/phase-1/PLAN.md. Score it and return
217
+ PASS or FAIL with specific recommendations for any failures.
264
218
  ```
265
219
 
266
- **Works with:** `@flowdeck-plan-checker` (reviews the plan this agent creates), `@flowdeck-executor` (runs the plan), `@orchestrator` (triggers this agent via the `/fd-plan` command)
267
-
268
- ---
220
+ **Works with:** `@planner` (generates the plan this agent reviews), `@orchestrator` (receives the verdict and decides whether to proceed)
269
221
 
270
222
  ### @mapper
271
223
 
@@ -330,7 +282,7 @@ The orchestrator coordinates multi-agent execution for feature delivery. At star
330
282
  phase. Delegate incomplete steps in order and mark each complete.
331
283
  ```
332
284
 
333
- **Works with:** `@flowdeck-executor` (executes plan steps), `@flowdeck-plan-checker` (validates plans before execution), `@parallel-coordinator` (delegates parallel waves)
285
+ **Works with:** `@orchestrator` (executes plan steps), `@plan-checker` (validates plans before execution), `@parallel-coordinator` (delegates parallel waves)
334
286
 
335
287
  ---
336
288
 
@@ -397,7 +349,7 @@ The planner creates detailed, file-level implementation plans with an explicit u
397
349
  Pause for my confirmation before we proceed.
398
350
  ```
399
351
 
400
- **Works with:** `@architect` (provides interface contracts and ADRs that feed the plan), `@coder` (executes the confirmed plan), `@flowdeck-planner` (alternative for structured FlowDeck plan format)
352
+ **Works with:** `@architect` (provides interface contracts and ADRs that feed the plan), `@coder` (executes the confirmed plan), `@planner` (alternative for structured FlowDeck plan format)
401
353
 
402
354
  ---
403
355
 
@@ -500,7 +452,7 @@ The task splitter decomposes complex tasks into independent parallel workstreams
500
452
  - Breaking a large feature into parallel workstreams before handing off to `@parallel-coordinator`
501
453
  - Identifying which tasks must be serial (dependency gates) versus truly independent
502
454
  - Sizing and scoping tasks so each fits within a single agent session
503
- - Producing a wave plan when `@flowdeck-planner` is unavailable or overkill
455
+ - Producing a wave plan when `@planner` is unavailable or overkill
504
456
 
505
457
  **Example usage:**
506
458
  ```
@@ -509,7 +461,7 @@ The task splitter decomposes complex tasks into independent parallel workstreams
509
461
  Produce a WAVE TABLE with agent assignments.
510
462
  ```
511
463
 
512
- **Works with:** `@parallel-coordinator` (executes the wave plan produced by this agent), `@orchestrator` (uses task breakdown to coordinate execution), `@flowdeck-planner` (complementary — planner creates PLAN.md format, splitter focuses on parallelization)
464
+ **Works with:** `@parallel-coordinator` (executes the wave plan produced by this agent), `@orchestrator` (uses task breakdown to coordinate execution), `@planner` (complementary — planner creates PLAN.md format, splitter focuses on parallelization)
513
465
 
514
466
  ---
515
467
 
package/docs/commands.md CHANGED
@@ -97,7 +97,7 @@ Commands are slash commands registered in OpenCode. Run them by typing `/command
97
97
  **What it does:**
98
98
  1. Reads `.planning/phases/phase-N/DISCUSS.md` for decisions and requirements
99
99
  2. Invokes `@planner`, which produces a detailed `PLAN.md` with tasks, dependencies, file paths, and acceptance criteria
100
- 3. Invokes `@flowdeck-plan-checker` to validate the plan for completeness, contradiction, and missing edge cases
100
+ 3. Invokes `@plan-checker` to validate the plan for completeness, contradiction, and missing edge cases
101
101
  4. Displays the plan and any checker feedback
102
102
  5. Prompts: **type `CONFIRMED` to accept the plan and write it to disk**
103
103
  6. On confirmation, saves `.planning/phases/phase-N/PLAN.md` and updates `STATE.md`
@@ -137,7 +137,7 @@ Each FlowDeck project stores its settings in `.planning/config.json`. This file
137
137
  | `workspace_mode` | `"single"` \| `"multi"` | `"single"` for one repo; `"multi"` enables the multi-repo coordinator |
138
138
  | `active_phase` | integer | The current phase number. `@orchestrator` reads this to determine which plan to execute |
139
139
  | `plan_confirmed` | boolean | Set to `true` when you type `CONFIRMED` after `/fd-plan`. Guards against unreviewed execution |
140
- | `enforce_guardrails` | boolean | When `true`, the `@flowdeck-plan-checker` must approve a plan before `@flowdeck-executor` runs it |
140
+ | `enforce_guardrails` | boolean | When `true`, the `@plan-checker` must approve a plan before `@orchestrator` runs it |
141
141
  | `sub_repos` | array | List of additional repositories involved in this project (multi-repo mode only) |
142
142
  | `sub_repos[].name` | string | Short identifier used in cross-repo task delegation |
143
143
  | `sub_repos[].path` | string | Relative or absolute path to the repository on disk |
@@ -147,6 +147,85 @@ Each FlowDeck project stores its settings in `.planning/config.json`. This file
147
147
 
148
148
  ---
149
149
 
150
+ ## flowdeck.json (Agent Model Overrides)
151
+
152
+ The `flowdeck.json` file lets you assign specific AI models to individual FlowDeck agents. This is useful when you want the `@planner` to use a more capable model while lighter agents like `@tester` use a faster, cheaper one.
153
+
154
+ ### Locations
155
+
156
+ | Scope | Path |
157
+ |-------|------|
158
+ | Global | `~/.config/opencode/flowdeck.json` |
159
+ | Project | `<project>/.opencode/flowdeck.json` |
160
+
161
+ Project config takes precedence over global config.
162
+
163
+ ### Schema
164
+
165
+ ```json
166
+ {
167
+ "agents": {
168
+ "<agent-name>": {
169
+ "model": "<provider>/<model-id>"
170
+ }
171
+ }
172
+ }
173
+ ```
174
+
175
+ ### Supported Agents
176
+
177
+ | Agent | Default Model | Override Example |
178
+ |-------|--------------|-----------------|
179
+ | `@architect` | `claude-opus-4-5` | `anthropic/claude-opus-4-5` |
180
+ | `@build-error-resolver` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
181
+ | `@code-explorer` | `claude-haiku-4-5` | `anthropic/claude-haiku-4-5` |
182
+ | `@coder` | `claude-opus-4-5` | `anthropic/claude-opus-4-5` |
183
+ | `@debug-specialist` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
184
+ | `@discusser` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
185
+ | `@doc-updater` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
186
+ | `@orchestrator` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
187
+ | `@plan-checker` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
188
+ | `@planner` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
189
+ | `@mapper` | `gemini-2.5-flash` | `google/gemini-2.5-flash` |
190
+ | `@multi-repo-coordinator` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
191
+ | `@orchestrator` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
192
+ | `@parallel-coordinator` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
193
+ | `@performance-optimizer` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
194
+ | `@planner` | `claude-opus-4-5` | `anthropic/claude-opus-4-5` |
195
+ | `@refactor-guide` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
196
+ | `@researcher` | `gpt-4o` | `openai/gpt-4o` |
197
+ | `@reviewer` | `gemini-2.5-flash` | `google/gemini-2.5-flash` |
198
+ | `@security-auditor` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
199
+ | `@task-splitter` | `claude-sonnet-4-5` | `anthropic/claude-sonnet-4-5` |
200
+ | `@tester` | `claude-haiku-4-5` | `anthropic/claude-haiku-4-5` |
201
+ | `@writer` | `claude-haiku-4-5` | `anthropic/claude-haiku-4-5` |
202
+
203
+ ### Example
204
+
205
+ ```json
206
+ {
207
+ "agents": {
208
+ "planner": {
209
+ "model": "anthropic/claude-opus-4-5"
210
+ },
211
+ "orchestrator": {
212
+ "model": "anthropic/claude-sonnet-4-5"
213
+ },
214
+ "tester": {
215
+ "model": "anthropic/claude-haiku-4-5"
216
+ }
217
+ }
218
+ }
219
+ ```
220
+
221
+ ### Notes
222
+
223
+ - If an agent is not listed in `agents`, it uses the model currently selected in OpenCode.
224
+ - Only list agents you want to override — omitted agents inherit the session default.
225
+ - Model strings must match the format `provider/model-id` (e.g., `anthropic/claude-sonnet-4-5`).
226
+
227
+ ---
228
+
150
229
  ## Settings Command
151
230
 
152
231
  To view or modify project configuration interactively, run inside an OpenCode session:
@@ -98,7 +98,7 @@ With requirements captured, generate the plan:
98
98
  /fd-plan 1
99
99
  ```
100
100
 
101
- `@flowdeck-planner` reads `DISCUSS.md` and produces a wave-structured `PLAN.md` in `.planning/phases/phase-1/`. Then `@flowdeck-plan-checker` reviews it for quality — checking that task sizes are reasonable, success criteria are specific, and wave dependencies are correct.
101
+ `@planner` reads `DISCUSS.md` and produces a wave-structured `PLAN.md` in `.planning/phases/phase-1/`. Then `@plan-checker` reviews it for quality — checking that task sizes are reasonable, success criteria are specific, and wave dependencies are correct.
102
102
 
103
103
  You are shown the plan and prompted for confirmation. **Type `CONFIRMED` to allow execution to proceed.** Review carefully before confirming:
104
104
 
package/docs/skills.md CHANGED
@@ -35,7 +35,7 @@ For example: `@tester use the tdd-workflow skill to add tests for the payments m
35
35
  | `multi-repo` | Cross-repo dependency graphs, contract-first changes, ordered rollouts | `@multi-repo-coordinator`, `@architect` |
36
36
  | `parallel-execute` | Wave-based parallel task coordination and merge protocol | `@parallel-coordinator`, `@task-splitter` |
37
37
  | `performance-profiling` | Profiling methodology, bottleneck identification, before/after measurement | `@performance-optimizer` |
38
- | `plan-task` | Wave-structured task planning with dependency graph and success criteria | `@planner`, `@flowdeck-planner` |
38
+ | `plan-task` | Wave-structured task planning with dependency graph and success criteria | `@planner`, `@planner` |
39
39
  | `python-patterns` | Python 3.10+: type hints, dataclasses, asyncio, pytest | `@coder`, `@reviewer` |
40
40
  | `refactor-guide` | Safe refactoring: tests-first, one transformation per commit | `@refactor-guide`, `@coder` |
41
41
  | `rust-patterns` | Ownership, traits, async/Tokio, error handling, smart pointers | `@coder`, `@reviewer` |
package/docs/workflows.md CHANGED
@@ -37,10 +37,10 @@ Each step gates the next. `/fd-plan` will not proceed without a confirmed `DISCU
37
37
  | Workflow file | Triggered by | Agents involved |
38
38
  |--------------|-------------|----------------|
39
39
  | `discuss-flow.md` | `/fd-discuss` | `@orchestrator`, `@discusser` |
40
- | `plan-flow.md` | `/fd-plan` | `@orchestrator`, `@flowdeck-planner`, `@flowdeck-plan-checker` |
41
- | `plan-phase.md` | `/fd-plan-phase [N]` | `@flowdeck-planner`, `@flowdeck-plan-checker`, `@orchestrator` |
40
+ | `plan-flow.md` | `/fd-plan` | `@orchestrator`, `@planner`, `@plan-checker` |
41
+ | `plan-phase.md` | `/fd-plan-phase [N]` | `@planner`, `@plan-checker`, `@orchestrator` |
42
42
  | `execute-flow.md` | `/fd-new-feature` | `@orchestrator`, `@coder`, `@reviewer` |
43
- | `execute-phase.md` | `/execute-phase [N]` | `@orchestrator`, `@flowdeck-executor` |
43
+ | `execute-phase.md` | `/execute-phase [N]` | `@orchestrator`, `@orchestrator` |
44
44
  | `fix-bug-flow.md` | `/fd-fix-bug` | `@orchestrator`, `@debug-specialist`, `@researcher`, `@tester`, `@coder`, `@reviewer` |
45
45
  | `debug-flow.md` | `/debug` | `@debug-specialist`, `@tester`, `@coder` |
46
46
  | `review-code-flow.md` | `/fd-review-code` | `@orchestrator`, `@parallel-coordinator`, `@reviewer`, `@researcher`, `@tester` |
@@ -111,15 +111,15 @@ steps:
111
111
 
112
112
  The plan flow creates an execution-ready `PLAN.md` from the decisions in a confirmed `DISCUSS.md`. It starts with a guard check — if `DISCUSS.md` does not exist or is not confirmed, execution stops and the user is directed to run `/fd-discuss` first.
113
113
 
114
- After loading context (`PROJECT.md`, `STATE.md`, `DISCUSS.md`), `@flowdeck-planner` creates a wave-structured `PLAN.md` where every task traces back to a `D-XX` decision. The draft plan is then handed to `@flowdeck-plan-checker`, which scores it for completeness, feasibility, and testability.
114
+ After loading context (`PROJECT.md`, `STATE.md`, `DISCUSS.md`), `@planner` creates a wave-structured `PLAN.md` where every task traces back to a `D-XX` decision. The draft plan is then handed to `@plan-checker`, which scores it for completeness, feasibility, and testability.
115
115
 
116
- A FAIL verdict from `@flowdeck-plan-checker` returns the plan to `@flowdeck-planner` for revision. A PASS (or PASS_WITH_NOTES) causes `@orchestrator` to present the plan to the user. Execution **pauses here** — the plan is not saved until the user explicitly confirms it. After confirmation, the plan is saved to `.planning/phases/phase-N/PLAN.md` and `STATE.md` is updated.
116
+ A FAIL verdict from `@plan-checker` returns the plan to `@planner` for revision. A PASS (or PASS_WITH_NOTES) causes `@orchestrator` to present the plan to the user. Execution **pauses here** — the plan is not saved until the user explicitly confirms it. After confirmation, the plan is saved to `.planning/phases/phase-N/PLAN.md` and `STATE.md` is updated.
117
117
 
118
118
  **Steps:**
119
119
  1. `@orchestrator` — Guard check: verify `DISCUSS.md` exists and is confirmed
120
120
  2. `@orchestrator` — Load `PROJECT.md`, `STATE.md`, `DISCUSS.md`
121
- 3. `@flowdeck-planner` — Create `PLAN.md` with tasks traced to D-XX decisions
122
- 4. `@flowdeck-plan-checker` — Verify completeness, feasibility, testability; return PASS or FAIL
121
+ 3. `@planner` — Create `PLAN.md` with tasks traced to D-XX decisions
122
+ 4. `@plan-checker` — Verify completeness, feasibility, testability; return PASS or FAIL
123
123
  5. `@orchestrator` — Present draft plan for user review
124
124
  6. `@orchestrator` — **PAUSE** — wait for explicit user CONFIRM before saving
125
125
  7. `@orchestrator` — Save confirmed `PLAN.md` to `.planning/phases/phase-N/`
@@ -133,11 +133,11 @@ A FAIL verdict from `@flowdeck-plan-checker` returns the plan to `@flowdeck-plan
133
133
 
134
134
  A focused sub-flow for creating a plan for a specific numbered phase. Unlike `plan-flow`, which drives the full `/fd-plan` command, `plan-phase` is a targeted invocation that takes a phase number as an argument and operates only on that phase's scope.
135
135
 
136
- `@flowdeck-planner` is spawned with the phase's `REQUIREMENTS.md` (or `DISCUSS.md`), `ROADMAP.md`, and `PROJECT.md`. It produces `.planning/phases/phase-N/PLAN.md`. `@flowdeck-plan-checker` then reviews the plan and returns PASS or FAIL with specific recommendations. Results are presented by `@orchestrator`.
136
+ `@planner` is spawned with the phase's `REQUIREMENTS.md` (or `DISCUSS.md`), `ROADMAP.md`, and `PROJECT.md`. It produces `.planning/phases/phase-N/PLAN.md`. `@plan-checker` then reviews the plan and returns PASS or FAIL with specific recommendations. Results are presented by `@orchestrator`.
137
137
 
138
138
  **Steps:**
139
- 1. `@flowdeck-planner` — Create `PLAN.md` for the specified phase
140
- 2. `@flowdeck-plan-checker` — Score plan: completeness, feasibility, testability
139
+ 1. `@planner` — Create `PLAN.md` for the specified phase
140
+ 2. `@plan-checker` — Score plan: completeness, feasibility, testability
141
141
  3. `@orchestrator` — Present PASS/FAIL verdict and recommendations
142
142
 
143
143
  ---
@@ -166,14 +166,14 @@ The execute flow drives full feature delivery. A guard check verifies that `.pla
166
166
 
167
167
  A targeted sub-flow for executing a single numbered phase plan. Before delegating, `@orchestrator` verifies that `.planning/`, `.codebase/`, and `.planning/phases/phase-N/PLAN.md` all exist and that the plan has the `confirmed` status flag.
168
168
 
169
- `@flowdeck-executor` is spawned with `STATE.md`, `PLAN.md`, and `PROJECT.md`. It executes tasks in wave order, committing each atomically. After each task it checkpoints state via the planning-state tool. Deviations from the plan are documented in a `## Deviations` section of `PLAN.md`. After all tasks complete, `@flowdeck-executor` writes `SUMMARY.md` and `@orchestrator` marks the phase complete in `STATE.md` and `ROADMAP.md`.
169
+ `@orchestrator` is spawned with `STATE.md`, `PLAN.md`, and `PROJECT.md`. It executes tasks in wave order, committing each atomically. After each task it checkpoints state via the planning-state tool. Deviations from the plan are documented in a `## Deviations` section of `PLAN.md`. After all tasks complete, `@orchestrator` writes `SUMMARY.md` and `@orchestrator` marks the phase complete in `STATE.md` and `ROADMAP.md`.
170
170
 
171
171
  **Steps:**
172
172
  1. `@orchestrator` — Verify prerequisites: `.planning/`, `.codebase/`, `PLAN.md` confirmed
173
173
  2. `@orchestrator` — Load `PLAN.md`, `STATE.md`, `PROJECT.md`
174
- 3. `@flowdeck-executor` — Execute tasks in wave order; atomic commit per task
175
- 4. `@flowdeck-executor` — Checkpoint state after each task
176
- 5. `@flowdeck-executor` — Write `SUMMARY.md`
174
+ 3. `@orchestrator` — Execute tasks in wave order; atomic commit per task
175
+ 4. `@orchestrator` — Checkpoint state after each task
176
+ 5. `@orchestrator` — Write `SUMMARY.md`
177
177
  6. `@orchestrator` — Mark phase complete in `STATE.md` and `ROADMAP.md`
178
178
 
179
179
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dv.nghiem/flowdeck",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "description": "FlowDeck — structured planning and execution workflows for OpenCode",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -26,7 +26,7 @@
26
26
  ],
27
27
  "scripts": {
28
28
  "clean": "rm -rf dist",
29
- "build": "bun build src/index.ts --outdir dist --target bun --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly && bun build src/dashboard/server.ts --outfile dist/dashboard/server.mjs --target bun --format esm && cp -r src/dashboard/views dist/dashboard/views",
29
+ "build": "bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly && bun build src/dashboard/server.ts --outfile dist/dashboard/server.mjs --target bun --format esm && cp -r src/dashboard/views dist/dashboard/views",
30
30
  "postinstall": "node postinstall.mjs",
31
31
  "prepublishOnly": "bun run clean && bun run build",
32
32
  "test": "bun test",
@@ -0,0 +1,36 @@
1
+ ---
2
+ description: Capture a repeatable pattern from this session and save it as a reusable FlowDeck skill
3
+ argument-hint: [skill-name]
4
+ ---
5
+
6
+ # Learn: Capture Session Knowledge
7
+
8
+ Review what happened in this session and create a reusable skill from the most significant learning.
9
+
10
+ **Input:** `$ARGUMENTS` — optional kebab-case name for the skill (the agent will choose one if omitted)
11
+
12
+ ## Steps
13
+
14
+ 1. **Identify what is worth capturing.** Look for:
15
+ - A novel problem that required figuring out a non-obvious solution
16
+ - A pattern that required human guidance or clarification to resolve
17
+ - A workflow or sequence that would save significant time if remembered
18
+ - A pitfall that was hit and corrected
19
+
20
+ If nothing significant was discovered, reply: "No new patterns to capture from this session." and stop.
21
+
22
+ 2. **Draft the skill.** Structure it as:
23
+ - `## When to Activate` — concrete triggers (e.g., "when X file pattern exists", "when the user asks about Y")
24
+ - `## Steps` — ordered, concrete steps to apply the skill
25
+ - `## Examples` — at least one short, concrete example
26
+ - `## Pitfalls` — common mistakes to avoid
27
+
28
+ 3. **Choose the skill name.** Use `$ARGUMENTS` if provided, otherwise derive a kebab-case name from the pattern.
29
+
30
+ 4. **Write the skill** using the `create-skill` tool with:
31
+ - `name`: kebab-case identifier
32
+ - `description`: one sentence summarising what the skill does
33
+ - `content`: the full Markdown body from step 2
34
+ - `tags`: 2–4 relevant tags
35
+
36
+ 5. **Report** what was captured, why it is useful, and remind the user to restart OpenCode to activate it.
@@ -0,0 +1,30 @@
1
+ ---
2
+ description: Post-session reflection — analyse artifacts and propose self-improvement actions
3
+ ---
4
+
5
+ # Reflect: Self-Improvement Analysis
6
+
7
+ Analyse session artifacts and propose concrete improvements to FlowDeck's knowledge base.
8
+
9
+ ## Steps
10
+
11
+ 1. Call the `reflect` tool to gather session artifacts and generate the reflection context.
12
+
13
+ 2. Read the reflection context carefully:
14
+ - Which tools were called most often? Were any called redundantly?
15
+ - Which decisions were made? Do they reveal a repeatable pattern?
16
+ - Were there any failures? What caused them?
17
+ - What knowledge was absent and had to be worked out from scratch?
18
+
19
+ 3. **Produce improvement proposals.** For each pattern or gap found:
20
+
21
+ - **New skill** → call `create-skill` to capture it in `src/skills/`
22
+ - **Policy** → propose a new entry in `.codebase/POLICIES.json` for the user to review
23
+ - **Workflow change** → note it clearly so the user can decide
24
+
25
+ 4. Execute any skill creation (step 3) now.
26
+
27
+ 5. **Final report** — provide:
28
+ - What was captured (new skills created)
29
+ - What requires human review (policy proposals, workflow changes)
30
+ - 3–5 bullet summary of this session's most impactful learnings
@@ -14,9 +14,7 @@ FlowDeck provides 23 specialist agents. Each has a specific role. Using the righ
14
14
  | `@debug-specialist` | Root cause analysis for bugs | When a bug needs deep investigation |
15
15
  | `@discusser` | Extract requirements via Q&A | Starting a new feature or phase |
16
16
  | `@doc-updater` | Update docs after code changes | After implementation completes |
17
- | `@flowdeck-executor` | Execute confirmed FlowDeck plans | When a confirmed PLAN.md exists |
18
- | `@flowdeck-plan-checker` | Review PLAN.md before execution | Before executing any plan |
19
- | `@flowdeck-planner` | Create FlowDeck PLAN.md files | When running /plan command |
17
+ | `@plan-checker` | Review PLAN.md before execution | Before executing any plan |
20
18
  | `@mapper` | Map codebase to .codebase/ docs | Running /map-codebase |
21
19
  | `@orchestrator` | Coordinate multi-agent execution | Managing a full feature delivery |
22
20
  | `@parallel-coordinator` | Run parallel agent workstreams | When tasks can run simultaneously |
@@ -79,7 +77,7 @@ discuss → plan → execute → review
79
77
  | Phase | Agent | Command |
80
78
  |-------|-------|---------|
81
79
  | discuss | `@discusser` | `/discuss` |
82
- | plan | `@flowdeck-planner` → `@flowdeck-plan-checker` | `/plan` |
80
+ | plan | `@planner` → `@plan-checker` | `/plan` |
83
81
  | execute | `@orchestrator` → `@coder`, `@tester`, etc. | `/new-feature` |
84
82
  | review | `@reviewer` + `@security-auditor` | `/review-code` |
85
83
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: execute-phase
3
- description: "Orchestrates /execute-phase [N] — delegates to flowdeck-executor with checkpoint protocol"
3
+ description: "Orchestrates /execute-phase [N] — delegates to orchestrator with checkpoint protocol"
4
4
  triggers:
5
5
  - /execute-phase
6
6
  steps:
@@ -10,11 +10,11 @@ steps:
10
10
  - name: load_context
11
11
  agent: "@orchestrator"
12
12
  action: Load PLAN.md, STATE.md, PROJECT.md
13
- - name: delegate_to_executor
14
- agent: "@flowdeck-executor"
15
- action: Spawn flowdeck-executor agent to execute plan atomically
13
+ - name: execute_tasks
14
+ agent: "@orchestrator"
15
+ action: Delegate each task to appropriate specialist (@coder, @tester, etc.)
16
16
  - name: checkpoint_protocol
17
- agent: "@flowdeck-executor"
17
+ agent: "@orchestrator"
18
18
  action: After each task, checkpoint state via planning-state tool
19
19
  - name: present_results
20
20
  agent: "@orchestrator"
@@ -28,7 +28,7 @@ steps:
28
28
 
29
29
  ## Purpose
30
30
 
31
- Execute `/execute-phase [N]` to implement a phase plan using the flowdeck-executor agent.
31
+ Execute `/execute-phase [N]` to implement a phase plan using the orchestrator agent.
32
32
 
33
33
  ## Prerequisites
34
34
 
@@ -58,16 +58,19 @@ Read into execution context:
58
58
  - `.codebase/ARCHITECTURE.md` (if exists)
59
59
  - `.codebase/CONVENTIONS.md` (if exists)
60
60
 
61
- ### Step 3: Delegate to flowdeck-executor
61
+ ### Step 3: Execute Tasks
62
62
 
63
- Spawn flowdeck-executor agent with full context.
63
+ Orchestrator delegates each task to appropriate specialist agents:
64
+ - @coder for implementation
65
+ - @tester for tests
66
+ - @researcher for research tasks
67
+ - etc.
64
68
 
65
- Agent will:
66
- 1. Execute each task in the plan
69
+ Each task:
70
+ 1. Execute via delegated agent
67
71
  2. Run verification tests for each task
68
72
  3. Commit atomically with message: `feat(phase-N): task description`
69
73
  4. Handle deviations (document, pause for approval if checkpoint)
70
- 5. Create SUMMARY.md after all tasks complete
71
74
 
72
75
  ### Step 4: Checkpoint Protocol
73
76
 
@@ -78,7 +81,7 @@ After each task:
78
81
 
79
82
  If session interrupted:
80
83
  - User can resume with `/resume`
81
- - Executor will pick up from last checkpoint
84
+ - Orchestrator will pick up from last checkpoint
82
85
 
83
86
  ### Step 5: Present Results
84
87
 
@@ -118,7 +121,7 @@ Update ROADMAP.md:
118
121
 
119
122
  | Agent | Model | Purpose |
120
123
  |-------|-------|---------|
121
- | flowdeck-executor | Sonnet 4.6 | Executes plan with atomic commits |
124
+ | orchestrator | Sonnet 4.6 | Coordinates plan execution via delegation |
122
125
 
123
126
  ## Output Files
124
127
 
@@ -139,4 +142,4 @@ If implementation requires deviating from plan:
139
142
  - If task fails: stop at checkpoint, preserve state
140
143
  - User can run `/fix-bug` or manually fix
141
144
  - Resume picks up from last successful checkpoint
142
- - Never leave partial state on error
145
+ - Never leave partial state on error
@@ -12,10 +12,10 @@ steps:
12
12
  agent: "@orchestrator"
13
13
  action: Load PROJECT.md, STATE.md, DISCUSS.md with D-XX decisions
14
14
  - name: draft_plan
15
- agent: "@flowdeck-planner"
15
+ agent: "@planner"
16
16
  action: Create PLAN.md with tasks traced to D-XX decisions from DISCUSS.md
17
17
  - name: validate_plan
18
- agent: "@flowdeck-plan-checker"
18
+ agent: "@plan-checker"
19
19
  action: Verify all requirements covered, all D-XX decisions addressed
20
20
  - name: review_plan
21
21
  agent: "@orchestrator"