Evidence: two repos generated from this template fail identically on every push to main at "Deploy via GitOps" > "Update image tag in infra repo": sed: can't read k3s/apps/<name>/deployment.yaml: No such file or directory.
mathias/doodle: fixed in 32acff8, 006c108, 3a95cc9 (issue #3, #15).
mathias/spatial-agent-app: fixed in 54e1db6 (tag v0.0.1); red since the first substituted commit (2026-10-06).
Cause: the template's cd.yml build and deploy jobs run unconditionally on push to main, but a new repo has no infra manifest (mathias/infra k3s/apps//), so deploy cannot succeed, and build pushes images for nothing.
Proposed: ship in the template (a) scripts/deploy-enabled.sh, (b) the guard deploy step + deploy_enabled output, (c) needs.guard.outputs.deploy_enabled == 'true' in build.if and deploy.if, (d) scripts/tests/deploy-enabled_test.sh and scripts/tests/cd-wiring_test.sh wired into task check. Do not ship the marker. Generated repos then stay green with build/deploy skipped until someone creates the infra manifest and commits .deploy-enabled. Make the new-project flow mention this step. Port from doodle (read-only reference: those three commits); make sure the template's own is-template guard and substitution still pass.
Evidence: two repos generated from this template fail identically on every push to main at "Deploy via GitOps" > "Update image tag in infra repo": `sed: can't read k3s/apps/<name>/deployment.yaml: No such file or directory`.
- mathias/doodle: fixed in 32acff8, 006c108, 3a95cc9 (issue #3, #15).
- mathias/spatial-agent-app: fixed in 54e1db6 (tag v0.0.1); red since the first substituted commit (2026-10-06).
Cause: the template's cd.yml build and deploy jobs run unconditionally on push to main, but a new repo has no infra manifest (mathias/infra k3s/apps/<name>/), so deploy cannot succeed, and build pushes images for nothing.
Proposed: ship in the template (a) scripts/deploy-enabled.sh, (b) the guard `deploy` step + `deploy_enabled` output, (c) `needs.guard.outputs.deploy_enabled == 'true'` in build.if and deploy.if, (d) scripts/tests/deploy-enabled_test.sh and scripts/tests/cd-wiring_test.sh wired into `task check`. Do not ship the marker. Generated repos then stay green with build/deploy skipped until someone creates the infra manifest and commits .deploy-enabled. Make the new-project flow mention this step. Port from doodle (read-only reference: those three commits); make sure the template's own is-template guard and substitution still pass.
---
_Created via git-mcp on behalf of @mathias_
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Evidence: two repos generated from this template fail identically on every push to main at "Deploy via GitOps" > "Update image tag in infra repo":
sed: can't read k3s/apps/<name>/deployment.yaml: No such file or directory.Cause: the template's cd.yml build and deploy jobs run unconditionally on push to main, but a new repo has no infra manifest (mathias/infra k3s/apps//), so deploy cannot succeed, and build pushes images for nothing.
Proposed: ship in the template (a) scripts/deploy-enabled.sh, (b) the guard
deploystep +deploy_enabledoutput, (c)needs.guard.outputs.deploy_enabled == 'true'in build.if and deploy.if, (d) scripts/tests/deploy-enabled_test.sh and scripts/tests/cd-wiring_test.sh wired intotask check. Do not ship the marker. Generated repos then stay green with build/deploy skipped until someone creates the infra manifest and commits .deploy-enabled. Make the new-project flow mention this step. Port from doodle (read-only reference: those three commits); make sure the template's own is-template guard and substitution still pass.Created via git-mcp on behalf of @mathias