Client Delivery › C2 spec: Solution config
C2 spec: Solution config
C2 / L2 Solution: which capabilities run, how they orchestrate, and where humans sit.
REQ-S-00, gated by default: every business-agent output faces a human gate. Clients configure where review sits and who approves, never whether gates exist; auto-filing is earned per use case through eval evidence recorded at Gate G3, and revoked by the same path.
REQ-S-00, gated by default: every business-agent output faces a human gate. Clients configure where review sits and who approves, never whether gates exist; auto-filing is earned per use case through eval evidence recorded at Gate G3, and revoked by the same path.
The ground rules and artifact-placement conventions on the C1 specification apply to every band: values enter once in the binding, everything downstream is generated, nothing is hand-edited. Columns: discovery section, binding key, the exact artifact the value materializes into, when it takes effect, and the check that verifies it.
The configuration map
| ID | Client input | Disc. | Binding key | Materializes as | Takes effect | Verified by |
|---|---|---|---|---|---|---|
| S-01 | Use-case activation | A | solution.use_cases[] | Generated client constitution activation list + per-tenant registry enablement + the north gateway tool listing (only active use cases are exposed) | On deploy | Parity test: gateway listing equals the activation list, exactly |
| S-02 | Orchestration mode per use case: serial or parallel, checkpoint positions | A, F | solution.orchestration{} | Orchestrator dispatch config client-<name>/orchestration/<use-case>.yaml | Next run | DAG lint: no cycle, every checkpoint names a gate |
| S-03 | Human review placement | F | solution.gates[] | Gate-workflow config consumed by harness gate mechanics; review-surface stages follow it | Next run | Blocking test: a transition without recorded approval fails |
| S-04 | Custom workflow composition: client sequences built from reusable agents | A, F | solution.compositions[] | Composition manifests client-<name>/workflows/*.yaml referencing registry IDs only | Next run | Composition linter: registry IDs only, no inline logic, business-blindness clean |
| S-05 | Override and exception routing | F | solution.overrides{} | Override policy config + audit routing; reasons mandatory | Immediately | An override without who and why is rejected; the audit entry test proves it |
Acceptance
- Gateway tool listing and activation list match exactly; nothing inactive is reachable.
- Every activated use case has an orchestration config and at least one gate; the blocking test passes.
- Compositions reference only registered agents; the linter is green.
- One override exercised end to end appears in the audit trail with actor and reason.