This repository uses Markdown as the canonical documentation source and can be rendered via Docusaurus.
In the source blueprint repository this page is maintainer-oriented. Generated consumer repositories replace docs/README.md during make blueprint-init-repo with a consumer-owned docs index.
- Blueprint Docs: maintain and evolve the blueprint itself.
- Platform Docs: platform docs for generated target repositories.
Recommended reading order:
- First 30 Minutes
- Platform Quickstart
- App Onboarding Contract
- Endpoint Exposure Model
- Protected API Routes
- Event Messaging Baseline
- Zero-Downtime Evolution
- Tenant Context Propagation
- Platform Troubleshooting
- Platform Architecture and ADRs
Default policy reminder: for stackit-* runtime capabilities, use managed STACKIT services unless an approved explicit exception is recorded in SDD artifacts and decisions.
Fast path:
make blueprint-init-repo-interactive
make blueprint-bootstrap
make infra-bootstrap
make infra-validateFor CI/non-interactive bootstrap, use:
cp blueprint/repo.init.secrets.example.env blueprint/repo.init.secrets.env
${EDITOR:-vi} blueprint/repo.init.env blueprint/repo.init.secrets.env
make blueprint-init-repomake blueprint-init-repo creates or refreshes tracked defaults in blueprint/repo.init.env,
keeps placeholder-only scaffolding in blueprint/repo.init.secrets.example.env, and creates
gitignored local sensitive defaults in blueprint/repo.init.secrets.env.
For enabled optional modules, required non-sensitive inputs are seeded into blueprint/repo.init.env
and required sensitive inputs are scaffolded in the secrets files with non-empty placeholders.
Later make blueprint-check-placeholders and infra targets auto-load defaults + secrets files when present.
For existing generated repositories, compare consumer-seeded root files against the latest seed templates with a supported dry-run workflow:
make blueprint-resync-consumer-seedsApply only safe deterministic updates:
BLUEPRINT_RESYNC_APPLY_SAFE=true make blueprint-resync-consumer-seedsForce full overwrite (including manual-merge candidates):
BLUEPRINT_RESYNC_APPLY_ALL=true make blueprint-resync-consumer-seedsFor full blueprint-managed upgrades on existing generated repos:
BLUEPRINT_UPGRADE_REF=<tag|branch|commit> make blueprint-upgrade-consumer
BLUEPRINT_UPGRADE_REF=<tag|branch|commit> BLUEPRINT_UPGRADE_APPLY=true make blueprint-upgrade-consumer
make blueprint-upgrade-consumer-validateBLUEPRINT_UPGRADE_SOURCE defaults to remote.upstream.url when configured, then remote.origin.url.
BLUEPRINT_UPGRADE_ENGINE_MODE defaults to source-ref, so upgrade runs execute the engine script resolved
from BLUEPRINT_UPGRADE_SOURCE@BLUEPRINT_UPGRADE_REF (instead of a potentially stale local engine copy).
Set BLUEPRINT_UPGRADE_ENGINE_MODE=local only for explicit local debugging.
Install/sync bundled Codex skills locally when you want repeatable AI-driven operations:
make blueprint-install-codex-skillsInstall only the upgrade skill:
make blueprint-install-codex-skill
BLUEPRINT_CODEX_SKILLS_DIR="${CODEX_HOME:-$HOME/.codex}/skills" make blueprint-install-codex-skillInstall only the consumer operations skill:
make blueprint-install-codex-skill-consumer-ops
BLUEPRINT_CODEX_SKILLS_DIR="${CODEX_HOME:-$HOME/.codex}/skills" make blueprint-install-codex-skill-consumer-opsInstall SDD-specialized skills when needed:
make blueprint-install-codex-skill-sdd-step01-intake
make blueprint-install-codex-skill-sdd-step02-resolve-questions
make blueprint-install-codex-skill-sdd-step03-spec-complete
make blueprint-install-codex-skill-sdd-step04-plan-slicer
make blueprint-install-codex-skill-sdd-step05-implement
make blueprint-install-codex-skill-sdd-step06-document-sync
make blueprint-install-codex-skill-sdd-step07-pr-packager
make blueprint-install-codex-skill-sdd-traceability-keeperUse this baseline sequence so agents follow SDD deterministically:
- Install/sync bundled skills:
make blueprint-install-codex-skills
- Start a work item:
make spec-scaffold SPEC_SLUG=<work-item-slug>
- Complete
Discover -> High-Level Architecture -> Specify -> Planand keepSPEC_READY=falseuntil all required inputs are explicit. - Record applicable
SDD-C-###control IDs from.spec-kit/control-catalog.mdin the work-itemspec.md. - Start implementation only when
SPEC_READY=true, then runVerify,Document, andPublish(make docs-build,make docs-smoke,make quality-sdd-check-all,make quality-hardening-review,make spec-pr-context) before closing.
Read:
- Blueprint README
- Blueprint Execution Model
- Blueprint System Overview
- Blueprint Architecture North Star
- Blueprint Technology Stack Baseline
- Ownership Matrix
- Spec-Driven Development
- Assistant Compatibility
- STACKIT Terraform:
infra/cloud/stackit/terraform/ - Local provisioning:
infra/local/crossplane/ - Local Helm values:
infra/local/helm/ - GitOps overlays and optional apps:
infra/gitops/argocd/
- Observability
- Workflows
- Langfuse
- Postgres
- Neo4j
- Object Storage
- RabbitMQ
- OpenSearch
- DNS
- Public Endpoints
- Secrets Manager
- KMS
- Identity-Aware Proxy
Command discovery:
make helpmake infra-help-reference
Common baseline flow:
make blueprint-init-repo-interactivemake blueprint-init-repomake blueprint-resync-consumer-seedsmake blueprint-upgrade-consumermake blueprint-upgrade-consumer-preflightmake blueprint-upgrade-consumer-validatemake blueprint-upgrade-consumer-postcheckmake blueprint-install-codex-skillmake blueprint-install-codex-skill-consumer-opsmake blueprint-install-codex-skill-sdd-step01-intakemake blueprint-install-codex-skill-sdd-step02-resolve-questionsmake blueprint-install-codex-skill-sdd-step03-spec-completemake blueprint-install-codex-skill-sdd-step04-plan-slicermake blueprint-install-codex-skill-sdd-step05-implementmake blueprint-install-codex-skill-sdd-step06-document-syncmake blueprint-install-codex-skill-sdd-step07-pr-packagermake blueprint-install-codex-skill-sdd-traceability-keepermake blueprint-install-codex-skillsmake spec-scaffold SPEC_SLUG=<work-item-slug>make spec-impactmake spec-evidence-manifestmake spec-context-packmake spec-pr-contextmake quality-hardening-reviewmake blueprint-bootstrapmake blueprint-render-module-wrapper-skeletonsmake blueprint-clean-generatedmake infra-bootstrapmake infra-local-destroy-allmake infra-destroy-disabled-modulesmake infra-validatemake infra-smoke
Upgrade guardrails:
make blueprint-upgrade-consumerfails fast when the resolved baseline tag and selected upgrade ref point to the same commit (upgrade baseline collision).- When this happens, choose an upgrade ref newer than the baseline tag (or bump
template_bootstrap.template_versionfirst) before re-running. - Upgrade plan/apply reports include explicit
required_manual_actionsdiagnostics when platform-owned dependency paths are missing (for example runtime-identity edges). - Treat non-empty
required_manual_actionsas blocking and re-runmake blueprint-upgrade-consumer-validateafter reconciliation. - Treat
artifacts/blueprint/upgrade/upgrade_reconcile_report.jsonwith non-zero blocking buckets as blocking and runmake blueprint-upgrade-consumer-postcheckbefore merge.
If you intentionally need to re-apply consumer-seeded or init-managed files after first init, rerun:
BLUEPRINT_INIT_FORCE=true make blueprint-init-repo
Quality and docs flow:
make quality-hooks-fastmake quality-hooks-strictmake quality-hooks-runmake quality-sdd-checkmake quality-sdd-check-allmake quality-sdd-sync-allmake quality-hardening-reviewmake quality-ci-check-syncmake quality-docs-lintmake quality-docs-check-changedmake quality-docs-check-blueprint-template-syncmake quality-docs-check-platform-seed-syncmake quality-test-pyramidmake quality-docs-sync-runtime-identity-summarymake quality-docs-sync-module-contract-summariesmake docs-installmake docs-runmake docs-buildmake docs-smoke
Operational diagnostics and teardown:
make infra-contextmake infra-status-jsonmake infra-port-forward-startmake infra-port-forward-stopmake infra-port-forward-cleanupmake infra-local-destroy-allmake infra-stackit-destroy-allartifacts/infra/smoke_result.jsonartifacts/infra/smoke_diagnostics.jsonartifacts/infra/workload_health.jsonartifacts/infra/infra_status_snapshot.json
make blueprint-render-makefile (or make blueprint-bootstrap) renders make/blueprint.generated.mk from template and only materializes targets for enabled modules.
make infra-bootstrap materializes enabled optional-module infra scaffolding and preserves disabled-module scaffolding for safe future enablement.
Use make infra-destroy-disabled-modules when resources for a now-disabled module may already exist.
To inspect the currently materialized optional-module targets for your active flags, run:
make help
apps/catalog/manifest.yamlis the canonical app-layer manifest.apps/catalog/versions.lockstores pinned app/runtime versions.