thinking-circle-of-competence — Claude Code skill: stop confabulation
Makes the agent answer only from what it read or ran in this session. Useful when a confident wrong answer costs you.
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-circle-of-competence -a claude-codeWhat thinking-circle-of-competence does
The skill sorts a claim into three zones: grounded in a session source, partial, or ungrounded. Then the agent answers, fetches, or abstains. It does not fill in a made-up API value, version or path.
Inside is a six-step procedure and an output template. You name the assertion first, then size the cost of being wrong. For security, data loss or irreversible operations, partial knowledge counts as ungrounded until verified. One step blocks competence creep: adjacent code and earlier versions do not ground a file the agent never read.
It behaves as a rule, not a standalone program. Model invocation is disabled, so the skill never fires on its own. The check is blunt — a concrete value asserted with no session source and no uncertainty marker means the skill did not take effect.
What it helps with
- separate a verified fact about the codebase from a plausible guess
- avoid inventing a version number or config path
- pause before an irreversible operation that was never checked
- mark partial knowledge instead of flattening it into an assertion
- read the artifact first, answer second
Example prompts for the agent
- Use the competence check: where did you learn the parameter name in
config.yaml? - Before touching the schema, tell me what is grounded in this session and what is a guess
- Answer with an uncertainty marker and name the file you still need to read
How to install thinking-circle-of-competence
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-circle-of-competence -a claude-code2Manually: put the files in place
~/.claude/skills/thinking-circle-of-competence/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/thinking-circle-of-competence/
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-circle-of-competence -a codex2Manually: put the files in place
.agents/skills/thinking-circle-of-competence/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-circle-of-competence -a cursor2Manually: put the files in place
.cursor/skills/thinking-circle-of-competence/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install tjboudreaux/cc-thinking-skills thinking-circle-of-competence2Manually: put the files in place
.github/skills/thinking-circle-of-competence/SKILL.md1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-circle-of-competence -a gemini-cli2Platform CLI
gemini skills install https://github.com/tjboudreaux/cc-thinking-skills --path skills/thinking-circle-of-competenceManually: put the files in place
.devin/skills/thinking-circle-of-competence/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-circle-of-competence -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about thinking-circle-of-competence
How do I install thinking-circle-of-competence in Claude?
Run npx skills add tjboudreaux/cc-thinking-skills --skill thinking-circle-of-competence -a claude-code. The skill lands in ~/.claude/skills/thinking-circle-of-competence/SKILL.md.
What does thinking-circle-of-competence do?
It checks whether a claim has a source in the current session. Without one, the agent fetches, flags uncertainty, or abstains.
When should I skip it?
When you read or ran the relevant artifact this session, answer plainly. It also stays out of the way for labeled brainstorming and hypotheticals.
Source text
SKILL.md · MIT
--- name: thinking-circle-of-competence description: Use when a specific claim may lack grounding. Check evidence boundary, size wrongness cost, then answer, fetch, or abstain — never confabulate. disable-model-invocation: true --- # Circle of Competence Treat competence as an evidence boundary, not self-image. Answer only when grounded; otherwise fetch, mark uncertainty, or abstain. The failure mode is a fluent fabrication treated as fact. ## When to Use - About to assert a specific fact (API, path, number, config, version behavior) without a citable source from this session. - The claim is about this codebase or system and you have not read or run the relevant artifact. - Pattern reconstruction would sound complete but is unconfirmed. - Cost of a wrong confident answer is material (security, data, irreversible action, trust). ## When NOT to Use - Claim is grounded in something you read, ran, or can cite this session, or is stable universal knowledge — answer without false humility. - Error cost is trivial and reversible and you will flag the claim as unverified. - Grounding is one cheap fetch away — fetch first; abstention is not an excuse to skip a check. - User explicitly wants labeled brainstorming or hypotheticals. ## Procedure 1. **Name the claim.** Isolate the assertion that would be treated as fact. 2. **Classify the zone.** - *Grounded:* citeable session source (read/run) or stable non-version-specific knowledge. - *Partial:* general shape known; version/repo/config detail unconfirmed. - *Ungrounded:* would invent a concrete value with no source. 3. **Size wrongness cost.** If high-stakes (security, data loss, irreversible ops), treat Partial as Ungrounded until verified. 4. **Act by zone.** - Grounded → answer; cite when useful; do not hedge verified facts. - Partial → cheap fetch then answer; else answer only with explicit uncertainty and a check path. - Ungrounded → fetch if possible; else ask or abstain with what would enable an answer. Never invent. 5. **Refuse competence creep.** Adjacent code, prior versions, or general capability do not ground the unread target. 6. **Stop.** Emit answer, fetch request, or abstention. Do not round "probably" to a flat assertion. **Stop condition:** Claim answered with grounding, marked partial with a check path, or refused with missing-evidence note. ## Output ```text Claim: <assertion> Zone: grounded | partial | ungrounded Evidence: <source or none> Wrongness cost: low | medium | high Action: answer | fetch-then-answer | answer-with-uncertainty | abstain/ask Response: <wording or missing artifact> ``` ## Verification - Falsify if a specific value was asserted with no session source and no uncertainty marker. - Falsify if Partial/high-stakes was treated as Grounded, or a cheap fetch was skipped for abstention theater. - Over-application guard: do not hedge or refuse claims verified this session.
© tjboudreaux · MIT · tjboudreaux/cc-thinking-skills