fathom-cli 0.1.7 → 0.2.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 +51 -147
- package/dist/index.js +3549 -2597
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
# fathom-cli
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
intake → estimate → build (tracked) → reconcile → calibrate → velocity
|
|
7
|
-
```
|
|
3
|
+
Estimate AI token costs before work, track actuals during work, and calibrate your estimates after. One command runs the full loop.
|
|
8
4
|
|
|
9
5
|
## Install
|
|
10
6
|
|
|
@@ -12,179 +8,87 @@ intake → estimate → build (tracked) → reconcile → calibrate → velocity
|
|
|
12
8
|
npm install -g fathom-cli
|
|
13
9
|
```
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
# Quick estimate — "how much will this cost?"
|
|
19
|
-
# AI scores complexity automatically when ANTHROPIC_API_KEY is set
|
|
20
|
-
fathom estimate "React dashboard with OAuth"
|
|
21
|
-
|
|
22
|
-
# Generate a full spec sheet — "break this down into work items"
|
|
23
|
-
fathom intake "Users say the calendar is slow and Zoom links are missing" --project myapp
|
|
24
|
-
|
|
25
|
-
# Analyze a full spec with multiple features
|
|
26
|
-
fathom analyze spec.md --project myapp
|
|
27
|
-
|
|
28
|
-
# Scaffold tracking for an existing project
|
|
29
|
-
fathom setup --project myapp
|
|
30
|
-
|
|
31
|
-
# Import and auto-tag Claude Code sessions
|
|
32
|
-
fathom track --project myapp
|
|
33
|
-
|
|
34
|
-
# Compare estimates vs actuals
|
|
35
|
-
fathom reconcile --project myapp
|
|
36
|
-
|
|
37
|
-
# See velocity metrics
|
|
38
|
-
fathom velocity --project myapp
|
|
39
|
-
```
|
|
11
|
+
Add `ANTHROPIC_API_KEY` to your project's `.env` file (auto-loaded).
|
|
40
12
|
|
|
41
|
-
##
|
|
42
|
-
|
|
43
|
-
| Command | Description |
|
|
44
|
-
|---------|-------------|
|
|
45
|
-
| `fathom estimate <desc>` | Quick cost estimate — AI scores complexity, returns tokens + cost |
|
|
46
|
-
| `fathom intake <text>` | Generate spec sheet — extracts work items, estimates each, outputs markdown |
|
|
47
|
-
| `fathom analyze <spec>` | Parse spec, estimate all features, generate registry |
|
|
48
|
-
| `fathom track` | Import Claude Code sessions, auto-tag to features |
|
|
49
|
-
| `fathom reconcile` | Compare estimates vs actuals per feature |
|
|
50
|
-
| `fathom calibrate` | Show drift and suggest profile adjustments |
|
|
51
|
-
| `fathom velocity` | Velocity metrics and benchmarks |
|
|
52
|
-
| `fathom status` | Project overview with tracking data |
|
|
53
|
-
| `fathom pricing` | Show current model pricing |
|
|
54
|
-
| `fathom setup` | Scaffold `.claude/` skill + hooks + registry |
|
|
55
|
-
| `fathom rename <name>` | Rename project across all config files |
|
|
56
|
-
| `fathom validate <spec>` | Validate spec file format |
|
|
57
|
-
| `fathom init` | Initialize global config |
|
|
58
|
-
|
|
59
|
-
## How It Works
|
|
60
|
-
|
|
61
|
-
### 1. Estimate vs Intake (Before Work)
|
|
62
|
-
|
|
63
|
-
**`estimate`** — quick cost number from a description:
|
|
13
|
+
## One Command
|
|
64
14
|
|
|
65
15
|
```bash
|
|
66
|
-
fathom
|
|
67
|
-
# AI analyzes → L complexity, 205K tokens, $2.51, recommends Sonnet
|
|
68
|
-
# Use --complexity M to override, --no-ai for heuristic-only scoring
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
**`intake`** — full spec sheet from raw feedback:
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
# Interactive mode — auto-detects project, shows local files to pick from,
|
|
75
|
-
# prompts where to save the spec
|
|
76
|
-
fathom intake
|
|
77
|
-
|
|
78
|
-
# Or pass everything directly
|
|
79
|
-
fathom intake --file meeting-notes.md -o intake-specs/sprint-plan.md
|
|
16
|
+
fathom
|
|
80
17
|
```
|
|
81
18
|
|
|
82
|
-
|
|
19
|
+
That's it. `fathom` with no arguments walks through the entire workflow:
|
|
83
20
|
|
|
84
|
-
|
|
21
|
+
1. **Intake** — extracts work items from your requirements, estimates tokens + cost
|
|
22
|
+
2. **Build** — generates a context-rich prompt and launches Claude Code
|
|
23
|
+
3. **Review** — tracks sessions, reconciles estimates vs actuals, calibrates
|
|
85
24
|
|
|
86
|
-
|
|
25
|
+
New project? It auto-scaffolds everything. Returning project? Shows progress and offers contextual next steps:
|
|
87
26
|
|
|
88
|
-
### 2. Track (During Work)
|
|
89
|
-
|
|
90
|
-
Fathom automatically discovers Claude Code sessions from `~/.claude/projects/` and tags them to features using a 4-signal cascade:
|
|
91
|
-
|
|
92
|
-
1. **Explicit feature ID** in conversation → 99% confidence
|
|
93
|
-
2. **Git branch** pattern match → 85%
|
|
94
|
-
3. **Keyword** match → 75%
|
|
95
|
-
4. **File path** match → 70%
|
|
96
|
-
|
|
97
|
-
Zero configuration needed — just run `fathom track`.
|
|
98
|
-
|
|
99
|
-
### 3. Reconcile + Calibrate (After Work)
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
fathom reconcile --project myapp
|
|
103
|
-
# Shows: Feature | Estimated | Actual | Drift% | Cost | Sessions
|
|
104
|
-
|
|
105
|
-
fathom calibrate --project myapp
|
|
106
|
-
# Shows: Feature | Drift | Suggested adjustment multiplier
|
|
107
27
|
```
|
|
28
|
+
$ fathom
|
|
108
29
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
### 4. Velocity Intelligence
|
|
30
|
+
Fathom — myproject
|
|
31
|
+
6/12 features complete (50%) — $8.40 of $14.20 spent
|
|
112
32
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
33
|
+
What would you like to do?
|
|
34
|
+
❯ Continue building (next: payment-integration)
|
|
35
|
+
New intake — add more work
|
|
36
|
+
Review — reconcile recent sessions
|
|
37
|
+
Status overview
|
|
116
38
|
```
|
|
117
39
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
Fathom includes a real-time web dashboard (Next.js + Convex) with 7 views: overview, projects, burn-down, intake queue, cost analytics, velocity benchmarks, and calibration health.
|
|
40
|
+
Resume from any phase:
|
|
121
41
|
|
|
122
42
|
```bash
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
# All commands auto-sync when CONVEX_URL is set
|
|
127
|
-
fathom analyze spec.md --project myapp # → syncs estimates
|
|
128
|
-
fathom track --project myapp # → syncs actuals
|
|
43
|
+
fathom --from build # Skip intake
|
|
44
|
+
fathom --from review # Just track + reconcile + calibrate
|
|
45
|
+
fathom --auto # Skip all confirmations
|
|
129
46
|
```
|
|
130
47
|
|
|
131
|
-
|
|
48
|
+
## Build Modes
|
|
132
49
|
|
|
133
|
-
|
|
50
|
+
Fathom offers three ways to build (choice is remembered):
|
|
134
51
|
|
|
135
|
-
|
|
52
|
+
- **Launch Claude Code** — opens Claude with full project context, priority queue, and feature details
|
|
53
|
+
- **Worktree** — creates an isolated git branch per feature, launches Claude in it
|
|
54
|
+
- **Manual** — prints the spec path and build prompt so you can build however you want
|
|
136
55
|
|
|
137
|
-
|
|
138
|
-
# Interactive — detects files in cwd, prompts for everything
|
|
139
|
-
fathom intake
|
|
140
|
-
|
|
141
|
-
# Direct — pass input and output explicitly
|
|
142
|
-
fathom intake --file meeting-notes.md -o intake-specs/plan.md
|
|
143
|
-
|
|
144
|
-
# Pipe-friendly — markdown to stdout
|
|
145
|
-
fathom intake --file feedback.md --markdown
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
When run interactively, intake will:
|
|
149
|
-
1. Auto-detect your project name (or prompt + save it)
|
|
150
|
-
2. List markdown/text files in your current directory to pick from
|
|
151
|
-
3. Show a results table, then ask where to save the spec
|
|
152
|
-
4. Remember your preferred output directory for next time
|
|
56
|
+
## Individual Commands
|
|
153
57
|
|
|
154
|
-
|
|
58
|
+
All commands also work standalone:
|
|
155
59
|
|
|
156
|
-
|
|
60
|
+
| Command | What it does |
|
|
61
|
+
|---------|-------------|
|
|
62
|
+
| `fathom` | **Full workflow** — intake → build → review |
|
|
63
|
+
| `fathom intake` | Generate a spec from raw feedback (interactive) |
|
|
64
|
+
| `fathom estimate <desc>` | Quick cost estimate for a single feature |
|
|
65
|
+
| `fathom analyze <spec>` | Parse an existing spec and estimate all features |
|
|
66
|
+
| `fathom setup` | Scaffold project tracking in `.claude/` |
|
|
67
|
+
| `fathom track` | Import Claude Code sessions, auto-tag to features |
|
|
68
|
+
| `fathom reconcile` | Compare estimates vs actuals |
|
|
69
|
+
| `fathom calibrate` | Adjust profiles from real data |
|
|
70
|
+
| `fathom velocity` | Throughput metrics and benchmarks |
|
|
71
|
+
| `fathom status` | Project overview |
|
|
72
|
+
| `fathom rename <name>` | Rename project across config files |
|
|
73
|
+
| `fathom pricing` | Show model pricing |
|
|
157
74
|
|
|
158
75
|
## Environment Variables
|
|
159
76
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
| Variable | Required | Purpose |
|
|
163
|
-
|----------|----------|---------|
|
|
164
|
-
| `ANTHROPIC_API_KEY` | For `estimate` + `intake` | AI complexity scoring and work item extraction |
|
|
165
|
-
| `CONVEX_URL` | Optional | Enable dashboard sync |
|
|
166
|
-
|
|
167
|
-
## Spec Format
|
|
77
|
+
Auto-loaded from `.env` in your project directory.
|
|
168
78
|
|
|
169
|
-
|
|
79
|
+
| Variable | Purpose |
|
|
80
|
+
|----------|---------|
|
|
81
|
+
| `ANTHROPIC_API_KEY` | Required for `intake` and `estimate` |
|
|
82
|
+
| `CONVEX_URL` | Optional — enables real-time dashboard sync |
|
|
170
83
|
|
|
171
|
-
|
|
172
|
-
### Feature: User Authentication
|
|
173
|
-
- **Complexity**: L
|
|
174
|
-
- **Category**: Infrastructure
|
|
175
|
-
- **Description**: OAuth2 with Google + email/password login
|
|
84
|
+
## Dashboard
|
|
176
85
|
|
|
177
|
-
|
|
178
|
-
- **Complexity**: M
|
|
179
|
-
- **Category**: Frontend
|
|
180
|
-
- **Description**: Main dashboard with metrics and charts
|
|
181
|
-
```
|
|
86
|
+
Optional web dashboard (Next.js + Convex) with project burn-down, velocity charts, cost analytics, and more. All CLI commands auto-sync when `CONVEX_URL` is set. See the [repo](https://github.com/olivelliott/fathom) for setup.
|
|
182
87
|
|
|
183
88
|
## Links
|
|
184
89
|
|
|
185
|
-
- [GitHub
|
|
186
|
-
- [
|
|
187
|
-
- [Report an Issue](https://github.com/olivelliott/fathom/issues)
|
|
90
|
+
- [GitHub](https://github.com/olivelliott/fathom)
|
|
91
|
+
- [Issues](https://github.com/olivelliott/fathom/issues)
|
|
188
92
|
|
|
189
93
|
## License
|
|
190
94
|
|