Vault coverage honesty
Skill PranavNagrecha/Salesforce-Intelligence/.claude/skills/vault-coverage-honesty
Routes coverage and destructive-verdict questions. Call sfi.coverage_report when the user asks whether the vault is complete, why something was not found, or before narrating safe-to-delete / what-if answers. Render coverageCaveat BEFORE the verdict — never footnote it. Refuse absence-based answers for not-modeled families; distinguish "not in vault" from "not in org".From its SKILL.md
npx -y skills add PranavNagrecha/Salesforce-Intelligence --skill vault-coverage-honestyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.0 KB, as published. Nobody here has run it
Vault coverage honesty
When this skill applies
Fire when the conversation touches:
- Vault completeness ("is my vault complete?", "what wasn't retrieved?")
- "Why is X not found?" — distinguish absent from the org vs not covered by the last retrieve
- Any destructive or what-if verdict (
safe_to_delete_field,what_if_*, release readiness) - Report / list view / FlexiPage / PSG questions where the vault may lack those families
Required tool order
sfi.coverage_report(orsfi.health_checkcoverage block) when completeness is unknown.- The destructive or what-if tool second — never skip step 1 before claiming
safe.
Rendering coverageCaveat
When a tool returns coverageCaveat, render it before the verdict:
I can't confirm this is safe — the vault has incomplete coverage for: Report, FlexiPage. Treat missing dependencies in those families as not checked, not none. Verified dependencies: …
Never bury the caveat after a confident-sounding verdict.
Verbatim disclosure
Carry the sfi.coverage_report disclosure:
Coverage describes what the last
sf project retrieverequested and returned — not what exists in the org. A type listed undernotModeledis not analyzed by this product at all; its absence from any result means "not checked", never "none". Re-run/sfi-refreshafter widening your retrieve manifest to close a gap.
v4.0+ vaults model Reports, Dashboards, List Views, Report Types, FlexiPages, Permission Set Groups, Muting Permission Sets, Restriction Rules, and Scoping Rules when those types are included in the retrieve. If coverage rows show retrieved: 0 or the type is missing from the manifest, say not checked — not "none."
Refusal patterns
| User question | Wrong answer | Right answer |
|---|---|---|
| "Which reports use this field?" when Report coverage is partial/missing | "None" | Reports were not fully modeled in this vault; run sfi.run_analysis with { "name": "sfi.coverage_report", "args": { … } }, widen retrieve, or use the org's report UI. |
| "Safe to delete?" under partial coverage | "Safe" | Downgrade to review/risky; cite coverageCaveat.missingCoverage. |
| "Nothing references this field" with gaps in analytics/UI coverage | "Unused" | "No references found in the families the vault checked." |
Composition with other skills
freshness-tracking: freshness = how old; coverage = how whole.architect-impact-analysis: impact answers inherit the same caveat on absence-based claims.- Live plane (
sfi.live_*): live data does not repair offline coverage gaps; it answers runtime questions only with asfi.live_consentgrant orSFI_LIVE_PLANE_ENABLED=1(per-callliveEnabledis intent only, not consent).
Trust fields
Surface data.trust.provenance and data.trust.completeness.status when present:
offline_snapshot— default vault answerslive_org— opt-insfi.live_*onlyhybrid— when combining vault impact with live counts (both planes disclosed)
List views and skipped directories
When manifest.skippedDirectories includes listViews, those files were retrieved
but not extracted into the graph (walker skip or retrieve-only). Coverage marks
ListView as neverModeled; safe_to_delete_field surfaces coverageCaveat and
downgrades unqualified safe to review. When list views are included in the
retrieve and extracted (extractListView under objects/*/listViews/), incoming
references edges from ListView: nodes behave like Report blockers. Say
"not checked (list views not modeled)" rather than "no references found."
Grounding & routing (shared contract). For a vague or broad ask, call sfi.route_question first — in the default hybrid mode it returns a meaning-ranked toolCandidates shortlist (which YOU pick from) plus a suggested plane and a route hint (and whether to sfi.resolve a name first). Default tool profile is core: only the core spine (including sfi.live_consent) is directly invokable. For every other sfi.* analysis, call sfi.run_analysis with { "name": "sfi.<tool>", "args": { … } } (or follow route_question.invoke, which already wraps non-core steps). Optional: sfi.describe_analysis first when args are unclear. Every org fact must come from an sfi.* tool call, cited by its canonical id — never from memory. Build the answer only from what the tools returned, then pass it through sfi.synthesize_answer, which flags any hallucinatedIds (canonical ids no tool produced). Full cascade: using-sf-intelligence.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most test skills give
Counted across 1,201 of the 2,096 authors here whose files we hold, read 2026-09-06
- Write a failing test before writing codein 43 of 1201, across 36 files
- Run the full test suitein 36 of 1201, across 35 files
- Test only one variable per experimentin 34 of 1201, across 17 files
- Read product marketing context before asking questionsin 34 of 1201, across 14 files
- Mock external dependenciesin 34 of 1201, across 30 files
- Define primary, secondary, and guardrail metricsin 33 of 1201, across 16 files
- Pre-determine sample size before startingin 31 of 1201, across 14 files
- Test behavior rather than implementationin 31 of 1201, across 29 files
- Formulate a hypothesis before designing a testin 30 of 1201, across 13 files
- Document every test hypothesis, variant, and resultin 29 of 1201, across 11 files
- Use descriptive test function namesin 25 of 1201, across 21 files
- Commit to the methodology without stopping earlyin 24 of 1201, across 8 files
Said here and by no other author read
- Call sfi.coverage_report when completeness is unknown
- Run sfi.coverage_report before destructive or what-if tools
- Render coverageCaveat before the verdict
- Distinguish not in vault from not in org
- Say not checked instead of none for missing coverage
- Surface data.trust.provenance and data.trust.completeness.status
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.