Example output

What the ring actually produces.

Documentation is abstract until you see the artifacts. These are illustrative, realistic examples of each skill's output — a daily brief, an architecture decision record, a backlog triage, a voice-calibrated draft, and a Steward open-state handover.

Illustrative samples. The names, numbers, and decisions below are fabricated for documentation. They show the shape of each artifact, not real engagement data.

CoS · scout-sweep  Backlog Sentinel + daily-brief pipeline

① A scout-fed signal lands in the morning brief

When ring-tick's recurring cadence is enabled, a scout-sweep tick spawns each of the five scouts under a shared scout_lease. Here, Backlog Sentinel observes an ADO state-flip overnight, enqueues a signals row through the idempotent sp_create_signal shim, and the CoS's next daily-brief picks it up. Two-phase agent_runs audit row bookends the sweep.

haleon.signals · row written by backlog-sentinel
// signals row (PascalCase entity: Signal) — written via SignalIn / sp_create_signal
{
  "id":                  "3a47ec5c-1f7e-4b1c-9c9d-7a01b9f6c2e8",
  "source":              "backlog-sentinel",
  "source_external_id":  "ado:haleon-aiac:4471:rev7",     // deterministic; K1 dedups on (source, source_external_id)
  "subject":             "[ADO #4471] Pod-2 RAG residency review",
  "body_excerpt":        "state-transition (Active → Blocked) | assigned_to=arjun@haleon.com
                          | WIT=Risk | changed_by=k.maclaverty@haleon.com | tags=residency,pod-2",
  "classification_tags": ["scout:backlog-sentinel", "ado-backlog", "state-flip", "new-blocker"],
  "channel":             "azure_devops",
  "sender_email":        null,                            // ADO items aren't a person-from-channel
  "occurred_at":         "2026-05-30T03:14:08Z",            // item revision's own timestamp
  "signal_weight":       2,                                   // bumped from default 1 — priority=High
  "raw_payload":         null,                            // summary + ids only; never the raw work-item JSON
  "ingested_by_agent":   "backlog-sentinel"
}
haleon.agent_runs · sweep audit row (two-phase, class='scout_sweep')
// INSERT at sweep start (sp_create_agent_run, p_session_turn_seq=NULL → auto-allocated)
{
  "id":               "f12a91c7-5e10-4b62-86df-90b3a7dbe5e2",
  "agent_name":       "backlog-sentinel",
  "tier":             "tier_0_reader",
  "class":            "scout_sweep",            // legal post K2-verify (canonical 7-member enum)
  "model":            null,                       // deterministic scout, no LLM call
  "triggered_by":     "scout-sweep",
  "session_id":       "sweep-2026-05-30T0700Z-3a47ec",
  "session_turn_seq": 1,                          // auto-allocated via sp_next_session_turn_seq
  "created_by_agent": "backlog-sentinel",
  "spawned_at":       "2026-05-30T07:00:14Z",
  "detail_ref":       null                        // not a rotation/snapshot — HS-4 ordering N/A
}
// UPDATE at sweep end (sp_update_agent_run — completion-fill ONLY; class/agent_name immutable)
{ "id": "f12a91c7…e5e2", "completed_at": "2026-05-30T07:00:51Z",
  "wall_clock_ms": 37000, "success": true, "tokens_in": 0, "tokens_out": 0,
  "notes": "items_observed=14, enqueues=3, dedup_noops=11, routed_to_sa=0" }
What the brief picks up. The next daily-brief run reads signals with created_at >= now() - 24h, joins on classification tags, and lifts the state-flip + new-blocker tags into the morning 5-3-2-1 top-5 risk slot. Because Backlog Sentinel's body_excerpt is a structured one-line summary (never the raw System.Description), the brief is high-signal without ever exposing repro steps, acceptance criteria, or comment threads.

CoS  Daily Brief skill

② The 5-3-2-1 morning brief

Posted to Charlie as a Teams DM at 07:00 (declared cron intent; today triggered on-demand). Exactly five risks, three decisions, two customer signals, one fire — plus a focus-block recommendation and the Quiet Watch footer. Compressed, high-signal, no throat-clearing (that's the voice profile for self-directed briefs).

Microsoft Teams · Chat with Clawpilot
Clawpilot (Chief of Staff) · Today 07:00

Brief — 2026-05-29 · morning

Top 5 risks
  1. Data residency on Pod-2 RAG store — Haleon InfoSec flagged EU-data-in-US-region. Decision-shaped → routed to SA.
  2. AOAI quota on the shared Foundry project at 82% of monthly cap, 9 days left in cycle.
  3. Pod-4 sprint slip — 2 stories carried; B2D drift now 11% (watch, <15% threshold).
  4. SteerCo deck due Thu EOD — narrative for ratified ADR-7 still outstanding from SA.
  5. Stakeholder silence — K. McLaverty (sponsor-adjacent) no contact 6 days. In Quiet Watch.
3 decisions
  1. Residency ADR — awaiting your ratification ack (compliance: needs-review).
  2. Reuse-match collision on Pod-3 caching pattern vs ratified ADR-4 — needs your call to deviate.
  3. Pod-1 resourcing: pull one FDE to Pod-2 for the residency work? (engagement-class)
2 customer signals
  1. Positive: Haleon platform lead praised the Copilot rollout cadence in yesterday's sync.
  2. Watch: procurement asked (again) about Purview licensing scope — third time in 2 weeks.
1 fire

🔥 Residency flag is the one thing that can slip the Pod-2 pilot date. Everything else can wait a day.

Focus block

10:00–11:30 — ratify the residency ADR. Calendar's clear; I held it.

Quiet Watch

K. McLaverty (6d) · A. Grigoryan (4d) · Pod-3 lead (4d). Suggested nudge: McLaverty today.

Behind the scenes a briefs row is written with structure_version = "5-3-2-1", the consumed signal IDs are stamped with consumed_in_brief_id, and the focus-block is validated against Charlie's real calendar before it's suggested.

SA  Decision Capture skill (technical)

③ An architecture decision record

The durable output of the Solution Architect. Written to last — a successor should be able to read it months later and understand exactly what was decided and why. Here it is mid-lifecycle, just after the compliance gate.

draft reviewed compliance-checked awaiting Charlie ack

(Lifecycle stages are now DB-backed on adrs.review_stage, CHECK-constrained to {draft, reviewed, compliance-checked, ratified} and advanced through the CAS-guarded sp_advance_adr_stage SP — distinct from adrs.status ({proposed, accepted, superseded, rejected}). See ISS-19 / Fix-G. The Reviewer/Compliance gates are enforced by the skill and audited by the Steward.)

haleon-aiac-db · adrs · record ADR-0011
// adrs row (PascalCase entity: Adr)
{
  "id": "ADR-0011",
  "title": "EU data residency for Pod-2 RAG vector store",
  "status": "proposed",  // adrs.status enum (draft|proposed|accepted|rejected|superseded)
  "review_stage": "compliance-checked",  // adrs.review_stage — DB-backed via sp_advance_adr_stage (CAS-guarded, ISS-19 / Fix-G)
  "owning_peer": "SA",
  "decision_text": "Pin the Pod-2 retrieval-augmented vector store and its
     backing storage to a single EU region (West Europe). Cross-region
     replication disabled. Embeddings generated by an EU-deployed model
     instance; no consumer-health text leaves the EU boundary at any hop.",
  "context": "Haleon InfoSec flagged EU-data-in-US-region risk on the
     Pod-2 RAG store (signal #S-2291). Consumer-health surface in scope.",
  "compliance_scope": "consumer-health",
  "related_pod": "Pod-2",
  "related_ado_ids": [4471, 4489],
  "reuse_candidate_id": null,   // no existing pattern matched
  "reviewer": {
    "result": "pass",
    "attempts": 2,           // rejected once on replication ambiguity
    "note": "First draft left replication undefined. Tightened to explicit disable."
  },
  "compliance": {
    "state": "needs-review",
    "reason": "Regulatory determination for this use case not yet gathered
       at mobilisation; residency control is sound but use case needs a posture."
  },
  "awaiting_charlie": true
}
The gates did their job. The Reviewer caught an ambiguity on the first pass (replication left undefined) and forced a revision. The Compliance Checker — mandatory on a consumer-health surface — returned needs-review rather than rubber-stamping, because this use case hasn't had its regulatory posture determined yet. SA cannot ratify; only Charlie can.

CoS  ADO Bulk Triage skill

④ The Friday backlog sweep

Every Friday at 16:30, the Chief of Staff sweeps the backlog, age-ranks open items, and proposes state changes — none of which are written to ADO without Charlie's sign-off. The summary doubles as the Friday end-of-day brief.

Microsoft Teams · Chat with Clawpilot
Clawpilot (Chief of Staff) · Fri 16:30

ADO Triage — Week 2026-W22

Open: 38  (Δ vs last week: −4)

Top stale
  • #4129 (45d, Risk, owner: A. Singh) — recommend: nudge owner
  • #4088 (38d, Blocker, owner: Pod-3) — recommend: escalate to you
  • #3997 (31d, Bug, owner: M. Tan) — recommend: nudge owner
Recommended state changes (3) — need your sign-off
  • #3902 → Done (work complete per signal #S-2270)
  • #3914 → Won't Fix (superseded by ADR-0007)
  • #4051 → Active (re-opened; new dependency surfaced)
Owners with >3 stale items

A. Singh (5) · Pod-3 (4)

Each recommended change is traceable to a signal, an ADR, or an explicit Charlie comment — never a vague "this looks stale." Nudge drafts for named owners are queued as comms_drafts (still gated), and external Haleon owners are surfaced for sign-off before a draft is even written.

CoS + Outbound Voice skill

⑤ A draft, before and after voice

Every outbound message passes through the Outbound Voice skill, which calibrates tone to the recipient and makes it sound like Charlie — not like an assistant. Here's a nudge to an internal owner about a stale risk.

Before — generic assistant draft

"Hi Arjun,

I hope this message finds you well. I wanted to kindly follow up regarding work item #4129, which appears to have been open for some time. Would you be able to provide an update at your earliest convenience? Thank you so much for your attention to this matter.

Best regards"

After — calibrated to Charlie's voice

"Arjun — #4129's been open 45 days and it's on my risk list now. What's the blocker? If it's stuck on the Pod-2 residency call, that should clear this week. Ping me if you need air cover."

What changed. Lead with the point, drop the throat-clearing, use contractions, name the specific blocker, offer help. Lower formality because it's an internal peer over Teams. The voice layer never weakens the rules underneath it — this still lands in the queue at awaiting_signoff and only sends once Charlie approves.
// comms_drafts row { "recipient": "A. Singh (internal)", "channel": "teams_dm", "intent": "nudge", "stakes": "routine", "status": "awaiting_signoff" }

Steward  Rotation ceremony

⑥ A handover at rotation

When the Steward rotates a degrading peer, the outgoing agent emits an ## Open state block. The successor adopts it verbatim and picks up exactly where its predecessor left off — no institutional memory lost. This is the Chief of Staff handing over.

CoS session (outgoing) → Steward · rotation handover
## Open state

- Current slot: midday
- Briefs written today: 1, last slot: 2026-05-29T07:00:11Z
- comms_drafts pending sign-off: 3
    [CD-0412 (4h), CD-0418 (2h), CD-0421 (35m)]
- quiet_watch in nudge cycle: 2  [McLaverty (6d), Grigoryan (4d)]
- decisions routed to SA awaiting pickup: [D-1190 residency]
- active steerco_preps row: SP-W22 (week 2026-W22)
- today's focus-block rec: 10:00–11:30 ratify residency ADR
- Meeting Prep gates (next 12h): [PD sync 15:30 — prep due 15:00]
- last 3 signals consumed, not yet briefed: [S-2301, S-2302, S-2305]
- carrying forward from Charlie: "keep Purview licensing
    questions off my plate until procurement comes back in writing"
Why this matters. The successor boots from its role brief and then ingests this block, so the 3 pending drafts, the in-flight Quiet Watch threads, the routed residency decision, and even Charlie's offhand instruction all survive the swap. The Steward snapshots this for the audit trail — then smoke-tests the successor before archiving the old session.

That's the whole machine.

Three agents, one shared brain, strict boundaries, human sign-off, and a self-healing lifecycle — documented end to end.

← Back to the overview