Public: anyone can read this; the crew can change it.
The profit slider's position: one number per forge, and the pure function from position to policy #504
Parked by the crew: the preview's deploy failed and the decider saw no point in another try (pull #520 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
Parked by the crew: main moved under it 3 times and the branch could not be brought up to date (forge.json, scripts/shards.ts, scripts/test-shards.ts, src/core/schema.ts, test/shards.test.ts) (pull #529 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
Parked twice; deferred behind the Later gate #595 (umbrella #594): the profit slider serves no pillar now. Nothing is dropped; the owner moves it out by unlinking it from the gate. Start it fresh from main when it comes back.
Released from Later to use the week's subscription: Behind pace: 75% of the week left with 18% of its time gone, reset 2026-11-15 02:00 UTC, burning 0% an hour against 0.5% allowed; speeding up to 5 of 5 slots and releasing the next issue.
Parked by the crew: runs on this issue repeated more than three times in ten minutes, so nothing more starts here until a person says what to try.
Parked by the crew: @torque's run ended without a pull: the pull closed
Parked twice since a person last spoke here, so it is the planner's now. Every reason:
- runs on this issue repeated more than three times in ten minutes, so nothing more starts here until a person says what to try
- @torque's run ended without a pull: the pull closed
The planner splits it, replaces it with a fresh issue, or defers it; a person can also say what to try. Nothing starts here until then, and the board lists it.
Deferred behind the Later gate #595. The profit slider is not one of the direction's pillars (#334: trust, command, cut the noise, forge in a link…), and it was parked twice: once for runs that kept repeating and once for a pull that closed. When it comes back, start with only the pure policyAt in src/core/slider.ts and its tests, then add the stored row and API, and the Settings page last, as three runs.
Released from Later to use the week's subscription: Behind pace: 75% of the week left with 19% of its time gone, reset 2026-11-15 02:00 UTC, burning 0% an hour against 0.5% allowed; speeding up to 5 of 5 slots and releasing the next issue.
Reviewed pull #10123 at its head: ticked src/core/slider.ts: policyAt(position) → { sleepAfterMs: { production, preview }, idlePullMs, spillAtOwnedUse }, pure, piecewise-linear between the anchor rows in docs/PROFIT.md (0 / 50 / 100); 50 reproduces today's constants exactly (production 24 h, preview 30 min) so landing it changes nothing; a forge-wide row (new forge_setting key/value table, or one row) holding position (default 50) and marginPct (default 0, 0–500) — validated at the boundary, integers only; Settings → Economics (operator only): a range input with the position, and beside it the policy it means in words ("production sleeps after 24 h idle · previews after 30 min · cloud takes work above 85% of owned capacity"); server-rendered, same-origin POST; GET/PUT /api/v1/forge/economics with the same validation; tests: the three anchors match hand-computed values; 25 and 75 interpolate; 50 equals the runtime's current constants; out-of-range, fractional and non-numeric positions are refused.
One control per forge,
positionan integer 0–100: 0 is cheapest (owned metal only, sleep early), 100 is most responsive (always warm, spill to cloud early). This run adds the number and the policy it means — nothing acts on it yet.Acceptance:
src/core/slider.ts:policyAt(position) → { sleepAfterMs: { production, preview }, idlePullMs, spillAtOwnedUse }, pure, piecewise-linear between the anchor rows indocs/PROFIT.md(0 / 50 / 100); 50 reproduces today's constants exactly (production 24 h, preview 30 min) so landing it changes nothingforge_settingkey/value table, or one row) holdingposition(default 50) andmarginPct(default 0, 0–500) — validated at the boundary, integers onlyGET/PUT /api/v1/forge/economicswith the same validationFiles: new src/core/slider.ts, src/core/schema.ts, src/web/pages/settings.ts, src/http/api.ts.
Part of the profit slider (#392); the shape is
docs/PROFIT.md.