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.