Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Milestone Plans — Overview

These plans are implementation guides for future agents. Each corresponds to a milestone of the build order (design §11, bootstrap plan) and states its goal, scope, work breakdown, testing strategy, exit criteria, and open decision points.

How to use these plans

  • Read CLAUDE.md, then docs/design.md for the decisions and reasoning, then the plan for your milestone. The plan tells you what to build and in what order; the specs (docs/tr-grammar.md, docs/lock-schema.md, docs/soil-syntax-spec.md) tell you what the artifacts must look like.
  • Decision points listed in a plan are not yours to make. The initial sets were all resolved with the user on 2026-08-22 and are recorded in each plan; if implementation surfaces a new open choice, present options to the user and record the outcome in the plan and in docs/design.md the same way.
  • Exit criteria are the definition of done. Do not start the next milestone’s work early; the ordering is load-bearing (each stage is the oracle or substrate for the next).
  • When implementation reveals a spec contradiction or gap, stop and raise it — spec fixes propagate to docs/ and examples/ before code works around them.

Sequence

PlanMilestoneDepends on
01-soil-rt.mdThe runtime crate (values, JSON, C ABI)
02-soil0.mdMinimal Rust Soil: parser, checker, interpreter, CLI oracles01
03-daemon.mdThe Trellis daemon: hashing, locks, lowering jobs, MCP tools01, 02
04-prelude.mdThe pure-core prelude, first Trellis code03
05-soilc.mdThe compiler as the first Trellis project; self-hosting04
06-ffi-bind-ide.mdFFI (Rust + Python), trellis bind, minimal IDE05
07-python-glue.mdThe second project: validate the FFI half of the pitch06

Rust code accumulates in one workspace (soil-rt, soil0, later the daemon and the Cranelift driver). Trellis code (prelude, soilc) lives in Soil roots with soil.toml. Nothing in these plans exists yet; the repo is design-only until plan 01 begins.