account-hygiene
Periodic hygiene review of a client's 1Password account for QBRs and license true-ups: reconciling active and suspended seats…
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
Claude Code
$ npx -y skills add wyre-ai/msp-claude-plugins --skill case-study-drafter --agent claude-code
Codex
$ npx skills add wyre-ai/msp-claude-plugins --skill case-study-drafter -a codex -y
Cursor
$ npx skills add wyre-ai/msp-claude-plugins --skill case-study-drafter -a cursor -y
Gemini CLI
$ npx skills add wyre-ai/msp-claude-plugins --skill case-study-drafter -a gemini-cli -y
GitHub Copilot
$ npx skills add wyre-ai/msp-claude-plugins --skill case-study-drafter -a github-copilot -y
OpenCode
$ npx skills add wyre-ai/msp-claude-plugins --skill case-study-drafter -a opencode -y
Windsurf
$ npx skills add wyre-ai/msp-claude-plugins --skill case-study-drafter -a windsurf -y
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.
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.
or observability tool: use `devops-pack-incident-postmortem`, not this skill.
use those vendor plugins. This skill must not call create, update, publish, or archive document tools.
or ticket that is not closed or resolved.
| 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.
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.
**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.
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.
From the chosen record a
One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: wyre-ai.github.io/msp-claude-plugins
Periodic hygiene review of a client's 1Password account for QBRs and license true-ups: reconciling active and suspended seats…
1Password MCP fundamentals through Conduit: the region plus two independent credential halves (Events Reporting token, Users API…
How to review a departing or departed user's 1Password footprint with the read-only tools: confirm the seat is suspended, find…
Triage of 1Password sign-in attempts for one client account: pulling the sign-in feed over a window, grouping failures by user,…
3CX's live-operations surface: read-only visibility into active calls, recordings, voicemail, department and queue membership,…
3CX's read-only directory surface: resolving a caller by email or by exact extension, searching the PBX's own phonebooks,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.