# __PROJECT_NAME__ — agent context Standalone context for agents that read `AGENTS.md` from the repo root. Claude Code uses `CLAUDE.md` (and tree-walks to `~/dev/CLAUDE.md`); this file mirrors the same essentials for any other harness. ## Project - **Name**: __PROJECT_NAME__ — a Go agent (ADK + LiteLLM). - **Owner**: Mathias · **Client**: personal · **Repo**: git.d-ma.be/mathias/__PROJECT_NAME__ ## Harness Single harness: **Claude Code + hyperguild** — session-based (start a session, it works, it stops). There is **no** push-triggered dispatch, listener, or scheduled poller, and none should be added without a fresh, friction-driven decision. MCP connections in `.mcp.json`: - **brain** (`brain-mcp.d-ma.be`) — knowledge query/write. `BRAIN_MCP_TOKEN`. - **gitea** (`git-mcp.d-ma.be`) — issues/PRs/repo, the audit trail. `GITEA_MCP_TOKEN`. ## Workflow 1. **Issue** — work is scoped as a Gitea issue (acceptance criteria + report-back format). 2. **Session** — a Claude Code + hyperguild session does the work in this repo. 3. **PR** — branch off `main`; open a PR; CI (`task check`) is the gate. 4. **Report-back** — comment the outcome on the issue (issue comments are the audit surface). 5. **Brain capture** — persist durable, non-obvious learnings to the brain. ## Conventions - Go: standard tooling; `task check` (lint + vet + `go test -race`) before every PR. - Errors wrapped (`fmt.Errorf("...: %w", err)`); structured `slog`. - Trunk-based: commit to `main` via PR; one logical change per commit; CI is the quality gate. - Secrets via env (`BRAIN_MCP_TOKEN`, `GITEA_MCP_TOKEN`, `LITELLM_API_KEY`); never in code. ## Boundaries Runtime scope (network egress allow-list, file scope, approved operations, failure posture) is in `AGENT_BOUNDARIES.md`. Read it before adding tools, endpoints, or write access. ## Observability Traces → Jaeger via `OTLP_ENDPOINT`; `ADK_SERVICE_NAME=__PROJECT_NAME__`. Spans: `invoke_agent`, `generate_content`.