loki-mode 10.2.4 → 10.3.0
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/SKILL.md +2 -2
- package/VERSION +1 -1
- package/autonomy/lib/engine10-push.sh +12 -1
- package/autonomy/lib/modernize/java_capture.sh +444 -0
- package/dashboard/__init__.py +1 -1
- package/docs/INSTALLATION.md +1 -1
- package/docs/v10/BOARD.md +33 -19
- package/docs/v10/DECISIONS.md +14 -0
- package/docs/v10/GUARDS.md +185 -0
- package/docs/v10/METRICS.md +72 -0
- package/docs/v10/PROGRESS.md +16 -0
- package/docs/v10/SCALE.md +140 -0
- package/loki-ts/dist/loki.js +532 -517
- package/mcp/__init__.py +1 -1
- package/package.json +1 -1
- package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
- package/web-app/dist/assets/{AdminPage-eQXdHXYt.js → AdminPage-CunIYKsu.js} +1 -1
- package/web-app/dist/assets/{Avatar-Cbq_YoKG.js → Avatar-Dpl2qVf5.js} +1 -1
- package/web-app/dist/assets/{Badge-Bf2YbPlq.js → Badge-DDZcQ4uC.js} +1 -1
- package/web-app/dist/assets/{Button-m47uo_Ku.js → Button-Ccuh5Ouj.js} +1 -1
- package/web-app/dist/assets/{CockpitPage-D3I1mk1l.js → CockpitPage-Dgakdozm.js} +1 -1
- package/web-app/dist/assets/{ComparePage-DndEwh3t.js → ComparePage-9-Zcu9Gf.js} +1 -1
- package/web-app/dist/assets/{ErrorBoundary-BROcmCtb.js → ErrorBoundary-CI756a2c.js} +1 -1
- package/web-app/dist/assets/{EvidenceReceiptPanel-CDWtDvCB.js → EvidenceReceiptPanel-BC3TA-vV.js} +1 -1
- package/web-app/dist/assets/{GitHubIssuesPanel-DIOTibpr.js → GitHubIssuesPanel-BdCsjPq2.js} +1 -1
- package/web-app/dist/assets/{GitHubPRsPanel-BF-AGU2d.js → GitHubPRsPanel-DgXyzC-S.js} +1 -1
- package/web-app/dist/assets/{HomePage-2YlGCRSq.js → HomePage-Cijve3Mw.js} +2 -2
- package/web-app/dist/assets/{LoginPage-BLAVCbdI.js → LoginPage-3exGWWVo.js} +1 -1
- package/web-app/dist/assets/{MagicPage-DYB7zO4C.js → MagicPage-Bjy-pGNt.js} +1 -1
- package/web-app/dist/assets/{MetricsPage-BWTZik6G.js → MetricsPage-CpJIaU8q.js} +1 -1
- package/web-app/dist/assets/{NotFoundPage-BvHNzDtM.js → NotFoundPage-fpgcK9hA.js} +1 -1
- package/web-app/dist/assets/{ProjectPage-DFnE7sDT.js → ProjectPage-O7UQyFey.js} +3 -3
- package/web-app/dist/assets/{ProjectsPage-DI7FRVqN.js → ProjectsPage-DdOZUQGM.js} +1 -1
- package/web-app/dist/assets/{SettingsPage-DNCAAx8z.js → SettingsPage-D3lNwNFK.js} +1 -1
- package/web-app/dist/assets/{ShowcasePage-CP5Qu7p0.js → ShowcasePage-DBeFTDWM.js} +1 -1
- package/web-app/dist/assets/{SystemSettingsPage-DUUDSzvl.js → SystemSettingsPage-CJhMBNIO.js} +1 -1
- package/web-app/dist/assets/{TeamsPage-PgoErlQQ.js → TeamsPage-C6mmPl9W.js} +1 -1
- package/web-app/dist/assets/{TemplatesPage-YUH-oqY6.js → TemplatesPage-Brej2rqO.js} +1 -1
- package/web-app/dist/assets/{TerminalOutput-e9IOhCIJ.js → TerminalOutput-C__6qBqv.js} +1 -1
- package/web-app/dist/assets/{activity-DG6LhfD6.js → activity-CrVuKK_W.js} +1 -1
- package/web-app/dist/assets/{bell-BIlVh-R0.js → bell-26fqzcLm.js} +1 -1
- package/web-app/dist/assets/{bot-Dd6TKJAQ.js → bot-DmykFcjH.js} +1 -1
- package/web-app/dist/assets/{check-BACaH3Lu.js → check-CzSi5Vci.js} +1 -1
- package/web-app/dist/assets/{chevron-left-D27ETmwY.js → chevron-left-NsdJXeCD.js} +1 -1
- package/web-app/dist/assets/{circle-alert-Dv0y5b8X.js → circle-alert-BuKEAV8n.js} +1 -1
- package/web-app/dist/assets/{clock-DNcEDLsq.js → clock-DPpOjTHt.js} +1 -1
- package/web-app/dist/assets/{cloud-D3e982_4.js → cloud-BPy4rC85.js} +1 -1
- package/web-app/dist/assets/{code-xml-Jn99mnh2.js → code-xml-CUdET1iT.js} +1 -1
- package/web-app/dist/assets/{database-BYopstq7.js → database-DS_5uXW_.js} +1 -1
- package/web-app/dist/assets/{dollar-sign-Ckdru5sX.js → dollar-sign-CgSGxJa7.js} +1 -1
- package/web-app/dist/assets/{file-code-corner-CR_XHBuq.js → file-code-corner-B7iTiGB-.js} +1 -1
- package/web-app/dist/assets/{file-plus-CJK2zCi5.js → file-plus-rxLXNljV.js} +1 -1
- package/web-app/dist/assets/{globe-DsJAfapI.js → globe-CVJMaRaH.js} +1 -1
- package/web-app/dist/assets/{hammer-CCfX6dtE.js → hammer-C9KdE6y9.js} +1 -1
- package/web-app/dist/assets/{index-BcMLdeIJ.js → index-B21YEJCf.js} +2 -2
- package/web-app/dist/assets/{layers-DkPwwir1.js → layers-DNIDOX7S.js} +1 -1
- package/web-app/dist/assets/{loader-circle-BDJY-BHu.js → loader-circle-HrXWSqei.js} +1 -1
- package/web-app/dist/assets/{lock-D__DVRVP.js → lock-SfmCbb4w.js} +1 -1
- package/web-app/dist/assets/{package-CF52PhgO.js → package-CwpZESj_.js} +1 -1
- package/web-app/dist/assets/{plus-CsK1YBrK.js → plus-DLh1-x2y.js} +1 -1
- package/web-app/dist/assets/{refresh-cw-CG7qx2F2.js → refresh-cw-DxJsH1dQ.js} +1 -1
- package/web-app/dist/assets/{rotate-ccw-CJXqRyCt.js → rotate-ccw-Dkny920M.js} +1 -1
- package/web-app/dist/assets/{scroll-text-RRD8Xlqa.js → scroll-text-CsPrAnD5.js} +1 -1
- package/web-app/dist/assets/{server-C_viwP5Q.js → server-E6pPKQNp.js} +1 -1
- package/web-app/dist/assets/{shield-alert-Dp2ptWpB.js → shield-alert-C0Xh-M1C.js} +1 -1
- package/web-app/dist/assets/{thumbs-up-DXZNijzT.js → thumbs-up-oWNeyoZv.js} +1 -1
- package/web-app/dist/assets/{trash-2-Bh7pd-IU.js → trash-2-BMv5WQCZ.js} +1 -1
- package/web-app/dist/assets/{trending-down-Cj7vHjU0.js → trending-down-CUoz-SBV.js} +1 -1
- package/web-app/dist/assets/{trending-up-ZRSu2LPd.js → trending-up-CI1-zKRQ.js} +1 -1
- package/web-app/dist/assets/{upload-BpNNVHZI.js → upload-CBtBD85L.js} +1 -1
- package/web-app/dist/assets/{usePolling-jDMr8GDE.js → usePolling-CxtCw8cL.js} +1 -1
- package/web-app/dist/assets/{user-D_RBM_BF.js → user-cDtPlp5V.js} +1 -1
- package/web-app/dist/index.html +1 -1
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# SCALE: what the plan sustains and what 50 engineers would need (G-03, D39)
|
|
2
|
+
|
|
3
|
+
Written 2026-09-28 by the CTO (opus). Every number is either MEASURED (command and window
|
|
4
|
+
given), PUBLISHED (source URL given) or ESTIMATE (basis given). Billing is the founder's call.
|
|
5
|
+
|
|
6
|
+
## 1. Measured burn (MEASURED, local jsonl only)
|
|
7
|
+
|
|
8
|
+
Source: `~/.claude/projects/**/*.jsonl`, assistant rows with a `usage` field, window ending
|
|
9
|
+
2026-09-28 17:47Z. Local transcripts miss cloud and remote agents, so every figure is a lower bound.
|
|
10
|
+
|
|
11
|
+
Counting method matters. Claude Code writes one jsonl row per content block and repeats the
|
|
12
|
+
same `usage` on each row. Two methods, same hour:
|
|
13
|
+
|
|
14
|
+
| Last 1h (17:47Z) | Raw sum of rows (D39 method) | Deduplicated (max per message id + requestId) |
|
|
15
|
+
|----------------------------|------------------------------|-----------------------------------------------|
|
|
16
|
+
| Output tokens | 2.07M | 1.87M (sonnet 1.62M, opus 0.24M, haiku 0.005M) |
|
|
17
|
+
| Cache-read tokens | 1.17B | 0.634B (sonnet 552M, opus 81M) |
|
|
18
|
+
| Cache-write tokens | not summed | 6.51M (sonnet 5.03M, opus 1.40M); 92% 5-minute TTL |
|
|
19
|
+
| Uncached input tokens | not summed | 6.3K |
|
|
20
|
+
| API requests | 5,824 rows | 3,119 (peak 114 per minute) |
|
|
21
|
+
|
|
22
|
+
- The deduplicated count is the basis below. The D39 cache-read figure (1.15B) double counts
|
|
23
|
+
about 1.8x; D39 and METRICS.md should carry the deduplicated numbers.
|
|
24
|
+
- Last 5h, deduplicated: output 6.01M (sonnet 5.21M, opus 0.80M), cache read 1.85B.
|
|
25
|
+
- Models seen in the last hour: claude-sonnet-5 (2,808 requests), claude-opus-5-5 (305),
|
|
26
|
+
claude-haiku-4-5 (6). Opus share of output: 13%.
|
|
27
|
+
- Concurrency, measured: distinct transcript files with at least one request per 5-minute slot
|
|
28
|
+
over the hour: 11, 11, 8, 12, 9, 12, 11, 21, 18, 20, 17, 17 (average 13.9). The stated
|
|
29
|
+
16 to 19 agents matches the last 25 minutes.
|
|
30
|
+
- Peak minute (deduplicated): 66K output tokens, 561K ITPM-counted input (uncached input plus
|
|
31
|
+
cache writes; cache reads do not count toward ITPM), 114 requests.
|
|
32
|
+
|
|
33
|
+
## 2. API-equivalent cost of the measured hour (PUBLISHED prices)
|
|
34
|
+
|
|
35
|
+
Prices from https://platform.claude.com/docs/en/about-claude/pricing (fetched 2026-09-28):
|
|
36
|
+
|
|
37
|
+
| Model | Input | 5m cache write | 1h cache write | Cache read | Output |
|
|
38
|
+
|------------------|-------|----------------|----------------|------------|--------|
|
|
39
|
+
| claude-sonnet-5 | $2 | $2.50 | $4 | $0.20 | $10 |
|
|
40
|
+
| claude-opus-5-5 | $4 | $5 | $8 | $0.20 | $20 |
|
|
41
|
+
| claude-haiku-4-5 | $1 | $1.25 | $2 | $0.10 | $5 |
|
|
42
|
+
|
|
43
|
+
(USD per million tokens. Sonnet 5 $2/$10 is now the standard price, per the pricing page footnote.)
|
|
44
|
+
|
|
45
|
+
Measured hour at list price (cache writes priced at the 5-minute rate; the 1h share adds under $1):
|
|
46
|
+
- Sonnet: cache read $110.49 + output $16.25 + cache write $12.59 = $139.34
|
|
47
|
+
- Opus: cache read $16.26 + cache write $6.99 + output $4.75 = $28.00
|
|
48
|
+
- Haiku: $0.14. Total: $167.5 per hour, of which cache reads are 76% and output 12%.
|
|
49
|
+
- Upper bound with the raw D39 counting: about $275 per hour.
|
|
50
|
+
|
|
51
|
+
Per engineer-hour (ESTIMATE): $167.5 / 13.9 measured agents = $12.0; $167.5 / 17.5 stated agents
|
|
52
|
+
= $9.6. Range $9.6 to $12.0 per engineer-hour, $230 to $289 per engineer-day.
|
|
53
|
+
|
|
54
|
+
## 3. What the Max 20x plan sustains around the clock (ESTIMATE, uncalibrated)
|
|
55
|
+
|
|
56
|
+
The conversion from tokens to plan percent is NOT calibrated. G-01 fits it from founder
|
|
57
|
+
readings of the 5-hour and weekly meters. Until then, this is a range with its basis, not a number.
|
|
58
|
+
|
|
59
|
+
- Window ceiling: on 2026-09-27 about 16 agents took the 5-hour window from low to 91%. At the
|
|
60
|
+
D39 target of 85% at window end, that is 15 to 17 agents for one window, if the 9-27 mix
|
|
61
|
+
(tokens per agent, opus share) matches today.
|
|
62
|
+
- Weekly bound: 24/7 is 33.6 five-hour windows per week. If the weekly cap equals W full
|
|
63
|
+
windows, sustainable 24/7 headcount = window ceiling x min(1, W / 33.6). W is unknown; it is
|
|
64
|
+
exactly what G-01 must measure.
|
|
65
|
+
- ESTIMATE: 5 to 16 engineers around the clock. 16 holds only if the weekly cap is not binding;
|
|
66
|
+
the low end assumes the weekly cap is about 10 full windows. Neither end is a measurement.
|
|
67
|
+
- Calibration input for G-01: use API-equivalent dollars per agent-hour (section 2), not raw
|
|
68
|
+
tokens, as the regressor. It weights opus against sonnet the way the plan meter likely does,
|
|
69
|
+
and it collapses four token kinds into one number.
|
|
70
|
+
- The API value of what the plan is delivering today is about $4,000 per day at list price.
|
|
71
|
+
|
|
72
|
+
## 4. What 50 parallel engineers would need (ESTIMATE on PUBLISHED prices)
|
|
73
|
+
|
|
74
|
+
Assumptions: measured mix of section 1 (sonnet 87% of output, opus 13%); caching as today
|
|
75
|
+
(99% of input from cache); 24 hours a day; list prices, no volume discount; no US-only
|
|
76
|
+
inference (`inference_geo: "us"` adds 1.1x); local-only burn, so real cost is at least this.
|
|
77
|
+
|
|
78
|
+
| Engineers | Per day | Per 30 days | Fits under (API spend cap) |
|
|
79
|
+
|-----------|-------------------|----------------------|---------------------------------------|
|
|
80
|
+
| 16 | $3,675 to $4,627 | $110K to $139K | Scale ($200K per month) |
|
|
81
|
+
| 25 | $5,742 to $7,230 | $172K to $217K | Scale at the low end; over it at high |
|
|
82
|
+
| 50 | $11,484 to $14,460| $345K to $434K | Custom tier only (no cap; via sales) |
|
|
83
|
+
|
|
84
|
+
Rate limits are not the binding constraint; the spend cap is. Source:
|
|
85
|
+
https://platform.claude.com/docs/en/api/rate-limits (fetched 2026-09-28).
|
|
86
|
+
- Monthly spend caps: Start $500, Build $1,000, Scale $200,000, Custom none. At 16 engineers the
|
|
87
|
+
Start cap lasts about 3 hours and the Build cap about 6 hours. Tier placement is automatic
|
|
88
|
+
from account history; new orgs may start in a lower Evaluation tier.
|
|
89
|
+
- Peak minute scaled from 13.9 to 50 agents: 238K output per minute, 2.0M ITPM-counted input,
|
|
90
|
+
410 requests per minute. Sonnet 5 limits: Start 2M ITPM / 400K OTPM / 1,000 RPM; Build 5M /
|
|
91
|
+
1M / 5,000; Scale 10M / 2M / 10,000. Opus 5.5 has its own bucket at the same numbers. So
|
|
92
|
+
Build clears 50 agents on rate limits; Start is at its ITPM edge.
|
|
93
|
+
- Cache reads do not count toward ITPM on these models, which is why 99% cached input keeps
|
|
94
|
+
the fleet far under the limits.
|
|
95
|
+
- The rate-limit page warns of acceleration limits on sharp ramps: step headcount up, never jump.
|
|
96
|
+
|
|
97
|
+
Plans (https://claude.com/pricing, fetched 2026-09-28; limits UNVERIFIED beyond the page text):
|
|
98
|
+
- Team: standard seat $20 to $25, premium seat $100 to $125 per month, "5x more usage than
|
|
99
|
+
standard seats". Seat usage limits apply per seat; published numbers for agent-hours per
|
|
100
|
+
seat were not found. UNVERIFIED for a 50-agent fleet.
|
|
101
|
+
- Enterprise: "seat price + usage at API rates", $20 per seat per month billed annually. Economics
|
|
102
|
+
equal the API table above plus seat fees; custom limits and volume discounts are negotiated.
|
|
103
|
+
- Stacking several subscriptions to multiply limits for one automated fleet is not proposed;
|
|
104
|
+
any such question goes to Anthropic.
|
|
105
|
+
|
|
106
|
+
## 5. Ramp gates (D39)
|
|
107
|
+
|
|
108
|
+
Headcount rises one step per hour, and only when all three hold for the last full hour:
|
|
109
|
+
1. Governor allows: projected 5-hour window at or under 85% at window end and weekly at or
|
|
110
|
+
under 90% by the Wednesday 13:00 ET reset (on API billing: projected month under the tier cap
|
|
111
|
+
and any workspace spend limit).
|
|
112
|
+
2. Merged slices per hour rose versus the previous step.
|
|
113
|
+
3. Merged work per token did not fall: merged slices per million output tokens is no more than
|
|
114
|
+
10% below the previous step.
|
|
115
|
+
Step size: +4 engineers (never more than +25%). Any gate failing: hold. Two failing hours in a
|
|
116
|
+
row: step back one. The cut order in D39 applies (cloud, then MEDIUM and LOW local, then opus
|
|
117
|
+
reviewers down to the HIGH minimum; never the Release Manager or a P0).
|
|
118
|
+
|
|
119
|
+
What to measure first, this week: merged slices per million tokens.
|
|
120
|
+
- Numerator: distinct slice IDs (BOARD row IDs such as E-88 or DEP-05) whose commits became
|
|
121
|
+
ancestors of origin/main in the window. Not commit count: 933 commits reached main in 7 days,
|
|
122
|
+
which says nothing about slices.
|
|
123
|
+
- Denominator: deduplicated output tokens in millions, reported alongside API-equivalent
|
|
124
|
+
dollars. Not total tokens: those are 99% cache reads and would make the ratio noisy and tiny.
|
|
125
|
+
- Record hourly in METRICS.md with the headcount of that hour. This is the baseline every
|
|
126
|
+
ramp step is judged against; without it gate 3 cannot be evaluated and the ramp stays shut.
|
|
127
|
+
|
|
128
|
+
## 6. The founder's decision
|
|
129
|
+
|
|
130
|
+
| Option | What it is | Headcount | Cost (ESTIMATE) |
|
|
131
|
+
|--------|-----------|-----------|-----------------|
|
|
132
|
+
| A. Max 20x only | Governor-limited, as today | 5 to 16 around the clock (uncalibrated) | Current plan fee only |
|
|
133
|
+
| B. Max core + API overflow | Max for the core; API key with a workspace spend limit for engineers above the Max ceiling | Core + N | $230 to $289 per extra engineer-day; +10 = $2.3K to $2.9K per day |
|
|
134
|
+
| C. API only, Scale tier | All engineers on API billing | Up to about 25 inside the $200K cap | 16: $110K to $139K per month; 25: $172K to $217K |
|
|
135
|
+
| D. Enterprise or Custom tier | Sales-negotiated limits and discount | 50 | $345K to $434K per month at list, less any discount |
|
|
136
|
+
|
|
137
|
+
CTO recommendation: A now; G-01 calibrates within the week. Move to B only after the section 5
|
|
138
|
+
baseline exists and gate 3 holds at the Max ceiling, because extra engineers are worth buying
|
|
139
|
+
only if merged work per token does not fall as headcount rises. Open the sales conversation for
|
|
140
|
+
D before any plan to exceed 25, since Custom limits are not self-serve.
|