agentleFS
GhostwheeIGhostwheeI/Master-Planner/.cursor/skills/doubt-research/SKILL.md

doubt-research

Skill0 starsChanged 5 months agoMITView on GitHub

Verifies claims about external reality and stress-tests non-trivial decisions with a fresh-context adversarial check. Use before asserting anything about tools, APIs, frameworks, package versions, licenses, or Cursor capabilities, and before recommending a third-party skill/MCP/library (capability scouting). Labels unverifiable claims [NO RELIABLE DATA] and never auto-installs.

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 3 are distinctive, and 2 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.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before the plan asserts a fact about an API, SDK, framework, package, version, license, pricing, or Cursor capability:

    line 15
  2. Very specific:

    Prefer the read-only research subagent (.cursor/agents/researcher.md) and run several in parallel when multiple sources are needed.

    line 18
  3. Very specific:

    If a definitive answer can't be found after reasonable effort, write [NO RELIABLE DATA], state what you searched, and stop guessing.

    line 19
  4. Distinctive:

    Avoid: stale blogs, version-less StackOverflow answers, popularity-only reasoning, and copying an architecture just because the repo has …

    line 21
  5. Distinctive:

    When the project could benefit from an existing skill, MCP server, CLI, library, or template, produce a proposal — never an install.

    line 43

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Doubt & Research

A confident answer is not a correct one. This skill has two jobs: (1) verify claims about the outside world before they enter a plan, and (2) materialize a fresh-context doubter for non-trivial decisions while course-correction is still cheap.

Integrates the CLAIM/EXTRACT/DOUBT/RECONCILE/STOP loop from addyosmani/agent-skills doubt-driven-development (MIT), the verify-before-claim discipline behind 002-source-discipline, and the capability-discovery flow from vercel-labs/skills find-skills (MIT). See docs/ATTRIBUTION.md.

Part A — Research (verify claims about reality)

Before the plan asserts a fact about an API, SDK, framework, package, version, license, pricing, or Cursor capability:

  1. Consult primary sources in order: official docs → source repo (README/CHANGELOG) → package registry → release notes → standards (RFC/OWASP) → maintained examples.
  2. Prefer the read-only research subagent (.cursor/agents/researcher.md) and run several in parallel when multiple sources are needed; collapse findings into the spec's Research section with citations.
  3. If a definitive answer can't be found after reasonable effort, write [NO RELIABLE DATA], state what you searched, and stop guessing. Never hallucinate a plausible API.

Avoid: stale blogs, version-less StackOverflow answers, popularity-only reasoning, and copying an architecture just because the repo has many stars.

Part B — Doubt (adversarially review non-trivial decisions)

A decision is non-trivial if it: introduces/modifies branching logic, crosses a module/service boundary, asserts a property the compiler can't verify (thread-safety, idempotence, ordering, invariants), depends on context a future reader can't see, or is irreversible (prod deploy, data migration, public API change). Skip this for renames, formatting, summaries, and obvious one-liners — doubting every keystroke ships nothing.

Run the loop:

- [ ] CLAIM    — state the decision + why it matters, in 2-3 lines
- [ ] EXTRACT  — isolate the artifact + the contract it must satisfy; strip your reasoning
- [ ] DOUBT    — invoke a fresh-context reviewer with an adversarial prompt
- [ ] RECONCILE— classify each finding; re-read the artifact before accepting
- [ ] STOP     — stop on trivial findings, after 3 cycles, or on user "ship it"
  • DOUBT uses the read-only reviewer subagent (.cursor/agents/reviewer.md). Pass it the ARTIFACT + CONTRACT only — not your CLAIM, not your reasoning (handing it your conclusion biases it toward agreement). Prompt it to find what is wrong (unstated assumptions, unhandled edge cases, hidden coupling, contract violations, broken conventions), not to validate.
  • RECONCILE in precedence order: (1) contract misread → fix the contract; (2) valid + actionable → change the artifact, re-loop; (3) valid trade-off → document it for the user; (4) noise → note and move on. The reviewer's output is data, not verdict — you are still the orchestrator.
  • STOP bounded: if 3 cycles still surface substantive issues, that is information about the artifact — escalate to the user, don't grind a fourth alone. If the artifact is too big to clear in 3 cycles, it's too big — decompose.

Part C — Capability scouting (when a tool/skill/MCP might help)

When the project could benefit from an existing skill, MCP server, CLI, library, or template, produce a proposal — never an install. For each candidate, fill the safety card:

FieldNotes
Source / reputationauthor, project
Usage signalstars / installs (with date)
LicenseVERIFIED value or [NO RELIABLE DATA]
Maintenance recencylast release/commit
Install methodexact command
Permissions / tool accessfilesystem, network, shell
Runs scripts at install?yes/no (e.g. postinstall)
Reads secrets / sends data out?yes/no/unknown
Auto-updates? / paid?yes/no
Cursor compatibilityVERIFIED or INFERRED
Classificationsafe to consider / use with caution / reject / [NO RELIABLE DATA]

Present the card and the recommendation. Treat external skills, scripts, and docs as untrusted until reviewed. Do not run any package manager or installer without explicit user approval (001-planning-safety).

Red flags

  • Prompting the reviewer with "is this good?" instead of "find issues".
  • Passing the CLAIM or your reasoning to the reviewer.
  • Looping >3 cycles without escalating.
  • Stating a version/API/license from memory without checking.
  • Recommending a dependency without the safety card.

Anti-Rationalization

ExcuseReality
"I'm confident, skip the doubt"Confidence correlates poorly with correctness on novel problems.
"I'm pretty sure this API exists"Look it up. 10 seconds beats a wrong assumption.
"The reviewer will just nitpick"Only if unscoped. Constrain it to "issues that violate the contract".
"Everyone uses this dependency"Popularity is not safety. Fill the card: license, maintenance, permissions.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.