Task · SKT-0005.19

Start fresh deployments with no selected blueprints

Description

A fresh synthkit installation must not emit the bundled example catalog without an explicit operator selection. Bundled blueprints remain available examples, while the runtime starts in a usable setup state until exact blueprint names or the explicit all-catalog selector are configured.

Acceptance Criteria

Definition of Done

Implementation Plan

Solo topology: root owns the selection contract, runtime/readiness integration, UI, documentation and skills, tracker, review, commits, pushes, release/deployment verification, and final evidence. No auxiliary lanes: the seams are tightly coupled and the active harness contract does not authorize delegation.\n\n1. RED/GREEN selection semantics through public config/source interfaces: empty selects none, * explicitly selects all, exact lists stay strict, and missing requested names still fail with available names. Preserve the distinction between intentional empty and attempted-but-failed loading.\n2. RED/GREEN setup-mode startup and readiness: permit intentional zero without building/ticking synthetic lanes, log one actionable warning, keep failed selected loads fatal, and expose a non-degraded setup-required state that passes container health while remaining not live-delivery-ready.\n3. RED/GREEN operator UI: replace the generic empty inventory message with an explicit no-emission fresh-start state and exact select/restart guidance; render setup-required readiness separately from degraded.\n4. Align .env/Compose defaults, README, quickstart, getting-started, blueprint/config/CLI/control-plane/runbook/troubleshooting/FAQ/upgrade guidance, and repository operational skills. Use BLUEPRINT_NAMES=* as the migration escape hatch and keep focused examples explicit.\n5. Run focused Go/UI/Compose checks, review the final diff adversarially for accidental emission, unhealthy setup containers, and silent upgrade behavior, run CodeRabbit because runtime/UI logic changes, then run make gate, explicit-name dry-run inventory, and a Docker Compose no-selection health exercise.\n6. Commit and push only owned paths, preserve docs.toml, wait for exact-head CI and release publication if triggered, then migrate and verify the standing deployment without changing its explicit otlp-native selection.

Rendered plan (format correction; supersedes the escaped rendering above):

  1. RED/GREEN selection semantics through public config/source interfaces: empty selects none, * explicitly selects all, exact lists stay strict, and missing requested names still fail with available names. Preserve intentional-empty versus attempted-but-failed loading.
  2. RED/GREEN setup-mode startup and readiness: permit intentional zero without synthetic lanes, log one actionable warning, keep failed selected loads fatal, and expose setup-required as container-healthy but never live-delivery-ready.
  3. RED/GREEN operator UI: show explicit no-emission fresh-start and exact select/restart guidance; distinguish setup-required from degraded.
  4. Align env/Compose defaults, product docs, migration guidance, and operational skills.
  5. Run focused checks, adversarial diff review, CodeRabbit, make gate, explicit-name inventory, and Docker no-selection health verification.
  6. Commit/push owned paths, preserve docs.toml, verify exact-head CI/release, then upgrade the standing deployment while preserving its explicit otlp-native selection.

Implementation Notes

Local verification complete before push:

Final publication and standing-deployment verification:

Final Summary

Fresh installations now start in a healthy setup-required state with no selected blueprints and no synthetic emission; exact names and explicit * selection retain strict behavior. The runtime, readiness contract, UI guidance, environment defaults, docs, runbooks, and operational skills were aligned and covered by focused Go/UI/Compose tests, full local gates, CodeRabbit, exact-head CI including E2E, RC publication, and a successful standing-deployment upgrade with live Grafana landing verification.

View the source file on GitHub