Explain it to someone who has never seen your system.

greenhorn is a Claude Code plugin that rewrites technical text for a reader who is new to your system.

We know AI writes most of the code today. The experts are machines now. Some of us still need to understand what ships.

/plugin marketplace add gagoar/gago-plugins
/plugin install greenhorn@gago-plugins
greenhorn icon: a rubber duck on a pier at sunset, next to a suitcase

Where this fits

We plan our work. Our Skills are curated and battle tested, so the agent writes coherent code. pr-brief writes the description, on one premise: a well-written description should suffice.

Then the PRs showed up in GitHub, and we were out of context anyway. We needed a better way in. greenhorn is that way in. foghorn does the same for releases.

A real run

PR #33 of typescript-patterns-enforcer already had a pr-brief description. A cold reader still stopped 12 times on it. This is how it opens.

Before

The edit hook misses files that Claude writes through a shell. This change adds a hook that runs when Claude stops. It finds the TypeScript files changed during the session and runs the same checks on them. It shows the findings to the user and never blocks the session. This closes the gap that let a whole module skip every rule in the audit on PR 31.

After (shortened with [...]):

This PR adds a hook that checks TypeScript files at the end of a Claude Code session, including files that Claude wrote through a shell. The earlier hook does not see those files. The new hook only warns the user. It never blocks anything.

Claude writes a file with a shell heredoc in the project folder: export const x: any = 1; [...] When the session stops, the new hook prints this on stdout (shortened) and exits with code 0: [...] Each violation line has the line and column, the rule name, the message, and a pointer to the rule text.

OriginalAfter greenhorn
Words6551,010
Findings of the checker00
Stumbles that a context-free model reader reported129

The example is real. In our run log, the skill ran the built hook on that file and quoted its output. The rewrite also leaves the PR 31 audit as an open point, because the code could not answer it.

Of the first 12 stumbles, 7 did not come back in the second reading, 5 did, and 4 were new. The reader is a model, so these counts do not show that a person finds the text clearer.

How it works

  1. A reader with no tools and no repo sees only your text and a profile of who the reader is. It lists where it stops.
  2. Claude answers each gap from your code. If the code does not say, the gap goes on an open list. Claude guesses nothing.
  3. The rewrite opens with the gist, then one real example, then how it works. A second reader checks the final text and counts which stumbles come back.

/greenhorn:test runs only the first step and rewrites nothing.

Why we built it this way

We started from a design, attacked it, and then read the papers. Each paper name links to the paper. Two links go to the publisher page, where the full text may need access.

PaperWhat it foundWhat we builtWhat we do not know
Camerer, Loewenstein and Weber (1989)What informed people knew biased them, and they did not fully ignore it. Markets cut the bias by about half.A cold reader that sees only the textA forecasting task, not writing
Sweller and Cooper (1985)Worked examples helped on later problems with the same structure, with one exception. They did not help on problems with a different structure.One real example before the mechanismAlgebra, small groups. Our eval tests new cases.
Rawson, Thomas and Jacoby (2015)Students who studied examples classified examples better than students who only re-studied definitions. The two orders did not differ significantly.Terms defined, a real example, no claim about orderShort concepts, a short delay
Chandler and Sweller (1992)Novices scored higher with the explanation next to the thing it explains.Each term defined at its first useOne report, not jargon. 20 tested in each experiment.
Bullock and colleagues (2019)Jargon lowered felt fluency, 4.57 against 5.27 on a seven-point scale. Hover-over definitions had no significant effect.A warning above five defined terms. No study backs that number.Felt fluency, not understanding. Hover text, not inline.
Kalyuga, Ayres, Chandler and Sweller (2003)Help for beginners can lose its effect, and can even have negative effects, for more experienced learners.Output that is easy to skip, and reader profilesWe know the studies only through the review

Our hypothesis: a newcomer follows technical text better when three things hold. A reader with no context marks where they get lost. Claude fills each gap from the real source. The text opens with one concrete example.

No study tests this combination on technical documents for software newcomers. The method is a hypothesis. Read the human eval protocol. It has no results yet. If you run it, send us the result. We publish it even if the result is a tie.

We checked ourselves

On 2 November 2026 we asked five separate Claude agents to read every claim on our evidence page again, against the text of each paper. They found errors that our first check missed. The Sweller and Cooper first experiment had 62 students, not the 18 we wrote. Chandler and Sweller tested 20 of 26 apprentices, not 26.

We rewrote those lines in public. The agents are models too. They quoted the paper text, so a person can check each finding. See the account.

What it touches

What it cannot do

The reader is a model, not a human newcomer. A clean result does not prove that a text is clear. The final test is a real person.

We have not tested the limits, such as 5 terms per text. They are defaults. The checker reads the shape of a text. It cannot tell whether a definition is true.

Install

/plugin marketplace add gagoar/gago-plugins
/plugin install greenhorn@gago-plugins

The helper plugins unmistakable and iceberg come with greenhorn. If one is missing, /greenhorn:explain stops and prints the command to install it. The guide lists every command.

A greenhorn is a newcomer. We named the plugin for the reader it writes for.