A set of Claude Code and Codex skills that simulate a full software development team with distinct professional personas. Each persona has domain expertise, professional biases, and the authority to disagree with the others. This is not a committee that politely agrees — it's a team that argues, commits, and ships.
macOS / Linux:
git clone https://github.com/MotWakorb/ai-agent-dev-team.git
cd ai-agent-dev-team
./install.shWindows (PowerShell 5.1+):
git clone https://github.com/MotWakorb/ai-agent-dev-team.git
cd ai-agent-dev-team
./install.ps1The installers configure both tools: Claude Code skills go to ~/.claude/skills, Codex skills go to ~/.agents/skills, and each tool gets a managed orchestration block in its global instructions file. Both installers self-update this repo checkout (git pull --ff-only, best-effort) before every run, so re-running the installer keeps everything current — symlink installs also pick up any plain git pull on their own, since skills resolve through the symlink. Re-run the installer when managed instruction or hook setup changes. Set AI_TEAM_NO_SELF_UPDATE=1 to skip the self-update pull and install the local checkout as-is (e.g. for pinned or reproducible runs).
The installer also registers the shared hooks/pretooluse.py dispatcher for Claude Code in ~/.claude/settings.json and for Codex CLI in ~/.codex/hooks.json, converting mechanically decidable orchestration rules from prose to guarantees — see Enforcement Hooks. On Windows, install.ps1 registers the Codex hook; the Claude Code hook remains a gap.
If you don't want the team in every Claude Code and Codex project, install it into a single project instead:
./install.sh --project /path/to/your/projectEverything lands under that project — Claude Code skills in .claude/skills/, Codex skills in .agents/skills/, orchestration blocks in CLAUDE.md and AGENTS.md, shared enforcement hooks under .claude/ and .codex/, plus the Claude-specific agent definition. Both tools pick the team up only in that project; the rest of your workflow is untouched. Codex requires the project to be trusted and the hook definition approved through /hooks.
Project installs are copies, not symlinks, so they're self-contained: commit .claude/, .agents/, .codex/, CLAUDE.md, and AGENTS.md and every teammate who clones the project gets the whole team with zero setup. Hook commands resolve from each tool's project root, so nothing user-specific is baked in. After a git pull in this repo, re-run the installer to update the copies.
For a personal install that stays out of the project's git history, add --local — the hook registers in .claude/settings.local.json and the installer prints the .gitignore lines to add. Uninstall with ./uninstall.sh --project /path/to/your/project.
One global exception either way: /retro writes to ~/retros, so retrospectives span projects.
The team works best with beads (bd) as its work board. Every ceremony assumes it by default: /team-plan files epics and beads, /grooming refines them, /standup reads them, /release-check gates on them, and the PM tracks risk through them. Without beads the skills still run — they fall back to conversation context — but nothing persists between sessions, which defeats much of the point of a standing team.
Install beads, then run bd init in each project alongside /onboard. If you use a different tracker (Jira, Linear, GitHub Issues), swap the board tool in project-manager/SKILL.md — see Customization.
LLMs have a tendency to "silently average" — producing safe, consensus-driven output that avoids conflict. In real teams, the best outcomes come from domain experts who advocate hard for their perspective, disagree openly, and then commit fully once a decision is made. 99% alignment, 1% vision.
This project creates that dynamic by giving each persona:
- Domain authority — each role owns their decisions within their expertise
- Professional bias — each role naturally advocates for and is skeptical of specific things
- Known failure modes — documented LLM tendencies (subsampling, theorizing before reading evidence, premature implementation) with corrective behaviors front-loaded
- Conflict resolution protocol — structured disagreement with clear escalation paths
- A voice in retrospectives — every persona evaluates the session through their lens
The result: when you run /team-plan or /team-review, ten agents work in parallel, each bringing their genuine domain perspective, and the synthesis surfaces real conflicts for the Product Owner to decide — not smoothed-over consensus.
After installing the skills, you need to onboard each project before the team ceremonies (/team-plan, /grooming, /standup, /spike, /team-review, /postmortem) will run. Onboarding produces a COMPONENTS.md at the repo root that identifies each component and assigns it a deployment tier.
LLM training data is saturated with enterprise practices. Without a tier signal, personas default to recommending SLOs, on-call rotations, formal threat models, and SOC 2 controls for every project — including a Raspberry Pi running a home Plex server. That's wasteful and produces noise that crowds out real findings.
COMPONENTS.md tells personas what rigor each component actually expects. A home-lab metrics stack is rated against home-lab expectations. A customer-facing API is rated against startup or enterprise expectations. Right rigor for the right context.
# 1. Install the skills (one time per machine)
./install.sh
# 2. In each project, run /onboard
cd /path/to/your/project
# In Claude Code: /onboard
# - Reads the codebase, docs, infra config, and CI/CD
# - Identifies components (services, dashboards, deployable units)
# - Proposes a deployment tier per component with observed signals
# - You confirm or override
# - Writes COMPONENTS.md at the repo root
# - Offers to write a project CLAUDE.md block (gates, branching, board,
# deploy — the per-project facts personas need every session)
# 3. Now the team ceremonies work
# In Claude Code: /team-plan, /grooming, /standup, /team-review, /spike, /postmortem/team-plan, /grooming, /standup, /spike, /team-review, and /postmortem refuse to run if COMPONENTS.md is missing. They tell you to run /onboard first.
/onboard itself does not require COMPONENTS.md — producing it is the job. /retro is session-scoped (not component-scoped) and runs without COMPONENTS.md.
Single-persona invocations (e.g., /sre, /security-engineer) ask which tier the work is for if COMPONENTS.md doesn't exist or doesn't cover the component.
| Tier | What it means | Stakes if it breaks |
|---|---|---|
| home-lab | Personal infrastructure, single user, hobbyist context | Inconvenience for the operator |
| small-team | Internal tool used by a small group, not customer-facing | Team productivity hit |
| startup | External users, real business stakes, resource-constrained | Customer churn, revenue impact |
| enterprise | Large user base, regulatory or contractual obligations | Legal exposure, regulatory penalty |
Tier is per-component, not per-project — a project can have a home-lab metrics stack alongside a startup-tier customer API. When work spans tiers, strictest tier wins by default (or surface as a decision when applying it across the board would be clearly wasteful).
See _shared/deployment-tier.md for the full per-persona calibration table — what each tier expects from SRE, security, architect, DBA, code reviewer, tech writer, QA, etc.
| Persona | Slash Command | Domain |
|---|---|---|
| Security Engineer | /security-engineer |
Protector role. Guards the system and its users from harm. AppSec, infrastructure/network security, multi-cloud, compliance (OWASP, NIST CSF, CIS, ISO 27001, SOC 2, Zero Trust). Risk ratings measured by harm prevented, not checklist completeness |
| IT Architect | /it-architect |
Right architecture for the user's problem, not the most impressive one. Phase 1 (solve user's problem) and Phase 2 (only when evidence demands it). Open-source first, no vendor lock-in, cost-aware |
| Project Manager | /project-manager |
Project coordinator. Optimizes for user value delivery — every bead must trace to a user need. Work planning, backlog management, value gate owner, risk tracking using beads (bd). The user is the Product Owner |
| Project Engineer | /project-engineer |
Full-stack implementation. Node/React frontend, Python backend, Terraform IaC, Ansible config management, GitHub Actions CI/CD. TDD — tests first. Simplest implementation that delivers user value |
| UX Designer | /ux-designer |
The user's advocate. Solves actual user problems with the simplest design that works. API-first — every wireframe includes the API call that powers it. Evidence-based design over design intuition |
| Code Reviewer | /code-reviewer |
Quality conscience — focuses rigor on code paths that affect users. Reviews for test quality (#1), correctness, security, API design, maintainability, performance, style. Quality proportional to user impact. Mentoring tone |
| Database Engineer | /database-engineer |
Protector role. Guards data integrity, system stability, and performance. Schema design, query optimization, migration safety. Constraints belong in the database. Safety first, then access patterns |
| SRE | /sre |
Protector role. Guards production reliability and operational stability. SLOs, observability platform & instrumentation standards, incident response, capacity planning, on-call, chaos engineering, observability cost management |
| QA Engineer | /qa-engineer |
Protector role. Last line of defense before code reaches users. Test strategy, test environments, test data, performance testing, regression curation. Test investment proportional to risk, not feature visibility |
| Technical Writer | /technical-writer |
Every doc answers "who reads this and what do they need?" API docs, runbooks, onboarding guides, architecture docs, changelogs. Documentation effort proportional to user impact |
| Skill | Command | Purpose |
|---|---|---|
| Team Plan | /team-plan |
Spawns all 10 personas in parallel to analyze a project brief. Surfaces conflicts, facilitates debate, produces unified plan with PO decision points |
| Team Review | /team-review |
Spawns all 10 personas in parallel to review existing work. Consolidates findings, surfaces disagreements, produces prioritized action items |
| Standup | /standup |
Two-phase daily pulse. Phase 1: lightweight triage (identity tier only) — red/yellow/green, green stays silent. Phase 2: deep assessment for non-green personas only. User value framing throughout |
| Grooming | /grooming |
Backlog refinement with user value gate — items must articulate who benefits before personas evaluate. Batch mode: all items in one pass per persona. Sizes effort, identifies dependencies, defines acceptance criteria |
| Spike | /spike |
Targeted investigation — spawns only relevant personas to answer a specific question blocking a decision. Thorough, evidence-based |
| Postmortem | /postmortem |
Blameless incident analysis — SRE-led, timeline-driven, evidence-based. Contributing factors from each relevant persona, action items tracked as beads |
| Onboard | /onboard |
Project onboarding — all 10 personas assess an existing project cold, produce a health scorecard (R/Y/G), documentation inventory, and initial backlog |
| Retrospective | /retro |
End-of-session retrospective. Honest assessment including PO feedback, agent self-critique, and each persona's perspective with disagreements |
Single-purpose orchestrator skills that guard a specific operational concern. They don't spawn personas — they enforce a checklist or gate against the orchestrator's own actions.
| Skill | Command | Purpose |
|---|---|---|
| Release Check | /release-check |
Pre-release semantic readiness — verifies open P0/P1 bugs are clear, in-flight verification agents have completed, and the PO has explicitly confirmed before any release-execution agent fires |
| Retro Sync | /retro-sync |
Scrub, pseudonymize, and push local retros in ~/retros/ to the shared public corpus at EndofLineTech/retros. Push-only — /retro-mine pulls the corpus down |
| Retro Mine | /retro-mine |
Mine the retro corpus for recurring patterns and turn them into proposed rule changes for this skill system. Evidence-clustered (≥2 retros = rule candidate, 1 = watch item), detects rules that aren't working, PO approves before any edit |
| File | Purpose |
|---|---|
_shared/conflict-resolution.md |
How personas disagree and resolve conflicts. Domain authority, escalation to PO, disagree-and-commit protocol. Critical security findings are non-negotiable |
_shared/engineering-discipline.md |
Evidence over intuition. Verify before asserting. Completeness over sampling. Known failure modes. Naming discipline. One-way door protocol |
_shared/orchestration.md |
Orchestrator discipline — how the coding agent dispatches subagents, isolates worktrees, picks models per task, compresses decisions, and avoids merging past in-flight verification. Auto-loaded through Claude Code's CLAUDE.md and Codex's AGENTS.md |
_shared/deployment-tier.md |
Tier definitions (home-lab / small-team / startup / enterprise) and per-persona calibration tables. Personas read this to right-size their recommendations to the deployment context |
_shared/claude-md-project-template.md |
Template for the project CLAUDE.md block /onboard offers to write — the per-project facts (board, gates, branching, deploy) personas need every session |
*/identity.md |
Condensed identity tier for each persona — used by two-phase standup, quick-mode /team-plan and /team-review, default /grooming, and lightweight triage. Domain authority, professional biases, and standup triggers in ~15 lines |
Each persona has a "Professional Perspective" section that defines what they advocate for, what they're skeptical of, and when they should push back even if everyone else agrees. The security engineer fights for security. The PM fights for shipping. The UX designer fights for the user. These biases collide — by design.
Four personas are explicitly framed as protectors — their domain authority exists to guard something, not to serve feature delivery on demand:
- Security Engineer — guards the system and its users from harm
- Database Engineer — guards data integrity, stability, and performance
- SRE — guards production reliability and operational stability
- QA Engineer — last line of defense before code reaches users
Protectors can say no. Their findings don't need to justify themselves through feature delivery — preventing harm is the justification. This framing counteracts the LLM tendency to accommodate and smooth over legitimate domain concerns.
Every persona is oriented toward delivering user outcomes, not domain work. The PM owns a value gate — no work enters the backlog without a stated user benefit ("who benefits and how will we know?"). Standup triggers are framed by user impact ("users will experience 10s page loads" not "the architecture isn't elegant"). Domain expertise serves user needs — it doesn't generate them.
Personas calibrate to the deployment tier of the component they're working on (home-lab / small-team / startup / enterprise). The SRE doesn't recommend SLOs and on-call rotations for a Raspberry Pi; the security engineer doesn't write a SOC 2 gap analysis for an internal scratch tool. Tier is set per-component in COMPONENTS.md (produced by /onboard) and read by every team ceremony before agents spawn. See _shared/deployment-tier.md for the per-persona calibration tables.
Each persona's SKILL.md declares a default model in frontmatter (model: sonnet). Skill orchestrators override per task type — haiku for fast triage (Phase 1 standup), sonnet for most domain work, opus for sticky decisions (architecture proposals, security findings, root cause analysis). At home-lab tier, models downshift one level (except security-engineer holds — a home-lab CVE is still a CVE). See _shared/orchestration.md "Agent Model Selection" for the full mapping.
Each persona has two files:
SKILL.md— Full persona definition with methodologies, frameworks, output formats (~200+ lines)identity.md— Condensed identity for lightweight triage (~15 lines: domain authority, biases, standup triggers)
The standup uses a two-phase approach: Phase 1 loads only identity.md for fast red/yellow/green triage across all 10 personas. Phase 2 loads the full SKILL.md only for personas that reported non-green. This optimizes token usage — a fully green standup costs ~10% of what loading all full personas would.
- Critical (9.0-10.0): Non-negotiable. PO cannot override. Work stops
- High (7.0-8.9): Gets priority. PO sequences but can't defer indefinitely
- Medium (4.0-6.9): PO weighs cost of fix against actual risk
- Low/Informational (0.0-3.9): Lowest priority. Address when convenient
Front-loading known LLM failure modes into each persona produces significantly better session outcomes. The project engineer gets a deep version with explicit failure modes. All personas reference the shared principles. The cost of ~100 lines of context at session start is far cheaper than reworking things because the agent wouldn't follow instructions the first time.
- Dev: No scan gates. Move fast, break things
- Preprod: All scans must pass (SAST, DAST, SCA, IaC, secrets, containers). This is the gate
- Prod: Same artifact that passed preprod. Manual approval + smoke tests
The Product Owner makes all product and priority decisions. The one exception: Critical security findings are non-negotiable — no one overrides them, not even the PO.
Prompt-level rules (CLAUDE.md, AGENTS.md, SKILL.md) are advisory — they lose to context drift, compaction, and "it's just a 1-line edit" rationalizations. hooks/pretooluse.py, registered for both Claude Code and Codex CLI by install.sh, enforces the mechanically decidable rules deterministically, and its deny messages act as just-in-time reminders at the exact moment of violation:
| Rule | Trigger | Effect |
|---|---|---|
| Orchestrator edit block | Main agent edits a project file via Claude Edit/Write/NotebookEdit or Codex apply_patch in an onboarded project (COMPONENTS.md present) |
Denied — dispatch the owning persona. COMPONENTS.md, CLAUDE.md, AGENTS.md, tool config, and files outside the project tree stay writable |
| Ceremony gate | A team ceremony (/team-plan, /grooming, /standup, /spike, /team-review, /postmortem) invoked without COMPONENTS.md |
Claude Code: denied at the Skill tool call. Codex CLI: instruction-enforced because skill activation is not exposed to hooks as a tool call |
| Persona bead firewall | A subagent runs bd create/close/delete/reopen |
Denied — board state transitions are orchestrator territory; findings are reported, the PO decides. bd update stays allowed |
| Bead-referenced commits | git commit -m without a bead id in a repo with .beads/ |
Denied — include the bead id, or the literal [no-bead] for genuinely untracked commits |
Where the host supplies agent_id, the hook distinguishes orchestrator from subagent with that field. Merge authorization, definition of done, and backlog sign-off are semantic rules in _shared/orchestration.md — the hook no longer fences gh pr merge; make merge review authoritative with GitHub branch protection/rulesets, which apply regardless of which tool or command shape performs the merge. To configure that on a project repo, run scripts/apply-branch-protection.sh <owner>/<repo> — it idempotently applies a ruleset requiring the ai-team/* review checks (published by .github/workflows/ai-team-review-gate.yml) on the default branch. This repo remains exempt for meta-work edits. Self-check: python3 hooks/pretooluse.py --check.
Windows note: Creating symlinks may require running as Administrator or enabling Developer Mode (Settings > Update & Security > For developers).
Bash:
./install.sh # Symlink (default) — self-updates this checkout, then installs
./install.sh --copy # Copy instead — for customization without affecting the repo
./install.sh --project <dir> # Project-scoped install into <dir>/.claude (copies, committable)
./install.sh --project <dir> --local # Project-scoped, personal (settings.local.json, gitignored)
./install.sh --help # Show optionsPowerShell:
./install.ps1 # Symlink (default)
./install.ps1 -Copy # Copy insteadWindows gap:
install.ps1registers the Codex CLI enforcement hook, but does not yet register the Claude Code hook, install thepersona-revieweragent definition, or support--project.
Uninstall:
./uninstall.sh # macOS/Linux (global)
./uninstall.sh --project <dir> # Remove a project-scoped install
./uninstall.ps1 # WindowsIf you prefer to copy specific skills:
mkdir -p ~/.claude/skills
mkdir -p ~/.agents/skills
cp -R _shared ~/.claude/skills/_shared
cp -R security-engineer ~/.claude/skills/security-engineer
cp -R _shared ~/.agents/skills/_shared
cp -R security-engineer ~/.agents/skills/security-engineer
# ... copy whichever skills you want
mkdir -p ~/retrosTo install for a single project instead of globally, copy into both .claude/skills/ and .agents/skills/.
This project uses semantic versioning at the system level. Releases are git tags (v0.2.0, etc.). Each SKILL.md carries a version: field in its frontmatter showing the system version it last changed in.
Check what's installed:
grep -E "^name:|^version:" ~/.claude/skills/*/SKILL.mdUpdate to latest: just re-run the installer — it self-updates this checkout (git pull --ff-only) before installing. Symlink installs also pick up any plain git pull on their own:
cd /path/to/ai-agent-dev-team
git pullPin to a specific version (or roll back):
cd /path/to/ai-agent-dev-team
git checkout v0.2.0 # or any tag
# Symlink installs now resolve to that tag's contentA checked-out tag leaves the repo in detached HEAD (or otherwise off a branch with an upstream), so the installer's self-update can't fast-forward — it prints a warning and installs the pinned content as-is instead of moving you off the tag. The pin holds until you check out a branch again.
If you installed with --copy, re-run the installer after switching tags:
git checkout v0.2.0
./install.sh --copySee CHANGELOG.md for what changed in each release.
Invoke any persona directly for domain-specific consultation:
/security-engineer Review the authentication module for vulnerabilities
/it-architect Design a system for real-time event processing
/project-manager Plan the next work cycle based on the current backlog
/project-engineer Implement the user registration endpoint
/ux-designer Design the onboarding flow for new users
/code-reviewer Review this PR for quality and consistency
/database-engineer Design the schema for the orders system
/sre Define SLOs and instrumentation plan for the payment service
/qa-engineer Create a test strategy for the checkout flow
/technical-writer Audit the documentation for the APIUse ceremonies to coordinate the full team:
/standup # Daily pulse — red/yellow/green, blockers only
/grooming # Refine backlog items for readiness
/team-plan # Full team planning for a new project or work cycle
/spike # Targeted investigation to unblock a decision
/team-review # Full team review of existing work
/postmortem # Blameless incident analysis
/retro # End-of-session retrospective
/retro-sync # Scrub + push local retros to the shared public corpus
/retro-mine # Mine the retro corpus into proposed skill-system rule changesSingle-purpose orchestrator skills — no persona spawns, just a checklist or gate:
/release-check # Pre-release readiness gate — verifies P0/P1 bugs clear, in-flight verification done, PO confirmsHere's when to use each ceremony in a typical project lifecycle:
Any Project (Required First — see "Project Onboarding" above)
└─ /onboard ──────────── Identify components, assign deployment tiers, write COMPONENTS.md
+ health scorecard + initial backlog
New Project (after /onboard)
└─ /team-plan (full) ─── Deep planning, all personas, architecture + security + UX + implementation
└─ Creates initial epics and beads
Work Cycle
├─ /grooming ─────────── Refine upcoming backlog items before planning
├─ /team-plan (quick) ── Work planning — commit work, identify dependencies
├─ /standup ──────────── Status check — red/yellow/green, blockers, PO decisions
├─ /spike ───────────── As needed — unblock decisions with targeted investigation
├─ /team-review ─────── Review — evaluate what shipped
└─ /retro ───────────── End of session — honest assessment, persona perspectives
When Things Break
└─ /postmortem ────────── Blameless analysis, timeline, root cause, action items as beads
/team-plan, /team-review, and /grooming support depth modes:
- Quick: Bullet points, top 2-3 conflicts, concise output. Agents load
identity.mdonly — a fraction of the per-agent context of a full persona load - Full: Complete structured output per each persona's format. Agents load full
SKILL.mdplus the shared discipline docs
/spike always targets only relevant personas (2-4), not all 10.
/standup uses two-phase triage — Phase 1 loads identity.md only for fast R/Y/G, Phase 2 loads full SKILL.md for non-green personas only. Green is silent.
/grooming runs in batch mode — each persona evaluates all items in a single pass, with a user value gate before any persona is spawned. Grooming agents load identity.md by default; deep-groom (PO-requested, or beads flagged complex at the value gate) loads full SKILL.md for the relevant personas only.
/postmortem includes only personas relevant to the incident.
Every persona carries a "Relationship to Other Personas" section documenting its side of each significant relationship — its own obligations and expectations, not a restatement of the other side's. The two sides of a relationship are complementary by design (the engineer's "argue a Block with technical reasoning" pairs with the reviewer's "welcome pushback and evaluate it"). Each persona knows:
- What they own (domain authority)
- What other personas own (where to defer)
- Where they'll naturally disagree (professional bias)
- How to resolve conflicts (shared protocol)
These are by design — the personas will argue about these:
| Tension | Personas | What They'll Argue About |
|---|---|---|
| Security vs. Speed | Security ↔ PM, Engineer | How much security for Phase 1? Scope vs. remediation |
| Complexity vs. Simplicity | Architect ↔ Engineer | Is this design over-engineered or appropriately future-proof? |
| Quality vs. Velocity | Code Reviewer ↔ Engineer, PM | Style blocks when there's pressure to ship |
| User Experience vs. Constraints | UX ↔ Security, Architect, Engineer | Security friction, architectural limits, technical feasibility |
| Reliability vs. Features | SRE ↔ PM | Error budget spent — feature freeze or keep shipping? |
| Data Integrity vs. Speed | DBA ↔ Engineer, Architect | Normalize or denormalize? Migration safety vs. velocity |
| Observability Cost vs. Signal | SRE ↔ Architect, Engineer | 100% trace sampling vs. budget — SRE owns both sides since the Observability Engineer merged into the SRE role |
| Test Coverage vs. Shipping | QA ↔ PM, Engineer | Performance testing before launch or after? |
| Documentation vs. "Later" | Technical Writer ↔ Everyone | Is docs part of done, or a follow-up that never happens? |
R = Responsible (does the work), A = Accountable (final decision), C = Consulted (input before decision), I = Informed (notified after)
This matrix was reviewed by all personas in parallel. Contested decisions were resolved by the PO. The Observability Engineer was merged into the SRE — the SRE now owns the observability platform, instrumentation standards, and cost management in addition to reliability.
| Activity | PO | PM | Arch | SecEng | Eng | UX | CR | DBA | SRE | QA | TW |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Requirements & Scope | A | R | C | C | I | C | I | C | I | C | C |
| Architecture Design | A | I | R | C | C | C | I | C | C | C | C |
| Technology Selection | A | C | R | C | C | C | C | C | C | C | I |
| API Contract Design | A | I | R | C | C | C | C | C | I | C | C |
| ADRs | A | C | R | C | C | I | C | C | C | I | C |
| UX Design | A | I | C | C | I | R | I | I | I | C | C |
| Design System Definition | A | I | C | C | C | R | C | I | I | I | C |
| Schema / Data Modeling | A | I | C | C | C | I | I | R | I | I | I |
| DR/HA Design | A | C | R | C | C | C | I | C | C | C | C |
| Cost Modeling | A | C | R | I | C | I | I | C | C | I | I |
| Activity | PO | PM | Arch | SecEng | Eng | UX | CR | DBA | SRE | QA | TW |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Security Assessment | A | I | C | R | C | I | C | C | C | I | C |
| Threat Modeling | A | I | C | R | C | I | I | C | I | C | C |
| Compliance & Audit | A | C | C | R | C | I | I | C | I | I | C |
| Secrets Management | I | C | C | A | R | I | C | I | C | I | C |
| Security Scan Pipeline | I | I | C | A | C | I | I | I | R | I | I |
| Activity | PO | PM | Arch | SecEng | Eng | UX | CR | DBA | SRE | QA | TW |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Implementation | A | I | C | C | R | C | C | C | C | C | I |
| Code Review | I | I | I | C | C | C | R | C | C | I | I |
| TDD / Unit+Integration Tests | I | I | I | C | R | I | C | C | I | C | I |
| Test Strategy | A | I | C | C | C | I | C | C | C | R | I |
| Test Environment Management | I | C | C | C | C | I | I | C | C | R | I |
| Test Data Strategy | I | I | I | C | C | I | I | C | I | R | I |
| Performance Testing | I | I | C | C | C | I | I | C | C | R | I |
| Chaos / Resilience Testing | I | C | C | C | C | I | I | C | R | C | C |
| Activity | PO | PM | Arch | SecEng | Eng | UX | CR | DBA | SRE | QA | TW |
|---|---|---|---|---|---|---|---|---|---|---|---|
| IaC (Terraform/Ansible) | A | I | R | C | R | I | I | I | C | C | C |
| CI/CD — Build & Deploy | I | C | C | C | R | I | C | C | R | C | I |
| CI/CD — Test Gates | I | I | I | C | C | I | C | I | C | R | I |
| Deployment | A | C | C | C | R | C | C | C | R | C | C |
| Database Migration | A | I | C | C | C | I | C | R | C | C | C |
| Backup & Recovery | A | C | C | C | C | I | I | R | C | C | C |
| Capacity Planning | A | C | C | I | C | I | I | C | R | I | I |
| Activity | PO | PM | Arch | SecEng | Eng | UX | CR | DBA | SRE | QA | TW |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Observability Design | A | I | C | C | C | C | C | C | R | C | I |
| Observability Platform & Standards | I | I | C | C | C | C | C | C | R | C | C |
| SLO Definition | A | I | C | C | C | C | I | I | R | I | C |
| Alert / Runbook Design | I | I | C | C | C | I | I | I | R | I | C |
| Incident Response | I | C | C | R | C | C | I | C | R | I | C |
| Postmortem | I | C | C | R | C | I | I | C | R | C | C |
| Activity | PO | PM | Arch | SecEng | Eng | UX | CR | DBA | SRE | QA | TW |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Work Planning | A | R | I | I | C | I | I | C | C | C | C |
| Backlog Grooming | A | R | C | C | C | C | C | C | C | C | C |
| Release Management | A | R | C | C | C | C | C | I | R | C | C |
| Risk Management | A | R | C | C | C | I | I | I | C | I | I |
| Documentation | I | I | C | C | C | C | C | C | C | C | R |
| Documentation Audit | I | C | I | I | I | C | I | I | I | I | R |
| Onboarding Guide | I | C | C | C | C | C | C | C | C | C | R |
Key principles:
- PO is Accountable for all product decisions — requirements, scope, architecture, deployment, risk acceptance
- PM is Responsible for process — work planning, grooming, release management, risk management
- Domain experts are Responsible for their domain — Security owns assessments and threat modeling, DBA owns schema and backups, SRE owns incidents and capacity, QA owns test strategy and environments
- Architect is Responsible for API contract design, ADRs, DR/HA design, cost modeling, and co-R on IaC
- Security Engineer is Accountable for secrets management and the scan pipeline — sets policy, others implement
- Activities are split where co-ownership was contested — CI/CD (Build & Deploy vs. Test Gates), Test Strategy vs. TDD/Unit+Integration
- Everyone is Consulted during grooming — every persona evaluates backlog items
- Implementation involves the whole team — DBA, SRE, UX, QA, and CR are all Consulted, not just Informed
All conflicts follow the shared protocol (_shared/conflict-resolution.md):
- Domain authority decides within their domain — Security on risk, Architect on design, Code Reviewer on quality
- Cross-domain conflicts escalate to the PO — the PO weighs trade-offs and decides
- Critical security findings are non-negotiable — no one overrides, not even the PO
- Disagree and commit is documented — the ADR or bead captures what, who, and why
These skills are designed to be adapted. If you install with --copy, you can modify freely. If you install with symlinks (default), fork the repo first or copy individual skills you want to customize.
| What | Where | Why |
|---|---|---|
| Technology stack | project-engineer/SKILL.md |
Default is Node/React + Python + Terraform + Ansible. Change to your stack |
| Security frameworks | security-engineer/SKILL.md |
Default is OWASP, NIST CSF, CIS, ISO 27001, SOC 2, Zero Trust. Add HIPAA, PCI-DSS, GDPR, etc. |
| Board tool | project-manager/SKILL.md |
Default is beads (bd). Swap for Jira CLI, Linear, GitHub Issues, etc. |
| API conventions | code-reviewer/SKILL.md |
Default is REST with snake_case, versioned URLs, standard envelopes. Adjust for GraphQL, gRPC, etc. |
| Design system | ux-designer/SKILL.md |
Default is build-from-scratch. Point to your existing design system |
| Observability stack | sre/SKILL.md |
Default evaluates per-project. Set your standard stack (Datadog, Grafana Cloud, etc.) |
| Database preferences | database-engineer/SKILL.md |
Default is PostgreSQL-primary. Adjust for your data platform |
| Retro location | retro/SKILL.md |
Default is ~/retros/. Change to your preferred location |
| Retro sync target | retro-sync/SKILL.md |
Default is the shared public EndofLineTech/retros. Point at your own repo (private if you prefer) — the scrub still runs |
| Conflict resolution | _shared/conflict-resolution.md |
Adjust domain authority boundaries, security escalation tiers, or the disagree-and-commit protocol |
| Engineering discipline | _shared/engineering-discipline.md |
Add your own known failure modes, naming conventions, or principles |
| Orchestration rules | _shared/orchestration.md |
Default rules for agent dispatch, worktree isolation, decision compression. Adjust for your workflow |
To add a new persona, create a directory with a SKILL.md:
~/.claude/skills/my-persona/SKILL.md
Follow the pattern established by existing personas:
- YAML frontmatter (
name,description,when_to_use,user-invocable: true) - Reference the shared engineering discipline and conflict resolution protocol
- Define the persona's domain, philosophy, and methodology
- Add a Professional Perspective section (what they advocate for, what they're skeptical of)
- Add a Conflict Resolution section with domain-specific guidance
- Add Relationship sections for every other persona they interact with
- Define structured output formats
- Create an
identity.md— condensed identity (~15 lines) with domain authority, professional biases, and standup triggers - Update
team-plan/SKILL.mdandteam-review/SKILL.mdto include the new persona's agent prompt
ai-agent-dev-team/
├── _shared/
│ ├── claude-md-project-template.md # Project CLAUDE.md block template (written by /onboard)
│ ├── conflict-resolution.md # Conflict resolution protocol
│ ├── decision-prompts.md # DECISIONS NEEDED block format reference
│ ├── deployment-tier.md # Tier definitions + per-persona calibration tables
│ ├── engineering-discipline.md # Engineering discipline principles
│ └── orchestration.md # Orchestrator discipline (agent dispatch, isolation, model selection, decisions)
├── agents/
│ └── persona-reviewer.md # Read-only agent type for review-mode dispatch (no Edit/Write) — installed to ~/.claude/agents/
├── hooks/
│ └── pretooluse.py # Shared PreToolUse dispatcher — Claude settings.json + Codex hooks.json
├── security-engineer/
│ ├── SKILL.md # Full persona — Security Engineer (protector)
│ └── identity.md # Condensed identity for triage
├── it-architect/
│ ├── SKILL.md # Full persona — IT Architect
│ └── identity.md
├── project-manager/
│ ├── SKILL.md # Full persona — Project Manager (value gate owner)
│ └── identity.md
├── project-engineer/
│ ├── SKILL.md # Full persona — Project Engineer
│ └── identity.md
├── ux-designer/
│ ├── SKILL.md # Full persona — UX Designer (user advocate)
│ └── identity.md
├── code-reviewer/
│ ├── SKILL.md # Full persona — Code Reviewer
│ └── identity.md
├── database-engineer/
│ ├── SKILL.md # Full persona — Database Engineer (protector)
│ └── identity.md
├── sre/
│ ├── SKILL.md # Full persona — SRE + Observability (protector)
│ └── identity.md
├── qa-engineer/
│ ├── SKILL.md # Full persona — QA Engineer (protector)
│ └── identity.md
├── technical-writer/
│ ├── SKILL.md # Full persona — Technical Writer
│ └── identity.md
├── team-plan/SKILL.md # Team planning ceremony
├── team-review/SKILL.md # Team review ceremony
├── standup/SKILL.md # Two-phase daily standup ceremony
├── grooming/SKILL.md # Backlog refinement with value gate
├── spike/SKILL.md # Technical spike ceremony
├── postmortem/SKILL.md # Incident postmortem ceremony
├── onboard/SKILL.md # Project onboarding ceremony
├── release-check/SKILL.md # Pre-release semantic readiness gate
├── retro/SKILL.md # Session retrospective ceremony
├── retro-sync/ # Retro scrub + push to shared public corpus
│ ├── SKILL.md
│ └── scrub.sh # Deterministic redaction/pseudonymization pass
├── retro-mine/ # Retro corpus → proposed skill-system rule changes
│ ├── SKILL.md
│ └── LAST_MINED # Watermark: newest retro covered by the last pass
├── install.sh # Installer script (macOS/Linux)
├── install.ps1 # Installer script (Windows)
├── uninstall.sh # Uninstaller script (macOS/Linux)
├── uninstall.ps1 # Uninstaller script (Windows)
├── CHANGELOG.md # Per-release changes — Keep a Changelog format
├── CONTRIBUTING.md # Contributor guide (versioning, PR conventions)
├── LICENSE # MIT License
└── README.md # This file
- The concept of a multi-persona bot crew was inspired by warrentc3
- The engineering discipline and identity primer approach was inspired by collaborative work with the dev community building effective agent-assisted development patterns.
MIT