wellposed
Offline linter and agent skill that checks Jev requests for badly designed questions before they come back confidently wrong.
Overview
wellposed lints Jev requests before they are sent. Jev rejects malformed JSON precisely, but it confidently answers badly designed questions without warning. wellposed runs about 45 structural checks with no model call, such as a Choice with no "other" or none-of-the-above option, a question that references a state path that does not exist, or wrong criteria shapes. For issues structure cannot decide, it uses Jev itself to check the request.
The README backs its rules with measurements: on 31 real Choices given inputs that fit none of the options, 36 percent of wrong answers came at confidence 0.9 or higher, past a typical gate, and adding an "other" option caught 90 percent without changing answers on inputs that did fit. In a sample of 40 requests written as a normal developer would, none had syntax errors but 16 had design problems. Labeled corpora score both layers. It ships on npm and as an agent skill.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Is this question well-posed for the given state? (Jev-on-Jev check)(inferred) | yes · no |
How it works
- Write a Jev request.
- Run wellposed's offline structural checks.
- Run Jev-on-Jev checks for semantic issues.
- Fix warnings such as adding an "other" option.
Strengths
- Catches confident-but-wrong failure modes before production.
- Most checks run offline with no API cost.
- Rules are backed by measured examples.
Caveats
- Jev-on-Jev checks need an API key.
- Corpora are the author's own.
Getting started
npm install wellposedAt a glance
- Type
- Agent skill
- Status
- beta
- Language
- TypeScript
- Runtime
- CLI / agent skill
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
Offline linter and agent skill for Jev requests: 40 structural checks with no model call (missing none-of-the-above options, broken state paths, wrong criteria shapes), plus Jev-on-Jev checks for what structure cannot decide, with labelled corpora that score both layers.
AnotiaWang/awesome-decision-modelsLints Jev requests before they are sent: offline checks for missing none-of-the-above options and broken state paths, then Jev itself for what structure cannot decide.
hellogumbo/awesome-jev
Frequently asked questions
Why lint Jev requests?
Because Jev answers badly designed questions confidently; the API only rejects malformed syntax.
What is the most common issue?
Choices without an "other" option, which force a wrong pick at high confidence.
Does it call the model?
Structural checks do not; a second layer uses Jev for what structure cannot decide.
Related projects
CLI and agent commands auditing a git diff against YAML standards packs, scoring each hunk with Jev so agents fix only flags.
Agent skillbetaTypeScriptNatural-language linter combining ast-grep selectors with Jev to catch misleading names, stale comments and tests that miss their claims.
ProjectbetaTypeScriptBun-based MCP server wrapping Jev with compact answers and a code-computed act, review or abstain verdict.
MCP serverbetaTypeScriptChinese controlled-writing agent skill for technical reports with nine rules, using static checks plus a Jev semantic gate for certainty.
Agent skillbetaLocal MCP server giving Claude Code, Codex, Cursor and OpenCode per-dimension Jev quality scores on their code while they work.
ServicebetaTypeScript- SkillRanker★ 134
Rust CLI that ranks which agent skills fit the next step from live session context with Jev, can abstain, and hooks into Claude Code.
CLIbetaRust