Package Exports
- @fredericboyer/dev-team
- @fredericboyer/dev-team/dist/init.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@fredericboyer/dev-team) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
dev-team
Adversarial AI agent team for any project. Installs Claude Code agents, hooks, and skills that enforce quality through productive friction.
Instead of an AI that agrees with everything, dev-team gives you eleven opinionated specialists that challenge each other — and you. Hooks enforce the process deterministically. Agents can't skip reviews. Commits are blocked until the team signs off.
How the system works
graph TB
subgraph Skills["Skills (entry points)"]
S1["/dev-team:task"]
S2["/dev-team:review"]
S3["/dev-team:audit"]
S4["/dev-team:challenge"]
S5["/dev-team:retro"]
end
subgraph Lead["Orchestrator"]
L["@dev-team-drucker\nAnalyzes task → selects agents\nManages review loop"]
end
subgraph Impl["Implementation Agents (sonnet)"]
Hopper["@dev-team-hopper\nFull-stack"]
Deming["@dev-team-deming\nTooling"]
Tufte["@dev-team-tufte\nDocumentation"]
Conway["@dev-team-conway\nRelease Manager"]
end
subgraph Rev["Review Agents (read-only)"]
Szabo["@dev-team-szabo\nSecurity"]
Knuth["@dev-team-knuth\nQuality"]
Brooks["@dev-team-brooks\nArchitecture"]
Rams["@dev-team-rams\nDesign System"]
end
subgraph Research["On-demand Research"]
Turing["@dev-team-turing\nResearcher"]
end
subgraph End["End-of-workflow"]
Borges["@dev-team-borges\nLibrarian / Memory"]
end
subgraph Hooks["Hooks (deterministic enforcement)"]
H1["safety-guard\nBlocks dangerous commands"]
H2["tdd-enforce\nBlocks code without tests"]
H3["post-change-review\nFlags + spawns reviewers"]
H4["pre-commit-gate\nMemory freshness check"]
H5["watch-list\nCustom pattern → agent"]
H6["pre-commit-lint\nLint + format checks"]
H7["agent-teams-guide\nWorktree isolation guidance"]
H8["review-gate\nStateless commit gates"]
end
subgraph Mem["Persistent Memory"]
M1["agent-memory/\nPer-agent calibration"]
M2["learnings.md\nShared knowledge"]
end
S1 --> L
S2 -->|spawns by file pattern| Rev
S3 -->|spawns Szabo+Knuth+Deming| Rev
S3 -->|spawns| Deming
S4 -->|structured review| Rev
S5 -->|knowledge base audit| End
L -->|delegates| Impl
L -->|spawns parallel| Rev
L -->|on-demand| Research
Impl -->|writes code| Hooks
H3 -->|ACTION REQUIRED| Rev
Rev -->|"[DEFECT] → fix"| Impl
Rev -->|findings| L
H4 -.->|blocks commit| L
Impl & Rev -->|write| Mem
Mem -->|loaded at start| Impl & Rev
L -->|end of workflow| EndThe flow
- You give a task →
@dev-team-druckeror/dev-team:task - Drucker delegates → picks the right implementer (Voss for backend, Mori for frontend, etc.)
- Implementer writes code → hooks fire automatically on every edit
- Hooks flag reviewers →
ACTION REQUIREDdirective + tracking file written - Reviewers spawn in parallel → produce classified findings (
[DEFECT],[RISK], etc.) [DEFECT]found → goes back to implementer for fixing- No defects remain → tracking file cleared → commit allowed
- Memory updated → learnings persisted for next session
The key: hooks make this mandatory. The pre-commit gate blocks if flagged reviewers weren't spawned. Agents can't be skipped.
Install
npx @fredericboyer/dev-team init # Interactive wizard
npx @fredericboyer/dev-team init --all # Everything, no prompts
npx @fredericboyer/dev-team init --preset backend # Backend-heavy bundle
npx @fredericboyer/dev-team init --preset fullstack # All agents
npx @fredericboyer/dev-team init --preset data # Data pipeline bundleRequires Node.js 22+ and Claude Code.
After installation
npx @fredericboyer/dev-team update # Upgrade to latest templates
npx @fredericboyer/dev-team create-agent <name> # Scaffold a custom agentWhat you get
Agents (14)
| Agent | Role | Model | When to use |
|---|---|---|---|
@dev-team-drucker |
Orchestrator | opus | Auto-delegates to specialists, manages review loops |
@dev-team-hopper |
Full-stack Engineer | sonnet | Backend, frontend, and infrastructure implementation |
@dev-team-szabo |
Security Auditor | opus | Vulnerability review, auth flows, attack surfaces |
@dev-team-knuth |
Quality Auditor | opus | Coverage gaps, boundary conditions, correctness |
@dev-team-deming |
Tooling Optimizer | sonnet | Linters, formatters, CI/CD, hooks, automation |
@dev-team-tufte |
Documentation Engineer | sonnet | Doc accuracy, stale docs, doc-code sync |
@dev-team-brooks |
Architect & Quality Reviewer | opus | Coupling, ADR compliance, quality attributes |
@dev-team-conway |
Release Manager | sonnet | Versioning, changelog, semver validation |
@dev-team-turing |
Pre-implementation Researcher | opus | Library evaluation, migration paths, trade-off analysis |
@dev-team-rams |
Design System Reviewer | sonnet | Token compliance, spacing consistency, design-code alignment |
@dev-team-borges |
Librarian | sonnet | Memory extraction, cross-agent coherence, system improvement |
Opus agents do deep analysis — Szabo, Knuth, Brooks, and Turing are read-only; Drucker uses opus for orchestration with full access. Sonnet agents implement (faster, full write access). Hopper handles backend, frontend, and infrastructure. Borges runs at end-of-workflow for memory consolidation. Rams reviews design system compliance.
Hooks (17)
| Hook | Trigger | Behavior |
|---|---|---|
| Safety guard | Before Bash | Blocks dangerous commands (rm -rf /, force push, DROP TABLE, curl|sh). Fails closed on malformed input. |
| TDD enforcement | After Edit/Write | Blocks implementation changes without corresponding test files. |
| Post-change review | After Edit/Write | Flags + tracks domain agents for review. Writes tracking file. Outputs ACTION REQUIRED directive. |
| Pre-commit gate | On task completion | Blocks commit if flagged agents were not spawned. Advisory for memory freshness. |
| Watch list | After Edit/Write | Flags custom agents based on configurable file-pattern-to-agent mappings in dev-team.json. |
| Pre-commit lint | Before commit | Blocks commit if lint or format checks fail. |
| Agent teams guide | Before Agent spawn | Advisory guidance for worktree isolation and team coordination patterns. |
| Review gate | Before commit | Blocks commit without review evidence. Stateless commit gates for adversarial review enforcement. |
| Merge gate | Before merge | Blocks gh pr merge without review sidecars. Complexity-aware enforcement via assessment sidecars. |
| Implementer guard | Before SendMessage | Blocks shutdown of implementing agents before review findings are routed. Config-aware. |
| PR title format | Before gh pr create |
Blocks PR creation when title does not match pr.titleFormat (conventional, issue-prefix, plain). |
| PR link keyword | Before gh pr create |
Blocks PR creation when body is missing pr.linkKeyword issue reference (e.g., Closes #123). |
| PR draft advisory | Before gh pr create |
Advisory warning when pr.draft is enabled but --draft flag is missing. Never blocks. |
| PR template sections | Before gh pr create |
Blocks PR creation when body is missing required sections from pr.template array. |
| PR auto-label | Before gh pr create |
Advisory label suggestions based on branch prefix (feat/ -> enhancement, fix/ -> bug). |
| Worktree create | Before worktree creation | Serializes parallel worktree creation to prevent git lock races. |
| Worktree remove | After worktree removal | Cleans up worktree artifacts and stale branch references. |
All hooks are Node.js scripts — work on macOS, Linux, and Windows.
Skills (11)
| Skill | What it does |
|---|---|
/dev-team:implement |
Implement a task on a feature branch — agent selection, pre-assessment, validation, PR creation |
/dev-team:task |
Iterative task loop — implement, review, fix defects, repeat until clean |
/dev-team:review |
Parallel multi-agent review — spawns agents based on changed file patterns |
/dev-team:research |
Pre-implementation research brief — spawns Turing, produces structured analysis with citations |
/dev-team:audit |
Full codebase scan — Szabo (security) + Knuth (quality) + Deming (tooling) |
/dev-team:challenge |
Critical examination of a proposal or design decision |
/dev-team:retro |
Audit knowledge base health — learnings, agent memory, CLAUDE.md accuracy |
/dev-team:extract |
Borges memory extraction — spawns Borges, verifies metrics and memory formation |
/dev-team:scorecard |
Audit process conformance — verify Borges, findings, metrics, memory, issue closure |
/dev-team:pr |
Create a well-formatted PR from the current branch using project config |
/dev-team:merge |
Merge a PR with monitoring — review check, auto-merge, CI verification |
Step-by-step usage guide
1. Start a task
@dev-team-drucker Add rate limiting to the API endpointsOr use the task loop for automatic iteration:
/dev-team:task Add rate limiting to the API endpointsDrucker analyzes the task, picks Hopper (full-stack), and spawns Szabo + Knuth + Brooks as reviewers.
2. Let the agents work
The implementing agent explores the codebase, writes code, and writes tests. Hooks fire on every edit:
- TDD hook ensures tests exist before implementation
- Post-change-review flags reviewers and writes a tracking file
- The LLM spawns flagged agents as background reviewers (mandatory, not optional)
3. Review cycle
Reviewers produce classified findings:
[DEFECT] @dev-team-szabo — src/api/rate-limit.ts:42
Rate limit key uses client IP, but behind a load balancer req.ip
returns the LB address. All clients share one rate limit bucket.
[RISK] @dev-team-knuth — tests/rate-limit.test.ts
Tests mock the Redis client. No integration test verifies actual
TTL expiry behavior.
[SUGGESTION] @dev-team-knuth — src/api/rate-limit.ts:15
Extract rate limit config to environment variables for per-env tuning.[DEFECT] goes back for fixing. [RISK] and [SUGGESTION] are reported to you.
4. Commit
Once all defects are resolved:
- Tracking file is deleted
- Pre-commit gate allows the commit
- Memory files are updated with learnings
If you try to commit with pending reviews, the pre-commit gate blocks:
[dev-team pre-commit] BLOCKED — these agents were flagged but not spawned:
→ @dev-team-szabo
→ @dev-team-knuth5. Other workflows
Review a PR or branch:
/dev-team:reviewAudit the whole codebase:
/dev-team:audit src/Challenge a design before building it:
/dev-team:challenge Should we use JWT or session tokens for auth?Challenge protocol
Every agent uses the same classification:
[DEFECT]— Concretely wrong. Will produce incorrect behavior. Blocks progress.[RISK]— Not wrong today, but creates a likely failure mode. Advisory.[QUESTION]— Decision needs justification. Advisory.[SUGGESTION]— Works, but here is a specific improvement. Advisory.
Rules:
- Every finding must include concrete evidence (file, line, input, scenario)
- Only
[DEFECT]blocks — everything else is advisory - When agents disagree: one exchange each, then escalate to the human
- Human decides all disputes
Agent memory
Each agent maintains persistent memory that calibrates over time:
.claude/
agent-memory/
dev-team-hopper/MEMORY.md # Hopper's project-specific patterns
dev-team-szabo/MEMORY.md # Szabo's security findings
dev-team-knuth/MEMORY.md # Knuth's coverage observations
...
rules/
dev-team-learnings.md # Shared team knowledgeMemory is loaded at session start (first 200 lines). Agents write learnings after each task. The pre-commit gate reminds you to update memory if code changed but learnings didn't.
Customization
Edit agents
Agent definitions live in .claude/agents/. Edit focus areas, challenge style, or philosophy to match your project.
Create custom agents
npx @fredericboyer/dev-team create-agent codd # Scaffold a new agentSee docs/guides/custom-agents.md for the full authoring guide with format reference, blank template, and a worked example.
Configure watch lists
Add file-pattern-to-agent mappings in .dev-team/config.json:
{
"watchLists": [
{ "pattern": "src/db/", "agents": ["dev-team-codd"], "reason": "database code changed" },
{ "pattern": "\\.graphql$", "agents": ["dev-team-hopper"], "reason": "API schema changed" }
]
}Preset bundles
| Preset | Agents included |
|---|---|
backend |
Hopper, Szabo, Knuth, Deming, Brooks, Conway |
fullstack |
All agents (11 active + 3 deprecated) |
data |
Hopper, Szabo, Knuth, Deming, Tufte |
Drucker (orchestrator) and Borges (librarian) are included in all presets. For non-fullstack presets, invoke Drucker with @dev-team-drucker for automatic delegation.
Update
npx @fredericboyer/dev-team updateUpdates agents, hooks, and skills to the latest templates. Preserves your agent memory, shared learnings, and CLAUDE.md content outside dev-team markers.
What gets installed
.dev-team/
hooks/ # 13 quality enforcement scripts
config.json # Installation preferences
.claude/
agents/ # 11 agent definitions (.agent.md, YAML frontmatter + prompt)
agent-memory/ # Per-agent persistent memory (never overwritten on update)
rules/
dev-team-learnings.md # Shared team knowledge (never overwritten on update)
.claude/
settings.json # Hook configuration (merged additively)
hooks/ # Project-specific hooks (not overwritten on update)
skills/ # Project-specific workflow skills (not overwritten on update)
CLAUDE.md # Project instructions (dev-team section via markers)Contributing
- Every piece of work starts with a GitHub Issue
- Branch naming:
feat/123-descriptionorfix/456-description - Commits reference issues:
fixes #123orrefs #123 - All merges via PR — no direct pushes to main
- Run
npm testbefore pushing
Development
npm install # Install dependencies (dev only, zero runtime deps)
npm run build # Compile TypeScript
npm test # Build + run all tests
npm run lint # Run oxlint (0 warnings target)
npm run format # Run oxfmtArchitecture decisions are documented in docs/adr/.
License
MIT