Skip to content
Development
Skill

/case-study-drafter

Turns a closed PSA project or a resolved incident, plus optional documentation records, into an anonymized case study with a challenge, approach, and result. Metrics appear only when they are present in the returned records. The client is not named until an operator explicitly

From plugin
msp-claude-plugins
55200 skills165 agents200 commands4 MCP

Claude Code

$ npx -y skills add wyre-ai/msp-claude-plugins --skill case-study-drafter --agent claude-code

SKILL.md

case-study-drafter.SKILL.md
name: "Case Study Drafter"
description: >
  Turns a closed PSA project or a resolved incident, plus optional
  documentation records, into an anonymized case study with a challenge,
  approach, and result. Metrics appear only when they are present in the
  returned records. The client is not named until an operator explicitly
  approves naming them.
when_to_use: >-
  When drafting a win story or case study from a closed project or a
  resolved incident in a connected PSA or documentation tool, and the
  default output must stay anonymized until someone approves naming the
  client. Use when: case study, win story, anonymized case study, write a
  customer success story, draft a case study from a closed project,
  marketing write-up of a resolved incident.

Case Study Drafter

Overview

Closed work is the only honest source for a case study. This skill reads a closed PSA project, a resolved incident or ticket, and optional documentation records, then drafts a short win story in three parts: challenge, approach, and result. Every metric in the result section must come from returned data. If a number is not in the record, omit it.

The default draft is anonymized (industry, size band if present, and a generic label such as "a regional healthcare group"). Do not name the client, and do not include identifying people, domains, ticket IDs in a public-facing draft, or site addresses, until the operator explicitly approves naming that client.

This skill drafts only. It does not publish, create, or update documents, tickets, or articles.

Anti-triggers

  • **Blameless engineering postmortems** assembled from an incident-management

or observability tool: use `devops-pack-incident-postmortem`, not this skill.

  • **Writing or publishing a documentation article** in IT Glue or Hudu:

use those vendor plugins. This skill must not call create, update, publish, or archive document tools.

  • **Open or in-progress work.** Do not draft a case study from a project

or ticket that is not closed or resolved.

Connected Systems

| System | Role | Required? | |--------|------|-----------| | PSA (Autotask, ConnectWise, HaloPSA, Syncro, or SuperOps) | Closed projects and/or resolved tickets, notes, and time entries | Yes (at least one source record) | | Documentation (IT Glue or Hudu) | Optional background on the engagement, never password or vault records | Optional |

If discovery finds no PSA project or ticket tool that can return a closed or resolved record, stop and say so. Do not invent a win.

Workflow

Step 1: Discover what is actually connected

Call `conduit__search_tools` first. Use the exact names discovery returns. Gateway names often look like `<vendor-slug>__<tool_name>`. Only call read-only list, get, or search tools from the allow-list below.

Never call create, update, delete, send, publish, archive, or raw/execute tools. Never call password or vault tools, including `get_password`, `search_passwords`, `hudu_get_asset_password`, `hudu_list_asset_passwords`, `hudu_create_asset_password`, `hudu_update_asset_password`, and `hudu_delete_asset_password`. If a flexible asset or note appears to contain a credential, redact it and do not quote it.

Allow-listed read tools

**Autotask (projects, tickets, time, notes):** `autotask_search_companies`, `autotask_search_projects`, `autotask_search_project_notes`, `autotask_get_project_note`, `autotask_search_tickets`, `autotask_get_ticket_details`, `autotask_search_ticket_notes`, `autotask_get_ticket_note`, `autotask_search_ticket_history`, `autotask_get_ticket_history`, `autotask_search_time_entries`, `autotask_list_ticket_statuses`, `autotask_list_ticket_priorities`. There is no `autotask_get_project` tool; load a project by searching and matching its id.

**ConnectWise Manage:** `cw_search_companies`, `cw_get_company`, `cw_search_projects`, `cw_get_project`, `cw_search_project_tickets`, `cw_get_project_ticket`, `cw_get_project_ticket_notes`, `cw_search_tickets`, `cw_get_ticket`, `cw_get_ticket_notes`, `cw_search_time_entries`, `cw_get_time_entry`.

**HaloPSA:** `halopsa_clients_list`, `halopsa_clients_get`, `halopsa_clients_search`, `halopsa_tickets_list`, `halopsa_tickets_get`. HaloPSA MCP has no project-list tool in this catalog; use resolved tickets only, and say a project-level source was unavailable.

**Syncro:** `syncro_customers_list`, `syncro_tickets_list`. There is no Syncro project-list or ticket-get tool in this catalog; work from list fields only, and say when a field is missing.

**SuperOps:** `superops_clients_list`, `superops_clients_get`, `superops_clients_search`, `superops_tickets_list`, `superops_tickets_get`. There is no SuperOps project-list tool in this catalog.

**IT Glue (documents only):** `search_organizations`, `get_organization`, `search_documents`, `get_document`, `list_document_folders`, `list_document_sections`. Do not call `search_flexible_assets` unless the operator has confirmed the type is not used to store passwords; prefer documents. Never call `get_password` or `search_passwords`.

**Hudu (articles and companies only):** `hudu_list_companies`, `hudu_get_company`, `hudu_list_articles`, `hudu_get_article`, `hudu_list_folders`, `hudu_list_procedures`. Do not call website or asset password tools. `hudu_list_websites` is a stored-client record, not a source of marketing metrics.

If a vendor is connected but the needed tool is not in this list, skip that source and say so.

Step 2: Select a closed or resolved source

Ask the operator for a client, project, or ticket if they have not named one. Search for records whose status is closed, complete, or resolved, using the PSA's own status list tools when they exist (`autotask_list_ticket_statuses`) rather than guessed status ids.

Reject open, on-hold, or in-progress work. If several closed candidates exist, present a short list (name anonymized, date, type) and let the operator pick.

Step 3: Gather evidence

From the chosen record a

Read more
@wyre-technology
Ships withmsp-claude-plugins

One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: wyre-ai.github.io/msp-claude-plugins

55200 skills165 agents4 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
55
Star history of wyre-technology/msp-claude-plugins on GitHub, a chart by star-history.com

Other skills on msp-claude-plugins.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about case-study-drafter.

Which coding agents can use case-study-drafter?
case-study-drafter installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.