feinai 0.5.1 → 0.5.3

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 (3) hide show
  1. package/README.md +96 -90
  2. package/package.json +4 -4
  3. package/src/cli.ts +1 -1
package/README.md CHANGED
@@ -1,15 +1,46 @@
1
- # feinai — coordination layer for multi-agent teams
1
+ # feinai
2
2
 
3
- Working with AI agents on complex features is powerful — until the coordination overhead swallows the productivity. **feinai** is a task & spec manager built for multi-agent workflows: specs, plans, tasks, worktree isolation, and a live orchestration dashboard.
3
+ **Multi-agent development breaks down without coordination infrastructure.**
4
4
 
5
- Agents claim tasks atomically, get exactly the context they need, and report results all in single CLI calls. Humans watch a live dashboard showing which tasks exist, who's working on them, which files are being touched, and what the outcome was. State lives in a local SQLite file and never leaves your machine.
5
+ Skills and prompts get agents started. They don't solve what happens when five agents run in parallel: stale state, token waste reading giant markdown files, tasks claimed twice, agents stepping on each other's work, no visibility into what's actually happening.
6
+
7
+ feinai is the missing layer.
8
+
9
+ ---
10
+
11
+ ## The problems it solves
12
+
13
+ **Token waste.** Agents reading `QUEUE.md` or `BACKLOG.md` to find their next task burn context on irrelevant state. A 200-line plan file costs tokens every time — most of it noise for any given agent. feinai gives each agent exactly what it needs in a single call.
14
+
15
+ **Inconsistent task state.** Two agents claim the same task. One overwrites the other's work. You find out when the merge fails. feinai's `take` is an atomic SQL operation — if two agents race, one wins and one gets rejected. No duplicates, no silent overwrites.
16
+
17
+ **No isolation.** Agents sharing a branch corrupt each other's work mid-task. feinai-dispatch puts every agent in its own git worktree, linked to a specific task, visible in the dashboard. Work is isolated until it's ready to merge.
18
+
19
+ **Zero visibility.** You don't know which agent is doing what, which files it touched, how long it's been running, or whether it's stuck. The feinai dashboard shows all of this live.
20
+
21
+ **Skill-based approaches hit a ceiling.** Skills and prompt instructions are probabilistic — the model can ignore them, misinterpret them, or hallucinate state. Deterministic coordination requires a tool, not a suggestion. feinai makes the workflow atomic, auditable, and race-free at the infrastructure level.
22
+
23
+ ---
24
+
25
+ ## What feinai is
26
+
27
+ A CLI + HTTP API + dashboard that serves as the single source of truth for multi-agent development workflows.
28
+
29
+ - **Specs** — what to build and why
30
+ - **Plans** — how to build it
31
+ - **Tasks** — atomic units of work, with dependencies, quality gates, and worktree links
32
+ - **Dashboard** — live view of every agent, every worktree, every file being touched
6
33
 
7
34
  ```bash
8
35
  feinai take TASK-121-A
9
36
  # → {id, subject, description, workplan, packages, quality_gates, worktree, ...}
10
- # One call. Everything the agent needs to start.
37
+ # One call. Everything the agent needs. Nothing it doesn't.
11
38
  ```
12
39
 
40
+ State lives in a local SQLite file. No cloud, no server, no account.
41
+
42
+ ---
43
+
13
44
  ## Install
14
45
 
15
46
  Requires [Bun](https://bun.sh) 1.3+.
@@ -18,15 +49,13 @@ Requires [Bun](https://bun.sh) 1.3+.
18
49
  bun install -g feinai
19
50
  ```
20
51
 
21
- This installs two binaries: `feinai` and `opengit` (safe git wrapper for parallel worktree workflows).
52
+ Installs two binaries: `feinai` and `opengit` (safe git wrapper for parallel worktrees).
22
53
 
23
54
  ### PATH setup
24
55
 
25
- Bun installs global binaries to `~/.bun/bin`. This directory is added to PATH in interactive terminals automatically. No extra steps needed for:
26
- - Interactive terminal sessions
27
- - Local AI agents (Claude Code, opencode running locally)
56
+ Works out of the box in interactive terminals and for local AI agents (Claude Code, opencode).
28
57
 
29
- **Non-interactive SSH sessions only** (e.g. `ssh host 'feinai status'`) require `~/.bun/bin` to be on PATH. Fix with a one-time symlink (requires sudo):
58
+ **Non-interactive SSH sessions only** (e.g. `ssh host 'feinai status'`) need a one-time fix:
30
59
 
31
60
  ```bash
32
61
  sudo ln -sf ~/.bun/bin/feinai /usr/local/bin/feinai
@@ -34,8 +63,6 @@ sudo ln -sf ~/.bun/bin/opengit /usr/local/bin/opengit
34
63
  sudo ln -sf ~/.bun/bin/bun /usr/local/bin/bun
35
64
  ```
36
65
 
37
- Or use a login shell: `ssh host 'bash -lc "feinai status"'`
38
-
39
66
  ### Activate Claude Code skills
40
67
 
41
68
  ```bash
@@ -46,122 +73,101 @@ for skill in feinai-sdd feinai-write-spec feinai-write-tasks feinai-dispatch fei
46
73
  done
47
74
  ```
48
75
 
49
- Skills activate automatically in projects that have `.tasca/tasca.db`.
76
+ ---
50
77
 
51
78
  ## Quick start
52
79
 
53
80
  ```bash
54
- # 1. Initialize feinai in your project
55
81
  cd my-project
56
- feinai init
57
- # → Creates .tasca/tasca.db (auto-added to .gitignore)
82
+ feinai init # creates .tasca/tasca.db, adds to .gitignore
58
83
 
59
- # 2. Add a spec
60
- feinai spec add SPEC-001 "User authentication" --content "## Goal\nAdd JWT auth..."
84
+ feinai spec add SPEC-001 "User authentication" --content "..."
85
+ feinai plan add SPEC-001 --content "..."
86
+ feinai add TASK-001-A "Create auth schema" --spec SPEC-001 --gate "pnpm typecheck"
61
87
 
62
- # 3. Add a plan
63
- feinai plan add SPEC-001 --content "## Steps\n1. Schema\n2. Routes\n3. Tests"
88
+ feinai take TASK-001-A # atomic claim returns full task payload
89
+ feinai done TASK-001-A --result "typecheck "
64
90
 
65
- # 4. Add tasks
66
- feinai add TASK-001-A "Create auth schema" \
67
- --spec SPEC-001 \
68
- --desc "Define schema for users table..." \
69
- --gate "pnpm typecheck" \
70
- --gate "pnpm test -- --run"
91
+ feinai server # live dashboard at http://127.0.0.1:8272
92
+ ```
71
93
 
72
- # 5. Agent claims a task (atomic)
73
- feinai take TASK-001-A
74
- # Owner auto-detected as "{parent_process}:{pid}:{username}"
75
- # Override via $FEINA_USER env var
94
+ ---
76
95
 
77
- # 6. Agent marks done
78
- feinai done TASK-001-A --result "typecheck ✓ test ✓"
79
- ```
96
+ ## Skills
80
97
 
81
- ## Commands
98
+ feinai ships five Claude Code skills covering the full development lifecycle:
82
99
 
83
- | Command | Purpose |
100
+ | Skill | Purpose |
84
101
  |---|---|
85
- | `feinai init` | Create `.tasca/tasca.db` in cwd |
86
- | `feinai status` | Summary: pending / in_progress / completed counts |
87
- | `feinai list [filters]` | List tasks with optional filters |
88
- | `feinai add ID "subject"` | Create a new task |
89
- | `feinai show ID` | Show full task detail |
90
- | `feinai take ID` | Atomically claim a pending task |
91
- | `feinai done ID --result "..."` | Mark task completed |
92
- | `feinai fail ID --error "..."` | Mark task failed |
93
- | `feinai block ID --by BLOCKER` | Add a dependency |
94
- | `feinai unblock ID --dep BLOCKER` | Remove a dependency |
95
- | `feinai spec add ID "title"` | Register a spec |
96
- | `feinai spec list` | List all specs |
97
- | `feinai spec show ID` | Spec details |
98
- | `feinai spec start ID` | Mark spec as in progress |
99
- | `feinai spec done ID --pr N` | Mark spec as completed |
100
- | `feinai git <cmd>` | Safe git wrapper (worktree-only whitelist) |
101
- | `feinai server [--port N]` | Start HTTP dashboard + REST API |
102
-
103
- Run `feinai --help` for full flag reference.
102
+ | `feinai-sdd` | Activates when `.tasca/tasca.db` exists teaches Claude the workflow |
103
+ | `feinai-write-spec` | Writes spec + plan into feinai from a design conversation |
104
+ | `feinai-write-tasks` | Decomposes plan into atomic tasks with parallelism analysis |
105
+ | `feinai-dispatch` | Orchestrates subagents in isolated git worktrees |
106
+ | `feinai-implement` | Claims and executes one task end-to-end |
107
+
108
+ Full lifecycle: design spec tasks parallel execution → merge.
109
+
110
+ ---
111
+
112
+ ## Commands
113
+
114
+ ```
115
+ feinai init Create .tasca/tasca.db
116
+ feinai status Pending / in_progress / completed counts
117
+ feinai list [--pending] [--spec X] List tasks
118
+ feinai add ID "subject" Create task
119
+ feinai take ID Atomic claim — returns full task JSON
120
+ feinai done ID --result "..." Mark completed
121
+ feinai fail ID --error "..." Mark failed
122
+ feinai release ID Release back to pending
123
+ feinai spec add/list/show/done Spec lifecycle
124
+ feinai plan add/show Plan versions
125
+ feinai git <cmd> Safe git wrapper (blocks merge/rebase/checkout)
126
+ feinai server [--port N] [-d] Dashboard + REST API
127
+ ```
128
+
129
+ ---
104
130
 
105
131
  ## Dashboard
106
132
 
107
133
  ```bash
108
- feinai server # http://127.0.0.1:8272
109
- feinai server --port 9000 # custom port
110
- feinai server -d # background daemon
134
+ feinai server -d # background, port 8272
135
+ feinai server --port 9000 # custom port
111
136
  ```
112
137
 
113
- The dashboard is a self-contained HTML page (no external assets). Features:
114
- - **Live Agents Monitor** — shows active agents, worktree path, repo, files being touched, elapsed time
115
- - **Presence indicator** — green ripple when agents active, gray when idle
116
- - **Real-time updates via SSE** — reacts instantly to CLI mutations
117
- - **Action buttons** — take / done / fail tasks directly from UI
118
- - **Full-text search** — across specs, plans, and tasks
138
+ Shows per agent: task ID, worktree path, repo, files being modified, elapsed time. Green ripple when agents are active, gray when idle. Real-time via SSE.
139
+
140
+ ---
119
141
 
120
- ## `feinai git` — safe git wrapper
142
+ ## `feinai git`
121
143
 
122
- `feinai git` enforces a worktree-only workflow for parallel agent safety. It blocks operations that would interfere with other agents working in parallel:
144
+ Safe git wrapper that enforces worktree-only workflow. Blocks operations that break parallel work:
123
145
 
124
146
  ```bash
125
147
  feinai git worktree add .worktrees/TASK-001 origin/main
126
- feinai git add .
127
- feinai git commit -m "feat: ..."
148
+ feinai git add . && feinai git commit -m "feat: ..."
128
149
  feinai git push origin HEAD:main
129
150
  feinai git complete # sync main after push
130
151
  ```
131
152
 
132
- Blocked: `branch`, `checkout`, `merge`, `rebase`, `reset`, `fetch`, `pull`, `stash`, `clone`.
133
-
134
- `opengit` is also available as a standalone command (installed alongside `feinai`).
153
+ Blocked: `branch`, `checkout`, `merge`, `rebase`, `reset`, `fetch`, `pull`, `clone`.
135
154
 
136
- ## Claude Code skills
137
-
138
- feinai ships five skills covering the full Spec-Driven Development cycle:
139
-
140
- | Skill | Purpose |
141
- |---|---|
142
- | `feinai-sdd` | Master skill — activates when `.tasca/tasca.db` exists |
143
- | `feinai-write-spec` | Writes spec + plan into feinai |
144
- | `feinai-write-tasks` | Decomposes plan into atomic tasks with parallelism analysis |
145
- | `feinai-dispatch` | Orchestrates subagents in git worktrees |
146
- | `feinai-implement` | Claims and executes one task in an isolated worktree |
155
+ ---
147
156
 
148
157
  ## Architecture
149
158
 
150
159
  ```
151
- <project>/.tasca/tasca.db local SQLite, auto-discovered like .git
160
+ <project>/.tasca/tasca.db local SQLite, walks up from cwd like .git
152
161
 
153
- Tables:
154
- specs (id, title, status, content, plan versions...)
155
- tasks (id, spec_id, subject, description, status, owner,
156
- blocked_by, packages, quality_gates, worktree, result, error...)
157
- events (append-only audit log — actor, operation, timestamp)
162
+ specs — what to build
163
+ plans how to build it (versioned)
164
+ tasks atomic work units with blocked_by, quality_gates, worktree
165
+ events — append-only audit log: {parent_process}:{pid}:{user}
158
166
  ```
159
167
 
160
- feinai walks up the directory tree from `cwd` looking for `.tasca/tasca.db`, the same way git locates `.git`.
161
-
162
- ### Audit log
168
+ Every mutation is logged. Every agent is identified. Override identity with `$FEINA_USER`.
163
169
 
164
- Every mutation records `{parent_process}:{pid}:{username}` (e.g. `claude:12345:m`, `opencode:67890:m`). Override with `$FEINA_USER`.
170
+ ---
165
171
 
166
172
  ## License
167
173
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feinai",
3
- "version": "0.5.1",
3
+ "version": "0.5.3",
4
4
  "description": "Task & spec manager for AI agents — parallel worktrees, live dashboard, SDD skills",
5
5
  "type": "module",
6
6
  "bin": {
@@ -29,11 +29,11 @@
29
29
  "license": "MIT",
30
30
  "repository": {
31
31
  "type": "git",
32
- "url": "https://github.com/mvisca/feina.git"
32
+ "url": "https://github.com/mvisca/feinai.git"
33
33
  },
34
- "homepage": "https://github.com/mvisca/feina#readme",
34
+ "homepage": "https://github.com/mvisca/feinai#readme",
35
35
  "bugs": {
36
- "url": "https://github.com/mvisca/feina/issues"
36
+ "url": "https://github.com/mvisca/feinai/issues"
37
37
  },
38
38
  "engines": {
39
39
  "bun": ">=1.3.0",
package/src/cli.ts CHANGED
@@ -48,7 +48,7 @@ import {
48
48
  type OutputFormat,
49
49
  } from "./format";
50
50
 
51
- const VERSION = "0.5.1";
51
+ const VERSION = "0.5.3";
52
52
 
53
53
  interface ParsedArgs {
54
54
  positional: string[];