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.
- package/README.md +96 -90
- package/package.json +4 -4
- package/src/cli.ts +1 -1
package/README.md
CHANGED
|
@@ -1,15 +1,46 @@
|
|
|
1
|
-
# feinai
|
|
1
|
+
# feinai
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Multi-agent development breaks down without coordination infrastructure.**
|
|
4
4
|
|
|
5
|
-
|
|
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
|
|
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
|
-
|
|
52
|
+
Installs two binaries: `feinai` and `opengit` (safe git wrapper for parallel worktrees).
|
|
22
53
|
|
|
23
54
|
### PATH setup
|
|
24
55
|
|
|
25
|
-
|
|
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'`)
|
|
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
|
-
|
|
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
|
-
|
|
60
|
-
feinai
|
|
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
|
-
#
|
|
63
|
-
feinai
|
|
88
|
+
feinai take TASK-001-A # atomic claim — returns full task payload
|
|
89
|
+
feinai done TASK-001-A --result "typecheck ✓"
|
|
64
90
|
|
|
65
|
-
#
|
|
66
|
-
|
|
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
|
-
|
|
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
|
-
|
|
78
|
-
feinai done TASK-001-A --result "typecheck ✓ test ✓"
|
|
79
|
-
```
|
|
96
|
+
## Skills
|
|
80
97
|
|
|
81
|
-
|
|
98
|
+
feinai ships five Claude Code skills covering the full development lifecycle:
|
|
82
99
|
|
|
83
|
-
|
|
|
100
|
+
| Skill | Purpose |
|
|
84
101
|
|---|---|
|
|
85
|
-
| `feinai
|
|
86
|
-
| `feinai
|
|
87
|
-
| `feinai
|
|
88
|
-
| `feinai
|
|
89
|
-
| `feinai
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
|
109
|
-
feinai server --port 9000
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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`
|
|
142
|
+
## `feinai git`
|
|
121
143
|
|
|
122
|
-
|
|
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`, `
|
|
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
|
-
|
|
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,
|
|
160
|
+
<project>/.tasca/tasca.db local SQLite, walks up from cwd like .git
|
|
152
161
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
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
|
-
|
|
161
|
-
|
|
162
|
-
### Audit log
|
|
168
|
+
Every mutation is logged. Every agent is identified. Override identity with `$FEINA_USER`.
|
|
163
169
|
|
|
164
|
-
|
|
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.
|
|
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/
|
|
32
|
+
"url": "https://github.com/mvisca/feinai.git"
|
|
33
33
|
},
|
|
34
|
-
"homepage": "https://github.com/mvisca/
|
|
34
|
+
"homepage": "https://github.com/mvisca/feinai#readme",
|
|
35
35
|
"bugs": {
|
|
36
|
-
"url": "https://github.com/mvisca/
|
|
36
|
+
"url": "https://github.com/mvisca/feinai/issues"
|
|
37
37
|
},
|
|
38
38
|
"engines": {
|
|
39
39
|
"bun": ">=1.3.0",
|