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.05256 |
| Opus 5.5 | $0.00086 | $0.02102 |
| Sonnet 5.5 | $0.00043 | $0.01051 |
| Haiku 4.5 | $0.00022 | $0.00526 |
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 4d 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 — 358 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.
- 4d ago Changed · +4 lines a3092249f8d2
- 12d ago Changed 8e555502f716
- 23d ago Changed · +9 lines ab6e61a92ce9
- 1mo ago Changed 111b2fa1ac28
- 2mo 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 (417 stars, last pushed 3d ago), licensed Apache-2.0. It adds 216 tokens to every session and 5,256 once invoked, about $0.0009 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
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…
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 managed inference 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.
spark-engineer
Use when writing Spark jobs, debugging performance issues, or configuring cluster settings for Apache Spark applications, distributed data processing pipelines, or big data workloads. Invoke to write DataFrame transformations, optimize Spark SQL queries, implement RDD pipelines, tune shuffle operations, configure…
rocketride-debugging-pipelines
Use when a RocketRide pipeline run failed, errored, or produced wrong/empty output, and you need to find the failing node and fix it. Reads run status and execution traces, diagnoses the cause, and routes back to design or configuration. Also use directly when asked to debug a run.
eval-triage
Investigate failing experiments and evaluations with LangWatch. Triage a failing experiment run to the exact rows and evaluator scores that regressed, then to a root cause. Use when an experiment fails, scores drop, or evaluations regress.