Borrowing it
Nothing to install: this file belongs to juspay/neurolink. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/juspay/neurolink/release/.claude/skills/neurolink-decide/SKILL.mdgit clone --depth 1 https://github.com/juspay/neurolinkWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/juspay/neurolink/neurolink-decide)<a href="https://agentmods.dev/skills/juspay/neurolink/neurolink-decide"><img src="https://agentmods.dev/badge/skills/juspay/neurolink/neurolink-decide/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/juspay/neurolink/neurolink-decide"><img src="https://agentmods.dev/badge/skills/juspay/neurolink/neurolink-decide.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00106 | $0.06808 |
| Opus 5.5 | $0.00042 | $0.02723 |
| Sonnet 5.5 | $0.00021 | $0.01362 |
| Haiku 4.5 | $0.00011 | $0.00681 |
Grade A, and why
neurolink-decide scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 356 lines — stays where its author put it; the contents beside it link to each section on GitHub.
The decide inference type
Moved out of the root CLAUDE.md. The transcribe inference type is in src/lib/voice/CLAUDE.md.
generate, stream, decide and transcribe are peers. The first two assume
the model emits text; decide does not — a decision model takes one state
plus a map of named typed questions and returns one typed, calibrated answer
each in a single parallel pass, with no text anywhere. transcribe starts from
audio instead of text (see src/lib/voice/CLAUDE.md). InferenceKind
includes "transcribe", but no ProviderDescriptor declares it: STT providers
are chosen from their own list, STT_PROVIDER_DESCRIPTORS.
The discriminator is one field on ProviderDescriptor:
inferenceKinds?: readonly InferenceKind[] // "generate" | "stream" | "decide" | "transcribe"
Omitted means ["generate","stream"], so every text provider keeps its
meaning. For the text and decision providers this is the only declarative
statement of provider modality in the codebase (STT has its own list, above) —
before it, modality was implied by toolSupport, healthCheck and
the auto-select ranks, which is why embedding-only providers (voyage, jina)
have to implement getAISDKModel() as a throw. Anything that builds a
generation fallback chain, runs the health sweep or offers model choices must
filter on inferenceKinds rather than special-casing a provider name.
AIProvider.decide?() is optional and BaseProvider supplies a throwing
default, exactly as embed() does. Public surface is neurolink.decide() and
neurolink.tryDecide() — the public fail-open variant, which returns null
instead of throwing (a question map over the provider's cap is split into
batches; a failed batch costs only its own answers, and null comes back only
when every batch fails); the internal consumers get the same contract through
the private siteDecide (see below) — plus the CLI's
neurolink decide [state], a thin wrapper over decide() (src/cli/commands/decide.ts).
Decision providers; descriptor order is precedence. TypeSafe (Jev,
hosted), Laya (open weights, at a configured base URL — there is no default),
XOR (open weights that also reads an image and audio and extracts typed values,
likewise at a configured base URL), SubQ (subq, described below), Perplexity (perplexity-decider, the hosted Decisions API; it also reads
images, no video, at the public https://api.perplexity.ai, so a key alone
configures it), Cloudflare Clef (cloudflare-clef, on Workers AI; it also reads
images, no video, at Cloudflare's own API, so a token and an account id configure
it) and OpenAI Decisions (openai-decisions, OpenAI's hosted Decisions API in
public beta; it also reads images, no video, at the public https://api.openai.com,
so a key alone configures it) and ScaleDown (scaledown, hosted Classify models,
text only, at the public https://api.scaledown.xyz, so a key alone configures
it; described below) all extend SystemOneDecisionProvider in
src/lib/providers/systemOneDecision.ts,
which owns the request loop, retries, the auth circuit breaker and answer
parsing; each provider supplies only its endpoint, headers, body and error
parsing. OpenAI Decisions is the one whose wire is not System One's (named
questions in an array, an array of answers), so its catalog entry names
decide.dialect: "openai-decisions", translated by
src/lib/providers/decide/dialects/openaiDecisions.ts; the Laya, XOR and SubQ entries
use the system-one dialect, as does ScaleDown. resolveDefaultDecisionProvider() returns the first
DECISION_PROVIDERS entry that is fully configured (a key, plus a base URL for
Laya and XOR, which have no built-in endpoint), in decideOrder order (the list is
sorted by each descriptor's decideOrder, not by its position), so TypeSafe's 1
before Laya's 2, Laya's before XOR's, XOR's before SubQ's, SubQ's before
Perplexity's, Perplexity's before Clef's, Clef's before OpenAI Decisions', and OpenAI
Decisions' before ScaleDown's, is what makes
TypeSafe win whenever either of its keys (TYPESAFE_API_KEY, AI_GATEWAY_API_KEY)
is set alongside LAYA_API_KEY, XOR_API_KEY, SUBQ_API_KEY, PERPLEXITY_API_KEY,
CLOUDFLARE_API_KEY, OPENAI_API_KEY or SCALEDOWN_API_KEY. Reordering them changes which model
every built-in consumer uses. The three providers whose keys
are shared with a text provider (Perplexity, Clef and OpenAI Decisions) stay
behind every provider a host sets up on purpose, except ScaleDown (below): a provider added after
them would be displaced by an ambient key. SubQ sits ahead of them only because
SUBQ_API_KEY belongs to no other provider. ScaleDown's key belongs to no other
provider either, yet ScaleDown sits last, after those three, by the owner's decision of
2026-10-15 (decide.order 8): an ambient OPENAI_API_KEY, PERPLEXITY_API_KEY or
Cloudflare pair outranks a SCALEDOWN_API_KEY a host set on purpose, and ScaleDown
is reached by naming it. Test 18.4 pins scaledown as the last entry.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 356 lines · 106 tokens per session scan A 13b03e7351f9
neurolink-decide is a skill published in the GitHub repository juspay/neurolink (168 stars, last pushed yesterday), licensed MIT. It adds 106 tokens to every session and 6,808 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-11-02.
neurolink-decide compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| neurolink-decidejuspay/neurolink | Skill | 168 | yesterday | MIT | A | 106 | Claude Code |
| naturalNPC-Worldwide/npcpy | Skill | 1.5k | 4d ago | MIT | A | 41 | Claude Code, Codex |
| mapSnowflake-Labs/cocoplus | Skill | 727 | 2d ago | MIT | A | 42 | Claude Code |
| context-addSnowflake-Labs/cocoplus | Skill | 727 | 2d ago | MIT | A | 48 | Claude Code, Codex |
| cocoleanSnowflake-Labs/cocoplus | Skill | 727 | 2d ago | MIT | A | 41 | Claude Code |
| testSnowflake-Labs/cocoplus | Skill | 727 | 2d ago | MIT | A | 47 | Claude Code, Codex |
| map-diffSnowflake-Labs/cocoplus | Skill | 727 | 2d ago | MIT | A | 28 | Claude Code |