Skip to main content
skill CX Codex

jev-prose — Claude Code skill: check prose for AI patterns

The skill runs your draft through the jev-prose CLI, gets a report on narrow AI-writing patterns, and revises from that feedback. Useful while drafting paragraphs.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add pchalasani/claude-code-tools --skill jev_prose -a claude-code
Open on GitHub

What jev-prose does

The skill drives the jev-prose CLI, which returns independent probabilistic editorial feedback. It flags patterns, not authorship. You keep the editorial decisions.

The loop is bounded. Save the exact draft to a UTF-8 file, then run jev-prose check draft.txt --profile general > report.json. Read the report even when the command exits 1 — that means findings, not a failed call. You need ran: true, ok: true and answered matching the expected count. Exit 2, missing output or malformed JSON stops the loop as an error. At most three revisions and four checks are allowed, and the last revision always gets checked.

Authentication defaults to CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN, or an existing sysone account with a Wrangler login. Text and optional context go to the hosted Jev backend, so keep secrets out of the draft. An auth or billing failure stops the loop. There is a 24,000-character input limit and silent truncation is not allowed. No automatic hook is installed; the workflow runs when invoked.

What it helps with

  • strip template AI phrasing from a finished paragraph
  • run a draft through an outside check and get a report
  • revise from feedback without losing facts or quotations
  • tell real findings apart from false positives
  • check the final revision instead of leaving it unchecked

Example prompts for the agent

  • check this paragraph with jev-prose and suggest revisions
  • run the section draft through jev-prose check and show me the report
  • set up a check-and-revise loop for this text, three revisions max

How to install jev-prose

1Skills CLI (Vercel)

npx skills add pchalasani/claude-code-tools --skill jev_prose -a claude-code

2Manually: put the files in place

~/.claude/skills/jev_prose/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/jev_prose/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about jev-prose

How do I install jev-prose in Claude?

Run npx skills add pchalasani/claude-code-tools --skill jev_prose -a claude-code. The skill then lives at ~/.claude/skills/jev_prose/SKILL.md.

What does jev-prose do?

It checks a draft with the jev-prose CLI for narrow AI-writing patterns and returns a report with flagged questions and guidance. You decide which findings to act on and which to dismiss.

What does jev-prose need to run?

An installed jev-prose CLI plus backend access: CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN, or a configured sysone account with a Wrangler login. Without that the loop will not start.

Source text

SKILL.md · MIT
---
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.

© pchalasani · MIT · pchalasani/claude-code-tools

Similar skills

Everything for Writing and docs →

From the same set4

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor