NumericalOS

What is proven

Evidence inventory for Spec 1. Claims are limited to what the test suite, published artifacts, and recorded boot observations establish.

Status: bootstrap logic tested; x86_64 QEMU self-init PASS (degraded=0) on kernel+initrd and hybrid ISO/GRUB serial; fleet bare-QEMU PASS-degraded; metal and non-x86_64 unverified. Unit tests pass under unittest discover with bash on PATH. Recorded boot observations under QEMU 10.2.2 (x86_64 serial) are listed below. None of them cover metal or non-x86_64.

Covered by tests

areacoverage
Arch resolutionnine targets via synthetic uname -m and generated table
Hash fail-closedartifact and state mismatch halt with expected vs actual digests
Phase DAG / on_failurehalt stops later phases; degrade and continue documented
Restart + quarantinebackoff ceiling; attempt ceiling → quarantine + degrade
Export determinismbyte-identical render; order-independent input
Cycle / dangling refsrejected at export and again in shell path
Verifier agreementPython and shell accept/reject the same bodies
Acquire / offlinelocal HTTP server; partial fetch deleted; offline refuses network
Steady statesupervise ticks, health interval/threshold, escalation queue
Longrun startimmediate exit fails phase; mid-flight is restart/health
Floor numctlidentity, join states, capability, run-op dispatch edge; status named-halt
Join falsifiabilitydisabled / joined / failed distinguishable; no traffic without coordinator
Resource envelopesR records; ram_mb/timeout_s applied; cpu_pct refused
Signal floorTERM/INT handlers exit with named halt codes
Arch table driftregenerated table byte-equals committed file
Distro profilesself-init / fleet / privacy-workstation export
Algoblocker receiptspy -m numos.receipt + numctl receipt-export; same C hash; never POST

Recorded boot observations

Self-init profile — PASS (complete)

fieldvalue
VerdictPASS (degraded=0)
Profileself-init (graph-resolved distro: mounts, identity, hold)
Archx86_64
EmulatorQEMU 10.2.2 (qemu-system-x86_64, q35, 512 MiB)
Pathkernel + initrd (not CDROM/firmware/bootloader chain)
Artifact sourceCloudflare Sandbox builder → R2 → local download
Floornumos-floor (graph URL+sha256; not busybox product layout)
KernelDebian linux-image-6.1.0-50-amd64 (third-party)
Key serial linesnumos: boot complete degraded=0; numos: steady state entered
Observationdocs/observations/2026-08-09-self-init-kernel-initrd.md

Self-init profile — hybrid ISO / GRUB serial — PASS (complete)

fieldvalue
VerdictPASS (degraded=0)
Profileself-init
Archx86_64
EmulatorQEMU 10.2.2 (qemu-system-x86_64, q35, 512 MiB)
PathISO / CDROM: SeaBIOS → El Torito → GRUB 2.06 → kernel → initramfs → /init
Artifactbuild-out/artifacts/numericalos-self-init.iso (remaster of CF hybrid base + self-init initrd; MSYS xorriso in-place map)
ISO sha256d93d0da251558e6a19f83ddb7ca1bff89f7d2adb2b980ed60716f7fea2319044
Key serial linesnumos: boot complete degraded=0; numos: steady state entered
Logbuild-out/artifacts/boot-self-init-iso.log
Observationdocs/observations/2026-08-09-self-init-iso-cdrom.md

Fleet profile on bare QEMU — PASS-degraded

fieldvalue
VerdictPASS-degraded (degraded=1)
Profilefleet (net / clock / join + op catalogue)
Arch / emulator / pathsame as above (x86_64, QEMU 10.2.2, kernel+initrd)
Key serial linesnumos: boot complete degraded=1; numos: steady state entered
Degradesnet, clock (warn), join, health join-alive — seeded units need eth0/ntpd/coordinator; not a packer failure

Per numericalos-verify-boot, degrade-policy failures after a successful phase walk are a scoped pass for the fleet profile. Self-init is the offline/QEMU-complete graph. Metal and other arches remain open gates.

Open gates

claimrequired environment
boot on non-x86_64matching qemu-system-* + floor provider or metal
fresh CF Sandbox ISO rebuildWorker health OK; POST /build still intermittent (Sandbox 500 / edge 1101)
true PID-1 signal qualitysame (plus Zig static path for Spec 3)
static numinit publishZig cross builds; manifest F numinit-$arch
metal behaviorphysical hardware

Build skills produce artifacts and may not claim boot. numericalos-verify-boot is the sole claim path, scoped to one artifact and architecture.

Build substrates

pathskillnotes
Local Linuxnumericalos-build-iso / initramfsneeds cpio/xorriso/kernel
Cloudflare (no WSL)numericalos-build-iso-cfSandbox + R2; Workers alone cannot mkisofs
OCInumericalos-build-ocishared host kernel — not a boot
Distro exportpy -m numos.export_state --profile self-init|fleetwrites numos.state + distro.floor.json

Scaffold: deploy/cloudflare-iso-builder/. R2 downloads require wrangler r2 object get … --remote.

Topology boundary (local)

Node-side join is implemented as a falsifiable local contract:

statemeaning
disabledNUMOS_COORDINATOR unset — no outbound request; capability still on disk
joinedcoordinator accepted the capability document
failedunreachable or rejecting coordinator — never recorded as joined

Still absent: coordinator protocol body, phase-required start of all ops as daemons, and a local op interpreter. run-op is a dispatch edge only (requires declared unit + NUMOS_OP_RUNTIME).

Residuals

  1. Metal and non-x86_64 boot unobserved — x86_64 QEMU only (kernel+initrd and hybrid ISO serial).
  2. CF POST /build — authenticated smoke PASS 2026-08-10 (initrd + ISO; QEMU degraded=0). Builder uses readFileStream for artifact egress (base64 fallback). Smoke script: scripts/cf-build-smoke.ps1. Residual: infrastructure can still flake; request-path source still base64 JSON.
  3. Git remote — this working clone has no git remote; provenance is local commits + Pages deploy only until a remote URL is configured.
  4. Fleet bare-QEMU degrades — by design of net/clock/join units without virtio-net/ntpd/coordinator.
  5. PID-1 signals incompleteTERM/INT named-halt only; no full SIGCHLD discipline.
  6. Ops-registry unit drift — content hash detects change; reconcile policy is Spec 2.
  7. Op units are a dispatch catalogue — oneshot/never, not phase-started daemons.
  8. No control socket — no external query of a running numinit.
  9. No published static numinit — manifest lists shell floor only.
  10. Floor provider pins — only x86_64 (and i686 URL) published; other arches need operator floor.
  11. CF ISO large-object ferry — sandbox→Worker→R2 base64-mediates; prefer presigned PUT later.
  12. CF builder availability — health endpoint may be up while POST /build returns edge 1101; treat as infrastructure residual, not a NumericalOS boot residual.

Praxis / CTL provenance

Observation records and cycle notes live under docs/observations/ (including the self-init kernel+initrd PASS and the CTL self-realization note). MegaPraxis/MetaMethodology alignment: audit → classify → bridge → apply → verify → converge; only numericalos-verify-boot upgrades boot claims.

Documentation policy

Fail-closed runtime and fail-closed claims use the same rule: named residuals, no silent upgrade of status. Understating a limitation is treated as the same class of defect as overstating a capability. A QEMU pass does not become “NumericalOS boots” without arch, profile, emulator, and path scope.