account-hygiene
Periodic hygiene review of a client's 1Password account for QBRs and license true-ups: reconciling active and suspended seats…
Turns a Refresh Cycle Planning calendar into a per-client list of devices to quote, matched against a connected ScalePad Quoter, Kaseya Quote Manager, or ConnectWise PSA product catalog, then hands off to a quoting skill. Drafts the list only, using read-only catalog and quote
Claude Code
$ npx -y skills add wyre-ai/msp-claude-plugins --skill refresh-quote-list --agent claude-code
Codex
$ npx skills add wyre-ai/msp-claude-plugins --skill refresh-quote-list -a codex -y
Cursor
$ npx skills add wyre-ai/msp-claude-plugins --skill refresh-quote-list -a cursor -y
Gemini CLI
$ npx skills add wyre-ai/msp-claude-plugins --skill refresh-quote-list -a gemini-cli -y
GitHub Copilot
$ npx skills add wyre-ai/msp-claude-plugins --skill refresh-quote-list -a github-copilot -y
OpenCode
$ npx skills add wyre-ai/msp-claude-plugins --skill refresh-quote-list -a opencode -y
Windsurf
$ npx skills add wyre-ai/msp-claude-plugins --skill refresh-quote-list -a windsurf -y
name: "Refresh Quote List" description: > Turns a Refresh Cycle Planning calendar into a per-client list of devices to quote, matched against a connected ScalePad Quoter, Kaseya Quote Manager, or ConnectWise PSA product catalog, then hands off to a quoting skill. Drafts the list only, using read-only catalog and quote tools, and never creates, updates, or publishes a quote. when_to_use: >- When a hardware refresh calendar is ready and the MSP needs a per-client list of devices to quote, ready to hand to a quoting skill, without creating the quote in this step. Use when: refresh quote list, hardware refresh quote list, devices to quote for refresh, turn the refresh calendar into a quote list, refresh procurement list.
Refresh Cycle Planning already produces a tiered calendar. This companion skill takes that calendar (or the same warranty, EOL/EOS, and age inputs when a calendar was just built) and drafts a per-client list of devices to quote, matched against a connected product catalog when one exists.
This skill does not replace Refresh Cycle Planning, and it does not create quotes. The operator hands the list to `scalepad-quoter` or `connectwise-cpq-quotes` if they want a quote built.
Do not invent catalog items or prices. If a catalog tool returns an amount, you may carry that amount through as returned and label the source. If it does not, list the device and the catalog match (name or SKU) without an amount.
insufficient-data bucketing): use [Refresh Cycle Planning](../refresh-cycle-planning/SKILL.md).
(which can also publish) or `connectwise-cpq-quotes`. CPQ's API has no publish verb, so a CPQ quote is published from the CPQ web app. Kaseya Quote Manager's tools are read-only, so a Kaseya quote is built in the Quote Manager web app. This skill stops at the list.
`scalepad-lifecycle-manager`.
| System | Role | Required? | |--------|------|-----------| | Refresh Cycle Planning output, or the RMM inventory that skill uses | The devices, tiers, and timing to quote | Yes | | ScalePad Quoter, Kaseya Quote Manager, or ConnectWise PSA | Read-only product catalog for matching items | Optional | | ScalePad Quoter, Kaseya Quote Manager, or ConnectWise CPQ | Read-only existing-quote context | Optional |
ConnectWise CPQ has no searchable product catalog. Its quote items are lines on existing quotes, not catalog products, so ConnectWise catalog matching comes from ConnectWise PSA when it is connected.
If no catalog connector is connected, still produce the per-client device list from the calendar, and say a catalog-backed quote list could not be drafted.
Call `conduit__search_tools` first. Use the exact names discovery returns. Gateway names often look like `<vendor-slug>__<tool_name>`.
If a refresh calendar is not already in hand, follow [Refresh Cycle Planning](../refresh-cycle-planning/SKILL.md) to build one, then continue here. That skill's read-only RMM and documentation inventory reads are in scope for building the calendar. Do not restate its tool list here.
For quoting and catalog systems, only call the read-only tools in the allow-list below. Never create, update, publish, delete, or authenticate-for-write in any connected system.
**ScalePad Quoter (read-only):** `scalepad_quoter_items_list`, `scalepad_quoter_items_get`, `scalepad_quoter_quotes_list`, `scalepad_quoter_quotes_get`. Never call `scalepad_quoter_items_update`, `scalepad_quoter_quotes_create`, `scalepad_quoter_quotes_publish`, `scalepad_quoter_auth_authorize`, or `scalepad_quoter_auth_refresh`.
**Kaseya Quote Manager (read-only):** `kqm_product_list`, `kqm_product_get`, `kqm_category_list`, `kqm_category_get`, `kqm_quote_list`, `kqm_quote_get`, `kqm_quote_line_list`, `kqm_quote_line_get`, `kqm_quote_section_list`, `kqm_quote_section_get`, `kqm_customer_list`, `kqm_customer_get`.
**ConnectWise PSA catalog (read-only):** `cw_search_catalog_items`, `cw_get_catalog_item`, `cw_list_catalog_categories`, `cw_list_catalog_subcategories`. Never call `cw_create_catalog_item` or `cw_update_catalog_item`.
**ConnectWise CPQ (read-only, existing quotes only):** `cpq_search_quotes`, `cpq_get_quote`, `cpq_get_quote_versions`, `cpq_search_quote_items`, `cpq_get_quote_item`, `cpq_search_quote_tabs`, `cpq_list_quote_customers`, `cpq_list_templates`, `cpq_test_connection`. `cpq_search_quote_items` searches lines on existing quotes; never treat its results as catalog matches. Never call `cpq_create_quote_from_template`, `cpq_create_quote_item`, `cpq_create_quote_term`, or any update or delete CPQ tool.
If a vendor is connected but the needed tool is not in this list, was not returned by discovery, or fails with an access error, skip that catalog and say why.
From the refresh calendar, group devices by client. Stay with replace-now and plan-this-year tiers by default. Keep the insufficient-data bucket as a separate list: those devices are not quote-ready until the calendar gaps are filled.
If the operator explicitly asks to include monitor-tier devices, include them. Refresh Cycle Planning may report monitor as a count only, so pull the device details from the same RMM inventory (or ask for a detailed calendar) rather than quoting a bare count.
For each device, carry forward make, model, quantity, tier, and target window as the calendar provided them. Do not invent a replacement model if the calendar did not specify one.
If a catalog search tool (`scalepad_quoter_items_list`, `kqm_product_list`, or `cw_search_catalog_items`) was discovered and is accessible, search it for a reasonab
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.