Agent skill

Typesafe AI Dsh

by PerryLink in PerryLink/jevcore

Use TypeSafe Jev for narrow judgments inside DeepSeek Harness — routing, classifying, scoring, verifying, reranking — instead of spending a model turn on them.

Apache-2.0Auto-check passedAgent Workflows

Install Typesafe AI Dsh

skills CLI
$ npx skills add PerryLink/jevcore --skill typesafe-ai-dsh -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install PerryLink/jevcore typesafe-ai-dsh --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/PerryLink/jevcore.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/dsh/skills/typesafe-ai-dsh .claude/skills/typesafe-ai-dsh && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
typesafe-ai-dsh
GitHub stars
106
Token cost
~2k tokens
SKILL.md length
1,232 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
Apache-2.0

At a glance

Use TypeSafe Jev for narrow judgments inside DeepSeek Harness — routing, classifying, scoring, verifying, reranking — instead of spending a model turn on them.

  • Tasks that involve Retrieval-augmented generation
  • SKILL.md covers When to reach for it, The three primitives, Two rules that prevent the… and Working with the answer, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Tasks that involve MCP servers

What it does

Typesafe AI Dsh is an agent skill from PerryLink/jevcore. Use TypeSafe Jev for narrow judgments inside DeepSeek Harness — routing, classifying, scoring, verifying, reranking — instead of spending a model turn on them. Load this when a task turns on a decision with a small, fixed set of outcomes, or when you need a calibrated probability rather than prose.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Retrieval-augmented generation and MCP servers. It works with DeepSeek, Model Context Protocol and TypeScript. The repository describes itself as: TypeSafe Jev for DeepSeek Harness, the Model Context Protocol, and plain Node: typed judgments instead of prose, offline by default. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Retrieval-augmented generation
  • Tasks that involve MCP servers

Example prompts

  • “/typesafe-ai-dsh”

What it can do on your machine

Read from SKILL.md and the folder at commit 563117c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.typesafe.ai

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Typesafe AI Dsh loads about 2k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 1,232 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~79
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from PerryLink/jevcore at commit 563117c, republished under its Apache-2.0 licence (© PerryLink). 1,232 words, ~2,023 tokens.

Download SKILL.mdSave it as .claude/skills/typesafe-ai-dsh/SKILL.md (or your agent's skills folder).
name
typesafe-ai-dsh
description
Use TypeSafe Jev for narrow judgments inside DeepSeek Harness — routing, classifying, scoring, verifying, reranking — instead of spending a model turn on them. Load this when a task turns on a decision with a small, fixed set of outcomes, or when you need a calibrated probability rather than prose.

Jev in DeepSeek Harness

Jev is a System One decision model. It does not write prose, explain, or generate code. It answers typed questions and returns calibrated probabilities.

That constraint is the whole point: a judgment with a small, fixed answer set does not need a model turn, and paying for one is the most common waste in an agent loop.

When to reach for it

Use Jev when all of these hold:

  • the outcome is one of a small set you can name in advance;
  • you need a probability, a ranking, or a yes/no, not text;
  • you will branch on the answer in code.

Typical shapes: which of these N tools is relevant; is this result relevant to the task; does this evidence support this claim; which team owns this ticket; how risky is this operation; which of these two sources is more authoritative.

Do not use it to summarize, explain, draft, translate, or reason step-by-step. Those need a generative model, and Jev will return a selection where you wanted a sentence.

The three primitives

PrimitiveAnswersReturns
noulyes/noprobability of true
choiceone of a named setthe selection plus a distribution
scorewhere on an ordered scalea numeric expected score, the rubric as legend, and probabilities per level

Declare score levels in ascending order, because the order written is the scale, and give each level a description. The score that comes back may fall between levels — 1.4 on a three-level rubric is a real answer, not a bug — so read legend to name the level rather than assuming an integer.

Reference the part of the state you are asking about by path, in backticks. When state is an object, a question about one field should name that field: "Does `ticket.messages[0].text` request a refund?", not "does this request a refund?". Dot-and-index paths with the backticks are what upstream prescribes, and the model then knows which part of the state to judge (Primitives, "Reference specific fields"). jev_rank builds its per-candidate questions this way already.

Make choice options contrastive: give every option the same sub-keys. An option description may be structured, and describing each option with the same labels — what it covers, what it does not, an example — sharpens the boundary between options instead of leaving the model to infer it. Upstream's worked example uses what / not_for / examples on every option for exactly that reason (Advanced: structure, "JSON rubric for boundary clarification"). Through these tools each option's description is a single string, so spell the same labels out inside each one.

A noul with an unstated boundary is one whose 0.5 cannot be interpreted. Say what yes means and what no means whenever the line between them is not obvious — including what silence in the evidence does not count as (the jev_ask schema names the field the boundary belongs in). Upstream defines every hazard in its guardrail recipe this way, and the same page shows structured true/false descriptions for a subtle boundary (Advanced: structure, "Structured Noul criteria").

Batch related questions into one call: they are answered against the same state in a single round-trip, which is where most of the cost saving comes from. Ask questions you might not need, too — an extra question costs tokens, not time, and code can ignore the answers it does not use. Upstream measures 13 questions in one call at 11.5x cheaper and 9.6x faster than 13 calls, with no change in the answers (Primitives, "Ask multiple questions together"). Two requests are the exception: ask again only when the first answer is needed to fetch evidence, build new state, or choose the next question's options.

Two rules that prevent the common mistakes

A probability is not a permission. Jev tells you how likely something is; it does not decide what to do about it. Apply your own threshold. When the answer is below it, the outcome is "unknown" — not "allow". A gate that defaults to allow when it is unsure is not a gate.

Nothing runs on every tool call unless you asked for it. A decision layer that inspects every tool call or every tool result transmits content off the machine by default, and it runs far more often than you expect. Enable that deliberately, and prefer a threshold that skips small inputs entirely.

Show full SKILL.md (519 more words)Show less

Working with the answer

  • confidence is a concentration statistic over the answer's own probability distribution — how peaked it is, from 0 to 1 — not a measure of whether the answer is true, and not this project's own calibration. Upstream says you are never locked into its definition and hands you the full probabilities for that reason. A noul answer has no confidence at all: a two-outcome answer has no distribution for a concentration statistic to summarise, so read the probability itself.
  • A score answer's number may fall between levels. Read legend to name the level instead of rounding, and read probabilities when the shape of the distribution is what you are acting on.
  • An answer naming a value outside the criteria you declared means something upstream is wrong. Treat it as a failure, not as a decision.
  • Independent per-candidate judgments (ranking) do not sum to 1. Do not normalize them and do not read them as shares.
  • If Jev is unreachable, surface that. Do not substitute a default and continue as though the judgment happened.

Cost shape

Input is billed per token; output is free. So state size is the entire cost model. Send the evidence the question is about, not the transcript that produced it — and remember that state leaves your machine, so redact before you send.

In this plugin

Three tools are available: jev_ask for a batch of typed questions, jev_rank to order candidates against one criterion, and jev_check to test a claim against evidence. The same judgments are reachable from code through ctx.jev with no model turn at all — prefer that when the decision is already being made in code.

Choose by the shape of the answer you need:

  • jev_ask — you can state the question and the possible answers. Routing, classifying, scoring, verifying a field. Start here: it is the general tool, and the other two are conveniences for shapes that come up often.
  • jev_rank — the answer is an ordering over a list longer than a handful: search hits, a triage backlog, which file to read first. One question per candidate, all in one round-trip. The per-candidate probabilities are independent judgments, not a distribution: 0.5 is not "half the total relevance", and a flat set of scores means nothing stands out rather than forming a fine-grained order.
  • jev_check — you have a specific claim and the evidence for it, and "not supported" and "contradicted" would send you to different actions. It judges only the evidence you hand it: it cannot search for more, and it cannot tell that you omitted the decisive passage.

Do not reach for any of them to summarize, explain, draft, or translate — or for an open-ended "look at this and tell me what to do". That last one is a slow judgment in a decision's clothing; either split it into questions whose answers your code combines, or keep it in the model.

Every result names its provider. If it says mock, the answers are synthetic and carry no judgment; do not act on them. Check provider, not model: the model name can read like a real one while the answers are still synthetic.

© PerryLink, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in packages/dsh/skills/typesafe-ai-dsh of PerryLink/jevcore.

Open the folder on GitHubat commit 563117c

Compare with similar skills

Typesafe AI Dsh next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Typesafe AI Dsh compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Typesafe AI Dsh this skillPerryLink/jevcore106—~2kAutomated safety check: PassApache-2.0
Clawmemyoloshii/ClawMem210—~7.5kAutomated safety check: PassMIT
Neurolink Guidejuspay/neurolink144—~1.4kAutomated safety check: PassMIT
Docsmint Document ManagerHiAi-gg/docsmint118—~584Automated safety check: PassApache-2.0
Composio Byodrewnekota/cetus146—~627Automated safety check: PassMIT
MCP Server Builderanthropics/skills180k63 repos~2.3kAutomated safety check: PassApache-2.0

Similar skills

  • Clawmem

    yoloshii/ClawMem

    ClawMem operational reference for agents at query time — the 3-rule escalation gate, MCP tool routing, the 4 query-optimization levers, pipeline behavior (query vs intentsearch), composite scoring…

    210 GitHub stars~7.5k tokensUpdated 4 days ago
    Agent WorkflowsAuto-check passed
  • Neurolink Guide

    juspay/neurolink

    Guide for using the NeuroLink SDK and CLI. An agent skill from juspay/neurolink.

    144 GitHub stars~1.4k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Manage and research DocsMint documents through its scoped MCP tools, including categories, folders, hybrid search, GraphRAG, rerank, and index refresh.

    118 GitHub stars~584 tokensUpdated 10 days ago
    Knowledge ManagementAuto-check passed
  • Composio Byo

    drewnekota/cetus

    Connect and use a user-owned Composio MCP server in Cetus. An agent skill from drewnekota/cetus.

    146 GitHub stars~627 tokensUpdated today
    Productivity & AutomationAuto-check passed
  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 63 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • MCP Server Builder

    shareAI-lab/learn-claude-code

    Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.

    78k GitHub starsUsed in 5 repos~1.2k tokens
    Agent WorkflowsAuto-check passed

Categories

Questions about Typesafe AI Dsh

What does Typesafe AI Dsh do?

Use TypeSafe Jev for narrow judgments inside DeepSeek Harness — routing, classifying, scoring, verifying, reranking — instead of spending a model turn on them. Typesafe AI Dsh is an agent skill from PerryLink/jevcore. Use TypeSafe Jev for narrow judgments inside DeepSeek Harness — routing, classifying, scoring, verifying, reranking — instead of spending a model turn on them.

When should I use Typesafe AI Dsh?

Typesafe AI Dsh fits situations like: tasks that involve Retrieval-augmented generation; tasks that involve MCP servers.

How do I install Typesafe AI Dsh in Claude Code?

Run `npx skills add PerryLink/jevcore --skill typesafe-ai-dsh -a claude-code`. Or copy the skill folder (packages/dsh/skills/typesafe-ai-dsh in PerryLink/jevcore) into .claude/skills/typesafe-ai-dsh in your project. Claude Code loads it when a task matches its description.

How do I install Typesafe AI Dsh in Codex?

Run `npx skills add PerryLink/jevcore --skill typesafe-ai-dsh -a codex`. Or copy the skill folder (packages/dsh/skills/typesafe-ai-dsh in PerryLink/jevcore) into .agents/skills/typesafe-ai-dsh in your project. Codex loads it when a task matches its description.

Can I use Typesafe AI Dsh in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add PerryLink/jevcore --skill typesafe-ai-dsh -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/typesafe-ai-dsh, .gemini/skills/typesafe-ai-dsh, .github/skills/typesafe-ai-dsh and .opencode/skills/typesafe-ai-dsh in your project.

What does Typesafe AI Dsh need to run?

SKILL.md names no scripts, command-line tools or credentials: Typesafe AI Dsh is instructions for the agent only.

Does Typesafe AI Dsh access the network?

SKILL.md names 1 domain. As links in the text: docs.typesafe.ai. This is read from the text; nothing was executed.

Is Typesafe AI Dsh safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Typesafe AI Dsh use?

Typesafe AI Dsh is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Typesafe AI Dsh use?

About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Typesafe AI Dsh?

Skills that share tags, products or a category with Typesafe AI Dsh: Clawmem (yoloshii/ClawMem, 210 stars), Neurolink Guide (juspay/neurolink, 144 stars), Docsmint Document Manager (HiAi-gg/docsmint, 118 stars) and Composio Byo (drewnekota/cetus, 146 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Typesafe AI Dsh?

PerryLink (a GitHub user) maintains it in PerryLink/jevcore, which has 106 GitHub stars. The repository was last updated on October 9, 2026.

Source: PerryLink/jevcore on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.