Agent Plugins Marketplace
All plugins

jev-skill-suggestion

v0.1.0

Keeps the skill listing out of the context window and lets TypeSafe's Jev, a System One decision model, pick at most one skill per prompt from the skills' descriptions, the way TypeSafe's skill-suggestion cookbook does: one request ranks every skill and asks whether the prompt needs a skill at all, a second re-reads the top three with their SKILL.md and can reject them all. The winner's SKILL.md is attached to the prompt, so the skills can be hidden from the model altogether (/jev-skill-suggestion:setup makes them user-invocable-only and /context counts them at 0). Falls back to the engine's built-in classifier when no key is set.

Claude Code

By claude-code-templatesLicense: MIT31.6k GitHub starsUpdated 2 hours ago

Directory evidence

Runtimes
Claude Code
Parsed components
0 skill or MCP entries
Source updated
Sep 24, 2026
Manifest status
Canonical path parsed

The directory validates manifest shape and source location. It does not execute the plugin or provide a security endorsement. Review the indexing methodology

Install jev-skill-suggestion for Claude Code

Installs for the current user
claude plugin marketplace add IchenDEV/agent-plugin-mkt
claude plugin marketplace update agent-plugin-marketplace
claude plugin install jev-skill-suggestion@agent-plugin-marketplace

Paste and run these commands in a terminal with Claude Code. They add and refresh the PluginsMP catalog, then install this plugin.

The installer fetches third-party code from the source repository shown on this page. This directory validates manifest structure and source location, but does not perform a security audit; review the manifest, components, and source before installing.

Get the source manually
git clone https://github.com/davila7/claude-code-templates

Clone the source repository, then follow its setup instructions to add the plugin to a compatible client. The plugin root is cli-tool/components/mods/productivity/jev-skill-suggestion/.

Plugin files

cli-tool/components/mods/productivity/jev-skill-suggestion/
└── .claude-plugin/plugin.json

Plugin manifests1

cli-tool/components/mods/productivity/jev-skill-suggestion/.claude-plugin/plugin.json
{
  "name": "jev-skill-suggestion",
  "version": "0.1.0",
  "description": "Keeps the skill listing out of the context window and lets TypeSafe's Jev, a System One decision model, pick at most one skill per prompt from the skills' descriptions, the way TypeSafe's skill-suggestion cookbook does: one request ranks every skill and asks whether the prompt needs a skill at all, a second re-reads the top three with their SKILL.md and can reject them all. The winner's SKILL.md is attached to the prompt, so the skills can be hidden from the model altogether (/jev-skill-suggestion:setup makes them user-invocable-only and /context counts them at 0). Falls back to the engine's built-in classifier when no key is set.",
  "author": {
    "name": "claude-code-templates",
    "url": "https://www.aitmpl.com"
  },
  "repository": "https://github.com/davila7/claude-code-templates",
  "license": "MIT",
  "keywords": [
    "mod",
    "function-hooks",
    "productivity",
    "skills",
    "context"
  ],
  "userConfig": {
    "typesafeApiKey": {
      "type": "string",
      "title": "TypeSafe API key",
      "description": "Key for TypeSafe's own API; preferred over the Gateway, since only it reports a calibrated confidence",
      "default": "",
      "sensitive": true
    },
    "gatewayApiKey": {
      "type": "string",
      "title": "Vercel AI Gateway API key",
      "description": "Key for the AI Gateway; with none set the engine's built-in classifier is used instead",
      "default": "",
      "sensitive": true
    },
    "provider": {
      "type": "string",
      "title": "Backend",
      "description": "Which backend to use; \"auto\" picks TypeSafe when its key is set, then the Gateway, then the built-in classifier",
      "default": "auto",
      "options": [
        "auto",
        "typesafe",
        "gateway",
        "builtin"
      ]
    },
    "typesafeBaseUrl": {
      "type": "string",
      "title": "TypeSafe base URL",
      "description": "Base URL of TypeSafe's own API; empty uses https://api.typesafe.ai",
      "default": ""
    },
    "typesafeModel": {
      "type": "string",
      "title": "TypeSafe model",
      "description": "Decision model on TypeSafe's own API; empty uses jev-latest",
      "default": ""
    },
    "gatewayBaseUrl": {
      "type": "string",
      "title": "AI Gateway base URL",
      "description": "Base URL of the AI Gateway; empty uses https://ai-gateway.vercel.sh/v4/ai",
      "default": ""
    },
    "gatewayModel": {
      "type": "string",
      "title": "AI Gateway model",
      "description": "Decision model on the AI Gateway; empty uses typesafe-ai/jev",
      "default": ""
    },
    "inject": {
      "type": "string",
      "title": "How the chosen skill reaches the model",
      "description": "\"content\" attaches the skill's SKILL.md to the prompt, so it loads even when the engine lists it as user-invocable-only or off; \"suggest\" only names it and the model loads it with the Skill tool",
      "default": "content",
      "options": [
        "content",
        "suggest"
      ]
    },
    "hideListing": {
      "type": "boolean",
      "title": "Hide the skill listing",
      "description": "Leave the engine's skill listing out of the main conversation's context; off keeps the listing and only adds the suggestion",
      "default": true
    },
    "rerank": {
      "type": "boolean",
      "title": "Re-read the shortlist",
      "description": "Send a second request that re-reads the top skills with their full description and SKILL.md opening, and can reject them all; off suggests the top of the ranking alone",
      "default": true
    },
    "shortlist": {
      "type": "number",
      "title": "Shortlist size",
      "description": "How many of the ranking the second request re-reads",
      "default": 3
    },
    "gateThreshold": {
      "type": "number",
      "title": "Needs-a-skill threshold",
      "description": "Mean of the three request nouls (acts on the user's system, would follow a documented procedure, prose does not suffice) under which nothing is suggested",
      "default": 0.3
    },
    "fitsThreshold": {
      "type": "number",
      "title": "Fits threshold",
      "description": "A shortlist whose best per-skill \"does this fit\" noul is under this is dropped entirely",
      "default": 0.3
    },
    "excerptChars": {
      "type": "number",
      "title": "SKILL.md excerpt",
      "description": "How many characters of each shortlisted skill's body the second request reads",
      "default": 700
    },
    "alwaysListed": {
      "type": "string",
      "title": "Always listed",
      "description": "Comma-separated skill names that stay in the listing whatever the prompt (the model can still see and call them)",
      "default": ""
    },
    "neverSuggested": {
      "type": "string",
      "title": "Never suggested",
      "description": "Comma-separated skill names the decision model is never offered; they stay reachable by typing /name",
      "default": ""
    },
    "timeoutMs": {
      "type": "number",
      "title": "Latency budget (ms)",
      "description": "How long to wait for a decision before letting the prompt through without a suggestion",
      "default": 800
    },
    "logDecisions": {
      "type": "boolean",
      "title": "Log decisions",
      "description": "Write each selection to the session log",
      "default": true
    }
  }
}

If you maintain this plugin, link to this source-backed listing from your README so users can review its manifest and indexed components.

[jev-skill-suggestion on Agent Plugins Marketplace](https://pluginsmp.com/plugins/jev-skill-suggestion)