agentleFS
TrustPagerTrustPager/Business_Operating_System/skills/audit-my-data/SKILL.md

Audit My Data

Skill8 starsChanged 5 months agoMITView on GitHub

Find the mess in the workspace — missing fields, bad/missing emails, likely-duplicate contacts, dormant and orphan records, opportunities with no contact/value/owner, overdue and undated tasks. Read-only; surfaces a fix checklist worst-first.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If a script errors (auth/network), say so briefly and fall back to MCP reads (list_contacts, list_opportunities, list_tasks) — but that's …

    line 47
  2. Very specific:

    Use the operator's own pipeline/stage/field names (pull from the data, don't invent).

    line 73

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Audit My Data

Owners import contacts, half-fill opportunities, and never look back — so the data quietly rots: duplicate contacts, deals with no owner, tasks with no due date. This is the hygiene check-up. Read-only — it surfaces a fix list and offers the safe fixes one at a time.

Step 1 — Run the audits

Two read-only tools cover the data-hygiene surface; run both:

python ~/.claude/bos-run.py tool find-gaps --json
python ~/.claude/bos-run.py tool audit-contacts --json
  • find-gaps.py — opportunities with no contact / no value / no stage / no owner; tasks overdue or with no due date.
  • audit-contacts.py — missing/bad emails, likely-duplicate contacts (same email, or same name+company), dormant (365d+ no activity, no open opp), orphan (linked to nothing). --dormant-days N to tune.

If a script errors (auth/network), say so briefly and fall back to MCP reads (list_contacts, list_opportunities, list_tasks) — but that's many calls; prefer the scripts.

(For pipeline performance — stuck deals, stage drop-offs, value by stage — that's /weekly-review, not this skill. Keep this one to data quality.)

Step 2 — Present the report, worst first

Lead with what's actively costing money or will embarrass them, then tidy-ups.

🧹 Data audit — 3 things to fix, 2 worth a look

❌ FIX (costing you)
  → 4 opportunities have no owner — no one's working them. → assign
  → 2 likely-duplicate contacts (same email): "j.smith@…" appears twice. → merge/dedupe
  → 7 opportunities have no value set — your pipeline total is understated. → set value

⚠️ WORTH A LOOK
  → 12 contacts have no email — can't be emailed or blasted. → enrich or archive
  → 18 dormant contacts (no activity 365d+, no open deal). → archive or re-engage

✅ Clean: stages all placed, no orphan opportunities.

Use the operator's own pipeline/stage/field names (pull from the data, don't invent). Don't dump every row — show the worst few per category and the count.

On dormant-contact findings, name reactivation as the fix: a lead unworked for ~3 months has gone cold (business-method.md §10.3, directional), and a worked 200 beats a hoarded 5,000 — the value is in re-engaging the recent ones, not in keeping the pile.

Step 3 — Offer the fixes (with approval, one at a time)

For the safe, mechanical fixes, offer to apply them — one at a time, with a yes:

  • Assign an unowned opportunity → mcp__trustpager__update_opportunity(id, assigned_user_ids=[...])
  • Set a missing value → update_opportunity(id, amount=...) (confirm the number with the operator)
  • Archive a dormant/orphan contact → confirm by name first.

Never merge or delete without explicit, named confirmation. Deduping is destructive — show the two records and which survives before doing anything. For bulk cleanups, do a small batch first, show the result, then continue.

What to never do

  • ❌ Don't present findings alphabetically or as one flat list — rank by cost.
  • ❌ Don't auto-fix — offer, get a yes, one at a time.
  • ❌ Don't merge/delete records without showing them and naming what survives.
  • ❌ Don't treat "dormant" as "delete" — it's a re-engage-or-archive decision.

Output shape

Headline tally, then FIX (worst first), then WORTH-A-LOOK, then a clean tally — and the single highest-value fix to make first.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.