File size: 2,412 Bytes
2ade2c6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from __future__ import annotations

from tasks.base import SupportTaskSpec, KnowledgeSnippet, SupportTicket

TASK = SupportTaskSpec(
    task_id="account_takeover_medium",
    difficulty="medium",
    title="Account takeover recovery",
    objective=(
        "Identify an account compromise, lock the account, start recovery, "
        "and communicate next steps without leaking security-sensitive details."
    ),
    ticket=SupportTicket(
        customer_name="Anjali Menon",
        customer_tier="enterprise",
        company="Saffron Logistics",
        subject="Someone changed our admin email",
        body=(
            "Our main admin email was changed and we lost access. "
            "We’re seeing unfamiliar login alerts from overseas. Urgent help needed."
        ),
        region="us-east-1",
        affected_users=240,
        sla_minutes_remaining=120,
    ),
    knowledge_base=(
        KnowledgeSnippet(
            article_id="kb-compromise-protocol",
            title="Account compromise protocol",
            content=(
                "Immediately lock the account, invalidate active sessions, require admin re-verification, "
                "and collect proof of ownership (billing zip, last 4 of card, admin ID)."
            ),
        ),
        KnowledgeSnippet(
            article_id="kb-enterprise-sla",
            title="Enterprise SLA",
            content="Enterprise incidents must be contained within 2 hours. Provide status updates every 30 minutes.",
        ),
    ),
    gold_queue="trust_and_safety",
    gold_priority="urgent",
    gold_issue_type="account_compromise",
    gold_status="escalated",
    gold_resolution_code="security_lock_and_verify",
    required_requested_fields=("ownership_proof", "billing_zip", "last4_card"),
    required_reply_markers=(
        ("locked", "account"),
        ("invalidate", "sessions"),
        ("verify", "ownership"),
        ("sla", "updates"),
    ),
    required_note_markers=(("account locked",), ("ownership proof requested",)),
    risk_flags=("security_incident", "sla_breach"),
    follow_up_outcome="partial",
    follow_up_message="Customer provided billing zip but not card last4 yet.",
    follow_up_provided_fields=("billing_zip",),
    follow_up_wrong_fields=("card_last4",),
    sla_step_cost=18,
    over_escalation_queues=("security_ops",),
    under_escalation_deadline_step=4,
    max_steps=7,
)