scripts/nightly.sh, one stage per call, a step each in the workflows:
accept <amd64|aarch64|riscv64|stick-high> the acceptance protocol --
qemu_session.py zuse, and stick_zuse --target qemu-stick-high;
after the last, dict_hash must be equal on the three
test-32 make -C v4 test-32
proofs isabelle build -c -D proof/ (StarForth checked afresh each run)
images the Pi 5 and Mars images, xz for Raspberry Pi Imager
publish org.starship:kernelImage: pc (iso), raspi5, milkv (img.xz),
logs (tar.gz: this run's serial logs, proof log, DoE CSVs)
docs, publish-docs book, vol1-3, api -> org.starship:documentation
.gitea/workflows/nightly.yml (03:00) and nightly-docs.yml (04:00) publish
<LITHOS_VERSION>-SNAPSHOT to starshipos-snapshots; release.yml, on a tag
v*, builds and publishes both to starshipos-releases at the tag's version,
refusing a tag that is not v<LITHOS_VERSION>. Until this branch is merged
to master, master carries copies of the two nightlies naming it.
make init: INIT_DOCS=0 leaves out TeX and Doxygen, INIT_PROOFS=0 Isabelle.
Checked here, stage by stage, in order: the four acceptance boots PASS,
dict_hash 0xfec8c47cfc6f437f on the three, test-32 0 failures, StarForth
proved (0:00:41), images built; publish to a local file:// repository,
and the images' publish to Nexus starshipos-snapshots read back byte for
byte. The docs stage and publish-docs: not yet checked when committed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GE3SDvQn5EoxdGufk84zz2
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— DoE protocols- Project root