deep-decide
Skill2 starsChanged 4 months agoMITView on GitHub
Run a high-thinking decision workflow that evaluates options through multiple independent model/provider perspectives, forces dissent, ranks the options, and returns one synthesized verdict with assumptions, evidence gaps, and an action plan. Bring your own API keys (Anthropic, OpenAI, and/or Gemini). Use when someone says "deep-decide", "mega decide", "pressure-test this decision", "evaluate options deeply", "which option should I pick", "rank these options", "stress-test this choice", or asks for a multi-model decision review. Do not use for pure factual research; use a deep-research skill for source discovery or long research reports, then feed its findings in here.
- Reads credentials
- Installs packages
In this repository15 other files it gives its agents.
- AGENTS.mdAGENTS.md
- agent-coordinationSkill
- blog-image-genSkill
- bogdan-baciu-designSkill
- chat-analysisSkill
- deep-research-agentsSkill
- grill-meSkill
- handoffSkill
- insight-lockSkill
- parallel-dispatchSkill
- quiz-meSkill
- skill-drift-scannerSkill
- table-system-migrationSkill
- weekly-updateSkill
- x-signal-researchSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use this when someone needs a better decision, not just more information.
- Very specific: line 52
When someone says deep-decide or a nearby trigger, treat the skill as the interface.
- Very specific: line 56
Run the no-cost plan and show the provider/perspective/call-count breakdown.
- Distinctive: line 62
If options or criteria are missing but can be reasonably inferred, infer them and mark them as inferred.
- Very specific: line 86
Run with no decision argument to be prompted for it interactively.
- Distinctive: line 162
Do not use this as a publishing or outbound-action gate.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Deep-Decide
Use this when someone needs a better decision, not just more information. The
workflow is: independent perspectives, then forced dissent, then one synthesized
verdict. It is portable and self-contained: a bundled Python script
(scripts/deep_decide.py, standard library only) makes the model calls using
keys you supply in your own environment.
What it does NOT do
- It is not a research tool. For gathering facts, market data, or sources, run a deep-research skill first and paste the findings in as context. Deep-decide reasons over what it is given; it does not browse.
- It does not execute the decision. It recommends; it never sends, deploys, buys, or commits anything.
- Consensus is not proof. The verdict preserves dissent and TBU assumptions on purpose; it does not launder uncertainty into false confidence.
Bring your own keys
The script reads credentials from the environment. Set at least one; set more than one to get genuine cross-model dissent (perspectives are rotated across the providers you configured):
Each default is that provider's current flagship, and the calls run at high
reasoning effort with adaptive thinking on where the provider supports it.
Override any model with its env var, or the depth with DEEP_DECIDE_EFFORT
(low | medium | high | xhigh | max, default high).
| Env var | Provider | Model env override | Default model |
ANTHROPIC_API_KEY | Claude | DEEP_DECIDE_ANTHROPIC_MODEL | claude-opus-4-8 |
OPENAI_API_KEY | OpenAI | DEEP_DECIDE_OPENAI_MODEL | gpt-5 |
GEMINI_API_KEY | Gemini | DEEP_DECIDE_GEMINI_MODEL | gemini-2.5-pro |
OPENROUTER_API_KEY | OpenRouter (any model) | DEEP_DECIDE_OPENROUTER_MODEL | openai/gpt-5 |
CURSOR_API_KEY (+ CURSOR_API_BASE) | Cursor | DEEP_DECIDE_CURSOR_MODEL | gpt-5 |
A subscription (ChatGPT, Claude.ai, etc.) is not an API key. These calls bill your API account. Check what is configured before running:
python3 scripts/deep_decide.py --providersUser-facing contract
When someone says deep-decide or a nearby trigger, treat the skill as the
interface. Do not lead with a raw terminal command.
- Restate the decision, options, and criteria if they are clear.
- Run the no-cost plan and show the provider/perspective/call-count breakdown.
- State the paid-call count, then run live only after the person approves paid calls in the current turn (or explicitly asked for a live run).
- Return the verdict in plain language: recommendation, the dissent that matters, assumptions to verify, and next actions.
If options or criteria are missing but can be reasonably inferred, infer them and mark them as inferred. Ask a question only when the decision would be materially distorted without the missing information.
Running it
No-cost plan (default: prints which providers it found and what it would do, and makes no API calls):
python3 scripts/deep_decide.py "Should we do X or Y?" \
--option "Do X" --option "Do Y"Live run (paid):
python3 scripts/deep_decide.py "Should we do X or Y?" \
--option "Do X" --option "Do Y" \
--criterion "12-month cash impact" \
--criterion "team adoption" \
--executeRun with no decision argument to be prompted for it interactively. Override the
four default perspectives with --perspective "label: what this lens focuses on"
(repeatable). Output bundles are written under ./deep-decide-runs/<slug>/
(verdict.md, combined.md, manifest.json, one file per perspective);
override the location with --out-dir.
Status tokens (first stdout word; exit 0 only on OK_*): OK_PLAN,
OK_DECIDE, OK_PROVIDERS, ERR_NO_PROVIDERS, ERR_NO_DECISION, ERR_RUN.
Default shape
The default bundle is five paid calls: four perspective passes plus one final synthesis. The default perspectives are:
operator: execution reality, dependencies, operational drag, what breaks.skeptic: red-team critique, hidden assumptions, failure modes.finance: ROI, cash/time cost, opportunity cost, operating leverage.stakeholder: adoption, incentives, trust, communication burden.
With several keys set, those four are spread across providers (e.g. operator on Claude, skeptic on OpenAI) so the dissent is cross-model, not one model arguing with itself. The synthesis "chair" defaults to Claude when available.
The research arsenal (built in)
This skill ships its own evidence layer, scripts/research_stack.py: a catalog
of 17 research providers across three tiers, with live bring-your-own-keys
adapters for the search-capable ones. See the whole thing and what is configured:
python3 scripts/research_stack.py --stack # or: python3 scripts/deep_decide.py --stackTiers:
- Deep web research: Exa, Firecrawl, Parallel.ai, Gemini Deep Research, Browserbase.
- Scholarly / academic: arXiv, OpenAlex, Crossref, PubMed, Semantic Scholar, CORE, Google Scholar (via SearchAPI/SerpAPI). arXiv, OpenAlex, Crossref, and PubMed work with no key at all.
- GitHub / code: GitHub code search, GitHub repo search, grep.app, Exa GitHub scan, Sourcegraph. grep.app needs no key.
Gather live, cited evidence on its own:
python3 scripts/research_stack.py "your question" -n 5 --tier academicOr seed it straight into a decision so the perspectives reason over real sources instead of guesses:
python3 scripts/deep_decide.py "Should we adopt approach X?" \
--option "X" --option "status quo" \
--research "evidence for and against approach X" --executeEach finding is tagged with its source and URL and is injected as "treat as
leads to verify, not proven truth." Providers marked catalog in --stack
(Parallel, Gemini Deep Research, Browserbase, CORE, Google Scholar, Sourcegraph)
are part of the stack and shown with their env vars, but use async/job or
key-gated APIs out of scope for the synchronous evidence pass; the live
providers are queried directly. Always verify load-bearing claims against
current primary sources before acting on the verdict.
Gotchas
- Pure standard library, no
pip install. Ifpython3 scripts/deep_decide.py --providersruns, you are ready. --executeis the only thing that spends money. Everything else is free and offline.- One key is fine: the run becomes single-provider, multi-perspective. The cross-model dissent advantage only appears with two or more keys.
- A perspective that fails (bad key, rate limit) is recorded in
manifest.jsonand the run continues with the rest; the run only fails if every perspective fails. - Do not use this as a publishing or outbound-action gate. It produces a recommendation, nothing else.
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.

