Files
mathiasandClaude Opus 4.8 c6f8ea477b
CD / Lint / Test / Vet (push) Failing after 3s
CD / Build & Import (push) Has been skipped
CD / Deploy via GitOps (push) Has been skipped
refactor(template): match single-harness (hyperguild) architecture (infra#178)
The template carried the old multi-tool/agentsquad-era CAD-executor scaffold.
Refresh it to the consolidated single-harness reality (hyperguild#75/#76):
Claude Code + hyperguild, session-based, brain + gitea MCP. No dispatch
automation added (out of scope — dispatch stays manual until real friction
warrants it).

Removed (multi-tool + dead generator + deployed-agent-era):
- .aider.conf.yml, .aider.conventions.md, .cursorrules
- .context/ (mcp.json, PROJECT.md, system-prompt.txt)
- agent-policy.yaml (k8s NetworkPolicy scaffold)
- scripts/context-sync.sh (generated the above from .context/PROJECT.md — now
  input-less) + its context:sync* Taskfile tasks

Added / updated:
- .mcp.json (root, hyperguild-shaped: brain + gitea, Bearer env tokens)
- CLAUDE.md / AGENTS.md / README.md → single-harness workflow (issue →
  hyperguild session → PR → report-back comment → brain capture)
- AGENT_BOUNDARIES.md kept (harness-agnostic egress/scope guidance); repointed
  its two references to the removed agent-policy.yaml

Left alone: cd.yml, Dockerfile, Taskfile (build/test), go.mod, cmd/, internal/,
pkg/, .claude/. No dangling refs to removed files (verified). Refs infra#178.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 22:20:37 +02:00

1.9 KiB

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.