Agentic Persona Team

01Overview

Dev Team is a Claude Code plugin that gives you a multi-agent team for building software. You describe what you want to build, and specialists in security, accessibility, architecture, performance, and 16 other domains analyze, review, and build it โ€” each bringing structured expertise from the agentic-cookbook.

The system works through three repos: the cookbook holds principles and guidelines, dev-team (this plugin) provides the agents and orchestration, and your workspace repo stores the project data.

20Specialists
231Specialty Teams
20Agents
8Commands
136Contract Tests

02Commands

Single entry point: /dev-team <command>. Each command is a workflow run by a team-lead.

CommandLeadWhat It Does
/dev-team interviewinterviewDiscover product requirements through structured and exploratory questioning with specialist expertise
/dev-team create-recipe-from-codeanalysisReverse-engineer a codebase into a cookbook project
/dev-team generatereviewImprove a cookbook project through specialist review
/dev-team create-code-from-recipebuildBuild working code from a cookbook project
/dev-team lintauditEvaluate any file against cookbook standards
/dev-team align-specialistsauditReview specialist-cookbook alignment after guideline changes
/dev-team compare-codeanalysisCompare two code projects for round-trip verification
/dev-team view-recipeโ€”Generate HTML view of a cookbook project (read-only)

03Pipeline

How a workflow runs end-to-end. The team-lead is the only component that talks to the user. All other communication flows through the arbitrator.

System Architecture

UserSkill RouterTeam-Leadruns workflow, talks to userArbitratorSpecialistrole + persona + manifestSpecialistrole + persona + manifestSpecialistrole + persona + manifestยทยทยทยทยทยทWorkerVerifierWorkerVerifierSpecialty-Teams (worker-verifier pairs)Specialty-Teams (worker-verifier pairs)Cookbookprinciples, guidelinesProject Storage.dev-team-project/

Participant Roles

LAYER 1LAYER 2LAYER 3LAYER 4LAYER 5Userinvokes commands, answers questions, provides verdictsTeam-Leadruns the workflow, dispatches specialistsonly component that talks to userSpecialistorganizer with role + persona, manages specialty-teamsaggregates findings into resultsSpecialist-Persona: translates findings to voiceSpecialty-TeamWorkerreads ONE artifactVerifierPASS / FAILConsulting-Team (optional)Workercross-cutting reviewVerifierPASS / FAILArbitratorcommunication conduit between all participants โ€” no one talks directlySpecialty VerdictsPASS or FAILConsulting VerdictsVERIFIED or N/AVerifier VerdictsPASS or FAIL (both types)

Session Lifecycle

1. User invokes/dev-team <command>2. Skill Routerload config โ†’ init DB โ†’ create sessionroute to workflow file3. Team-Lead beginsstate: pending โ†’ runningdispatches specialist assignments4. Specialist reads assignmentstate: pending โ†’ running5a. Specialty-Team LoopWorkerproduces findingsVerifierPASS or FAILFAIL โ†’ retry (max 3)5b. Consulting Review (optional)Workercross-cutting reviewVerifierPASS or FAILVERIFIED or NOT-APPLICABLE6. Specialist-Personatranslates findings โ†’ interpretations7. Result returnedresult_id + pass/fail via arbitrator8. Team-Lead aggregatespresents report to userSession CompleteArbitratorall communicationflows through hereper specialist
Team-Leads 5 types

Each team-lead type runs a specific category of workflow and has its own persona.

TypeWorkflows
interviewProduct discovery and requirements gathering
analysisCodebase analysis, project creation, code comparison
reviewSpecialist review and recipe improvement
buildCode generation from cookbook projects
auditLinting, alignment checking
Interaction Contract โ€” 5 Message Types communication
TypeDirectionDescription
QuestionLead โ†’ UserOpen-ended, needs thoughtful answer
AnswerUser โ†’ LeadResponse to a question
GateLead โ†’ UserOptions presented, work pauses until verdict
VerdictUser โ†’ LeadSelected option from a gate
NotificationLead โ†’ UserOne-way status update, no response needed

Gate Categories

flow โ€” normal checkpoint (assignment approval, suggestion approve/reject). error โ€” something broke (retry, skip, abort). conflict โ€” specialists disagree (pick a direction).

Notification Attributes

Severity: info, warning, error. Category: progress, result, briefing.

04Specialists

20 specialists, each with a role, persona, cookbook sources, and a manifest of specialty-teams. Each specialty-team is a worker-verifier pair focused on one cookbook guideline, principle, or compliance check.

Domain Specialists (13) domain
SpecialistFocus
accessibilityWCAG compliance, screen readers, keyboard navigation, color contrast
claude-codeAgentic development, Claude Code patterns, performance
code-qualitySimplicity, deletability, explicitness, linting, atomic commits
data-persistenceStorage, caching, migration, sync, offline-first
development-processGit workflow, CI/CD, code review, documentation
devops-observabilityLogging, metrics, tracing, alerting, deployment
localization-i18nInternationalization, locale handling, RTL, pluralization
networking-apiREST design, error handling, pagination, authentication
reliabilityError handling, retry logic, circuit breakers, graceful degradation
securityAuth, transport, tokens, input validation, CORS, CSP, privacy
software-architectureModularity, dependency management, patterns, boundaries
testing-qaUnit tests, integration tests, coverage, test design
ui-ux-designLayout, typography, color, interaction, responsive design
Platform Specialists (6) platform
SpecialistFocus
platform-androidAndroid SDK, Kotlin, Jetpack Compose, lifecycle
platform-databaseSchema design, sync architecture, indexing, query optimization, transactions, backup/recovery (22 teams + 3 consulting)
platform-ios-appleSwift, SwiftUI, UIKit, Apple frameworks
platform-web-backendPython, Node.js, API servers, middleware
platform-web-frontendReact, TypeScript, CSS, bundling, SSR
platform-windowsWinUI, .NET, MSIX, Windows APIs
Project Management (1) pm
SpecialistFocus
project-managerSchedules, todos, issues, concerns, dependencies, decisions

Manages dev-team-project data through the project-storage-provider. Has 6 specialty-teams: schedule, todos, issues, concerns, dependencies, decisions.

05Specialty-Teams

231 standalone files across 20 categories. Each defines a worker-verifier pair focused on one cookbook guideline, principle, or compliance check. The atomic unit of specialist expertise.

Specialist dispatches Specialty-Teamโ†’ Worker reads cookbook guideline, produces findingsโ†’ Verifier checks worker outputโ†’ PASS โ†’ findings recordedโ†’ FAIL โ†’ retry (max 3) โ†’ escalate

Isolation principle: Worker and verifier never see each other's instructions. This is a checks-and-balances design โ€” the verifier can't be biased by the worker's approach.

accessibility (2) domain
TeamDescriptionCookbook Source
accessibility-compliance8 compliance checks โ€” screen-reader-support, keyboard-navigable, dynamic-type-support, contrast-ratio, touch-target-sizecompliance/accessibility.md
accessibilitySemantic roles and labels on all interactive elements; full screen reader support (VoiceOver, TalkBack, Narrator, ARIA);guidelines/accessibility/accessibility.md
claude-code (15) domain
TeamDescriptionCookbook Source
agent-checklistStructure checks (frontmatter present with name+description, kebab-case filename); content quality (single responsibilitguidelines/skills-and-agents/agent-checklist.md
agent-structure-referenceAgents are `.md` files in `.claude/agents/` with YAML frontmatter; body is the system prompt; frontmatter fields (name, guidelines/skills-and-agents/agent-structure-reference.md
authoring-skills-and-rulesSkill design rules โ€” check inventory first, version from day one, session version check, use `$ARGUMENTS` and `${CLAUDE_guidelines/skills-and-agents/authoring-skills-and-rules.md
design-for-deletionBuild skills and rules that are easy to remove without affecting others; treat lines of instructions as lines spent โ€” deprinciples/design-for-deletion.md
explicit-over-implicitMake dependencies visible โ€” skills that need files should read them explicitly, not rely on ambient context; name thingsprinciples/explicit-over-implicit.md
manage-complexity-through-boundariesWell-defined interfaces between subsystems โ€” skills expose clear input/output contracts; agents receive narrow, specificprinciples/manage-complexity-through-boundaries.md
performanceThree principles โ€” (1) shell scripts for deterministic work (scaffolding, git, build, lint, file manipulation, metrics);guidelines/skills-and-agents/performance.md
rule-checklistContent quality (single responsibility, actionable/specific, no conflicting instructions); rule-specific (imperative tonguidelines/skills-and-agents/rule-checklist.md
rule-structure-referenceRules are plain `.md` files (no required frontmatter schema), lowercase kebab-case filename, per-turn cost model (rules guidelines/skills-and-agents/rule-structure-reference.md
separation-of-concernsEach skill, rule, and agent should have one reason to change; if describing what a skill/rule does requires "and," consiprinciples/separation-of-concerns.md
simplicitySimple means no interleaving of concerns โ€” not just "familiar"; optimizing for easy (convenient) leads to complexity thaprinciples/simplicity.md
skill-checklistStructure checks (frontmatter present, name kebab-case โ‰ค64 chars, description present, main file named `SKILL.md`, โ‰ค500 guidelines/skills-and-agents/skill-checklist.md
skill-structure-referenceDirectory layout (`.claude/skills/<name>/SKILL.md` + optional references/scripts/examples/); frontmatter fields (name, dguidelines/skills-and-agents/skill-structure-reference.md
support-automationSkills and agents should expose capabilities through scriptable interfaces โ€” not just interactive use; design operationsprinciples/support-automation.md
yagniBuild skills and agents for today's known requirements; speculative generality in prompts (adding "in case we need it" cprinciples/yagni.md
code-quality (8) domain
TeamDescriptionCookbook Source
atomic-commitsOne logical change per commit; follow build-verify-commit loop (change โ†’ build โ†’ verify โ†’ commit โ†’ repeat); never stack guidelines/code-quality/atomic-commits.md
best-practices-compliance8 compliance checks โ€” unit-test-coverage, test-pyramid, atomic-commits, code-linting, post-generation-verification, explcompliance/best-practices.md
bulk-operation-verificationAfter any operation touching 5+ files, run a verification pass; grep entire repo for stale references (old names, paths,guidelines/code-quality/bulk-operation-verification.md
design-for-deletionTreat every line of code as a maintenance liability; build disposable units that can be thrown away without affecting thprinciples/design-for-deletion.md
explicit-over-implicitMake dependencies visible via injection rather than hidden globals; name things for what they do; prefer explicit parameprinciples/explicit-over-implicit.md
lintingLinting configured from day one on every project; linter config committed to repo; linting runs as part of build or pre-guidelines/code-quality/linting.md
scope-disciplineOnly modify what was requested; state the goal before starting; note but do not fix adjacent issues; recognize scope creguidelines/code-quality/scope-discipline.md
simplicityDistinguish simple (no interleaving of concerns) from easy (convenient); resist adding abstractions that braid two conceprinciples/simplicity.md
data-persistence (4) domain
TeamDescriptionCookbook Source
idempotencyUser actions and system operations safe to repeat without duplicate side effects; buttons debounced or disabled during aprinciples/idempotency.md
immutabilityMutable shared state eliminated as the root cause of concurrency bugs; `let`/`val`/`const` used by default; value types principles/immutability-by-default.md
offline-and-connectivityLocal-first design with background sync; optimistic updates with rollback on server failure; queue-based outbox for mutaguidelines/networking/offline-and-connectivity.md
reliability-compliance8 compliance checks โ€” error-recovery, graceful-degradation, fault-tolerance, state-recovery, idempotent-operations, timecompliance/reliability.md
development-process (6) domain
TeamDescriptionCookbook Source
ab-testingFeatures that may need experimentation support variant assignment via `ExperimentProvider` interface (`variant(key) -> Sguidelines/feature-management/ab-testing.md
debug-modeDebug-only configuration panel not included in release builds โ€” contains feature flag overrides, analytics event log, A/guidelines/feature-management/debug-mode.md
feature-flagsAll features gated behind feature flags from initial implementation; `FeatureFlagProvider` interface (`isEnabled(key) ->guidelines/feature-management/feature-flags.md
make-it-workSequential phases โ€” correctness first (common case working), then refactor for clarity and edge cases, then optimize onlprinciples/make-it-work-make-it-right-make-it-fast.md
small-reversible-decisionsFast decisions on cheap-to-reverse choices; invest in understanding before committing to expensive-to-reverse decisions;principles/small-reversible-decisions.md
yagniBuild only for today's known requirements; no speculative abstractions, hooks for future features, or generalization beyprinciples/yagni.md
devops-observability (7) domain
TeamDescriptionCookbook Source
ab-testingFeatures that may need experimentation support variant assignment via `ExperimentProvider` interface (`variant(key) -> Sguidelines/feature-management/ab-testing.md
analyticsAll significant user actions instrumented via an `AnalyticsProvider` interface (`track(event, properties)`); no direct cguidelines/logging/analytics.md
debug-modeDebug-only configuration panel (not in release builds) with feature flag overrides, analytics event log, A/B test varianguidelines/feature-management/debug-mode.md
feature-flagsAll features gated behind feature flags from initial implementation; `FeatureFlagProvider` interface (`isEnabled(key) ->guidelines/feature-management/feature-flags.md
loggingEvery component and flow instrumented with structured logging using platform best-in-class framework (os.log/Logger on Aguidelines/logging/logging.md
performance-compliance8 compliance checks โ€” main-thread-freedom, animation-frame-rate (60fps/16ms), lazy-loading, resource-efficiency, startupcompliance/performance.md
tight-feedback-loopsOptimize test suite runtime so tests actually get run; deploy small changes frequently; get real user feedback early; auprinciples/tight-feedback-loops.md
localization-i18n (3) domain
TeamDescriptionCookbook Source
internationalization-compliance7 compliance checks โ€” string-externalization, rtl-layout-support, locale-aware-formatting, plural-forms, text-expansion-compliance/internationalization.md
localizationAll user-facing strings externalized into platform-standard resource files โ€” `.xcstrings`/`.strings` (Swift), `strings.xguidelines/internationalization/localization.md
rtl-supportLeading/trailing (not left/right) for all alignment and padding; directional icons mirrored; non-directional icons not mguidelines/internationalization/rtl-support.md
networking-api (11) domain
TeamDescriptionCookbook Source
access-patterns-compliance8 compliance checks โ€” api-design-conventions, offline-behavior, retry-with-backoff, timeout-configuration, rate-limit-hacompliance/access-patterns.md
api-designREST with consistent URL conventions (lowercase-hyphen, plural nouns, max 2 nesting levels, no verbs, no trailing slasheguidelines/networking/api-design.md
cachingServer controls cache policy via headers; immutable versioned assets use `public, max-age=31536000, immutable`; dynamic guidelines/networking/caching.md
error-responsesRFC 9457 Problem Details format with `Content-Type: application/problem+json`; required fields: `type` (URI), `title` (sguidelines/networking/error-responses.md
offline-and-connectivityLocal-first with background sync for offline apps; three patterns in complexity order โ€” optimistic updates (rollback on guidelines/networking/offline-and-connectivity.md
paginationCursor pagination preferred for most APIs โ€” stable under concurrent mutations, consistent performance at any depth; offsguidelines/networking/pagination.md
principle-of-least-astonishmentAPI and system behavior must match what callers expect; names must deliver exactly what they suggest; side effects must principles/principle-of-least-astonishment.md
rate-limitingHonor `Retry-After` header on 429 responses; if no `Retry-After`, use exponential backoff; track `RateLimit-Remaining` pguidelines/networking/rate-limiting.md
real-time-communicationStart with SSE for server-push (built-in reconnection, standard HTTP, sufficient for 80%+ of real-time needs); WebSocketguidelines/networking/real-time-communication.md
retry-and-resilienceExponential backoff with full jitter (`random(0, min(max_delay, base * 2^attempt))`); base 1s, max cap 30s, 3-5 retries guidelines/networking/retry-and-resilience.md
timeoutsAlways set both connection timeout (10s) and read/response timeout (30s); total/request timeout 60-120s including retrieguidelines/networking/timeouts.md
platform-android (11) platform
TeamDescriptionCookbook Source
background-tasksUse `WorkManager` for all deferrable background work โ€” handles constraints, retries, and chaining; use `ForegroundServicguidelines/platform/background-tasks.md
deep-linkingAndroid App Links (verified HTTP deep links) via `<intent-filter>` with `autoVerify="true"`; Jetpack Navigation componenguidelines/platform/deep-linking.md
font-scalingLayouts must not break at 2x font size; check `Configuration.fontScale` and test with large font settings enabled; use sguidelines/language/kotlin/font-scaling.md
handoff-and-continuityUse Firebase Dynamic Links or deep links that resolve in both native and web contexts for Android-to-web continuity; useguidelines/platform/handoff-and-continuity.md
native-controlsUse platform built-in frameworks before custom implementations; WorkManager over raw thread scheduling; Room over raw SQprinciples/native-controls.md
notificationsUse `NotificationCompat.Builder` for backward-compatible notifications; declare `NotificationChannel` so users control cguidelines/platform/notifications.md
platform-compliance7 compliance checks โ€” platform-design-language (Material Design 3), native-controls-preference, platform-touch-targets (compliance/platform-compliance.md
search-integrationUse Firebase App Indexing or `AppIndexingApi` for on-device search integration; declare searchable content in `searchablguidelines/platform/search-integration.md
share-and-inter-app-dataDeclare `<intent-filter>` with `ACTION_SEND` and appropriate MIME types to receive shared content; use `Intent.createChoguidelines/platform/share-and-inter-app-data.md
shortcuts-and-automationUse `AppActions` for Google Assistant integration; support `Intent`-based automation; expose key app actions as App Actiguidelines/platform/shortcuts-and-automation.md
widgets-and-glanceable-surfacesUse Jetpack Glance with Compose-style APIs for home screen widgets; define widget metadata in `appwidget-provider` XML; guidelines/platform/widgets-and-glanceable-surfaces.md
platform-database (22 + 3 consulting) platform

The most complex specialist. 22 specialty-teams organized across schema design, performance, operations, and sync โ€” plus 3 consulting-teams as cross-cutting verification gates.

TeamDescriptionCookbook Source
SCHEMA DESIGN (9)
naming-conventionssnake_case identifiers, PK/FK naming (table_name_id not bare id), reserved word avoidance, index/constraint namingguidelines/database-design/naming-conventions.md
data-typesSQLite type affinity, STRICT tables, the STRING gotcha, cross-database type mapping (SQLite โ†” PostgreSQL)guidelines/database-design/data-types.md
primary-keysINTEGER PRIMARY KEY, AUTOINCREMENT tradeoffs, UUID strategies (v4 vs v7, TEXT vs BLOB), WITHOUT ROWIDguidelines/database-design/primary-keys.md
foreign-keysPRAGMA foreign_keys = ON, ON DELETE/UPDATE actions, deferred constraints, FK column indexingguidelines/database-design/foreign-keys.md
constraints-and-validationCHECK constraints, enum-like constraints, boolean enforcement, range/pattern validation, NULL truthinessguidelines/database-design/constraints-and-validation.md
relationshipsOne-to-many, many-to-many join tables, polymorphic FK patterns, self-referential, tree hierarchiesguidelines/database-design/relationships.md
normalization-and-denormalization3NF starting point, selective denormalization for measured hotspots, sync impact of denormalizationguidelines/database-design/normalization-and-denormalization.md
json-columnsJSON in TEXT columns, extraction operators, generated columns for B-tree indexing, when JSON is a schema smellguidelines/database-design/json-columns.md
schema-evolutionMigration strategies (user_version pragma), ALTER TABLE limitations, backwards-compatible and sync-compatible migrationsguidelines/database-design/schema-evolution.md
PERFORMANCE (4)
indexingB-tree fundamentals, partial/expression indexes, composite ordering, covering indexes, EXPLAIN QUERY PLANguidelines/database-design/indexing.md
query-optimizationSQLite query planner, rewriting slow queries, avoiding full table scans, JSON query performance, CTEs vs subqueriesguidelines/database-design/query-optimization.md
transactions-and-concurrencyWAL mode, BEGIN IMMEDIATE vs DEFERRED, single writer + multiple readers, busy_timeout, PRAGMA tuningguidelines/database-design/transactions-and-concurrency.md
access-pattern-analysisQuery pattern analysis, read/write tradeoffs, WHERE/JOIN/ORDER BY design, batch sizing for syncguidelines/database-design/access-pattern-analysis.md
OPERATIONS (2)
backup-and-recoverySQLite backup API, Litestream WAL streaming, corruption detection, VACUUM strategy, tombstone purgingguidelines/database-design/backup-and-recovery.md
testingIn-memory vs file-based tests, migration testing, sync logic testing, conflict resolution testingguidelines/database-design/testing.md
SYNC (7)
sync-schema-designDual schema (SQLite + PostgreSQL), UUID PKs for offline creation, soft deletes, dirty tracking, sync metadataguidelines/database-design/sync-schema-design.md
conflict-resolutionLast-Write-Wins, field-level merge, CRDTs, conflict queues, choosing strategy per data typeguidelines/database-design/conflict-resolution.md
sync-protocolPush/pull/bidirectional sync, incremental delta sync, change tracking, UPSERT idempotency, outbox patternguidelines/database-design/sync-protocol.md
clock-systemsPhysical clocks, Lamport timestamps, vector clocks, Hybrid Logical Clocks, server-assigned monotonic versionsguidelines/database-design/clock-systems.md
offline-first-architectureWAL as offline foundation, operation queue pattern, optimistic UI, rollback on rejection, connectivity-aware syncguidelines/database-design/offline-first-architecture.md
sync-engine-designOrchestrator layers, Syncable interface, sync cycle, scheduling, snapshot rebuilding, circuit breakersguidelines/database-design/sync-engine-design.md
sync-toolingSQLite Session Extension, cr-sqlite, Litestream, ElectricSQL, PowerSync, Turso/libSQL, sqlite-sync evaluationguidelines/database-design/sync-tooling.md
CONSULTING TEAMS (3)
cross-database-compatibilityVerifies every schema decision works on both SQLite and PostgreSQL โ€” type mappings, PK strategies, constraintsconsulting gate
sync-impactCatches non-sync team decisions that would break sync, create merge conflicts, or hinder offline operationconsulting gate
access-pattern-coherenceEnsures structural decisions serve actual query patterns โ€” catches schemas that look correct but perform poorlyconsulting gate
platform-ios-apple (12) platform
TeamDescriptionCookbook Source
background-tasksUse `BGAppRefreshTask` and `BGProcessingTask` via BackgroundTasks framework for deferred work; use `URLSession` backgrouguidelines/platform/background-tasks.md
deep-linkingUniversal Links for HTTP-based deep links with associated domain entitlement; custom URL schemes as fallback; `onOpenURLguidelines/platform/deep-linking.md
dynamic-typeLayouts must not break at larger text sizes; use Dynamic Type throughout with no fixed font sizes; custom fonts must resguidelines/language/swift/dynamic-type.md
handoff-and-continuityUse `NSUserActivity` to advertise current activity with `isEligibleForHandoff = true`; populate `userInfo` with minimal guidelines/platform/handoff-and-continuity.md
native-controlsUse platform built-in frameworks before custom implementations; Swift Concurrency over raw threads; SwiftData/Core Data principles/native-controls.md
notificationsUse `UNUserNotificationCenter` for local and push notifications; permission requested at moment of relevance, not at lauguidelines/platform/notifications.md
platform-compliance7 compliance checks โ€” platform-design-language (HIG), native-controls-preference, platform-touch-targets (44pt minimum),compliance/platform-compliance.md
prefer-explicit-apple-apisUse UIKit for all iOS UI (UICollectionViewCompositionalLayout, UINavigationController, UITextView, gesture recognizers);guidelines/language/swift/prefer-explicit-apple-apis.md
search-integrationUse Core Spotlight (`CSSearchableItem`, `CSSearchableItemAttributeSet`) to index content; on iOS 17+ use `IndexedEntity`guidelines/platform/search-integration.md
share-and-inter-app-dataUse `UIActivityViewController` (iOS) or `NSSharingServicePicker` (macOS) to share content; create Share Extensions to reguidelines/platform/share-and-inter-app-data.md
shortcuts-and-automationUse `AppIntents` framework for Shortcuts and Siri integration on iOS and macOS; on macOS support AppleScript via `NSScriguidelines/platform/shortcuts-and-automation.md
widgets-and-glanceable-surfacesUse WidgetKit with SwiftUI views (one of the mandated SwiftUI surfaces); support small, medium, and large families; on iguidelines/platform/widgets-and-glanceable-surfaces.md
platform-web-backend (24) platform
TeamDescriptionCookbook Source
access-patterns-compliance8 compliance checks โ€” api-design-conventions, offline-behavior, retry-with-backoff, timeout-configuration, rate-limit-hacompliance/access-patterns.md
api-designREST conventions โ€” lowercase-hyphenated plural-noun URLs, max 2-level nesting, no verbs in URLs, correct HTTP methods wiguidelines/networking/api-design.md
cachingServer sets correct Cache-Control โ€” immutable for versioned assets, `private, max-age=N` for dynamic, `no-store` for senguidelines/networking/caching.md
content-security-policyServer sets CSP header on all HTML responses; `default-src 'none'` baseline; nonce-based `script-src` with `strict-dynamguidelines/security/content-security-policy.md
corsExplicit static allowlist of origins, never reflect Origin, no wildcard with credentials, `Access-Control-Max-Age: 86400guidelines/security/cors.md
error-responsesRFC 9457 Problem Details format with `Content-Type: application/problem+json`; machine-readable `type` URI, stable `titlguidelines/networking/error-responses.md
offline-and-connectivityServer supports ETag/version numbers for conflict detection (409 with both versions); delta sync via `last_synced_at`; oguidelines/networking/offline-and-connectivity.md
paginationCursor pagination by default (`next_cursor`, `has_more`) for most APIs; offset (`offset`, `limit`, `total`) only when paguidelines/networking/pagination.md
python-dashboard-display-onlyDashboard service is a generic display layer โ€” no git, file, or roadmap-structure knowledge; agents push data to it; it guidelines/language/python/dashboard-service-is-display-only.md
python-databaseSQLite with WAL mode (`PRAGMA journal_mode=WAL`), `sqlite3` standard library (no ORM), direct SQL queriesguidelines/language/python/database.md
python-deterministic-idsIDs taken from YAML frontmatter UUID, never `uuid.uuid4()` or random generation; IDs must be reproducible across runsguidelines/language/python/deterministic-ids.md
python-file-paths`pathlib.Path` for all path operations, never `os.path` string concatenation; `Path.home()` for home-relative pathsguidelines/language/python/file-paths.md
python-no-external-depsCore library (`roadmap_lib`) uses standard library only โ€” no PyYAML, requests, or other third-party packages; keeps librguidelines/language/python/no-external-dependencies-in-core-librari.md
python-shell-scripts`main()` functions delegate to named functions โ€” no inline logic in main; composable and testable structureguidelines/language/python/shell-scripts.md
python-type-hintsType hints welcome but not required; Python 3.9 compatibility โ€” use `from __future__ import annotations` or `typing` modguidelines/language/python/type-hints.md
python-use-roadmaplibUse `roadmap_lib` functions for all roadmap operations (reading state, parsing frontmatter, finding steps); never reimplguidelines/language/python/use-roadmaplib.md
python-web-servicesFlask for web services; REST API with SSE or polling for live updates; no other web frameworksguidelines/language/python/web-services.md
python-yaml-frontmatterUse `roadmap_lib`'s built-in frontmatter parser for `---` delimited frontmatter; no PyYAML dependencyguidelines/language/python/yaml-frontmatter.md
rate-limitingEmit `Retry-After` header on 429 responses; expose `RateLimit-Remaining`/`RateLimit-Reset` headers proactively; apply peguidelines/networking/rate-limiting.md
real-time-communicationSSE endpoints for server-push (notifications, live feeds, progress); WebSocket only for bidirectional streaming; SSE useguidelines/networking/real-time-communication.md
reliability-compliance8 compliance checks โ€” error-recovery (retry transient failures), graceful-degradation (handle unavailable dependencies),compliance/reliability.md
retry-and-resilienceIdempotent endpoints (GET, PUT, DELETE) safe to retry; POST endpoints idempotency keys where needed; server-side circuitguidelines/networking/retry-and-resilience.md
security-compliance12 compliance checks โ€” secure-authentication (OAuth/PKCE), server-side-authorization, secure-storage, input-sanitizationcompliance/security.md
timeoutsAll outbound HTTP calls have connection timeout (10s), read timeout (30s), total lifecycle timeout (60-120s); long-runniguidelines/networking/timeouts.md
platform-web-frontend (27) platform
TeamDescriptionCookbook Source
accessibilityWCAG 2.1 AA minimum; ARIA roles, states, properties (WAI-ARIA APG); keyboard navigation for all interactive elements; `aguidelines/accessibility/accessibility.md
always-show-progressImplement determinate progress bars (with percentage) and indeterminate spinners/skeletons/shimmer in the DOM; prevent Uguidelines/ui/always-show-progress.md
animation-motionCSS transitions and JS animations use correct duration ranges per interaction type; `prefers-reduced-motion: reduce` medguidelines/ui/animation-motion.md
api-design-clientClient calls match REST conventions โ€” correct HTTP methods, no verb-in-URL, proper status code handling (201 for create,guidelines/networking/api-design.md
cachingImmutable versioned assets use `Cache-Control: public, max-age=31536000, immutable`; sensitive data uses `no-store`; ETaguidelines/networking/caching.md
colorCSS custom properties (not hard-coded hex), semantic color tokens per design system, WCAG AA contrast ratios, `prefers-cguidelines/ui/color.md
content-security-policyImplement `default-src 'none'` baseline, nonce-based script-src with strict-dynamic, no `unsafe-inline`/`unsafe-eval`, `guidelines/security/content-security-policy.md
corsNever reflect Origin header; static allowlist of permitted origins; no wildcard with credentials; `Access-Control-Max-Agguidelines/security/cors.md
data-displayImplement correct HTML patterns โ€” `<ul>/<li>` for lists, `<table>` with sortable columns for tabular data, card grid forguidelines/ui/data-display.md
error-responses-clientParse RFC 9457 Problem Details (`application/problem+json`); display `detail` field to user; surface `errors[]` field foguidelines/networking/error-responses.md
feedback-patternsImplement toast/snackbar (auto-dismiss 3-5s), inline alerts/banners, and modal dialogs; connect feedback weight to actioguidelines/ui/feedback-patterns.md
form-designSingle-column layout, `<label>` top-aligned or floating, blur-event validation (not input-event), submit-event full valiguidelines/ui/form-design.md
iconographyUse SVG icons with accessible names (`aria-label` or `<title>`), consistent size/weight classes, minimum 24x24px interacguidelines/ui/iconography.md
layoutCSS Grid/Flexbox with responsive breakpoints via media queries (no hard-coded widths); single-column default expanding tguidelines/ui/layout.md
offline-and-connectivityOptimistic updates for most cases; outbox queue for mutations during offline; clear connectivity status indicator; no siguidelines/networking/offline-and-connectivity.md
pagination-clientClient handles cursor-based pagination (`next_cursor`, `has_more`) and offset-based; infinite scroll or "Load more" for guidelines/networking/pagination.md
platform-complianceWeb platform: WCAG 2.1 AA design language, native browser controls preferred, WCAG touch targets, dark mode and forced-ccompliance/platform-compliance.md
platform-design-languagesWeb target follows WCAG 2.1 and browser/OS design conventions; use platform-appropriate system font stack; fill gaps witguidelines/ui/platform-design-languages.md
rate-limiting-clientHonor `Retry-After` header on 429; track `RateLimit-Remaining` and throttle proactively; queue/batch requests at allowedguidelines/networking/rate-limiting.md
real-time-communicationPrefer SSE (`EventSource`) for server-push (notifications, live feeds, progress); WebSocket only for bidirectional streaguidelines/networking/real-time-communication.md
retry-and-resilience-clientExponential backoff with full jitter for transient failures (408, 429, 500, 502, 503, 504); max 3-5 retries for idempoteguidelines/networking/retry-and-resilience.md
spacingCSS custom properties or design tokens for spacing on 4px scale (4/8/12/16/24/32/48/64); no arbitrary values in margin/pguidelines/ui/spacing.md
state-designImplement all four states in component templates โ€” loading (skeleton/spinner), empty (illustration + message + CTA buttoguidelines/ui/state-design.md
timeouts-clientAll fetch/XHR calls have connection timeout (10s), response timeout (30s), total lifecycle timeout (60-120s); no infinitguidelines/networking/timeouts.md
touch-click-targetsWeb minimum 24x24 CSS px (target 44x44), pad hit area beyond visual element via padding, โ‰ฅ8px gap between adjacent targeguidelines/ui/touch-click-targets.md
typographySystem font stack, body 16px default, minimum 11-12px captions, line-height 1.4-1.5x, 2-3 weights per screen, paragraph guidelines/ui/typography.md
visual-hierarchySingle primary CTA per screen with `type="submit"` or strong visual weight; heading hierarchy via `<h1>`โ€“`<h6>` and fontguidelines/ui/visual-hierarchy.md
platform-windows (18) platform
TeamDescriptionCookbook Source
background-tasksUse `BackgroundTask` with Windows App SDK for background execution; register triggers (time, network state change, push guidelines/platform/background-tasks.md
csharp-namingPascalCase for types, methods, properties, public fields, constants, namespaces; camelCase for parameters and local variguidelines/language/csharp/naming.md
deep-linkingProtocol activation via `<uap:Protocol>` declaration in `Package.appxmanifest`; handle activation through `AppInstance.Gguidelines/platform/deep-linking.md
dependency-injectionConstructor injection via `Microsoft.Extensions.DependencyInjection`; use interface types for dependencies (not concreteguidelines/language/csharp/dependency-injection.md
design-time-dataUse `d:DataContext` and `d:DesignInstance` for XAML designer preview data; use XAML Hot Reload for live iteration duringguidelines/platform/windows/design-time-data.md
fluent-designUse built-in WinUI 3 controls โ€” they implement Fluent 2 natively; never custom-draw what a standard control can do; use guidelines/platform/windows/fluent-design.md
handoff-and-continuity-windowsWindows does not have a native Handoff equivalent โ€” use deep links as universal handoff payload; protocol activation URIguidelines/platform/handoff-and-continuity.md
high-dpi-display-scalingXAML layout uses effective pixels (epx) โ€” scaling is automatic for XAML content; provide bitmap assets at multiple scaleguidelines/platform/windows/high-dpi-display-scaling.md
msix-packagingUse single-project MSIX packaging model; declare capabilities minimally in `Package.appxmanifest`; sign packages with a guidelines/platform/windows/msix-packaging.md
native-controlsUse platform built-in frameworks before custom implementations; WinUI 3 controls over custom-drawn equivalents; Windows principles/native-controls.md
notifications-windowsUse `AppNotificationManager` + `AppNotificationBuilder` fluent API for local notifications; support text, images, buttonguidelines/platform/notifications.md
nullable-reference-typesEnable `<Nullable>enable</Nullable>` in all projects; treat warnings as design signals โ€” `string` means non-null, `stringuidelines/language/csharp/nullable-reference-types.md
platform-compliance7 compliance checks โ€” platform-design-language (Fluent Design), native-controls-preference (WinUI 3 controls), platform-compliance/platform-compliance.md
search-integration-windowsUse Windows Search indexer with `ISearchManager` and property handlers; register file type associations and protocol hanguidelines/platform/search-integration.md
share-and-inter-app-data-windowsImplement Share Contract (`DataTransferManager`) to send and receive content; register as share target in app manifest; guidelines/platform/share-and-inter-app-data.md
shortcuts-and-automation-windowsProtocol activation for automation entry points; command-line activation via `AppInstance` APIs; WinUI 3 has limited scrguidelines/platform/shortcuts-and-automation.md
themingWinUI 3 tri-state theming โ€” Light, Dark, High Contrast; set app-level theme via `Application.RequestedTheme`; always useguidelines/platform/windows/theming.md
windows-architectureMVVM with CommunityToolkit.Mvvm โ€” source-generated `ObservableObject`, `RelayCommand`, and messaging; NavigationView + Fguidelines/platform/windows/architecture.md
project-management (6) pm
TeamDescriptionCookbook Source
concernsRisk identification, attention flagging, and monitoring of items needing review.dev-team-project/concerns/
decisionsDecision recording with rationale, alternatives, and traceability.dev-team-project/decisions/
dependenciesInternal and external dependency mapping, availability tracking, and risk assessment.dev-team-project/dependencies/
issuesProblem identification, severity assessment, triage, and resolution tracking.dev-team-project/issues/
scheduleMilestone definition, sequencing, target dates, dependency chains, and status tracking.dev-team-project/schedule/
todosTask breakdown, assignment, prioritization, and milestone linkage.dev-team-project/todos/
reliability (3) domain
TeamDescriptionCookbook Source
fail-fastInvalid state detected and surfaced immediately at the point of origin; assertions and preconditions in debug builds; inprinciples/fail-fast.md
idempotencyUser actions and system operations safe to repeat without duplicate side effects; buttons debounced or disabled during aprinciples/idempotency.md
reliability-compliance8 compliance checks โ€” error-recovery, graceful-degradation, fault-tolerance, state-recovery, idempotent-operations, timecompliance/reliability.md
security (15) domain
TeamDescriptionCookbook Source
authenticationOAuth 2.0/OIDC with PKCE for public clients, system browser for native apps, no implicit flow, SSO and multi-client straguidelines/security/authentication.md
authorizationDeny by default, server-side enforcement only, least privilege scopes, RBAC, BOLA/IDOR prevention via resource ownershipguidelines/security/authorization.md
content-security-policydefault-src 'none' baseline, nonce-based script-src with strict-dynamic, never unsafe-inline or unsafe-eval, frame-ancesguidelines/security/content-security-policy.md
corsExplicit origin allowlist (never reflect Origin), no wildcard with credentials, Access-Control-Max-Age, anchored regex fguidelines/security/cors.md
dependency-securityLockfiles committed, CI audit step (npm audit/pip-audit/Dependabot) failing on critical/high, pinned versions (no wildcaguidelines/security/dependency-security.md
input-validationAll validation duplicated server-side, allowlists over denylists, validate-sanitize-escape order, parameterized queries guidelines/security/input-validation.md
privacy-and-data-compliance7 compliance checks โ€” data-minimization, consent-before-collection, secure-data-storage, no-pii-in-logs, data-retention-compliance/privacy-and-data.md
privacyCollect only what's needed, prefer on-device processing, opt-in consent for non-essential collection, app functional on guidelines/security/privacy.md
secure-storagePlatform secure storage for all tokens/credentials/sensitive data โ€” Keychain (Swift), EncryptedSharedPreferences (Kotlinguidelines/security/secure-storage.md
security-compliance7 compliance checks โ€” secure-authentication, server-side-authorization, secure-storage, input-sanitization, secure-transcompliance/security.md
security-headers-checklistAll 7 required headers on every web response โ€” Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Optionguidelines/security/security-headers-checklist.md
sensitive-dataData minimization with explicit DTOs (not raw DB models), PII classification tiers, field-level encryption for SSN/paymeguidelines/security/sensitive-data.md
token-handlingAccess token lifetime 5-15min, no PII in JWT claims, refresh token rotation, platform-appropriate secure storageguidelines/security/token-handling.md
transport-securityTLS 1.2 minimum (prefer 1.3), disable TLS 1.0/1.1, HSTS with max-age=31536000 includeSubDomains preload, certificate pinguidelines/security/transport-security.md
user-safety-compliance6 compliance checks โ€” content-moderation, age-appropriate-content, abuse-prevention, harmful-content-filtering, reportincompliance/user-safety.md
software-architecture (8) domain
TeamDescriptionCookbook Source
composition-over-inheritanceDefault to composing behaviors from small, focused pieces; use inheritance only for genuine "is-a" relationships and eveprinciples/composition-over-inheritance.md
concurrency-immutabilityDefault to immutable values; introduce mutability only where necessary; prefer value types over reference types; containguidelines/concurrency/immutability.md
concurrencyAll lengthy work on background threads using platform async primitives (Swift Concurrency, Kotlin Coroutines, Promise/asguidelines/concurrency/concurrency.md
dependency-injectionComponents receive dependencies from outside, not constructed internally; pass services via constructor/initializer paraprinciples/dependency-injection.md
manage-complexity-through-boundariesDefine ports (interfaces) describing what the application needs; use adapters to translate between external technologiesprinciples/manage-complexity-through-boundaries.md
open-source-preferenceWhen no native solution exists, research battle-tested open-source libraries and present options before building custom;principles/open-source-preference.md
optimize-for-changeEvery architectural decision evaluated by whether it makes future change easier or harder; all other principles (composiprinciples/meta-principle-optimize-for-change.md
separation-of-concernsEach module has one reason to change; if describing what a module does requires "and," consider splitting; applies at evprinciples/separation-of-concerns.md
testing-qa (12) domain
TeamDescriptionCookbook Source
flaky-test-preventionNo shared mutable state between tests, no execution-order dependencies, no real network calls in unit tests, no sleep() guidelines/testing/flaky-test-prevention.md
mutation-testingRun mutation testing before claiming tests are complete; platform tools: mutmut (Python), Stryker (TypeScript/JS/.NET), guidelines/testing/mutation-testing.md
post-generation-verificationEvery generated artifact must pass 6 steps โ€” build (all platforms), test (full suite), lint (platform linter), log verifguidelines/testing/post-generation-verification.md
properties-of-good-testsTests should be isolated, composable, deterministic, fast, writable, readable, behavioral (test what not how), structureguidelines/testing/properties-of-good-tests.md
property-based-testingUse for parsers, serializers, data transformers, encoders/decoders, validators โ€” anything where "for all valid inputs X,guidelines/testing/property-based-testing.md
security-testingRun SAST (Semgrep all languages, Bandit for Python, CodeQL for deep analysis), dependency scanning (pip-audit, npm auditguidelines/testing/security-testing.md
test-dataConstruct test data per test; avoid large shared fixture files; use builder pattern or factory functions for complex objguidelines/testing/test-data.md
test-doublesUse Martin Fowler's taxonomy (Dummy/Stub/Spy/Mock/Fake); prefer fakes over mocks โ€” fakes exercise real behavior; never mguidelines/testing/test-doubles.md
test-pyramid80% unit / 15% integration / 5% E2E; unit tests are fast and isolated; integration tests use real databases/filesystems/guidelines/testing/test-pyramid.md
testingEvery change needs tests, every bug fix needs a regression test; prioritize unit tests over integration; test state tranguidelines/testing/testing.md
the-testing-workflowComplete closed-loop workflow โ€” write implementation, write unit tests (with property-based for data transforms), run teguidelines/testing/the-testing-workflow.md
unit-test-patternsAAA structure (Arrange/Act/Assert), one assertion concept per test, no logic in tests (no if/for/try-catch), test the puguidelines/testing/unit-test-patterns.md
ui-ux-design (17) domain
TeamDescriptionCookbook Source
always-show-progressDeterminate progress (bar with percentage) when total work is known; indeterminate (spinner, skeleton, shimmer) when notguidelines/ui/always-show-progress.md
animation-motionPurposeful motion only โ€” guide attention, show spatial relationships, provide feedback; duration defaults by interactionguidelines/ui/animation-motion.md
colorSemantic color tokens (not hard-coded hex), limited palette (1 primary + neutrals + semantic), color never the sole statguidelines/ui/color.md
data-displayRight pattern for content type โ€” list for sequential/scannable, table for comparable multi-attribute, cards for heterogeguidelines/ui/data-display.md
feedback-patternsFeedback weight matches action weight โ€” inline for fields, toast for non-critical confirmations (3-5s auto-dismiss), banguidelines/ui/feedback-patterns.md
form-designSingle-column layout, top-aligned/floating labels, validate on blur (not keystroke), full-form validation on submit, inlguidelines/ui/form-design.md
iconographyPlatform-native icon set first (SF Symbols, Material Symbols, Segoe Fluent Icons), all action icons have text label or aguidelines/ui/iconography.md
layoutSingle-column by default, content-first decisions, consistent alignment, responsive breakpoints via platform adaptive syguidelines/ui/layout.md
least-astonishmentUI behavior matches user expectations โ€” names deliver the behavior they imply, side effects are obvious, no surprising oprinciples/principle-of-least-astonishment.md
platform-compliancePlatform design language followed (HIG/Material/Fluent), native controls preferred, platform touch targets met, platformcompliance/platform-compliance.md
platform-design-languagesDefer to platform HIG (Apple HIG, Material 3, Fluent 2, WCAG 2.1) before applying defaults; use platform-prescribed valuguidelines/ui/platform-design-languages.md
previewsAll UI components include preview declarations covering all significant states (default, loading, error, empty, populateguidelines/ui/previews.md
spacing4px base unit (8px primary grid), all spacing on scale 4/8/12/16/24/32/48/64, no arbitrary values (5px, 13px, 37px)guidelines/ui/spacing.md
state-designAll four states explicit โ€” loading (skeleton for content-heavy, spinner for actions), empty (icon + message + CTA), erroguidelines/ui/state-design.md
touch-click-targetsPlatform minimums โ€” iOS 44x44pt, Android 48x48dp, Windows 32x32epx (40 recommended), Web 24x24px (44 recommended); visuaguidelines/ui/touch-click-targets.md
typographyPlatform system font (SF Pro, Roboto, Segoe UI Variable, system-ui), body 14-17pt (16px default), minimum 11-12pt for caguidelines/ui/typography.md
visual-hierarchyOne primary action/focal point per screen, size and weight (not just color) for heading levels, proximity for grouping, guidelines/ui/visual-hierarchy.md
File Format spec

Each file lives at specialty-teams/<category>/<name>.md with YAML frontmatter and two sections:

--- name: authentication description: OAuth 2.0/OIDC with PKCE, SSO, multi-client strategies artifact: guidelines/security/authentication.md version: 1.0.0 --- ## Worker Focus OAuth 2.0/OIDC with PKCE for public clients, system browser for native apps, no implicit flow, SSO strategies ## Verify No implicit flow; PKCE code_challenge present; system browser on native; no client_secret in public clients

artifact โ€” the cookbook guideline, principle, or compliance check this team analyzes. Worker Focus โ€” what matters (mode-independent). Verify โ€” concrete acceptance criteria for the verifier.

How Specialists Reference Teams manifest

Each specialist has a ## Manifest section listing its teams by file path:

## Manifest - specialty-teams/security/authentication.md - specialty-teams/security/authorization.md - specialty-teams/security/token-handling.md - specialty-teams/security/transport-security.md ...

The script run-specialty-teams.sh reads the manifest and outputs JSON for each team (name, artifact, worker_focus, verify). Workers and verifiers consume this JSON โ€” they never read the specialty-team files directly.

05bConsulting-Teams

Cross-cutting verification gates. Some specialists have consulting-teams that review every specialty-team's output for interdependent concerns that no single team owns.

Specialty-Team Outputverified findingsfeeds intoConsulting Workerreviews through cross-cutting lensaccumulated context from all teamsConsulting VerifierPASS or FAILVERIFIEDconcern applies and findings are soundNOT-APPLICABLEconcern does not apply to this team's scopeAccumulated ContextEach consulting worker sees the output of ALL specialty-teams that ran before it.This enables detection of cross-team conflicts, missing integrations,and interdependent concerns that no single specialty-team can see alone.
When Consulting-Teams Are Used verification

Most specialists do not need consulting-teams. They are designed for specialists whose domains have deeply interdependent concerns โ€” where the output of one specialty-team can contradict or invalidate another's findings.

Example: The database specialist has consulting-teams because schema design, query optimization, migration strategy, and indexing are tightly coupled. A schema change that satisfies normalization principles might break the performance team's indexing recommendations. A consulting-team catches these conflicts.

Two verdicts: VERIFIED means the cross-cutting concern applies and the specialty-team's findings hold up under scrutiny. NOT-APPLICABLE means the concern does not apply to this particular team's scope โ€” this is a valid outcome, not a failure.

Verifier independence: Just like specialty-teams, consulting workers and verifiers never see each other's instructions. The verifier checks the worker's assessment independently.

06Agents

20 agent definitions in agents/. Each is a markdown file with instructions for a specific role.

All Agents (20) agents
AgentPurpose
specialty-team-workerReads one cookbook guideline or principle, produces structured findings
specialty-team-verifierChecks worker output for completeness, returns PASS/FAIL
consulting-team-workerReviews specialty-team output through a cross-cutting lens, produces VERIFIED or NOT-APPLICABLE
consulting-team-verifierChecks consulting worker assessment for completeness, returns PASS/FAIL
transcript-analyzerAnalyzes interview transcripts for coverage and gaps
specialist-analystAnalyzes user answers from a specialist perspective
code-generatorGenerates source code from cookbook recipes
recipe-writerCreates cookbook recipes from analyzed code
recipe-reviewerReviews recipes against cookbook standards
project-scaffolderCreates project directory structure
project-assemblerAssembles cookbook project from components
scope-matcherMatches code components to cookbook scopes
codebase-scannerScans and analyzes existing codebases
build-runnerRuns builds and reports results
smoke-testerRuns smoke tests on generated code
code-comparatorCompares two code projects for differences
artifact-reviewerReviews files against cookbook standards
specialist-alignerChecks specialist-cookbook alignment
specialist-code-passSequential specialist augmentation of code (v1, marked for absorption)
specialist-interviewerSpecialist-perspective interview questions (v1, marked for absorption)

07Arbitrator

Abstracted communication conduit between all participants. The arbitrator handles ALL data exchange โ€” participants never know how storage works.

API Overview communication

Single entry point: scripts/arbitrator.sh <resource> <action> [--flags]

Backend-swappable via ARBITRATOR_BACKEND env var (default: markdown). All commands output JSON to stdout, errors to stderr, exit 0/1. IDs are opaque strings.

ResourceActionsPurpose
sessioncreate, get, list, add-pathWorkflow run lifecycle
stateappend, current, listAppend-only state transitions
messagesend, list, getTeam-lead โ†” user interaction
gate-optionaddChoices for gate messages
resultcreate, get, listSpecialist output bundles
findingcreate, list, get, link-artifactIndividual issues within results
interpretationcreate, listPersona translations of findings
artifactcreate, list, link-stateCookbook artifacts referenced
referencecreate, listCookbook sources consulted
retrycreate, listRetry reasons
reportoverview, specialist, finding, traceProgressive disclosure queries
Markdown Backend storage

Stores JSON files in ~/.agentic-cookbook/dev-team/sessions/<session-id>/

<session-id>/ session.json paths.jsonl state/          # append-only transitions messages/       # chronological gate-options/   # per-message choices results/ <specialist>/ result.json findings/ interpretations/ references/ artifacts/ retries/

72 contract tests validate the API regardless of backend.

08Project Storage

Abstract CRUD API for dev-team-project data. A dev-team-project tracks project management concerns โ€” schedules, tasks, issues โ€” not code specifications.

API Overview storage

Single entry point: scripts/project-storage.sh <resource> <action> [--flags]

Backend-swappable via PROJECT_STORAGE_BACKEND env var (default: markdown). Full CRUD: create, get, list (with filters), update, delete.

ResourceActionsPurpose
projectinit, status, link-cookbook, unlink-cookbookProject lifecycle
milestonecreate, get, list, update, deleteSchedule targets
todocreate, get, list, update, deleteTasks with assignment and priority
issuecreate, get, list, update, deleteProblems, blockers, risks
concerncreate, get, list, update, deleteItems needing attention
dependencycreate, get, list, update, deleteInternal and external dependencies
decisioncreate, get, list, update, deleteChoices with rationale
Markdown Backend storage

Items stored as markdown files with YAML frontmatter in .dev-team-project/

.dev-team-project/ manifest.json schedule/       # milestone-NNNN-<slug>.md todos/          # todo-NNNN-<slug>.md issues/         # issue-NNNN-<slug>.md concerns/       # concern-NNNN-<slug>.md dependencies/   # dependency-NNNN-<slug>.md decisions/      # decision-NNNN-<slug>.md

64 contract tests validate the API regardless of backend.

09Observers

System-level observation of subagent activity via Claude Code hooks. Zero changes to agents or orchestration โ€” observers capture process narrative deterministically.

SubagentStophook fires on completiondispatch.pyreads transcript JSONLextracts normalized eventstenographersession.log JSONLoslogsystem log via logger CLIyour-observer.pyauto-discoveredno LLM involved โ€” deterministic extractioneach observer writes independently โ€” one failure doesn't block others
Architecture system

The observer system uses a SubagentStop hook configured in .claude/settings.json. When any subagent completes, dispatch.py reads the agent transcript JSONL, extracts a normalized event (tools used, duration, status, summary), and dispatches to all auto-discovered observer modules in scripts/observers/.

Zero agent changes โ€” observers are invisible to participants. The pipeline doesn't know it's being observed.

Deterministic โ€” no LLM involved. Pure data extraction from transcript JSONL.

Extensible โ€” drop a .py file with def observe(event: dict) into scripts/observers/. Auto-discovered at dispatch time.

Built-in Observers (2) observers
ObserverOutputPurpose
stenographersession.log (JSONL)Structured session log โ€” timestamp, agent type, description, status, duration, tools used, call count, summary
oslogsystem logReal-time one-liners via POSIX logger CLI โ€” visible in Console.app or log stream
Normalized Event schema

Every observer receives the same event dict:

{ "timestamp": "2026-04-06T...", "session_id": "abc123", "agent_id": "a1b2c3d4", "agent_type": "general-purpose", "agent_description": "Create schema files", "status": "completed", "duration_ms": 45200, "tools_used": ["Read", "Write", "Glob"], "tool_call_count": 12, "summary": "Created 9 specialty team files..." }

10Data Flow

Two abstraction layers handle all data exchange. Neither reveals its storage implementation to callers.

Communication (Arbitrator) user โ†” team-lead (messages, gates, verdicts, notifications)team-lead โ†” specialist (assignments, results, state transitions)specialist โ†” specialty-team (findings, verifications, retries)Project Management (Project-Storage-Provider)project-manager โ†” project-storage-provider โ†” .dev-team-project/
Design Principles architecture

Arbitrator is communication only. It carries messages between participants. Domain-specific data goes through its own specialist and storage provider.

Backends are swappable. Both the arbitrator and project-storage-provider use a dispatcher + backend pattern. The markdown backend is first; database backend comes later.

Reports are queries, not stored types. Progressive disclosure: overview โ†’ specialist โ†’ finding detail โ†’ process trace. Designed for LLM consumption.

Shell scripts for deterministic work. Orchestration, file management, and data operations are shell scripts. LLM agents handle judgment tasks only.

11Configuration

Minimal config. Created on first run of /dev-team interview.

~/.agentic-cookbook/dev-team/config.json { "workspace_repo": "<path to workspace repo>", "cookbook_repo": "<path to agentic-cookbook>", "user_name": "<user name>", "authorized_repos": [] }

12File Map

Repository structure at a glance.

.claude-plugin/              Plugin manifest agents/                      20 agent definitions specialists/                 20 specialists (13 domain + 6 platform + 1 PM) specialty-teams/             231 specialty-team files in 20 categories consulting-teams/            Consulting-team files (cross-cutting verification) skills/ dev-team/ SKILL.md                 Router (v0.6.0) workflows/               One workflow file per subcommand scripts/ arbitrator.sh              Communication conduit dispatcher arbitrator/markdown/       12 resource scripts project-storage.sh         Project management storage dispatcher project-storage/markdown/  8 scripts db/                        Database shell script API run-specialty-teams.sh     Parses specialist manifests to JSON observers/ dispatch.py              Hook entry point (SubagentStop) _lib.py                  Shared utilities stenographer.py          Session log observer (JSONL) oslog.py                 System log observer (logger CLI) services/ dashboard/                 Live workflow dashboard (Flask, port 9876) docs/ architecture.md            Single source of truth specialist-spec.md         Formal specialist file specification specialist-guide.md        How specialists and specialty-teams work

13Tests

Backend-agnostic contract tests validate APIs regardless of storage implementation.

SuiteTestsCoverage
tests/arbitrator/72All 11 arbitrator resources: session lifecycle, state transitions, messages, gates, results, findings, interpretations, artifacts, references, retries, reports, consulting reviews, error handling
tests/project-storage/64All 7 project-storage resources: project lifecycle, milestones, todos, issues, concerns, dependencies, decisions, CRUD, filtering, error handling
tests/specialty-teams/2330+File structure, frontmatter, content, script output, manifest integrity across 231 specialty-team files
# Run arbitrator contract tests bash tests/arbitrator/run-contract-tests.sh # Run project-storage contract tests bash tests/project-storage/run-contract-tests.sh