# Sky Lattice Internal toolkit for standing up and evolving **Snowflake data platforms** across customers: durable **intent** + **decisions**, a versioned **blueprint**, deterministic **plan/apply**, and an optional **Cursor skill** front door. Terraform remains the executor. Sky Lattice is the intent/decision/policy layer on top. ## Install ```bash cd /path/to/sky-lattice python3 -m venv .venv source .venv/bin/activate pip install -e ".[dev]" platformctl --version platformctl doctor ``` ## 5 commands to remember | Command | Purpose | |---|---| | `platformctl wizard` | Guided setup / resume | | `platformctl add domain …` | Incremental change | | `platformctl plan` | Show what will be created | | `platformctl apply` | Record/apply plan | | `platformctl drift` | Compare inventory vs intent | Also: `init`, `validate`, `discover`, `decision add|list`, `explain`, `destroy --env`, `skills install`, `doctor`. ## Quick start (greenfield demo) ```bash platformctl init acme --mode greenfield platformctl wizard --path customers/acme --answers examples/answers/acme.greenfield.yaml platformctl validate --path customers/acme platformctl plan --path customers/acme platformctl apply --path customers/acme --yes platformctl doctor --path customers/acme ``` Open `customers/acme` in Cursor — the `platform-ops` skill is already in `.cursor/skills/`. ## Brownfield ```bash platformctl init globex --mode brownfield # provide observed/inventory.yaml then: platformctl discover --path customers/globex --inventory examples/answers/globex.inventory.yaml platformctl wizard --path customers/globex --mode brownfield --answers examples/answers/globex.brownfield.yaml platformctl plan --path customers/globex ``` ## Layout ```text blueprint/ # versioned IP: modules, schemas, wizard, policies, skills src/skylattice/ # platformctl (Python) customers/ # generated customer projects (demo) docs/ # landing, recipes, product decisions PLAN.md # design plan (reference) ``` ## Customer environment landing See [docs/customer-landing/README.md](docs/customer-landing/README.md). Default: customer gets git repo + CI + secrets + Snowflake automation user; blueprint stays pinned/versioned. ## LLM / skills Skills drive `platformctl` and customer files — they do not own Snowflake. See skill at `blueprint/skills/platform-ops/`. ## License Internal use — adapt as needed for your organization.