Boot Sequence
Boot is not a daemon start. It is a read-only scan that reads .ostk/ state, resolves identity, and reports what is on disk. The kernel does not modify project files during boot — it observes, verifies, and tells you what it found.
What Boot Does
ostk boot assembles a complete picture of the current workspace from three layers:
Shared project state — .ostk/ directory, Agentfile, boot.md, pin caps. Committed to version control.
Personal identity — ~/.HUMANFILE (global) merged with .ostk/HUMANFILE (project). Never committed.
Runtime environment — detected from environment variables at startup. Determines tool routing policy. Ephemeral.
The output is the merged context: context = f(repo) + g(operator) + h(harness). The agent instance receives this at session start. It knows who it is talking to, where it is running, and what it is allowed to do — without being told.
BOOT_STAGES
Boot executes five stages in strict sequence. Each stage depends on the output of the previous one. If a stage fails fatally, boot halts and prints a diagnostic.
If the OSTK_AGENTFILE environment variable is set, boot reads and parses the Agentfile at that path. Resolves:
FROM <model>— which LLM the agent targetsTOOL <name>— tool declarations (counted, not loaded)LIMIT,ISOLATION— resource and sandbox constraints
Missing Agentfile is non-fatal — boot continues with defaults. Present-but-unreadable is an error.
Hierarchical resolution loads operator identity and preferences. Resolution order:
~/.HUMANFILE— global identity (MODEL, SIGN, TRUST directives are immutable from this layer).ostk/HUMANFILE— project-level config (may EXTENDS global)- Merge if both exist — project overlays global, but identity fields stay pinned to the global source
Directives resolved at this stage: MODEL, SIGN, PREPROCESS, TRUST, SECRET, EMBED, DRIVER, VERB, BOOT.
After loading, boot auto-populates the AVAILABLE model list by scanning for known API keys (ANTHROPIC_API_KEY, GEMINI_API_KEY, etc.) and initializes secret masking for any SECRET directives.
The identity and capability layer. Boot determines who you are and what you can do:
- Trust tier — GPG web-of-trust determines your tier (T0 through T3). Your GPG key is checked against the project's signing chain.
- ENTITYFILE — governance document loaded and GPG-verified. Invalid signatures are fatal (fail-closed). Missing ENTITYFILE is non-fatal (fresh-install path).
- Pin caps — capability pins loaded from
.ostk/pin.caps. These constrain what tools agents can invoke. - Drivers — declared drivers probed via Unix sockets. Boot never spawns drivers — it only checks what is already running. Inactive drivers are registered for demand-spawn on first use.
- .language — the verb registry is populated. Kernel services, MCP primitives, introspection tools, and HUMANFILE VERB directives are all registered into the
.languagefile.
Before any of this, boot reaps dead agents from the process table and cleans up orphaned heartbeat files — housekeeping from the previous session.
Builds the context injection that every agent instance receives at session start. The preload is assembled from:
- Project structure scan (what files exist, language breakdown)
.languageregister contents (all verbs, devices, services with their resolutions)boot.mdswap — the compiled operator section replaces the template boot.md- Identity blocks from HUMANFILE (communication style, scheduling preferences, corrections log)
The stable portion of this preload can be rendered once and uploaded as firmware — a deployment artifact that fleet members reference by ID rather than re-rendering independently.
Resolves the tack grammar and validates the dispatch loop:
- Tack grammar — HUMANFILE VERB definitions are validated against
.language. Unresolvable verbs reduce boot confidence. - INIT validation — the post-language INIT verb sequence is checked. Missing verbs in the INIT chain are flagged and penalize the boot confidence score.
- Verb momentum — recent tack resolution history from the audit log is loaded to seed the confidence gradient.
After this stage, the compressed register dump is printed — a one-line summary of .language state (verb count, fleet size, open needles).
The agent loop begins. Boot transitions from observation to action:
- Harness detection — environment is probed to determine tool routing (Claude Code, ostk-serve, CI, terminal). This controls whether the agent uses native tools or MCP primitives.
- Checkpoint verification — the most recent checkpoint's GPG signature is verified. Invalid signatures are fatal for governed agents, advisory for interactive sessions.
- Version pin — if
.ostk/versionexists, the running binary version is checked against the pin. - Continuation prompt — if enabled, a dynamic prompt is generated from current workspace state and written to
.ostk/prompts/continuation.md.
Tool calls from this point forward pass through the 7-step approval chain.
POST_CHECKS
Power-On Self-Test. Seven checks run during boot to verify system integrity. The POST 7/7 line in boot output confirms all passed. A failed check does not necessarily halt boot — some degrade gracefully, others are fatal.
Boot Confidence
The boot confidence score is a 0.00–1.00 value computed at the end of boot. It measures how well the system can resolve operator intent into action. Three inputs feed the score:
HUMANFILE loaded, trust tier resolved, ENTITYFILE verified. Missing identity layers drag the score toward zero.
Recent tack resolutions from the audit log are weighted by tier (T1 = 1.0, T2 = 0.8, T3 = 0.5). High-tier resolutions lift the score.
The INIT verb sequence is checked against .language. Missing verbs in the post-language chain penalize confidence.
The score determines the operating mode:
A fresh project with no audit history will always show 0.00 (restricted mode). This is normal — the score rises as the system accumulates successful tack resolutions. It is a measure of earned trust, not a pass/fail gate.
BOOT_OUTPUT
A typical ostk boot run on a configured workspace. Each line maps to a stage above:
✓ HUMANFILE loaded (global only)
trust: T1 (cross-signed, write access)
.language: 58 verbs | fleet: 0 alive
needles: 0 open
boot confidence: 0.00 (restricted mode)
✓ HUMANFILE loaded (global only) trust: T1 (cross-signed, write access) .language: 58 verbs | fleet: 0 alive needles: 0 open boot confidence: 0.00 (restricted mode) Harness Detection
Boot detects the execution environment and sets tool routing policy accordingly. The agent knows how to talk to the kernel without being told.
OSTK_HARNESS=claude-code or TERM_PROGRAM=claude OSTK_SERVE=1 CI=true or GITHUB_ACTIONS=true Default fallback
The OSTK_HARNESS environment variable overrides all detection — it always wins.
First Run
When no .ostk/ directory is found, boot does not fail — it prints a welcome message and guides you to initialization:
- No git repo — suggests
git initfirst. The OS requires a git repository as its substrate. - Git repo, no .ostk/ — prints the full welcome with
ostk initandostk init --guidedoptions.
After running ostk init, re-run ostk boot to complete the full boot sequence. See Quick Start for the step-by-step guide.