Skip to content
cccskills
FreePublished on GitHub

jev-lens

Legacy. Use only when images (photos, illustrations, screenshots) must reach TypeSafe's Jev (System One) model as text, because the request can't send the `TypeSafe-Danger-Zone-Images` header that lets Jev read images directly. Triggers on "turn this photo into a Jev state", "describe these images for Jev", "decode images for System One", or a Jev project whose decision depends on what a picture shows. Handles 1 to about 100 images; produces a neutral, complete decode and a JSON state, checked against Jev.

The English summary is being prepared. Showing the original description.

See how to install

Files included (32)

  • SKILL.md5.4 KB
  • batch.md3.3 KB
  • calibrate.md6.5 KB
  • decode-protocol.md6.3 KB
  • README.md5.5 KB
  • scripts/agreement.py4.6 KB
  • scripts/audit_package.py4.4 KB
  • scripts/build_state.py4.3 KB
  • scripts/jev_check.py12.0 KB
  • scripts/lenslib.py2.1 KB
  • scripts/people_words.py2.9 KB
  • scripts/prepare_images.py2.6 KB
  • scripts/validate_decodes.py5.6 KB
  • state-rules.md2.9 KB
  • templates/base.json2.8 KB
  • tests/images/bench.jpg168.2 KB
  • tests/images/cafe.jpg346.0 KB
  • tests/images/poster.jpg629.4 KB
  • tests/images/signs.jpg263.9 KB
  • tests/images/SOURCES.md1.2 KB
  • tests/images/street_corner.jpg303.5 KB
  • tests/images/thrift_shop.jpg342.8 KB
  • tests/live-check-2026-09-28.md875 B
  • tests/live-questions.json561 B
  • tests/live-state.json856 B
  • tests/test_agreement.py2.5 KB
  • tests/test_audit_package.py2.3 KB
  • tests/test_build_state.py3.1 KB
  • tests/test_jev_check.py3.9 KB
  • tests/test_people_words.py1.7 KB
  • tests/test_prepare_images.py1.4 KB
  • tests/test_validate.py4.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Jev Lens

Legacy. Since October 14, 2026, Jev 1.13 and 1.14 read images directly when a request sends the TypeSafe-Danger-Zone-Images: true header (TypeSafe's Images page, docs.typesafe.ai/images). Before anything else, ask whether the user's requests can send it. If they can, recommend sending the images to Jev directly and stop: that skips designing the state by description. Run Jev Lens only when they can't, or when they ask for it anyway.

Turns images into a JSON state for Jev. In priority order:

  1. An excellent decode: a complete, accurate, unbiased record of what the image shows.
  2. A very good state: the JSON object built from the decode.
  3. Questions, used only as instruments to check that the decode and the state carry what's needed. Question design is out of scope.

The decode is done blind: fresh subagents that see only the cleaned images and a neutral brief, never the goal, the user's questions or their hypothesis. What a person hopes the image shows is the main source of bias, so it never reaches the decoder.

Phases

ImagesDoOpen
1 to 5Phase 1 on all of them; that is the whole jobcalibrate.md
6 to about 100Phase 1 on 1 to 3, then Phase 2 on the restcalibrate.md, then batch.md
Over about 100Probably the wrong skill: say it isn't optimized for bulk extraction, and offer to calibrate on a sample so the package is ready for a bulk tool

Both phases use decode-protocol.md (how decoders are briefed and what they write) and state-rules.md (how the state is built). General rules for building with Jev, with their sources: ../shared/jev-rules.md (shared with Jevaluate).

Modes

  • Heavy: 2 blind decoders per calibration image with agreement measured, up to 2 calibration rounds, then an agreement sample and a cascade in the batch.
  • Light: 1 blind decoder, 1 round, no agreement sample.
  • Default: Heavy the first time in a new kind of image or goal; Light when reusing a calibrated package that worked.
  • With 5 images or fewer, use the default without asking. With more than 5, always ask, showing both costs.

Cost

Each subagent carries a fixed overhead (about 55k tokens in Claude Code) before it reads anything. The figures below are Claude Code measurements; other harnesses differ. Guide for 10 images:

LightHeavy
Calibration decodes (2 images)~60k~120k
Extra calibration roundnone~120k
Main session (reviews, state, sketch, check)~20k~35k
Batch decode (8 images, 1 subagent)~75k~75k
Agreement sample (3 images)none~65k
Cascade on flagged fieldsnone~30k
Total~155k~445k

Scale the batch lines by images / 10 per decoder. The Jev API cost is under a cent either way; jev_check.py prints it before sending anything.

Decoder model: the strongest vision model for calibration and the cascade, a cheaper one for the batch. At intake, ask whether to use the strongest for everything, and show the difference: the batch line costs about the same in tokens but at the stronger model's price.

Outputs

A run folder next to the images, <name>-jev-lens/:

PathWhat
images/, manifest.jsonCleaned copies (metadata stripped, renamed); the manifest maps them back and is never shown to a decoder
package/brief.md, template.json, decoder-prompt.md, examples/: the calibrated package
decodes/Each blind decode (a/, b/, batch/, sample/)
agreement.mdField-by-field agreement between decoders
inventory/The reviewed decode for each calibration image
keep.json, left-out.mdWhich fields went into the state, and why the rest didn't
state.json or states/The state, one per image
questions.json, question-sketch.mdThe question sketch (a sketch, not final questions)
jev-check.mdThe Jev check and the field-by-field ranking
report.mdOne page: what was seen, what was uncertain, what was left out and why, the agreement rates, and what drives the answer

Requirements

  • Python 3.9 or later. prepare_images.py and jev_check.py declare their packages inline (Pillow; typesafe-sdk), so uv run installs them; without uv, pip install pillow typesafe-sdk and use python. The other scripts use only the standard library.
  • TYPESAFE_API_KEY for the Jev check. Without it, the skill skips the check, says so, and still delivers the decode and state.
  • The model ID: jev-1.13.0 by default; take the current one from https://docs.typesafe.ai/models.
  • In Codex, the default sandbox blocks the network and writes outside the workspace: uv run installing packages, the Jev check, and a run folder outside the workspace need your approval.

Rating whether a finished Jev project uses Jev well is a different job: the Jevaluate skill. Jev Lens does not need it.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Finds and quotes TypeSafe's docs on Jev, including Noul, Choice, Score and Box questions, models and limits. Use when a question, review, design or claim involves Jev or System One, when briefing a subagent on Jev work, or when relaying a subagent's Jev finding.

The English summary is being prepared. Showing the original description.

tiffygk/jev-mode12Updated Oct 16, 2026

Use when rating whether a project, repo, skill, workflow, plugin, agent product or post uses TypeSafe's Jev (System One) model well -- "is this a good use of Jev?", "rate this Jev integration", "jevaluate <url>", or a link to something named after Jev; also when checking whether something that calls itself Jev actually uses it.

The English summary is being prepared. Showing the original description.

tiffygk/jev-mode12Updated Oct 16, 2026

Use when testing whether the jevaluate rubric and instructions lead graders to the right answers: after a rubric or instruction change, before freezing a rubric, before publishing ratings, or when a grader's calls look wrong.

The English summary is being prepared. Showing the original description.

tiffygk/jev-mode12Updated Oct 16, 2026

Use when running a jevaluate rating round, re-rating after a rubric change, changing the jevaluate rubric, or publishing ratings to the jev-mode ratings folder.

The English summary is being prepared. Showing the original description.

tiffygk/jev-mode12Updated Oct 16, 2026

Rates a project with Jevaluate and keeps the rating private, with the same rubric and checks, a private library that export refuses, and nothing pushed or published. Use when a rating must stay private, such as "/jevaluate-private" followed by a link or folder, "rate this privately", "evaluate my own project", a client's or employer's code, a design doc or a local folder that isn't public, or any rating that must not reach the public ratings or the repo.

The English summary is being prepared. Showing the original description.

tiffygk/jev-mode12Updated Oct 16, 2026

See all skills by tiffygk

Report a problem with this skill