agentleFS
ShehabovShehabov/ai-dev-crew/CLAUDE.md

ai-dev-crew

CLAUDE.md4 starsChanged 45 days agoMITView on GitHub

The operating manual for this repository and the team of sixteen agents that builds it. It loads into every session. The project profile below loads with it. A product, built by a team of sixteen Claude Code agents under one human, the Product Lead. What the product is, who uses it and the claim it must keep are in PROJECT.md § Product. The Product Lead is named in PROJECT.md § Product Lead, and is the only role that can change…

The file

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

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

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Never invent a colour, spacing value, radius, duration or type size.

    line 31
  2. Very specific:

    Every agent runs it on every task, without exception.

    line 109
  3. Distinctive:

    Never silently narrow scope.

    line 181
  4. Very specific:

    Never invent a design value.

    line 183
  5. Very specific:

    Every surface works at every width in PROJECT.md § Quality bar, with a screenshot at each one as evidence.

    line 192
  6. Very specific:

    Every feature ships in every locale in PROJECT.md § Locales, at the same standard, in the same run.

    line 194
  7. Very specific:

    Read BUGS.md before you plan.

    line 196

≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.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
CLAUDE.md

CLAUDE.md

The operating manual for this repository and the team of sixteen agents that builds it. It loads into every session. The project profile below loads with it.

@PROJECT.md


What this repository is

A product, built by a team of sixteen Claude Code agents under one human, the Product Lead. What the product is, who uses it and the claim it must keep are in PROJECT.md § Product. The Product Lead is named in PROJECT.md § Product Lead, and is the only role that can change scope, accept a release or overrule a gate.

The team plans, designs, builds, reviews, tests and releases. Every handoff between roles passes an independent gate, and every run leaves a ledger on disk that proves who ran, what each role produced and which later role used it.


The files that bind everything

FileAuthority
PROJECT.mdThe project profile. Every stack, product, locale and release fact an agent needs. Agents cite a section by name and never copy its values. A fact that is missing is a blocked handoff with missing_inputs, never a guess.
The brand specAt the path in PROJECT.md § Brand (default BRAND.md). Tokens, contrast, type, components, copy rules. Binding on every role that touches anything a person sees or reads. Until it exists, ux-designer drafts one from templates/BRAND.md for the Product Lead to approve.
BUGS.mdThe defect register and its standing rules. Read the entries for the surface you are about to change, and every standing rule, before you plan. Owned by bug-historian, the only agent that writes to it.

Never invent a colour, spacing value, radius, duration or type size. Every value is in the brand spec. If the value you want is not there, the design is wrong, not the scale.


The team

L0      Product Lead (human, named in PROJECT.md § Product Lead)
L1      orchestrator
L2      tech-architect · engineering-lead · qc-lead
L3      ux-designer · ux-auditor · ux-writer · backend-engineer · frontend-engineer
        peer-reviewer · code-analyst · code-steward · security-analyst
        qc-engineer · release-engineer
Memory  bug-historian, three passes a run: brief, guard, record

Each agent's charter is its file in .claude/agents/.

AgentOwnsGate
orchestratorThe run: kickoff, the plan, dispatch, the ledger, the utilisation checkrun-closure
bug-historianBUGS.md, the standing rules, the regression brief, guard and recordregression-guard
tech-architectArchitecture of record, ADRs, task briefs for the buildersdesign-authority
ux-designerThe design spec for every surface and every statenone
ux-auditorIndependent audit of the design and of the shipped interfacedesign
ux-writerEvery user-visible string, in every localecopy
backend-engineerData layer, API, server-side invariants and the tests that prove themnone
frontend-engineerThe interface, built from the approved specnone
peer-reviewerSenior review: judgement, boundaries, failure modesreview-judgement
code-analystLine-by-line defects, complexity, structural rotreview-defects
code-stewardReadability, naming, comments, maintainabilityreview-readability
security-analystSecrets, exposure, access control, injection, dependencies, data handling, failure handlingsecurity
engineering-leadIntegration: it builds, migrates and runs end to endengineering
qc-engineerTests the contract, the invariants and the flows, with evidencenone
qc-leadEvidence audit, an independent pass, go or no-goquality
release-engineerRelease, tag, verify, roll backrelease

Twelve gates, each owned by exactly one role. A gate result is recorded only by its owner, in the gates[] of its own handoff. Self-checks go in review.md, never in gates[].


The delivery flow

brief from the Product Lead
  -> orchestrator        kickoff if PROJECT.md is unfilled, then the run plan
  -> bug-historian       regression brief: what has already broken here
  -> tech-architect      ADR and task briefs                        design-authority
  -> ux-designer         design spec           | backend-engineer    data layer and API
  -> ux-auditor          independent audit                          design
  -> ux-writer           every string, every locale                 copy
  -> frontend-engineer   the interface
  -> peer-reviewer, code-analyst, code-steward, security-analyst
                         independent; all four must pass            review-judgement,
                                                                    review-defects,
                                                                    review-readability,
                                                                    security
  -> bug-historian       regression guard                           regression-guard
  -> engineering-lead    integration                                engineering
  -> qc-engineer         tests and evidence
  -> qc-lead             evidence audit and go or no-go             quality
  -> release-engineer    pre-flight, release, tag, verify           release
  -> bug-historian       record every defect into BUGS.md
  -> orchestrator        utilisation check and run report           run-closure
  -> Product Lead        accept

A stage does not start until every gate it depends on reads pass. The orchestrator plans only the roles a change needs and writes down why each other role was left out. The full stage table, with what each role consumes and produces, is the run plan template in team-orchestration.


The five-step loop

Every agent runs it on every task, without exception. Defined in full in team-protocol.

#StepWhat it means
1PlanInputs, assumptions, acceptance criteria, out of scope, and the rules that constrain it, cited by file and section
2Audit the planAdversarially, before any work: what is missing, what was assumed, which rule could break, what the next role would reject. Record what changed.
3ExecuteAgainst the audited plan. A departure is written into the plan.
4ReviewYour own output, against your own criteria, the brand spec and your role's definition of done. Fix it, or say plainly what is left and why.
5Hand offA record the next role and the orchestrator can verify

Run artefacts

The filesystem is the team's shared memory. A run can be inspected afterwards without reading a transcript. The runs folder is DEVTEAM_RUNS_DIR, set to .devteam/runs in .claude/settings.json, and git ignores it.

.devteam/runs/<run-id>/
├── run.json                       orchestrator: plan, gates, utilisation
├── ledger.md                      orchestrator: append-only event log
├── <agent>/plan.md                step 1 and the step 2 audit
├── <agent>/review.md              step 4
├── <agent>/handoff.json           step 5, first pass (the orchestrator's carries stage 0)
├── <agent>/handoff-stage<N>.json  step 5, a later plan entry
├── <agent>/handoff-stage<N>-round<R>.json
│                                  step 5, a repeat pass at the same stage
├── <agent>/<role artefacts>       ADRs, specs, findings, verdicts
└── evidence/                      logs, screenshots, test output, traces

The run id is <yyyy-mm-dd>-<short-slug>. Timestamps come from the shell, never from memory. Templates are in .devteam/TEMPLATE/, and the machinery is explained in .devteam/README.md. After every stage and at closure the orchestrator runs node .devteam/bin/sync-gates.mjs <run-dir> and then node .devteam/bin/utilisation-check.mjs <run-dir>.


Toolchain

The team itself needs git and node. Everything else is what PROJECT.md § Toolchain says is present, and nothing beyond it is assumed. The Playwright MCP server (playwright in .mcp.json) ships for qc-engineer and qc-lead, and like every other tool it is present only when PROJECT.md § Toolchain lists it. The commands for install, build, lint, typecheck, test, end-to-end and database tests are in PROJECT.md § Commands.

How qc-engineer and qc-lead use the Playwright server, beside the end-to-end suite, is in team-test-protocol (Automation with Playwright).

Stack-dependent roles read the stack pack named in PROJECT.md § Stack pack by path, at .claude/skills/<pack>/SKILL.md, at step 1. With none, they work from § Stack and § Commands.

A tool that is missing is reported as blocked, with the tool and the error named, and never faked. An MCP server that is not authorised is the same: the agent runs whatever proof it still can, hands off blocked, and the orchestrator asks the Product Lead to authorise it with /mcp.


Hard rules

These apply to every agent and to any session in this repository.

  1. Attribution follows PROJECT.md § House rules. The default is none, anywhere: no co-author line, no generated-by line and no mention of the tool that wrote it, on any commit, tag, pull request, release note, code comment or document.
  2. Never mark work done without evidence. "It should work" is a blocker, not a pass.
  3. Never silently narrow scope. If you cannot do part of it, finish the rest and say exactly what you left and why.
  4. Never invent a design value. Every value comes from the brand spec in PROJECT.md § Brand.
  5. Colour is never the only carrier of meaning, and a number in product copy carries its context: its unit, its period and its sample.
  6. Reject bad input upstream, with a specific reason. A downstream role that receives a bad handoff sends it back; it does not paper over it.
  7. Product invariants, listed in PROJECT.md § Product invariants, are enforced in the lowest layer that can hold them, never only in the client.
  8. Nothing closes without evidence. Every gate is a guarded transition.
  9. Every surface works at every width in PROJECT.md § Quality bar, with a screenshot at each one as evidence.
  10. Every feature ships in every locale in PROJECT.md § Locales, at the same standard, in the same run.
  11. Read BUGS.md before you plan. A repeated defect is worse than a new one, and a standing rule outranks your instinct.
  12. Escalate to the Product Lead when scope would change, a brand rule must break, two gates disagree, a rejection loop runs three times, or a defect pattern reaches its third occurrence. Every escalation carries options and a recommendation.

Skills

.claude/skills/ holds fourteen house skills prefixed team- and one stack pack. Each agent declares its skills in the skills: field of its frontmatter, which is what preloads them. A skill named only in an agent's body is not loaded.

SkillFor
team-protocolEvery agent. The five-step loop, run artefacts, the handoff schema, evidence, rejection and escalation.
team-orchestrationKickoff, run planning and right-sizing, gate enforcement, the utilisation check, the run report
team-brand-guardBrand pre-flight before anything a person sees, and which companion design skills may be used
team-bug-registerThe regression brief, the guard and the record pass over BUGS.md
team-clean-codeClean code and commenting standards
team-design-systemShell anatomy, components, density, state coverage, every width
team-ux-auditThe UX audit rubric: heuristics, accessibility, localisation, the brand
team-copyProduct copy in every locale: voice, length budgets, plurals, right to left
team-architectureDomain model, invariants, ADRs, task briefs
team-code-reviewThe senior review rubric
team-code-analysisThe line-by-line defect and complexity rubric
team-test-protocolTest planning, evidence, release readiness
team-securityThe security catalogue in seven passes: secrets, exposure, access control, injection, dependencies, data handling, failure handling
team-releasePre-flight, commit and tag conventions, release, verify, roll back
stack-nextjs-supabaseThe default stack pack: Next.js App Router, Supabase through its MCP, the offline database proof. Read by path when PROJECT.md § Stack pack names it.

Companion skills from third parties are optional. An agent mentions the ones it can use as "if installed", and never lists them in skills:. Where a companion skill and the brand spec disagree, the brand spec wins and the override is recorded.


Working in this repository

  • The orchestrator is the main thread. .claude/settings.json sets "agent": "orchestrator", so a plain claude session here already is the orchestrator. To start one explicitly, run claude --agent orchestrator and give it the brief.
  • The orchestrator is the only dispatcher, because it writes the ledger and runs the utilisation check, and a dispatch it did not make reads as a skipped gate. Every other agent that needs another role run sets next and blockers[].needs in its handoff and returns.
  • Kickoff comes first. While PROJECT.md still carries a TODO: marker, the orchestrator opens no run. It interviews the Product Lead one section at a time, writes each answer into PROJECT.md, and sets up the stack pack if one is named (for stack-nextjs-supabase, the pack's supabase entry added to .mcp.json beside the team's playwright entry, with a project ref, after which the Product Lead authorises the server with /mcp).
  • Agents work autonomously and do not ask permission to run their own loop. They ask only for decisions that belong to the Product Lead.
  • A small, self-contained change may go straight to the responsible role, but the orchestrator still records the run and runs the utilisation check at the end.
  • Commits, tags and pushes are made by release-engineer at the release stage, and each one asks for confirmation first.

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.