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 hardwood-hq/hardwood --skill hardwood-cligit clone --depth 1 https://github.com/hardwood-hq/hardwoodWrote 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/hardwood-hq/hardwood/hardwood-cli)<a href="https://agentmods.dev/skills/hardwood-hq/hardwood/hardwood-cli"><img src="https://agentmods.dev/badge/skills/hardwood-hq/hardwood/hardwood-cli/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/hardwood-hq/hardwood/hardwood-cli"><img src="https://agentmods.dev/badge/skills/hardwood-hq/hardwood/hardwood-cli.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 8 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 Prompt Injection · line 306 Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.Fix: Remove the large whitespace padding (blank-line blocks or long space runs) and review any content hidden below or to the right of it. Keep skill files compact and reviewable so no instructions can be
- medium Prompt Injection · line 309 Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.Fix: Remove the large whitespace padding (blank-line blocks or long space runs) and review any content hidden below or to the right of it. Keep skill files compact and reviewable so no instructions can be
- medium Prompt Injection · line 316 Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.Fix: Remove the large whitespace padding (blank-line blocks or long space runs) and review any content hidden below or to the right of it. Keep skill files compact and reviewable so no instructions can be
- medium Prompt Injection · line 310 Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.Fix: Remove the large whitespace padding (blank-line blocks or long space runs) and review any content hidden below or to the right of it. Keep skill files compact and reviewable so no instructions can be
- medium Prompt Injection · line 313 Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.Fix: Remove the large whitespace padding (blank-line blocks or long space runs) and review any content hidden below or to the right of it. Keep skill files compact and reviewable so no instructions can be
- medium Prompt Injection · line 317 Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.Fix: Remove the large whitespace padding (blank-line blocks or long space runs) and review any content hidden below or to the right of it. Keep skill files compact and reviewable so no instructions can be
- medium MCP Rug Pull · line 340 Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.Fix: Pin the image: image:tag or image@sha256:abc123
- low Tool Misuse · line 340 Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
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.00216 | $0.05053 |
| Opus 5 | $0.00108 | $0.02527 |
| Sonnet 5 | $0.00043 | $0.01011 |
| Haiku 4.5 | $0.00022 | $0.00505 |
Grade A, and why
hardwood-cli 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 12d 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 — 345 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Inspecting Parquet files with hardwood
hardwood is a command-line tool for looking inside Apache Parquet files without
writing any code. It is purpose-built for the moments when you are debugging
Parquet read/write code and start to suspect the file itself — a type that does
not match, statistics that are missing, an encoding that defeats your optimizer,
a dictionary that is not what you expect.
This skill teaches you which subcommand answers which question, how to read the output, and how to chain a few commands into a diagnosis.
Before you start
-
Confirm the binary is available. The CLI ships as a GraalVM native binary with instant startup. Check for it before assuming a flag will work:
command -v hardwood && hardwood --version -
Every command takes
-f/--file. This is the only required flag for the read-only commands. It accepts a local path or ans3://URI (no extra config beyond the standard AWS environment variablesAWS_REGION,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY, etc.):hardwood schema -f s3://my-bucket/path/to/data.parquet -
-h/--helpon any command lists its real options — run it when a flag below does not match what you see, e.g.hardwood inspect pages --help. -
diveneeds a TTY; you usually do not.hardwood diveis an interactive terminal UI. It exits with an error when stdin/stdout is not a real terminal, which is the normal case for an agent. Use the headless subcommands below for your own investigation, and suggestdiveto the human user when they want to poke around a file interactively.
Command quick reference
| You want to know… | Run |
|---|---|
| The high-level shape of a file (row groups, rows, sizes, writer) | hardwood info -f FILE |
| The schema: fields, physical types, logical-type annotations | hardwood schema -f FILE |
| The same schema as Avro or Protobuf | hardwood schema -f FILE -F AVRO / -F PROTO |
| A few actual rows, formatted | hardwood print -n 20 -f FILE |
| The raw file layout: size, footer offset/length, PAR1 magic | hardwood footer -f FILE |
| Per-column size, ranked: share, compression, encoding + dictionary cardinality | hardwood inspect columns -f FILE |
| Level histograms for one column: nulls vs empty lists | hardwood inspect columns -f FILE --column PATH |
| Per-row-group column chunks: type, codec, sizes | hardwood inspect rowgroups -f FILE |
| Pages (data + dictionary) and their min/max stats | hardwood inspect pages -f FILE [-c COLUMN] |
| The dictionary entries of a column | hardwood inspect dictionary -f FILE -c COLUMN |
| Rows out as CSV or JSON | hardwood convert -f FILE -F csv|json |
| Embedded metadata from other engines (Arrow, Spark, pandas) | hardwood info -f FILE, --kv-key KEY |
| Interactive exploration (hand off to the user) | hardwood dive -f FILE |
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.
- 12d ago First seen · 345 lines · 216 tokens per session scan A 78fa8abd9622
hardwood-cli is a skill published in the GitHub repository hardwood-hq/hardwood (371 stars, last pushed today), licensed Apache-2.0. It adds 216 tokens to every session and 5,053 once invoked, about $0.0011 per session on Opus 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
perf-torch-sync-free
Identify and eliminate host-device synchronizations in PyTorch code. Detects sync points (.item(), .cpu(), boolean indexing, torch.tensor on CUDA), classifies false vs true dependencies, provides sync-free alternatives. Triggers: sync-free, synchronization, .item(), .cpu(), host-device sync, eliminate syncs, CPU…
notebooklm
Install, authenticate, troubleshoot, and operate Gemini Notebook through the notebooklm-py CLI or typed async Python API. Use for notebook and source management, grounded chat and research, and artifact generation or download when the user mentions Gemini Notebook, notebooklm-py, the notebooklm CLI, or its Python API.…
debug-inference
Debug inference clients that use an attached provider and its native endpoint, including hosted APIs and host-local Ollama, vLLM, SGLang, TRT-LLM, LM Studio, or NIM. Use for provider attachment, endpoint policy, credential substitution, topology, and migration from the removed inference.local endpoint. Trigger…
oh-my-posh
Install, configure, or troubleshoot Oh My Posh/ohmyposh: shell init, themes, segments, Nerd Font icons, and prompt setup on PowerShell, zsh, bash, or fish.
eagle3-triage
Triage a failed EAGLE3 pipeline run. Identifies which step failed (data synthesis, hidden state dump, training, or benchmark), diagnoses root cause from logs, and suggests fixes. Use when user reports an EAGLE3 pipeline failure or asks why a specific step failed. Also helps debug new model support issues.
trulens-instrumentation
Instrument LLM apps with TruLens OTEL-based tracing - from setup to debugging and optimization.