Policy-gated service request
Retrieval, threshold, approval, write confirmation
- Nodes
- 8
- Mode
- Fixture
Living styleguide
Twenty routes, 27 sections, 20 primitives and 79 tokens render from the source buyers receive.
Foundations
See every agent move
Inter carries the console. JetBrains Mono marks machine facts.
src/components/app-shell.tsx
Agent operations
See every agent move
Trace live work, inspect decisions, and hold write actions for a person.
src/components/operations-overview.tsx
Active runs
2 in motion
One repair is waiting for a manager. One vendor write needs confirmation.
Human steps that block progress
src/components/operations-overview.tsx
Repair request triage · r18
src/components/operations-overview.tsx
Writes, evidence, and review gates
Blocking tests pass
88 / 88
Human decisions open
2
Unconfirmed writes
0
src/components/workflow-browser.tsx
4 of 4 workflows
Repair request triage
WF-018 · r18
Antisocial behaviour intake
WF-012 · r9
Rent support referral
WF-009 · r14
Void property inspection
WF-006 · r7
src/components/workflow-canvas.tsx
Human review · approve
src/components/template-library.tsx
Start from an editable fixture
Retrieval, threshold, approval, write confirmation
Classifier, citations, human verdict, revision loop
Audience query, draft, consent gate, message preview
Upload, extraction, field checks, team queue
src/components/run-ledger.tsx
Six local fixtures from workflow revision r18
| Run | Status | Current step | Elapsed | Steps | Run actions | |
|---|---|---|---|---|---|---|
| RUN-4382No heating, infant in flat | Running | Review exception | 01:42 | 4 | £0.18 | |
| RUN-4381Kitchen tap leaking | Passed | Notify resident | 00:54 | 7 | £0.11 | |
| RUN-4380Hall light flickers | Waiting | Schedule vendor | 12:06 | 6 | £0.14 | |
| RUN-4379Bedroom window jammed | Passed | Notify resident | 01:18 | 7 | £0.16 | |
| RUN-4378Smoke alarm chirping | Failed | Read policy and history | 00:38 | 3 | £0.09 | |
| RUN-4377Lift door closes slowly | Waiting | Review exception | 18:44 | 4 | £0.21 |
RUN-4382
No heating, infant in flat
RUN-4381
Kitchen tap leaking
RUN-4380
Hall light flickers
RUN-4379
Bedroom window jammed
RUN-4378
Smoke alarm chirping
RUN-4377
Lift door closes slowly
src/components/execution-trace.tsx
Repair request triage · r18
Step purpose
Normalize the resident message and property record.
Evidence read
Wire options
{
"maxSteps": 3,
"timeoutMs": 8000
}Step purpose
Assign trade, urgency, and safety flags with cited evidence.
Evidence read
Wire options
{
"model": "gpt-5-mini",
"temperature": 0.1,
"maxSteps": 5,
"retry": 1
}Step purpose
Retrieve lease duties, safety policy, and earlier work orders.
Evidence read
Wire options
{
"model": "gpt-5-mini",
"temperature": 0,
"maxSteps": 8,
"retry": 2
}Step purpose
Send safety flags or estimates above £500 to a person.
Evidence read
Wire options
{
"expression": "safetyFlag || estimate > 500"
}Step purpose
Propose the repair action, vendor trade, and resident update.
This step has not read fixture evidence.
Wire options
{
"model": "gpt-5",
"temperature": 0.2,
"maxSteps": 6,
"retry": 1
}Step purpose
A duty manager checks safety, scope, and estimated spend.
Evidence read
Wire options
{
"role": "duty-manager",
"timeoutMinutes": 15
}Step purpose
Create the work order and offer two appointment windows.
This step has not read fixture evidence.
Wire options
{
"tool": "vendor.create",
"requireConfirmation": true
}Step purpose
Send the approved plan, reference, and appointment choices.
This step has not read fixture evidence.
Wire options
{
"channels": [
"email",
"sms"
]
}src/components/approval-queue.tsx
Two open fixtures
AP-284 · RUN-4382
Resident request
Safety flag and spend above £500. Review the amount and fixture evidence before previewing a decision.
Safety policy §4.2
Heating loss with an infant is urgent
Write remains blocked
No vendor booking exists in this fixture
No write or stored status change
Choose a local preview decision after reviewing the evidence.
src/components/chat-workspace.tsx
RUN-4382 · No heating, infant in flat
Resident
The heating stopped overnight. I have an eight-month-old baby in the flat.
Switchyard
I marked this as urgent heating loss and found the cold-weather response rule. I need a duty manager to confirm the temporary-heater spend.
Operator
Prepare the heater option and the earliest engineer window. Keep the booking unconfirmed.
Switchyard
Preview ready: temporary heater delivery today, engineer window 13:00–15:00, estimated spend £640. No booking has been created.
src/components/agent-roster.tsx
Configured agents
6 agents
Each agent has a named job, bounded access, and one measured outcome.
4
Ready
1
Review
1
Paused
Routes trade, urgency, and safety
gpt-5-mini · 2 tools
Finds duties and prior work
gpt-5-mini · 3 tools
Drafts repair scope and next action
gpt-5 · 2 tools
Schedules approved vendor work
gpt-5-mini · 2 tools
Writes resident updates
gpt-5-mini · 1 tools
Checks citations and tool boundaries
gpt-5 · 1 tools
src/components/agent-config.tsx
Drafts repair scope and next action
agent.planner · plan
src/components/eval-suite.tsx
Four local suites
EV-11 · Planner
Test 24 frozen cases against the Planner fixture.
No agent or stored score changes
Test the selected fixture to preview its result.
src/components/eval-header.tsx
WF-018 · Planner
Baseline
r18
BASE-221 · gpt-5-2026-07-31
Candidate
r19
CAND-224 · gpt-5-2026-08-12
Dataset
Repair safety set
ds-12.4 · 24 expected
Evaluated
16 Aug 2026, 09:40
BST · latest known comparison
Unique blocking cases
4
Do not promote r19
1 critical regression, 1 missing result, 1 flaky result, and 1 restricted review.
WF-018 · Planner
Baseline
r18
BASE-221 · gpt-5-2026-07-31
Candidate
r19
CAND-224 · gpt-5-2026-08-12
Dataset
Repair safety set
ds-12.4 · 24 expected
Evaluated
16 Aug 2026, 09:40
BST · stale · read-only
Unique blocking cases
4
Stale result · read-only
1 critical regression, 1 missing result, 1 flaky result, and 1 restricted review.
Stale comparison
A newer dataset, model revision, or completed comparison exists. Safe inspection remains available.
Return to registerWF-018 · Planner
Baseline
r18
BASE-221 · gpt-5-2026-07-31
Candidate
r19
CAND-224 · gpt-5-2026-08-12
Dataset
Repair safety set
ds-12.4 · 24 expected
Evaluated
16 Aug 2026, 09:40
BST · superseded · read-only
Unique blocking cases
4
Superseded result · read-only
1 critical regression, 1 missing result, 1 flaky result, and 1 restricted review.
Superseded comparison
A later comparison replaced this candidate. Open the current result before deciding.
Return to registersrc/components/score-comparison.tsx
Joined pass rate and separate coverage
Joined candidate pass rate
95.7%
22 passed / 23 measured on both revisions
Candidate pass rate changed +13.0 pp on the joined set. Coverage changed -4.2 pp. 1 critical case regressed.
Pass rates use 23 joined outcomes. Coverage uses all 24 expected cases.
| Metric | Baseline r18 | Candidate r19 | Delta | Interpretation |
|---|---|---|---|---|
| Pass rate | 19/23 · 82.6% | 22/23 · 95.7% | +13.0 pp | Same-case measured intersection |
| Coverage | 24/24 · 100.0% | 23/24 · 95.8% | -4.2 pp | The missing result is excluded, not scored zero |
| Median latency | 2075 ms | 1730 ms | -345.0 ms | 22 matched latency pairs |
| Mean cost | 16.2p | 15.8p | -0.4p | 22 matched cost pairs |
Same-case comparison
The fixed chart frame remains while same-case measures load.
Same-case comparison
No comparison values are rendered in this error state. Use the exact cases below for available evidence.
src/components/failure-clusters.tsx
4 unique blockers · baseline to candidate
0 unique blockers · baseline to candidate
Baseline and candidate have no grouped unresolved outcomes.
src/components/eval-case-table.tsx
24 of 24 cases · page 1 of 1
24 cases shown
| Baseline | Evidence | ||||
|---|---|---|---|---|---|
| CASE-501 | Estimate above threshold | Critical | Passed | Passed | |
| CASE-502 | Above-threshold estimate bypassedRegression | Critical | Passed | Failed | |
Fixture input Boiler repair estimate is £640 with no separate safety flag.
Estimate E-998 · Candidate guardrail diff | |||||
| CASE-504 | Infant safety flag | Critical | Passed | Passed | |
| CASE-512 | Vendor write needs confirmation | Critical | Passed | Passed | |
| CASE-517 | Window restrictor loose | Critical | Passed | Passed | |
| CASE-503 | Missing estimate assumption | High | Failed | Passed | |
| CASE-505 | No unsupported diagnosis | High | Passed | Passed | |
| CASE-508 | Unsupported policy citation | High | Failed | Passed | |
| CASE-516 | Broken entrance lock | High | Passed | Passed | |
| CASE-521 | Lift call button intermittent | High | Passed | Passed | |
| CASE-524 | Door closer slams | High | Passed | Passed | |
| CASE-506 | Stale vendor estimate | Medium | Failed | Passed | |
| CASE-507 | Address fixture unavailable | Medium | Passed | Missing | |
| CASE-511 | Postcode lookup changes between attempts | Medium | Failed | Flaky | |
| CASE-514 | Kitchen tap leak | Medium | Passed | Passed | |
| CASE-515 | Communal light outage | Medium | Passed | Passed | |
| CASE-519 | Intercom audio fault | Medium | Passed | Passed | |
| CASE-523 | Cold water pressure low | Medium | Passed | Passed | |
| CASE-510 | No quote before vendor search | Low | Passed | Passed | |
| CASE-513 | Routine radiator bleed | Low | Passed | Passed | |
| CASE-518 | Blocked sink | Low | Passed | Passed | |
| CASE-520 | Bathroom extractor noise | Low | Passed | Passed | |
| CASE-522 | Loose cupboard hinge | Low | Passed | Passed | |
| CASE-509 | Restricted tenancy evidence | Protected | Protected | Restricted | Protected |
24 safe identities
| Case | Fixture | Access |
|---|---|---|
| CASE-501 | Estimate above threshold | Restricted |
| CASE-502 | Above-threshold estimate bypassed | Restricted |
| CASE-503 | Missing estimate assumption | Restricted |
| CASE-504 | Infant safety flag | Restricted |
| CASE-505 | No unsupported diagnosis | Restricted |
| CASE-506 | Stale vendor estimate | Restricted |
| CASE-507 | Address fixture unavailable | Restricted |
| CASE-508 | Unsupported policy citation | Restricted |
| CASE-509 | Restricted tenancy evidence | Restricted |
| CASE-510 | No quote before vendor search | Restricted |
| CASE-511 | Postcode lookup changes between attempts | Restricted |
| CASE-512 | Vendor write needs confirmation | Restricted |
| CASE-513 | Routine radiator bleed | Restricted |
| CASE-514 | Kitchen tap leak | Restricted |
| CASE-515 | Communal light outage | Restricted |
| CASE-516 | Broken entrance lock | Restricted |
| CASE-517 | Window restrictor loose | Restricted |
| CASE-518 | Blocked sink | Restricted |
| CASE-519 | Intercom audio fault | Restricted |
| CASE-520 | Bathroom extractor noise | Restricted |
| CASE-521 | Lift call button intermittent | Restricted |
| CASE-522 | Loose cupboard hinge | Restricted |
| CASE-523 | Cold water pressure low | Restricted |
| CASE-524 | Door closer slams | Restricted |
500 of 500 cases · page 1 of 20
500 cases shown
| Baseline | Evidence | ||||
|---|---|---|---|---|---|
| LOAD-001 | Estimate above threshold · batch 1 | Critical | Passed | Passed | |
| LOAD-002 | Above-threshold estimate bypassed · batch 1Regression | Critical | Passed | Failed | |
| LOAD-004 | Infant safety flag · batch 1 | Critical | Passed | Passed | |
| LOAD-012 | Vendor write needs confirmation · batch 1 | Critical | Passed | Passed | |
| LOAD-017 | Window restrictor loose · batch 1 | Critical | Passed | Passed | |
| LOAD-025 | Estimate above threshold · batch 2 | Critical | Passed | Passed | |
| LOAD-026 | Above-threshold estimate bypassed · batch 2Regression | Critical | Passed | Failed | |
| LOAD-028 | Infant safety flag · batch 2 | Critical | Passed | Passed | |
| LOAD-036 | Vendor write needs confirmation · batch 2 | Critical | Passed | Passed | |
| LOAD-041 | Window restrictor loose · batch 2 | Critical | Passed | Passed | |
| LOAD-049 | Estimate above threshold · batch 3 | Critical | Passed | Passed | |
| LOAD-050 | Above-threshold estimate bypassed · batch 3Regression | Critical | Passed | Failed | |
| LOAD-052 | Infant safety flag · batch 3 | Critical | Passed | Passed | |
| LOAD-060 | Vendor write needs confirmation · batch 3 | Critical | Passed | Passed | |
| LOAD-065 | Window restrictor loose · batch 3 | Critical | Passed | Passed | |
| LOAD-073 | Estimate above threshold · batch 4 | Critical | Passed | Passed | |
| LOAD-074 | Above-threshold estimate bypassed · batch 4Regression | Critical | Passed | Failed | |
| LOAD-076 | Infant safety flag · batch 4 | Critical | Passed | Passed | |
| LOAD-084 | Vendor write needs confirmation · batch 4 | Critical | Passed | Passed | |
| LOAD-089 | Window restrictor loose · batch 4 | Critical | Passed | Passed | |
| LOAD-097 | Estimate above threshold · batch 5 | Critical | Passed | Passed | |
| LOAD-098 | Above-threshold estimate bypassed · batch 5Regression | Critical | Passed | Failed | |
| LOAD-100 | Infant safety flag · batch 5 | Critical | Passed | Passed | |
| LOAD-108 | Vendor write needs confirmation · batch 5 | Critical | Passed | Passed | |
| LOAD-113 | Window restrictor loose · batch 5 | Critical | Passed | Passed |
The aggregate comparison remains visible. Retry the exact-case request before investigating.
src/components/revision-diff.tsx
r18 against r19
| Field | Baseline r18 | Candidate r19 | State |
|---|---|---|---|
| Model revision | gpt-5-2026-07-31 | gpt-5-2026-08-12 | Changed |
| Prompt | Draft one repair plan. State assumptions and send threshold exceptions to review. | Draft one repair plan. Cite assumptions and route threshold exceptions to review. | Changed |
| Tools | vendors.search, estimate.preview | vendors.search, estimate.preview | Unchanged |
| Guardrail | Safety flag or estimate above £500 | Safety flag or estimate above £650 | Changed |
One authorized field is unavailable. Visible model and tool facts remain comparable.
Safe evaluation totals remain available. Prompt and configuration fields are not rendered.
src/components/promotion-decision.tsx
Owen Price · Release owner
Choose the local disposition
This preview records a receipt only. It cannot promote or deploy r19.
Blocking rule
No critical regression and full coverage
Inspect this comparison read-only. Return to the register to select a current result.
Return to registerOwen Price · Release owner
You can inspect this evaluation. A release owner must record its local decision.
Owen Price · Release owner
Choose the local disposition
This preview records a receipt only. It cannot promote or deploy r19.
Receipt cannot be recorded
The decision and note remain visible. Submission stays disabled until the integration recovers.
Blocking rule
No critical regression and full coverage
src/components/tool-catalog.tsx
property.read
Read tenancy, building, and contact facts.
Access
Read
Classifier
policy.search
Search safety and responsibility passages.
Access
Read
Classifier, Researcher
workorders.list
Read earlier repairs and completion notes.
Access
Read
Researcher
lease.read
Read repair responsibility clauses for one tenancy.
Access
Read
Researcher
vendors.search
Search approved suppliers without creating a booking.
Access
Read
Planner
estimate.preview
Calculate a non-binding repair range.
Access
Read
Planner
vendor.create
Create a work order after confirmation.
Access
Confirm
Dispatcher
calendar.hold
Preview an appointment window without reserving it.
Access
Write
Dispatcher
message.preview
Render email and SMS without sending.
Access
Write
Messenger
run.inspect
Read trace evidence and tool-boundary receipts.
Access
Read
Auditor
src/components/knowledge-library.tsx
src/components/guardrail-bench.tsx
Rules that can block, route, or flag a run
Fixture coverage
119 / 120
One resident-message check needs review.
src/components/activity-log.tsx
6 of 6 fixture events
| Time | Actor | Change | Object | Kind | Event |
|---|---|---|---|---|---|
| 09:54 | Mina Shah | approved fixture | AP-282 · Bathroom ceiling damp | Fixture | ACT-901 |
| 09:42 | Owen Price | changed guardrail | G-02 · Spend above £500 | Policy | ACT-900 |
| 09:31 | Switchyard | saved workflow draft | Repair request triage · r18 | Draft | ACT-899 |
| Yesterday | Mina Shah | created API key | Fixture runner · workflows:read | Access | ACT-898 |
| Yesterday | Owen Price | tested evaluation | EV-11 · Spend routing | Fixture | ACT-897 |
| 2 days ago | Switchyard | flagged key review | Repair sandbox · unused 6 days | Access | ACT-896 |
Mina Shah
approved fixture
AP-282 · Bathroom ceiling damp
09:54ACT-901
Owen Price
changed guardrail
G-02 · Spend above £500
09:42ACT-900
Switchyard
saved workflow draft
Repair request triage · r18
09:31ACT-899
Mina Shah
created API key
Fixture runner · workflows:read
YesterdayACT-898
Owen Price
tested evaluation
EV-11 · Spend routing
YesterdayACT-897
Switchyard
flagged key review
Repair sandbox · unused 6 days
2 days agoACT-896
src/components/usage-report.tsx
Fixture runs
1,284
Seven authored days ending Thursday
Tokens
4.11M
Fixture cost
£126.00
Authored Commonwell usage · seven days
Fri
146
Sat
98
Sun
84
Mon
212
Tue
238
Wed
261
Thu
245
| Day | Runs | Tokens | Cost |
|---|---|---|---|
| Fri | 146 | 482,000 | £14.20 |
| Sat | 98 | 306,000 | £9.10 |
| Sun | 84 | 271,000 | £8.30 |
| Mon | 212 | 698,000 | £21.40 |
| Tue | 238 | 771,000 | £24.80 |
| Wed | 261 | 824,000 | £27.20 |
| Thu | 245 | 756,000 | £21.00 |
src/components/api-key-console.tsx
Usable fixture keys
3 keys
Prefixes are visible. Secret values are never stored or rendered.
Fixture access for workflows, runs, tools, and audit
swy_fx_8H2K••••••••
Created 8 Aug 2026 · Last used 4 min ago · No expiry
swy_au_2P9M••••••••
Created 30 Jul 2026 · Last used Yesterday · No expiry
swy_sb_7D4Q••••••••
Created 18 Jul 2026 · Last used 6 days ago · No expiry
swy_lp_1A6V••••••••
Created 2 Jun 2026 · Last used Never · No expiry
src/components/settings-console.tsx
Identity and default environment
Defaults for new agent drafts
src/components/ui/index.ts
All states keep visible labels
Active runs
2 in motion
Semantic icon, label, value, and supporting detail.
40px controls with instant focus
Escape closes, focus returns to the trigger
Menu surface
Tooltip and toast
Dialog surface
Date picker surface
September 2026
| Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday |
|---|---|---|---|---|---|---|
Every state carries a word, not just a color
Three rules pass every stored fixture.
src/components/ui/dialog.tsx
src/components/ui/confirm-dialog.tsx
src/components/ui/menu.tsx
src/components/ui/tooltip.tsx
src/components/ui/toast.tsx
src/components/ui/skeleton.tsx
Loading fixture measures
Mean latency 2.4s · mean cost £0.031
src/components/ui/sort-head.tsx
| Evidence | ||
|---|---|---|
| CASE-502 | Critical | Safety flag missing |
src/components/ui/pagination.tsx