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 gpsaggese/helpers --skill graphviz.generate_legendgit clone --depth 1 https://github.com/gpsaggese/helpersWrote 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/gpsaggese/helpers/graphviz.generate_legend)<a href="https://agentmods.dev/skills/gpsaggese/helpers/graphviz.generate_legend"><img src="https://agentmods.dev/badge/skills/gpsaggese/helpers/graphviz.generate_legend/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/gpsaggese/helpers/graphviz.generate_legend"><img src="https://agentmods.dev/badge/skills/gpsaggese/helpers/graphviz.generate_legend.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.00012 | $0.01408 |
| Opus 5.5 | $0.00005 | $0.00563 |
| Sonnet 5.5 | $0.00002 | $0.00282 |
| Haiku 4.5 | $0.00001 | $0.00141 |
Grade A, and why
graphviz.generate_legend 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 yesterday.
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 — 130 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Goal
- Generate a Graphviz legend for causal knowledge graphs, covering node types and edge styles
Templates
Node Legend
digraph WindTurbineCKG {
rankdir=LR;
splines=true;
nodesep=0.8;
ranksep=1.2;
bgcolor="white";
subgraph cluster_legend {
label="Legend: Node Types";
fontsize=11;
fontname="Helvetica";
color=gray70;
style="rounded,dashed";
bgcolor="white";
// Put every legend node on the SAME rank (same vertical alignment)
{ rank=same;
leg_exog; leg_op; leg_latent; leg_obs; leg_health; leg_out;
}
leg_exog [label="Exogenous /\nEnvironmental", shape=ellipse, style=filled, fontcolor=black, color=royalblue4, fillcolor=lightsteelblue1];
leg_op [label="Operational /\nMechanism", shape=box, style="rounded,filled,solid", fontcolor=black, color=darkgreen, fillcolor=palegreen1];
leg_latent [label="Latent /\nHidden State", shape=box, style="filled,dashed", fontcolor=gray40, color=gray40, fillcolor=gray90];
leg_obs [label="Observable\nSignal", shape=ellipse, style=filled, fontcolor=black, color=darkgreen, fillcolor=palegreen1];
leg_health [label="Health\nIndicator", shape=ellipse, style=filled, fontcolor=black, color=gray40, fillcolor=gray90];
leg_out [label="Outcome /\nTarget", shape=box, penwidth=2, style=filled, fontcolor=black, color=darkorange3, fillcolor=moccasin];
// Keep left-to-right ordering without changing ranks
leg_exog -> leg_op [style=invis, weight=10];
leg_op -> leg_latent [style=invis, weight=10];
leg_latent -> leg_obs [style=invis, weight=10];
leg_obs -> leg_health [style=invis, weight=10];
leg_health -> leg_out [style=invis, weight=10];
}
}
Edge Legend
digraph legend {
graph [rankdir=TB, nodesep=0.5, ranksep=0.7];
node [shape=point, width=0, height=0, margin=0];
edge [dir=forward];
// Row 1: Direct causation
{
rank=same;
a1 [label="", style=invis];
b1 [label="", style=invis];
t1 [shape=plaintext, style=solid, label="Direct causation", fontsize=16, fontname="Arial"];
a1 -> b1 [style=solid, color=black, penwidth=3, arrowsize=1.2, minlen=3];
b1 -> t1 [style=invis, minlen=1];
}
// Row 2: Uncertain/hypothesized causation
{
rank=same;
a2 [label="", style=invis];
b2 [label="", style=invis];
t2 [shape=plaintext, style=solid, label="Uncertain / hypothesized causation", fontsize=16, fontname="Arial"];
a2 -> b2 [style=dotted, color=black, penwidth=2, arrowsize=1.0, minlen=3];
b2 -> t2 [style=invis, minlen=1];
}
// Row 3: Correlation/association
{
rank=same;
a3 [label="", style=invis];
b3 [label="", style=invis];
t3 [shape=plaintext, style=solid, label="Correlation / association (non-causal)", fontsize=16, fontname="Arial"];
a3 -> b3 [style=dotted, color=gray50, penwidth=2, arrowhead=none, minlen=3];
b3 -> t3 [style=invis, minlen=1];
}
// Row 4: Positive effect
{
rank=same;
a4 [label="", style=invis];
b4 [label="", style=invis];
t4 [shape=plaintext, style=solid, label="Positive effect (+ / ++ / +++)", fontsize=16, fontname="Arial"];
a4 -> b4 [style=solid, color="#228B22", penwidth=3, arrowsize=1.2, minlen=3];
b4 -> t4 [style=invis, minlen=1];
}
// Row 5: Negative effect
{
rank=same;
a5 [label="", style=invis];
b5 [label="", style=invis];
t5 [shape=plaintext, style=solid, label="Negative effect (- / -- / ---)", fontsize=16, fontname="Arial"];
a5 -> b5 [style=solid, color="#DC143C", penwidth=3, arrowsize=1.2, minlen=3];
b5 -> t5 [style=invis, minlen=1];
}
// Row 6: Strength encoding - using <-> instead of Unicode
{
rank=same;
a6 [label="", style=invis];
b6 [label="", style=invis];
t6 [shape=plaintext, style=solid, label="Strength encoding (weak <-> strong)", fontsize=16, fontname="Arial"];
a6 -> b6 [style=solid, color="#228B22", penwidth=3, arrowsize=1.2, minlen=3];
b6 -> t6 [style=invis, minlen=1];
}
// Force vertical ordering and left alignment
a1 -> a2 -> a3 -> a4 -> a5 -> a6 [style=invis];
b1 -> b2 -> b3 -> b4 -> b5 -> b6 [style=invis];
}
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.
- yesterday First seen · 130 lines · 12 tokens per session scan A f087ff1759d2
graphviz.generate_legend is a skill published in the GitHub repository gpsaggese/helpers (158 stars, last pushed today), licensed Apache-2.0. It adds 12 tokens to every session and 1,408 once invoked, about $0.0000 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-11-06.
graphviz.generate_legend compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| graphviz.generate_legendgpsaggese/helpers | Skill | 158 | today | Apache-2.0 | A | 12 | Claude Code |
| instrument-data-to-allotropeanthropics/knowledge-work-plugins | Skill | 35k | today | Apache-2.0 | A | 123 | Claude Code |
| exploratory-data-analysisK-Dense-AI/scientific-agent-skills | Skill | 56k | 5d ago | MIT | A | 83 | Claude Code |
| matlabK-Dense-AI/scientific-agent-skills | Skill | 56k | 5d ago | MIT | A | 44 | Claude Code |
| phylogeneticsK-Dense-AI/scientific-agent-skills | Skill | 56k | 5d ago | MIT | A | 71 | Claude Code, Codex |
| research-engineerdavila7/claude-code-templates | Skill | 33k | today | MIT | A | 43 | Claude Code, Codex |
| mapping-to-snomedmaziyarpanahi/openmed | Skill | 5.8k | today | Apache-2.0 | A | 205 | Claude Code |