Imported from GoatInAHat/bennettvernon.com (
.agents/AGENTS.md). Install upstream withnpx skills add GoatInAHat/bennettvernon.com --skill .agents. Copyright stays with the author.
.agents/
Agent-agnostic configuration following the Agent Skills open standard and AGENTS.md conventions.
Every piece of agent configuration is one of three things:
| Category | Strategy |
|---|---|
| Portable — same format everywhere | Store once here, symlink into agent directories |
| Generated — same data, different format | Canonical source here, sync script renders each adapter |
| Agent-specific — no cross-agent equivalent | Leave it in the agent's own directory |
Portable things get symlinks, generated things get a sync script, agent-specific things stay put.
Layout
skills/— Shared skills. Each is a directory withSKILL.md.mcp/servers.json— Canonical MCP server configuration.scripts/— Portable environment setup, synchronization, and validation.
Adding a skill
- Create
.agents/skills/<name>/SKILL.mdwithnameanddescriptionfrontmatter, wherenamematches the directory. - Run
.agents/scripts/link-skills.shand.agents/scripts/check-skills.py --update. - Commit the skill directory, the generated symlinks, and
skills-lock.json.
Installing a third-party skill
npx skills add <repo>@<skill> -y
Adding an MCP server
- Edit
.agents/mcp/servers.json. - Run
.agents/scripts/sync-mcp.sh. - Commit the canonical file and all generated adapters.
An optional tools array on a server is a read-only allowlist. It renders as
enabled_tools for Codex and includeTools for Gemini; Claude Code and Cursor
have no equivalent and receive the server's whole tool surface.
Rules
- Edit skills in
.agents/skills/, never through.claude/skills/or.cursor/skills/. - Edit MCP definitions in
.agents/mcp/servers.json, never in.mcp.json,.cursor/mcp.json,.codex/config.toml, or.gemini/settings.json. .claude/settings.jsonand.gemini/settings.jsonare hand-owned except for theirenabledMcpjsonServersandmcpServerskeys, which the sync rewrites.- Agent-specific configuration stays put.
.cursor/rules/*.mdcand.github/instructions/*.instructions.mduse glob scoping and conditional loading with no equivalent elsewhere — do not convert them into skills. Knowledge every agent needs belongs inAGENTS.md. - Keep secrets and machine-local configuration out of committed files.
- Run the pre-commit hooks or their underlying scripts before committing. GitHub
Actions enforces the same checks for pull requests and
main.