Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add huangpufan/SSOT-SKILL --skill ssot-doctorgit clone --depth 1 https://github.com/huangpufan/SSOT-SKILLWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/huangpufan/ssot-skill/ssot-doctor)<a href="https://agentmods.dev/skills/huangpufan/ssot-skill/ssot-doctor"><img src="https://agentmods.dev/badge/skills/huangpufan/ssot-skill/ssot-doctor/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/huangpufan/ssot-skill/ssot-doctor"><img src="https://agentmods.dev/badge/skills/huangpufan/ssot-skill/ssot-doctor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00087 | $0.01360 |
| Opus 5.5 | $0.00035 | $0.00544 |
| Sonnet 5.5 | $0.00017 | $0.00272 |
| Haiku 4.5 | $0.00009 | $0.00136 |
Grade A, and why
ssot-doctor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 40 lines — stays where its author put it; the contents beside it link to each section on GitHub.
SSOT Doctor
Find where SSOT/ is wrong, missing, contradictory, or hard to use, and say exactly how far your check went. The model you check against is memory-model.md.
1. Agree on the scope
If SSOT/README.md has no ssot_format: 3 (usually a v2 layout), review read-only and offer migration with $ssot-bootstrap. Do not write to it.
The scope is the whole SSOT, one area or file, a catch-up from a given commit, or mining one area's protected rules (follow ../ssot-bootstrap/references/mining.md, with separate agents). State it in your report. Findings, and any statement that something is healthy, cover only that scope.
2. Run the mechanical check
From the repository root, run python3 <this skill's directory>/assets/scripts/ssot-check.py SSOT. It reports errors (a missing entry point, broken links or heading anchors, a malformed invariants register, a confirmed invariant changed without a new dated source) and warnings (oversized files, v2 leftovers, and mentioned files that git says were removed or moved). It cannot tell whether a statement is true or readable. That part is your review; the removal warnings are a good place to start. Exit code 3 means the run was incomplete: the checker crashed or could not examine part of the tree. That is never a pass, and any errors it did list are still real. Errors in files outside your scope do not stop the review of your scope. Report them separately.
3. Review the scope
- Truth. In each document, pick the statements a future task would act on, such as contracts, state ownership, commands, defaults, and "planned" labels, and check each against the code, configuration, and tests; a fresh helper that did not write them checks best. Look hardest at two kinds: statements with "all", "only", "every", "never", or "always", which often miss an exception; and statements taken from a design document, an ADR, or a code comment, which may describe intent the code does not implement. Fix or qualify each one that does not hold, and label unbuilt intent as planned. Start with areas that changed recently in
git log. - Consistency. Look for one fact stated two different ways, and for superseded decisions still presented as current.
- Invariants. Every row links to an explanation inside
SSOT/. No rule changed meaning or status without a recorded user decision. Each candidate meets the admission rule in memory-model §5; candidates are not a backlog for the user to confirm. - What does not belong. Flag restated code, proof of a single task, edit history, and status about the documents themselves.
- Usefulness to a newcomer. If you can start a helper with a fresh context, give it three to five real tasks for this repository. Include at least one normal path, one failure or recovery case, and one boundary judgment ("may I change X?"). The helper starts from
SSOT/README.mdand reads onlySSOT/. Then check its key answers against the code, configuration, and confirmed decisions: an answer that matches a wrong document is a finding about the document. Report which tasks you used. If no helper is available, say that this check was your own reading.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed 8efd790374da
- 7d ago Changed 2669b5986b67
- 8d ago Changed dc3c7b4e3fbc
- 9d ago Changed · -47 lines 8df2d5f4687a
- 10d ago Changed · +72 lines · +18 tokens per session e6b6b002bd9e
- 1mo ago Changed fce3710a7ba9
- 1mo ago Changed · +1 lines 2a0a8e8fdd01
- 2mo ago First seen · 14 lines · 69 tokens per session scan A f62b8124e5ad
ssot-doctor is a skill published in the GitHub repository huangpufan/SSOT-SKILL (11 stars, last pushed today), licensed MIT. It adds 87 tokens to every session and 1,360 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
ssot-doctor compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| ssot-doctorhuangpufan/SSOT-SKILL | Skill | 11 | today | MIT | A | 87 | Codex |
| imagegenopenai/codex | Skill | 133k | yesterday | Apache-2.0 | A | 113 | Codex |
| playwright-climicrosoft/playwright | Skill | 99k | yesterday | Apache-2.0 | A | 19 | Claude Code |
| local-ai-agentsmicrosoft/ai-agents-for-beginners | Skill | 79k | 4d ago | MIT | A | 200 | Claude Code, Codex |
| systematic-debuggingobra/superpowers | Skill | 313k | 3d ago | MIT | A | 21 | Claude Code |
| next-cache-components-adoptionvercel/next.js | Skill | 143k | today | MIT | A | 95 | Claude Code |
| next-partial-prefetching-adoptionvercel/next.js | Skill | 143k | today | MIT | A | 103 | Claude Code |