Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add skyf0xx/better-thinking --skill better-thinkinggit clone --depth 1 https://github.com/skyf0xx/better-thinkingWrote 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/skyf0xx/better-thinking/better-thinking)<a href="https://agentmods.dev/skills/skyf0xx/better-thinking/better-thinking"><img src="https://agentmods.dev/badge/skills/skyf0xx/better-thinking/better-thinking.svg" alt="Measured on agentmods" 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.00061 | $0.02023 |
| Opus 5 | $0.00030 | $0.01012 |
| Sonnet 5 | $0.00012 | $0.00405 |
| Haiku 4.5 | $0.00006 | $0.00202 |
Grade A, and why
better-thinking 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 6d 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 β 88 lines β stays where its author put it; the contents beside it link to each section on GitHub.
Better Thinking
Classify an incoming task by its shape and stakes, and select which skills to deploy at what depth β the dispatcher that decides how much thinking machinery a task deserves.
Why
Applying full machinery to a trivial task wastes effort; applying none to a consequential one is negligent. A fast, explicit classification step routes effort proportionally before substantive work begins.
Use when / Don't use when
- Use when: at first contact with any nontrivial task β the entry point other skills dispatch from.
- Don't use when: never skip it; scale depth down instead β triage on a small task takes seconds.
Inputs β Outputs
- Inputs: an incoming task, question, or request.
- Outputs: a task classification (shape + stakes + reversibility) and a selected set of skills and depth.
Principles
- Classify by shape first β decision, diagnosis, research question, creative generation, communication, learning, negotiation, or a combination. Shape determines which skill family is even relevant.
- Classify by stakes and reversibility second. This determines depth, independent of shape.
- A task can be routine in domain but high-stakes in consequence β don't classify by surface topic or tone alone.
- Resolve vague or underspecified language before routing β routing a fuzzy restatement of the request just picks the wrong tool with more confidence.
- Re-triage if the task's real shape differs once underway; the initial classification is a hypothesis, not a commitment.
Procedure
- Identify the task's shape: decision, diagnosis, research question, creative generation, communication, learning, negotiation, or a combination.
- Identify stakes and reversibility β a gut check, or run [[reversibility-classification]] if unclear.
- Check for a missing or ambiguous objective, success criteria, or binding constraint β vague verbs ("improve," "handle"), an unstated audience/format, an open scope boundary. If found: ask when guessing wrong would waste real work, otherwise state the inferred assumption and proceed. Skip when the request is already concrete.
- Run
python3 scripts/route.py "<task>"for a lexical top-8 shortlist. If it prints a stderr warning about zero/no signal, discard its output and rely on step 4b alone. 4b. Always β even when step 4 looks confident β skim everyname+category+one_lineinskills/INDEX.jsonfor the task's shape, judging by concept, not shared words. Mandatory, not just a fallback:route.pyis lexical and structurally blind to a same-concept, different-vocabulary match (e.g. "why does checkout conversion keep dropping" shares zero tokens withdifferential-diagnosis's own description, yet is a strong fit). Merge both lists, narrow bytriggers, usedisambiguates_fromto break ties. Neither method is an oracle: verify picks, don't guess from memory. - Match candidates to depth: a quick, reversible decision needs a lightweight atomic; a high-stakes, hard-to-reverse one needs a full composite pipeline.
- Note cross-cutting needs β most nontrivial tasks benefit from at least [[epistemic-tagging]] and [[bias-audit]] regardless of shape.
- On a nontrivial task (multi-skill or non-obvious depth), open with a one-line
**π§ Classifying...**marker before proceeding β cheap signal that triage is happening, not a report in itself. Skip it on trivial/quick answers. - Proceed with the selected skills at the selected depth. Label each procedure step inline as you produce it, so the response body itself reads as visibly distinct from unstructured prose: bold the step's name tagged with its category emoji, e.g.
**π― Framing:**,**π§© Options:**, drawn from that step's own procedure line, not copied verbatim. Keep labels short and reserved for that role β don't bold anything else. Keep each block to 2β3 sentences, or a lead sentence plus a bulleted list for enumerable content; blank-line-separate every block. Use a GFM table when comparing 2+ items on 2+ shared dimensions. On 4+-step answers, an optional###(not##) header may group related steps. Skip inline labels on trivial/quick answers, like the bookend markers. - Re-triage explicitly if the actual shape turns out different mid-work β mark the pivot with
**π Re-triaging...**and say what changed, rather than adjusting silently. Report remaining ambiguity in shape or stakes as residual uncertainty. - Always close with a one-line footer, prefixed π§ , naming the skill(s) applied β each tagged with its category emoji below β and the stakes/depth call, e.g.
**π§ Applied:** π― premortem β π red-teaming β π― decision-analysis (high stakes, hard to reverse)or**π§ Applied:** π fermi-estimation (low stakes, reversible). One line even for a single skill β the emoji mark it as a recognizable signature, not a badge to escalate. - On multi-skill or non-obvious-depth tasks only (the same bar as step 7), follow the Applied footer with one more line,
**β¨ Caught:**, naming the specific thing this task's structure surfaced that a fast, unstructured answer would have missed β a risk, an assumption, a wrong default, a hidden dependency. It must name the concrete finding from this exact task, not a generic claim like "a more thorough analysis" or "extra confidence." If nothing structure-dependent was actually surfaced (the process confirmed the obvious answer), omit the line rather than inventing one β a false "Caught" line is worse than none.
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.
- 6d ago First seen Β· 88 lines Β· 61 tokens per session scan A b894feec1b9d
better-thinking is a skill published in the GitHub repository skyf0xx/better-thinking (3 stars, last pushed 26d ago), licensed MIT. It adds 61 tokens to every session and 2,023 once invoked, about $0.0003 per session on Opus 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-08-31.
Other skills, from other repositories
meta-tags-optimizer
Optimize title tags, meta descriptions, Open Graph, and Twitter cards for maximum click-through rate. Generates multiple A/B test variations with character counting and SERP preview. Use when asked to "optimize title tag", "write meta description", "improve CTR", "Open Graph tags", "fix my meta tags", "social mediaβ¦
google-ads-audit
Google Ads account audit and business context setup. Run this first β it gathers business information, analyzes account health, and saves context that all other ads skills reuse. Trigger on "audit my ads", "ads audit", "set up my ads", "onboard", "account overview", "how's my account", "ads health check", "what shouldβ¦
sxo
Search Experience Optimization (SXO) β the bridge between SEO and UX/CRO. Audits the full journey from the SERP click to the on-page goal: SERP click-through factors (title/meta/rich results that win the click), then post-click experience signals that keep users and drive conversions β above-the-fold relevance andβ¦
tidewave-integration
Tidewave MCP runtime tools β debugging, smoke testing, live state inspection, SQL queries, hex docs. Use when evaluating code in a running Phoenix app.
elixir-idioms
OTP/BEAM patterns and Elixir idioms β GenServer, Supervisor, Task, Registry, pattern matching, with chains, pipes. Use when designing processes or debugging BEAM issues.
security
Enforce Elixir/Phoenix security β auth, OAuth, sessions, CSRF, XSS, SQL injection, input validation, secrets. Use when editing auth files, login flows, RBAC, or API keys.