@dv.nghiem/flowdeck 0.3.9 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +13 -21
  2. package/dist/agents/code-explorer.d.ts.map +1 -1
  3. package/dist/agents/mapper.d.ts.map +1 -1
  4. package/dist/agents/orchestrator.d.ts.map +1 -1
  5. package/dist/agents/planner.d.ts.map +1 -1
  6. package/dist/agents/specialist.d.ts.map +1 -1
  7. package/dist/dashboard/server.mjs +12 -2
  8. package/dist/hooks/compaction-hook.d.ts +1 -2
  9. package/dist/hooks/compaction-hook.d.ts.map +1 -1
  10. package/dist/hooks/file-tracker.d.ts +6 -0
  11. package/dist/hooks/file-tracker.d.ts.map +1 -1
  12. package/dist/hooks/notifications.d.ts.map +1 -1
  13. package/dist/hooks/session-start.d.ts.map +1 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +742 -794
  16. package/dist/lib/completion-validator.d.ts +51 -0
  17. package/dist/lib/completion-validator.d.ts.map +1 -0
  18. package/dist/lib/recommended-question.d.ts +24 -0
  19. package/dist/lib/recommended-question.d.ts.map +1 -0
  20. package/dist/lib/research-gate.d.ts +97 -0
  21. package/dist/lib/research-gate.d.ts.map +1 -0
  22. package/dist/lib/research-gate.test.d.ts +2 -0
  23. package/dist/lib/research-gate.test.d.ts.map +1 -0
  24. package/dist/mcp/index.d.ts +12 -2
  25. package/dist/mcp/index.d.ts.map +1 -1
  26. package/dist/services/codegraph.d.ts +36 -0
  27. package/dist/services/codegraph.d.ts.map +1 -0
  28. package/dist/services/codegraph.test.d.ts +2 -0
  29. package/dist/services/codegraph.test.d.ts.map +1 -0
  30. package/dist/services/question-guard.d.ts +4 -0
  31. package/dist/services/question-guard.d.ts.map +1 -1
  32. package/dist/services/recommended-question.test.d.ts +2 -0
  33. package/dist/services/recommended-question.test.d.ts.map +1 -0
  34. package/dist/services/supervisor-binding.d.ts +3 -1
  35. package/dist/services/supervisor-binding.d.ts.map +1 -1
  36. package/dist/tools/codebase-index.d.ts +30 -0
  37. package/dist/tools/codebase-index.d.ts.map +1 -0
  38. package/dist/tools/codebase-index.test.d.ts +2 -0
  39. package/dist/tools/codebase-index.test.d.ts.map +1 -0
  40. package/dist/tools/codegraph-tool.d.ts +3 -0
  41. package/dist/tools/codegraph-tool.d.ts.map +1 -0
  42. package/dist/tools/planning-state-lib.d.ts +23 -0
  43. package/dist/tools/planning-state-lib.d.ts.map +1 -1
  44. package/docs/agents/index.md +154 -0
  45. package/docs/commands/fd-ask.md +71 -39
  46. package/docs/commands/fd-checkpoint.md +63 -8
  47. package/docs/commands/fd-deploy-check.md +166 -9
  48. package/docs/commands/fd-design.md +101 -0
  49. package/docs/commands/fd-discuss.md +87 -20
  50. package/docs/commands/fd-doctor.md +100 -13
  51. package/docs/commands/fd-done.md +215 -0
  52. package/docs/commands/fd-execute.md +104 -0
  53. package/docs/commands/fd-fix-bug.md +144 -24
  54. package/docs/commands/fd-map-codebase.md +85 -21
  55. package/docs/commands/fd-multi-repo.md +155 -40
  56. package/docs/commands/fd-new-feature.md +63 -19
  57. package/docs/commands/fd-plan.md +80 -27
  58. package/docs/commands/fd-quick.md +143 -29
  59. package/docs/commands/fd-reflect.md +81 -13
  60. package/docs/commands/fd-resume.md +65 -8
  61. package/docs/commands/fd-status.md +80 -12
  62. package/docs/commands/fd-suggest.md +114 -0
  63. package/docs/commands/fd-translate-intent.md +69 -9
  64. package/docs/commands/fd-verify.md +71 -14
  65. package/docs/commands/fd-write-docs.md +121 -8
  66. package/docs/concepts/architecture.md +163 -0
  67. package/docs/concepts/governance.md +242 -0
  68. package/docs/concepts/intelligence.md +145 -0
  69. package/docs/concepts/multi-repo.md +227 -0
  70. package/docs/concepts/workflows.md +205 -0
  71. package/docs/configuration/index.md +208 -0
  72. package/docs/configuration/opencode-settings.md +98 -0
  73. package/docs/getting-started/first-project.md +126 -0
  74. package/docs/getting-started/installation.md +73 -0
  75. package/docs/getting-started/quick-start.md +74 -0
  76. package/docs/index.md +36 -72
  77. package/docs/reference/hooks.md +176 -0
  78. package/docs/reference/rules.md +109 -0
  79. package/docs/skills/code-review.md +47 -0
  80. package/docs/skills/index.md +148 -0
  81. package/docs/skills/planning.md +39 -0
  82. package/package.json +1 -1
  83. package/src/commands/fd-discuss.md +74 -10
  84. package/src/commands/fd-done.md +196 -0
  85. package/src/commands/fd-execute.md +43 -6
  86. package/src/commands/fd-fix-bug.md +43 -6
  87. package/src/commands/fd-map-codebase.md +99 -19
  88. package/src/commands/fd-new-feature.md +14 -5
  89. package/src/commands/fd-plan.md +38 -1
  90. package/src/commands/fd-quick.md +1 -1
  91. package/src/commands/fd-resume.md +1 -1
  92. package/src/commands/fd-status.md +1 -1
  93. package/src/commands/fd-verify.md +16 -2
  94. package/src/commands/fd-write-docs.md +30 -5
  95. package/src/skills/context-load/SKILL.md +1 -1
  96. package/dist/hooks/memory-hook.d.ts +0 -28
  97. package/dist/hooks/memory-hook.d.ts.map +0 -1
  98. package/dist/services/memory-store.d.ts +0 -73
  99. package/dist/services/memory-store.d.ts.map +0 -1
  100. package/dist/services/memory-store.test.d.ts +0 -2
  101. package/dist/services/memory-store.test.d.ts.map +0 -1
  102. package/dist/tools/memory-search.d.ts +0 -3
  103. package/dist/tools/memory-search.d.ts.map +0 -1
  104. package/dist/tools/memory-status.d.ts +0 -3
  105. package/dist/tools/memory-status.d.ts.map +0 -1
  106. package/docs/USER_GUIDE.md +0 -20
  107. package/docs/agents.md +0 -544
  108. package/docs/best-practices.md +0 -47
  109. package/docs/commands/fd-new-project.md +0 -24
  110. package/docs/commands.md +0 -557
  111. package/docs/configuration.md +0 -325
  112. package/docs/design-first-workflow.md +0 -94
  113. package/docs/feature-integration-architecture.md +0 -227
  114. package/docs/installation.md +0 -123
  115. package/docs/intelligence.md +0 -370
  116. package/docs/memory.md +0 -69
  117. package/docs/multi-repo.md +0 -201
  118. package/docs/notifications.md +0 -170
  119. package/docs/optimization-baseline.md +0 -21
  120. package/docs/quick-start.md +0 -197
  121. package/docs/rules.md +0 -432
  122. package/docs/skills.md +0 -417
  123. package/docs/workflows.md +0 -134
  124. package/src/commands/fd-new-project.md +0 -114
@@ -1,201 +0,0 @@
1
- # Multi-Repo & Microservices
2
-
3
- FlowDeck supports coordinating changes across multiple repositories in a microservice architecture. The `@multi-repo-coordinator` agent manages dependency graphs, determines change order, and produces per-repo CHANGE PLANs.
4
-
5
- ---
6
-
7
- ## When to Use Multi-Repo Mode
8
-
9
- Multi-repo mode is appropriate when:
10
-
11
- - A shared API contract is changing and multiple services need to update their clients
12
- - A breaking change requires a coordinated rollout with a specific service order
13
- - A new cross-cutting capability (authentication, distributed tracing, audit logging) must be added to several services at once
14
- - Dependency upgrades need to be applied consistently across a service mesh
15
-
16
- Single-repo mode is sufficient for all other work. Multi-repo coordination adds overhead — only enable it when the cross-repo dependency is real.
17
-
18
- ---
19
-
20
- ## Setup
21
-
22
- ### Step 1 — Initialize the root repository
23
-
24
- If your root (orchestrating) repository is not already a FlowDeck project:
25
-
26
- ```
27
- /fd-new-project MyPlatform
28
- ```
29
-
30
- This creates `.planning/` and `.planning/config.json` in the root repo.
31
-
32
- ### Step 2 — Register service repositories
33
-
34
- ```
35
- /fd-multi-repo --add ../user-service upstream-api
36
- /fd-multi-repo --add ../order-service consumer
37
- /fd-multi-repo --add ../notification-service consumer
38
- /fd-multi-repo --add ../api-gateway edge
39
- ```
40
-
41
- Each `--add` command:
42
- 1. Resolves and validates the path
43
- 2. Detects the tech stack (language, framework) from the target repo's files
44
- 3. Appends an entry to `sub_repos` in `.planning/config.json`
45
-
46
- ### Step 3 — Verify registration
47
-
48
- ```
49
- /fd-multi-repo --list
50
- ```
51
-
52
- Expected output:
53
-
54
- ```
55
- Registered repositories:
56
- user-service ../user-service role: upstream-api tech: node+typescript
57
- order-service ../order-service role: consumer tech: node+typescript
58
- notification-svc ../notification-service role: consumer tech: python
59
- api-gateway ../api-gateway role: edge tech: golang
60
- ```
61
-
62
- ---
63
-
64
- ## config.json sub_repos Schema
65
-
66
- Registered repos are stored in `.planning/config.json` under the `sub_repos` key:
67
-
68
- ```json
69
- {
70
- "sub_repos": [
71
- {
72
- "name": "user-service",
73
- "path": "../user-service",
74
- "role": "upstream-api",
75
- "tech_stack": "node+typescript",
76
- "owner_team": "platform"
77
- },
78
- {
79
- "name": "order-service",
80
- "path": "../order-service",
81
- "role": "consumer",
82
- "tech_stack": "node+typescript",
83
- "owner_team": "commerce"
84
- },
85
- {
86
- "name": "notification-service",
87
- "path": "../notification-service",
88
- "role": "consumer",
89
- "tech_stack": "python",
90
- "owner_team": "growth"
91
- },
92
- {
93
- "name": "api-gateway",
94
- "path": "../api-gateway",
95
- "role": "edge",
96
- "tech_stack": "golang",
97
- "owner_team": "platform"
98
- }
99
- ]
100
- }
101
- ```
102
-
103
- All fields except `owner_team` are required. `owner_team` is optional but recommended — it enables `@multi-repo-coordinator` to surface team-level communication needs in the CHANGE PLAN.
104
-
105
- ---
106
-
107
- ## Role Vocabulary
108
-
109
- The `role` field tells `@multi-repo-coordinator` how each service fits into the dependency graph. It uses this to determine change order and to classify changes as breaking or non-breaking.
110
-
111
- | Role | Meaning |
112
- |------|---------|
113
- | `upstream-api` | Exposes an API that other services consume. Changes here propagate outward. |
114
- | `consumer` | Calls one or more upstream APIs. Must update its client when upstream contracts change. |
115
- | `edge` | API gateway or entry point. Routes external traffic and may enforce rate limits or authentication. |
116
- | `shared-lib` | A library imported by other services. Breaking changes here affect every consumer simultaneously. |
117
- | `worker` | Background job processor. Typically a consumer of events or queues; rarely an upstream dependency. |
118
- | `data-store` | Database, cache, or storage service. Schema changes here can be breaking for any direct consumer. |
119
-
120
- ---
121
-
122
- ## Running a Cross-Repo Change
123
-
124
- Invoke `@multi-repo-coordinator` with a plain-language description of the cross-cutting change:
125
-
126
- ```
127
- @multi-repo-coordinator I need to add user preferences to the user-service API and
128
- update all consumer services to use the new endpoint.
129
- ```
130
-
131
- ### What `@multi-repo-coordinator` does
132
-
133
- 1. **Reads `sub_repos`** from `.planning/config.json` to identify all registered services
134
- 2. **Builds the dependency graph** — in the example above: `user-service → order-service`, `user-service → notification-service`, and `api-gateway → user-service`
135
- 3. **Determines change order** based on roles: upstream services change first, consumers second, edge last
136
- 4. **Classifies the change**: adding a new field or endpoint is non-breaking; renaming or removing is breaking. Breaking changes require a compatibility strategy (versioned endpoints, feature flags, or synchronized cutover)
137
- 5. **Produces a CHANGE PLAN** for each affected repository in dependency order
138
-
139
- ---
140
-
141
- ## CHANGE PLAN Format
142
-
143
- `@multi-repo-coordinator` produces a CHANGE PLAN that is saved to `.planning/fd-multi-repo/CHANGE-<timestamp>.md`:
144
-
145
- ```
146
- CHANGE PLAN — user-preferences feature
147
-
148
- Order of changes:
149
- 1. user-service (upstream-api) — add GET /users/{id}/preferences endpoint
150
- 2. order-service (consumer) — update UserClient to call new preferences endpoint
151
- 3. notification-service (consumer) — update notification triggers with user preferences
152
- 4. api-gateway (edge) — add /preferences route, update rate limit policy
153
-
154
- Breaking changes: None (additive endpoint — existing clients unaffected)
155
- Rollout strategy: canary → staging → production per service in the order above
156
-
157
- Owner teams notified:
158
- platform (user-service, api-gateway)
159
- commerce (order-service)
160
- growth (notification-service)
161
- ```
162
-
163
- For breaking changes, the CHANGE PLAN includes a compatibility section:
164
-
165
- ```
166
- Breaking changes: YES — /users/{id} response shape modified (field renamed)
167
- Compatibility strategy:
168
- - Deploy user-service@v2 alongside v1 (parallel run)
169
- - Migrate consumers to v2 endpoint one-by-one
170
- - Deprecate v1 after all consumers are migrated (target: 2 sprints)
171
- - Remove v1 after deprecation window closes
172
- ```
173
-
174
- ---
175
-
176
- ## Multi-Repo Workflow
177
-
178
- The `multi-repo-flow` workflow orchestrates the full end-to-end process:
179
-
180
- 1. **Analyze** — `@code-explorer` runs in each registered repo and builds a combined dependency graph
181
- 2. **Classify** — `@multi-repo-coordinator` identifies which changes are breaking vs non-breaking and determines service change order
182
- 3. **Plan** — produces a CHANGE PLAN per repo in dependency order
183
- 4. **Execute** — role-routed implementation agent (`@backend-coder`/`@frontend-coder`/`@devops`) is invoked per repo in order; `@tester` runs per repo in parallel with the selected implementation agent (using that repo's test suite)
184
- 5. **Verify** — `@reviewer` and `@security-auditor` run per repo after implementation; integration tests are run across the full service mesh in staging before any production rollout
185
-
186
- Each step produces output files in `.planning/fd-multi-repo/` so the entire process is auditable.
187
-
188
- ---
189
-
190
- ## Multi-Repo Commands Reference
191
-
192
- | Command | What it does |
193
- |---------|-------------|
194
- | `/fd-multi-repo --add <path> <role>` | Register a repo with the given path and role |
195
- | `/fd-multi-repo --list` | Print a table of all registered repos |
196
- | `/fd-multi-repo --status` | Show `git status` summary for every registered repo |
197
- | `/fd-multi-repo --remove <name>` | Remove a repo from `sub_repos` by name |
198
-
199
- ---
200
-
201
- ← [Back to Index](index.md)
@@ -1,170 +0,0 @@
1
- # System Notifications
2
-
3
- FlowDeck fires desktop notifications when commands that require your attention complete. This is useful when you switch to another application while the AI processes a task — you will be alerted when your input is needed or when a long-running command is ready for review.
4
-
5
- ---
6
-
7
- ## How It Works
8
-
9
- When an interactive command finishes (one that either asks questions or produces output you need to approve), FlowDeck sends a desktop notification through the OS notification system. Notification urgency depends on the command:
10
-
11
- - **Critical-level (urgent):** `/fd-discuss`, `/fd-plan`, `/fd-verify`, `/fd-deploy-check`, `/fd-new-project`
12
- These commands present questions or decisions that block further progress. The notification is sent at high urgency so it appears even in Do Not Disturb mode on some systems.
13
-
14
- - **Info-level:** `/fd-new-feature`, `/fd-fix-bug`, `/fd-write-docs`, `/fd-checkpoint`
15
- These commands complete autonomously and notify you that output is ready for review. Low urgency — appears in notification center but does not interrupt focus.
16
-
17
- Notifications are **best-effort**: if the notification system is unavailable (missing package, SSH session without display, headless CI), FlowDeck logs a warning and continues silently. No command is blocked by a notification failure.
18
-
19
- ---
20
-
21
- ## Linux (`notify-send`)
22
-
23
- FlowDeck uses `notify-send` from the `libnotify` package. A desktop session (X11 or Wayland) must be active.
24
-
25
- ### Installation
26
-
27
- ```bash
28
- # Debian / Ubuntu
29
- sudo apt install libnotify-bin
30
-
31
- # Fedora / RHEL / CentOS Stream
32
- sudo dnf install libnotify
33
-
34
- # Arch Linux
35
- sudo pacman -S libnotify
36
- ```
37
-
38
- ### Verify
39
-
40
- ```bash
41
- notify-send "FlowDeck" "Notifications working"
42
- ```
43
-
44
- A toast notification should appear in the top-right corner of your desktop (or wherever your notification daemon places them — GNOME, KDE, and sway all position them differently).
45
-
46
- ---
47
-
48
- ## macOS (`osascript`)
49
-
50
- `osascript` is a standard macOS tool available on every installation. No additional packages are needed.
51
-
52
- ### Allow notifications from Terminal
53
-
54
- macOS requires per-application notification permission:
55
-
56
- 1. Open **System Preferences** (macOS 12 and earlier) or **System Settings** (macOS 13+)
57
- 2. Navigate to **Notifications**
58
- 3. Find **Terminal** in the app list (or your OpenCode host application if you run it outside Terminal)
59
- 4. Set **Allow Notifications** to on
60
- 5. Choose **Alerts** or **Banners** depending on your preference
61
-
62
- ### Verify
63
-
64
- ```bash
65
- osascript -e 'display notification "Notifications working" with title "FlowDeck"'
66
- ```
67
-
68
- ---
69
-
70
- ## Windows (PowerShell toast)
71
-
72
- FlowDeck uses the `Windows.UI.Notifications` WinRT API via PowerShell. This requires Windows 10 or later and PowerShell 5 or later. No additional installation is needed.
73
-
74
- ### Allow notifications from PowerShell
75
-
76
- 1. Open **Settings → System → Notifications**
77
- 2. Scroll to the app list and find **Windows PowerShell**
78
- 3. Enable notifications for Windows PowerShell
79
-
80
- ### Verify
81
-
82
- ```powershell
83
- [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null
84
- $template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent(
85
- [Windows.UI.Notifications.ToastTemplateType]::ToastText02)
86
- $template.SelectSingleNode("//text[@id='1']").InnerText = "FlowDeck"
87
- $template.SelectSingleNode("//text[@id='2']").InnerText = "Notifications working"
88
- $toast = [Windows.UI.Notifications.ToastNotification]::new($template)
89
- [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("FlowDeck").Show($toast)
90
- ```
91
-
92
- ---
93
-
94
- ## Notification Content Reference
95
-
96
- | Command | Title | Body |
97
- |---------|-------|------|
98
- | `/fd-discuss` | `FlowDeck: /fd-discuss` | Your input is needed — please check OpenCode |
99
- | `/fd-plan` | `FlowDeck: /fd-plan` | Your input is needed — please check OpenCode |
100
- | `/fd-verify` | `FlowDeck: /fd-verify` | Your input is needed — please check OpenCode |
101
- | `/fd-deploy-check` | `FlowDeck: /fd-deploy-check` | Your input is needed — please check OpenCode |
102
- | `/fd-new-project` | `FlowDeck: /fd-new-project` | Your input is needed — please check OpenCode |
103
- | `/fd-new-feature` | `FlowDeck: /fd-new-feature complete` | Review the output and choose your next step |
104
- | `/fd-fix-bug` | `FlowDeck: /fd-fix-bug complete` | Review the output and choose your next step |
105
- | `/fd-write-docs` | `FlowDeck: /fd-write-docs complete` | Review the output and choose your next step |
106
- | `/fd-checkpoint` | `FlowDeck: /fd-checkpoint` | State saved — safe to close this session |
107
-
108
- ---
109
-
110
- ## Disabling Notifications
111
-
112
- Notifications are opt-out at the OS level. To stop receiving them:
113
-
114
- - **Linux:** Uninstall `libnotify-bin` (`sudo apt remove libnotify-bin`) or close your notification daemon
115
- - **macOS:** System Settings → Notifications → find Terminal → set Allow Notifications to off
116
- - **Windows:** Settings → System → Notifications → Windows PowerShell → toggle off
117
-
118
- Alternatively, when FlowDeck runs in a non-interactive environment (CI pipeline, headless server, SSH session without `$DISPLAY`) it detects the absence of a notification system and skips notification dispatch automatically. No configuration is needed for headless use.
119
-
120
- ---
121
-
122
- ## Troubleshooting
123
-
124
- ### Linux: notifications not appearing
125
-
126
- **`notify-send` command not found:**
127
- ```bash
128
- which notify-send # should return a path
129
- sudo apt install libnotify-bin
130
- ```
131
-
132
- **`notify-send` runs but nothing appears:**
133
- ```bash
134
- echo $DISPLAY # must not be empty; e.g. :0 or :1
135
- ```
136
-
137
- If `$DISPLAY` is empty, you are in a session that is not connected to a display server. Set it explicitly if you are connected to a local machine via SSH:
138
- ```bash
139
- export DISPLAY=:0
140
- notify-send "test" "test"
141
- ```
142
-
143
- **Running under Wayland:**
144
- ```bash
145
- echo $WAYLAND_DISPLAY # should be wayland-0 or similar
146
- ```
147
-
148
- Some distributions require `notify-send` version 0.8+ for Wayland support. Check: `notify-send --version`.
149
-
150
- ---
151
-
152
- ### macOS: notifications not appearing
153
-
154
- 1. Run the verification command above — if it shows no notification, Terminal notifications are disabled
155
- 2. Check System Settings → Notifications → Terminal → Allow Notifications is on
156
- 3. Check that **Focus** or **Do Not Disturb** is not suppressing alerts
157
- 4. On macOS 14+, check that notification permissions have not been reset after an OS update
158
-
159
- ---
160
-
161
- ### Windows: notifications not appearing
162
-
163
- 1. Verify Settings → System → Notifications → **Notifications** master toggle is on
164
- 2. Verify **Windows PowerShell** is enabled in the app-level list
165
- 3. Check that **Focus Assist** is not set to **Alarms only** during your work hours
166
- 4. If running OpenCode as an administrator, PowerShell inherits elevated privileges; some Windows configurations suppress toasts from elevated processes
167
-
168
- ---
169
-
170
- ← [Back to Index](index.md)
@@ -1,21 +0,0 @@
1
- # FlowDeck Optimization Baseline
2
-
3
- Captured on 2026-05-07 before deep optimization implementation.
4
-
5
- ## Dispatch Baseline
6
-
7
- - Command: `bun test src/tools/agent-dispatch.test.ts`
8
- - Result: 8 passing, 0 failing
9
- - Suite runtime (bun): 135ms
10
- - Wall clock runtime: 0.17s
11
-
12
- ## Observability Baseline
13
-
14
- - `.codebase/` does not exist yet in a clean repo checkout.
15
- - Telemetry hooks emitted `status: "ok"` for all tool completions and did not classify failures.
16
- - Session/run IDs defaulted to `session-0` and `run-0` when runtime env variables were not set.
17
-
18
- ## Routing and Cost Baseline
19
-
20
- - Dispatch tools did not call model routing or agent performance tracking.
21
- - `src/services/model-router.ts` and `src/services/agent-performance.ts` were present but not wired into `delegate`/`run-pipeline`.
@@ -1,197 +0,0 @@
1
- # Quick Start
2
-
3
- Get FlowDeck running on a project in 15 minutes.
4
-
5
- ---
6
-
7
- ## Step 0: Verify the Installation
8
-
9
- Before opening OpenCode, confirm the install completed successfully:
10
-
11
- ```bash
12
- ls ~/.config/opencode/agent/ | grep -c "\.md" # expect 23+
13
- ls ~/.config/opencode/skills/ # expect 24 directories
14
- ls ~/.config/opencode/command/ # expect 16 files
15
- ```
16
-
17
- If any count is short, re-run the installer. See [Installation](installation.md) for details.
18
-
19
- ---
20
-
21
- ## Step 1: Open a Project in OpenCode
22
-
23
- Navigate to your project directory and start OpenCode:
24
-
25
- ```bash
26
- cd my-project
27
- opencode
28
- ```
29
-
30
- FlowDeck activates automatically because `@dv.nghiem/flowdeck` is registered in `~/.config/opencode/opencode.json`. All agents, skills, and commands are available immediately.
31
-
32
- ---
33
-
34
- ## Step 2: Initialize FlowDeck
35
-
36
- Run the setup command inside the OpenCode session:
37
-
38
- ```
39
- /fd-new-project MyApp
40
- ```
41
-
42
- This creates the `.planning/` directory at your project root with the following structure:
43
-
44
- ```
45
- .planning/
46
- ├── PROJECT.md # Project context: name, goals, constraints, tech stack
47
- ├── STATE.md # Current execution state, tracked by all agents
48
- ├── ROADMAP.md # Phase definitions and features
49
- └── config.json # FlowDeck project configuration
50
- ```
51
-
52
- You will be prompted to fill in basic project details. The more context you provide in `PROJECT.md`, the better agents perform throughout the workflow.
53
-
54
- ---
55
-
56
- ## Step 3: Map the Codebase (existing projects only)
57
-
58
- If you are adding FlowDeck to an existing project rather than starting from scratch, run:
59
-
60
- ```
61
- /fd-map-codebase
62
- ```
63
-
64
- `@mapper` analyzes your source tree and generates `.codebase/` documentation files:
65
-
66
- - `.codebase/STACK.md` — tech stack with detected versions and frameworks
67
- - `.codebase/ARCHITECTURE.md` — component structure and data flow between modules
68
- - `.codebase/CONVENTIONS.md` — naming patterns, code style, and project-specific idioms
69
-
70
- All subsequent agents read these files for context. Skip this step for brand-new projects.
71
-
72
- ---
73
-
74
- ## Step 4: Define a New Feature
75
-
76
- Before discussing requirements, initialize the feature:
77
-
78
- ```
79
- /fd-new-feature user authentication
80
- ```
81
-
82
- `@orchestrator` creates `.planning/phases/phase-1/FEATURE.md` and updates `STATE.md`. This establishes the feature context and shows you the next steps in the workflow:
83
- 1. /fd-discuss
84
- 2. /fd-plan
85
- 3. /fd-execute
86
- 4. /fd-verify
87
-
88
- ---
89
-
90
- ## Step 5: Start a Discussion
91
-
92
- Requirements gathering comes next. Run:
93
-
94
- ```
95
- /fd-discuss
96
- ```
97
-
98
- `@discusser` asks structured questions about your goals, constraints, and success criteria — one question at a time. Each answer is numbered and tracked as a decision (`D-01`, `D-02`, …).
99
-
100
- When you finish answering, the decisions are saved to `.planning/phases/phase-1/DISCUSS.md`.
101
-
102
- **Tips:**
103
- - Answer specifically. `@discusser` follows up on vague responses.
104
- - Explicit "out of scope" decisions are as useful as "in scope" ones — they prevent scope creep later.
105
- - The session ends with: `"Requirements gathering complete. N decisions recorded."`
106
-
107
- ---
108
-
109
- ## Step 6: Create an Implementation Plan
110
-
111
- With requirements captured, generate the plan:
112
-
113
- ```
114
- /fd-plan
115
- ```
116
-
117
- `@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.
118
-
119
- You are shown the plan and prompted for confirmation. **Type `CONFIRM` to allow execution to proceed.** Review carefully before confirming:
120
-
121
- - Are success criteria observable and specific?
122
- - Are individual tasks sized to 1–3 hours?
123
- - Do wave dependencies reflect the actual build order?
124
-
125
- ---
126
-
127
- ## Step 7: Execute the Feature
128
-
129
- Once the plan is confirmed, start implementation:
130
-
131
- ```
132
- /fd-execute
133
- ```
134
-
135
- `@orchestrator` reads `STATE.md` and `PLAN.md`, then delegates work to specialist agents in wave order via a TDD cycle (RED → GREEN → REFACTOR):
136
-
137
- 1. **Behavior** — Define acceptance cases from PLAN.md
138
- 2. **RED** — Write failing tests covering each behavior
139
- 3. **GREEN** — Implement minimum code to pass tests
140
- 4. **REFACTOR** — Clean up code while tests remain green
141
- 5. **Review** — `@reviewer` checks code quality and TDD discipline
142
-
143
- You see progress updates as each task completes. Independent tasks within a wave run simultaneously.
144
-
145
- ---
146
-
147
- ## Step 8: Verify Feature Completion
148
-
149
- After implementation, run the full verification pipeline:
150
-
151
- ```
152
- /fd-verify
153
- ```
154
-
155
- This runs four checks in parallel:
156
- - **Tests** — Full test suite must pass
157
- - **Code Review** — `@reviewer` checks quality, security, conventions
158
- - **Security Scan** — `@security-auditor` checks for vulnerabilities
159
- - **Deploy Check** — Build verification, CVE audit, readiness assessment
160
-
161
- If all checks pass, the phase is marked **VERIFIED**. If any check fails, the report shows what needs fixing.
162
-
163
- ---
164
-
165
- ## Step 9: Review the Results
166
-
167
- Before closing OpenCode, checkpoint your progress:
168
-
169
- ```
170
- /fd-checkpoint
171
- ```
172
-
173
- This writes the current execution state to `.planning/STATE.md`. To reload context in a future session:
174
-
175
- ```
176
- /fd-resume
177
- ```
178
-
179
- `/fd-resume` reads `STATE.md` and the active `PLAN.md` and restores full context for all agents.
180
-
181
- ---
182
-
183
- ## Tips
184
-
185
- > **Check status at any time** — `/fd-status` prints the current state, active plan, and a summary of recent results without modifying anything.
186
-
187
- > **Context after a restart** — always run `/fd-resume` at the start of a new OpenCode session on a project that was previously active. Agents have no memory between sessions without it.
188
-
189
- > **Follow the workflow order** — the cycle `/fd-new-feature → /fd-discuss → /fd-plan → /fd-execute → /fd-verify` ensures requirements are captured before implementation and verification happens at the end.
190
-
191
- > **Skip to execute for small tasks** — for a quick bug fix, you do not need to run `/fd-discuss` and `/fd-plan`. Use `/fd-fix-bug` directly and let `@debug-specialist` handle the full cycle.
192
-
193
- > **Let `/fd-quick` drive the whole workflow** — instead of manually calling each command in sequence, run `/fd-quick <your task>` and the system classifies the task, selects the correct workflow (feature, bug fix, UI-heavy, docs), and runs all stages autonomously. It pauses only when your explicit input is needed (e.g., plan CONFIRM, approval gates). Existing commands remain fully usable standalone.
194
-
195
- ---
196
-
197
- ← [Back to Index](index.md)