Reference — generated from the toolkit
Source of truth: toolkit/skills/edge-case-red-team/spec.md. Edit it there; this page is regenerated on build.
Skill: edge-case-red-team
- Owner: SMEs + Product (with AI)
- Version: 0.1.0
- Lifecycle: draft
- Phase: definition
Trigger
Run once a domain brief has a first draft, before the Definition of Ready gate. It lets an SME stress-test their own brief: the skill plays adversary, probing for the cases that break naive implementations, and the SME disposes of each proposal. Cheaper to find a missing edge case here than after an agent has confidently built the wrong thing.
Inputs → outputs
- Inputs: the domain brief (rules as decision tables + existing edge cases), the product glossary, the PFD draft, and any cited regulatory references.
- Outputs: a list of proposed edge cases in the brief's own format — condition(s) → expected outcome, each with a concrete worked example — ranked by likely impact, deduplicated against the brief, and each tagged for SME disposition: accept into brief / amend / reject (with reason). Where the correct outcome is genuinely unknown, the proposal states the question, not an invented answer.
Procedure
- Boundary conditions — for every numeric or stateful rule, probe the limits: thresholds at, just below and just above; currency rounding (½p cases); zero/empty/maximum values; policy-state transitions (lapsed, suspended, cooling-off).
- Date arithmetic — renewals landing on 29 February; backdated cover and effective-date maths; MTAs on the first/final day of cover; BST/GMT boundary and timezone-of-record questions; retro-dates vs inception dates.
- Regulatory exceptions — cooling-off cancellations, FCA Consumer Duty implications of a rule's edge, jurisdiction splits (UK vs other markets), data-residency-sensitive branches.
- Fraud / sanctions / KYC — a sanctions hit mid-claim, a KYC failure at MTA, duplicate-claim patterns — what does each rule do when the party is flagged?
- Cross-rule interactions — pairs of rules applied together: an MTA during an open claim, a cancellation after a renewal invitation, a refund crossing a premium-finance agreement.
- Dedupe and rank — drop anything the brief already covers; rank the rest by exposure (regulatory > financial > experience); cap the list (default 20) so SME time is spent on the sharpest cases.
- Present for disposition — output the proposals table; accepted items are added to the brief by the SME/BA, not by the skill.
Guardrails & permissions
- Read-only; proposals only — nothing enters the brief without explicit SME acceptance, per the SME engagement playbook.
- Never asserts regulatory interpretation as fact. Every regulatory probe either cites a source from the brief's references or is marked speculative — confirm with Compliance.
- Standard agent guardrails; no access beyond the Definition artefacts.
Failure modes
- Flooding the SME with plausible-but-irrelevant cases (mitigated: dedupe, exposure ranking, hard cap; rejection rate tracked — persistently high rejection means the probes need tuning).
- Inventing regulatory rules (mitigated: cite-or-mark-speculative rule; Compliance flag on anything asserted without a source).
- Missing interactions beyond pairs (known limit: probes rule pairs, not triples — deeper interactions rely on SME instinct and Refinement testing).
Golden scenarios
| Scenario | Input | Expected output | Pass criterion |
|---|---|---|---|
| Seeded gaps | fixture brief with 5 known missing edge cases (incl. MTA on final day of cover, backdated cancellation) | ≥ 4 of 5 proposed | recall ≥ 0.8 on seeded gaps |
| Renewal date arithmetic | brief with an annual-renewal rule | proposals include 29 Feb renewal and BST/GMT boundary cases | named cases present |
| Sanctions mid-claim | brief with claims flow + sanctions rule | cross-rule interaction proposed with worked example | interaction found, outcome posed as question not asserted |
| Already-covered case | brief that already covers cooling-off refunds | no duplicate proposal | dedupe holds |