@dv.nghiem/flowdeck 0.3.2 → 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 (44) hide show
  1. package/README.md +18 -13
  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 +583 -240
  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/memory-status.d.ts +3 -0
  16. package/dist/tools/memory-status.d.ts.map +1 -0
  17. package/dist/tools/run-pipeline.d.ts.map +1 -1
  18. package/docs/commands.md +102 -9
  19. package/docs/installation.md +6 -17
  20. package/docs/intelligence.md +18 -33
  21. package/docs/optimization-baseline.md +21 -0
  22. package/docs/quick-start.md +44 -23
  23. package/docs/rules.md +9 -36
  24. package/docs/workflows.md +18 -17
  25. package/package.json +4 -2
  26. package/src/commands/fd-execute.md +192 -0
  27. package/src/commands/fd-new-feature.md +44 -157
  28. package/src/commands/fd-new-project.md +1 -2
  29. package/src/commands/fd-plan.md +1 -1
  30. package/src/commands/fd-suggest.md +84 -0
  31. package/src/commands/fd-verify.md +126 -0
  32. package/src/rules/README.md +10 -0
  33. package/src/rules/common/agent-orchestration.md +5 -5
  34. package/src/rules/common/coding-style.md +17 -0
  35. package/src/rules/typescript/patterns.md +1 -1
  36. package/src/skills/backend-patterns/SKILL.md +6 -0
  37. package/src/skills/clean-architecture/SKILL.md +6 -0
  38. package/src/skills/cqrs/SKILL.md +6 -0
  39. package/src/skills/ddd-architecture/SKILL.md +6 -0
  40. package/src/skills/event-driven-architecture/SKILL.md +6 -0
  41. package/src/skills/hexagonal-architecture/SKILL.md +6 -0
  42. package/src/skills/layered-architecture/SKILL.md +6 -0
  43. package/src/skills/postgres-patterns/SKILL.md +6 -0
  44. package/src/skills/saga-architecture/SKILL.md +6 -0
package/README.md CHANGED
@@ -9,8 +9,8 @@ FlowDeck adds a structured, multi-agent development workflow to OpenCode. It coo
9
9
  ## Features
10
10
 
11
11
  - 🤖 **25 agents** — architect, planner, coder, reviewer, tester, debugger, risk-analyst, policy-enforcer, and more
12
- - 🛠️ **24 skills** — reusable workflow patterns (TDD, security scan, deploy check, code review, and more)
13
- - ⚡ **17 commands** — workflow commands for all project operations
12
+ - 🛠️ **50 skills** — reusable workflow patterns (TDD, security scan, deploy check, code review, and more)
13
+ - ⚡ **20 commands** — workflow commands for all project operations
14
14
  - 📋 **15 workflows** — pre-built orchestration flows including Spec-Driven Development (SDD)
15
15
  - 🔄 **Persistent state** — resume exactly where you left off across sessions via `.planning/STATE.md`
16
16
  - 🔀 **Parallel execution** — independent tasks run simultaneously in wave-structured batches
@@ -20,7 +20,7 @@ FlowDeck adds a structured, multi-agent development workflow to OpenCode. It coo
20
20
  - 🛡️ **AI Safety layer** — patch trust scoring, edit gates, phase gating, arch constraint enforcement, failure replay, and regression prediction built into every workflow
21
21
  - 🪝 **Deep System Hooks** — context window monitoring, session idle summaries, shell environment injection, and structured compaction to prevent context loss
22
22
  - 🌐 **Built-in MCPs** — Context7 (docs), Exa (web search), and Grep.app (code search) included and enabled by default
23
- - 💎 **Ensemble Reasoning** — `/fd-council` tool for synthesized consensus from multiple specialized agents
23
+ - 💎 **Ensemble Reasoning** — `council` tool for synthesized consensus from multiple specialized agents
24
24
  - 🧠 **Persistent Memory** — SQLite-based memory stores tool executions, assistant messages, and session summaries. Agents can search past observations with `memory-search` tool.
25
25
 
26
26
  ---
@@ -45,18 +45,20 @@ See [Installation](docs/installation.md) for prerequisites, verification steps,
45
45
 
46
46
  ## Core Workflow
47
47
 
48
- FlowDeck structures every feature through a four-step cycle:
48
+ FlowDeck structures every feature through a six-step cycle:
49
49
 
50
50
  ```
51
- /fd-new-project /fd-discuss /fd-plan /fd-new-feature
51
+ /fd-new-project /fd-new-feature → /fd-discuss /fd-plan /fd-execute → /fd-verify
52
52
  ```
53
53
 
54
54
  | Step | Command | What happens |
55
55
  |------|---------|--------------|
56
- | **Initialize** | `/fd-new-project MyApp` | Creates `.planning/` directory with `PROJECT.md`, `STATE.md`, and `ROADMAP.md` |
57
- | **Discuss** | `/fd-discuss 1` | `@discusser` runs structured Q&A, saves decisions to `DISCUSS.md` |
58
- | **Plan** | `/fd-plan 1` | `@planner` builds a wave-structured `PLAN.md`; you type `CONFIRMED` to proceed |
59
- | **Execute** | `/fd-new-feature "…"` | `@orchestrator` delegates to `@architect`, `@coder`, `@tester`, `@reviewer` in waves |
56
+ | **Setup** | `/fd-new-project MyApp` | Creates `.planning/` directory with `PROJECT.md`, `STATE.md`, and `ROADMAP.md` |
57
+ | **Define Feature** | `/fd-new-feature "…"` | Initialize feature context, creates `FEATURE.md` in current phase |
58
+ | **Discuss** | `/fd-discuss` | `@discusser` runs structured Q&A, saves decisions to `DISCUSS.md` |
59
+ | **Plan** | `/fd-plan` | `@planner` builds a wave-structured `PLAN.md`; you type `CONFIRM` to proceed |
60
+ | **Execute** | `/fd-execute` | `@orchestrator` delegates to `@architect`, `@coder`, `@tester`, `@reviewer` via TDD |
61
+ | **Verify** | `/fd-verify` | Full test suite, code review, security scan, and deploy check |
60
62
 
61
63
  State is written to `.planning/STATE.md` after each phase. Use `/fd-checkpoint` to save mid-session and `/fd-resume` to reload context in a new session.
62
64
 
@@ -70,9 +72,11 @@ State is written to `.planning/STATE.md` after each phase. Use `/fd-checkpoint`
70
72
  |---------|---------|
71
73
  | `/fd-new-project` | Bootstrap a new project with PROJECT.md, ROADMAP.md, STATE.md |
72
74
  | `/fd-map-codebase` | Analyse and index the codebase into structured `.codebase/` files |
75
+ | `/fd-new-feature` | Define a new feature and initialize feature context |
73
76
  | `/fd-discuss` | Pre-planning structured Q&A to capture decisions |
74
77
  | `/fd-plan` | Generate a wave-structured execution plan from decisions |
75
- | `/fd-new-feature` | Implement a feature with TDD discipline and parallel agents |
78
+ | `/fd-execute` | Implement feature with TDD discipline and parallel agents |
79
+ | `/fd-verify` | Full verification pipeline: tests, code review, security scan, deploy check |
76
80
  | `/fd-fix-bug` | Diagnose, fix, and verify a bug with regression test |
77
81
  | `/fd-write-docs` | Explore APIs and generate accurate documentation |
78
82
  | `/fd-deploy-check` | Pre-deploy safety check with test, security, and build verification |
@@ -82,6 +86,7 @@ State is written to `.planning/STATE.md` after each phase. Use `/fd-checkpoint`
82
86
  | `/fd-reflect` | Post-session reflection or capture patterns as reusable skills |
83
87
  | `/fd-multi-repo` | Multi-repo orchestration — list, add, remove, or status |
84
88
  | `/fd-translate-intent` | Convert vague requests into ranked implementation options |
89
+ | `/fd-suggest` | Analyze the codebase and suggest high-value feature opportunities |
85
90
  | `/fd-ask` | Smart agent dispatch — routes to specialist by keyword |
86
91
  | `/fd-quick` | Focused task with automatic agent selection |
87
92
  | `/fd-doctor` | Check FlowDeck installation and environment health |
@@ -93,9 +98,9 @@ These umbrella commands consolidate multiple analysis modules into focused entry
93
98
  | Command | Purpose |
94
99
  |---------|---------|
95
100
  | `/fd-translate-intent` | Convert vague requests into ranked implementation options with tradeoffs |
96
- | `/fd-analyze-change` | Combined pre-change analysis (impact, blast radius, regression, test gaps, volatility) |
97
- | `/fd-guarded-edit` | Edit gate returning auto-approve / confirm / review / block |
98
- | `/fd-evaluate-risk` | Standalone risk assessment with confidence score |
101
+ | `/fd-suggest` | Combined opportunity and risk analysis (impact, volatility, failures, and skill gaps) |
102
+ | `/fd-deploy-check` | Pre-change release safety checks and review routing |
103
+ | `/fd-verify` | Standalone verification for tests, review, and security checks |
99
104
 
100
105
  See [docs/workflows.md](docs/workflows.md) for details on how analysis commands work.
101
106
 
@@ -18,8 +18,11 @@ export declare class OrchestratorGuard {
18
18
  * primary session ID the first time a session is created.
19
19
  */
20
20
  onEvent(event: {
21
- type: string;
21
+ type?: string;
22
22
  properties?: unknown;
23
+ event?: unknown;
24
+ sessionID?: string;
25
+ sessionId?: string;
23
26
  }): void;
24
27
  /**
25
28
  * Call this from tool.execute.before.
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-guard-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/orchestrator-guard-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsEH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAAsB;IAE9C;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAa5D;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CASjD"}
1
+ {"version":3,"file":"orchestrator-guard-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/orchestrator-guard-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsEH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAAsB;IAE9C;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAkBtH;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CASjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-idle-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/session-idle-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE;IAAE,GAAG,EAAE;QAAE,GAAG,EAAE,CAAC,IAAI,EAAE;YAAE,IAAI,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAA;CAAE,EAC5I,OAAO,EAAE,kBAAkB,uBAmC5B"}
1
+ {"version":3,"file":"session-idle-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/session-idle-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE;IAAE,GAAG,EAAE;QAAE,GAAG,EAAE,CAAC,IAAI,EAAE;YAAE,IAAI,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAA;CAAE,EAC5I,OAAO,EAAE,kBAAkB,uBAiC5B"}
@@ -3,6 +3,12 @@ export declare function telemetryHook(context: {
3
3
  }, toolInput: {
4
4
  name?: string;
5
5
  tool?: string;
6
+ sessionID?: string;
7
+ sessionId?: string;
8
+ messageID?: string;
9
+ messageId?: string;
10
+ runID?: string;
11
+ runId?: string;
6
12
  }, output: {
7
13
  args?: Record<string, unknown>;
8
14
  }): Promise<void>;
@@ -11,9 +17,16 @@ export declare function telemetryAfterHook(context: {
11
17
  }, toolInput: {
12
18
  name?: string;
13
19
  tool?: string;
14
- }, _output: {
20
+ sessionID?: string;
21
+ sessionId?: string;
22
+ messageID?: string;
23
+ messageId?: string;
24
+ runID?: string;
25
+ runId?: string;
26
+ }, output: {
15
27
  title?: string;
16
28
  output?: string;
17
29
  metadata?: unknown;
30
+ error?: unknown;
18
31
  }): Promise<void>;
19
32
  //# sourceMappingURL=telemetry-hook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/telemetry-hook.ts"],"names":[],"mappings":"AAOA,wBAAsB,aAAa,CACjC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,SAAS,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACzC,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,SAAS,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/D,OAAO,CAAC,IAAI,CAAC,CAWf"}
1
+ {"version":3,"file":"telemetry-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/telemetry-hook.ts"],"names":[],"mappings":"AAsCA,wBAAsB,aAAa,CACjC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,SAAS,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3J,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACzC,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,SAAS,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3J,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/E,OAAO,CAAC,IAAI,CAAC,CAaf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=telemetry-hook.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-hook.test.d.ts","sourceRoot":"","sources":["../../src/hooks/telemetry-hook.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAiGjD,QAAA,MAAM,MAAM,EAAE,MAkOb,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAkGjD,QAAA,MAAM,MAAM,EAAE,MAiPb,CAAA;AAED,eAAe,MAAM,CAAA"}