decide
Skill389 starsChanged 23 days agoMITView on GitHub
Use when the user wants typed judgments over their own data from Claude Code — yes/no probabilities, a labelled choice, or a rubric score over text or images, many items at a time. BlockRun's Decisions endpoint (OpenAI Decisions-compatible, gpt-6-luna): served only at POST api.blockrun.ai/v1/decisions, free with a BlockRun key (no x402 rail). Not an MCP tool: call it with curl. Replaces the OpenJev-backed /v1/decide, which is retired.
- Reads credentials
51 other projects use a version of this.
Adopted by
Most recently taken up by
- aditya-vermax/skillstheir own version, first seen Nov 8, 2026
- vimkim/my-skillstheir own version, first seen Nov 8, 2026
- yuri-xyz/skillstheir own version, first seen Nov 8, 2026
- blamechris/chroxytheir own version, first seen Nov 8, 2026
- dirien/yet-another-agent-harnesstheir own version, first seen Nov 8, 2026
- Integralist/agent-skillstheir own version, first seen Nov 6, 2026
Used with
Projects with it also use redesign, weekly and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
arjunkshahSkillredesign
Redesign existing interfaces to premium quality while preserving product goals and functional behavior.
Also in 3 projects that use this
gaiaaiagentSkillweekly
Generate a weekly digest rolling up dailies into higher-level pattern analysis
Also in 3 projects that use this
SethGammonSkillexperiment
Automated optimization loop with scalar fitness function. Proposes changes in isolated worktrees, measures with a metric command, keeps improvements, discards failures. Supports convergence detection and diminishing returns.
Also in 3 projects that use this
kv0906Skillinbox
Quick capture mode (with content) or batch processing mode (no content). GTD-style routing of inbox items to proper folders. Use "/inbox thought to capture" or "/inbox" to process.
Also in 3 projects that use this
AnthropicSkillbrief
Generate contextual briefings for legal work — daily summary, topic research, or incident response. Use when starting your day and need a scan of legal-relevant items across email, calendar, and contracts, when researching a specific legal question across internal sources, or when a developing situation (data breach, litigation threat, regulatory inquiry) needs rapid context.
Also in 5 projects that use this
genomewalkerSkillhealth
Soul system health check with remediation
Also in 3 projects that use this
Other versions51 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 51
- ParadevAI/Paradev★ 16ksame name
- superset-sh/superset★ 16ksame name
- coreyhaines31/makerskills★ 893same name
- me2resh/apexyard★ 542same name
- menkesu/awesome-pm-skills★ 441same name
- kv0906/pm-kit★ 138same name
- Abilityai/cornelius★ 109same name
- me2resh/agent-decision-record★ 48same name
- seandavi/lifeos-template★ 46same name
- alirezarezvani/gaios★ 37same name
41 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository18 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- blockrun-debugSkill
- blockrun-setupSkill
- blockrunSkill
- blockrun-upgradeSkill
- crypto-dataSkill
- exa-researchSkill
- gentech-blockrunSkill
- image-promptingSkill
- modalSkill
- phoneSkill
- polymarket-tradingSkill
- prediction-marketsSkill
- rpcSkill
- searchSkill
- signal-to-trade-demoSkill
- surfSkill
The file
We split this skill into the rules it gives an agent
1 rule. 0 are common, 0 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 50 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 63
Do not write it to ~/.blockrun/.api-key just to try this.
“Common” is measured: kept by at least 6 in 10 of the 50 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Decisions — typed judgments from Claude Code
POST https://api.blockrun.ai/v1/decisions takes an input (a message, a ticket,
a diff, a tool result, an image) and a list of questions with a fixed answer
space, and returns one typed answer per question — no prose to parse. It is
compatible with OpenAI's Decisions API and served by gpt-6-luna.
It is not a BlockRun MCP tool, on purpose: you are already a frontier model,
and for a one-off "is this urgent?" you are the better judge. The endpoint earns
its place when the user wants the same fixed ruler over many items, or is
prototyping a judgment they will later run from a pipeline without a model.
From Claude Code, call it with curl from the shell.
Where to call it
| Endpoint | Auth | Price |
https://api.blockrun.ai/v1/decisions | Authorization: Bearer brk_live_… | Free for any registered key, per-key hourly limit |
That is the only rail. Decisions is not sold over x402: the x402 per-call
floor is above what a Decisions call costs, so a paid route would bill nearly
every call at the floor. Do not look for it on blockrun.ai or
sol.blockrun.ai, and do not offer to pay for it from the wallet.
Batch the questions anyway: many questions in one call share one input and one
round trip.
OpenJev is retired (2026-10-07). The old POST api.blockrun.ai/v1/decide
shape (state, noul/choice/score with criteria) is still accepted and
answered by the same model, but write new calls against /v1/decisions.
Getting a key without changing how the MCP pays
Keys are minted at https://user.blockrun.ai/dashboard/keys (brk_live_…,
shown once; registration, not a card).
For experiments, export the key in the shell and leave the MCP server alone:
export BLOCKRUN_API_KEY=brk_live_…Do not write it to ~/.blockrun/.api-key just to try this. The MCP server
reads that file at startup and a present key moves every paid tool from
wallet mode to account billing — the same switch BLOCKRUN_API_KEY in the MCP
server's own config makes. That is fine if the user wants account billing (see
the blockrun-setup skill); it is a surprise if they only wanted a free
judgment. If the MCP is already on account billing, the same key works for both.
Request
curl -sS https://api.blockrun.ai/v1/decisions \
-H "authorization: Bearer $BLOCKRUN_API_KEY" \
-H "content-type: application/json" \
-D /dev/stderr \
-d '{
"model": "gpt-6-luna",
"input": "Help! My payouts have been failing for 3 days.",
"questions": [
{ "type": "predicate", "name": "is_urgent",
"instructions": "Does the message convey urgency?" },
{ "type": "choice", "name": "department",
"instructions": "Which team should handle this?",
"choices": [ { "value": "billing", "description": "Payments, payouts, refunds" },
{ "value": "technical", "description": "Bugs and outages" } ] },
{ "type": "score", "name": "frustration",
"instructions": "How frustrated is the customer?",
"levels": [ { "label": "calm", "description": "Neutral tone" },
{ "label": "frustrated", "description": "Clearly unhappy" },
{ "label": "angry", "description": "Hostile or threatening to leave" } ] }
]
}'-D /dev/stderr shows the response headers (rate limit) without mixing them
into the JSON on stdout.
| Field | Type | Required | Notes |
model | string | no | gpt-6-luna, the only Decisions model. |
input | string | array | yes | A string, or messages whose content holds text and inline base64 images (no hosted URLs). If a fact matters, put it in — the model looks nothing up. |
questions | array | yes | Each { type, name, instructions }, plus choices or levels. |
| Type | You add | You get back |
predicate | nothing | probability 0–1 |
choice | choices: [{ value, description }] | choice, probabilities per value, confidence |
score | levels: [{ label, description }], lowest first | score (weighted level index from 0), probabilities per level, confidence |
A question the model declines comes back as type: "refusal".
Response (measured 2026-10-07 for the request above)
{
"model": "gpt-6-luna",
"answers": [
{ "type": "predicate", "name": "is_urgent", "probability": 0.95 },
{ "type": "choice", "name": "department", "choice": "billing",
"probabilities": [ { "value": "billing", "probability": 1.0 },
{ "value": "technical", "probability": 0.0 } ],
"confidence": 1.0 },
{ "type": "score", "name": "frustration", "score": 0.94,
"probabilities": [ { "value": 0, "label": "calm", "probability": 0.06 },
{ "value": 1, "label": "frustrated", "probability": 0.94 },
{ "value": 2, "label": "angry", "probability": 0.0 } ],
"confidence": 0.91 }
],
"usage": { "input_tokens": 399, "output_tokens": 0, "total_tokens": 399 }
}Before you build a threshold
Set thresholds by running the user's own labelled examples through the
endpoint and looking at where the errors land — not by reading a number as an
accuracy. An agent that gates on confidence > 0.8 without that check will be
wrong with no error to tell it so.
The model judges only the input. A question whose answer is not in it ("does this need a reply today?" over a message that says nothing about timing) still gets an answer that looks like a verdict. That one is policy — answer it in code.
Trying it on the user's data — the shape that works
- Build the input with everything the judgment needs. Fetch with
blockrun_exaorblockrun_searchfirst if a fact is missing. - Ask the independent questions together in one call.
- Combine with deterministic checks the code already has.
- Route by margin. Act automatically where the margin is wide and the
checks agree; hand narrow cases to a reasoning model via
blockrun_chat, or to a person.
A quick evaluation loop: put 20–50 labelled rows in a JSON file, loop curl
over them with jq, and tabulate agreement.
jq -c '.[]' examples.json | while read -r row; do
input=$(jq -c '.input' <<<"$row"); want=$(jq -r '.label' <<<"$row")
got=$(curl -sS https://api.blockrun.ai/v1/decisions \
-H "authorization: Bearer $BLOCKRUN_API_KEY" -H "content-type: application/json" \
-d "{\"model\": \"gpt-6-luna\", \"input\": $input, \"questions\": [{\"type\": \"choice\",
\"name\": \"q\", \"instructions\": \"Which team should handle this?\",
\"choices\": [{\"value\": \"billing\", \"description\": \"Payments, refunds\"},
{\"value\": \"technical\", \"description\": \"Bugs, outages\"}]}]}" \
| jq -r '.answers[0].choice')
echo "$want,$got"
done | sort | uniq -cLimits and errors
| Status | Meaning | Charged? |
| 400 | Body did not match the schema; the error names the field | No |
| 401 | Missing or invalid key | No |
| 429 | Per-key hourly limit; wait for retry-after | No |
| 502 / 504 | Model unreachable or timed out | No |
Related
- API reference: https://blockrun.ai/docs/api-reference/decisions
- Account billing for the whole MCP:
blockrun-setupskill, "API key" section.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

