v0.6.9 · open source

Give any codebase a map any agent can read.

ACC gives your repository a voice. Boundaries, owners, dependencies, the rules nobody wants to repeat — written in plain Markdown, right next to the code. Any agent can read it. So can you.

AGENTS.md native Any agent 0 lock-in Offline by design
derived graph · acc graph oklch 355 · 155
payments cli db ledger tests declared declared discovered discovered
Declared edges (red) come from AGENTS.md. Discovered edges (cool dashed) come from code imports. ACC never asserts the latter as authoritative architecture.
what acc is

Make the repository explain itself.

Walk into any ACC repository with any coding agent — Codex, Claude Code, Cursor, whatever comes next — and the project explains itself. It's just the files agents already read, organized so the story is easy to follow. The CLI is a bonus. The repository does the talking.

Bring your own agent

Any agent reads AGENTS.md and gets it — it's just Markdown. Switch agents whenever you like; the context lives in the repo, not in the chat.

It's a skill, not a framework

ACC installs into the agent, not the repository. The repo stays a standard AGENTS.md project — remove the skill and the CLI tomorrow and nothing changes. ACC adds to the ecosystem, it never replaces it.

A map that never goes stale

The architecture is derived from what you declare and from what the code actually does — no hand-drawn diagram waiting to go stale.

No guessing games

Every fact is tagged: written by a human, observed in the code, or guessed by a tool. No more confusing opinions with evidence.

Private by default

No telemetry, no uploads, no scripts run. Safe on repositories you don't fully trust — offline, and quietly so.

one convention, any workflow

The CLI accelerates ACC. It doesn't define it.

ACC is a convention, not a runtime. The repository remains understandable through its files alone, while the CLI provides deterministic shortcuts for navigating context, validating contracts, deriving the graph, and working with memory. Use the CLI when it helps; nothing in ACC depends on it.

acc context <path>

Everything an agent needs before touching code — the hierarchy, the contracts, the dependencies — in one focused read. --depth decides how deep it goes.

$ acc context src/payments --depth 1 ## Hierarchy project root Source: AGENTS.md └─ src/payments/ Source: src/payments/AGENTS.md ## Dependencies (depth=1) Declared: → src/database/ Source: src/payments/AGENTS.md Discovered: ⚠ src/ui/ Discovered from imports — undeclared
acc check

Catches broken references, missing contracts, and forbidden dependencies before they bite. Stable codes, so you always know what you're looking at.

$ acc check ACC022 warn src/payments/mod.rs discovered dep 'payments → ui' not declared ACC040 info .lock no analyzer for extension → 1 warning, 0 errors
acc inspect <path>

Who owns a path, what it depends on, and what it's allowed to do — in one glance.

owner payments-team
acc graph [path]

See the architecture as text, mermaid, dot, or json — derived, not hand-drawn.

format --format mermaid
acc impact <path>

Affected tests and transitive dependents. Answers "what could break?"

radius 6 dependents
acc discover

Finds the gap between what's declared and what the code shows — and always asks first. It never rewrites your repo silently.

suggest declare payments → ui
acc document <path>

A starting AGENTS.md for features that don't have one yet. Anything guessed is clearly marked for you to review.

write src/payments/AGENTS.md
acc engine — always on

An intelligent compiler, like your agent.

ai driven · rust engine · acc compiler

It automates the boring part of programming. The engine runs the same deterministic tools as the CLI — like another agent working on the project — but focused on one thing only: the ACC documentation. When the engine is on, the coding agent just codes.

acc engine --watch · supervisor 85%
$ acc engine --watch
engine ON — same CLI tools, one job …
acc check deterministic ✓
acc build src/auth/AGENTS.md in sync
acc memory .acc-memory.md +2 lessons
acc discover ACC_WARN.md regenerated
supervisor: 92/100 ≥ 85 — approved ✓

Your Code Changes. ACC Keeps Up.

The engine works like another agent on the project: it runs the same deterministic ACC tools (acc check, acc build, acc discover, acc memory…), but it only cares about one thing — keeping the ACC documentation in sync with the code. No code changes, no refactors. Just the docs, always current.

  • Same tools — it executes the deterministic CLI commands, like an agent would, on its own trigger (default 3 commits).
  • One focus — ACC documentation only: contracts, knowledge, drift. Never your code.
  • 👀Need an extra pair of eyes? Bring the supervisor along — it reviews the engine's own changes before they land.
  • Supervisor-scored — proposals must reach the configured threshold (default 85) before anything is written.
install as a skill

Bring the whole toolkit into any agent.

ACC installs as an agent skill — the repo stays a standard AGENTS.md repo. Two channels, one source: the skill teaches any agent how to operate; the CLI (npm) is the engine underneath.

$ npx skills add EnzoVezzaro/agents-code-context
works with any agent — claude · cursor · codex · opencode · gemini
Skill docs
how agents navigate

Read the contract, then the code.

Every ACC repo tells the same story, top to bottom: start at the root AGENTS.md, walk into the functionality you need, read its contract and memory — then touch code. No special client, no protocol. Just files in an order that makes sense.

  1. Read the root AGENTS.md for project-wide context.
  2. Open the functionality's AGENTS.md for its boundaries and constraints.
  3. Check .acc-memory.md for hard-won knowledge from prior sessions.
  4. Understand relationships from the derived graph.
  5. Make the change, then validate with acc check / acc impact.
AGENTS.md .acc/config/ functionality/ functionality/AGENTS.md functionality/.acc-memory.md source control plane boundary gitignored
why provenance matters

Know where every fact came from.

ACC is careful about where facts come from — written by a human, observed in the code, or guessed by a tool. Each one is tagged, so agents trust the right source and you can review the rest.

Declared

A human wrote it — in AGENTS.md. Dependencies, ownership, constraints. When facts disagree, this one wins.

Discovered

Observed in the code — imports, structure, what's actually there. Even if nobody wrote it down.

Inferred

A guess, from acc discover or an agent. Never treated as fact until a human says so.

acc check --json
{ "schema_version": 1, "diagnostics": [ { "code": "ACC022", "severity": "warn", "path": "src/payments/mod.rs", "provenance": { "kind": "discovered", "source": "Rust imports" } } ] }
what the skill understands

Convention, memory, and tooling.

ACC follows the AGENTS.md convention everyone already uses — it doesn't compete with it. The skill reads what the repo already has and adds optional context, never a replacement.

standard · committed

AGENTS.md

The main interface for agents — plain Markdown with familiar sections: Purpose, Responsibilities, Ownership, Dependencies, Constraints. No schema, no frontmatter.

## Dependencies
- src/database
- src/logging

## Constraints
- Must not depend on src/ui.
Authoring guide
control plane · committed

.acc/config/

Project settings, agent profiles, workflows, and standards. All Markdown, all committed, all readable by anyone or anything browsing the repo.

.acc/config/
├─ config.yaml
├─ agents/architect.md
├─ workflows/feature.md
└─ standards/architecture.md
Repository structure
durable memory · local

.acc-memory.md

The repo's memory. Gotchas, invariants, things tried and rejected — written down so the next agent doesn't have to rediscover them.

## Gotchas
- decode() is non-reentrant.

## Tried & Rejected
- Split into a crate; overhead not worth it.
Memory semantics
stable contract

Diagnostics agents can understand.

Every problem gets a stable code: ACC022 means the same thing this year as it will next. So when an agent reads the feedback, it knows exactly what's wrong — and what to do about it.

CodeSeverityTriggerMessage
ACC022warnDiscovered dep not declaredmissing-dependency suggestion
ACC024errorForbidden dependency detectedforbidden_deps rule in config
ACC030errorDuplicate ownershiptwo AGENTS.md claim same path
ACC053warnMemory committed to git.acc-memory.md should be gitignored
ACC080errorPath escapes project rootuntrusted-repo safety stop
open source

Open source, from day one.

Everything lives on GitHub and npm — MIT licensed, no telemetry, no lock-in.

About

ACC — Agent Code Context. A convention + optional CLI that makes any software repository agent-native, navigable, and self-describing.

MIT License · Agent-agnostic · Offline-first · Deterministic

github.com/EnzoVezzaro/agents-code-context

Releases

Versioned releases on GitHub with changelogs — every v0.x tagged and documented.

View releases