id: customer_service skill: customer_service archetype: refund_complaint description: | Customer Service rubric for the refund/complaint archetype (D-039). 4 criteria, 5-level behavioral anchors per RESEARCH §2 (Dreyfus + Miller "Does" + EPA entrustment). Professionalism = conjunctive floor ≥2 (RESEARCH §4.1). criteria: - id: empathy name: Empathy / Emotional Attunement weight: 0.35 conjunctive_floor: null levels: - level: 1 label: Fail anchor: > No acknowledgement of emotion; jumps straight to policy/transactional response. Customer feels unheard. signals: - no_acknowledgement - policy_first_before_emotion - level: 2 label: Advanced Beginner anchor: > Cites a scripted empathy line ("I understand your frustration") but moves on mechanically; no follow-up. signals: - scripted_empathy_line - level: 3 label: Competent anchor: > Names the emotion in own words, validates it, then transitions to resolution. Appropriate but not tailored. signals: - named_emotion_in_own_words - acknowledged_specific - level: 4 label: Proficient anchor: > Adjusts tone to customer's emotional state mid-call; reflects back specifics ("cracked on arrival — that's frustrating"). signals: - tone_pace_adjusted - multiple_acknowledgement_instances - level: 5 label: Mastery / Entrustable anchor: > Reads shifting emotional cues across the call; de-escalates implicitly through pacing and acknowledgment; could model this for new hires. signals: - reads_shifting_emotional_cues - implicit_de_escalation_via_pacing - coaches_peers - id: resolution name: Resolution Concreteness weight: 0.30 conjunctive_floor: null levels: - level: 1 label: Fail anchor: > Vague ("we'll look into it") or no resolution offered; customer left without a path. signals: - vague_resolution - no_resolution_offered - level: 2 label: Advanced Beginner anchor: > Offers a resolution but missing key specifics (no timeline, no method, no amount). signals: - resolution_missing_specifics - level: 3 label: Competent anchor: > Offers a concrete resolution with method (refund/replacement), amount /channel, and next step. signals: - concrete_method - concrete_amount_or_channel - concrete_next_step - level: 4 label: Proficient anchor: > Offers a decision-tree of concrete options matched to the customer's stated preference; confirms acceptance. signals: - decision_tree_of_options - matched_to_customer_preference - confirms_acceptance - level: 5 label: Mastery / Entrustable anchor: > Tailors resolution to policy + customer constraint, names the exception /risk considered, and closes the loop with a verification step. signals: - names_exception_or_risk - closes_loop_with_verification - coaches_peers - id: de_escalation name: De-escalation weight: 0.20 conjunctive_floor: null levels: - level: 1 label: Fail anchor: > Defensive, blames customer/company policy, or matches the customer's escalation. signals: - defensive - blames_customer_or_policy - matches_escalation - level: 2 label: Advanced Beginner anchor: > Avoids escalation but through avoidance/deflection rather than active de-escalation. signals: - avoidance_or_deflection - level: 3 label: Competent anchor: > Uses an explicit de-escalation move (acknowledge → reframe → offer), one cycle. signals: - explicit_acknowledge_reframe_offer - level: 4 label: Proficient anchor: > Cycles through acknowledge/reframe as needed; lowers intensity without conceding policy inappropriately. signals: - cycles_acknowledge_reframe - lowers_intensity_without_conceding_policy - level: 5 label: Mastery / Entrustable anchor: > Prevents re-escalation by reading early signals; preserves relationship and policy simultaneously. signals: - prevents_re_escalation - reads_early_signals - preserves_relationship_and_policy - coaches_peers - id: professionalism name: Professionalism / Conduct weight: 0.15 conjunctive_floor: 2 levels: - level: 1 label: Fail anchor: > Unprofessional language, breaks role, gives prohibited advice (legal/medical/financial), or insults customer. signals: - unprofessional_language - breaks_role - prohibited_advice - insults_customer - level: 2 label: Advanced Beginner anchor: > Mostly professional but uses jargon ("RMA", "SLA") or breaks tone once. signals: - uses_jargon - breaks_tone_once - level: 3 label: Competent anchor: > Plain-language, in-role throughout, no prohibited advice. signals: - plain_language - in_role_throughout - no_prohibited_advice - level: 4 label: Proficient anchor: > Adapts register to customer; concise for voice (1–3 sentences); manages silence well. signals: - adapts_register - concise_for_voice - manages_silence - level: 5 label: Mastery / Entrustable anchor: > Consistently concise, on-brand, voice-appropriate; could serve as a call-center exemplar. signals: - consistently_concise - on_brand - voice_appropriate - call_center_exemplar - coaches_peers archetype_weights: refund: empathy: 0.35 resolution: 0.30 de_escalation: 0.20 professionalism: 0.15 complaint: empathy: 0.40 resolution: 0.25 de_escalation: 0.20 professionalism: 0.15 # Dynamic re-weighting when the escalate branch triggers (RESEARCH §6.3 — # static config in v0.3; dynamic re-weighting is a future feature per grill Axis 9). escalated_weights: empathy: 0.30 resolution: 0.20 de_escalation: 0.40 professionalism: 0.10