Roadmap
star is built in public, phase by phase. The source of truth is docs/PLAN.md in the repository; this page mirrors it.
Status legend: implemented · in progress ·
planned| Phase | Delivers | Status |
|---|---|---|
| 0 — scaffold & foundations | module tree, CLI grammar, pure logic, docs | implemented |
| 1 — git layer & prompts | git.rs + prompt.rs, traversal-safe extraction |
implemented |
| 2 — config, first run, repo management | first-run init, repo add/update/list/remove |
in progress |
| 3 — discovery & cache | ensure_at_commit, template discovery, list --templates |
planned |
4 — star use |
resolution, disambiguation, materialization | planned |
5 — star template |
interactive template authoring | planned |
| 6 — polish | did-you-mean everywhere, listing polish, smokes | planned |
Phase 0 — scaffold & foundations
The full module tree, the complete CLI grammar (every subcommand and flag parses), and the pure-logic foundations — reference parsing, manifest parsing, config round-trips, namespace derivation, cache path escaping — all unit-tested.
Phase 1 — git layer & prompts
A shared git runner (--no-optional-locks, stderr-embedding errors) implementing the five
operations (ls-remote, clone, fetch, resolve, archive); archive extraction streams through an
in-process tar reader that rejects absolute members, .., symlink escapes, and non-git member
types. Interactive prompts (select, confirm, input) over inquire, gated on TTY detection
so scripts get actionable errors instead of hangs.
Phase 2 — config, first run, repo management
First-run initialization (interactive offer of the default repository; non-interactive default
include), then star repo add/update/list/remove working verbatim as documented, with
integration tests against local bare-repo fixtures.
Phase 3 — discovery & cache
The full clone/fetch/verify-pin flow with the SHA-fetch fallback, template discovery over
git archive output through the shared ignore pipeline, and star repo list --templates.
Phase 4 — star use
Resolution (unqualified search, qualified/URL lookup), interactive disambiguation or the
copy-pasteable error, the non-empty guard, materialization, and the report with init-message.
Phase 5 — star template
template new/init with the documented prompt table and defaults; non-interactive runs
produce fully-defaulted manifests that round-trip through the parser.
Phase 6 — polish
Did-you-mean suggestions in every miss path, listing/table polish, crash-report hygiene, version stamping, and real happy-path smoke tests replacing the stub contracts.