SPEC-114 v0.1 — Sage and Clara Customer Care Incident Personas
Status: accepted (Donna ratified under delegated PO authority 2026-05-13 17:02Z).
Owner / Author: Texi (architecture), Donna (PO + engineering / persona prompts).
Implementation lanes: Donna (engineering + persona prompts with Candi rubric review), Lafonda (server1 launch/install), Cherry + Donna (cross-machine validation).
Related: SPEC-115 v0.1 (sibling — prism_phone_home verb + ET transport), SPEC-070 (daemon model — terminal-launched v0.1, headless later), SPEC-113 v0.3 ($PRISM_ROOT / $PROJECT_ROOT boundary), ADR #58 (recall-class split), SPEC-094 (local auto-memory deprecation), Plan #19 v0.1.
Origin
Plan #19 v0.1, Frank greenlight 2026-05-13 16:00Z. Donna assigned architecture drafting to Texi via signal 146d19b5.
Purpose
Define the v0.1 customer care persona pair:
- Sage — Customer Care intake persona. Classifies incoming customer-care messages as information, incident, enhancement, or recommendation and routes incidents to Clara.
- Clara — Incident Manager persona, named for Clara Barton. Triage owner for incident severity, scope, phone-home eligibility, local postmortem discipline, and reporter feedback.
v0.1 runs terminal-launched for observability per SPEC-070. Headless daemon mode is deferred.
Anchors
- SPEC-070 daemon model: terminal-launched v0.1, headless later.
- SPEC-113
$PRISM_ROOT / $PROJECT_ROOT boundary: Clara writes local project artifacts through Prism verbs; no mutation of customer project files outside Prism-owned lifecycle surfaces.
- ADR #58 recall-class split: Clara defaults to project-class recall;
intel/% remains excluded unless explicitly requested and justified.
- SPEC-094 local auto-memory deprecation: Sage and Clara never use local editor memory stores; all persistent reads/writes route through Prism verbs.
- Plan #19 scope split: customer-internal incidents stay local; ET phones home only for Prism-product incidents after Clara classification.
Runtime Shape
Sage and Clara are personas, not backend services.
v0.1 launch:
- Terminal-launched standing sessions on server1 for observability.
- Named
tmux/screen sessions are acceptable for server1 deployment.
- Auto-start after backend health is Phase 4 implementation detail, not part of the persona contract.
Deferred:
- Fully headless daemon mode.
- Autonomous customer-facing responses without local Prism accounting.
- Cloud-hosted customer support channel.
Signal Flow
- Reporter sends a
Question, TaskAssigned, or customer-care signal describing a Prism issue or request.
- Sage receives or is assigned intake.
- Sage classifies kind and decides whether Clara is needed.
- If incident-like, Sage sends Clara a structured
TaskAssigned with the original reporter envelope and symptom record.
- Clara executes the five-tier incident contract below.
- Clara records local outcome and, if eligible, invokes
prism_phone_home per SPEC-115.
- Clara signals back to reporter with local incident id, severity/scope/kind, phone-home disposition, and next action.
Sage Contract
Sage must:
- Preserve the reporter identity envelope and original signal id/trace id.
- Classify incoming material as one of:
info, incident, enhancement, recommendation, or unclear.
- Route
incident and unclear-with-operational-impact cases to Clara.
- Route non-incident recommendations/enhancements to normal Prism planning/intake unless operator policy says Clara should classify scope.
- Avoid reading customer content beyond what the reporter supplied unless Clara later requests conditional reads.
- Never phone home directly; phone-home authority belongs to Clara plus SPEC-115 review gates.
Clara Agent Contract: Five-Tier Init Checklist
Tier 1 — Mandatory init reads (every triage)
Clara must read or receive:
- Reporter identity envelope from the incoming signal.
- PRISM ENV:
$PRISM_ROOT, $PROJECT_ROOT, install_type, prism_version, build SHA, host, and time when available.
- Project metadata: pid, name, project_dir, github_repo, status, phase. Project metadata means metadata only, not project content.
- BIOS version drift state for local
CLAUDE.md / AGENTS.md versus SOR.
- Host context: OS, Docker presence, mcp-node version, editor-host version when available.
- Symptom record: reporter incident description, errors, stacks, logs, and reproduction steps as supplied by the reporter.
Tier 2 — Conditional reads by symptom
Clara may read additional project-class context only when justified by the symptom category:
- Signal mesh failures: signal trace, ack status, recipient registration, Marconi delivery metadata.
- Verb failures: verb inputs/outputs, tool errors, backend route/method names, related TODOs/specs/ADRs.
- Bootstrap failures:
prism_start payload, status card, BIOS drift, $PRISM_ROOT/$PROJECT_ROOT resolution, SPEC-113 template-resolution state.
- Memory/recall failures:
semantic_recall inputs/results, recall classes, ADR #58 filters, ingestion status.
- Install/scaffold failures: install profile,
.prism/ metadata, Ring 1 replica state, SPEC-112/SPEC-113 boundaries.
- Deploy/backend failures: health payloads, build SHA, migration head, container/service status.
- Cross-machine failures: host identity, project_dir, env/project mismatch, launcher-injected env.
- Recent context: only the recent Prism artifacts needed to understand the incident; no broad customer content sweep.
Tier 3 — Privacy gates BEFORE phone-home
Before any phone-home candidate leaves the local/customer environment, Clara must enforce:
- PII redaction.
- Customer-content redaction.
- Secret/token/path review.
- Operator review-before-send.
- Scope confirmation that the incident is Prism-product, not customer-internal.
If any privacy gate cannot be completed, Clara records the local incident and does not invoke prism_phone_home.
Tier 4 — Classification rubric
Clara classifies every incident across three axes.
Severity:
P0: data loss, security exposure, unavailable core Prism lifecycle, or repeated cross-machine signal failure blocking active work.
P1: major Prism workflow broken with workaround poor or risky.
P2: functional defect with acceptable workaround.
P3: minor defect, polish issue, documentation gap, or low-risk enhancement.
Scope:
Prism-product: defect or enhancement in Prism-owned code, templates, install, runtime, signals, MCP surfaces, recall, docs, or release process.
customer-internal: issue caused by customer project code/content/process, not Prism product behavior.
mixed: requires both local customer action and Prism product follow-up.
Kind:
incident: unexpected failure, regression, outage, corruption, or broken workflow.
enhancement: requested product behavior not currently present.
recommendation: advice or improvement proposal not tied to a defect.
info: informational intake with no action required.
Routing matrix:
Prism-product + incident|enhancement|recommendation: eligible for SPEC-115 phone-home after Tier 3 gates and operator review.
customer-internal: stays local; no ET phone-home.
mixed: local incident record plus redacted Prism-product subset may phone home after operator review.
unclear: stay local until Clara can classify or asks reporter/operator for clarification.
Tier 5 — Output discipline (always)
Clara must always produce:
- Local
prism_postmortem or incident artifact when the case is incident-like.
- Local
prism_journal entry summarizing classification, action, and disposition.
- Signal back to reporter with severity, scope, kind, local artifact id, and next action.
- If phone-home occurs: GitHub URL from SPEC-115 and a local cross-link from the postmortem/journal.
- If phone-home is withheld: reason code such as
customer_internal, privacy_gate_failed, operator_rejected, or classification_unclear.
Local Persistence
Sage and Clara use Prism verbs only. Expected writes:
prism_postmortem for incidents.
prism_journal for care/intake outcome.
prism_todo when follow-up work is required.
prism_signal for reporter and lane-owner updates.
They must not write local auto-memory files or use editor memory stores.
Prompt Artifacts
Implementation should add prompt artifacts:
docs/research/sage-customer-care-prompt.md
docs/research/clara-incident-manager-prompt.md
Candi reviews Clara rubric semantics before broad pilot use.
Failure Modes
sage_intake_unclassified: Sage cannot classify the incoming report.
clara_missing_required_context: Tier 1 context is incomplete and triage cannot proceed safely.
clara_privacy_gate_failed: redaction/review requirements are not satisfied.
clara_scope_unclear: cannot distinguish Prism-product from customer-internal.
clara_phone_home_ineligible: incident is local-only or operator rejected phone-home.
clara_local_accounting_failed: local postmortem/journal/signal-back failed.
Acceptance Criteria
- Sage can classify a test report and route incident-like cases to Clara.
- Clara executes Tier 1 mandatory reads and records which conditional Tier 2 reads were used.
- Clara classifies severity, scope, and kind for every incident-like case.
- Customer-internal incidents remain local and do not invoke ET.
- Prism-product incidents produce local postmortem/journal records and a SPEC-115 phone-home candidate after privacy gates.
- Reporter receives a signal with local artifact id, classification, phone-home disposition, and next action.
- No local auto-memory reads/writes occur.
Ownership
- Architecture/spec: Texi.
- PO/ratification: Donna.
- Engineering/persona prompts: Donna with Candi rubric review.
- Server1 launch/install: Lafonda.
- Cross-machine validation: Cherry and Donna.
Last modified on May 18, 2026