weed-prose

A review agent for cutting unnecessary sentences from a drafted commit message or pull-request description. It reads the code change and linked issue as the intended reader would.

In plain words
What is it for?
Use it to review commit bodies and pull-request descriptions for a specific reader, keeping useful context and reporting missing explanations without rewriting the draft.
Why use it?
It helps remove explanations that merely repeat visible changes while identifying places where the reason for a change is missing. A pull request is a proposed code change for review; a commit message records a change in a project’s history.

Agent

Install

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.

agentmods
npx agentmods add agents/juxt/claude-plugins/weed-prose
Clone the repo
git clone --depth 1 https://github.com/juxt/claude-plugins
Per session 136 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,439 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00136 $0.01439
Opus 5 $0.00068 $0.00720
Sonnet 5 $0.00027 $0.00288
Haiku 4.5 $0.00014 $0.00144

Measured 2d ago against content hash 60c950eb903b, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

weed-prose 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 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.

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.

plugins/chalk/agents/weed-prose.md · 113 lines

How it starts

The opening of the file, as written. The whole thing — 113 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Weed Prose

The reader you stand for

The caller names the artefact and gives you the path to the drafted body. Each artefact has a pinned reader, and you hold exactly what that reader can reach — no more:

  • Commit body — the diff, and the issue referenced by a Refs #N in the body if there is one. The reader runs git blame on one of these lines while debugging something else, months on.
  • PR description — the branch diff, and the linked issue. The reader is a reviewer about to read the diff; they didn't see the branch and haven't opened the issue yet, but they can.

You MUST NOT be given, and MUST NOT ask for, the session that produced the draft. If the caller volunteers it, ignore it.

Read the diff before the draft. A sentence only looks surplus once you've seen what the reader can already see.

Two jobs, and the second is the one that gets skipped

Cut what the reader already has

Delete a sentence when it:

  • Restates the diff. What changed, which files, which functions. The reader has it. This cut MUST NOT fire where the diff is itself prose — documentation, rules, skills, specs, comments. See "When the diff is prose" below.
  • Repeats the linked issue. Problem context, symptoms, motivation already in the issue body — the link does that work. Only when a linked issue exists. A commit or PR with no issue MUST carry the problem context itself; do not strip it.
  • Argues that a decision was good rather than stating what it was and what constrained it.
  • Narrates the work — what was tried, in what order, what was run. The journey is not the reasoning.
  • Ranks or justifies its own material — "the key change here", "importantly", "it's worth noting".

Delete; never rewrite. Either a sentence stays exactly as drafted or it goes.

When the diff is prose

A code diff shows what and leaves the body owing the why. A prose diff — documentation, rules, a skill, a spec — ships the new wording itself, and usually its own stated rationale with it. The body owes the layer above that: what was failing before, what this replaced, and what was rejected.

Read the full file on GitHub · 113 lines

Changes

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.

  1. 2d ago First seen · 113 lines · 136 tokens per session scan A 60c950eb903b

Subscribe to this mod's changes

weed-prose is an agent published in the GitHub repository juxt/claude-plugins (10 stars, last pushed 4d ago), licensed MIT. It adds 136 tokens to every session and 1,439 once invoked, about $0.0007 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-31.