agentleFS
agentconfigagentconfig/agentconfig.org/AGENTS.md

agentconfig.org

AGENTS.md7 starsChanged 3 months agoISCView on GitHub

This file is the authoritative source for AI agent instructions in this repository. GitHub Copilot and other agents with AGENTS.md support read it directly. Claude Code loads the same instructions through the @AGENTS.md import in CLAUDE.md. A multi-page reference and tutorial site explaining the configuration files and patterns developers use to customize GitHub Copilot, Claude Code, Cursor, and OpenAI Codex. Developers who want to: - Understand what AI primitive files exist (CLAUDE.md, copilot-instructions.md, etc.) - Know where to place these…

The file

Show its rules and text

We split this AGENTS.md into the rules it gives an agent

38 rules. About 0 are common, 23 are distinctive, and 15 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈23

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 15

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Very specific:

    All commands run from the site/ directory:

    line 39
  2. Very specific:

    Always use strict TypeScript—no any types unless absolutely necessary

    line 65
  3. Very specific:

    Prefer interface over type for object shapes

    line 66
  4. Distinctive:

    Use explicit return types on functions

    line 67
  5. Very specific:

    Use readonly for immutable data

    line 68
  6. Distinctive:

    Use functional components only—no class components

    line 73
  7. Distinctive:

    Prefer named exports over default exports

    line 74
  8. Distinctive:

    Keep components small and focused (< 150 lines)

    line 75
  9. Very specific:

    Use memo() for expensive components that receive stable props

    line 77
  10. Distinctive:

    Use Tailwind CSS utility classes

    line 90
  11. Very specific:

    Use CSS variables for theming (defined in site/src/index.css)

    line 91
  12. Distinctive:

    Use shadcn/ui components where appropriate

    line 93
  13. Distinctive:

    Write Playwright E2E tests for all user interactions

    line 97
  14. Very specific:

    Test file naming: {feature}.spec.ts

    line 98
  15. Distinctive:

    Test both light and dark modes for visual features

    line 100
  16. Very specific:

    Test responsive behavior at mobile/tablet/desktop breakpoints

    line 101
  17. Very specific:

    Read the last 20 lines of .agent-activity.log (use tail -20)

    line 151
  18. Very specific:

    Check if any LOCK entries exist without a corresponding UNLOCK for your target files

    line 152
  19. Distinctive:

    If locked, work on something else or wait

    line 153
  20. Very specific:

    If clear, add your own LOCK or WORKING entry

    line 154
  21. Very specific:

    Add a COMMIT_START entry to lock the staging area

    line 157
  22. Distinctive:

    Create the commit with proper semantic message

    line 159
  23. Very specific:

    Add a COMMIT_END entry

    line 160
  24. Very specific:

    Add UNLOCK entries for any files you had locked

    line 161
  25. Distinctive:

    Do not modify files another agent has locked

    line 166
  26. Distinctive:

    Do not stage files that aren't part of your current task

    line 167
  27. Distinctive:

    If you discover related work needed, note it but don't do it—let another agent handle it

    line 168
  28. Distinctive:

    Before git add, verify each file belongs to your current task

    line 174
  29. Distinctive:

    Never use git add . or git add -A—always stage files explicitly

    line 175
  30. Distinctive:

    If you accidentally stage unrelated files, unstage them before committing

    line 176
  31. Distinctive:

    Use git status to review staged files before every commit

    line 177
  32. Distinctive:

    Follow semantic commit conventions.

    line 181
  33. Distinctive:

    Keep commits atomic—one logical change per commit

    line 186
  34. Distinctive:

    Do not estimate project duration, staffing, or delivery timelines unless @jonmagic explicitly asks.

    line 190
  35. Very specific:

    Quick rule: Add Co-authored-by: trailer when pair programming.

    line 196
  36. Distinctive:

    Before considering any task complete:

    line 198
  37. Distinctive:

    Use warm, friendly colors

    line 213
  38. Distinctive:

    Use system font stack for performance

    line 222

≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
AGENTS.md

Agent Instructions for agentconfig.org

This file is the authoritative source for AI agent instructions in this repository. GitHub Copilot and other agents with AGENTS.md support read it directly. Claude Code loads the same instructions through the @AGENTS.md import in CLAUDE.md.

Project Overview

A multi-page reference and tutorial site explaining the configuration files and patterns developers use to customize GitHub Copilot, Claude Code, Cursor, and OpenAI Codex.

Target Audience

Developers who want to:

  • Understand what AI primitive files exist (CLAUDE.md, copilot-instructions.md, etc.)
  • Know where to place these files in their projects
  • Learn which primitives to use for different tasks

Site Structure

The site presents the same source-backed model in several ways:

  1. Homepage reference - A practical starting example, 13 primitive cards, an interactive file tree, a four-provider comparison, and the scope model
  2. Progressive tutorials - Skills, agent definitions, lifecycle hooks, and MCP guides that begin with a small working example before concepts and advanced cases
  3. Provider profiles - Per-provider implementation, support, location, and primary-source documentation for every tracked primitive
  4. Machine-readable docs - llms.txt, llms-full.txt, and page-specific Markdown generated from the same typed content

Tech Stack

  • Runtime: Bun (not npm)
  • Build: Vite
  • Framework: Preact 10+ with functional components and hooks
  • Styling: Tailwind CSS 4 + shadcn/ui
  • Language: TypeScript (strict mode)
  • Testing: Playwright for E2E tests
  • Linting: ESLint with strict config
  • Hosting: GitHub Pages
  • Theme: Light/dark mode support

Commands

All commands run from the site/ directory:

bun install          # Install dependencies
bun run dev          # Start development server (http://localhost:5173)
bun run build        # Production build
bun run preview      # Preview production build
bun run lint         # Run ESLint
bun run typecheck    # TypeScript type checking
bun run test         # Run Playwright E2E tests

Local Preview

For every change that affects rendered pages, start the local Vite server and keep it running so @jonmagic can inspect the result:

bun run dev --host 127.0.0.1

Use http://127.0.0.1:5173/ by default. If that port is unavailable, use the port Vite selects and report the exact URL. After making visual or content changes, verify the affected pages in the browser, then direct @jonmagic to the relevant local URL before asking for review. Do not stop the preview server at handoff unless @jonmagic asks.

Code Standards

TypeScript

  • Always use strict TypeScript—no any types unless absolutely necessary
  • Prefer interface over type for object shapes
  • Use explicit return types on functions
  • Use readonly for immutable data
  • No semicolons—omit semicolons at end of statements

Preact/React

  • Use functional components only—no class components
  • Prefer named exports over default exports
  • Keep components small and focused (< 150 lines)
  • Extract reusable logic into custom hooks in site/src/hooks/
  • Use memo() for expensive components that receive stable props

File Organization

  • Source code lives in site/ subdirectory
  • Components: site/src/components/{ComponentName}/
  • Each component folder contains: index.ts, {ComponentName}.tsx, optionally {ComponentName}.test.tsx
  • Data/content: site/src/data/
  • Hooks: site/src/hooks/
  • E2E tests: site/tests/e2e/

Styling

  • Use Tailwind CSS utility classes
  • Use CSS variables for theming (defined in site/src/index.css)
  • Mobile-first responsive design
  • Use shadcn/ui components where appropriate

Testing

  • Write Playwright E2E tests for all user interactions
  • Test file naming: {feature}.spec.ts
  • Tests should be independent and not rely on each other
  • Test both light and dark modes for visual features
  • Test responsive behavior at mobile/tablet/desktop breakpoints

Skills

Project-specific skills have one canonical source in .github/skills/. Copilot discovers that directory directly. Claude Code discovers the same files through the tracked .claude/skills directory symlink; edit the canonical source rather than the symlink.

HostDiscovery pathSource
GitHub Copilot.github/skills/<skill-name>/SKILL.mdCanonical
Claude Code.claude/skills/<skill-name>/SKILL.md.claude/skills links to canonical source
SkillWhen to Use
create-componentAdding new UI components
write-e2e-testCreating Playwright tests
add-primitiveAdding/updating primitive definitions
refresh-provider-docsVerifying published provider claims against authoritative documentation
theme-stylingStyling with Tailwind CSS 4
semantic-commitCreating commit messages
co-authorCo-author attribution

Multi-Agent Coordination

Multiple agents may work on this project simultaneously. To avoid conflicts:

Agent Activity Log

A shared coordination file .agent-activity.log tracks what each agent is working on. This file is gitignored and append-only.

Log format (one entry per line):

<timestamp> <action> <agent-id> <resource> [message]

Actions:

  • LOCK - Agent is claiming exclusive access to a resource
  • UNLOCK - Agent is releasing a resource
  • WORKING - Agent is actively working (no lock needed)
  • COMMIT_START - Agent is beginning a commit (locks staging area)
  • COMMIT_END - Agent has finished committing

Examples:

2026-01-16T18:30:00Z LOCK agent-abc123 site/src/components/Header/ starting header refactor
2026-01-16T18:45:00Z COMMIT_START agent-abc123 git-staging committing header changes
2026-01-16T18:45:30Z COMMIT_END agent-abc123 git-staging
2026-01-16T18:45:31Z UNLOCK agent-abc123 site/src/components/Header/

Before starting work:

  1. Read the last 20 lines of .agent-activity.log (use tail -20)
  2. Check if any LOCK entries exist without a corresponding UNLOCK for your target files
  3. If locked, work on something else or wait
  4. If clear, add your own LOCK or WORKING entry

Before committing:

  1. Add a COMMIT_START entry to lock the staging area
  2. Stage ONLY the files related to your specific change
  3. Create the commit with proper semantic message
  4. Add a COMMIT_END entry
  5. Add UNLOCK entries for any files you had locked

Stay In Your Lane

  • Each agent should focus on a single, well-defined task
  • Do not modify files another agent has locked
  • Do not stage files that aren't part of your current task
  • If you discover related work needed, note it but don't do it—let another agent handle it

Commit Isolation

Critical: Each commit must contain ONLY files related to that specific change.

  • Before git add, verify each file belongs to your current task
  • Never use git add . or git add -A—always stage files explicitly
  • If you accidentally stage unrelated files, unstage them before committing
  • Use git status to review staged files before every commit

Commit Guidelines

Follow semantic commit conventions. See semantic-commit skill for complete format, types, scopes, and examples.

Quick reference:

  • Format: <type>(<scope>): <description>
  • Types: feat, fix, docs, style, refactor, test, chore
  • Keep commits atomic—one logical change per commit

Planning and Estimates

Do not estimate project duration, staffing, or delivery timelines unless @jonmagic explicitly asks. Prefer sequencing, dependencies, risks, decision gates, and assumptions.

Contributors

See co-author skill for contributor list and co-author formatting rules.

Quick rule: Add Co-authored-by: trailer when pair programming. Never add AI agents as co-authors.

Before considering any task complete:

  1. bun run lint - No errors or warnings
  2. bun run typecheck - No TypeScript errors
  3. bun run test - All Playwright tests pass
  4. Manual check of responsive behavior
  5. Manual check of light/dark modes
  6. For rendered changes, leave the local preview server running and give @jonmagic the exact page URL to review

Design Guidelines

Colors

Light Mode:

  • Background: Off-white or light tan (not pure white)
  • Use warm, friendly colors

Dark Mode:

  • Background: Dark gray/charcoal
  • Accent: Subtle neon (cyan, magenta)—not too intense
  • Maintain good contrast ratios

Typography

  • Use system font stack for performance
  • Clear hierarchy with distinct heading sizes
  • Readable line lengths (max ~75 characters)

Components

  • Rounded corners for a friendly feel
  • Adequate padding and whitespace
  • Clear visual feedback on interactive elements
  • Smooth transitions (150-300ms)

Key Files

  • site/src/App.tsx - Homepage application component
  • site/src/pages/ - Entry points for tutorial and profile pages
  • site/src/data/ - Typed content model for primitives, providers, tutorials, file trees, and comparison
  • site/tests/e2e/ - Playwright test files
  • site/src/index.css - Tailwind CSS 4 theme configuration

Content Source

The /research folder contains documentation about AI primitives:

  • 05-ai-primitives-realistic-project-trees.md - Primary source for file tree visualization
  • 03-ai-primitives-playbook-and-provider-mapping.md - Source for primitives and recipes

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.