#52 campaign close: full transition matrix PASSES at 2 nodes -- field instrument rides

Provocations run under the verified [skate] detector: sustained healthy
walking, 7x respawn-while-moving, gimp onset at speed, ~21s of sustained
GIMPED walking (aimed-leg self-damage: BT_SELF_DAMAGE_ZONE=dz_ldleg),
leg-destruction death (authentic: lvl 1.0 -> leg gone -> fall/death; the
mid-session "died of the gimp edge" reading was a capped-print artifact,
retracted), and respawn.  ZERO skate anywhere.  Peer gimp replication
VERIFIED live: observer reads gl=3 + sim=3 with the gimp bodyStates
cycling for the whole master limp window (#82 remains fixed).  Conclusion:
the field skating does not reproduce at lab scale; the detector + SKATE
matchlog record ship with the next cut and the field names the failing
case.  Bench scripts archived (skatebench3-7; 7 is the clean-room one --
the sed-derived chains dropped envs twice).

Also: BT_LAMP_LOG=1 joins the field bats (#135 -- lamp/annunciator edge
forensics; near-zero noise, answers leak-no-flash reports in one grep).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Joe DiPrima
2026-08-05 13:58:01 -05:00
co-authored by Claude Fable 5
parent 869d885eb2
commit 6dd1212e0c
8 changed files with 221 additions and 0 deletions
+3
View File
@@ -34,6 +34,9 @@ rem player, not just the ones we can reach for env setup.
set BT_MATCHLOG=1
set BT_SCORE_LOG=1
set BT_DEATH_LOG=1
rem #135: lamp/annunciator edges (techstat) -- one line per state change,
rem near-zero noise; would have answered the leak-no-flash report in one grep.
set BT_LAMP_LOG=1
cd content
rem JOIN-GAME menu (2026-07-22): pick your CALLSIGN + MECH, click JOIN --
rem your choice is sent to the operator and lands in the mission roster.
+3
View File
@@ -37,6 +37,9 @@ rem player, not just the ones we can reach for env setup.
set BT_MATCHLOG=1
set BT_SCORE_LOG=1
set BT_DEATH_LOG=1
rem #135: lamp/annunciator edges (techstat) -- one line per state change,
rem near-zero noise; would have answered the leak-no-flash report in one grep.
set BT_LAMP_LOG=1
cd content
rem JOIN-GAME menu (2026-07-22): pick your CALLSIGN + MECH, click JOIN --
rem your choice is sent to the operator and lands in the mission roster.
+3
View File
@@ -36,6 +36,9 @@ rem player, not just the ones we can reach for env setup.
set BT_MATCHLOG=1
set BT_SCORE_LOG=1
set BT_DEATH_LOG=1
rem #135: lamp/annunciator edges (techstat) -- one line per state change,
rem near-zero noise; would have answered the leak-no-flash report in one grep.
set BT_LAMP_LOG=1
cd content
rem ------------------------------------------------------------------
rem OUR GENERATION ONLY (2026-07-27). The wait loop below used to hold
+43
View File
@@ -0,0 +1,43 @@
#!/usr/bin/env bash
# #52 SKATE PROVOCATION 3 -- the LEG-GIMP transition family (#82 history:
# where replicant legs break). A walks on autodrive; B CHASES (goto stop 60)
# and servo-shoots A's SIX LEG ZONES (zone-walk, leg filter) until the gimp
# engages -- master gait swaps normal->gimp (and back on respawn), the
# transitions the light bench never exercised. [skate] watches on both;
# BT_GIMPFEED on B prints the replicant's gimp level + demand 1 Hz.
# NOVICE egg: crits off -- sustained leg-zone damage without subsystem kills.
set -x
. /c/git/bt411/scratchpad/night6/bench_common.sh
cd /c/git/bt411/content || exit 1
taskkill //F //IM btl4.exe > /dev/null 2>&1
sleep 2
rm -f sg_a.log sg_b.log
bt_novice_egg MP.EGG SG.EGG
sed -i "s/^map=.*/map=grass/; s/^time=.*/time=day/; s/^vehicle=.*/vehicle=madcat/" SG.EGG
# A = wandering victim (walks, gets leg-shot, gimps, keeps walking)
BT_AUTODRIVE=0.6 BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \
bt_launch sg_a.log SG.EGG 0x0C -net 1601
sleep 2
# B = chasing leg-shooter + observer of A's replicant
BT_GOTO=enemy BT_GOTO_STOP=60 BT_ZONE_WALK=5 BT_WALK_ZONES="uleg,dleg,foot" \
BT_GIMPFEED=1 BT_PICK_LOG=1 BT_KEY_NOFOCUS=1 \
BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \
bt_launch sg_b.log SG.EGG 0x03 -net 1501
sleep 5
python ../tools/btconsole.py SG.EGG 127.0.0.1:1501 127.0.0.1:1601 > sg_relay.log 2>&1 &
RELAY=$!
sleep 360
kill $RELAY 2>/dev/null
taskkill //F //IM btl4.exe > /dev/null 2>&1
sleep 3
echo "=== A leg damage (its own master view):"
grep -a "dmghit" sg_a.log | grep -coE "zone=(2|3|7|9|10|18)" ; true
echo "=== A gimp state changes:"
grep -aiE "gimp" sg_a.log | grep -va gimpfeed | head -8
echo "=== B replicant gimp feed (last 6):"
grep -a "replgimp" sg_b.log | tail -6
echo "=== SKATE hits (B watching A):"
grep -a "\[skate\]" sg_b.log | head -10
echo "=== SKATE count A-side:"
grep -ac "\[skate\]" sg_a.log
+43
View File
@@ -0,0 +1,43 @@
#!/usr/bin/env bash
# #52 SKATE PROVOCATION 3 -- the LEG-GIMP transition family (#82 history:
# where replicant legs break). A walks on autodrive; B CHASES (goto stop 60)
# and servo-shoots A's SIX LEG ZONES (zone-walk, leg filter) until the gimp
# engages -- master gait swaps normal->gimp (and back on respawn), the
# transitions the light bench never exercised. [skate] watches on both;
# BT_GIMPFEED on B prints the replicant's gimp level + demand 1 Hz.
# NOVICE egg: crits off -- sustained leg-zone damage without subsystem kills.
set -x
. /c/git/bt411/scratchpad/night6/bench_common.sh
cd /c/git/bt411/content || exit 1
taskkill //F //IM btl4.exe > /dev/null 2>&1
sleep 2
rm -f sg2_a.log sg2_b.log
bt_novice_egg MP.EGG SG2.EGG
sed -i "s/^map=.*/map=grass/; s/^time=.*/time=day/; s/^vehicle=.*/vehicle=madcat/" SG2.EGG
# A = wandering victim (walks, gets leg-shot, gimps, keeps walking)
BT_AUTODRIVE=0.5 BT_SELF_DAMAGE=8 BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \
bt_launch sg2_a.log SG2.EGG 0x0C -net 1601
sleep 2
# B = chasing leg-shooter + observer of A's replicant
BT_GIMPFEED=1 \
BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \
bt_launch sg2_b.log SG2.EGG 0x03 -net 1501
sleep 5
python ../tools/btconsole.py SG2.EGG 127.0.0.1:1501 127.0.0.1:1601 > sg2_relay.log 2>&1 &
RELAY=$!
sleep 330
kill $RELAY 2>/dev/null
taskkill //F //IM btl4.exe > /dev/null 2>&1
sleep 3
echo "=== A leg damage (its own master view):"
grep -a "dmghit" sg2_a.log | grep -coE "zone=(2|3|7|9|10|18)" ; true
echo "=== A gimp state changes:"
grep -aiE "gimp" sg2_a.log | grep -va gimpfeed | head -8
echo "=== B replicant gimp feed (last 6):"
grep -a "replgimp" sg2_b.log | tail -6
echo "=== SKATE hits (B watching A):"
grep -a "\[skate\]" sg2_b.log | head -10
echo "=== SKATE count A-side:"
grep -ac "\[skate\]" sg2_a.log
+43
View File
@@ -0,0 +1,43 @@
#!/usr/bin/env bash
# #52 SKATE PROVOCATION 3 -- the LEG-GIMP transition family (#82 history:
# where replicant legs break). A walks on autodrive; B CHASES (goto stop 60)
# and servo-shoots A's SIX LEG ZONES (zone-walk, leg filter) until the gimp
# engages -- master gait swaps normal->gimp (and back on respawn), the
# transitions the light bench never exercised. [skate] watches on both;
# BT_GIMPFEED on B prints the replicant's gimp level + demand 1 Hz.
# NOVICE egg: crits off -- sustained leg-zone damage without subsystem kills.
set -x
. /c/git/bt411/scratchpad/night6/bench_common.sh
cd /c/git/bt411/content || exit 1
taskkill //F //IM btl4.exe > /dev/null 2>&1
sleep 2
rm -f sg3_a.log sg3_b.log
bt_novice_egg MP.EGG SG3.EGG
sed -i "s/^map=.*/map=grass/; s/^time=.*/time=day/; s/^vehicle=.*/vehicle=madcat/" SG3.EGG
# A = wandering victim (walks, gets leg-shot, gimps, keeps walking)
BT_AUTODRIVE=0.5 BT_SELF_DAMAGE=4 BT_SELF_DAMAGE_ZONE=dz_ldleg BT_DMG_LOG=1 BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \
bt_launch sg3_a.log SG3.EGG 0x0C -net 1601
sleep 2
# B = chasing leg-shooter + observer of A's replicant
BT_GIMPFEED=1 \
BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \
bt_launch sg3_b.log SG3.EGG 0x03 -net 1501
sleep 5
python ../tools/btconsole.py SG3.EGG 127.0.0.1:1501 127.0.0.1:1601 > sg3_relay.log 2>&1 &
RELAY=$!
sleep 330
kill $RELAY 2>/dev/null
taskkill //F //IM btl4.exe > /dev/null 2>&1
sleep 3
echo "=== A leg damage (its own master view):"
grep -a "dmghit" sg3_a.log | grep -coE "zone=(2|3|7|9|10|18)" ; true
echo "=== A gimp state changes:"
grep -aiE "gimp" sg3_a.log | grep -va gimpfeed | head -8
echo "=== B replicant gimp feed (last 6):"
grep -a "replgimp" sg3_b.log | tail -6
echo "=== SKATE hits (B watching A):"
grep -a "\[skate\]" sg3_b.log | head -10
echo "=== SKATE count A-side:"
grep -ac "\[skate\]" sg3_a.log
+43
View File
@@ -0,0 +1,43 @@
#!/usr/bin/env bash
# #52 SKATE PROVOCATION 3 -- the LEG-GIMP transition family (#82 history:
# where replicant legs break). A walks on autodrive; B CHASES (goto stop 60)
# and servo-shoots A's SIX LEG ZONES (zone-walk, leg filter) until the gimp
# engages -- master gait swaps normal->gimp (and back on respawn), the
# transitions the light bench never exercised. [skate] watches on both;
# BT_GIMPFEED on B prints the replicant's gimp level + demand 1 Hz.
# NOVICE egg: crits off -- sustained leg-zone damage without subsystem kills.
set -x
. /c/git/bt411/scratchpad/night6/bench_common.sh
cd /c/git/bt411/content || exit 1
taskkill //F //IM btl4.exe > /dev/null 2>&1
sleep 2
rm -f sg4_a.log sg4_b.log
bt_novice_egg MP.EGG SG4.EGG
sed -i "s/^map=.*/map=grass/; s/^time=.*/time=day/; s/^vehicle=.*/vehicle=madcat/" SG4.EGG
# A = wandering victim (walks, gets leg-shot, gimps, keeps walking)
BT_AUTODRIVE=0.5 BT_SELF_DAMAGE=4 BT_SELF_DAMAGE_ZONE=dz_ldleg BT_DMG_LOG=1 BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \
bt_launch sg4_a.log SG4.EGG 0x0C -net 1601
sleep 2
# B = chasing leg-shooter + observer of A's replicant
BT_REPL_LOG=1 \
BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \
bt_launch sg4_b.log SG4.EGG 0x03 -net 1501
sleep 5
python ../tools/btconsole.py SG4.EGG 127.0.0.1:1501 127.0.0.1:1601 > sg4_relay.log 2>&1 &
RELAY=$!
sleep 330
kill $RELAY 2>/dev/null
taskkill //F //IM btl4.exe > /dev/null 2>&1
sleep 3
echo "=== A leg damage (its own master view):"
grep -a "dmghit" sg4_a.log | grep -coE "zone=(2|3|7|9|10|18)" ; true
echo "=== A gimp state changes:"
grep -aiE "gimp" sg4_a.log | grep -va gimpfeed | head -8
echo "=== B replicant gimp feed (last 6):"
grep -a "replgimp" sg4_b.log | tail -6
echo "=== SKATE hits (B watching A):"
grep -a "\[skate\]" sg4_b.log | head -10
echo "=== SKATE count A-side:"
grep -ac "\[skate\]" sg4_a.log
+40
View File
@@ -0,0 +1,40 @@
#!/usr/bin/env bash
# #52 FINAL gimp-replication check (clean-room script -- the sed-derived
# chain dropped envs). A: walks + aimed leg self-damage -> ~22s of REAL
# gimped walking before the leg dies. B: observer with the replicant probes
# ([replgimp] 1 Hz: the peer's view of the gimp level) + [skate] + captures.
# QUESTION: does the PEER limp while the master limps (gl=3 on B)?
set -x
. /c/git/bt411/scratchpad/night6/bench_common.sh
cd /c/git/bt411/content || exit 1
taskkill //F //IM btl4.exe > /dev/null 2>&1
sleep 2
rm -f sg5_a.log sg5_b.log sg5B_*.png
bt_novice_egg MP.EGG SG5.EGG
sed -i "s/^map=.*/map=grass/; s/^time=.*/time=day/; s/^vehicle=.*/vehicle=madcat/" SG5.EGG
(
export BT_AUTODRIVE=0.5 BT_SELF_DAMAGE=4 BT_SELF_DAMAGE_ZONE=dz_ldleg
export BT_DMG_LOG=1 BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1
bt_launch sg5_a.log SG5.EGG 0x0C -net 1601
)
sleep 2
(
export BT_REPL_LOG=1 BT_JIT=1 BT_SHOT_EVERY=90 BT_SHOT_PREFIX=sg5B
export BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1
bt_launch sg5_b.log SG5.EGG 0x03 -net 1501
)
sleep 5
python ../tools/btconsole.py SG5.EGG 127.0.0.1:1501 127.0.0.1:1601 > sg5_relay.log 2>&1 &
RELAY=$!
sleep 200
kill $RELAY 2>/dev/null
taskkill //F //IM btl4.exe > /dev/null 2>&1
sleep 3
echo "=== A gimp window (master):"
grep -a "gaitSM" sg5_a.log | grep -oaE "state=[0-9]+" | sort | uniq -c
echo "=== B peer gimp view (replgimp gl values):"
grep -a "replgimp" sg5_b.log | grep -oaE "gl=[0-9]+" | sort | uniq -c
grep -a "replgimp" sg5_b.log | grep -v "gl=0" | head -6
echo "=== SKATE:"
grep -ac "\[skate\]" sg5_b.log