From 284ec17370abc6fa0cb746650e4e1a2d43789a64 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 27 Aug 2026 16:49:41 -0500 Subject: [PATCH] codex: fix low-alch-members pacing model per governor review (bounce fix attempt 2) - anti_ban.delay is additive to the 1.8s cast (action-grammar.md:135): cycle = 1.8s + 1.6-3.4s = 3.4-5.2s, midpoint 4.3s -> ~837 casts/hr - xp_per_hour 44,640 -> 25,953; gp_per_hour range -3,177..-2,077; formula pinned in economy pacing block and actions a3 comment - run_control.iteration = one full inventory+bank cycle (break.every counts iterations per docs/schema.md), bank-cycle claim removed - risk note cadence pin updated; version 2 -> 3 --- codex/economy/low-alch-members.yaml | 32 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/codex/economy/low-alch-members.yaml b/codex/economy/low-alch-members.yaml index 3a0b8dd..1cf908b 100644 --- a/codex/economy/low-alch-members.yaml +++ b/codex/economy/low-alch-members.yaml @@ -3,7 +3,7 @@ title: Low-Level Alchemy (Members) domain: economy tags: [alching, magic-training, members, loss-training] status: verified -version: 2 # 2: bounce-fix 2026-08-27 — pacing-pinned economics, least-loss anchor, 30 Attack gate +version: 3 # 3: bounce-fix 2 2026-08-27 — additive cast+delay cycle (1.8s + 1.6-3.4s), iteration = full inventory+bank cycle updated: "2026-08-27" # ISO dates must stay quoted — YAML 1.1 parses bare dates to datetime.date summary: > @@ -51,17 +51,17 @@ economy: cost_per_cycle: 543 # javelin tips buy 403 + nature rune 140 (staff of fire) income_per_cycle: 540 # lowalch of rune javelin tips (40% of value 1350) net_per_cycle: -3 - gp_per_hour_low: -6750 # -3/cast @ max cadence: 3600/1.6s delay = 2250 casts/hr - gp_per_hour_high: -3176 # -3/cast @ min cadence: 3600/3.4s delay = 1058.8 casts/hr - xp_per_hour: 44640 # 31 xp/cast (wiki) @ 1,440 casts/hr — pinned below - # Pacing pin: actions[].anti_ban.delay [1600, 3400] ms is the MANDATORY - # post-cast pause and the cadence constraint. A game tick is 0.6s, so a - # 3-tick LA cast is 1.8s — shorter than the 2.5s midpoint pause, so the - # pause, not the cast, sets the rate: 3600/2.5 = 1,440 casts/hr. - # xp_per_hour = 1440 x 31 = 44,640/hr - # gp_per_hour (midpoint) = 1440 x -3 = -4,320/hr; the low/high range - # above is the delay-bound spread (1,600ms -> 2,250 casts; 3,400ms -> - # 1,058.8 casts). + gp_per_hour_low: -3177 # -3/cast @ fastest cycle (1.8s cast + 1.6s delay = 3.4s) -> 1058.8 casts/hr + gp_per_hour_high: -2077 # -3/cast @ slowest cycle (1.8s cast + 3.4s delay = 5.2s) -> 692.3 casts/hr + xp_per_hour: 25953 # 31 xp/cast (wiki) @ midpoint cycle 837.2 casts/hr — pinned below + # Pacing pin (docs/action-grammar.md:135): actions[].anti_ban.delay is a + # MANDATORY post-action sleep, ADDITIVE to the action itself — it does not + # overlap the cast. LA cast = 3 game ticks x 0.6s = 1.8s; the delay + # [1600, 3400]ms = 1.6-3.4s. Cycle = cast + delay = 3.4s (fast) .. 5.2s + # (slow), midpoint 4.3s. + # casts/hr = 3600 / (1.8 + delay_s): 3.4s -> 1058.8; 5.2s -> 692.3; 4.3s -> 837.2 + # xp_per_hour (midpoint) = 837.2 x 31 = 25,953/hr (range 21,461 .. 32,823 by delay bounds) + # gp_per_hour = casts/hr x -3: midpoint -2,512; low (fast) -3,177; high (slow) -2,077 supplies: - item: rune javelin tips qty_per_cycle: 1 @@ -162,7 +162,7 @@ actions: on: "itself" on_fail: retry anti_ban: - delay: [1600, 3400] # MANDATORY post-cast pause (cadence policy): 3-tick cast = 1.8s (0.6s/tick); midpoint 2.5s -> ~1,440 casts/hr (pinned in economy) + delay: [1600, 3400] # MANDATORY post-action sleep, ADDITIVE to the 1.8s cast (3 ticks x 0.6s; action-grammar.md:135): cycle = 1.8s + 1.6-3.4s = 3.4-5.2s, midpoint 4.3s -> ~837 casts/hr (pinned in economy) - id: a4 step: bank-loop @@ -174,10 +174,10 @@ actions: on_fail: alert run_control: - iteration: "one cast" + iteration: "one full inventory + bank cycle" # per docs/schema.md run_control: break.every counts iterations; one cycle = cast the carried candidate supply down to buffer, bank the coins, restock — a cycle ends at the bank visit max_iterations: null break: - every: [8, 14] # bank cycles (breaks land on bank visits) + every: [8, 14] # iterations = full inventory+bank cycles (breaks land on bank visits) for: [45, 120] # seconds of idle AFK stop_conditions: - "magic level >= target (55 -> hand off to HLA)" @@ -187,7 +187,7 @@ run_control: risk: ban_level: low notes: - - "High cast cadence is the main detection vector; keep the mandatory anti_ban delays (cadence pin: ~1,440 casts/hr at the 2.5s midpoint pause)." + - "High cast cadence is the main detection vector; keep the mandatory anti_ban delays (cadence pin: ~837 casts/hr at the 4.3s midpoint cycle = 1.8s cast + 2.5s post-cast sleep)." - "GE buy bursts: pace offers, respect the 4h limit window; thin items (limit < 100) cannot sustain a long run." - "Thin-item 'latest low' fills can be stale — confirm fill price with a live GE offer before committing a run; the liquid high-limit pair (rune javelin tips / rune arrow) is the dependable loss-minimizer."