@growthub/cli 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,165 @@
1
+ # growthub-core — Agent Swarm Command Center
2
+
3
+ > Growthub is a full-featured DX platform for orchestrating AI agent swarms across sequential ticket pipelines.
4
+
5
+ ---
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npx create-growthub-local --profile dx
11
+ ```
12
+
13
+ Later:
14
+
15
+ ```bash
16
+ npx create-growthub-local --profile gtm
17
+ ```
18
+
19
+ ## What this is
20
+
21
+ **growthub-core** is an opinionated, self-hosted developer experience platform that treats every unit of work as a **Ticket** — a sequential pipeline of stages (planning → execution → review → qa → human) — where each stage is owned by a specific AI agent. Designed for **parallel multi-ticket execution** with real-time agent status, live heartbeat tracking, and full pipeline control from a single command center dashboard.
22
+
23
+ ---
24
+
25
+ ## Architecture
26
+
27
+ ```
28
+ ┌──────────────────────────────────────────────────────────┐
29
+ │ growthub-core │
30
+ │ │
31
+ │ ┌───────────────────────────────────────────────────┐ │
32
+ │ │ Ticket Command Center (Dashboard) │ │
33
+ │ │ Kanban │ List │ Roadmap (Week / Month) │ │
34
+ │ └───────────────────────────────────────────────────┘ │
35
+ │ │ │
36
+ │ ┌──────────┴─────────┐ │
37
+ │ │ Ticket TKT-N │ │
38
+ │ │ stageOrder[] │ │
39
+ │ │ currentStage │ │
40
+ │ └──────────┬─────────┘ │
41
+ │ │ │
42
+ │ ┌──────────────────┼──────────────────┐ │
43
+ │ │ │ │ │
44
+ │ Planning Execution Review / QA │
45
+ │ Agent Codex / Claude / │
46
+ │ (pm role) Claude Code Codex │
47
+ │ │ │
48
+ │ Issues (GRO-NNN) per stage │
49
+ │ assigned to specific agents │
50
+ │ │
51
+ │ ┌───────────────────────────────────────────────────┐ │
52
+ │ │ Embedded PostgreSQL (port 54329) │ │
53
+ │ │ Drizzle ORM — auto-migration on startup │ │
54
+ │ │ TanStack Query + queryKeys registry │ │
55
+ │ │ Vite dev middleware + tsx watch hot-reload │ │
56
+ │ └───────────────────────────────────────────────────┘ │
57
+ └──────────────────────────────────────────────────────────┘
58
+ ```
59
+
60
+ ### Stack
61
+
62
+ | Layer | Technology |
63
+ |---|---|
64
+ | Server | Node.js + Fastify, TypeScript, `tsx` watch |
65
+ | Database | Embedded PostgreSQL via `embedded-postgres` (port 54329) |
66
+ | ORM | Drizzle ORM — SQL migrations in `packages/db/src/migrations/` |
67
+ | UI | React 18, Vite, TailwindCSS, shadcn/ui |
68
+ | Data fetching | TanStack Query v5 — single `queryKeys.ts` registry |
69
+ | Agents | Claude Code (local), Codex (local), HTTP adapter |
70
+ | Auth | Local trusted mode (no auth wall in dev) |
71
+
72
+ ---
73
+
74
+ ## Ticket Pipeline
75
+
76
+ Tickets are the primary organizing unit. Each ticket has a fully user-configurable `stageOrder` array:
77
+
78
+ ```
79
+ planning → execution → review → qa → human
80
+ ```
81
+
82
+ - Stage **colors** are assigned by index position in `stageOrder` — never keyed by name
83
+ - **Issues** (tasks) are spawned per stage and assigned to specific agents
84
+ - Pipeline is **sequential** — only the active stage has live work; future stages are "up next"
85
+ - **Advancing** moves `currentStage` forward; completed stages remain as history
86
+ - Stage names, colors, and order are **fully editable inline** from the ticket detail page
87
+
88
+ | Status | Meaning |
89
+ |---|---|
90
+ | `active` | Work in progress |
91
+ | `paused` | Manually paused |
92
+ | `done` | All stages completed |
93
+ | `cancelled` | Abandoned |
94
+
95
+ ---
96
+
97
+ ## Canonical Agents
98
+
99
+ | Agent | Role | Adapter | Purpose |
100
+ |---|---|---|---|
101
+ | **Planning Agent** | `pm` | `claude_local` | Breaks tickets into issues, writes specs |
102
+ | **Execution — Codex** | `general` | `codex_local` | Implements features from issues |
103
+ | **Execution — Claude Code** | `general` | `claude_local` | Implements features, debugging |
104
+ | **Review — Claude** | `qa` | `claude_local` | Code review, correctness checks |
105
+ | **QA/Debugger — Codex** | `qa` | `codex_local` | Test runs, regression debugging |
106
+
107
+ All agents have `canCreateAgents: true` and `canAssignTasks: true` for sub-agent spawning.
108
+
109
+ ---
110
+
111
+ ## Running locally
112
+
113
+ ```bash
114
+ pnpm install
115
+ npm run dev
116
+ # Server + UI: http://localhost:3100
117
+ ```
118
+
119
+ **No manual migrations.** Auto-migrates on every startup. To add a migration: create a `.sql` file in `packages/db/src/migrations/` and update `_journal.json` — never run `drizzle-kit push`.
120
+
121
+ ---
122
+
123
+ ## Key directories
124
+
125
+ ```
126
+ packages/
127
+ db/src/
128
+ schema/ Drizzle table definitions
129
+ migrations/ SQL files (hand-written, never generated)
130
+ shared/src/
131
+ types/ TypeScript types (Ticket, Issue, Agent, ...)
132
+ validators/ Zod schemas
133
+ constants.ts TICKET_STAGES, TICKET_STATUSES, ...
134
+
135
+ server/src/
136
+ routes/ Fastify route handlers
137
+ services/ Business logic
138
+ app.ts Route registration
139
+
140
+ ui/src/
141
+ pages/ React pages (Dashboard, TicketDetail, Tickets, Archive, ...)
142
+ components/ Shared UI (NewTicketModal, Sidebar, ...)
143
+ api/ API client (tickets.ts, issues.ts, agents.ts, ...)
144
+ lib/
145
+ queryKeys.ts Single source of truth for all query keys
146
+ company-routes.ts Route prefix logic
147
+
148
+ agents/ Agent config markdown files
149
+ ```
150
+
151
+ ---
152
+
153
+ ## Archive
154
+
155
+ Issues support soft-delete via `hiddenAt`. `/archive` page supports bulk archive and restore.
156
+
157
+ ## GitHub PR binding
158
+
159
+ New Ticket modal fetches open PRs from your GitHub repos and binds them to tickets. PR context is stored in `ticket.metadata.pr` and surfaced to agents as part of ticket instructions.
160
+
161
+ ---
162
+
163
+ ## Contributing
164
+
165
+ See [CONTRIBUTING.md](./CONTRIBUTING.md).