diff --git a/README.md b/README.md index 4d52a8c..fbe3925 100644 --- a/README.md +++ b/README.md @@ -88,132 +88,12 @@ Common env vars across all of them: | docs | MDX / Mintlify | `mintlify dev` | -## 🔧 AI-assisted development +## Contributor guide -Every ResQ repo is structured for AI-assisted development. Human developers and AI tools (Claude Code, Cursor, Codex, Gemini, GitHub Copilot) share the same context through a standardized directory layout and canonical guidance files. +Every ResQ repo ships an `AGENTS.md` at the root — the canonical plain-text dev guide. That's where the build/test/lint commands, architecture notes, and standards for that specific repo live. Read it first. -### The convention +Org-wide guidance (onboarding, hooks contract, commit format, PR process) lives in the `.github` org repo: [CONTRIBUTING.md](https://github.com/resq-software/.github/blob/main/CONTRIBUTING.md), [SECURITY.md](https://github.com/resq-software/.github/blob/main/SECURITY.md), [CODE_OF_CONDUCT.md](https://github.com/resq-software/.github/blob/main/CODE_OF_CONDUCT.md). Every public repo falls back to those automatically. -Inspired by [lobehub/lobehub](https://github.com/lobehub/lobehub), every repo follows this structure: - -``` -repo/ -├── .agents/ -│ └── skills/ # Source of truth for all AI skills -│ ├── / -│ │ └── SKILL.md # Self-contained skill definition -│ └── ... -│ -├── .claude/ # Claude Code -│ ├── skills → ../.agents/skills # Symlink — shares skills -│ ├── commands/ # Slash commands (/command-name) -│ ├── prompts/ # Reusable prompt templates -│ └── settings.local.json # Permissions and tool config -│ -├── .codex/ # OpenAI Codex -│ └── skills → ../.agents/skills # Symlink — shares skills -│ -├── .cursor/ # Cursor IDE -│ ├── rules/ # Cursor-specific rules -│ └── docs/ # Reference docs for Cursor indexing -│ -├── .gemini/ # Google Gemini -│ -├── .github/ -│ ├── agents/ # GitHub Copilot agent personas -│ ├── commands/ # Copilot slash commands -│ ├── rules/ # Copilot coding rules -│ ├── workflows/ # CI/CD pipelines -│ └── copilot-instructions.md # Copilot workspace instructions -│ -├── .vscode/ # VS Code workspace settings -│ -├── AGENTS.md # Canonical dev guide — THE source of truth -└── CLAUDE.md # Claude-specific (mirrors or extends AGENTS.md) -``` - -### Why `.agents/skills/` exists - -Without it, the same skill gets copy-pasted into `.claude/skills/`, `.github/skills/`, `.cursor/skills/`, and `.codex/skills/`. They drift. Someone updates one, forgets the others. Now Claude knows about a pattern that Copilot doesn't. - -`.agents/skills/` is the single authoring location. Each tool's directory symlinks to it: - -```bash -# Every repo sets this up once -ln -s ../.agents/skills .claude/skills -ln -s ../.agents/skills .codex/skills -``` - -One edit, all tools see it. - -### AGENTS.md contract - -Every repo's `AGENTS.md` must contain these sections in this order: - -```markdown -# — Agent Guide - -## Mission -One paragraph: what this repo does and why it exists. - -## Workspace Layout -Directory tree with one-line descriptions of each top-level directory. - -## Commands -The 5-8 commands a developer needs daily: build, test, lint, dev, deploy. - -## 🏗 Architecture -Key design decisions: frameworks, patterns, data flow, boundaries. - -## Standards -Conventions that apply to this repo: commit format, naming, linting rules, -what's forbidden (e.g., unsafe code, any types, mocks in integration tests). -``` - -`CLAUDE.md` can extend `AGENTS.md` with Claude-specific additions (tool permissions, slash commands, memory notes) but must not contradict it. - -### Writing a skill - -Skills live in `.agents/skills//SKILL.md`. Each skill is a self-contained document that teaches an AI tool how to handle a specific domain or task. - -```markdown -# - -## When to use -Describe the trigger: what task or file pattern activates this skill. - -## Context -Background knowledge the AI needs before acting. - -## Rules -Concrete, testable rules. Not vibes — things you can grep for in a diff. - -## Examples -Before/after pairs or code snippets showing correct application. -``` - -**Repo-specific skills** go in that repo's `.agents/skills/`. For example, a UI library might have `component-authoring/SKILL.md` and `storybook-stories/SKILL.md`, while a Solana repo might have `anchor-accounts/SKILL.md`. - -### Keeping things in sync - -Every repo with both `AGENTS.md` and `CLAUDE.md` includes an `agent-sync.sh` script: - -```bash -./agent-sync.sh --check # Verify they're in sync (CI runs this) -./agent-sync.sh # Sync CLAUDE.md from AGENTS.md -``` - -### Supported tools - -| Tool | Config directory | Reads `AGENTS.md`? | Skill source | -|---|---|---|---| -| Claude Code | `.claude/` | Yes (via `CLAUDE.md`) | `.claude/skills → .agents/skills` | -| OpenAI Codex | `.codex/` | Yes | `.codex/skills → .agents/skills` | -| Cursor | `.cursor/` | Yes (via rules) | `.cursor/rules/` | -| Google Gemini | `.gemini/` | Yes | `.gemini/` | -| GitHub Copilot | `.github/` | Yes (via `copilot-instructions.md`) | `.github/agents/`, `.github/rules/` | - ---- ## 🔧 Toolchain