author-calibrated-eval
Skill2 starsChanged 5 days agoMITView on GitHub
Polish LLM-written prose with the author's own reading as ground truth.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- shimo4228/claude-harnessword for word, first seen Oct 10, 2026
Other versions1 project uses a version of this.
Word for word · 1
- shimo4228/claude-harness★ 4100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository22 other files it gives its agents.
- llms-full.txtllms.txt
- llms.txtllms.txt
- agent-stocktakeSkill
- context-syncSkill
- decision-historySkill
- generation-auditSkill
- harness-boundarySkill
- harness-stocktakeSkill
- hook-stocktakeSkill
- jev-judgment-designSkill
- learn-evalSkill
- llm-as-judgeSkill
- repo-asset-stocktakeSkill
- review-to-lintSkill
- rules-distillSkill
- rules-stocktakeSkill
- search-firstSkill
- skill-complySkill
- skill-healthSkill
- skill-stocktakeSkill
- skill-writerSkill
- verify-bootstrapSkill
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 8 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 37
Before running the judge loop, have the author read once.
- Distinctive: line 42
Ask the author only 2 things: "Which one is best?" and "Why (in a word)?".
- Distinctive: line 43
Use how the reference draft is read to isolate the cause
- Distinctive: line 46
Only the strong model is good → the cause is the model.
- Distinctive: line 89
After adding a principle, always check whether the cutoff surfaces a new type of breakdown.
- Distinctive: line 101
Comparisons with no difference: if most axes are ties, little can be learned from that comparison
- Distinctive: line 102
Differences the same size as judgment variance: if the same draft flips pass/fail by ordering or run, do not read it as a difference …
- Distinctive: line 105
When in doubt, having the author read one case gets you closer to the right answer faster than running the judge dozens of times.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Author-Calibrated Eval
The ground truth for whether generated prose is "worth reading" lives in the eyes of the person who reads it (the author). Build the loop on that premise. Split the roles three ways.
| What is checked | Who checks it |
| Readability and reading value (taste) | The author's blind side-by-side read |
| Faithfulness (things not in the materials, comparison target, qualifiers, substituted subject) | LLM judge. A cutoff of binary checks |
| Format (position of citation marks, presence of markers, character count) | Code |
Asking the LLM judge for a holistic readability verdict does not make it a substitute for the author. Measured (2026-09-23, jev-research-pipeline): even with a rubric that stated explicitly "having more information is not a reason to win", the Opus judge picked the more information-dense version as "easier to understand" in both orderings, while the author called the short version "very easy to understand" and the information-dense version "hard to read". On the other hand, the judge caught, in both orderings, a substituted comparison target that the author had not noticed while reading.
1. Fix the materials
- Fix, one case at a time, the input used when the actual output was produced (that day's full set of materials). If the materials include third-party original text, store them in a private location, not in a public repo
- Assign each case to dev or holdout. Derive the assignment from the case id alone (so that when the number of cases grows later, no case moves between dev and holdout)
- Give the writer, the judge, and the author the same materials. If only the judge is shown a trimmed excerpt, it will wrongly flag facts the writer legitimately used as "not in the materials"
2. Have the author do a side-by-side read first (before running the judge)
Before running the judge loop, have the author read once. Skip this and you keep polishing the prompt to fit the judge without noticing the gap between the judge's criteria and the author's.
- Line up 3 drafts per case: the current output / a candidate / a strong model's reference draft (same instructions, same materials). Hide which is which, vary the order per case, and keep the mapping in a separate file
- Ask the author only 2 things: "Which one is best?" and "Why (in a word)?". Accept "all of them are bad" as an answer
- Use how the reference draft is read to isolate the cause
- The same complaint arises even with the strong model → the cause is how it is being asked to write (instruction framing, how materials are passed). Switching models will not fix it
- Only the strong model is good → the cause is the model. Decide which model to use before polishing the prompt
- The author's one-word comment becomes, as is, material for the next instructions and rubric (e.g. "my eyes glaze over", "it skips explaining the premise", "the odd disclaimer is off-putting")
3. Iterate on a hard-case set, widen at milestones
- From dev, pick one case per failure type to form the hard-case set (e.g. overclaiming an interpretation / linking separate results causally / misaligned citation numbers). Run each iteration on just these few cases
- Each time a candidate is ready, check it on the hard-case set: the judge's cutoff → the author reads one draft per case (asking only "is it readable?" and "where did you stop?")
- Once a candidate passes both the author and the cutoff on the hard-case set, have it write a few cases of different types from holdout, and check them with the cutoff and the author's reading. This is the stage that checks whether polishing tuned to the hard cases also holds on materials it has not seen
- The axes of variants are instructions × model × materials (thickness) × a second self-check pass. The polishing work may run on a model with a free tier separate from production
4. The cutoff judge
Build the judge following the pattern in skill: llm-as-judge (binary checks, a one-line rationale, a single fatal No means fail, no numeric scoring or aggregation). Only the points that worked for this use are listed here.
- What to check: what a number actually means (what it is a number of) and its comparison target / preservation of the original's qualifiers ("can ~", "in many cases") / not writing a design intent as a result / substitution of the research subject / content not found in the cited source
- Check with code before judging: position of citation marks, presence of markers, character count. Show the judge those results as fact lines. If the code check misjudges, the judge's cutoff is dragged along with it, so after fixing a check, re-run it on the existing drafts before passing them to the judge
- Judge one draft at a time: the cutoff is pass/fail, so judging each draft individually is enough
- Keep the judge light: define a dedicated agent that holds only Read / Write. A general-purpose subagent loads every tool definition and all always-loaded rules on each launch, so one judgment cost about 85k tokens, versus about 25k tokens with a dedicated agent (measured 2026-09-23). Write output to a location that session can write to (e.g. the scratchpad)
5. Extract writing principles from the author's reading
Translate the author's one-word comments into instruction principles. Examples of translations that worked in the 2026-09-23 loop:
| Author's comment | Principle added to the instructions |
| My eyes glaze over / it skips explaining the premise | Write as an explanation for a reader who has not read the paper. For each study: "problem tackled → what was done → what was found". Rephrase technical terms at first use |
| Lots of information but hard to read | Narrow the takeaway facts to 1–2 per study (what mattered was the number of facts and proper nouns, not sentence length) |
| The odd disclaimer is off-putting | Drop disclaimers like "this is not a study that dealt with it directly"; show the research subject within the explanation |
| So short I worry it doesn't capture the substance | At least one sentence for each of the 3 elements per study; set a lower bound on total character count |
After adding a principle, always check whether the cutoff surfaces a new type of breakdown. The more plainly you rephrase, the more qualifiers drop out and the text drifts toward assertion ("can ~" → "does ~"). A factual breakdown inside readable prose is invisible to the reader.
6. Recognize trivial evaluations
The following comparisons do not measure improvement.
- Beating a weak baseline: compare a list of short paraphrases with a fully explained version and the latter wins. A comparison against something any rewrite would beat does not show whether things got better
- Compliance with rules you wrote yourself: a rising pass rate on the cutoff shows the writer can now follow instructions, not that the reading value went up
- Comparisons with no difference: if most axes are ties, little can be learned from that comparison
- Differences the same size as judgment variance: if the same draft flips pass/fail by ordering or run, do not read it as a difference between versions
When in doubt, having the author read one case gets you closer to the right answer faster than running the judge dozens of times.
Reference example
jev-research-pipeline (2026-09-23): src/jev_research_pipeline/pipeline/prose_bench.py
(jrp prose export|bench|read|gate — fixing materials / drafts / blind side-by-side reads for the author / per-draft
cutoff), cutoff checks docs/prose-rubric.md, judge .claude/agents/prose-judge.md,
prompt history bench/prose/prompts/, procedure in the same repo's AGENTS.md section 「本文を磨く」 ("polishing the body
text"), background in docs/design/pipeline-design.md section "Prose bench".
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

