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 agentmods add skills/bug-ops/zeph/json-yamlnpx skills add bug-ops/zeph --skill json-yamlgit clone --depth 1 https://github.com/bug-ops/zephWhat 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 | $0.00077 | $0.02780 |
| Opus 5 | $0.00039 | $0.01390 |
| Sonnet 5 | $0.00015 | $0.00556 |
| Haiku 4.5 | $0.00008 | $0.00278 |
Grade A, and why
json-yaml scanned grade A with 1 finding 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 2d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
# Pipe curl output to jq How it starts
The opening of the file, as written. The whole thing — 423 lines — stays where its author put it; the contents beside it link to each section on GitHub.
JSON & YAML Processing with jq and fy
Quick Reference
| Action | Command |
|---|---|
| Pretty-print JSON | jq . file.json |
| Minify JSON | jq -c . file.json |
| Extract field | jq '.name' file.json |
| Extract raw string | jq -r '.name' file.json |
| Validate YAML | fy parse file.yaml |
| Format YAML | fy format -i file.yaml |
| Lint YAML | fy lint file.yaml |
| YAML to JSON | fy convert json file.yaml |
| JSON to YAML | fy convert yaml file.json |
| Validate JSON | jq empty file.json |
jq Basics
Identity and Field Access
# Identity (pass-through, pretty-print)
cat data.json | jq .
# Access nested field
jq '.user.address.city' data.json
# Access array element
jq '.[0]' data.json
jq '.items[2]' data.json
# Access multiple fields (comma operator)
jq '.name, .age' data.json
# Optional field access (no error if missing)
jq '.missing?' data.json
String Interpolation
# Build strings from fields
jq -r '"Name: \(.name), Age: \(.age)"' data.json
# Use in filters
jq -r '.[] | "User \(.id): \(.email)"' users.json
Raw Output
# -r removes quotes from string output
jq -r '.name' data.json
# -R treats input as raw strings (not JSON)
echo "hello" | jq -R .
# --raw-output0 uses NUL separator (for xargs -0)
jq -r0 '.[]' list.json | xargs -0 -I{} echo "{}"
jq Filters
select — Filter by Condition
# Select objects matching condition
jq '.[] | select(.age > 30)' users.json
# Select by string match
jq '.[] | select(.name == "Alice")' users.json
# Select with contains
jq '.[] | select(.tags | contains(["admin"]))' users.json
# Select with test (regex)
jq '.[] | select(.email | test("@gmail\\.com$"))' users.json
# Select non-null values
jq '.[] | select(.address != null)' users.json
# Multiple conditions (and / or)
jq '.[] | select(.age > 25 and .status == "active")' users.json
jq '.[] | select(.role == "admin" or .role == "superadmin")' users.json
map — Transform Each Element
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.
- 2d ago First seen · 423 lines · 77 tokens per session scan A ebf758308b3d
json-yaml is a skill published in the GitHub repository bug-ops/zeph (57 stars, last pushed 8d ago), licensed MIT. It adds 77 tokens to every session and 2,780 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
data_analyst
Analyses datasets with professional rigour — statistical summaries, clear narratives, and well-chosen visualisations.
verify
Run Chimeraforge's canonical verification gate end-to-end and report the real output before claiming work done or committing. Failing output gets pasted, fixed, and re-run — never summarized away.
lint-js
Lint JS/TS code only. Use before opening a PR when only JavaScript or TypeScript files were changed (no Rust).
interview
Ask one useful structured question at a time only when material product/implementation choices are genuinely missing; remember answers and produce a brief/spec. Discoverable facts should be investigated instead of asked.
test
Detect the project’s test stack, run the narrowest useful tests, create tests when authorized, and report coverage/gaps honestly.
verify
Exercise the real app/API/CLI and collect observable evidence; tests alone do not count as end-to-end verification.