Two control planes in one repo. They share git history and secrets; they do not share a reconcile engine.
| Package | Role |
|---|---|
admin/ |
GraphQL Admin GitOps — markets, shipping, locations, tax coverage |
storefront/ |
Online Store 2.0 / Horizon theme — Liquid, JSON templates, Theme Editor |
Architecture: ARCHITECTURE.md.
npm install
npm test
npm run plan -- --env staging
npm run apply -- --env staging --plan plan.json
npm run apply -- --env production --plan plan.json # requires --planExit codes: 0 clean, 1 error, 2 managed drift.
Tokens are env-var names in admin/environments/*.yaml. Values stay in GitHub Secrets or a gitignored .env. See .env.example.
npm run generate:unsupported # regenerates admin/UNSUPPORTED.md from coverage.yamlShopify CLI, from storefront/. Push code to an unpublished theme; a human publishes. Do not auto-publish on merge. See storefront/README.md.