Packaging Feature
Intent
Standardize how the repo defines build artifacts (services, jobs, apps) and how humans build them in a repeatable way.
What gets enabled
When enabled, this feature materializes:
- •
ops/packaging/**- •
ops/packaging/templates/Dockerfile.* - •
ops/packaging/scripts/docker-build.mjs - •
ops/packaging/handbook/**
- •
- •
docs/packaging/registry.json(packaging targets registry)
Controller scripts (provided by the template SSOT):
- •
node .ai/skills/features/packaging/scripts/packctl.mjs— packaging target registry management
How to enable
- •Copy templates from:
- •
.ai/skills/features/packaging/templates/into the repo root.
- •
- •Initialize:
bash
node .ai/skills/features/packaging/scripts/packctl.mjs init node .ai/skills/features/packaging/scripts/packctl.mjs verify
Optional (recommended for LLM routing): record the flag in project state:
bash
node .ai/scripts/projectctl.mjs init node .ai/scripts/projectctl.mjs set features.packaging true
Operating rules
- •Builds are human-executed (CI can be added later).
- •Treat image naming/versioning/provenance as first-class.
- •Record packaging plans and build logs in
ops/packaging/handbook/.
Verification
bash
node .ai/skills/features/packaging/scripts/packctl.mjs verify
Boundaries
- •Builds are human-executed; do not run Docker commands as the AI agent.
- •Do not store credentials/tokens in
docs/packaging/registry.jsonor underops/packaging/. - •Keep packaging definitions within the declared blast radius (
ops/packaging/**,docs/packaging/**).