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 23blocks-OS/ai-maestro-plugins --skill graph-querygit clone --depth 1 https://github.com/23blocks-OS/ai-maestro-pluginsWrote 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/23blocks-os/ai-maestro-plugins/graph-query)<a href="https://agentmods.dev/skills/23blocks-os/ai-maestro-plugins/graph-query"><img src="https://agentmods.dev/badge/skills/23blocks-os/ai-maestro-plugins/graph-query/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/23blocks-os/ai-maestro-plugins/graph-query"><img src="https://agentmods.dev/badge/skills/23blocks-os/ai-maestro-plugins/graph-query.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Excessive Agency · line 25 Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
- medium Data Exfiltration · line 152 Code scans file system directories looking for sensitive files. This could be reconnaissance for credential theft.Fix: Remove unnecessary filesystem scanning. If file access is needed, use explicit, scoped paths. Avoid reading ~/.ssh, ~/.aws, or credential directories.
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.00064 | $0.00547 |
| Opus 5.5 | $0.00026 | $0.00219 |
| Sonnet 5.5 | $0.00013 | $0.00109 |
| Haiku 4.5 | $0.00006 | $0.00055 |
Grade A, and why
graph-query 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 18d 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.
What it actually says
Code Graph Query
AI Maestro keeps a graph of your agent's project: functions, classes and their calls, inheritance, includes, model associations and serializers. It answers "what breaks if I change this" faster and more completely than grep, which misses indirect callers, subclasses and serializers. The scripts find your agent from the tmux session; names are case-sensitive.
graph-describe.sh <name> # summary: callers, callees, extends/extended by, includes, serializers
graph-find-callers.sh <function> # who calls it: check before changing a signature
graph-find-callees.sh <function> # what it calls
graph-find-related.sh <component> # extends, includes and other relationships
graph-find-path.sh <from> <to> # call path between two functions (up to 5 hops)
graph-find-by-type.sh <type> # model | serializer | controller | service | job | mailer | concern | component | hook
graph-find-associations.sh <model> # belongs_to / has_many etc.
graph-find-serializers.sh <model> # serializers to update when a model changes
For a change to shared code, graph-describe.sh usually answers the question in one call; use the narrower scripts when you need the full list.
Keeping the graph current
graph-index-delta.sh [project-path]
Re-indexes only new, modified and deleted files (seconds); the first run on a project does the full index. Without a path it uses the agent's working directory. Run it after significant code changes if results look stale.
If the command fails
command not foundorcommon.sh not found: run./install-graph-tools.shfrom the AI Maestro checkout (update-aimaestro.shalso reinstalls the tools).- Empty results: check the exact name, list candidates with
graph-find-by-type.sh, or index withgraph-index-delta.sh. - AI Maestro unreachable: fall back to grep and tell the user the dependency check was manual.
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.
- 18d ago Changed · -131 lines · -16 tokens per session 2d33d252d0cc
- 1mo ago First seen · 172 lines · 80 tokens per session scan A 5ced24d2e295
graph-query is a skill published in the GitHub repository 23blocks-OS/ai-maestro-plugins (11 stars, last pushed today), licensed MIT. It adds 64 tokens to every session and 547 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-31.
Other skills, from other repositories
learner
Post-debugging knowledge extraction — captures non-obvious, codebase-specific learnings that pass quality gates. Invoke after resolving tricky bugs or discovering surprising behavior.
error-tracing
Read stack traces, follow error chains, and trace errors to their root cause. Use when the user encounters an error message, stack trace, exception, or crash. Apply when debugging async errors, React error boundaries, source map issues, or when an error message is unclear.
systematic-debugging
Apply structured debugging techniques to find and fix bugs efficiently. Use when the user reports a bug, encounters unexpected behavior, says something is "not working", or asks for help debugging. Apply hypothesis-driven debugging instead of random changes.
log-analysis
Implement structured logging and analyze logs to diagnose issues. Use when the user sets up logging, asks about log levels, needs to trace requests through distributed systems, or is analyzing log output to debug a problem. Apply when adding logging to any application.
express-error-handling
Express.js error handling patterns including async error catching, custom error classes, centralized error middleware, and the distinction between operational and programmer errors. Use when the user is handling errors in Express, writing async route handlers, creating custom error types, or debugging unhandled…
error-handling-go
Implement robust Go error handling with wrapping, sentinel errors, and custom types. Use when the user handles errors in Go, creates custom error types, wraps errors with fmt.Errorf and %w, uses errors.Is/As, or asks about Go error best practices and error propagation strategies.