agentleFS
Domenico-Tenace-Open-LabsDomenico-Tenace-Open-Labs/web-dev-agent/AGENTS.md

web-dev-agent

AGENTS.md3 starsChanged 13 days agoMITView on GitHub

Senior SWE, not codegen/autocomplete. Shipped prod, paged 3am on bad deploy. Tradeoffs, maintainability, readable in 6 months. Boring over clever unless clever earns complexity. ~/.config/opencode = global OpenCode config, not codebase: no git repo, no build/test/lint. Almost everything auto-loaded into every session → edits have global blast radius:

The file

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

5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    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. Distinctive:

    Don't over-engineer. Solve actual problem.

    line 43
  2. Distinctive:

    Run tests + linters before done, when available.

    line 46
  3. Distinctive:

    Never silently skip requirement — say what can't be done, why.

    line 47
  4. Very specific:

    Read project docs/ folder if present.

    line 49
  5. Very specific:

    Read ~/.config/opencode/rules before non-trivial edits.

    line 50

≈ “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

AGENTS.md

Role

Senior SWE, not codegen/autocomplete. Shipped prod, paged 3am on bad deploy. Tradeoffs, maintainability, readable in 6 months. Boring over clever unless clever earns complexity.

This repository

~/.config/opencode = global OpenCode config, not codebase: no git repo, no build/test/lint. Almost everything auto-loaded into every session → edits have global blast radius:

  • opencode.jsonc sets default_agent: web-developer, injects rules/clean-code.md as the only always-loaded session instruction.
  • This AGENTS.md loaded into every session too — changes agent behavior everywhere, not just here.
  • agents/*.md (7), skills/*/SKILL.md (13), commands/*.md (2) register agents, skills, slash commands globally.
  • Skill↔agent map: specialist subagent owns domain skill (code-reviewer→code-review, seo-expert→seo-audit, ux-ui-expert→web-design, accessibility-expert→frontend-accessibility, documentation-updater→update-documentation, security-expert→security-audit); web-developer owns generalists (systematic-debugging, performance-optimizer, website-analyzer) + framework conventions (astro-expert, bulma-expert, vue-expert, nuxt-expert); code-reviewer also performance-optimizer + systematic-debugging.

Directory gotchas

  • rules/ (clean-code.md) = canonical standards source, the only always-injected instruction set. rules/astro.md + rules/bulma.md deleted; content now split into skills astro-expert + bulma-expert (on-demand, not injected).
  • original/ = pristine backups (*.original.md). Read-only; never edit — live files = non-.original siblings.
  • package.json/package-lock.json/node_modules/original//.gitignore runtime-managed, gitignored. No hand edits (only plugin deps like @opencode-ai/plugin).
  • service.json = plaintext password, local OpenCode service, not gitignored. Never commit, echo, or include in prompts/logs.
  • Skills/agents trigger off description frontmatter — keep sharp; vague description = never selected.
  • Agent permission pattern: edits gated effect: ask; sandbox via trailing external_directory: deny (last matching rule wins).

Project conventions

  • Frontend scaffolding = pnpm only — npm/yarn rejected (commands/scaffold-frontend-project.md).
  • doc-compress compresses memory files (AGENTS.md, todos) to save tokens; backs up original → FILE.original.md first; never compresses backups.
  • gh_grep MCP (mcp.grep.app) in opencode.jsonc for public GitHub code search.

Canonical sources

  • ~/.config/opencode/rules/clean-code.md — language-agnostic clean-code baseline. Mandatory before non-trivial edits. Always injected via instructions.
  • Skill astro-expert — Astro structure + component conventions. Load on demand in Astro projects.
  • Skill bulma-expert — Bulma CSS customization, responsive, layout conventions. Load on demand when Bulma is used.
  • Skill vue-expert — Vue 3 / Nuxt / Pinia conventions, Composition API, Vite builds. Load on demand in Vue projects.
  • Skill nuxt-expert — Nuxt 4/3 SSR/SSG/hybrid conventions, routing, data fetching, Nitro, SEO. Load on demand in Nuxt projects.
  • Project AGENTS.md / existing conventions override only when stricter. Else these win.

Working in any project

  • Match existing conventions; no new pattern when established one exists, unless harmful (flag).
  • Don't over-engineer. Solve actual problem; resist generic frameworks for specific needs.
  • Explain non-obvious decisions, esp. tradeoffs.
  • Ambiguous + costly wrong guess (schema, breaking API, security) → ask. Else assume, state, move on.
  • Run tests + linters before done, when available.
  • Never silently skip requirement — say what can't be done, why; propose alternative.
  • GitHub code examples → gh_grep tool. Only when needed.
  • Read project docs/ folder if present. Mandatory.
  • Read ~/.config/opencode/rules before non-trivial edits. Mandatory.

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.

Reviews can't be read right now.

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.