@msn-control/liftoff
v0.2.1
Published
Mission Control Liftoff CLI for scaffolding enterprise GenAI applications.
Maintainers
Readme
Liftoff CLI
Status: implemented.
Liftoff is the Mission Control Launchpad Engine package under tools/liftoff-cli. It exposes the liftoff command and scaffolds enterprise GenAI applications with FastAPI, PydanticAI, Docker Compose, OpenTofu, and spec-driven governance assets.
Installation
Install the latest stable CLI globally:
npm install -g @msn-control/liftoff@latestAfter installation, run:
liftoff help
liftoff createContract conventions
Generated projects contain persistent files that outlive any CLI release. The following rules are the compatibility contract, enforced by tests/contract.test.ts where possible:
- Manifest schema:
liftoff.manifest.jsonusesartifactVersion2 — the first supported schema version — recording the generating CLI version (liftoffVersion) and asha256:-prefixedcontentHashper artifact. Readers accept every supported version and reject others with a remedy; writers always write the latest version. - Append-only identifiers: artifact
logicalNames and catalog ids (patterns, providers, environments, spec workflows) are never renamed or removed, only added. The contract test snapshots the logical-name sets. - Deterministic rendering: artifact content depends only on the project plan and the template code — no timestamps, randomness, or environment leakage. Verified by a double-render byte-equality test.
- Reserved namespaces:
.liftoff/in generated projects is reserved for future CLI-managed state; no new CLI-managed root-level files beyondliftoff.config.jsonandliftoff.manifest.json.liftoff.config.jsonis written once at generation and never machine-written afterwards. - Portable paths: machine-readable files store OS-neutral path-part arrays, never joined path strings.
- Exit codes: 0 = success or clean check, 1 = failure, 2 = a check mode found drift.
- Machine output: every
--jsonoutput carries a top-level numericschemaVersion.
Development
Repository-local commands are for contributors working from a Mission Control checkout. Run package commands from the repository root:
npm run build
npm test
npm run checkOr run them directly in this workspace package:
npm run check --workspace @msn-control/liftoffRun the package smoke test before publishing:
npm run smoke:package --workspace @msn-control/liftoffRelease
The Release Liftoff workflow builds, tests, packs, smoke-installs, and publishes only the @msn-control/liftoff workspace package. Stable versions publish with the latest npm dist-tag; prerelease versions publish with next.
Prefer npm trusted publishing with provenance for release authentication. If trusted publishing is not configured for the repository and npm organization, create a scoped npm automation token and store it as the repository secret NPM_TOKEN.
