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/grainulation/grainulator/harvestnpx skills add grainulation/grainulator --skill harvestgit clone --depth 1 https://github.com/grainulation/grainulatorWrote 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/grainulation/grainulator/harvest)<a href="https://agentmods.dev/skills/grainulation/grainulator/harvest"><img src="https://agentmods.dev/badge/skills/grainulation/grainulator/harvest.svg" alt="Measured on agentmods" 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 | $0.00016 | $0.00924 |
| Opus 5 | $0.00008 | $0.00462 |
| Sonnet 5 | $0.00003 | $0.00185 |
| Haiku 4.5 | $0.00002 | $0.00092 |
Grade A, and why
harvest 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 — 97 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/harvest -- Sprint analytics and retrospective
The user wants quantitative analysis of the current sprint: claim type distributions, evidence quality, stale claims, and velocity metrics.
Arguments
$ARGUMENTS
Optional: --full to generate an HTML retrospective report. --calibrate to run prediction scoring.
Instructions
-
Detect the sprint directory:
- Run
wheat_statusto get the current sprint metadata. - Identify the sprint directory from the status output (the directory containing
claims.json). - If no active sprint is found, check the current working directory for a
claims.jsonfile. - If still not found, stop and tell the user: "No active sprint detected. Run
/initto start one." - Store the resolved directory as
<dir>for subsequent steps.
- Run
-
Run type/evidence analysis:
- Execute:
npx @grainulation/harvest analyze <dir> - This returns claim type distribution (constraint, factual, estimate, risk, recommendation, feedback) and evidence tier distribution (stated, web, documented, tested, production).
- Capture the output for the summary.
- Execute:
-
Run stale claim detection:
- Execute:
npx @grainulation/harvest decay <dir> --days 7 - This flags claims that haven't been updated, corroborated, or challenged in 7+ days.
- Capture the list of stale claim IDs and their ages.
- Execute:
-
Display the analytics summary:
Harvest: <sprint-slug> ───────────────────────────── Claim distribution: constraint: <n> | factual: <n> | estimate: <n> risk: <n> | recommendation: <n> | feedback: <n> Evidence quality: stated: <n> | web: <n> | documented: <n> | tested: <n> | production: <n> Weak areas: - <list any evidence tiers with 0 claims, or types with heavy concentration> - <flag if >60% of claims share the same type (type monoculture)> - <flag if >50% of evidence is "stated" or "web" (weak evidence base)> Stale claims (<n> total): - <id>: "<summary>" — <age> days stale - ... Velocity: <output from analyze, e.g. claims/day, time between phases>
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 First seen · 97 lines · 16 tokens per session scan A f385d2a47775
harvest is a skill published in the GitHub repository grainulation/grainulator (86 stars, last pushed 4mo ago), licensed MIT. It adds 16 tokens to every session and 924 once invoked, about $0.0001 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
wf-pm
Sole team lead of the waterfall workflow — creates the team, dispatches OR's spawnrequest, relays HO decisions via AskUserQuestion, and runs the final git commit at CLOSURE.
wf-pm-light
PM solo pour le mode subagent-light — élicitation, specs.md, checkpoint specs, spawn TL passe 1+2, checkpoint tasks, validation finale, git commit.
metis-walk-open-items
Walk captured open items one at a time, resolving each into the relevant source doc.
manager-loop
Run a large batch of independent work items (a fleet-wide harvest, a multi-repo sync-down, an overnight backlog) as a persistent coordinator loop instead of one item at a time. Use when there are enough independent units of work that dispatch-review-merge would otherwise repeat many times in a row, or when the batch…
metis-init
Finalize project-specific Metis setup. Thin wrapper around the plugin's init.sh — creates .metis/, populates .metis/config.yaml, splices a delimited block into CLAUDE.md, and writes a .metis/CURRENT.md stub.
wf-new
Starts a new SDD need via the waterfall workflow — agent teams preflight, OR spawn, bootstrapneed.