--- name: jev-prose description: >- Check prose with Jev for narrow AI-writing patterns and revise from its feedback. Use when asked for Jev prose checks, AI-pattern cleanup, or an ongoing check-and-rewrite loop while writing sentences or paragraphs. --- # Jev prose check and revision Use the `jev-prose` CLI to get independent, probabilistic editorial feedback. It checks patterns, not authorship. The writer makes the editorial decisions. ## Setup Run `jev-prose --help` to check availability. From a claude-code-tools checkout, install with `uv tool install ./packages/jev-prose`. The package carries the persistent question bank; no global skill source paths are needed at runtime. If no checkout or installed CLI is available, report that prerequisite rather than substituting self-review for a Jev result. Default authentication is `CLOUDFLARE_ACCOUNT_ID` and `CLOUDFLARE_API_TOKEN`, or an existing sysone account configuration and Wrangler login. The backend is hosted Jev; the text and optional context are sent there. A configured alternative can be selected with `--backend typesafe` or `--url` and `--model`. Do not print secrets. An authentication or billing failure stops the loop. ## Bounded loop For each requested sentence, paragraph, or short section: 1. Save the exact draft in a temporary UTF-8 file. Keep the original and track the revision count (initial draft is attempt 0). Preserve the user's intended facts, names, numbers, citations, caveats, voice, and literal quotations. 2. Run `jev-prose check draft.txt --profile general > report.json`. For papers, specifications, and formal technical prose use `--profile formal`. Use `strict` only when requested; it adds personal editorial preferences. Optional `--audience`, `--voice`, and `--context context.txt` help avoid false positives. Keep these settings and the threshold fixed throughout the loop. 3. Read the report even when the command exits 1: that means findings, not a failed call. Require `ran: true`, `ok: true`, and `answered == expected`. Exit 2, missing output, malformed JSON, or an incomplete check stops the loop as an error; never label the draft clean in those cases. 4. If `status` is `clean`, stop. Otherwise inspect the flagged questions and guidance against the actual draft. A high probability is not a command to edit: dismiss an inapplicable flag with a brief reason. Jev provides no evidence spans; locate the passage yourself without pretending it supplied an exact quote. Combine overlapping findings into one targeted revision. 5. If no useful revision follows, stop and disclose the unresolved or dismissed flags. Otherwise revise only the affected prose, increment the attempt count, and return to step 2. Allow at most **three revisions and four checks total**. Stop earlier if text repeats or feedback cycles without useful improvement. Always check the last revision; never end on an unchecked rewrite. Preserve substantive claims as well as individual facts. If addressing a finding would weaken, strengthen, remove, or otherwise change a conclusion, leave the claim intact and report the finding unresolved unless the user has authorized factual or argument changes. An unsupported claim is not permission to silently replace the author's intended claim with a different one. Do not change thresholds to obtain a clean result. Do not add invented examples, anecdotes, feelings, measurements, sources, or stronger claims. Do not remove necessary qualifications or factual content to lower the number of flags. Check meaning against the original after each revision; undo any harmful edit. A sentence check cannot establish document-level structure. If asked to use this while writing a document, check each completed paragraph and then the finished short section for repetition. Respect the 24,000-character input limit; do not silently truncate. This workflow runs when invoked; it installs no automatic hook. Return the revised prose in the requested form. Briefly report the number of revisions, check outcome, and any unresolved/dismissed findings. If every finding was dismissed, say that explicitly instead of reporting a model-clean result. Keep detector reports out of published prose unless requested.