agent/AGENTS.md
Snider 7873e0ebf7 feat: add Codex extension — agents, skills, rules, config
Parallel to the Claude Code plugin (claude/), core-agent now supports
Codex with full feature parity:

- .codex/config.toml — model, profiles (review/quick/implement/lem),
  MCP server, local model providers (Ollama/LM Studio)
- .codex/agents/ — reviewer, migrator, fixer (AX-aware)
- .codex/rules/ — Starlark rules for sandbox control
- .agents/skills/ — 9 skills matching Claude plugin
- AGENTS.md — Codex project instructions (like CLAUDE.md)

Supports --oss mode for local models (LEM via Ollama).
Same binary, two entry points.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 06:20:59 +00:00

76 lines
3.2 KiB
Markdown

# AGENTS.md — Core Agent
This file provides guidance to Codex when working with code in this repository.
## Project Overview
Core Agent (`dappco.re/go/agent`) is the agent orchestration platform for the Core ecosystem. It provides an MCP server binary (`core-agent`) with tools for dispatching subagents, workspace management, cross-agent messaging, OpenBrain integration, and monitoring.
## Architecture
```
cmd/main.go — Binary entry point, Core CLI (no cobra)
pkg/agentic/ — Dispatch, workspace prep, status, queue, plans, PRs, epics
pkg/brain/ — OpenBrain knowledge store (direct HTTP + IDE bridge)
pkg/monitor/ — Background monitoring, harvest, sync
pkg/lib/ — Embedded prompts, tasks, flows, personas, workspace templates
pkg/setup/ — Project detection, config generation, scaffolding
```
## Conventions
This project follows the **AX (Agent Experience)** design principles from RFC-025.
### Code Style
- **UK English**: colour, organisation, initialise (never American spellings)
- **Errors**: `core.E("operation", "message", err)` — never `fmt.Errorf`
- **Logging**: `core.Error/Info/Warn/Debug` — never `log.*` or `fmt.Print*`
- **Filesystem**: `core.Fs{}` with `Result` returns — never `os.ReadFile/WriteFile`
- **Strings**: `core.Contains/Split/Trim/HasPrefix/Sprintf` — never `strings.*` or `fmt.Sprintf`
- **Returns**: `core.Result{Value, OK}` — never `(value, error)` pairs
- **Comments**: Usage examples showing HOW with real values, not descriptions
- **Names**: Predictable, unabbreviated (Config not Cfg, Service not Srv)
- **Imports**: stdlib `io` aliased as `goio`
- **Interface checks**: `var _ Interface = (*Impl)(nil)` compile-time assertions
### Build & Test
```bash
go build ./...
go test ./...
go vet ./...
```
### Branch Strategy
- Work on `dev` branch, never push to `main` directly
- PRs required for `main` — Codex review gate
- Commit format: `type(scope): description`
- Co-author: `Co-Authored-By: Virgil <virgil@lethean.io>`
### Dependencies
- Only `dappco.re/go/core` for primitives (fs, errors, logging, strings)
- Domain packages: `process`, `ws`, `mcp` for actual services
- No `go-io`, `go-log`, `cli` — Core provides these natively
- Use `go get -u ./...` for dependency updates, never manual go.mod edits
## MCP Tools
The binary exposes these MCP tools when run as `core-agent mcp`:
| Tool | Purpose |
|------|---------|
| `agentic_dispatch` | Dispatch subagent to sandboxed workspace |
| `agentic_status` | List workspace statuses |
| `agentic_resume` | Resume blocked/failed workspace |
| `agentic_prep_workspace` | Prepare workspace without dispatching |
| `agentic_create_pr` | Create PR from workspace |
| `agentic_list_prs` | List PRs across repos |
| `agentic_create_epic` | Create epic with child issues |
| `agentic_scan` | Scan Forge for actionable issues |
| `agentic_plan_*` | Plan CRUD (create, read, update, delete, list) |
| `brain_recall` | Semantic search OpenBrain |
| `brain_remember` | Store to OpenBrain |
| `brain_forget` | Remove from OpenBrain |
| `agent_send` | Send message to another agent |
| `agent_inbox` | Read inbox messages |
| `metrics_record` | Record metrics event |
| `metrics_query` | Query metrics |