@dv.nghiem/flowdeck 0.3.3 → 0.3.4

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 (33) hide show
  1. package/README.md +7 -6
  2. package/dist/hooks/orchestrator-guard-hook.d.ts +4 -1
  3. package/dist/hooks/orchestrator-guard-hook.d.ts.map +1 -1
  4. package/dist/hooks/session-idle-hook.d.ts.map +1 -1
  5. package/dist/hooks/telemetry-hook.d.ts +14 -1
  6. package/dist/hooks/telemetry-hook.d.ts.map +1 -1
  7. package/dist/hooks/telemetry-hook.test.d.ts +2 -0
  8. package/dist/hooks/telemetry-hook.test.d.ts.map +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +466 -202
  11. package/dist/tools/council.d.ts.map +1 -1
  12. package/dist/tools/delegate.d.ts.map +1 -1
  13. package/dist/tools/dispatch-routing.d.ts +6 -0
  14. package/dist/tools/dispatch-routing.d.ts.map +1 -0
  15. package/dist/tools/run-pipeline.d.ts.map +1 -1
  16. package/docs/installation.md +6 -17
  17. package/docs/intelligence.md +18 -33
  18. package/docs/optimization-baseline.md +21 -0
  19. package/docs/rules.md +9 -36
  20. package/docs/workflows.md +8 -9
  21. package/package.json +4 -2
  22. package/src/rules/README.md +10 -0
  23. package/src/rules/common/coding-style.md +2 -2
  24. package/src/rules/typescript/patterns.md +1 -1
  25. package/src/skills/backend-patterns/SKILL.md +6 -0
  26. package/src/skills/clean-architecture/SKILL.md +6 -0
  27. package/src/skills/cqrs/SKILL.md +6 -0
  28. package/src/skills/ddd-architecture/SKILL.md +6 -0
  29. package/src/skills/event-driven-architecture/SKILL.md +6 -0
  30. package/src/skills/hexagonal-architecture/SKILL.md +6 -0
  31. package/src/skills/layered-architecture/SKILL.md +6 -0
  32. package/src/skills/postgres-patterns/SKILL.md +6 -0
  33. package/src/skills/saga-architecture/SKILL.md +6 -0
@@ -1 +1 @@
1
- {"version":3,"file":"council.d.ts","sourceRoot":"","sources":["../../src/tools/council.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAmExE"}
1
+ {"version":3,"file":"council.d.ts","sourceRoot":"","sources":["../../src/tools/council.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAKtD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CA2ExE"}
@@ -1 +1 @@
1
- {"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../src/tools/delegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAStD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAiFzE"}
1
+ {"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../src/tools/delegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAYtD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CA+HzE"}
@@ -0,0 +1,6 @@
1
+ import type { TaskType } from "../services/model-router";
2
+ export declare function shouldRetry(promptRes: any): boolean;
3
+ export declare function isTransientError(text?: string): boolean;
4
+ export declare function normalizeTaskType(taskType: string | undefined, agent: string): TaskType;
5
+ export declare function isTaskType(value: string): value is TaskType;
6
+ //# sourceMappingURL=dispatch-routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-routing.d.ts","sourceRoot":"","sources":["../../src/tools/dispatch-routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAExD,wBAAgB,WAAW,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAOnD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAUvD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAcvF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,QAAQ,CAY3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-pipeline.d.ts","sourceRoot":"","sources":["../../src/tools/run-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAuBtD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAyG5E"}
1
+ {"version":3,"file":"run-pipeline.d.ts","sourceRoot":"","sources":["../../src/tools/run-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AA6BtD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAyH5E"}
@@ -20,7 +20,7 @@ If OpenCode is not yet installed, follow the [OpenCode installation guide](https
20
20
 
21
21
  ## Method 1: curl (recommended)
22
22
 
23
- The install script downloads the latest release, copies all agents, skills, commands, and workflows to `~/.config/opencode/`, and registers `@dv.nghiem/flowdeck` as a plugin in `opencode.json`.
23
+ The install script registers `@dv.nghiem/flowdeck` as a plugin in `opencode.json` and sets `orchestrator` as default agent when missing.
24
24
 
25
25
  ```bash
26
26
  curl -fsSL https://raw.githubusercontent.com/DVNghiem/flowdeck/main/install.sh | bash
@@ -29,11 +29,9 @@ curl -fsSL https://raw.githubusercontent.com/DVNghiem/flowdeck/main/install.sh |
29
29
  What the script does:
30
30
 
31
31
  1. Detects your config directory (`$OPENCODE_CONFIG_DIR` or `~/.config/opencode`)
32
- 2. Copies `agents/*.md` → `~/.config/opencode/agent/` (markdown agents for OpenCode compatibility)
33
- 3. Compiles TypeScript agents from `src/agents/` `dist/agents/` (for plugin-based loading)
34
- 4. Copies `skills/*/` `~/.config/opencode/skills/`
35
- 5. Registers `@dv.nghiem/flowdeck` as a plugin in `opencode.json`
36
- 6. Sets `orchestrator` as the default agent
32
+ 2. Creates the config directory if needed
33
+ 3. Registers `@dv.nghiem/flowdeck` as a plugin in `opencode.json` if not present
34
+ 4. Sets `orchestrator` as the default agent if not already configured
37
35
 
38
36
  ---
39
37
 
@@ -59,18 +57,9 @@ Steps explained:
59
57
 
60
58
  ## Verification
61
59
 
62
- After any install method, run these commands to confirm everything landed correctly:
60
+ After any install method, run these commands to confirm registration:
63
61
 
64
62
  ```bash
65
- # Should print 23 or more
66
- ls ~/.config/opencode/agent/ | grep -c "\.md"
67
-
68
- # Should list 24 or more directories
69
- ls ~/.config/opencode/skills/
70
-
71
- # Should list 16 or more files
72
- ls ~/.config/opencode/command/
73
-
74
63
  # Should print @dv.nghiem/flowdeck
75
64
  cat ~/.config/opencode/opencode.json | grep flowdeck
76
65
  ```
@@ -81,7 +70,7 @@ Expected output for the last command:
81
70
  "@dv.nghiem/flowdeck"
82
71
  ```
83
72
 
84
- If any count is lower than expected, re-run the install command. If the `opencode.json` line is missing, the plugin will not load — add it manually (see [Configuration](configuration.md)).
73
+ If the `opencode.json` line is missing, the plugin will not load — add it manually (see [Configuration](configuration.md)).
85
74
 
86
75
  ---
87
76
 
@@ -8,19 +8,19 @@ FlowDeck's intelligence layer adds safety-first AI editing, persistent architect
8
8
 
9
9
  | Feature | Command / Hook | Storage |
10
10
  |---------|---------------|---------|
11
- | Change Impact Radar | `/fd-impact-radar` | VOLATILITY.json, MEMORY.json |
11
+ | Change Impact Radar | Integrated analysis workflow | VOLATILITY.json, MEMORY.json |
12
12
  | Patch Trust Score | Hook (automatic) | VOLATILITY.json, FAILURES.json |
13
- | Blast Radius Preview | `/fd-blast-radius` | MEMORY.json, FAILURES.json |
13
+ | Blast Radius Preview | Integrated analysis workflow | MEMORY.json, FAILURES.json |
14
14
  | Repo Memory Graph | `repo-memory` tool | `.codebase/MEMORY.json` |
15
15
  | Failure Replay Engine | `failure-replay` tool | `.codebase/FAILURES.json` |
16
16
  | Safe Execution Modes | Hook (automatic) | `.planning/config.json` |
17
- | Test Gap Detector | `/fd-test-gap` | VOLATILITY.json |
17
+ | Test Gap Detector | Integrated analysis workflow | VOLATILITY.json |
18
18
  | Architectural Constraint Guard | Hook (automatic) | `.codebase/CONSTRAINTS.md` |
19
19
  | Intent-to-Change Translator | `/fd-translate-intent` | — |
20
20
  | Confidence-Aware Planning | Skill | — |
21
- | Codebase Volatility Map | `/fd-volatility-map`, `volatility-map` tool | `.codebase/VOLATILITY.json` |
22
- | Human Review Routing | `/fd-review-route` | VOLATILITY.json, FAILURES.json |
23
- | Regression Prediction | `/fd-regression-predict` | — |
21
+ | Codebase Volatility Map | `volatility-map` tool | `.codebase/VOLATILITY.json` |
22
+ | Human Review Routing | Integrated analysis workflow | VOLATILITY.json, FAILURES.json |
23
+ | Regression Prediction | Integrated analysis workflow | — |
24
24
  | Decision Trace | `decision-trace` tool + hook | `.codebase/DECISIONS.jsonl` |
25
25
  | Self-Healing Policies | `policy-engine` tool | `.codebase/POLICIES.json` |
26
26
 
@@ -28,14 +28,11 @@ FlowDeck's intelligence layer adds safety-first AI editing, persistent architect
28
28
 
29
29
  ## Slash Commands
30
30
 
31
- ### `/fd-impact-radar`
31
+ ### Change Impact Radar
32
32
 
33
33
  Predicts which files, modules, APIs, tests, and database paths are likely to be affected before the AI edits anything.
34
34
 
35
- ```
36
- /fd-impact-radar --change "refactor auth token handling" --scope all
37
- /fd-impact-radar --change "drop users table" --json
38
- ```
35
+ Use `/fd-suggest` or `/fd-translate-intent` when you need pre-change analysis with impact context.
39
36
 
40
37
  **Arguments:**
41
38
  - `--change` — describe the proposed change (free text)
@@ -46,13 +43,11 @@ Predicts which files, modules, APIs, tests, and database paths are likely to be
46
43
 
47
44
  ---
48
45
 
49
- ### `/fd-blast-radius`
46
+ ### Blast Radius Preview
50
47
 
51
48
  Shows the likely downstream consequences of a proposed change — hidden dependencies, fragile integration points, and predicted test breakages.
52
49
 
53
- ```
54
- /fd-blast-radius --change "delete legacy session table" --depth 3
55
- ```
50
+ Use `/fd-suggest` for broad risk discovery and `/fd-deploy-check` before release changes.
56
51
 
57
52
  **Arguments:**
58
53
  - `--change` — describe the proposed change
@@ -78,14 +73,11 @@ Converts a vague request like "make checkout faster" into concrete, ranked imple
78
73
 
79
74
  ---
80
75
 
81
- ### `/fd-volatility-map`
76
+ ### Volatility Map
82
77
 
83
78
  Displays the Codebase Volatility Map — highlights unstable zones based on churn, hotfix frequency, and unresolved TODO clusters.
84
79
 
85
- ```
86
- /fd-volatility-map
87
- /fd-volatility-map --threshold volatile --limit 10
88
- ```
80
+ Use the `volatility-map` tool directly from delegated agents for incremental updates.
89
81
 
90
82
  **Arguments:**
91
83
  - `--threshold` — minimum stability level to show: `stable`, `moderate`, `volatile` (default), `critical`
@@ -96,13 +88,11 @@ Displays the Codebase Volatility Map — highlights unstable zones based on chur
96
88
 
97
89
  ---
98
90
 
99
- ### `/fd-regression-predict`
91
+ ### Regression Prediction
100
92
 
101
93
  Estimates the most likely regression categories for a change — performance, auth, schema, UI states, async flows, etc.
102
94
 
103
- ```
104
- /fd-regression-predict --change "add webhook retry logic" --categories all
105
- ```
95
+ FlowDeck derives regression risk from historical failures plus volatility data during analysis-oriented workflows.
106
96
 
107
97
  **Arguments:**
108
98
  - `--change` — describe the proposed change
@@ -111,14 +101,11 @@ Estimates the most likely regression categories for a change — performance, au
111
101
 
112
102
  ---
113
103
 
114
- ### `/fd-test-gap`
104
+ ### Test Gap Detector
115
105
 
116
106
  Identifies which areas of a proposed change are weakly covered by tests, and suggests the minimum high-value tests to add first.
117
107
 
118
- ```
119
- /fd-test-gap --change "add payment webhook handler"
120
- /fd-test-gap --change "update user schema" --scope unit
121
- ```
108
+ Use `/fd-verify` and `/fd-deploy-check` for current test-gap surfacing in production workflows.
122
109
 
123
110
  **Arguments:**
124
111
  - `--change` — describe the proposed change
@@ -127,13 +114,11 @@ Identifies which areas of a proposed change are weakly covered by tests, and sug
127
114
 
128
115
  ---
129
116
 
130
- ### `/fd-review-route`
117
+ ### Human Review Routing
131
118
 
132
119
  Routes risky patches to the right reviewer type — security, backend, infra, domain-owner, frontend, data, or devops — based on the file paths and change description.
133
120
 
134
- ```
135
- /fd-review-route --files "src/auth/token.ts,src/api/routes.ts" --change "new JWT rotation logic"
136
- ```
121
+ Routing to reviewer profiles is integrated into verification and deployment checks.
137
122
 
138
123
  **Arguments:**
139
124
  - `--files` — comma-separated file paths being changed
@@ -0,0 +1,21 @@
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/rules.md CHANGED
@@ -1,47 +1,20 @@
1
1
  # FlowDeck Rules
2
2
 
3
- Rules are coding standard documents that you load into OpenCode's context. They give the AI consistent style, testing, security, and language-specific guidelines to follow across all sessions.
3
+ Rules are coding standards used by FlowDeck agents for style, testing, security, and language-specific guidance.
4
4
 
5
- ## How to Use Rules
5
+ ## How Rules Load
6
6
 
7
- ### Method 1 Project-level (recommended)
7
+ FlowDeck loads all markdown files under `src/rules/` automatically through plugin startup. You do not need to manually copy or symlink rule files.
8
8
 
9
- Add the rules you want to your project's `opencode.json`. This ensures every OpenCode session in the project automatically picks them up:
9
+ ## Precedence
10
10
 
11
- ```json
12
- {
13
- "instructions": [
14
- ".flowdeck-rules/common/coding-style.md",
15
- ".flowdeck-rules/common/testing.md",
16
- ".flowdeck-rules/common/security.md",
17
- ".flowdeck-rules/typescript/patterns.md"
18
- ]
19
- }
20
- ```
21
-
22
- Where `.flowdeck-rules/` is a symlink or copy of the FlowDeck rules directory:
23
-
24
- ```bash
25
- ln -s ~/.config/opencode/node_modules/@dv.nghiem/flowdeck/rules .flowdeck-rules
26
- ```
27
-
28
- ### Method 2 — Per-session
29
-
30
- Reference a rule file directly in your prompt:
11
+ When guidance conflicts, precedence is:
31
12
 
32
- ```
33
- Follow the rules in ~/.config/opencode/node_modules/@dv.nghiem/flowdeck/rules/typescript/patterns.md
34
- ```
35
-
36
- ### Method 3 — Copy to project
37
-
38
- Copy the rules directory into your project for version-controlled standards:
39
-
40
- ```bash
41
- cp -r ~/.config/opencode/node_modules/@dv.nghiem/flowdeck/rules ./flowdeck-rules
42
- ```
13
+ 1. `AGENTS.md` and `CLAUDE.md` in the repository
14
+ 2. FlowDeck plugin rules in `src/rules/**`
15
+ 3. Runtime policy rules in `.codebase/POLICIES.json`
43
16
 
44
- Then commit `flowdeck-rules/` to your repository so the entire team uses the same standards.
17
+ This keeps repository-specific conventions authoritative and lets policy learning add guardrails without overriding project intent.
45
18
 
46
19
  ---
47
20
 
package/docs/workflows.md CHANGED
@@ -38,36 +38,35 @@ Each step gates the next. `/fd-discuss` requires a defined feature. `/fd-plan` r
38
38
  |---------|---------|------------|
39
39
  | `/fd-new-project` | Bootstrap a new project | @orchestrator |
40
40
  | `/fd-map-codebase` | Analyse and index the codebase | @mapper (×6 parallel) |
41
- | `/fd-settings` | Configure FlowDeck settings | @orchestrator |
42
41
  | `/fd-new-feature` | Initialize a new feature | @orchestrator |
43
42
  | `/fd-discuss` | Pre-planning discussion | @discusser |
44
43
  | `/fd-plan` | Generate a phase plan | @planner, @plan-checker |
45
- | `/fd-roadmap` | View / update project roadmap | @orchestrator |
46
- | `/fd-dashboard` | Visual progress dashboard | — |
47
44
  | `/fd-ask` | Smart agent dispatch | various |
48
45
  | `/fd-execute` | Implement feature via TDD | @orchestrator, @coder, @tester, @reviewer |
49
46
  | `/fd-verify` | Verify feature completion | @tester, @reviewer, @security-auditor |
50
47
  | `/fd-fix-bug` | Fix a bug with TDD | @debug-specialist, @tester, @coder |
51
- | `/fd-review-code` | Code review | @reviewer, @researcher, @tester |
52
48
  | `/fd-write-docs` | Generate documentation | @writer, @reviewer |
53
49
  | `/fd-deploy-check` | Pre-deploy safety check | @tester, @security-auditor, @reviewer |
54
- | `/fd-progress` | View project progress | — |
50
+ | `/fd-status` | View project progress | — |
55
51
  | `/fd-checkpoint` | Save a session checkpoint | — |
56
52
  | `/fd-resume` | Resume from checkpoint | — |
57
53
  | `/fd-multi-repo` | Multi-repo orchestration | @multi-repo-coordinator, @architect |
54
+ | `/fd-translate-intent` | Convert vague requests to ranked implementation options | @architect, @researcher |
55
+ | `/fd-suggest` | Suggest high-value feature opportunities from codebase signals | @researcher, @architect |
56
+ | `/fd-quick` | Fast focused task execution | @coder or selected specialist |
57
+ | `/fd-reflect` | Post-session reflection and skill capture | @auto-learner |
58
+ | `/fd-doctor` | Installation and environment diagnostics | @orchestrator |
58
59
 
59
60
  ---
60
61
 
61
62
  ## Analysis Commands
62
63
 
63
- These umbrella commands combine multiple analysis modules:
64
+ Analysis workflows are currently exposed through:
64
65
 
65
66
  | Command | Purpose | Flags |
66
67
  |---------|---------|-------|
67
- | `/fd-analyze-change` | Combined impact analysis | `--impact`, `--blast-radius`, `--regression`, `--test-gap`, `--volatility` |
68
- | `/fd-guarded-edit` | Edit gate decision | auto/confirm/review/block |
69
- | `/fd-evaluate-risk` | Standalone risk assessment | — |
70
68
  | `/fd-translate-intent` | Intent to concrete options | `assumptions`, `recommended_option` |
69
+ | `/fd-suggest` | Suggest feature opportunities from volatility, failures, and decisions | `--category`, `--limit` |
71
70
 
72
71
  ---
73
72
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dv.nghiem/flowdeck",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "description": "FlowDeck — structured planning and execution workflows for OpenCode",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -29,7 +29,9 @@
29
29
  "postinstall": "node postinstall.mjs",
30
30
  "prepublishOnly": "bun run clean && bun run build",
31
31
  "test": "bun test",
32
- "typecheck": "tsc --noEmit"
32
+ "typecheck": "tsc --noEmit",
33
+ "validate:skills": "node scripts/validate-skills.mjs",
34
+ "validate:docs": "node scripts/validate-docs.mjs"
33
35
  },
34
36
  "keywords": ["opencode", "plugin", "ai", "workflow", "planning"],
35
37
  "author": "DVNghiem",
@@ -6,6 +6,16 @@ Coding standards for projects using FlowDeck. These define conventions that Flow
6
6
 
7
7
  Rules are loaded **automatically** by the FlowDeck plugin. No manual configuration is needed — when FlowDeck is installed, all rule files in this directory are injected into OpenCode's `instructions` at startup.
8
8
 
9
+ ## Rule Precedence
10
+
11
+ When guidance conflicts, FlowDeck resolves precedence in this order:
12
+
13
+ 1. Repository governance files (`AGENTS.md`, `CLAUDE.md`)
14
+ 2. FlowDeck plugin rules from `src/rules/**`
15
+ 3. Runtime policies from `.codebase/POLICIES.json`
16
+
17
+ This keeps repository-specific expectations authoritative while still allowing runtime policy learning.
18
+
9
19
  ## Selective Rules (Optional)
10
20
 
11
21
  If you want to override the default set and load only specific rules, add them to `opencode.json` under `instructions`:
@@ -9,8 +9,8 @@ Language-agnostic coding conventions followed by all FlowDeck agents.
9
9
  | 1 | **No Redundant Code** | No redundant arguments, methods, or attributes. Each piece of code must serve a purpose. |
10
10
  | 2 | **Simplicity** | Code should be simple and easy to understand. Prefer clarity over cleverness. |
11
11
  | 3 | **Clear Commands** | Code should have clear, explicit commands. No ambiguity in intent. |
12
- | 4 | **Extensibility** | Code must be easily extendable. Design for growth, not just current needs. |
13
- | 5 | **Documentation** | Code must have clear documentation at the beginning of every file. |
12
+ | 4 | **Extensibility** | Prefer minimal designs for current requirements. Add extension points only when required by active scope. |
13
+ | 5 | **Documentation** | Add comments when needed to explain non-obvious tradeoffs or constraints; avoid boilerplate file headers. |
14
14
  | 6 | **Information Security** | Comply with information security best practices. No secrets, no injections, no XSS. |
15
15
  | 7 | **Memory Optimization** | Optimize memory usage to the minimum possible. Avoid unnecessary allocations. |
16
16
  | 8 | **Speed** | Process speed should be as fast as possible. Prefer efficient algorithms and data structures. |
@@ -102,7 +102,7 @@ class UserService {
102
102
 
103
103
  ## Result Types for Error Handling
104
104
 
105
- Never throw in business logic. Use Result types.
105
+ Prefer explicit error contracts (Result types or typed exceptions) for business logic. Use one pattern consistently within a module.
106
106
 
107
107
  ```typescript
108
108
  type Ok<T> = { ok: true; value: T };
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: backend-patterns
3
+ description: Backend architecture patterns for services, APIs, data access, and middleware design.
4
+ origin: FlowDeck
5
+ ---
6
+
1
7
  # backend-patterns
2
8
 
3
9
  ## When to Activate
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: clean-architecture
3
+ description: Apply Clean Architecture boundaries to keep domain logic isolated from frameworks and infrastructure.
4
+ origin: FlowDeck
5
+ ---
6
+
1
7
  # clean-architecture
2
8
 
3
9
  ## When to Activate
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: cqrs
3
+ description: Command Query Responsibility Segregation patterns for separating write and read models.
4
+ origin: FlowDeck
5
+ ---
6
+
1
7
  # CQRS (Command Query Responsibility Segregation)
2
8
 
3
9
  ## When to Activate
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: ddd-architecture
3
+ description: Domain-Driven Design patterns for bounded contexts, aggregates, and ubiquitous language.
4
+ origin: FlowDeck
5
+ ---
6
+
1
7
  # ddd-architecture
2
8
 
3
9
  ## When to Activate
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: event-driven-architecture
3
+ description: Event-driven architecture patterns for asynchronous workflows and decoupled services.
4
+ origin: FlowDeck
5
+ ---
6
+
1
7
  # Event-Driven Architecture
2
8
 
3
9
  ## When to Activate
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: hexagonal-architecture
3
+ description: Ports-and-adapters architecture patterns for testable, framework-independent domain logic.
4
+ origin: FlowDeck
5
+ ---
6
+
1
7
  # hexagonal-architecture
2
8
 
3
9
  ## When to Activate
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: layered-architecture
3
+ description: Layered architecture patterns for separating presentation, application, domain, and data layers.
4
+ origin: FlowDeck
5
+ ---
6
+
1
7
  # layered-architecture
2
8
 
3
9
  ## When to Activate
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: postgres-patterns
3
+ description: PostgreSQL schema, query, indexing, and performance patterns.
4
+ origin: FlowDeck
5
+ ---
6
+
1
7
  # postgres-patterns
2
8
 
3
9
  ## When to Activate
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: saga-architecture
3
+ description: Saga coordination patterns for distributed transactions with compensating actions.
4
+ origin: FlowDeck
5
+ ---
6
+
1
7
  # saga-architecture
2
8
 
3
9
  ## When to Activate