@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.
- package/README.md +13 -21
- package/dist/agents/code-explorer.d.ts.map +1 -1
- package/dist/agents/mapper.d.ts.map +1 -1
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/planner.d.ts.map +1 -1
- package/dist/agents/specialist.d.ts.map +1 -1
- package/dist/dashboard/server.mjs +12 -2
- package/dist/hooks/compaction-hook.d.ts +1 -2
- package/dist/hooks/compaction-hook.d.ts.map +1 -1
- package/dist/hooks/file-tracker.d.ts +6 -0
- package/dist/hooks/file-tracker.d.ts.map +1 -1
- package/dist/hooks/notifications.d.ts.map +1 -1
- package/dist/hooks/session-start.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +742 -794
- package/dist/lib/completion-validator.d.ts +51 -0
- package/dist/lib/completion-validator.d.ts.map +1 -0
- package/dist/lib/recommended-question.d.ts +24 -0
- package/dist/lib/recommended-question.d.ts.map +1 -0
- package/dist/lib/research-gate.d.ts +97 -0
- package/dist/lib/research-gate.d.ts.map +1 -0
- package/dist/lib/research-gate.test.d.ts +2 -0
- package/dist/lib/research-gate.test.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +12 -2
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/services/codegraph.d.ts +36 -0
- package/dist/services/codegraph.d.ts.map +1 -0
- package/dist/services/codegraph.test.d.ts +2 -0
- package/dist/services/codegraph.test.d.ts.map +1 -0
- package/dist/services/question-guard.d.ts +4 -0
- package/dist/services/question-guard.d.ts.map +1 -1
- package/dist/services/recommended-question.test.d.ts +2 -0
- package/dist/services/recommended-question.test.d.ts.map +1 -0
- package/dist/services/supervisor-binding.d.ts +3 -1
- package/dist/services/supervisor-binding.d.ts.map +1 -1
- package/dist/tools/codebase-index.d.ts +30 -0
- package/dist/tools/codebase-index.d.ts.map +1 -0
- package/dist/tools/codebase-index.test.d.ts +2 -0
- package/dist/tools/codebase-index.test.d.ts.map +1 -0
- package/dist/tools/codegraph-tool.d.ts +3 -0
- package/dist/tools/codegraph-tool.d.ts.map +1 -0
- package/dist/tools/planning-state-lib.d.ts +23 -0
- package/dist/tools/planning-state-lib.d.ts.map +1 -1
- package/docs/agents/index.md +154 -0
- package/docs/commands/fd-ask.md +71 -39
- package/docs/commands/fd-checkpoint.md +63 -8
- package/docs/commands/fd-deploy-check.md +166 -9
- package/docs/commands/fd-design.md +101 -0
- package/docs/commands/fd-discuss.md +87 -20
- package/docs/commands/fd-doctor.md +100 -13
- package/docs/commands/fd-done.md +215 -0
- package/docs/commands/fd-execute.md +104 -0
- package/docs/commands/fd-fix-bug.md +144 -24
- package/docs/commands/fd-map-codebase.md +85 -21
- package/docs/commands/fd-multi-repo.md +155 -40
- package/docs/commands/fd-new-feature.md +63 -19
- package/docs/commands/fd-plan.md +80 -27
- package/docs/commands/fd-quick.md +143 -29
- package/docs/commands/fd-reflect.md +81 -13
- package/docs/commands/fd-resume.md +65 -8
- package/docs/commands/fd-status.md +80 -12
- package/docs/commands/fd-suggest.md +114 -0
- package/docs/commands/fd-translate-intent.md +69 -9
- package/docs/commands/fd-verify.md +71 -14
- package/docs/commands/fd-write-docs.md +121 -8
- package/docs/concepts/architecture.md +163 -0
- package/docs/concepts/governance.md +242 -0
- package/docs/concepts/intelligence.md +145 -0
- package/docs/concepts/multi-repo.md +227 -0
- package/docs/concepts/workflows.md +205 -0
- package/docs/configuration/index.md +208 -0
- package/docs/configuration/opencode-settings.md +98 -0
- package/docs/getting-started/first-project.md +126 -0
- package/docs/getting-started/installation.md +73 -0
- package/docs/getting-started/quick-start.md +74 -0
- package/docs/index.md +36 -72
- package/docs/reference/hooks.md +176 -0
- package/docs/reference/rules.md +109 -0
- package/docs/skills/code-review.md +47 -0
- package/docs/skills/index.md +148 -0
- package/docs/skills/planning.md +39 -0
- package/package.json +1 -1
- package/src/commands/fd-discuss.md +74 -10
- package/src/commands/fd-done.md +196 -0
- package/src/commands/fd-execute.md +43 -6
- package/src/commands/fd-fix-bug.md +43 -6
- package/src/commands/fd-map-codebase.md +99 -19
- package/src/commands/fd-new-feature.md +14 -5
- package/src/commands/fd-plan.md +38 -1
- package/src/commands/fd-quick.md +1 -1
- package/src/commands/fd-resume.md +1 -1
- package/src/commands/fd-status.md +1 -1
- package/src/commands/fd-verify.md +16 -2
- package/src/commands/fd-write-docs.md +30 -5
- package/src/skills/context-load/SKILL.md +1 -1
- package/dist/hooks/memory-hook.d.ts +0 -28
- package/dist/hooks/memory-hook.d.ts.map +0 -1
- package/dist/services/memory-store.d.ts +0 -73
- package/dist/services/memory-store.d.ts.map +0 -1
- package/dist/services/memory-store.test.d.ts +0 -2
- package/dist/services/memory-store.test.d.ts.map +0 -1
- package/dist/tools/memory-search.d.ts +0 -3
- package/dist/tools/memory-search.d.ts.map +0 -1
- package/dist/tools/memory-status.d.ts +0 -3
- package/dist/tools/memory-status.d.ts.map +0 -1
- package/docs/USER_GUIDE.md +0 -20
- package/docs/agents.md +0 -544
- package/docs/best-practices.md +0 -47
- package/docs/commands/fd-new-project.md +0 -24
- package/docs/commands.md +0 -557
- package/docs/configuration.md +0 -325
- package/docs/design-first-workflow.md +0 -94
- package/docs/feature-integration-architecture.md +0 -227
- package/docs/installation.md +0 -123
- package/docs/intelligence.md +0 -370
- package/docs/memory.md +0 -69
- package/docs/multi-repo.md +0 -201
- package/docs/notifications.md +0 -170
- package/docs/optimization-baseline.md +0 -21
- package/docs/quick-start.md +0 -197
- package/docs/rules.md +0 -432
- package/docs/skills.md +0 -417
- package/docs/workflows.md +0 -134
- package/src/commands/fd-new-project.md +0 -114
package/docs/multi-repo.md
DELETED
|
@@ -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)
|
package/docs/notifications.md
DELETED
|
@@ -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`.
|
package/docs/quick-start.md
DELETED
|
@@ -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)
|