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

45 lines
1.9 KiB
Markdown

# __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`.