Skip to content

feat(build): expose env_required/env_optional in build-manifest.json#259

Merged
initializ-mk merged 1 commit into
mainfrom
feat/build-manifest-env-lists
Jul 8, 2026
Merged

feat(build): expose env_required/env_optional in build-manifest.json#259
initializ-mk merged 1 commit into
mainfrom
feat/build-manifest-env-lists

Conversation

@initializ-mk

Copy link
Copy Markdown
Contributor

Summary

  • forge build now writes the image's declared env-var union (env_required / env_optional) into build-manifest.json, sourced from the same AgentSpec.Requirements lists that already feed secrets.yaml.tmpl — skills' requirements.env ∪ channel env vars ∪ model-provider keys.

Why

CI deploy tooling (the new initializ CLI, initializ/cli-next) needs the structured env contract of the image it just built, to preflight required-var coverage before deploying. Today the only machine-readable trace is k8s/secrets.yaml, where required-vs-optional is encoded as a # optional YAML comment — not parseable robustly. The manifest stage runs after AgentSpecStage/K8sStage, so the data is already on bc.Spec.Requirements; this is a pure addition to the manifest map.

Testing

  • go test ./forge-cli/build/ — new TestManifestStage_EnvRequirements + existing suite pass
  • golangci-lint run ./forge-cli/build/... — 0 issues

🤖 Generated with Claude Code

CI deploy tooling needs the structured env-var union (skills + channels +
model provider) that already feeds secrets.yaml, without scraping YAML
comments. Emit it from the same AgentSpec.Requirements lists.
@initializ-mk initializ-mk force-pushed the feat/build-manifest-env-lists branch from a4d9ef9 to 287c527 Compare July 8, 2026 17:15
@initializ-mk initializ-mk merged commit f891e5a into main Jul 8, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant