|
1 | | -# Customer Communication Guidelines for GitHub Issues |
| 1 | +# Customer Communication Guidelines for MSAL Android |
2 | 2 |
|
3 | | -This document provides guidelines for AI agents and team members when responding to MSAL Android GitHub issues. Professional, helpful, and empathetic communication builds trust and helps resolve issues efficiently. |
| 3 | +This document provides guidelines for AI agents and team members when responding to MSAL Android users across **all interaction channels**, including GitHub issues, web chat, and agent sessions. Professional, helpful, and empathetic communication builds trust and helps resolve issues efficiently. |
| 4 | + |
| 5 | +> **IMPORTANT**: Always assume that any user interacting with GitHub Copilot or AI agents about the MSAL Android repository is a **3rd party external customer**, not an internal developer. Responses must be clear, accessible, and avoid assumptions about the user's familiarity with internal Microsoft processes or deep authentication expertise. |
4 | 6 |
|
5 | 7 | --- |
6 | 8 |
|
7 | 9 | ## Table of Contents |
8 | 10 |
|
9 | | -1. [Communication Principles](#communication-principles) |
10 | | -2. [Response Templates](#response-templates) |
11 | | -3. [Issue Triage Guidelines](#issue-triage-guidelines) |
12 | | -4. [Escalation Procedures](#escalation-procedures) |
13 | | -5. [What NOT to Do](#what-not-to-do) |
| 11 | +1. [Interaction Channels](#interaction-channels) |
| 12 | +2. [Audience Assumptions](#audience-assumptions) |
| 13 | +3. [Communication Principles](#communication-principles) |
| 14 | +4. [Response Templates](#response-templates) |
| 15 | +5. [Issue Triage Guidelines](#issue-triage-guidelines) |
| 16 | +6. [Escalation Procedures](#escalation-procedures) |
| 17 | +7. [What NOT to Do](#what-not-to-do) |
| 18 | + |
| 19 | +--- |
| 20 | + |
| 21 | +## Interaction Channels |
| 22 | + |
| 23 | +These guidelines apply to **all** channels where users interact with MSAL Android support: |
| 24 | + |
| 25 | +### GitHub Issues |
| 26 | +- Users report bugs, request features, or ask questions |
| 27 | +- Responses are public and permanent |
| 28 | +- Follow issue templates and labeling conventions |
| 29 | + |
| 30 | +### Web Chat (GitHub Copilot Chat) |
| 31 | +- Users ask questions in real-time via Copilot |
| 32 | +- Focus on immediate, actionable answers |
| 33 | +- Keep responses concise but complete |
| 34 | +- Provide code examples when helpful |
| 35 | + |
| 36 | +### Agent Sessions (Copilot Workspace, CLI) |
| 37 | +- Users may be actively implementing MSAL |
| 38 | +- Provide working code that follows current best practices |
| 39 | +- Always use Parameters-based APIs (MSAL 8.+) |
| 40 | +- Reference golden examples from the repository |
| 41 | + |
| 42 | +### General Principles Across All Channels |
| 43 | + |
| 44 | +| Principle | Application | |
| 45 | +|-----------|-------------| |
| 46 | +| Clarity | Use plain language; avoid jargon unless explained | |
| 47 | +| Completeness | Provide all necessary context and steps | |
| 48 | +| Accuracy | Verify code and links before sharing | |
| 49 | +| Respect | Treat every question as valid and important | |
| 50 | + |
| 51 | +--- |
| 52 | + |
| 53 | +## Audience Assumptions |
| 54 | + |
| 55 | +### Who Are Our Users? |
| 56 | + |
| 57 | +**Always assume users are 3rd party external customers:** |
| 58 | + |
| 59 | +- **Mobile app developers** integrating authentication into Android apps |
| 60 | +- **Enterprise developers** building line-of-business applications |
| 61 | +- **Independent developers** creating apps for the Play Store |
| 62 | +- **Consultants** implementing solutions for clients |
| 63 | + |
| 64 | +### What NOT to Assume |
| 65 | + |
| 66 | +| Don't Assume | Instead | |
| 67 | +|--------------|---------| |
| 68 | +| User knows Azure AD internals | Explain authentication concepts clearly | |
| 69 | +| User has read all documentation | Provide relevant links and summaries | |
| 70 | +| User understands OAuth2/OIDC deeply | Explain token flows when relevant | |
| 71 | +| User has access to internal tools | Only reference public resources | |
| 72 | +| User is familiar with Microsoft terminology | Define terms like "broker," "claims," "scopes" | |
| 73 | + |
| 74 | +### Adjust Complexity Based on Context |
| 75 | + |
| 76 | +**For beginners:** |
| 77 | +- Provide step-by-step instructions |
| 78 | +- Include complete code examples |
| 79 | +- Explain the "why" behind recommendations |
| 80 | +- Link to getting-started guides |
| 81 | + |
| 82 | +**For experienced developers:** |
| 83 | +- Focus on the specific issue |
| 84 | +- Provide targeted solutions |
| 85 | +- Reference API documentation |
| 86 | +- Offer optimization suggestions |
| 87 | + |
| 88 | +### Key Vocabulary to Define |
| 89 | + |
| 90 | +When using these terms, include a brief explanation if context suggests the user may be unfamiliar: |
| 91 | + |
| 92 | +| Term | Plain Language Explanation | |
| 93 | +|------|---------------------------| |
| 94 | +| Broker | The Microsoft Authenticator app or Company Portal that handles sign-in securely | |
| 95 | +| Silent token acquisition | Getting a new access token without prompting the user to sign in | |
| 96 | +| Claims | Information about the user included in the token | |
| 97 | +| Scopes | Permissions your app is requesting | |
| 98 | +| Redirect URI | The URL Azure sends the user back to after sign-in | |
| 99 | +| PCA | Public Client Application - the main MSAL object for mobile apps | |
14 | 100 |
|
15 | 101 | --- |
16 | 102 |
|
@@ -52,14 +138,29 @@ Thank you for reporting this issue! We appreciate you taking the time to help us |
52 | 138 |
|
53 | 139 | I'm looking into this now and will provide an update shortly. In the meantime, could you please provide: |
54 | 140 |
|
55 | | -1. **MSAL Version**: (e.g., 7.1.0) |
| 141 | +1. **MSAL Version**: (e.g., 8.0.0) |
56 | 142 | 2. **Android Version**: (Device API level) |
57 | 143 | 3. **Account Mode**: (Single or Multiple) |
58 | 144 | 4. **Complete error message or stack trace** |
59 | 145 |
|
60 | 146 | This information will help us diagnose the issue more quickly. |
61 | 147 | ``` |
62 | 148 |
|
| 149 | +### Quick Web Chat Response |
| 150 | + |
| 151 | +Use this format when responding to questions in web chat or agent sessions: |
| 152 | + |
| 153 | +```markdown |
| 154 | +**Quick Answer**: [Direct answer to the question] |
| 155 | + |
| 156 | +**Example**: |
| 157 | +```java |
| 158 | +// [Minimal working code example] |
| 159 | +``` |
| 160 | + |
| 161 | +**Learn More**: [Link to relevant documentation or example] |
| 162 | +``` |
| 163 | +
|
63 | 164 | ### Requesting More Information |
64 | 165 |
|
65 | 166 | ```markdown |
@@ -318,17 +419,46 @@ If you believe this is an MSAL Android issue, please provide additional details |
318 | 419 |
|
319 | 420 | ## Quality Checklist |
320 | 421 |
|
321 | | -Before responding to any issue, verify: |
| 422 | +Before responding in **any channel**, verify: |
322 | 423 |
|
| 424 | +### All Channels |
323 | 425 | - [ ] Tone is professional and empathetic |
324 | | -- [ ] Response is clear and actionable |
325 | | -- [ ] Code examples follow current API patterns |
326 | | -- [ ] Links are valid and relevant |
| 426 | +- [ ] Response is clear and accessible to 3rd party developers |
| 427 | +- [ ] Technical terms are explained when needed |
| 428 | +- [ ] Code examples follow current API patterns (MSAL 8.+) |
| 429 | +- [ ] Links are valid and point to public resources |
327 | 430 | - [ ] No sensitive information is exposed |
328 | 431 | - [ ] Response addresses the actual question |
| 432 | + |
| 433 | +### GitHub Issues Specific |
329 | 434 | - [ ] Appropriate labels are applied |
330 | 435 | - [ ] Follow-up is planned if needed |
| 436 | +- [ ] Issue template requirements are met |
| 437 | + |
| 438 | +### Web Chat / Agent Session Specific |
| 439 | +- [ ] Response is concise and actionable |
| 440 | +- [ ] Code is immediately usable |
| 441 | +- [ ] Golden examples are referenced when appropriate |
| 442 | + |
| 443 | +--- |
| 444 | + |
| 445 | +## Channel-Specific Tips |
| 446 | + |
| 447 | +### Web Chat Best Practices |
| 448 | + |
| 449 | +1. **Be direct** - Users expect quick answers |
| 450 | +2. **Lead with the solution** - Don't bury the answer in context |
| 451 | +3. **Provide runnable code** - Make copy-paste work |
| 452 | +4. **Offer follow-up** - "Would you like me to explain X further?" |
| 453 | + |
| 454 | +### Agent Session Best Practices |
| 455 | + |
| 456 | +1. **Understand the context** - Review what the user is building |
| 457 | +2. **Provide complete implementations** - Not just snippets |
| 458 | +3. **Follow repository patterns** - Use snippets/ directory as reference |
| 459 | +4. **Validate before suggesting** - Ensure code compiles |
| 460 | +5. **Consider edge cases** - Handle errors appropriately |
331 | 461 |
|
332 | 462 | --- |
333 | 463 |
|
334 | | -*These guidelines are maintained by the MSAL Android team. For questions about specific situations, consult with the team lead.* |
| 464 | +*These guidelines are maintained by the MSAL Android team and apply to all interaction channels. For questions about specific situations, consult with the team lead.* |
0 commit comments