Dead deals, duplicated contacts, and empty fields pile up for months, and one day no decision can be made based on such a CRM. The skill finds stalled items, duplicates, and gaps in the data, shows everything as a list, and fixes only what you approved — without deletions or auto-merges.
Run a hygiene pass ~~crm through the skill's cleanup workflow crm-maintenance. Act immediately — the owner has entered /crm-cleanup, so skip the intent determination step.
Parse the arguments:
--scope(default:all) —dealsdeal audit only,contactscontact dedup only,allboth
Step 1 — Scan for stalled deals
If the scope includes deals:
- Pull all open deals from
~~crm. - Flag deals with no activity (email, call, meeting, note) in the last 14 days.
- For each stalled deal, show: deal name, stage, last activity date, associated contacts, and amount in ₽.
- Suggest actions for the deal: update the next step, change the stage, add a note, or close as lost.
Show the full list of stalled deals before making changes.
Step 2 — Scan for duplicate contacts
If the scope includes contacts:
- Find in contacts
~~crmprobable duplicates (same email/phone, similar names, same company + similar name). - For each duplicate pair, show both records side by side — name, email/phone, company, deals, last activity.
- Suggest which record to keep and which fields to merge.
Show all duplicate pairs before merging anything.
Step 3 — Scan for unfilled required fields
- Check all open deals for unfilled fields: close date, amount, deal stage, associated contact, next step/notes.
- Check the contacts associated with open deals for empty fields: email, company, phone.
- Show a table of records with empty fields and what is missing.
Step 4 — Apply approved edits
- Go through each finding from Steps 1–3.
- Apply only the changes that the owner has explicitly approved.
- Report each change as it is made, with a reference to the record in the CRM.
Connector failures
If ~~crm is unavailable, stop — this command needs the CRM as its data source. Tell the owner: "CRM is not connected. Connect it in Cowork settings (or export deals and contacts to CSV), then restart /crm-cleanup".
Approval gates
- Never delete records. Neither contacts, nor deals, nor activities. If the owner asks — say that the skill does not do this, and direct them to the CRM.
- Never change the deal stage or close a deal without explicit approval. Even if the evidence is strong. Flag it and set it aside.
- Never merge duplicate contacts automatically. Show the records side by side and wait for approval for each pair.
- Side-by-side diff for all changes. Show the current value and the proposed one; wait for approval for each item.
Output
Finish with a summary: X deals updated, Y contacts merged, Z fields filled. Add links to the affected records.