Skip to main content

tech-support-email

Use when drafting a technical support email to a SaaS/API vendor about a service outage, data loss, or bug. Covers the full workflow: deep-dive investigation → config audit against official docs → multi-angle testing → evidence gathering → tone-calibrated bilingual (CN/EN) email drafting. Triggers on: 写技术支持邮件, 给XX发邮件, support email, 报bug给, 联系技术支持, vendor outage email, draft support ticket. DO NOT use for internal team emails, customer success outreach, or non-technical correspondence.

Zur Installation springen

Quellinformationen

Repository
Loveacup/jz-skills
Letzte Quellaktivität
6. Juni 2026 um 00:30
Erkannte Sprache von SKILL.md
Englisch
Sterne
1
Forks
1

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
3 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
tech-support-email
description
Use when drafting a technical support email to a SaaS/API vendor about a service outage, data loss, or bug. Covers the full workflow: deep-dive investigation → config audit against official docs → multi-angle testing → evidence gathering → tone-calibrated bilingual (CN/EN) email drafting. Triggers on: 写技术支持邮件, 给XX发邮件, support email, 报bug给, 联系技术支持, vendor outage email, draft support ticket. DO NOT use for internal team emails, customer success outreach, or non-technical correspondence.
type
routine
version
1.1.0
author
Hermes Agent + Alex
license
MIT
metadata
{"hermes":{"tags":["support","email","vendor-communication","debugging","bilingual","governance","evidence-pipeline"],"related_skills":["web-research-router","grill-with-docs","surge-gateway"],"upstream_inspirations":["support-to-repro-pack (mshs01156) — structured evidence pipeline: facts → timeline → report","debug-runbook (UnCooe) — evidence-based decision engine with confidence scoring","customer-support (priyanshu9888) — tiered communication with vendor-type tone matrix"]}}
# Tech Support Email — Investigation-First Vendor Communication Write a technical support email that gets results. The core principle: **investigate BEFORE you write**. A well-researched email with hard evidence gets faster resolution than a vague complaint. ## 🚨 Red Flags: DO NOT SKIP THIS SKILL | Excuse your brain will make | Why it's wrong | |---|---| | "I already know the problem, I'll just write it" | Without systematic investigation, you'll make claims you can't back up. The vendor will ask for evidence you don't have. | | "It's just an email, I don't need a workflow" | A sloppy email delays resolution by days. A well-structured one with evidence often gets fixed same-day. | | "I'll just describe the symptoms" | Vendors need config details, timelines, and diagnostic evidence to skip the back-and-forth. | | "The tone doesn't matter, they have to help me" | You're asking for help, even if you paid. An accusatory email goes to the bottom of the queue. | ## 🔀 Decision Tree ``` Need to contact a SaaS/API vendor about an issue? ├── YES → This skill │ ├── Step 1: Investigate (gather symptoms, timeline, logs) │ ├── Step 2: Audit (cross-reference config against official docs) │ ├── Step 3: Multi-angle test (endpoints, regions, edge cases) │ ├── Step 4: Gather hard evidence (headers, traces, error codes) │ ├── Step 5: Draft email (soft tone, evidence as clues) │ └── Step 6: Review (delete demands, check bilingual consistency) └── NO → Internal communication? → Don't load this skill ``` --- ## Step 1: Deep-Dive Investigation Before writing a single word of the email, gather: ### 1a. Symptom Catalog - What exactly is broken? Be specific — "Memories gone" not "it's broken" - Which pools/endpoints/features are affected? Which are NOT? - When did it start? When was it last working? ### 1b. Timeline Construction Build a precise timeline from logs. Every entry needs: timestamp, event, latency/size. ``` ❌ BAD: "It's been slow for days" ✅ GOOD: "May 31 23:03: store 2.92s (normal) → Jun 1 07:08: timeout 5.26s → 08:25: all endpoints 404" ``` **Key pattern to watch for**: healthy → degraded → dead. This proves it's not a sudden crash but a cascade. ### 1c. Log Evidence Extract actual log lines, not summaries. Include: - Error messages verbatim - Latency measurements - HTTP status codes - Session IDs for traceability --- ## Step 2: Configuration Audit **Cross-reference EVERY config key against the vendor's official integration docs.** Use `web-research-router` to fetch the docs page, then build a comparison table. | Setting | Docs Default | Our Value | Verdict | |---------|-------------|-----------|---------| | ... | ... | ... | ✅/⚠️ | This serves two purposes: 1. **Proves you did your homework** — vendor can skip the "check your config" step 2. **Eliminates client-side as root cause** — focuses them on server-side Document any minor deviations (custom tags, shared profiles) but explicitly note they cannot cause the observed symptoms. --- ## Step 3: Multi-Angle Testing Don't test from one path. Test from multiple: ### 3a. API Endpoints Test ALL relevant endpoints — not just the one you use: - `/health` — is the entire API down or just specific paths? - Main site vs API subdomain — is it the whole service or just the API? - Different HTTP methods (GET vs POST) — does the edge process requests? ### 3b. Geographic Regions (if applicable) Use proxy/VPN exits to test from different regions. Different CF edges returning the same error = global outage, not regional. | Exit region | Edge hit | Result | |------------|----------|--------| | 🇭🇰 Hong Kong | HKG | 404 | | 🇺🇸 Los Angeles | LAX | 404 | ### 3c. Response Headers Capture full response headers. Key signals: - `Server-Timing: cfOrigin;dur=0` → CDN edge can't reach origin - `CF-RAY: ...-XXX` → which edge handled the request - `Server: cloudflare` vs `Server: nginx` → is CDN up but origin down? --- ## Step 4: Hard Evidence Gathering The goal: find evidence that is **independently verifiable** by the vendor's own infrastructure team. **Gold-standard evidence:** - `cfOrigin;dur=0` — CDN spent zero ms talking to origin (proves origin is down, not client) - Different CF edges all returning same error (proves global, not regional) - POST returning 400 while GET returns 404 (proves edge processes requests, origin unreachable) - Main site 200 while API subdomain 404 (proves CDN healthy, API-specific outage) **Silver-standard evidence:** - Agent log timestamps with latency degradation curve - API test results from multiple timepoints **Bronze-standard evidence:** - User observations and screenshots - Symptom descriptions without measurements - Single-region test results --- ## Step 4b: Evidence Sufficiency Gate ⚠️ DO NOT SKIP Before moving to draft, run this gate. If any rule fires ❌, go back and gather more evidence. | Rule | Check | Gate | |------|-------|------| | **Multi-region** | Tested from ≥2 distinct geographic regions? | ✅ ≥2 / ❌ <2 | | **Multi-endpoint** | Tested ≥3 different API endpoints (including `/health`)? | ✅ ≥3 / ❌ <3 | | **Header capture** | Captured full response headers (not just status code)? | ✅ Yes / ❌ No | | **Config audit** | Cross-referenced ≥1 official doc page against local config? | ✅ Yes / ❌ No | | **Timeline** | Have ≥5 timepoints with latency/size data from actual logs? | ✅ Yes / ❌ No | | **Degradation pattern** | Can describe a clear healthy → degraded → dead curve? | ✅ Yes / ❌ No | | **Differential** | Tested at least one thing that WORKS (e.g. main site vs API)? | ✅ Yes / ❌ No | **All 7 gates must pass before drafting.** A weak email with insufficient evidence wastes everyone's time — the vendor will ask for exactly what these gates check. --- ## Step 4c: Vendor Tier Tone Matrix Different vendors need different tones. The same evidence presented differently gets different response speeds. | Vendor Type | Tone | Example Opening | Urgency Signal | Evidence Style | |-------------|------|-----------------|----------------|----------------| | **SaaS Startup** (< 20 people) | Casual, collaborative | "Hope you're doing well! Ran into something weird..." | "when you get a chance" | Share as debugging clues | | **API/Platform Vendor** (Stripe, CF, Vercel) | Technical, evidence-forward | "Writing about an issue with the API — gathered some diagnostics" | "this has been a bit challenging for my workflow" | Lead with config audit + headers | | **Enterprise Vendor** (AWS, Azure, GCP) | Formal, SLA-referenced | "I'm experiencing a service disruption affecting [resource]" | Reference case/ ticket number if exists | Structured, with account ID + affected resources | | **Open Source Maintainer** | Appreciative, PR-ready | "Love the project! Hit an issue and dug into it..." | None — appreciation only | Include repro steps + potential fix hints | **Anti-pattern**: Using enterprise tone with a startup ("per our SLA...") → sounds entitled. Using casual tone with enterprise ("hey folks!") → gets ignored. When unsure, default to **API/Platform Vendor** tone — it's the safest middle ground. --- ## Step 5: Draft the Email ### 5a. Tone Calibration ⚠️ CRITICAL **You are asking for help, even if you paid.** The email should read like a collaborative debugging session, not a support ticket. | DON'T write | DO write | |---|---| | "This is broken. Fix it." | "I ran into an issue, hoping you could help me understand" | | "Your migration corrupted my data" | "I'm guessing something might have gone sideways during the migration" | | "This is blocking production — urgent!" | "It's been a bit challenging for my daily workflow" | | "Here's proof it's your fault" | "I noticed something that might be a useful clue" | | "Zero misconfigurations on my end" | "I double-checked against the docs and everything looks correct on my end" | ### 5b. Structure 1. **Warm opening** — "Hope you're doing well!" 2. **Symptom summary** — 2-3 sentences, specific pools/features 3. **Account context** — email, plan tier 4. **Impact (soft)** — "has been a bit challenging" not "blocking production" 5. **Questions (2 max)** — what to investigate, rough timeline 6. **Diagnostic appendix** — config, timeline, multi-region tests, hard evidence 7. **Gracious closing** — "no rush, I know these things can be fiddly" ### 5c. What to DELETE - ❌ "Do you have a backup?" — implies they might have lost your data permanently; adds tension - ❌ "This is urgent" / "blocking production" — goes without saying; soft "a bit challenging" works better - ❌ Accusatory language — "you broke", "your bug", "fix this" - ❌ Demands for compensation or SLA invocation — save for follow-up if needed ### 5d. Bilingual Consistency If writing in both English and Chinese, ensure: - Same structure, same evidence, same tone in both versions - Chinese version should be independently readable, not a translation artifact - Cultural calibration: Chinese "完全不急" maps to English "no rush at all" --- ## Step 6: Pre-Send Review - [ ] Did I gather actual log evidence (not summaries)? - [ ] Did I audit config against official docs? - [ ] Did I test from multiple endpoints/regions? - [ ] Did all 7 Evidence Sufficiency Gates pass? - [ ] Is hard evidence included (headers, multi-edge results)? - [ ] Did I select the correct Vendor Tier tone from the matrix? - [ ] Is the tone soft and collaborative? - [ ] Did I delete backup questions and demands? - [ ] Are both language versions consistent? --- ## Case Study: Supermemory Pro Upgrade Memory Wipe See `references/case-study-supermemory.md` for the full investigation → email pipeline that this skill is based on. Key highlights: - **Investigation**: 4-hour deep dive across 3 log files, 5 proxy regions, 3 API endpoints - **Critical evidence**: `cfOrigin;dur=0` + HKG/LAX multi-edge 404 = global origin outage - **Config audit**: 12 settings cross-referenced against official Hermes integration docs → zero misconfigs - **Email**: 203 lines, soft tone, deleted backup question per user feedback - **Outcome**: Pending vendor response --- ## ✅ Verification Checklist (RUN BEFORE SENDING) - [ ] Did I investigate BEFORE writing (Steps 1-4 complete)? - [ ] Is hard evidence included (headers, multi-edge tests, config audit)? - [ ] Is the tone soft ("hoping you could help" not "fix this")? - [ ] Did I delete backup questions and accusatory language? - [ ] Are both language versions consistent (if bilingual)? **If any box is unchecked, go back.** --- > 📋 Changelog: `references/changelog.md` > 🔄 Deployment & Sync: this skill is deployed to `jz-skills/hermes/tech-support-email/` and synced to `~/.hermes/skills/hermes/tech-support-email/`
Auf GitHub ansehen