Notaire

Act II · How a change flows

AI Factory · Agents & skills

A crew, not a chatbot

Three roles carry authority: Owner, Foreman and Worker. Specialist agents (13 definitions) work from one catalog of 35 skills. Multi-part work is delegated to specialized sub-agents in parallel by default, each with an explicit scope and a model tier matched to the task.
The Foreman briefs specialists and reviews their evidence. The Owner holds the decisions.Swipe sideways to see the whole diagram.

One change, four lanes

Follow a single Issue from the Owner's backlog to a closed Issue. Each lane can only do what its role allows.

  1. 1Issues & prioritiesdecides what mattersOwner
  2. 2Pick & briefissue · use case · ACForeman
  3. 3Plan, then red testsOpenSpec change, tests firstWorker
  4. 4Code & open PR[#N] type(scope) · Closes #NWorker
  5. 5Light + heavy CIevery required checkCI
  6. 6Fix from red logsmerge main in, never rebaseWorker
  7. 7All checks greenexit code, not opinionCI
  8. 8Gate 4 reviewheavy CI · archive · boardForeman
  9. 9Merge Worker PRForeman merge ruleForeman
  10. 10Merge protected PRsConstitution · exception · harnessOwner
  11. 11CD · Pages · Releaseon mainCI
  12. 12Smoke & closeevidence, Issue closedForeman
The Worker never merges; the Foreman merges only on green heavy CI; the Owner alone merges Constitution, exception and harness changes. Sources: CONSTITUTION.md §10 Roles, ci.yml.

Roles and authority

RoleWhoMayMay never
OwnerThe human code owner (CODEOWNERS)Approve specs; grant exceptions; merge Constitution, sdlc-exception and harness PRs; merge any PR—
ForemanSupervising AI agentRun and validate gates, write review notes, merge Worker PRs when all required checks are green and check-heavy-ci.sh exits 0 (#1624)Implement the change it reviews; merge policy or its own harness
WorkerImplementing AI agentImplement phase by phase; answer review notesMerge, push to main, grant itself an exception

The specialist crew

cloud-foreman

Orchestrates the loop: pick, Gate 1, dispatch, PR, CI, review, merge

java-architect

Package, port/adapter and migration decisions

frontend-design

Next.js UI with the design-system tokens

testing-qa

Test design and red proof; Bruno and Playwright

security-auditor

Threat model, authz and secrets review

Cost-matched delegation

Mechanical

Renames, applying a known pattern, running a fixed script → the cheapest capable model.

Standard

Writing and fixing tests, routine bug fixes, consistency checks → the mid tier.

Critical

Architecture, ambiguous judgment, security consequences → the top tier.

Skills by SDLC stage

StageSkillsPrimary output
Strategy & discoverydelivery-maturity-roadmapanalystproduct-ownerroadmap hypothesis, Issue, Use Case, acceptance criteria
Traceabilitydevsecops-traceabilityopenspec-triageIDs, traceability ledger, impact map
Specificationopenspec-proposeproposal, delta specs, scenarios
Architecturearchitecture-decision-designhexagonal-archdesign-doc-mermaiddesign, ADR, Mermaid/C4 views
Security designsecure-threat-modelingthreat model, risk register, SR-* requirements
Test designqa-automation-strategytestingtest plan, cases, fixtures
Implementationopenspec-apply-changeprogrammingjavafrontend-designfailing tests, implementation, updated ledger
Contract & integrationapi-contract-testingapi-restOpenAPI, Bruno and contract evidence
Deliveryci-cd-quality-gatesdevopsmaven-buildstewardgate log, reports, immutable artifact
Productionoperations-observability-readinessSLOs, telemetry, runbook, smoke evidence
Completionopenspec-archive-changecomplete ledger, permanent docs, archived change

Selection rule: use the narrowest project skill for implementation details and a generic lifecycle skill for cross-cutting decisions. Skills are guidance, not a second policy layer, and cannot override the Constitution, an approved spec or a human. Each generic skill ships an evaluation manifest (evals/evals.json).

Two runtimes, one process

Cursor Cloud fleet

A Foreman with specialist sub-agents on cloud VMs drives pick → Gate 1 → TDD → preflight → PR → CI → review → merge. Coordination goes through GitHub (Issue state, board Status, labels, PR Closes/Refs), never a private queue.

Local-AI harness

A small local model with a 32K window cannot hold the whole process, and it tends to report success it has not earned. foreman.sh splits the Constitution into phases, gives each a fresh context and a short brief, checks every result with real commands, and retries with the gate output attached.

Harness phaseWhoDeterministic gate
triageworkertriage.env schema + every criterion has a proof
setupharnessbranch from fresh origin/main, OpenSpec change, in-progress label
specworkeropenspec validate --strict + validate-sdlc-plan.sh → Gate 1
testsworkertests committed, TEST_CMD must FAIL → Gate 2
implementworkerTEST_CMD green + full suite green + Closes #n
docsworkerCHANGELOG for feat/fix, plan still valid
qualityharness → workerpreflight.sh
pipelineharness → workerrun_pipeline.sh (stack + E2E + Bruno) → Gate 3
prworkerPR title, body references issue, branch pushed
ciharness → workercheck runs on the last non-[skip ci] commit settle green
reviewforemandiff review → Gate 4; findings go back via fix
mergeharnessCI + CD green, /actuator/health UP, issue closed → Gate 5

Entry points by tool

.claude/skills/ and .claude/agents/ are the only catalogs; no per-tool copy may exist. The always-loaded context (CLAUDE.md, slim AGENTS.md, the Constitution card, the workflow rule) stays under 8,000 tokens.