Skip to Content

Agents

Groundwork’s two stages are pipelines of specialist agents, each with one job and an explicit hand-off to the next. This table is generated from the agent files themselves — their frontmatter descriptions and titles — so it is the roster as it actually ships.

It is only a roster. Which agent runs when, what each one passes to the next, and why the pipeline is shaped this way are the architecture guide’s subject: see Architecture.

You do not invoke these directly. The two skills dispatch them; see The requirements stage and The design stage for what that looks like from the outside.

AgentRoleWhat it does
adr-generatorADR GeneratorArchitecture decision record specialist. Converts decisions the pipeline already recorded — resolved Q- questions in drivers.tradeoffs and deferred_to_decision ASRs from the critique report — into atomic MADR 4.0 ADR specs (ADR-). Never elicits new decisions and never invents alternatives: an entry whose rejected options cannot be recovered is skipped with a reason rather than turned into a one-option decision record. Returns a draft_adrs object.
behavioural-test-specialistBehavioural Test SpecialistBehavioural test-strategy specialist. Converts the assigned functional requirements, constraints and business rules from the orchestrator's generation_brief, plus the design set's component boundaries, into atomic test-strategy items that say how each requirement is exercised, by what means, and at what level. Returns a draft_test_strategies object.
c4-generatorC4 Diagram GeneratorC4 diagram generation specialist. Supplies the two judgments the component and interface frontmatter cannot carry — which components group into which deployable container, and who the system's external actors are. Never authors Mermaid, never allocates DIA- IDs, and writes no file: generate_c4.py projects the returned draft_diagram_model into the three C4 views deterministically. Dispatched at Stage 9.6, after the design critic's gate: pass and the ADR generator, before the formatter.
component-specialistComponent Decomposition SpecialistComponent decomposition specialist. Converts the orchestrator's generation_brief into atomic component specs (CMP-), each with a single clear responsibility, an internal/external boundary, and its required capabilities declared in prose rather than interface IDs. Returns a draft_components object with depends_on left empty for the orchestrator to back-fill.
constraint-specialistConstraints & Business-Rules SpecialistConstraints and business-rules specialist. From the orchestrator's generation_brief it produces constraints (CON-) and business rules (BR-), keeping both strictly distinct from NFRs, and declares via a transient `applies_to` field which functional/non-functional requirements each one bounds or implements, for the formatter to back-fill. Returns a draft_requirements object.
design-criticDesign CriticArchitecture quality critic. Runs a two-phase review over the merged design set — an ISO/IEC/IEEE 42010 per-artifact quality gate and an ATAM-lite check that every architecturally significant requirement is addressed with its tradeoffs and sensitivity points named. The structural gate runs later, at the formatter, once the artifacts exist on disk. Returns a critique_report.
design-formatterDesign FormatterDesign artifact formatter. Takes the critic-approved design set and writes one atomic Markdown+YAML file per component, interface, and ADR into the correct .sdlc/design subdirectory, named <ID>-<kebab-title>.md, plus the project-level assumptions.md, drivers.md, and index.yaml, runs generate_c4.py to project the component graph into diagrams/, and back-fills traces_to.adr and traces_to.diagrams on the artifacts each affects. Returns a formatter_result.
design-orchestratorDesign OrchestratorRoutes the design context object through the architecture generation pipeline. Identifies architecturally significant requirements, allocates categorical zero-padded CMP/IF/ADR IDs, dispatches to the component and interface specialists, the adr-generator, and the c4-generator, back-fills the depends_on edge, then routes through the critic and formatter. Owns the explicit hand-off data shapes passed between every stage.
fr-specialistFunctional Requirements SpecialistFunctional requirements specialist. Converts assigned needs from the orchestrator's generation_brief into atomic functional requirements written in EARS notation (choosing the correct pattern per requirement), each with a mandatory rationale, fit criterion, and Gherkin (Given/When/Then) acceptance criteria. Returns a draft_requirements object.
interface-specialistInterface Design SpecialistInterface design specialist. Converts each component's declared capabilities into atomic interface specs (IF-) at architecture altitude — provider, operations, interaction style, and error modes — and reports which components consume each contract so the orchestrator can back-fill depends_on. Returns a draft_interfaces object.
nfr-specialistNon-Functional Requirements SpecialistNon-functional requirements specialist. Walks all nine ISO/IEC 25010:2023 quality characteristics plus extensions (observability, deployability, compliance, cost) against the orchestrator's generation_brief and emits each applicable NFR as a six-part quality attribute scenario. Returns a draft_requirements object.
qa-criticQA CriticTest-strategy quality critic. Runs a two-phase review over the merged draft_test_strategies set — a per-item quality gate and an ASR-coverage check keyed to drivers.md's architecturally-significant list, the same definition validate_traceability.py's uncovered-asr rule uses. The structural gate runs later, at the formatter, once qa-strategy.md exists on disk. Returns a critique_report.
qa-formatterQA FormatterQA formatter. Takes the critic-approved test-strategy item set, the synthesised qa_context_artifact, and the qa_context interview object, and writes one atomic Markdown+YAML file per item into .sdlc/qa/strategy, plus the projected qa-strategy.md and a mandatory index.yaml, then re-runs validate_qa.py and validate_traceability.py against what it just wrote. Returns a formatter_result.
qa-orchestratorQA OrchestratorRoutes the qa context object through the test-strategy generation pipeline. Reads the approved requirement and design sets once on everyone's behalf, allocates the shared TS- ID space across the behavioural and quality-attribute specialists, dispatches both, then routes through the critic and formatter. Owns the explicit hand-off data shapes passed between every stage.
quality-attribute-test-specialistQuality-Attribute Test SpecialistQuality-attribute test-strategy specialist. Converts assigned NFRs' six-part quality-attribute scenarios from the orchestrator's generation_brief into atomic test-strategy items — the fitness functions that make each scenario's response measure testable, and the seat of the ticket's risk-based test prioritisation. Returns a draft_test_strategies object.
requirements-analystRequirements AnalystAnalyzes user requests to produce structured v2 requirements artifacts with functional, non-functional, and domain requirements through hypothesis-led conversation.
requirements-criticRequirements CriticRequirements quality critic. Runs a two-phase review over the merged draft_requirements set — an INCOSE/ISO 29148 per-requirement quality gate, an ISO 25010 NFR-coverage check, and a content-quality lint applied by inspection. The structural gate and the script-backed lint both run later, at the formatter and the skill, once the requirement files exist on disk. Returns a critique_report.
requirements-formatterRequirements FormatterRequirements formatter. Takes the critic-approved requirement set and writes one atomic Markdown+YAML file per requirement into the correct .sdlc/requirements type subdirectory, named <ID>-<kebab-title>.md, populating traces_from/traces_to, and optionally emits a machine index.yaml. Returns a formatter_result.
requirements-orchestratorRequirements OrchestratorRoutes the clarification context object through the requirements generation pipeline. Classifies elicited needs into BABOK tiers, allocates categorical zero-padded requirement IDs, and dispatches to the FR, NFR, and constraint specialists, then the critic, then the formatter. Owns the explicit hand-off data shapes passed between every stage.
Last updated on