MCP Server
Active
1
0
Files
incident-triage/algorithms/draft_response.card.yaml

124 lines
4.0 KiB
YAML

kind: uapf.algorithm.card
id: algo.incident_triage.draft_response
version: 1.0.0
name: Customer response drafter
intent: |
Drafts a customer-facing incident notification in parallel Latvian
and English on behalf of LVRTC. Output is a PROPOSED AIDecision —
never auto-sent. Operator approval in the GUI is required before any
message leaves the system (guardrail approval.human_required_for
enforces this at runtime).
Tone: professional, calm, factual. Acknowledges the problem, states
that the team is investigating, gives an ETA only if known. Does NOT
promise specific resolutions. Uses proper Latvian diacritics. Bodies
capped at ~90 words each.
algorithm_kind: transformer
io:
inputs:
- id: case_id
type: string
cardinality: single
constraints:
pattern: "^[0-9a-fA-F-]{36}$"
- id: locale
type: string
constraints:
enum: [lv, en, auto]
documentation: |
'lv' or 'en' forces a single primary locale; 'auto' produces
both bodies and lets the operator choose. Default 'lv' for LVRTC.
- id: what_happened
type: string
documentation: One-line summary of the incident (used in subject + opening).
- id: eta_minutes
type: integer
cardinality: single
constraints:
minimum: 0
documentation: 'Optional. When provided, surfaced in body as \"Aptuvenais risināšanas laiks: X min\".'
outputs:
- id: subject_lv
type: string
- id: subject_en
type: string
- id: body_lv
type: string
documentation: Latvian body, proper diacritics, <=~90 words.
- id: body_en
type: string
documentation: English body, <=~90 words.
- id: locale
type: string
documentation: The locale code echoed back; informational.
implementation:
type: external
medium: mcp_tool
uri: uapf-ip://capability/ai.draft_response@1
hash: sha256:0000000000000000000000000000000000000000000000000000000000000000
runtime:
capability: ai.draft_response@1
note: |
Host-fulfilled UAPF-IP capability backed by the LLM gateway with
Anthropic as the default provider. The host enforces that the
resulting AIDecision row is PROPOSED (never AUTO_APPLIED) for
this capability. Operator approval moves it to APPROVED before
any outbound transport adapter is invoked.
determinism: stochastic
side_effects: pure
complexity:
typical_latency_ms: 1500
max_latency_ms: 60000
failure_mode: |
Returns deterministic stub drafts ("Mūsu komanda ir saņēmusi
paziņojumu...") with locale='lv' and a flag indicating LLM unavailability.
Operator can edit before approving.
reference:
legal: |
GDPR 2016/679 Article 13 — information to data subjects; LVRTC
customer-communication standards.
standard: |
ITIL 4 — Communication and Awareness practice during major incidents.
limitations:
- Cap of ~90 words per body — long incident narratives are truncated.
- Does not yet support Russian or other locales beyond lv/en.
owners:
- type: team
id: openitsm-stewards
contact: stewards@openitsm.algomation.io
lifecycle:
status: draft
tests:
- name: link-down-with-eta
description: |
Edge link down with an ETA of 30 minutes. Both bodies should
acknowledge the outage and surface the ETA.
inputs:
case_id: "33333333-3333-3333-3333-333333333333"
locale: "auto"
what_happened: "Tīkla pārtraukums rtr-r1"
eta_minutes: 30
expected_outputs:
locale: "lv"
subject_lv: "[LVRTC] Informējam par incidentu"
subject_en: "[LVRTC] Incident notification"
- name: customer-request-no-eta
description: |
Customer-initiated request acknowledgement without an ETA.
inputs:
case_id: "44444444-4444-4444-4444-444444444444"
locale: "auto"
what_happened: "Klienta pieprasījums par joslas platumu"
expected_outputs:
locale: "lv"
subject_lv: "[LVRTC] Informējam par incidentu"
subject_en: "[LVRTC] Incident notification"