initree — roadmap¶
Where the project is and where it's headed. For how 0.1.0 came together task by task, the git history
and CHANGELOG.md are the record;
this file looks forward.
Shipped — 0.1.0¶
The engine and the first ten layers, on PyPI.
- The five-phase lifecycle (
resolve→prompt→compute→emit→finalize) over a typed capability bus, withresolveproving a recipe is buildable before any file is written. - Ten layers across six slots:
python/go,fastapi/gin,docker,gh-actions/gitlab-ci,vps-ssh/k8s,slack. - Two reference recipes locked byte-for-byte by golden tests.
Shipped — 0.2.0¶
Thirteen layers and a sharper CLI, on PyPI.
- [x] Repo hygiene — refreshed
CLAUDE.md, addedCHANGELOG.md,CONTRIBUTING.md, issue templates. - [x] Docs restructure — descriptive filenames + an index, and an mkdocs site at ibrah5em.github.io/initree.
- [x] Engine introspection —
initree list(slots and layers),initree new --dry-run(prove buildability and preview the tree without writing), a--versionflag, and sharperresolveerrors (nearest-match on an unknown layer id, the owning slot for a missing key). - [x] Breadth —
podman(proves the docker→podman swap touches no other layer) andnode+express(a third stack that exercises thejson-arraypackage.jsoninjection), on the back of aruntime.image_prepcapability that makes the single-stage container language-agnostic.
Later¶
- More layers as they're requested: a fly.io or render deploy, a discord notify, circleci, rust/axum. Each is a clean PR, not a new template — that's the whole point.
- Third-party layer discovery beyond
--layers-dir.
How work lands¶
One concern per PR, squash-merged, main stays linear. A new engine behaviour gets a test that fails
first. The details are in CONTRIBUTING.md.