fathom-cli 0.1.1 → 0.1.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 CHANGED
@@ -15,8 +15,12 @@ npm install -g fathom-cli
15
15
  ## Quick Start
16
16
 
17
17
  ```bash
18
- # Estimate a feature in seconds
19
- fathom estimate "React dashboard with OAuth" --complexity L
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
20
24
 
21
25
  # Analyze a full spec with multiple features
22
26
  fathom analyze spec.md --project myapp
@@ -38,9 +42,9 @@ fathom velocity --project myapp
38
42
 
39
43
  | Command | Description |
40
44
  |---------|-------------|
41
- | `fathom estimate <desc>` | Quick single-feature token + cost estimate |
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 |
42
47
  | `fathom analyze <spec>` | Parse spec, estimate all features, generate registry |
43
- | `fathom intake <text>` | Extract work items from raw feedback via Claude API |
44
48
  | `fathom track` | Import Claude Code sessions, auto-tag to features |
45
49
  | `fathom reconcile` | Compare estimates vs actuals per feature |
46
50
  | `fathom calibrate` | Show drift and suggest profile adjustments |
@@ -53,16 +57,28 @@ fathom velocity --project myapp
53
57
 
54
58
  ## How It Works
55
59
 
56
- ### 1. Estimate (Before Work)
60
+ ### 1. Estimate vs Intake (Before Work)
57
61
 
58
- Write a spec with `### Feature:` headings, or just describe a feature:
62
+ **`estimate`** quick cost number from a description:
59
63
 
60
64
  ```bash
61
- fathom estimate "Build a real-time chat system with WebSocket support" --complexity L
62
- # → 205,865 tokens, $2.51 estimated cost, recommends Sonnet
65
+ fathom estimate "Build a real-time chat system with WebSocket support"
66
+ # AI analyzes L complexity, 205K tokens, $2.51, recommends Sonnet
67
+ # Use --complexity M to override, --no-ai for heuristic-only scoring
63
68
  ```
64
69
 
65
- Estimates use a calibrated model: base tokens per task type × complexity multiplier × overhead (context resend, tool calls, thinking, error recovery, planning, review).
70
+ **`intake`** full spec sheet from raw feedback:
71
+
72
+ ```bash
73
+ fathom intake "Users need real-time chat and the Zoom integration is broken" --project myapp
74
+ # Extracts discrete work items, classifies each by complexity/priority,
75
+ # estimates tokens + cost per item, attaches velocity benchmarks,
76
+ # outputs structured markdown spec ready for implementation
77
+ ```
78
+
79
+ Use `estimate` when you want a quick number. Use `intake` when you want a plan.
80
+
81
+ Both use a calibrated model: base tokens per task type × complexity multiplier × overhead (context resend, tool calls, thinking, error recovery, planning, review).
66
82
 
67
83
  ### 2. Track (During Work)
68
84
 
@@ -127,7 +143,7 @@ Requires `ANTHROPIC_API_KEY` environment variable.
127
143
 
128
144
  | Variable | Required | Purpose |
129
145
  |----------|----------|---------|
130
- | `ANTHROPIC_API_KEY` | For `intake` only | Claude API for work item extraction |
146
+ | `ANTHROPIC_API_KEY` | For `estimate` + `intake` | AI complexity scoring and work item extraction |
131
147
  | `CONVEX_URL` | Optional | Enable dashboard sync |
132
148
 
133
149
  ## Spec Format
@@ -0,0 +1,78 @@
1
+ {
2
+ "version": 1,
3
+ "updated": "2026-03-05",
4
+ "models": [
5
+ {
6
+ "id": "claude-opus-4-6",
7
+ "provider": "anthropic",
8
+ "name": "Claude Opus 4.6",
9
+ "input_per_mtok": 15.0,
10
+ "output_per_mtok": 75.0,
11
+ "cache_read_per_mtok": 1.5,
12
+ "batch_discount": 0.5,
13
+ "tier": "frontier"
14
+ },
15
+ {
16
+ "id": "claude-sonnet-4-6",
17
+ "provider": "anthropic",
18
+ "name": "Claude Sonnet 4.6",
19
+ "input_per_mtok": 3.0,
20
+ "output_per_mtok": 15.0,
21
+ "cache_read_per_mtok": 0.3,
22
+ "batch_discount": 0.5,
23
+ "tier": "balanced"
24
+ },
25
+ {
26
+ "id": "claude-haiku-4-5",
27
+ "provider": "anthropic",
28
+ "name": "Claude Haiku 4.5",
29
+ "input_per_mtok": 1.0,
30
+ "output_per_mtok": 5.0,
31
+ "cache_read_per_mtok": 0.1,
32
+ "batch_discount": 0.5,
33
+ "tier": "speed"
34
+ }
35
+ ],
36
+ "recommendations": {
37
+ "architecture": {
38
+ "model": "claude-opus-4-6",
39
+ "reason": "Deep reasoning, trade-off analysis"
40
+ },
41
+ "complex-implementation": {
42
+ "model": "claude-sonnet-4-6",
43
+ "reason": "Best cost/capability for multi-file coding"
44
+ },
45
+ "standard-crud": {
46
+ "model": "claude-sonnet-4-6",
47
+ "reason": "Reliable, fast, cost-effective"
48
+ },
49
+ "scaffolding": {
50
+ "model": "claude-haiku-4-5",
51
+ "reason": "Speed + cost over reasoning depth"
52
+ },
53
+ "documentation": {
54
+ "model": "claude-haiku-4-5",
55
+ "reason": "Straightforward generation"
56
+ },
57
+ "test-generation": {
58
+ "model": "claude-sonnet-4-6",
59
+ "reason": "Needs code logic understanding"
60
+ },
61
+ "code-review": {
62
+ "model": "claude-opus-4-6",
63
+ "reason": "Benefits from deeper reasoning"
64
+ },
65
+ "debugging": {
66
+ "model": "claude-opus-4-6",
67
+ "reason": "Benefits from deeper reasoning"
68
+ },
69
+ "refactoring-architectural": {
70
+ "model": "claude-opus-4-6",
71
+ "reason": "Needs system-wide understanding"
72
+ },
73
+ "refactoring-mechanical": {
74
+ "model": "claude-sonnet-4-6",
75
+ "reason": "Pattern application"
76
+ }
77
+ }
78
+ }