Skip to content

docs(B-0854.1): zeta-install.sh step-state-machine inventory — Phase 0 substrate for Ace migration trajectory (14 sub-steps; 12 declarative-input categories; substrate-anchor for B-0852/0853/0855/0856 cross-refs)#5420

Merged
AceHack merged 3 commits into
mainfrom
docs/b-0854-1-zeta-install-step-state-machine-inventory
May 27, 2026
Merged

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 27, 2026

Summary

B-0854 sub-row .1 — Phase 0 substrate for the Ace migration trajectory. Pure analysis; no code change; doesn't touch ISO substrate.

Documents the EXISTING imperative bash state-machine in `zeta-install.sh` (1,352 lines on origin/main `70596a8db`) so the B-0854 Phase 2 declarative-Ace-manifest schema can express the same surface without losing any step's behavior.

What's inventoried

Category Count Purpose
Sub-steps documented 14 (Steps 1, 2, 3, 4, 5, 6, 6.5, 6.55, 6.6, 6.7, 6.8, 6.9, 6.95, 7) inputs/outputs/side-effects/failure-modes/declarative-equivalent per step
Operator-prompt accumulation 7 today → 1 passphrase post-B-0852 informs B-0852 phase-split UX claim
Idempotency surface rows Per-step yes/no/partial informs B-0855 architectural-fix scope
Declarative-input categories 12 informs B-0854 Phase 2 manifest schema
Files-generated table 9 files → mapped to B-0852.5 manifest entries identifies 3 candidate-expansion items

Composes with already-landed substrate

Next phases (NOT this row's scope)

  • B-0854.2: ship `package.json` + `bunfig.toml` + `bun.lock` stub at Zeta repo root (mirrors `../scratch` + `../SQLSharp`)
  • B-0854.3: Ace manifest schema covering the 12 categories
  • B-0854.4: author `ace.yaml` (or equivalent) for Zeta at repo root
  • B-0854.5: live-USB Ace bootstrap
  • B-0854.6: `ace install zeta` smoke test against fresh USB
  • B-0854.7-8: zeta-install.sh thin-bootstrap reduction → retirement

Test plan

🤖 Generated with Claude Code

…0 substrate for Ace migration trajectory

B-0854 sub-row .1 (Phase 0; smallest pure-analysis slice). Documents
the EXISTING imperative bash state-machine in zeta-install.sh so the
B-0854 Phase 2 declarative-Ace-manifest schema can express the same
surface.

Inventory covers:
- Top-level entry (REPO_URL, HOST, ZETA_AUTO_CONFIRM env semantics)
- Step-by-step state machine for all 14 sub-steps (1, 2, 3, 4, 5, 6,
  6.5, 6.55, 6.6, 6.7, 6.8, 6.9, 6.95, 7) with inputs/outputs/side-
  effects/failure-modes/declarative-equivalent per step
- Cross-cutting: operator-prompt accumulation count (7 prompts today;
  B-0852 phase-split target = 1 passphrase prompt)
- Idempotency surface table — informs B-0855 architectural fix scope
- 12 distinct declarative-input categories the Ace manifest must
  capture (Phase 2 sub-row scope)
- Files-generated-during-install table mapping to B-0852.5 cred-
  manifest entries (6 mapped, 3 candidate-expansion items named)

Snapshot date: 2026-05-27 (origin/main 70596a8; PR #5417 cosign
merge). Future refreshes should re-snapshot when zeta-install.sh
changes substantially.

Composes with already-landed substrate-engineering arc:
- B-0852 + sub-rows (cred persistence) — PR #5403/#5411/#5414
- B-0853.1 (cosign signing) — PR #5417 + fix-fwd #5419
- B-0855 (self-register architectural fix) — PR #5412
- B-0856 Path A (deferred /tmp coordination) — PR #5413
- B-0854 parent (Ace migration trajectory) — PR #5405

No code change; pure documentation. Doesn't affect ISO substrate;
batches into substrate-engineering history independent of next ISO
build cycle.
Copilot AI review requested due to automatic review settings May 27, 2026 07:34
@AceHack AceHack enabled auto-merge (squash) May 27, 2026 07:34
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a Phase 0 documentation substrate for B-0854.1 by inventorying the existing full-ai-cluster/usb-nixos-installer/zeta-install.sh step/state-machine so later Ace-manifest work can mirror the current imperative behavior.

Changes:

  • Introduces a new installer inventory document capturing step inputs/outputs/side-effects/failure modes and proposed declarative equivalents.
  • Adds cross-cutting summaries (prompt accumulation, idempotency surface, declarative input categories, generated files mapping).

Comment thread docs/installer/zeta-install-step-state-machine-inventory-2026-05-27.md Outdated
Comment thread docs/installer/zeta-install-step-state-machine-inventory-2026-05-27.md Outdated
Comment thread docs/installer/zeta-install-step-state-machine-inventory-2026-05-27.md Outdated
Comment thread docs/installer/zeta-install-step-state-machine-inventory-2026-05-27.md Outdated
Comment thread docs/installer/zeta-install-step-state-machine-inventory-2026-05-27.md Outdated
Comment thread docs/installer/zeta-install-step-state-machine-inventory-2026-05-27.md Outdated
Comment thread docs/installer/zeta-install-step-state-machine-inventory-2026-05-27.md Outdated
Comment thread docs/installer/zeta-install-step-state-machine-inventory-2026-05-27.md Outdated
@AceHack AceHack disabled auto-merge May 27, 2026 07:39
…ual zeta-install.sh content

PR #5420 Copilot review caught 10 substantive accuracy issues in the
B-0854.1 inventory doc. All 10 verified against origin/main 70596a8's
actual zeta-install.sh content + corrected.

Corrections:
- Name attribution → role-ref ("the human maintainer")
- Step 1 inputs: actual `lsblk -d -p -n -o NAME,TYPE,RM,RO,TRAN` + awk
  filter (not made-up NAME,SIZE,MODEL,TRAN,ROTA)
- Step 3 side effects: `sgdisk --zap-all` only (not `wipefs -af` too)
- Step 4: actual `sgdisk` (NOT `parted`); GPT layout via -n + -t flags;
  whole-disk longhorn partitions on DATA_DISKS too
- Step 6: `nixos-generate-config --root /mnt --force` (NOT
  --no-filesystems; --force overwrites existing config)
- Step 6.5: no MAGIC_NUMBER (didn't exist in script); INJECT_OK gate
  flag; iter-4 v1 manual-config-edit fallback path
- Step 6.9: SELF_REG_OK flag; documented graceful-skip path lines 731+
- nixos-install: actual line ~1004 (NOT 1096-1340); section renamed
  to "nixos-install (the actual build; ~line 1004)" since the prior
  range was wrong
- Step 7: actual lines 1261-1336 (NOT 1341-1352); banner driven by
  GH_AUTH_OK/GH_KEY_COUNT/INJECT_OK/SELF_REG_OK (NOT MAGIC_NUMBER);
  conditional sections listed in declarative equivalent

Resolves 10 Copilot threads on PR #5420.

Root cause of the inaccuracies: original draft was written from
`grep -E "^# ── Step"` summaries + recollection of script behavior,
not careful per-step body reads. Discipline lesson: when authoring
substrate-anchor docs claiming to inventory existing code, the read
must be careful per-line, not skim-grep summary. Composes with
.claude/rules/verify-existing-substrate-before-authoring.md at the
inventory-substrate scope (verify-content-of-thing-being-inventoried
before authoring claims about its content).
@AceHack AceHack enabled auto-merge (squash) May 27, 2026 07:40
@AceHack AceHack merged commit 3d603fe into main May 27, 2026
28 checks passed
@AceHack AceHack deleted the docs/b-0854-1-zeta-install-step-state-machine-inventory branch May 27, 2026 07:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants