|
| 1 | +# Support Playbook |
| 2 | +**🚧 In Progress 🚧** |
| 3 | + |
| 4 | +## 👉 Start Here |
| 5 | +This document is for *things that look broken* somewhere in the Kleros product ecosystem. |
| 6 | + |
| 7 | +<center> |
| 8 | +<img src="../.gitbook/assets/broken-icosahedron.png" width="400"/> |
| 9 | +</center> |
| 10 | + |
| 11 | +If you’re pretty sure you’ve found something that’s broken, please ask yourself... |
| 12 | + |
| 13 | +### 🔔🗯 **Is this a *major* issue that needs to be resolved in 24 hours or less?** |
| 14 | +If so, follow the steps in the [Major Issues section below](#major-issues). |
| 15 | + |
| 16 | +Examples: |
| 17 | +* Any **downtime in vital fonctions** of the application. |
| 18 | +* Any 🛡**security issue** that cannot wait another minute. |
| 19 | +* An issue putting the **Kleros reputation** at major risk. |
| 20 | + |
| 21 | + |
| 22 | +### 🔕💬 **Is this something that can be addressed on a longer timeline?** |
| 23 | +If so, follow the steps in the [Everything Else section below](#everything-else). |
| 24 | + |
| 25 | + |
| 26 | +## 🚨 Major Issues |
| 27 | + |
| 28 | +### 🛡 Security Issues |
| 29 | +Please refer to the [Security Disclosure page](../contribution-guidelines/smart-contract-workflow/reporting-vulnerabilities.md). |
| 30 | + |
| 31 | +### 🧯 Non-Security Issues |
| 32 | + |
| 33 | +If you have found a major issue that needs to be resolved in **24 hours or less** (this should be rare), please: |
| 34 | + |
| 35 | +1. Go to the [TODO] channel in the ***Product Support*** section/thread etc |
| 36 | +2. Create a message with the following information: |
| 37 | + * Where you found the issue, |
| 38 | + * Description of the behavior, step-by-step instructions on how to recreate the issue, |
| 39 | + * User account information for any known impacted accounts, |
| 40 | + * Screenshots (if relevant), |
| 41 | + * Relevant device info (mobile/desktop, browser, etc). |
| 42 | +3. Someone from the Team will respond to you ASAP to let you know that the issue has been seen. The Team member will pull in the relevant team members to begin working on the problem and provide updates in [TODO: public issue tracker?]. |
| 43 | + |
| 44 | +## 🐛 Everything Else |
| 45 | + |
| 46 | +If you have found an issue that does not need to be resolved immediately (this should be most things), please: |
| 47 | + |
| 48 | +1. Go to the [TODO] channel in the ***Product Support*** section/thread for the product/protocol for which you need help: |
| 49 | + * Integrations & Developers |
| 50 | + * Court |
| 51 | + * Proof of Humanity |
| 52 | + * ... |
| 53 | +2. Create a short descriptive title for the issue with the following information: |
| 54 | + * Where you found the issue, |
| 55 | + * Description of the behavior, step-by-step instructions on how to recreate the issue, |
| 56 | + * User account information for any known impacted accounts, |
| 57 | + * Screenshots (if relevant), |
| 58 | + * Relevant device info (mobile/desktop, browser, etc). |
| 59 | +5) The Product Owner will acknowledge seeing your tag within the next business day and add the issue to the backlog. They may ask follow-up questions as part of this process. Once in the backlog, the issue will be prioritized accordingly and the Product Owner will provide updates as appropriate. |
| 60 | + |
| 61 | +## 🚑 Support Service Levels |
| 62 | + |
| 63 | +Support is provided by resources made available by the **Kleros Cooperative**. |
| 64 | + |
| 65 | +### 👨⚕️ Playbook & Expectations |
| 66 | +**🚧 In Progress 🚧** |
| 67 | + |
| 68 | +| Playbook | 🚨 Emergencies | 🐛 Everything Else | |
| 69 | +| --- | --- | --- | |
| 70 | +| **Support channel** | [TODO] <br/> `#emergency-support` | [TODO] <br/> `#dev-support` <br/> `#[product]-support` | |
| 71 | +| **Monitored by** | Product Owner <br/>AND<br/> Engineers On-Call | Product Owner | |
| 72 | +| **Triage and Prioritization** | Whoever sees the issue first begins work immediately | Wait for prioritization by Product Owner | |
| 73 | +| **First response time** | ASAP | Within 1 business day | |
| 74 | +| **Expectations** | Issue is worked on until resolved, even outside of normal business hours | Issue is *not* worked on outside of normal business hours unless indicated otherwise |
| 75 | +| **Escalation after** | 1 Hour | 5 days if stagnant | |
| 76 | +| **Escalation channel** | Tag the `@TODO` team| Tag `@[Product]Owner` | |
| 77 | + |
| 78 | +### 🌡 Useful Metrics |
| 79 | +These metrics may be observed over different time periods (daily, weekly, monthly, quarterly, yearly). |
| 80 | + |
| 81 | +* Satisfaction |
| 82 | +* Average Issue Count |
| 83 | +* Ticket Backlog |
| 84 | +* First Response Time |
| 85 | +* First Response Resolution Rate (for example a response pointing to a * solution documented in the [Support FAQ](./support-faq.md)). |
| 86 | +* Average Response Time |
| 87 | +* Number of Interactions per Issue |
| 88 | +* Average Ticket Resolution Issue |
| 89 | +* Issue Resolution Rate |
| 90 | + |
| 91 | +For [more information on these metrics](https://blog.hubspot.com/service/customer-experience-metrics). |
| 92 | + |
| 93 | +## 🧗♀️ Escalation Contacts |
| 94 | + |
| 95 | +* Security Team: [Reporting Page](../contribution-guidelines/smart-contract-workflow/reporting-vulnerabilities.md) |
| 96 | +* Developer Relations: Emmett (@TG) |
| 97 | +* Product Owners |
| 98 | + * Court v1: [TODO (@TG)] |
| 99 | + * Court v2: [TODO (@TG)] |
| 100 | + * Curate: [TODO (@TG)] |
| 101 | + * Tokens: [TODO (@TG)] |
| 102 | + * Reality oracle: [TODO (@TG)] |
| 103 | + * Proof of Humanity v1: [TODO (@TG)] |
| 104 | + * Proof of Humanity v2: [TODO (@TG)] |
| 105 | + * Governor and Zodiac Reality: [TODO (@TG)] |
| 106 | + * Moderate: [TODO (@TG)] |
| 107 | + * Vea bridge: [TODO (@TG)] |
| 108 | + * Escrow: [TODO (@TG)] |
| 109 | + * Linguo: [TODO (@TG)] |
| 110 | + * Dispute Resolver: [TODO (@TG)] |
| 111 | + |
| 112 | +## 🌿 Ticket Lifecyle |
| 113 | + |
| 114 | +### 📝 From Issue Report to Ticket Creation |
| 115 | + |
| 116 | +The relevant Team members are responsible for monitoring the issues reported in the Support communication channels/threads below according to the severity of the issue. As a general rule, *a ticket is created to track the issue*, it is then triaged and prioritized before being picked up a team member. This process is fast-tracked for emergencies. |
| 117 | + |
| 118 | +### 🤝 Resolution |
| 119 | + |
| 120 | +Once a ticket has been assigned or self-assigned, the assigned engineer is responsible for further ticket hygiene including: |
| 121 | +* Keeping the ticket status up to date (In Progress, PR review, etc) |
| 122 | +* Attaching relevant PRs. |
| 123 | +* Staying focused on the ticket and completing in high priority. |
| 124 | + |
| 125 | +If the assigned engineer does not finish their ticket before [TODO: rotating schedule for support duties?], they will either: |
| 126 | +* Notify the Product Owner that they will stay with the ticket through completion, OR |
| 127 | +* Document their notes and hand-off to the next on-call engineer. |
| 128 | + |
| 129 | +### 🚦 Status Tracking |
| 130 | +[TODO: public issue tracker?] |
| 131 | + |
| 132 | +The following status markers are used: |
| 133 | +* 🔴 Issue has been received & is being triaged |
| 134 | +* ⭕️ Issue is on-going & being worked on |
| 135 | +* 🟡 A fix has been provided for the issue and is awaiting confirmation/deployment |
| 136 | +* 🟢 Issue is resolved |
| 137 | + |
| 138 | + |
0 commit comments