account-hygiene
Periodic hygiene review of a client's 1Password account for QBRs and license true-ups: reconciling active and suspended seats…
Alga PSA time and billing reads: time sheet approval states and the backlog waiting for a manager, time entries by technician, work item type, service and billable flag, technician schedules, invoice status (draft, sent, overdue, paid ...) with date-range filters, invoice line
Claude Code
$ npx -y skills add wyre-ai/msp-claude-plugins --skill time-and-billing --agent claude-code
Codex
$ npx skills add wyre-ai/msp-claude-plugins --skill time-and-billing -a codex -y
Cursor
$ npx skills add wyre-ai/msp-claude-plugins --skill time-and-billing -a cursor -y
Gemini CLI
$ npx skills add wyre-ai/msp-claude-plugins --skill time-and-billing -a gemini-cli -y
GitHub Copilot
$ npx skills add wyre-ai/msp-claude-plugins --skill time-and-billing -a github-copilot -y
OpenCode
$ npx skills add wyre-ai/msp-claude-plugins --skill time-and-billing -a opencode -y
Windsurf
$ npx skills add wyre-ai/msp-claude-plugins --skill time-and-billing -a windsurf -y
name: "Alga PSA Time and Billing" description: > Alga PSA time and billing reads: time sheet approval states and the backlog waiting for a manager, time entries by technician, work item type, service and billable flag, technician schedules, invoice status (draft, sent, overdue, paid ...) with date-range filters, invoice line items, and the service catalog. Read-only: approvals and invoice actions stay in Alga. when_to_use: >- When checking Alga PSA time sheets, technician hours, billable versus non-billable time, or invoice status before a billing run or month end. Use when: alga time sheets, alga approvals, alga timesheet backlog, alga billable hours, alga utilization, alga overdue invoices, alga draft invoices, alga month end.
Before a billing run, a service manager checks that time is submitted and approved, that billable work is flagged billable, and that invoices are not sitting in draft or going overdue. These are all reads; none is admin-gated in Conduit. Approving a time sheet, requesting changes, finalising or sending an invoice is not possible through this connector. List what needs doing and who should do it.
| Concept | Values | |---|---| | Time sheet `approval_status` | `DRAFT`, `SUBMITTED`, `APPROVED`, `CHANGES_REQUESTED` | | Time entry `work_item_type` | ticket, project_task, non_billable_category, ad_hoc, interaction, co_managed | | Invoice `status` | draft, sent, paid, overdue, cancelled, pending, prepayment, partially_applied |
1. `alga_time_sheets_list` with `approval_status` SUBMITTED, sorted by `submitted_at` ascending: these wait on a manager. `{"approval_status": "SUBMITTED", "sort": "submitted_at", "order": "asc", "limit": 100, "page": 1}` 2. Repeat with DRAFT for sheets not yet submitted and CHANGES_REQUESTED for sheets sent back. Narrow to one period with `period_id`. 3. Map `user_id` to names with `alga_users_list`, and to managers with `alga_teams_list` (each team has a manager) so each item has an owner. 4. Report per technician: period, state, age. Flag anything submitted more than a few days ago.
1. `alga_time_entries_list` with `user_id`, `date_from` and `date_to` (`YYYY-MM-DD`). Page to the end. If a page request fails, report the hours as incomplete rather than presenting the technician totals as complete. 2. Split by `is_billable` and by `work_item_type`. A high share of `ad_hoc` or `non_billable_category` time is worth a conversation. 3. For a whole team, loop over its members from `alga_teams_list`, at most 4 calls at a time. 4. `alga_time_entries_get` for the detail on any single entry that looks wrong.
`alga_time_entries_list` with `is_billable` false and `work_item_type` ticket for the period. Check each ticket's client and contract (see [client-review](../client-review/SKILL.md)) and list entries that look billable. A person changes the flag in Alga.
ascending. Group by client.
days.
services with `alga_services_list`.
`alga_schedules_list` with `user_id` and `start_date` / `end_date` shows scheduled work, useful next to logged time when hours look low.
`start_time_*` / `end_time_*` filters are UTC timestamps.
low, check the role before drawing conclusions.
attribute time to a client.
manage them.
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.