add5428e2fa127644e2fada14342dc18aa2743f8
A template is the highest-leverage copy of anything. This one carried its own inline build step, so every generated repo was born with a private fork of the build logic -- which is how rootless buildah reached a dozen repos before infra#241, and why the fix then had to be rediscovered here weeks after the app repos were done. The step now calls .gitea/build-image.sh, a byte-identical copy of mathias/infra's ci-templates/build-image.sh. Generated repos inherit the script and the call; adding the new repo to infra's adopters.txt puts it under the drift gate. Invoked as `bash .gitea/build-image.sh` rather than relying on the exec bit: files written through the Gitea API land 0644, and a template whose CI depends on a file mode is a trap for every repo generated from it.
PROJECT_NAME
Go agent built on Google ADK with a LiteLLM adapter for local model routing.
Quick start
cp .env.example .env
# edit .env with your LITELLM_API_KEY
go mod tidy
task run
Harness & workflow
Single harness: Claude Code + hyperguild — session-based (start a session, it works, it
stops). No push-triggered dispatch. MCP connections live in .mcp.json: brain (knowledge)
and gitea (issues/PRs — the audit trail); provide BRAIN_MCP_TOKEN and GITEA_MCP_TOKEN.
Work flows: issue → hyperguild session → PR (task check gate) → report-back comment on the
issue → brain capture if the learning is durable. See AGENTS.md / CLAUDE.md for the full
context, AGENT_BOUNDARIES.md for runtime scope.
Observability
Set OTLP_ENDPOINT=http://jaeger.d-ma.be:4318 to emit traces. Each invocation produces:
invoke_agent __PROJECT_NAME__spangenerate_content <model>child span withgen_ai.request.modelattribute
Structure
cmd/__PROJECT_NAME__/ agent entrypoint
pkg/litellm/ OpenAI-compat ADK adapter + OTLP telemetry helper
Languages
Go
54%
Shell
44.6%
Dockerfile
1.4%