← ClaudeAtlas

dovetaillisted

Check whether a repository agrees with itself, then work through the findings one at a time. Finds broken internal links, dangling heading anchors, orphaned files, duplicate content, translations that have fallen behind, drift between docs and code, contradictions between documents, and conventions the repo states but does not follow. Not for code review or security audits, and it checks external URLs only when asked. Trigger on phrases like "dovetail", "does this repo agree with itself", "find contradictions in the docs", "repo coherence", "docs drift", "check the docs for broken links".
dbhq-uk/dovetail-skill · ★ 3 · AI & Automation · score 71
Install: claude install-skill dbhq-uk/dovetail-skill
# dovetail Checks whether a repository agrees with itself, and walks through what it finds. Two layers produce findings. **Exact** findings are computed in Python - links, anchors, orphans, duplicates, flag and signature drift, conventions, git-history signals. They come in two tiers. **Proven** ones follow from the structure alone, such as a link to nothing. **Heuristic** ones are likely problems that intent can explain, such as a file nothing links to. `next` prints the tier. **Judged** findings come from reviewers - contradictions, semantic staleness, spec drift, non-Python dead code. They are probabilistic. The user must always know which they are looking at. Never blur the two. **What it does not check.** Only links inside the repository are resolved: external URLs are skipped unless the user asks for `--external-links`. Links are read from `.md` and `.markdown` files, so `.mdx` pages are not checked. Say so if the user asks for either. ## Running outside Claude Code The commands below use `${CLAUDE_SKILL_DIR}`. Claude Code sets it, and `install-codex.sh` writes the real path in its place. If it is neither set nor replaced, use the directory this `SKILL.md` is in. - **No question box** (Codex, or an agent installed through skills.sh): ask in plain text instead. Print the same header, question and numbered options, one finding per message, then stop and wait for the answer. - **No model choice per subagent:** run each shard on the model you have, and say in the hea