{"data":{"kind":"file","path":"README.md","version_id":"ills9ofujgkox50ikr4nbn64","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":1227,"modified_at":"2026-07-19T00:55:11.266000","content_hash":"d0c3a82f237c212c1d0fbacaee18147ca93954af7d2c5e597d81c7515482be57"},"entries":[],"content":"# writing-judge\n\nRL environment that trains a **judge**, not a writer: given a source passage\nand a version of it corrupted along 2-4 style pillars (with a possible\nplanted preservation defect), predict the violations `{pillar, type, span}`\nand the preservation-defect kind.\n\n**Reward is fully deterministic** — no LLM in the loop:\n\n```\nreward = 0.8 × violation_F1 + 0.2 × gate_accuracy\n```\n\nGold labels come from the corruption recipes themselves (labels by\nconstruction, adversarially verified), so the reward is verifiable and\nungameable, needs no API keys at rollout time, and runs on free-tier models.\n\nThe 327-text dataset was produced by an agent workflow: clean passages →\nrecipe-driven multi-pillar corruption → adversarial verification. 280 train /\n47 val, split by source passage.\n\nThe trained adapter is a distilled judge: deploy it on Prime Inference and\npoint the `writing-rewrite` env's judge at it (`JUDGE_MODEL` + base URL) to\ncompare RL-against-distilled-judge vs RL-against-frontier-judge.\n\n```bash\nprime env install rishigundakaram/writing-judge\nprime eval run writing-judge -m openai/gpt-5-nano    # baseline the reward\nprime train configs/rl/judge.hosted.toml             # free-tier training\n```\n","encoding":"utf-8","truncated":false,"total_bytes":1227},"status":null}