[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CTG8KX7A6P6WGV285MV631":3,"skill-same:01M6CTG8KX7A6P6WGV285MV631":174},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":6,"ownerDescription":45,"updatedAt":46,"install":47,"resources":59},"01M6CTG8KX7A6P6WGV285MV631","support-operations",null,"Designs customer support: FAQs, response-time tiers (SLAs), escalation paths and a feedback loop to product. Use when setting up or improving support.","vibbs\u002Fcompany-os","vibbs","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F7379149?v=4","01M6CT6M03CAS1H7RA89F3965B","Vibbs Dod","01M6CT6M4MY60C9FFQ3AAR2RSK",6,"MIT","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Fos\u002Fskills\u002Fsupport-operations\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"support","operations","support operations","customer","product","escalation","loop","feedback","use","up","customer support","time","2026-11-10 10:12:30",false,"---\nname: support-operations\ndescription: \"Designs customer support: FAQs, response-time tiers (SLAs), escalation paths and a feedback loop to product. Use when setting up or improving support.\"\nruntimes:\n  claude:\n    user-invocable: true\n---\n\n# Support Operations\n\n## Reference\n- **ID**: S-OPS-07\n- **Category**: Ops & Risk\n- **Inputs**: PRDs in `artifacts\u002Fprds\u002F`, feature list, support channel config from `company.config.yaml` (`support.*`)\n- **Outputs**: FAQ docs in `artifacts\u002Fsupport\u002Ffaq-*.md`, SLA definitions in `artifacts\u002Fsupport\u002Fsla-*.md`\n- **Used by**: Ops & Risk Agent\n- **Tool scripts**: `.\u002Ftools\u002Fops\u002Fsupport-faq-check.sh`, `.\u002Ftools\u002Fartifact\u002Fvalidate.sh`\n\n## Purpose\n\nBuild and maintain customer support infrastructure that scales with the product. Generate FAQs from product features, define SLA tiers, design escalation paths, and create a feedback pipeline back to product. Support is not an afterthought -- it is a core operational function that directly impacts retention and product quality.\n\n## When to Use\n\n- After shipping a new feature (update FAQ to cover it)\n- When establishing support for the first time\n- When scaling support channels (adding chat, phone, or self-serve)\n- When support ticket volume indicates process issues\n- During periodic support infrastructure reviews\n\n## Procedure\n\n### Step 1: Load Context\n\nBefore generating any support artifacts:\n\n1. **Read `company.config.yaml`** -- extract `support.*` section (channels, sla_tier, escalation_email), `company.stage`, and `company.product`\n2. **Read PRDs** in `artifacts\u002Fprds\u002F` -- build a feature inventory from shipped\u002Fapproved PRDs\n3. **Check existing support artifacts** in `artifacts\u002Fsupport\u002F` -- understand current FAQ coverage, SLA definitions, and any existing escalation documentation\n4. **Check `standards\u002Fops\u002Fsupport-runbook.md`** -- load the operational support runbook for procedural alignment\n5. **Check `standards\u002Fops\u002Finbound-loop-sop.md`** -- understand the full inbound feedback pipeline cadence and routing rules\n\n### Step 2: FAQ Generation\n\nFor each shipped feature (PRDs with status `approved` or linked to completed implementations):\n\n1. **Extract user-facing behaviors** from the PRD's acceptance criteria\n2. **Anticipate common questions** for each behavior:\n   - **How to**: How do I use this feature?\n   - **What if**: What happens if I do X incorrectly?\n   - **Why**: Why does the feature work this way?\n   - **Troubleshooting**: The feature is not working -- what should I check?\n3. **Produce FAQ entries** with the following structure for each entry:\n   - **Question**: The user's question in natural language\n   - **Answer**: Clear, step-by-step answer\n   - **Category**: Getting Started | Account | Features | Billing | Troubleshooting\n   - **Related Feature**: Link to the PRD or feature name\n   - **Last Updated**: Date of last review\n4. **Group entries by category**:\n   - **Getting Started** -- onboarding, first-time setup, quick start\n   - **Account** -- login, password, profile, permissions\n   - **Features** -- feature-specific how-to and configuration\n   - **Billing** -- pricing, invoices, plan changes, cancellation\n   - **Troubleshooting** -- error resolution, performance issues, workarounds\n5. **Validate coverage** -- run `.\u002Ftools\u002Fops\u002Fsupport-faq-check.sh` to verify FAQ entries exist for all PRD acceptance criteria\n\n### Step 3: SLA Tier Definitions\n\nDefine SLA tiers based on `company.stage` and the `support.sla_tier` config value:\n\n| Tier | Default Stage | Channels | Response Time | Resolution Time | Availability |\n|------|---------------|----------|---------------|-----------------|--------------|\n| **Basic** | idea \u002F mvp | Email only | 48 hours | 5 business days | Business hours (9am-5pm local) |\n| **Standard** | growth | Email + Chat | 24 hours | 2 business days | Extended hours (8am-8pm local) |\n| **Premium** | scale | Email + Chat + Phone | 4 hours | 24 hours | 24\u002F7 |\n\nFor each tier, define:\n\n- **Response time**: Maximum time to first human response\n- **Resolution time**: Maximum time to resolve or provide a workaround\n- **Escalation triggers**: Conditions that auto-escalate (e.g., response SLA breach, P0 severity)\n- **Availability hours**: When support is staffed\n- **Included channels**: Which contact methods are available\n- **Priority handling**: How priority levels map to response\u002Fresolution targets within the tier\n\n### Step 4: Escalation Path Design\n\nDefine escalation levels with clear boundaries:\n\n| Level | Name | Handles | % of Queries | Max Time Before Escalation |\n|-------|------|---------|--------------|----------------------------|\n| **L1** | Self-serve | FAQ, docs, knowledge base | 60-70% | N\u002FA (user-initiated escalation) |\n| **L2** | Email\u002FChat support | First human contact, standard issues | 20-25% | Based on SLA tier resolution time |\n| **L3** | Engineering escalation | Bugs, data issues, security concerns | 5-10% | 4 hours at L3 before L4 review |\n| **L4** | Executive escalation | Critical business impact, legal, data loss | \u003C1% | Immediate resolution track |\n\n**Solopreneur Mode** (idea\u002Fmvp stage):\n\nEscalation tiers for solo founders:\n- **L1**: Self-serve docs (FAQ, help center, in-app tooltips)\n- **L2**: You — async email (aim for \u003C 4 hour response during business hours)\n- **L3**: You — synchronous investigation (scheduled call for complex issues)\n- **L4**: You + hosting provider support (emergency, infrastructure issues)\n\nFirst-person communication builds more trust with early customers than corporate-sounding responses. Use your name, be direct, follow up personally.\n\nFor each level, document:\n\n- **Trigger criteria**: What conditions cause escalation to this level\n- **Maximum time at level**: How long before auto-escalation to the next level\n- **Notification recipients**: Who gets notified when an issue reaches this level\n- **Required information**: What must be documented before escalating\n- **De-escalation criteria**: When an issue can be moved back down\n\n### Step 5: Multi-Channel Support Strategy\n\nBased on `support.channels` config, for each configured channel:\n\n**Email Support:**\n- Setup: dedicated support inbox, auto-responder with ticket confirmation\n- Response templates for common categories\n- Automation: auto-categorize by keywords, auto-assign by category\n- Recommended for: all stages (baseline channel)\n\n**Chat Support:**\n- Setup: chat widget integration, canned responses, operating hours display\n- Response templates for real-time conversations\n- Automation: chatbot for L1 deflection, human handoff triggers\n- Recommended for: growth stage and above\n\n**Self-Serve:**\n- Setup: knowledge base \u002F help center, search functionality, feedback widget\n- Content: FAQ articles, how-to guides, video tutorials\n- Automation: AI-powered search suggestions, related article recommendations\n- Recommended for: all stages (reduces ticket volume by 30-50%)\n\nRecommend channel priority based on `company.stage`:\n- **idea\u002Fmvp**: Self-serve + Email (minimal overhead)\n- **growth**: Self-serve + Email + Chat (balanced coverage)\n- **scale**: Self-serve + Email + Chat + Phone (full coverage)\n\n### Step 6: De-escalation Scripts\n\nProduce scripts for common high-emotion scenarios. Each script includes:\n\n**Billing Dispute:**\n- Opening: Acknowledge the concern, confirm you understand the billing issue\n- Investigation: Review account billing history, identify the discrepancy\n- Resolution options: Refund, credit, plan adjustment, explanation\n- Follow-up: Confirm resolution, document for future reference\n\n**Feature Not Working:**\n- Opening: Acknowledge frustration, confirm the expected behavior\n- Investigation: Reproduce the issue, check known issues list, gather environment details\n- Resolution options: Workaround, bug report escalation, timeline for fix\n- Follow-up: Notify when fixed, verify resolution\n\n**Data Loss Concern:**\n- Opening: Take the concern seriously immediately, escalate urgency internally\n- Investigation: Check backup systems, audit logs, data recovery options\n- Resolution options: Data restoration, export assistance, compensation\n- Follow-up: Root cause report, prevention measures implemented\n\n**Slow Response Complaint:**\n- Opening: Apologize for the delay, validate their experience\n- Investigation: Review ticket history, identify where the delay occurred\n- Resolution options: Immediate attention to original issue, SLA review\n- Follow-up: Process improvement commitment, direct contact for future issues\n\n### Step 7: Support Ticket Classification\n\nDefine a taxonomy for incoming support tickets:\n\n| Category | Priority Rules | Routing | Expected Resolution |\n|----------|---------------|---------|---------------------|\n| **Bug Report** | P0 if data loss\u002Fsecurity, P1 if blocking, P2 if workaround exists, P3 if cosmetic | L2 triage, L3 if confirmed bug | Fix or workaround per severity |\n| **Feature Request** | P3 (backlog) | L2 documents, routes to product | Acknowledgment + roadmap context |\n| **How-To Question** | P3 | L1 self-serve, L2 if complex | FAQ link or guided answer |\n| **Billing Issue** | P1 if overcharge, P2 otherwise | L2 with billing access | Same-day for overcharges |\n| **Account Issue** | P1 if locked out, P2 otherwise | L2 with account access | Same-day for lockouts |\n| **Security Concern** | P0 always | L3 immediate, L4 if confirmed breach | Immediate investigation |\n| **Performance Issue** | P1 if widespread, P2 if isolated | L2 triage, L3 if infrastructure | Investigation within SLA |\n\n### Step 8: Support-to-Product Feedback Pipeline\n\nDefine how support insights feed back to product development:\n\n1. **Weekly aggregation**: Aggregate ticket categories and volumes weekly\n2. **Top-5 pain points**: Identify the top 5 most frequent or most severe support themes\n3. **Feedback formatting**: Format insights for the feedback-synthesizer skill:\n   - Theme name and description\n   - Ticket count and trend (increasing\u002Fdecreasing\u002Fstable)\n   - Representative user quotes (anonymized)\n   - Suggested product action (fix, improve, document, deprioritize)\n4. **Support themes artifact**: Create `artifacts\u002Fsupport\u002Fsupport-themes-{date}.md` summarizing:\n   - Period covered\n   - Total ticket volume and breakdown by category\n   - Top pain points with severity and frequency\n   - Recommended product actions\n   - Comparison to previous period (if available)\n5. **Feedback loop closure**: Track which support themes resulted in product changes, and update FAQ\u002Fdocs when fixes ship\n\nSee `standards\u002Fops\u002Finbound-loop-sop.md` for the bi-weekly feedback synthesis cadence that feeds support themes into feedback-synthesizer and the full inbound loop pipeline.\n\n### Step 9: Save Artifacts\n\n1. Save FAQ documents to `artifacts\u002Fsupport\u002Ffaq-{feature-name}.md` with proper artifact frontmatter:\n   ```yaml\n   ---\n   id: FAQ-{feature}\n   type: support-faq\n   status: draft\n   parent: PRD-XXX  # link to source PRD\n   ---\n   ```\n2. Save SLA definitions to `artifacts\u002Fsupport\u002Fsla-{date}.md` with frontmatter:\n   ```yaml\n   ---\n   id: SLA-{date}\n   type: support-sla\n   status: draft\n   ---\n   ```\n3. Save support themes to `artifacts\u002Fsupport\u002Fsupport-themes-{date}.md` with frontmatter:\n   ```yaml\n   ---\n   id: THEMES-{date}\n   type: support-themes\n   status: draft\n   ---\n   ```\n\n### Step 10: Validate\n\nRun `.\u002Ftools\u002Fartifact\u002Fvalidate.sh` on all produced artifacts to verify:\n- YAML frontmatter is complete and well-formed\n- Parent references resolve to existing artifacts\n- Status field is valid\n\n## Cross-References\n\n- **feedback-synthesizer** -- consumes support themes to inform product prioritization\n- **prd-writer** -- source of feature definitions used to generate FAQs\n- **incident-response** -- handles P0\u002FP1 escalations that originate from support tickets\n- **privacy-data-handling** -- governs what customer data support agents can access\n- **customer-conversations** -- conversation logs (CONV-) are a source input alongside support tickets for feedback-synthesizer\n- **inbound-loop-sop** -- `standards\u002Fops\u002Finbound-loop-sop.md` documents the full feedback pipeline\n\n## Quality Checklist\n\n- [ ] FAQ entries cover all acceptance criteria from shipped PRDs\n- [ ] FAQ coverage validated with `.\u002Ftools\u002Fops\u002Fsupport-faq-check.sh`\n- [ ] SLA tiers defined with response time, resolution time, escalation triggers, and availability\n- [ ] SLA tier selection is appropriate for the configured `company.stage`\n- [ ] Escalation paths defined for L1 through L4 with trigger criteria and time limits\n- [ ] Channel strategy aligns with configured `support.channels` and stage\n- [ ] De-escalation scripts cover billing, feature, data loss, and response time scenarios\n- [ ] Ticket classification taxonomy includes priority rules and routing for all categories\n- [ ] Support-to-product feedback pipeline is defined with weekly cadence\n- [ ] All artifacts have proper YAML frontmatter and pass validation\n","# Support Operations\n\n## Reference\n- **ID**: S-OPS-07\n- **Category**: Ops & Risk\n- **Inputs**: PRDs in `artifacts\u002Fprds\u002F`, feature list, support channel config from `company.config.yaml` (`support.*`)\n- **Outputs**: FAQ docs in `artifacts\u002Fsupport\u002Ffaq-*.md`, SLA definitions in `artifacts\u002Fsupport\u002Fsla-*.md`\n- **Used by**: Ops & Risk Agent\n- **Tool scripts**: `.\u002Ftools\u002Fops\u002Fsupport-faq-check.sh`, `.\u002Ftools\u002Fartifact\u002Fvalidate.sh`\n\n## Purpose\n\nBuild and maintain customer support infrastructure that scales with the product. Generate FAQs from product features, define SLA tiers, design escalation paths, and create a feedback pipeline back to product. Support is not an afterthought -- it is a core operational function that directly impacts retention and product quality.\n\n## When to Use\n\n- After shipping a new feature (update FAQ to cover it)\n- When establishing support for the first time\n- When scaling support channels (adding chat, phone, or self-serve)\n- When support ticket volume indicates process issues\n- During periodic support infrastructure reviews\n\n## Procedure\n\n### Step 1: Load Context\n\nBefore generating any support artifacts:\n\n1. **Read `company.config.yaml`** -- extract `support.*` section (channels, sla_tier, escalation_email), `company.stage`, and `company.product`\n2. **Read PRDs** in `artifacts\u002Fprds\u002F` -- build a feature inventory from shipped\u002Fapproved PRDs\n3. **Check existing support artifacts** in `artifacts\u002Fsupport\u002F` -- understand current FAQ coverage, SLA definitions, and any existing escalation documentation\n4. **Check `standards\u002Fops\u002Fsupport-runbook.md`** -- load the operational support runbook for procedural alignment\n5. **Check `standards\u002Fops\u002Finbound-loop-sop.md`** -- understand the full inbound feedback pipeline cadence and routing rules\n\n### Step 2: FAQ Generation\n\nFor each shipped feature (PRDs with status `approved` or linked to completed implementations):\n\n1. **Extract user-facing behaviors** from the PRD's acceptance criteria\n2. **Anticipate common questions** for each behavior:\n   - **How to**: How do I use this feature?\n   - **What if**: What happens if I do X incorrectly?\n   - **Why**: Why does the feature work this way?\n   - **Troubleshooting**: The feature is not working -- what should I check?\n3. **Produce FAQ entries** with the following structure for each entry:\n   - **Question**: The user's question in natural language\n   - **Answer**: Clear, step-by-step answer\n   - **Category**: Getting Started | Account | Features | Billing | Troubleshooting\n   - **Related Feature**: Link to the PRD or feature name\n   - **Last Updated**: Date of last review\n4. **Group entries by category**:\n   - **Getting Started** -- onboarding, first-time setup, quick start\n   - **Account** -- login, password, profile, permissions\n   - **Features** -- feature-specific how-to and configuration\n   - **Billing** -- pricing, invoices, plan changes, cancellation\n   - **Troubleshooting** -- error resolution, performance issues, workarounds\n5. **Validate coverage** -- run `.\u002Ftools\u002Fops\u002Fsupport-faq-check.sh` to verify FAQ entries exist for all PRD acceptance criteria\n\n### Step 3: SLA Tier Definitions\n\nDefine SLA tiers based on `company.stage` and the `support.sla_tier` config value:\n\n| Tier | Default Stage | Channels | Response Time | Resolution Time | Availability |\n|------|---------------|----------|---------------|-----------------|--------------|\n| **Basic** | idea \u002F mvp | Email only | 48 hours | 5 business days | Business hours (9am-5pm local) |\n| **Standard** | growth | Email + Chat | 24 hours | 2 business days | Extended hours (8am-8pm local) |\n| **Premium** | scale | Email + Chat + Phone | 4 hours | 24 hours | 24\u002F7 |\n\nFor each tier, define:\n\n- **Response time**: Maximum time to first human response\n- **Resolution time**: Maximum time to resolve or provide a workaround\n- **Escalation triggers**: Conditions that auto-escalate (e.g., response SLA breach, P0 severity)\n- **Availability hours**: When support is staffed\n- **Included channels**: Which contact methods are available\n- **Priority handling**: How priority levels map to response\u002Fresolution targets within the tier\n\n### Step 4: Escalation Path Design\n\nDefine escalation levels with clear boundaries:\n\n| Level | Name | Handles | % of Queries | Max Time Before Escalation |\n|-------|------|---------|--------------|----------------------------|\n| **L1** | Self-serve | FAQ, docs, knowledge base | 60-70% | N\u002FA (user-initiated escalation) |\n| **L2** | Email\u002FChat support | First human contact, standard issues | 20-25% | Based on SLA tier resolution time |\n| **L3** | Engineering escalation | Bugs, data issues, security concerns | 5-10% | 4 hours at L3 before L4 review |\n| **L4** | Executive escalation | Critical business impact, legal, data loss | \u003C1% | Immediate resolution track |\n\n**Solopreneur Mode** (idea\u002Fmvp stage):\n\nEscalation tiers for solo founders:\n- **L1**: Self-serve docs (FAQ, help center, in-app tooltips)\n- **L2**: You — async email (aim for \u003C 4 hour response during business hours)\n- **L3**: You — synchronous investigation (scheduled call for complex issues)\n- **L4**: You + hosting provider support (emergency, infrastructure issues)\n\nFirst-person communication builds more trust with early customers than corporate-sounding responses. Use your name, be direct, follow up personally.\n\nFor each level, document:\n\n- **Trigger criteria**: What conditions cause escalation to this level\n- **Maximum time at level**: How long before auto-escalation to the next level\n- **Notification recipients**: Who gets notified when an issue reaches this level\n- **Required information**: What must be documented before escalating\n- **De-escalation criteria**: When an issue can be moved back down\n\n### Step 5: Multi-Channel Support Strategy\n\nBased on `support.channels` config, for each configured channel:\n\n**Email Support:**\n- Setup: dedicated support inbox, auto-responder with ticket confirmation\n- Response templates for common categories\n- Automation: auto-categorize by keywords, auto-assign by category\n- Recommended for: all stages (baseline channel)\n\n**Chat Support:**\n- Setup: chat widget integration, canned responses, operating hours display\n- Response templates for real-time conversations\n- Automation: chatbot for L1 deflection, human handoff triggers\n- Recommended for: growth stage and above\n\n**Self-Serve:**\n- Setup: knowledge base \u002F help center, search functionality, feedback widget\n- Content: FAQ articles, how-to guides, video tutorials\n- Automation: AI-powered search suggestions, related article recommendations\n- Recommended for: all stages (reduces ticket volume by 30-50%)\n\nRecommend channel priority based on `company.stage`:\n- **idea\u002Fmvp**: Self-serve + Email (minimal overhead)\n- **growth**: Self-serve + Email + Chat (balanced coverage)\n- **scale**: Self-serve + Email + Chat + Phone (full coverage)\n\n### Step 6: De-escalation Scripts\n\nProduce scripts for common high-emotion scenarios. Each script includes:\n\n**Billing Dispute:**\n- Opening: Acknowledge the concern, confirm you understand the billing issue\n- Investigation: Review account billing history, identify the discrepancy\n- Resolution options: Refund, credit, plan adjustment, explanation\n- Follow-up: Confirm resolution, document for future reference\n\n**Feature Not Working:**\n- Opening: Acknowledge frustration, confirm the expected behavior\n- Investigation: Reproduce the issue, check known issues list, gather environment details\n- Resolution options: Workaround, bug report escalation, timeline for fix\n- Follow-up: Notify when fixed, verify resolution\n\n**Data Loss Concern:**\n- Opening: Take the concern seriously immediately, escalate urgency internally\n- Investigation: Check backup systems, audit logs, data recovery options\n- Resolution options: Data restoration, export assistance, compensation\n- Follow-up: Root cause report, prevention measures implemented\n\n**Slow Response Complaint:**\n- Opening: Apologize for the delay, validate their experience\n- Investigation: Review ticket history, identify where the delay occurred\n- Resolution options: Immediate attention to original issue, SLA review\n- Follow-up: Process improvement commitment, direct contact for future issues\n\n### Step 7: Support Ticket Classification\n\nDefine a taxonomy for incoming support tickets:\n\n| Category | Priority Rules | Routing | Expected Resolution |\n|----------|---------------|---------|---------------------|\n| **Bug Report** | P0 if data loss\u002Fsecurity, P1 if blocking, P2 if workaround exists, P3 if cosmetic | L2 triage, L3 if confirmed bug | Fix or workaround per severity |\n| **Feature Request** | P3 (backlog) | L2 documents, routes to product | Acknowledgment + roadmap context |\n| **How-To Question** | P3 | L1 self-serve, L2 if complex | FAQ link or guided answer |\n| **Billing Issue** | P1 if overcharge, P2 otherwise | L2 with billing access | Same-day for overcharges |\n| **Account Issue** | P1 if locked out, P2 otherwise | L2 with account access | Same-day for lockouts |\n| **Security Concern** | P0 always | L3 immediate, L4 if confirmed breach | Immediate investigation |\n| **Performance Issue** | P1 if widespread, P2 if isolated | L2 triage, L3 if infrastructure | Investigation within SLA |\n\n### Step 8: Support-to-Product Feedback Pipeline\n\nDefine how support insights feed back to product development:\n\n1. **Weekly aggregation**: Aggregate ticket categories and volumes weekly\n2. **Top-5 pain points**: Identify the top 5 most frequent or most severe support themes\n3. **Feedback formatting**: Format insights for the feedback-synthesizer skill:\n   - Theme name and description\n   - Ticket count and trend (increasing\u002Fdecreasing\u002Fstable)\n   - Representative user quotes (anonymized)\n   - Suggested product action (fix, improve, document, deprioritize)\n4. **Support themes artifact**: Create `artifacts\u002Fsupport\u002Fsupport-themes-{date}.md` summarizing:\n   - Period covered\n   - Total ticket volume and breakdown by category\n   - Top pain points with severity and frequency\n   - Recommended product actions\n   - Comparison to previous period (if available)\n5. **Feedback loop closure**: Track which support themes resulted in product changes, and update FAQ\u002Fdocs when fixes ship\n\nSee `standards\u002Fops\u002Finbound-loop-sop.md` for the bi-weekly feedback synthesis cadence that feeds support themes into feedback-synthesizer and the full inbound loop pipeline.\n\n### Step 9: Save Artifacts\n\n1. Save FAQ documents to `artifacts\u002Fsupport\u002Ffaq-{feature-name}.md` with proper artifact frontmatter:\n   ```yaml\n   ---\n   id: FAQ-{feature}\n   type: support-faq\n   status: draft\n   parent: PRD-XXX  # link to source PRD\n   ---\n   ```\n2. Save SLA definitions to `artifacts\u002Fsupport\u002Fsla-{date}.md` with frontmatter:\n   ```yaml\n   ---\n   id: SLA-{date}\n   type: support-sla\n   status: draft\n   ---\n   ```\n3. Save support themes to `artifacts\u002Fsupport\u002Fsupport-themes-{date}.md` with frontmatter:\n   ```yaml\n   ---\n   id: THEMES-{date}\n   type: support-themes\n   status: draft\n   ---\n   ```\n\n### Step 10: Validate\n\nRun `.\u002Ftools\u002Fartifact\u002Fvalidate.sh` on all produced artifacts to verify:\n- YAML frontmatter is complete and well-formed\n- Parent references resolve to existing artifacts\n- Status field is valid\n\n## Cross-References\n\n- **feedback-synthesizer** -- consumes support themes to inform product prioritization\n- **prd-writer** -- source of feature definitions used to generate FAQs\n- **incident-response** -- handles P0\u002FP1 escalations that originate from support tickets\n- **privacy-data-handling** -- governs what customer data support agents can access\n- **customer-conversations** -- conversation logs (CONV-) are a source input alongside support tickets for feedback-synthesizer\n- **inbound-loop-sop** -- `standards\u002Fops\u002Finbound-loop-sop.md` documents the full feedback pipeline\n\n## Quality Checklist\n\n- [ ] FAQ entries cover all acceptance criteria from shipped PRDs\n- [ ] FAQ coverage validated with `.\u002Ftools\u002Fops\u002Fsupport-faq-check.sh`\n- [ ] SLA tiers defined with response time, resolution time, escalation triggers, and availability\n- [ ] SLA tier selection is appropriate for the configured `company.stage`\n- [ ] Escalation paths defined for L1 through L4 with trigger criteria and time limits\n- [ ] Channel strategy aligns with configured `support.channels` and stage\n- [ ] De-escalation scripts cover billing, feature, data loss, and response time scenarios\n- [ ] Ticket classification taxonomy includes priority rules and routing for all categories\n- [ ] Support-to-product feedback pipeline is defined with weekly cadence\n- [ ] All artifacts have proper YAML frontmatter and pass validation\n",{"name":5,"runtimes":36,"description":7},{"claude":37},{"user-invocable":38},true,"main","e842fb6d0e04360c47db78bc2e2e2987314d64d4","os\u002Fskills\u002Fsupport-operations",2,"https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os","https:\u002F\u002Fgithub.com\u002Fvibbs","Principal Engineer · Applied AI · building ArcAI @ GrowthArc","2026-10-21 02:08:08",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":38},[49,52,55],{"tool":50,"command":51},"npx","npx skills add vibbs\u002Fcompany-os --skill support-operations",{"tool":53,"command":54},"bunx","bunx skills add vibbs\u002Fcompany-os --skill support-operations",{"tool":56,"command":57},"pnpm","pnpm dlx skills add vibbs\u002Fcompany-os --skill support-operations","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Fos\u002Fskills\u002Fsupport-operations\u002FSKILL.md",[60,66,70,74,78,84,88,92,96,100,104,108,112,116,120,124,128,132,136,139,145,149,153,157,161,165,168,171],{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},"Standards.md","REFERENCE","参考文档",37094,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FStandards.md",{"path":67,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":68,"sourceHtmlUrl":69},"Templates\u002FData\u002FAgents.yaml",11282,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FData\u002FAgents.yaml",{"path":71,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":72,"sourceHtmlUrl":73},"Templates\u002FData\u002FValidationGates.yaml",7850,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FData\u002FValidationGates.yaml",{"path":75,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":76,"sourceHtmlUrl":77},"Templates\u002FData\u002FVoicePresets.yaml",4142,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FData\u002FVoicePresets.yaml",{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"Templates\u002FEvals\u002FComparison.hbs","OTHER","其他",3815,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FEvals\u002FComparison.hbs",{"path":85,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":86,"sourceHtmlUrl":87},"Templates\u002FEvals\u002FJudge.hbs",3603,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FEvals\u002FJudge.hbs",{"path":89,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":90,"sourceHtmlUrl":91},"Templates\u002FEvals\u002FReport.hbs",4450,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FEvals\u002FReport.hbs",{"path":93,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":94,"sourceHtmlUrl":95},"Templates\u002FEvals\u002FRubric.hbs",3006,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FEvals\u002FRubric.hbs",{"path":97,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":98,"sourceHtmlUrl":99},"Templates\u002FEvals\u002FTestCase.hbs",2704,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FEvals\u002FTestCase.hbs",{"path":101,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":102,"sourceHtmlUrl":103},"Templates\u002FPrimitives\u002FBriefing.hbs",2442,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FPrimitives\u002FBriefing.hbs",{"path":105,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":106,"sourceHtmlUrl":107},"Templates\u002FPrimitives\u002FGate.hbs",1996,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FPrimitives\u002FGate.hbs",{"path":109,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":110,"sourceHtmlUrl":111},"Templates\u002FPrimitives\u002FRoster.hbs",1931,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FPrimitives\u002FRoster.hbs",{"path":113,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":114,"sourceHtmlUrl":115},"Templates\u002FPrimitives\u002FStructure.hbs",1449,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FPrimitives\u002FStructure.hbs",{"path":117,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":118,"sourceHtmlUrl":119},"Templates\u002FPrimitives\u002FVoice.hbs",1684,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FPrimitives\u002FVoice.hbs",{"path":121,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":122,"sourceHtmlUrl":123},"Templates\u002FREADME.md",8808,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FREADME.md",{"path":125,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":126,"sourceHtmlUrl":127},"Templates\u002FTools\u002F.cursor\u002Frules\u002Fuse-bun-instead-of-node-vite-npm-pnpm.mdc",2606,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FTools\u002F.cursor\u002Frules\u002Fuse-bun-instead-of-node-vite-npm-pnpm.mdc",{"path":129,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":130,"sourceHtmlUrl":131},"Templates\u002FTools\u002F.gitignore",388,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FTools\u002F.gitignore",{"path":133,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":134,"sourceHtmlUrl":135},"Templates\u002FTools\u002Fbun.lock",2576,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FTools\u002Fbun.lock",{"path":137,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":126,"sourceHtmlUrl":138},"Templates\u002FTools\u002FCLAUDE.md","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FTools\u002FCLAUDE.md",{"path":140,"resourceType":141,"resourceTypeDesc":142,"sizeBytes":143,"sourceHtmlUrl":144},"Templates\u002FTools\u002Findex.ts","SCRIPT","脚本",30,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FTools\u002Findex.ts",{"path":146,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":147,"sourceHtmlUrl":148},"Templates\u002FTools\u002Fpackage.json",266,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FTools\u002Fpackage.json",{"path":150,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":151,"sourceHtmlUrl":152},"Templates\u002FTools\u002FREADME.md",220,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FTools\u002FREADME.md",{"path":154,"resourceType":141,"resourceTypeDesc":142,"sizeBytes":155,"sourceHtmlUrl":156},"Templates\u002FTools\u002FRenderTemplate.ts",9427,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FTools\u002FRenderTemplate.ts",{"path":158,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":159,"sourceHtmlUrl":160},"Templates\u002FTools\u002Ftsconfig.json",713,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FTools\u002Ftsconfig.json",{"path":162,"resourceType":141,"resourceTypeDesc":142,"sizeBytes":163,"sourceHtmlUrl":164},"Templates\u002FTools\u002FValidateTemplate.ts",8994,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTemplates\u002FTools\u002FValidateTemplate.ts",{"path":166,"resourceType":141,"resourceTypeDesc":142,"sizeBytes":143,"sourceHtmlUrl":167},"Tools\u002Findex.ts","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTools\u002Findex.ts",{"path":169,"resourceType":141,"resourceTypeDesc":142,"sizeBytes":155,"sourceHtmlUrl":170},"Tools\u002FRenderTemplate.ts","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTools\u002FRenderTemplate.ts",{"path":172,"resourceType":141,"resourceTypeDesc":142,"sizeBytes":163,"sourceHtmlUrl":173},"Tools\u002FValidateTemplate.ts","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv2.3\u002F.claude\u002Fskills\u002FPrompting\u002FTools\u002FValidateTemplate.ts",[175,184,192,202,218,236],{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":181,"publishedAt":31},"01M6CTHBW1E64ECYGD105N4S5E","typo-field","Fixture skill with a misspelled top-level field.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Ftypo-field\u002FSKILL.md",[],[182,183],"typo field","fixture skill",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":190,"publishedAt":31},"01M6CTHABTV8FKVDHFMMKPAV51","spaced-comments","Fixture skill with comments and spaces after block keys.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fspaced-comments\u002FSKILL.md",[],[191,183],"spaced comments",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":198,"publishedAt":31},"01M6CTH8MHC14KB65ZDHYBJW1N","crlf-comments","Fixture skill with Windows line endings.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fcrlf-comments\u002FSKILL.md",[],[199,200,201,183],"crlf comments","CRLF","windows",{"skillNo":203,"name":204,"nameZh":6,"description":205,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":206,"categories":207,"keywords":208,"publishedAt":31},"01M6CTH6TBKTDP9G8QB1Z2K0TY","claude-fields","Fixture skill using top-level fields Claude Code documents.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fclaude-fields\u002FSKILL.md",[],[209,210,211,212,213,214,183,215,216,217],"claude fields","explore","documents","src","grep","read","Bash","code","testing",{"skillNo":219,"name":220,"nameZh":6,"description":221,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":222,"categories":223,"keywords":229,"publishedAt":31},"01M6CTH46BGKXH80RWS876Y2CW","workflow-router","Maps an objective to the artifacts, stages and agents it needs. Use when deciding what happens next or which agents to involve.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Fos\u002Fskills\u002Fworkflow-router\u002FSKILL.md",[224],{"categoryNo":225,"categoryName":226,"taxonomyType":227,"taxonomyTypeDesc":228},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[230,231,232,233,234,27,235],"workflow","router","workflow router","next","maps","artifacts",{"skillNo":237,"name":238,"nameZh":6,"description":239,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":240,"categories":241,"keywords":242,"publishedAt":31},"01M6CTH27653SRVP2FMEQN3J5B","weekly-review","Summarizes your week: what shipped, AI spend, support themes, security health and next priorities. Use at the end of each week.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Fos\u002Fskills\u002Fweekly-review\u002FSKILL.md",[],[243,244,245,233,27,246,247,19,248],"weekly review","review","priorities","health","save","security"]