Files
Robert Allan JamesandClaude Sonnet 5 35f84d4a45 Add disk/zuse.img + bleach_zuse_img.sh: first-boot mint testing (Phase 8)
Resolves the acl_pinned punch-list item's open question: credential
data (ZUSE-CERT-LO/HI, ACL-CA-KEY-LO/HI) are CONSTANT words, i.e. real
DictEntrys, and acl_pinned's enforcement (vm_create_word()'s
unconditional shadow-refusal for any pinned name) already covers this
generally -- no new flag needed, zuse.4th's ACL-ZUSE-BOOT already pins
both cert constants today.

That investigation surfaced a real gap: ACL-ZUSE-BOOT pins the cert
constants unconditionally on every boot, before any legitimate mint
could ever run, permanently locking in the 0 placeholder on the very
first boot. This directly shaped Captain Bob's next design pass: a
dedicated zuse.img test thumbdrive, "bleachable" back to pristine
state for repeated first-boot testing; a one-time mint-then-pin flow
(fixing the gap above); a separate ongoing S" name" MINT word for
minting additional regular users; and an explicitly-deferred Zuse
recovery path question.

This commit is the first piece: disk/zuse.img (64MB blank, matching
the existing USB-fixture convention) + scripts/bleach_zuse_img.sh
(idempotent reset). Verified live via QMP hotplug -- reads back as
HOMEBLOCKS_SIG_BLANK, correctly simulating a genuine first boot.
Deliberately flat/raw, not GPT-partitioned, matching
homeblocks_sig_check()'s current sig_start_fblock=0 assumption; both
move to a real GPT-relative offset together once a parser exists. No
kernel code touched -- host-side test tooling only, no 3-arch
acceptance boot needed.

Still open: the mint-then-pin boot fix, the MINT word, Zuse recovery.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CXjAPTEKrgY2Mrk25KoLDn
2026-08-26 07:51:44 -04:00

59 lines
2.1 KiB
Markdown

# scripts/
Utility scripts for building, profiling, DoE experiments, and documentation.
## DoE / experiment scripts
| Script | Purpose |
|--------|---------|
| `run_doe.sh` | Run a standard DoE experiment |
| `run_factorial_doe.sh` | 2^7 factorial DoE |
| `run_factorial_doe_with_heartbeat.sh` | Factorial DoE with heartbeat metrics |
| `run_nested_doe.sh` | Nested DoE design |
| `run_ablation_study.sh` | Physics loop ablation |
| `run_optimization_doe.sh` | Optimization-focused DoE |
| `run_quick_doe_test.sh` | Quick smoke-check DoE (1 rep) |
| `extract_doe.sh` | Extract CSV rows from QEMU serial logs |
## Build / profile scripts
| Script | Purpose |
|--------|---------|
| `perf-profile.sh` | Linux `perf` profiling harness |
| `perf-profile_control.sh` | Control run for perf comparison |
| `rundisk.sh` | Boot a disk image in QEMU |
| `qemu_screenshot.sh` | Capture QEMU serial output |
## Phase 8 / identity testing scripts
| Script | Purpose |
|--------|---------|
| `bleach_zuse_img.sh` | Reset `disk/zuse.img` back to pristine/unminted (blank) state, for repeatable first-boot mint-flow testing |
## FORTH capsule scripts
| Script | Purpose |
|--------|---------|
| `4th-apply-init.sh` | Apply init.4th patches to capsule set |
| `4th-update-init.sh` | Update init.4th across capsule variants |
## Documentation scripts
| Script | Purpose |
|--------|---------|
| `asciidoc-to-latex.sh` | Convert AsciiDoc to LaTeX |
| `convert-markdown-to-asciidoc.sh` | Markdown → AsciiDoc |
| `doxygen-xml-to-asciidoc.py` | Doxygen XML → AsciiDoc |
| `generate-doxygen-appendix.sh` | Build Doxygen API appendix |
| `build_patent_structure.sh` | Scaffold patent document structure |
| `setup-ide-integration.sh` | Configure IDE integration |
| `analyze_heartbeat_stability.R` | R analysis of heartbeat stability data |
| `analyze_opp2_regression.py` | Python regression analysis |
| `gen_pe_reloc.py` | PE relocation table generator (see also `tools/`) |
| `remove_loop_conditionals.sh` | Remove loop conditional guards |
## See also
- [`experiments/bare_metal/README.md`](../experiments/bare_metal/README.md) — DoE protocols
- [Project root](../README.md)