607c5fec3a0f999e7e787b3c9b1b99d24219d527
Estate had 26 Go repos, 3 with a lint config, all three different; the other 23 ran golangci-lint v2 defaults, which enable NO formatter -- the hole that let gofmt drift rot undetected until it was found by hand (dma-cli#12). Canonical lives at infra ci-templates/golangci.yml and is distributed by the infra#309 pattern: byte-identical copies, checksum drift gate in infra. Do not edit this file here -- edit the canonical and run `task ci:sync`. Verified locally before pushing, not pushed-and-hoped: golangci-lint v2.11.4 run against a Go 1.26.1 toolchain (matching CI) reports 0 issues in this repo with this config.
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%