GraphJin is a compiler and runtime that gives AI agents a governed graph-based way to work with databases, files, source code, workflows, and other systems through GraphQL and MCP. It is also used as a GraphQL-to-database service, API gateway, Go library, and real-time subscription server. The catalogue add-ons connect agents to GraphJin or support its agent workflow.
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 dosco/graphjin --skill graphjin-evalgit clone --depth 1 https://github.com/dosco/graphjinWrote 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/dosco/graphjin/graphjin-eval)<a href="https://agentmods.dev/skills/dosco/graphjin/graphjin-eval"><img src="https://agentmods.dev/badge/skills/dosco/graphjin/graphjin-eval/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/dosco/graphjin/graphjin-eval"><img src="https://agentmods.dev/badge/skills/dosco/graphjin/graphjin-eval.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00027 | $0.02240 |
| Opus 5.5 | $0.00011 | $0.00896 |
| Sonnet 5.5 | $0.00005 | $0.00448 |
| Haiku 4.5 | $0.00003 | $0.00224 |
Grade A, and why
graphjin-eval 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 1mo 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 — 232 lines — stays where its author put it; the contents beside it link to each section on GitHub.
GraphJin Eval
Use this skill when a user wants to create or run a GraphJin agent benchmark, add a real business question to the suite, establish a baseline, compare a candidate, or understand an evaluation failure.
Rules
- Always use
graphjin evalcommands with--jsonfor machine-readable state. - Never edit
eval/suite.yml, hidden oracle definitions, tolerances, reward weights, reports, or baseline files by hand. - Never hand-edit
website/data/benchmarks/<benchmark>.yamlorwebsite/content/benchmarks/<benchmark>/runs/.graphjin eval publishis the only supported writer; it writes one row and one run page and never runs Git. - Treat
eval publish --labelas presentation only. Supersession uses the normalized provider and model identity, not the display label. - Use
graphjin eval rm <task-id>as the supported task-removal path; never delete a task from the suite file manually. - Never invent an oracle, field, threshold, or business interpretation.
- Treat exit code 2 as a broken suite, not a model regression.
- Treat the suite generator version as part of the scoring contract. Bump
eval.GeneratorVersionwhenever generated task semantics change, including method-rule dialect support, then regenerate every committed/frozen suite. A binary must refuse suites from any other generator version. - Treat exit code 3 as an environment problem, not a model regression.
- Treat exit code 130 as an interrupted checkpoint. Resume it; do not score it.
- Provider-backed commands can incur cost. Explain the expected call count and
use
--yesonly after the user approves provider traffic. - Read both usage views in the report: finalized tokens measure agent efficiency, while provider tokens include failed attempts and retries. On a compatible baseline, report the total-token and tokens-per-episode direction and percentage; treat cross-model or differently shaped comparisons as advisory.
- Check
provider_usage.complete. If false,unknown_attemptscounts provider calls that returned no usage and all recorded token totals are lower bounds. Never compare token percentages across accounting versions, providers, models, configuredmax_steps, or incomplete provider usage. - Before calling two runs a same-build comparison, require matching
provenance.binary_fingerprint. It is the SHA-256 of the exact CLI executable and catches runtime changes that do not alter prompt hashes. - Full prompts, answers, rows, and executed queries stay in local episode files. Share reports, not episode files, unless the user explicitly asks for the private trajectory.
- Failed/interrupted provider attempts stay under
.graphjin-evals/attempts/. They are private, and no persisted file may contain a credential. - Use
GOOGLE_API_KEYas the canonical Google credential name. - Publishing does not refuse a low score. Never rerun a completed benchmark to
make the public board look better; publish the observed result with its
acceptedstate. - Do not publish a report marked
scoring_suspectuntil the scorer/runtime mismatch is understood.--allow-suspect-scoringis an explicit audited override, not a routine publishing flag. - Publish with the exact binary that ran the benchmark. A missing
graphjin_commitor mismatchedbinary_fingerprintis a broken provenance chain and must be rerun, not waived. - Never publish an off-suite run unless the user explicitly asks for it. When
asked, use
--allow-off-suiteand verify it appears as unranked with the mismatch reason.
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.
- 1mo ago Changed · +39 lines 6b55ea6a7deb
- 1mo ago First seen · 193 lines · 27 tokens per session scan A 9fa853dcbe87
graphjin-eval is a skill published in the GitHub repository dosco/graphjin (3,213 stars, last pushed 2d ago), licensed Apache-2.0. It adds 27 tokens to every session and 2,240 once invoked, about $0.0001 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.
Other skills, from other repositories
sql-expert
Expert-level SQL database design, querying, optimization, and administration across PostgreSQL, MySQL, and SQL Server. Use when the user mentions database, PostgreSQL, MySQL, or query optimization, or when the task involves Database Design, Advanced Queries, Indexes and Performance, or Transactions and Concurrency.
database-query
Natural language database queries with multi-database support, query optimization, and visual results.
Database Schema Reviewer
Reviews database schemas for normalization issues, missing indexes, naming inconsistencies, and scalability risks.
database-query
Generate, optimize, and explain SQL queries - supports SQLite, PostgreSQL, MySQL with schema introspection, migration generation, and query performance analysis.
database-sql
Design database schemas, write efficient SQL queries, create migrations, and optimize database performance. Use when working with databases, writing queries, or designing data models.
sql
SQL patterns for database querying and design.