quality-check — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited quality-check (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Individual orphan nodes are prevented by graph_batch (every node must connect). But the graph can still fragment into islands — clusters of well-connected nodes that don't talk to each other. Three regions about different aspects of the same project with no bridges between them means the understanding is siloed.
Use graph_analyze({ include: ["gaps", "bridges"] }) to detect this. When you find disconnected clusters:
Periodically prompt the user to pause and maintain the graph. Don't just run quality checks silently — surface what you find and ask the user to participate:
Graph maintenance is a collaborative act, not just a background process.
graph_thermostat — DIVERGE (explore) or CONVERGE (synthesize)graph_score — structural quality, target 70+graph_analyze — gaps, bridges, open questions, conflictsgraph_analyze({ include: ["gaps", "bridges", "questions", "conflicts"] })| Signal | What it means | The fix |
|---|---|---|
| Disconnected clusters | Understanding is siloed | Bridge — find shared concepts across clusters |
Many openQuestions | You know what you don't know | Explore — answer questions, or ask the user |
High density | Tight mental model | Disrupt — inject serendipity |
| Contradictions | Cognitive dissonance | Resolve — create synthesis |
Low supersessionCount | Nobody changed their mind | Revisit — have beliefs actually shifted? |
graph_thermostat({ mode }):
Before closing a turn where you did substantive graph work, check which triggers you did NOT use. Run:
graph_find_by_trigger({ trigger: "question" })
graph_find_by_trigger({ trigger: "tension" })
graph_find_by_trigger({ trigger: "prediction" })If any of these return empty and you've been doing real thinking, something is missing. Real understanding involves questions you can't answer yet, tensions you haven't resolved, and predictions about what comes next.
When graph_thermostat returns a recommendation:
DIVERGE (explore, generate variety):
graph_chaos() to inject serendipity — random connections that break tunnel visiongraph_discover() for grounded exploration — finds related concepts you haven't connected yetserendipity trigger nodes for unexpected connectionsCONVERGE (synthesize, resolve):
graph_analyze({ include: ["gaps", "bridges", "questions", "conflicts"] }) to find what needs connectingDeploy when the graph needs consolidation:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.