Skip to content

jiaweixie/jev-enhanced-plugin

v0.2.0MIT AND Apache-2.0 AND CC-BY-SA-4.0

Third-party skills enhanced with advisory TypeSafe Jev judgments: two-axis code review, prose humanizing (en/zh-TW), reply checking, simplification gating, and design-tree grilling, plus a procedure for migrating further skills.

jev-enhanced-plugin

An Agent Plugin for OpenAI Codex, Claude Code, and Oh My Pi with six judgment-bearing skills. Each one is a skill already in use plus a single addition: a typed judgment from TypeSafe Jev (System One) at the points where the skill previously relied on the agent's own impression. A seventh skill, s1-migrate-skill, is the procedure for bringing further skills in.

Jev output here is advisory. It never approves a change, never removes a finding, and never decides anything on the user's behalf. Anything a program can check exactly (string matches, dependency graphs, diff boundaries) is checked in code and never sent to a model.

Skills

SkillJudgment packWhat the pack answers
s1-code-reviewreview-findingsPer finding: does the quoted evidence support, contradict, or say nothing about the claim; does the finding's own axis (standards or spec) document its basis; is it covered by a supplied test; and which supplied code excerpt is the best citation (noMatch allowed). Diff membership and verbatim quoting are computed in code and never sent.
s1-code-simplifiersimplify-gateRisk that a rewrite changes observable behavior, drops a handled case, changes the contract surface, or changes failure paths.
s1-grillinggrilling-frontierWhether a question is already answered by context and whether it needs a user decision. Prerequisite eligibility is computed from the dependency graph in code, not judged.
s1-humanizerhumanizerPer passage: states anything specific, restates another passage, claims more than the context supports, would still be reworded by an editor in the target language.
s1-humanizer-zh-twhumanizerSame pack, zh-TW locale.
s1-i-have-adhd-zh-twreply-checkWhether a draft's opening paragraph answers, whether it delegates work back to the user, whether it covers each request item, and whether it adds unrequested scope.

Every skill keeps its original procedure. The pack runs alongside it and adds probabilities the human reader can use or ignore.

How the packs prompt Jev

The packs follow TypeSafe's patterns, cookbooks, and jev-1.13 jaggedness notes:

  • Each pack sends a model state built by its own buildState, not the job file. Code-only fields (diffs, watch lists, graph ids, paths, line numbers) never leave the machine.
  • Reference material comes first in the state and the material under judgment after it.
  • Every question is one narrow judgment that names the state field it reads. Anything code can compute is computed first.
  • A question whose field is empty is not asked, and is reported as not asked rather than as a reading.
  • All questions for one job go out in one request.

Several questions were reworded after live checks on synthetic labeled cases, where the old wording missed and the new one did not. These were small spot checks, not a benchmark, and they support no claim about Jev's accuracy on your data.

Adding a skill

s1-migrate-skill is the procedure for bringing another skill into this plugin: license audit, deciding which steps become judgments and which stay code, the pack, the adapted SKILL.md, tests, and documentation. It has no pack of its own. Its references/pack-template.mjs is the starting point for a new pack.

Install

Each host reads the manifest it knows: Codex loads the portable plugin.json at the repository root, while Claude Code and Oh My Pi read their own marketplace catalogs under .claude-plugin/ and .omp-plugin/. All three discover the same seven skills under skills/.

OpenAI Codex

Add this GitHub repository as a marketplace, then install its plugin:

codex plugin marketplace add JiaWeiXie/jev-enhanced-plugin
codex plugin add jev-enhanced-plugin@jev-enhanced-plugin

Restart an existing Codex session after installation so the s1- skills become available.

Claude Code

Add this GitHub repository as a marketplace, then install its plugin:

claude plugin marketplace add JiaWeiXie/jev-enhanced-plugin
claude plugin install jev-enhanced-plugin@jev-enhanced-plugin

The first command registers the marketplace. The second installs this plugin from that marketplace. Restart Claude Code after installation; its seven skills are then available by their s1- names.

To update later, run claude plugin update jev-enhanced-plugin@jev-enhanced-plugin and restart Claude Code. The plugin package requires Node 20 or newer.

For development only, Claude Code can load the repository for one session with claude --plugin-dir /absolute/path/to/jev-enhanced-plugin.

Oh My Pi

Add this repository as a marketplace, verify its catalog entry, then install the plugin globally:

omp plugin marketplace add JiaWeiXie/jev-enhanced-plugin
omp plugin discover jev-enhanced-plugin
omp plugin install jev-enhanced-plugin@jev-enhanced-plugin --scope user

For development, omp plugin link /absolute/path/to/jev-enhanced-plugin links the current checkout globally so edits take effect immediately.

The seven skills are discovered under their s1- names. Because the repository root includes the Agent Plugins 1.0 plugin.json, Oh My Pi routes skills/ through the agent-plugins discovery provider: keep agent-plugins enabled in ~/.omp/agent/config.yml, or add ~/.omp/plugins/node_modules/jev-enhanced-plugin/skills to skills.customDirectories if agent-plugins is disabled. To prevent upstream copies from competing for triggers, add skill:code-review, skill:grilling, skill:humanizer, skill:humanizer-zh-tw, and skill:i-have-adhd-zh-tw to disabledExtensions. Restart an existing Oh My Pi session after changing these settings.

Avoiding duplicate skills

Five of these skills adapt upstream skills you may already have installed: code-review, grilling, humanizer, humanizer-zh-tw, and i-have-adhd-zh-tw. When both copies are listed, the host picks between two near-identical descriptions, and the s1- copy often loses. Turn the upstream copy off in the host you use:

  • Claude Code: add "skillOverrides": { "code-review": "off", "grilling": "off", "humanizer": "off", "humanizer-zh-tw": "off", "i-have-adhd-zh-tw": "off" } to ~/.claude/settings.json, or cycle them in the /skills menu.
  • OpenAI Codex: add one [[skills.config]] table per upstream skill to ~/.codex/config.toml, for example name = "humanizer" and enabled = false.
  • Oh My Pi: see disabledExtensions above.

Instructions that name a skill directly, such as a CLAUDE.md or AGENTS.md line saying "use the humanizer-zh-tw skill for every response", override descriptions. Point them at the s1- names, or the upstream copy keeps winning.

Requirements

  • Node 20 or newer (package.json engines); this repo pins 24.18.0 in mise.toml.
  • TYPESAFE_API_KEY in the environment for live judgments. Without it, the skills run their original procedure and state plainly that no judgment was available.
mise install
mise run install
mise run test

CI runs syntax checks and offline tests on Node 20 and 24, verifies the vendored SDK against its audit.json hash, and checks the exact buildState field projection for every registered pack. These checks use no API key and make no TypeSafe calls. The boundary tests cover model state, not redaction inside approved text fields or the code excerpts included in review questions.

Running a pack directly

node src/cli.mjs <pack> --state state.json --json

Flags: --state <file|-> (- reads the state from stdin), --dry-run (build questions, contact nothing), --mock <file> (replay recorded answers), --json, --help, --list. The pack's own validateState runs before any request is made; a malformed state is reported on stderr and exits 2. npm install -g . or npx exposes the same CLI as jev-pack.

Exit codes: 0 success, 2 input error, 3 no judgment available. Exit 3 also sets "mode": "unavailable" in the JSON body, so a skill can distinguish a missing service from a negative answer.

Each pack's --state shape is documented at the top of its file in packs/. That shape is the job file; the state the model actually receives is what the pack's buildState derives from it, and --dry-run prints that under request.state. State text is judged as given: a path or a shell command placed in a code field is provenance, and the packs judge only the text supplied.

Failure behavior

A missing key, a network failure, an HTTP error, or a malformed answer all resolve to the same thing: unknown, reported as unknown. unknown means the absence of a signal. The packs never invent a probability, and service failures do not leak response contents into the report.

Evaluation

evals/evals.json holds three synthetic cases comparing each adapted skill against its original: two-axis review retention, zh-TW rewriting with evidence preserved, and grilling with unsettled prerequisites. Results live outside this repository in the workspace directory.

These are single runs on synthetic inputs. They measure instruction-following only, and they support no claim about Jev accuracy, calibration, or speed.

The live wording checks described under How the packs prompt Jev are separate: a few synthetic labeled cases per question, sent to jev-latest to compare candidate wordings and state orders. They were used to choose between wordings, they are not kept in this repository, and the same caveat applies.

License

This plugin is distributed under MIT AND Apache-2.0 AND CC-BY-SA-4.0. New code in src/, packs/, test/, and skills/s1-migrate-skill/ is MIT (LICENSE). Adapted material keeps the license it arrived with, listed below. Full texts are in licenses/; per-file provenance, source hashes, and the audit of every candidate considered (included, redirected, and excluded) are in NOTICE and audit.json.

Adapted skills

Packaged skillUpstreamProvenance / creditsLicense
s1-code-reviewmattpocock/skills: skills/engineering/code-reviewMatt PocockMIT
s1-grillingmattpocock/skills: skills/productivity/grillingMatt PocockMIT
s1-humanizerblader/humanizerSiqi Chen; Wikipedia contributors and WikiProject AI Cleanup for the catalogMIT; CC BY-SA 4.0 for the Wikipedia-derived catalog
s1-humanizer-zh-twkevintsai1202/Humanizer-zh-TWRepository maintainer: kevintsai1202; Traditional Chinese adaptation of op7418/Humanizer-zh; source material: blader/humanizer; practical sections reference hardikpandya/stop-slop; MIT copyright holder: 歸藏; catalog: Wikipedia contributors and WikiProject AI CleanupMIT; CC BY-SA 4.0 for the Wikipedia-derived catalog
s1-i-have-adhd-zh-twpanda850819/i-have-adhd-zh-twRepository maintainer: panda850819; non-official Traditional Chinese derivative of ayghri/i-have-adhd, whose original English version was created by Ayoub Ghriss; MIT copyright retained from Ayoub GhrissMIT
s1-code-simplifierclaude-plugins-official/code-simplifier 1.0.0, agents/code-simplifier.mdAnthropicApache-2.0

Every packaged skill in this table is modified from its upstream. The s1-humanizer and s1-humanizer-zh-tw catalogs include Wikipedia-derived CC BY-SA 4.0 material; their attribution and required redistribution notice are in NOTICE. The Apache-2.0 material carries its required statement of changes in NOTICE, section 4(b).

Design reference only

devagrawal09/jev-review (MIT, Dev Agrawal) informed the evidence shape used by s1-code-review: bounded candidate excerpts carrying file and line, an explicit noMatch answer, and covering tests supplied as context. No code or prose was copied, and its threshold filtering, list truncation, cross-axis severity ranking, and dashboard were deliberately not adopted.

grill-me from mattpocock/skills is a one-line trampoline into grilling and was not copied.

Share-alike material

The pattern catalogs in both humanizer skills derive from Wikipedia's "Signs of AI writing" by Wikipedia contributors, including WikiProject AI Cleanup. That material is CC BY-SA 4.0 and stays CC BY-SA 4.0: the plugin-level MIT grant does not override share-alike terms. If you redistribute an adapted catalog, keep the attribution and the license. No endorsement by Wikipedia or its contributors is implied.

Runtime dependency

@typesafe-ai/sdk 0.6.0 is vendored at src/vendor/typesafe-sdk.mjs so Git marketplace installations work without an install hook. It remains MIT-licensed by TypeSafe; its license is licenses/MIT-typesafe-ai-sdk.txt and its exact source hash is recorded in audit.json. Using it requires a TypeSafe account and sends a filtered version of the state you pass to a pack to the TypeSafe API. Packs send only what their buildState keeps from --state; run with --dry-run to see exactly that payload before a live call.