# SkillGraph audit

Cataloged 11 skills with 103 prompt sections and 17 tool citations.
Found 27 findings: 16 errors, 11 warnings.

Every check is deterministic — a reference either resolves or it does not. No model decides whether something is broken.

| Check | Severity | Count |
| --- | --- | --- |
| broken-tool-ref | error | 7 |
| dangling-skill-ref | error | 9 |
| missing-reference-file | error | clean |
| orphan-skill | warn | clean |
| trigger-collision | warn | clean |
| unowned | warn | 11 |

## broken-tool-ref (7 findings)

The skill tells the agent to call an MCP tool that is not registered. This is schema drift: the tool was renamed upstream and the prompt still cites the old name. The agent calls it, gets nothing, and fails for a reason that looks nothing like a docs typo.

| Skill | Location | Referent | Fix | Upstream issue |
| --- | --- | --- | --- | --- |
| datahub-enrich | `skills/datahub-enrich/SKILL.md:65` | `add_tag` | `add_tags` | [datahub-skills#100](https://github.com/datahub-project/datahub-skills/issues/100) |
| datahub-enrich | `skills/datahub-enrich/SKILL.md:65` | `remove_tag` | `remove_tags` | [datahub-skills#100](https://github.com/datahub-project/datahub-skills/issues/100) |
| datahub-enrich | `skills/datahub-enrich/SKILL.md:66` | `add_glossary_term` | `add_terms` | [datahub-skills#100](https://github.com/datahub-project/datahub-skills/issues/100) |
| datahub-enrich | `skills/datahub-enrich/SKILL.md:66` | `remove_glossary_term` | `remove_terms` | [datahub-skills#100](https://github.com/datahub-project/datahub-skills/issues/100) |
| datahub-enrich | `skills/datahub-enrich/SKILL.md:67` | `set_owner` | `add_owners` | [datahub-skills#100](https://github.com/datahub-project/datahub-skills/issues/100) |
| datahub-enrich | `skills/datahub-enrich/SKILL.md:69` | `set_domain` | `set_domains` | [datahub-skills#100](https://github.com/datahub-project/datahub-skills/issues/100) |
| datahub-enrich | `skills/datahub-enrich/SKILL.md:70` | `set_deprecation` | — | [datahub-skills#100](https://github.com/datahub-project/datahub-skills/issues/100) |

## dangling-skill-ref (9 findings)

The skill routes to another skill that does not exist. The handoff is a dead end, so the work the agent was told to delegate simply never happens.

| Skill | Location | Referent | Fix | Upstream issue |
| --- | --- | --- | --- | --- |
| datahub-enrich | `skills/datahub-enrich/README.md:24` | `datahub-govern` | — | [datahub-skills#102](https://github.com/datahub-project/datahub-skills/issues/102) |
| datahub-enrich | `skills/datahub-enrich/SKILL.md:40` | `datahub-audit` | — | [datahub-skills#24](https://github.com/datahub-project/datahub-skills/issues/24) |
| datahub-lineage | `skills/datahub-lineage/SKILL.md:217` | `datahub-audit` | — | [datahub-skills#24](https://github.com/datahub-project/datahub-skills/issues/24) |
| datahub-search | `skills/datahub-search/SKILL.md:4` | `datahub-audit` | — | [datahub-skills#24](https://github.com/datahub-project/datahub-skills/issues/24) |
| datahub-search | `skills/datahub-search/SKILL.md:381` | `datahub-audit` | — | [datahub-skills#24](https://github.com/datahub-project/datahub-skills/issues/24) |
| datahub-search | `skills/datahub-search/SKILL.md:412` | `datahub-audit` | — | [datahub-skills#24](https://github.com/datahub-project/datahub-skills/issues/24) |
| datahub-setup | `skills/datahub-setup/SKILL.md:234` | `datahub-govern` | — | [datahub-skills#102](https://github.com/datahub-project/datahub-skills/issues/102) |
| datahub-setup | `skills/datahub-setup/SKILL.md:235` | `datahub-audit` | — | [datahub-skills#24](https://github.com/datahub-project/datahub-skills/issues/24) |
| datahub-setup | `skills/datahub-setup/SKILL.md:262` | `datahub-govern` | — | [datahub-skills#102](https://github.com/datahub-project/datahub-skills/issues/102) |

## unowned (11 findings)

No owner recorded. When a skill breaks there is nobody to route the fix to — the same governance gap DataHub flags on an unowned dataset.

| Skill | Location | Referent | Fix | Upstream issue |
| --- | --- | --- | --- | --- |
| datahub-connector-planning | `skills/datahub-connector-planning/SKILL.md:1` | — | — | — |
| datahub-connector-pr-review | `skills/datahub-connector-pr-review/SKILL.md:1` | — | — | — |
| datahub-enrich | `skills/datahub-enrich/SKILL.md:1` | — | — | — |
| datahub-lineage | `skills/datahub-lineage/SKILL.md:1` | — | — | — |
| datahub-mfe-configure-app | `skills/datahub-mfe-configure-app/SKILL.md:1` | — | — | — |
| datahub-mfe-create-app | `skills/datahub-mfe-create-app/SKILL.md:1` | — | — | — |
| datahub-quality | `skills/datahub-quality/SKILL.md:1` | — | — | — |
| datahub-search | `skills/datahub-search/SKILL.md:1` | — | — | — |
| datahub-setup | `skills/datahub-setup/SKILL.md:1` | — | — | — |
| load-standards | `skills/load-standards/SKILL.md:1` | — | — | — |
| using-datahub | `skills/using-datahub/SKILL.md:1` | — | — | — |

## Corroboration

These findings match bugs already filed by other people on the upstream repo, so they can be verified by reading the issue rather than trusting this output:

- [datahub-skills#100](https://github.com/datahub-project/datahub-skills/issues/100) — 7 findings
- [datahub-skills#102](https://github.com/datahub-project/datahub-skills/issues/102) — 3 findings
- [datahub-skills#24](https://github.com/datahub-project/datahub-skills/issues/24) — 6 findings

