Borrowing it
Nothing to install: this file belongs to mmacpherson/tenforty. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/mmacpherson/tenforty/main/.claude/commands/graph-qa.mdgit clone --depth 1 https://github.com/mmacpherson/tenfortyWrote 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/commands/mmacpherson/tenforty/graph-qa)<a href="https://agentmods.dev/commands/mmacpherson/tenforty/graph-qa"><img src="https://agentmods.dev/badge/commands/mmacpherson/tenforty/graph-qa/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/commands/mmacpherson/tenforty/graph-qa"><img src="https://agentmods.dev/badge/commands/mmacpherson/tenforty/graph-qa.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.00000 | $0.00458 |
| Opus 5.5 | $0.00000 | $0.00183 |
| Sonnet 5.5 | $0.00000 | $0.00092 |
| Haiku 4.5 | $0.00000 | $0.00046 |
Grade A, and why
graph-qa 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.
What it actually says
Run complete quality assurance checks for graph backend (Haskell + Rust) before committing.
Prerequisites:
- Changes involve Haskell code in
tenforty-spec/or state tax forms - Working on graph backend or Rust code in
crates/tenforty-graph/
- Check
git statusto understand current state - Format Haskell code:
make spec-fmt- May alphabetize imports or reformat code
- Note any formatting changes for staging
- Lint Haskell code:
make spec-lint-strict- Should report "No hints"
- Fix any hints before proceeding
- Generate JSON graphs:
make spec-graphs- Watch for compilation errors or warnings
- Note any unexpected changes to existing forms
- Sync graphs to Python:
make forms-sync- Reports number of graphs synced
- Rebuild Rust extension:
make env-full- Critical: keeps
.soin sync with Rust source - Prevents test failures from out-of-date extension
- Critical: keeps
- Run pre-commit hooks:
make run-hooks- Must pass before committing
- Re-stage files if auto-fixed
- Run test suite:
uv run pytest tests/ -q --tb=line- Expected: 203+ passed, some skipped/xfailed
- All graph tests must pass
- Review staging with
git status- Check for unexpected changes (modified forms, etc.)
- Remove orphaned JSONs without Haskell sources if any
- Stage formatting changes from step 1 if needed
- For state-specific work, run focused test:
uv run pytest tests/regression_test.py -k "WI" -v(replace state)
- Report results and any files needing staging decisions
Common issues:
- If
graphlib_link_year_test.pyfails:.soout of sync, runmake env-full - If unexpected JSON changes: review with
git diff, decide to include/separate/discard - If untracked JSON files appear: likely stale, safe to remove
Always prefer make targets over running commands directly.
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 First seen · 42 lines · 0 tokens per session scan A 3f52ce71b7e8
graph-qa is a command published in the GitHub repository mmacpherson/tenforty (87 stars, last pushed 3d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 458 tokens. 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-09-01.
Other commands, from other repositories
mutation-test
Uses cargo-mutants to run mutation tests and verify test quality.
cargo-bench
Command "cargo-bench" from olorehq/olore, covering cargo-bench(1), name, synopsis, description and working directory of benchmarks.
check-go
Run Go code quality checks including formatting, linting, vetting, and tests.
go-test
A Go testing command that follows test-driven development, or TDD: write a failing test, implement the smallest change that passes it, then improve the code.
test
Run .NET TDD workflow — write failing xUnit/MSTest tests, implement, verify. For bugs, use the Prove-It pattern.
rust-test
Rust TDD workflow with unit and property tests.