ホーム / Skills / 開発効率化 / スキルクリエイター Skill Creator
開発効率化

スキルクリエイター Skill Creator

AnthropicApache-2.0Skill の言語: 英語
ライセンス確認済みスクリプトを含む
デモ実行記録 · claude-sonnet-5-5 · 2026年10月
I keep pasting messy customer-support email threads into Claude and asking for a summary plus next steps. Please use the skill-creator skill to turn that into a reusable skill: go through the intent-capture step with what I've told you (make reasonable assumptions instead of asking me questions), then write the full SKILL.md draft and 3 realistic test prompts. No file tools are available, so print everything in your reply.
Skill: skill-creator

Skill draft: support-thread-summarizer

I haven't run any of this. There's no file access here, so the skill-creator's workspace, subagent runs and eval viewer steps are all still to do.

1. Intent capture

You didn't answer these questions, so I assumed the answers. Correct anything that's wrong.

Question Assumption
What should the skill do? Turn a pasted, messy customer-support email thread into a short summary and a prioritized list of next steps.
When should it trigger? You paste a thread with quoted replies, signatures, forwards or disclaimers. You say things like "summarize this", "what's going on here", "what do I need to do", or "next steps". It should trigger even if you only paste the thread with no instructions.
Who are you in the thread? Usually the support or account person who has to act next, not the customer. The skill assumes this unless the thread says otherwise.
Output format Fixed, scannable sections: one-line status, a summary, a timeline, open questions, next steps (with owner and urgency), and a draft reply only if asked.
Edge cases Duplicate quoted text, out-of-order messages, multiple people on the customer side, internal notes mixed with customer-facing text, missing context, angry tone, and legal or refund commitments made by someone else.
Should it have tests? Yes. The output has a checkable structure and a checkable correctness core (who owes what, and by when), so 3 prompts with assertions are worth writing.
Dependencies None. It works on pasted text only.

2. SKILL.md

---
name: support-thread-summarizer
description: Summarize a messy customer-support email thread and produce prioritized next steps. Use this whenever the user pastes an email chain, forwarded thread, ticket export, or a block of back-and-forth messages with a customer and wants a summary, status, "what's going on", "what do I need to do", action items, or a reply plan. Trigger even if the user only pastes the thread with no instructions, or says things like "catch me up on this", "TL;DR this", or "what's the next move". Also use for escalation handoffs and account-review prep built from support emails.
---

# Support Thread Summarizer

Support threads are hard to read. They carry the same quoted text five times, signatures and legal disclaimers, forwarded chains, replies out of order, and several people on each side. The reader needs to know three things fast: what happened, where things stand, and what to do next. Your job is to dig that out accurately so they don't have to reread the thread.

## Working assumptions

- The reader is on the support or account side and owns the next move. If the thread or the user says otherwise, adapt.
- The reader may not have seen the thread. Don't assume context beyond what's pasted.
- Accuracy matters more than polish. A wrong date, a missed commitment, or an invented fact causes real problems with a customer. Only report what the thread supports.

## Process

1. **Reconstruct the thread.** Ignore repeated quoted text, signatures, disclaimers, and "Sent from my iPhone" noise. Put the messages in chronological order using their timestamps, not the paste order. Forwarded threads often arrive newest-first or scrambled.
2. **Identify people and roles.** Note who is the customer, who is internal, and who is a third party. Use names and roles, not "the sender".
3. **Extract the facts.** Collect the core problem, what has been tried, what has been promised, by whom, and by when. Commitments and deadlines are the highest-value details. Missing one is the costliest mistake.
4. **Judge the current state.** Work out whose court the ball is in, how long it has been waiting, and the customer's tone (calm, frustrated, threatening to leave, or legal or press language).
5. **Derive next steps.** Each step needs an owner, a concrete action, and an urgency level. Order them by urgency and by the risk of not doing them.

## Output format

Use this structure so the output scans the same way every time. Skip a section only if it is truly empty, and say so in a few words rather than inventing content.

```
**Status:** <one line: issue, current state, whose move it is>

**Summary**
<3-5 sentences: what the customer wants, what went wrong, what has been done>

**Timeline**
- <date/time>: <who> — <what happened>   (only the events that matter)

**Commitments & deadlines**
- <who promised what, to whom, by when>

**Open questions**
- <things unanswered or unclear in the thread>

**Next steps**
1. [Urgent|Soon|Later] <owner>: <specific action>  — <why, if not obvious>

**Risks / flags**
- <churn risk, legal or refund language, SLA breach, conflicting info, anything sensitive>
```

Order the next steps by urgency, then by customer impact. Start each step with a verb. "Reply to Dana confirming the Thursday refund" is useful. "Follow up" isn't.

## Judgment calls

- **Missing or ambiguous information:** Say what's unknown and how it affects the next steps. Don't guess. For example, write "The thread doesn't say whether the refund was processed. Check billing before replying."
- **Conflicting statements:** Report both and name who said each. Make resolving the conflict a next step.
- **Dates:** Convert relative dates ("tomorrow", "end of week") to absolute dates using the email's timestamp when you can. If the timestamp is missing, keep the original wording and say so.
- **Internal and customer-facing text mixed together:** Label which parts are internal notes. Warn before suggesting anything that would expose internal comments to the customer.
- **Sensitive content:** Put legal threats, chargeback or cancellation talk, security or privacy incidents, and executive escalations in Risks / flags and make them the first next step. State the facts neutrally and don't speculate about intent.
- **Very long threads:** Keep the summary short regardless of thread length. Detail belongs in the timeline, and only for events that change what happens next.
- **Draft replies:** Write one only when asked, or when the user's message clearly implies it ("what should I say?"). Otherwise end with an offer in one line. A reply that makes new promises can create commitments the user didn't choose.

## Tone

Be plain and neutral. Don't add commentary on how the customer or colleagues behaved beyond what is needed to judge risk. Keep the whole output short enough to read in under a minute for typical threads.

3. Test prompts

These are written the way you'd actually paste them. I'd save them to evals/evals.json once files are available.

{
  "skill_name": "support-thread-summarizer",
  "evals": [
    {
      "id": 1,
      "eval_name": "scrambled-billing-thread-with-deadline",
      "prompt": "can you summarize this and tell me what i need to do. i just got put on this account\n\n---------- Forwarded message ---------\nFrom: Marcus Lee <[email protected]>\nDate: Thu, Mar 13, 2025 at 4:12 PM\nSubject: Re: Re: Double charged for Feb??\nTo: Support <[email protected]>\n\nStill nothing?? It's been a week. I was told it'd be fixed by Monday. If I don't see the $249 back by Friday I'm disputing it with my bank.\n\nMarcus\n\n> On Mon, Mar 10, 2025 at 9:03 AM Priya (Support) wrote:\n> Hi Marcus, I've escalated to billing and they said the duplicate will be reversed within 3 business days. Sorry again!\n>\n> > On Fri, Mar 7, 2025 at 2:44 PM Marcus Lee wrote:\n> > I was charged twice for February, $249 each, invoice INV-20931 and INV-20977. Please fix.\n\n--\nPriya's note (internal): billing says the reversal needs a manager approval and nobody has approved it yet\n\nCONFIDENTIALITY NOTICE: This email is intended only for the addressee...",
      "expected_output": "Chronological summary. Flags the Friday bank-dispute deadline, the missed 'by Monday' promise, the $249 amount and both invoice numbers. Notes that the reversal is stuck waiting on manager approval, labels that as internal, and makes getting approval the first urgent step. Does not draft a reply unprompted.",
      "files": []
    },
    {
      "id": 2,
      "eval_name": "multi-party-bug-thread-conflicting-info",
      "prompt": "Catch me up on this before my 2pm call with them.\n\nFrom: Aisha Rahman (Northwind Logistics)\nSent: Tuesday, June 3, 2025 10:15 AM\nSubject: RE: CSV export failing\nWe're on the Enterprise plan and the export has been failing since the update. Our ops lead Tom is cc'd. This is blocking our month-end reports.\n\nFrom: Dev Patel (Support)\nSent: Tuesday, June 3, 2025 11:02 AM\nHi Aisha, sorry about this. Engineering says the export bug was fixed in v4.2.1, which went out last Thursday. Can you confirm you're on that version?\n\nFrom: Tom Becker (Northwind Logistics)\nSent: Tuesday, June 3, 2025 11:40 AM\nWe're on 4.2.1. Still broken. Aisha was told by someone on your side last week that it'd be fixed by now and that we'd get a credit for the downtime. Nobody ever followed up on the credit.\n\nFrom: Dev Patel (Support)\nSent: Tuesday, June 3, 2025 12:30 PM\nTom, I don't see any record of a credit being promised. Looking into the 4.2.1 issue with eng now.\n\nFrom: Aisha Rahman\nSent: Tuesday, June 3, 2025 1:05 PM\nThis is the third time we've had to chase. Please have your manager join the call.",
      "expected_output": "Identifies Aisha and Tom as customer-side and Dev as internal. Surfaces the conflict: Dev says 4.2.1 fixes it, Tom says it's still broken on 4.2.1. Flags the disputed credit promise as unverified (no record) and as a risk. Notes the manager request and the 2pm call as time-sensitive. Next steps include checking with eng, checking the credit history, and arranging for a manager to join.",
      "files": []
    },
    {
      "id": 3,
      "eval_name": "long-vague-thread-missing-info-legal-language",
      "prompt": "tldr this thread pls, and tell me whats next. no idea who half these people are\n\nRe: Re: Fwd: Fwd: contract renewal / data issue\n\n[Jan 20] Chen Wei (Halvorsen & Co): Our team found that some of our records from 2023 appear to be missing from the portal. We need them for an audit.\n[Jan 21] Sam (our CSM): Thanks Chen, looping in the data team.\n[Jan 27] Chen Wei: Any update? Our renewal is coming up and my director is asking questions.\n[Jan 28] Rohan (Data team, internal only): fwiw I think the 2023 records got archived in the October migration. Not sure if they can be restored, need to check with infra. Don't tell the customer this yet.\n[Feb 3] Chen Wei: I've now been told by our legal counsel that if we can't get these records by Feb 14 we will have to treat this as a breach of our data retention agreement and reconsider the renewal.\n[Feb 4] Sam: Chen, we're working on it, will update you shortly.\n\nSent from my iPhone",
      "expected_output": "Short summary with a timeline in order. Flags the Feb 14 deadline and the legal/breach and renewal-at-risk language as the top risk and first next step. Clearly marks Rohan's note as internal and instructs not to share it with the customer as written. States that restorability is unknown, with the infra check as an explicit next step. Notes the gap since Jan 28 and that the customer has had no substantive answer. Does not invent a resolution.",
      "files": []
    }
  ]
}

4. What I'd check on the outputs

I'd draft these assertions once outputs exist:

  • Eval 1 should include Friday, the manager approval blocker, and the internal label.
  • Eval 2 should name the version conflict and mark the credit as unverified.
  • Eval 3 should include Feb 14, the "don't tell the customer" handling, and no invented claim that the records can be restored.

5. Next steps in the skill-creator loop

  1. Save this as support-thread-summarizer/SKILL.md and the JSON as evals/evals.json.
  2. Run each prompt with and without the skill.
  3. Review the results in the viewer.
  4. Revise the skill and rerun.
  5. Run description optimization for triggering.

If you'd like, I can start step 1 once I have a file-capable session.

Real run recorded with claude-code / claude-sonnet-5-5. Output is shown verbatim, unmodified.

できること

他のスキルを作るためのメタスキルです。要件の整理、SKILL.md の下書き(名前、やや積極的なトリガー説明、段階的開示の構成)、現実的なテスト用プロンプトの作成に加え、レビュー用ビューアとベンチマークスクリプトを使った任意の「評価→改善」ループがあります。

進め方

  1. 要件の整理:何をするスキルか、いつ発動するか、出力形式、テストが必要か。
  2. 執筆ガイドに沿って SKILL.md を下書き:命令形で書き、MUST を連発せず理由を説明し、本文は簡潔にして詳細は references/ へ。
  3. テスト用プロンプトを 2〜3 件書き、evals/evals.json に保存。
  4. 任意(サブエージェントとシェルがある環境):スキルあり・なしの比較実行、採点、ベンチマーク集計、ローカルビューアでのレビュー、そして反復。
  5. 任意:claude -p ベースの学習 / テスト分割ループでトリガー説明を最適化し、.skill ファイルにパッケージ。

向いている用途

  • 繰り返している作業手順を再利用できるスキルにする
  • 発動が少なすぎる / 多すぎるスキルの改善
  • 自社スキルを再現性のある方法でテストしたいチーム
補足とリスク

実行に副作用のあるスクリプトを含みます。評価・説明文チューニング用スクリプトは多数の `claude -p` サブプロセスを起動し(既定で最大10並列、クエリごとに3回)、モデルの利用枠を消費します。`run_eval.py` はプロジェクトの `.claude/commands/` に一時ファイルを書きます。`generate_review.py` はローカルサーバー(既定ポート 3117)を起動し、先にそのポートを使用中のプロセスを終了させます。`run_loop.py` はブラウザを開き、レビューページは cdn.sheetjs.com と Google Fonts を読み込みます。パッケージ化には PyYAML 入りの Python が必要です。スクリプトはローカルの `claude` CLI と指定フォルダのみを使い、データを送信するコードは見つかりませんでした。試用では下書き(要件、SKILL.md、テスト用プロンプト)にのみ使い、スクリプトやビューアは実行していません。

SKILL.md 原文パッケージ内 18 ファイル