Add Artemis compudynamics implementation plan; add stress campaign fixture

The 30-replicate Artemis surface-stress campaign ran across all three
architectures: 30 reps x 50 trials x 3 arches = 4500 trials, zero failures.
The block_words.c stale-pointer cache-aliasing fix holds at scale.

Adds ART-STRESS-CAMPAIGN (block 4174) plus ART-STRESS-REP rep-tagging in
the CSV header/summary emitters, so a multi-replicate run is distinguishable
in the serial log. Campaign auto-invoke is left enabled in block 4170 for
now; Makefile.starkernel's QEMU boot deadlines stay at 12h to accommodate
long-running experiments.

Adds docs/working/architecture/ARTEMIS-COMPUDYNAMICS-IMPLEMENTATION-PLAN-20260802.md,
which documents the real gap this campaign exposed: block heat and message
heat do not decay at all. ART-TICK has zero call sites anywhere in the tree,
and HERMES-TICK has zero C call sites -- every caller is Hera poking it by
hand. BLK-HEAT@/MSG-HEAT@ read a number nothing ages, so blocks never reap
by cooling and message TTL never expires on its own.

The plan mirrors word-level physics as the reference model: lazy decay at
each access point against vm->heartbeat.tick_count, plus a bounded
background sweep with a resumable cursor (the existing answer to "sweeping
22,998 blocks per tick is too expensive"). Phase 1 Artemis, Phase 2 Hermes,
Phase 3 K participation deferred behind the Logical BAM.

The plan's preamble also records a wrong turn taken while investigating:
chasing VM-fleet heat instead of block heat, and building synthetic
Hera-driven VM-EXEC calls to force a physics reading -- which TRIPOD.md
prohibits outright. That work was reverted; the record is kept so it isn't
repeated.

Status: plan approved in shape, NOT final and NOT started. Six open
questions need answers and further design discussion is pending.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-02 21:49:16 -04:00
co-authored by Claude Opus 5
parent 1cb68502fb
commit 7597a9ccd4
11 changed files with 210228 additions and 5264 deletions
+23 -8
View File
@@ -263,6 +263,7 @@ VARIABLE S-IDX
VARIABLE S-STRIDE
VARIABLE S-CUR
VARIABLE S-ACTUAL
VARIABLE ART-STRESS-REP
Block 4161
( Trial record accessors )
: SLBN@ ( i -- lbn ) CELLS ART-STRESS-LBN + @ ;
@@ -274,7 +275,8 @@ Block 4172
( so it can be grepped like the DoE CSVs. Every )
( trial emits a row, pass or fail -- no silent skips. )
: SCSV-HEADER ( n -- )
." [ARTSTRESS] HEADER,n=" DUP . CR
." [ARTSTRESS] HEADER,rep=" ART-STRESS-REP @ .
." ,n=" DUP . CR
." [ARTSTRESS] trial,lbn,pat,result" CR ;
: SCSV-ROW ( -- )
." [ARTSTRESS] "
@@ -288,8 +290,8 @@ Block 4173
( its absence means the data is incomplete, full )
( stop, not "probably fine." )
: SCSV-SUMMARY ( -- )
." [ARTSTRESS] SUMMARY,"
ART-STRESS-N @ . ." ,"
." [ARTSTRESS] SUMMARY,rep=" ART-STRESS-REP @ .
." ," ART-STRESS-N @ . ." ,"
ART-STRESS-PASS @ . ." ,"
ART-STRESS-FAIL @ . CR ;
Block 4162
@@ -396,12 +398,25 @@ Block 4169
ART-STRESS-RUN ART-STRESS-REPORT
ART-STRESS-CLEANUP ;
: ART-STRESS ( -- ) 424242 50 ART-STRESS-TEST ;
Block 4174
( Campaign driver -- N independent replicate runs, )
( each a distinct seed, for statistical power )
( (Captain Bob: minimum 30 reps). Emits a CAMPAIGN )
( marker so analysis can auto-detect N from the log. )
30 CONSTANT ART-STRESS-NREPS
: ART-STRESS-SEED ( i -- seed ) 1009 * 424242 + ;
: ART-STRESS-CAMPAIGN ( -- )
." [ARTSTRESS] CAMPAIGN,nreps=" ART-STRESS-NREPS . CR
ART-STRESS-NREPS 0 DO
I ART-STRESS-REP !
I ART-STRESS-SEED 50 ART-STRESS-TEST
LOOP
." [ARTSTRESS] CAMPAIGN-DONE" CR ;
Block 4170
( Disabled by default -- uncomment to run the surface )
( stress test automatically at every boot. Normally )
( invoked manually instead: ART-STRESS or )
( <seed> <reps> ART-STRESS-TEST from the console. )
\ ART-STRESS
( TEMP: 30-replicate campaign enabled for the )
( K-invariant/heartbeat verification run. Revert to )
( "\ ART-STRESS" (disabled) once that run is done. )
ART-STRESS-CAMPAIGN
Block 4851
( Cheap touch target for Phase 3 fleet DoE workload -- O(1), )
( unlike ART-TICK/ART-STATUS which scan all ART-DATA-BLKS. )