mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-02 23:14:33 +01:00
gstack-evals #36 round 3 projected Step 8 at 16.43M (12 calls x the calibrated 750k + one 7.43M dispatch) and measured 0.34M (ledger ship-20261030T020847-c940ef); that inflation blocks capped runs. check now records each Capy per-call charge (--reading minus a fresh --prior-reading) and, once three are measured, prices a step at step_calls x their median over the last five, unscaled; the calibrated per_call applies until then. The audit dispatches of Steps 7, 8 and 14.5 are reserved by their own check, so they move from step_dispatches to segment_dispatches. step_calls are refit from the round-3 replay ledgers' step samples at 330k per call (replay3-34.md): Step 8 13, Step 14 5; two per_call observations join the fit (constant unchanged). Records the ship size ledger for this branch. Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
139 lines
7.1 KiB
JSON
139 lines
7.1 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"note": "GSTA-152 plan item 8. Per-meter constants for /ship budget projections, fitted conservatively from metered runs: each constant is the largest observation times `headroom`, rounded up to `round_to` (lib/ship-budget.ts fitConstant). test/ship-budget-calibration.test.ts checks the constants equal the fit and that a leave-one-out fit on two runs is at or above the meter on the third. Savings claims count completed ships only. Each unit's call_floor (GSTA-167) is the host's per-call floor: what one call costs in a fresh session with the ship skill loaded, before any /ship work. The delegate thresholds compare the per-call charge minus this floor, so a host's own system prompt and tools never trigger delegation. A floor is the largest round_to multiple at or below its smallest observed fresh call, so it never hides real context growth; start --call-floor <n> overrides it for one run. Step priors (GSTA-167 round 3): a step holds only its own calls; each audit dispatch (Steps 7, 8, 14.5) is reserved by its own check, so it moved from step_dispatches to segment_dispatches, where a child's segment estimate still counts it. On the Capy meter a step is priced at step_calls x the run's own median measured per-call charge once three calls are measured (lib/ship-budget.ts measuredPerCall), and at per_call before that. A keyed step_calls entry is the ceiling of the most calls step_calls_observed holds for it, and an unkeyed step's observations stay at or below default. Each observation is a step window's measured actual (step samples in the round-3 replay ledgers mirrored under the project-user Drive folder ship-budget/) divided by 330k, the per-call charge replay3-34.md reports for gstack-evals #34; replay3-36.md reports no per-call figure, so #36 uses the same 330k. Steps 7 and 9 have no step measurement yet and keep 12. The #3633 lane's first ledger (ship-20261030T020246-7c4b65) read the root counter, which holds sibling threads, so its step samples are left out.",
|
|
"headroom": 1.5,
|
|
"round_to": 10000,
|
|
"observations": {
|
|
"per_call": [
|
|
{
|
|
"run": "gstack-evals#19",
|
|
"value": 240000,
|
|
"source": "GSTA-152 plan v3 evidence: late parent calls charged 0.22M then 0.24M (solved from the 29.3M and 16.3M counter windows; derived)"
|
|
},
|
|
{
|
|
"run": "gstack-evals#26",
|
|
"value": 400000,
|
|
"source": "GSTA-152 plan v3 evidence: late turns cost about 0.4M each (root counter read after every step)"
|
|
},
|
|
{
|
|
"run": "gstack-evals#31",
|
|
"value": 500000,
|
|
"source": "GSTA-152 plan v3 evidence: the /ship child's context was about 0.5M per call at the handoff"
|
|
},
|
|
{
|
|
"run": "gstack-evals#34 round 3",
|
|
"value": 330000,
|
|
"source": "handoffs/GSTA-167/replay3-34.md: about 0.33M per late parent call, read from the replay thread's own counter"
|
|
},
|
|
{
|
|
"run": "GSTA-167 lane #3633",
|
|
"value": 350000,
|
|
"source": "GSTA-167 lane report, own-jam ledger ship-20261030T022114-ef9f9a: the lane's own calls run about 0.35M each (stated by the lane, not solved from the ledger)"
|
|
}
|
|
],
|
|
"per_dispatch": [
|
|
{
|
|
"run": "gstack-evals#19",
|
|
"value": 2400000,
|
|
"source": "GSTA-152 plan v3 evidence: about 2.4M per child, solved from the two counter windows (derived)"
|
|
},
|
|
{
|
|
"run": "gstack-evals#31",
|
|
"value": 4950000,
|
|
"source": "GSTA-152 plan v3 evidence: the /ship child and its 10 review dispatches account for about 49.5M (4-5M per dispatch)"
|
|
}
|
|
],
|
|
"stop_overhead": [
|
|
{
|
|
"run": "gstack-evals#26",
|
|
"value": 1650000,
|
|
"source": "GSTA-152 plan v3 evidence: the stop message and the parent's checks took the counter from 39.40M to 41.05M"
|
|
}
|
|
]
|
|
},
|
|
"constants": {
|
|
"per_call": 750000,
|
|
"per_dispatch": 7430000,
|
|
"stop_overhead": 2480000
|
|
},
|
|
"step_calls": {
|
|
"7": 12,
|
|
"8": 13,
|
|
"9": 12,
|
|
"14": 5,
|
|
"default": 3
|
|
},
|
|
"step_calls_observed": {
|
|
"8": [
|
|
{
|
|
"run": "gstack-evals#34 round 3",
|
|
"value": 12.16,
|
|
"source": "ledger ship-20261030T020705-eda850, step sample step 7 next 8 (the child's first step window, section reads included): actual 4012570 / 330k per call"
|
|
},
|
|
{
|
|
"run": "gstack-evals#36 round 3",
|
|
"value": 1.02,
|
|
"source": "ledger ship-20261030T020847-c940ef, step sample step 7 next 8: actual 335631 / 330k per call"
|
|
}
|
|
],
|
|
"13": [
|
|
{
|
|
"run": "gstack-evals#34 round 3",
|
|
"value": 1.31,
|
|
"source": "ledger ship-20261030T021912-ab78e5, step sample step 12 next 13: actual 431321 / 330k per call"
|
|
}
|
|
],
|
|
"14": [
|
|
{
|
|
"run": "gstack-evals#34 round 3",
|
|
"value": 4.24,
|
|
"source": "ledger ship-20261030T021912-ab78e5, step sample step 13 next 14: actual 1399070 / 330k per call"
|
|
}
|
|
],
|
|
"15": [
|
|
{
|
|
"run": "gstack-evals#34 round 3",
|
|
"value": 2.4,
|
|
"source": "ledger ship-20261030T021912-ab78e5, step sample step 14.5 next 15: actual 790578 / 330k per call"
|
|
}
|
|
],
|
|
"14.5": [
|
|
{
|
|
"run": "gstack-evals#34 round 3",
|
|
"value": 1.55,
|
|
"source": "ledger ship-20261030T021912-ab78e5, step sample step 14 next 14.5: actual 510368 / 330k per call"
|
|
}
|
|
]
|
|
},
|
|
"step_dispatches": {},
|
|
"segment_dispatches": {
|
|
"7": 1,
|
|
"8": 1,
|
|
"9": 4,
|
|
"11": 2,
|
|
"14.5": 1
|
|
},
|
|
"units": {
|
|
"capy-tokens": {
|
|
"fit": "observations above (Capy root counter, children included)",
|
|
"call_floor": 150000,
|
|
"call_floor_observed": 150000,
|
|
"call_floor_why": "GSTA-2 (gstack 1.91.320.0, gstack-evals #35/#36): a fresh Capy thread's first counter reading is about 98k (host system prompt and tools) and every call with the ship skill loaded costs 150-230k before any /ship work; 150k is the smallest observed call. Below it, DELEGATE_START_CALL (100k) fired on every capped Capy start and DELEGATE_SEGMENT_CALL (150k) stopped two #36 children at their first boundary."
|
|
},
|
|
"claude-usage-tokens": {
|
|
"seeded_from": "capy-tokens",
|
|
"why": "no Claude Code-metered /ship yet; refit once one completes",
|
|
"call_floor": 40000,
|
|
"call_floor_observed": 46379,
|
|
"call_floor_why": "GSTA-167 measurement, 2026-10-29: Claude Code 2.1.312 on claude-opus-5-5 with gstack's 64 skills listed, metered as this meter does (input + cache_creation + cache_read + output per message): the first call of a fresh -p session cost 19,225 and the call after reading ship/SKILL.md in full cost 46,379. One observation, so the floor rounds down to 40k; refit once a Claude-metered /ship completes."
|
|
},
|
|
"estimate-tokens": {
|
|
"seeded_from": "capy-tokens",
|
|
"why": "the estimate meter projects with the Capy fit, which is at or above the meter on the metered runs",
|
|
"call_floor": 0,
|
|
"call_floor_observed": null,
|
|
"call_floor_why": "The estimate meter takes no readings, so its per-call charge is always unknown and the floor has nothing to subtract: an unknown charge keeps the pre-floor rule (delegate at a segment boundary, never at start)."
|
|
}
|
|
}
|
|
}
|