03Station 03

Pattern

Codify the specific skill into a reusable template with five named seams, then scope the next instance from it — without faking a second working skill.

The skill on the Build page is one instance of a repeatable shape: take one already-flagged item, reconcile it against an authoritative reference dataset, classify it, cite the dataset, and gate anything irreversible. Five seams change from one instance to the next. Everything else — the output contract, the citation validator, the escalation logic — is fixed.

Seam
bill-exception-triagebuilt
exception-triage-templatetemplate
procurement-rfp-intakescoped
1Intake schema
fill

ExceptionSchema — the bill record: id, utility, urdb_rate_id, service_class, payment_status, billing_period, usage, line_items[], billed_total. Numeric/enum only.

seam

The fields of one flagged item, plus a status field that gates escalation.

draft

RFP intake record: buyer_unit, category_code, requirement_lines[], submission_status. Requirement text arrives pre-extracted, not as prose.

2Reference-data seam
fill

NREL URDB tariff JSON, dated and provenanced, with a citable_components allowlist (energyratestructure.period[i], flatdemandstructure.period[i], startdate/enddate, …).

seam

The authoritative dataset with provenance and a citable-components allowlist.

draft

A category taxonomy + standard-clause library. Open question: which system of record is authoritative, and can it be dated the way URDB tariffs are.

3Rubric
fill

Six classes — rate-mismatch, tariff-superseded, seasonal-schedule-error, demand-charge-anomaly, data-quality (ambiguous), true-anomaly — worked top-down.

seam

The domain taxonomy, including an explicit "inputs insufficient / more than one reference applies" class.

draft

complete, missing-mandatory-field, ambiguous-category, out-of-scope-category, duplicate-of-existing-rfp, genuine-nonstandard-requirement.

4Output contract
fill

{ classification, candidate_rate_ids?, evidence[] {statement, citation}, confidence, recommended_action, escalate, escalation_reason? }.

seam

Fixed. The JSON shape never changes; only the classification enum comes from the rubric.

draft

Unchanged from the template — same JSON; the enum comes from Seam 3.

5Escalation rules
fill

Escalate when confidence is not high, when more than one tariff applies, or when the fix touches a paid invoice / payment / record of account.

seam

Rules 1–2 fixed. Rule 3 is the domain reading of "already committed".

draft

Rules 1–2 unchanged. Rule 3: escalate when the RFP is already issued to suppliers, or the fix changes what suppliers were asked to bid on.

procurement-rfp-intake

Scoped, not built — next candidate per the adoption-risk ranking

The stub above is a scoping document, not a runnable skill — no code, no recorded runs. It exists to show that the second instance is a seam-fill, not a rebuild: the intake schema and rubric are new, the reference-data seam has an open question (an authoritative, dateable source), and the output contract and citation validator carry over unchanged. Proving the operating model on the safer workflow first is what earns the right to fill these seams for real.