Skip to main content

AI Agent Config

Focused Tool

Portable policy and workflow system for coding agents that keeps canonical rules provider-neutral and renders thin adapters for each environment.

RoleCreator & Maintainer
Platform
CLI & IDE Tooling
Tech Stack

Keeping the rules provider-neutral

The canonical rules do not live in `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, or another provider-owned entry file. `core/` holds the universal contract, while project rules, project-type overlays, workflows, and optional personal preferences stay in separate layers. Provider entry files are generated projections of that selected policy instead of becoming the source of truth themselves.

The adapters are deliberately thin. The current repository can render project instructions for Codex, Claude Code, Gemini CLI, Google Antigravity IDE, or a generic agent entry point. Switching providers changes where the instructions are discovered. It does not silently replace the policy body that the project selected.

Adopting only as much structure as a project needs

The setup is split into four adoption levels. A minimal project can use only the universal baseline. Normal projects add project-owned rules and a project-type overlay. Agent-heavy repositories can opt into planning, delegation, worktrees, deeper review, and other workflows. Provider-native or global configuration is kept as a separate level because it has a wider blast radius.

Levels 2 and 3 use an explicit JSON manifest. The renderer reads that manifest and composes the universal core with the project's own rules, selected overlays, and selected workflows. A private profile can be supplied separately for preferences such as tone or verbosity, but it sits below project rules and cannot grant mutation authority.

Staging changes before installation

The tooling uses Python's standard library and keeps configuration changes explicit. `init` creates the adoption manifest, `validate` checks the repository, `render` writes the selected configuration under a user-supplied staging root, and `diff` compares that generated output with a user-supplied target. The normal path ends with a reviewable file in staging, not an automatic write into a provider's configuration directory.

That boundary is intentional. The renderer does not discover a home directory, copy credentials, manage provider caches, or install plug-ins. It also rejects output below the source tree and checks for path or symlink escapes. The project treats instruction files as behavioral context, while provider-native permissions and sandboxing remain responsible for controls that need technical enforcement.