Individual skill
thinking-partner
A deterministic thinking partner that challenges assumptions and applies mental models to sharpen decisions, solve problems, and think more clearly. Use this skill whenever a user says "help me think through X", "challenge my thinking", "what am I missing", "apply mental models to this", "play devil's advocate", "stress test this idea", "poke holes in my plan", "help me decide between X and Y", "what are the second-order effects", "I'm stuck on a decision", names any specific model (SWOT, first principles, inversion, pre-mortem, etc.), or asks for structured reasoning on any ambiguous, high-stakes, or complex problem. Also trigger when the user seems uncertain, is rationalizing, or is asking "am I thinking about this right?" Even casual phrases like "what do you think about..." on non-trivial topics should trigger this skill.
skills/thinking-partner/SKILL.md
Source commit ce95b6280660652d67bfc3fc36f8d7f941538f7f
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- Yes
- Skill scan complete
- Yes
- Observed behavior
- Instructions only
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
Claude Code
Destination .claude/skills/thinking-partner
(
set -euo pipefail
destination='./.claude/skills/thinking-partner'
if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi
work=$(mktemp -d)
trap 'rm -rf -- "$work"' EXIT
git clone --filter=blob:none --no-checkout -- 'https://github.com/mattnowdev/thinking-partner.git' "$work/repo"
git -C "$work/repo" checkout --detach ce95b6280660652d67bfc3fc36f8d7f941538f7f
git -C "$work/repo" archive --format=tar 'ce95b6280660652d67bfc3fc36f8d7f941538f7f:skills/thinking-partner' > "$work/skill.tar"
mkdir -p -- './.claude/skills'
mkdir -- "$destination"
tar -xf "$work/skill.tar" -C "$destination"
)Codex
Destination .agents/skills/thinking-partner
(
set -euo pipefail
destination='./.agents/skills/thinking-partner'
if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi
work=$(mktemp -d)
trap 'rm -rf -- "$work"' EXIT
git clone --filter=blob:none --no-checkout -- 'https://github.com/mattnowdev/thinking-partner.git' "$work/repo"
git -C "$work/repo" checkout --detach ce95b6280660652d67bfc3fc36f8d7f941538f7f
git -C "$work/repo" archive --format=tar 'ce95b6280660652d67bfc3fc36f8d7f941538f7f:skills/thinking-partner' > "$work/skill.tar"
mkdir -p -- './.agents/skills'
mkdir -- "$destination"
tar -xf "$work/skill.tar" -C "$destination"
)Cursor
Destination .cursor/skills/thinking-partner
(
set -euo pipefail
destination='./.cursor/skills/thinking-partner'
if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi
work=$(mktemp -d)
trap 'rm -rf -- "$work"' EXIT
git clone --filter=blob:none --no-checkout -- 'https://github.com/mattnowdev/thinking-partner.git' "$work/repo"
git -C "$work/repo" checkout --detach ce95b6280660652d67bfc3fc36f8d7f941538f7f
git -C "$work/repo" archive --format=tar 'ce95b6280660652d67bfc3fc36f8d7f941538f7f:skills/thinking-partner' > "$work/skill.tar"
mkdir -p -- './.cursor/skills'
mkdir -- "$destination"
tar -xf "$work/skill.tar" -C "$destination"
)Gemini CLI
Destination .gemini/skills/thinking-partner
(
set -euo pipefail
destination='./.gemini/skills/thinking-partner'
if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi
work=$(mktemp -d)
trap 'rm -rf -- "$work"' EXIT
git clone --filter=blob:none --no-checkout -- 'https://github.com/mattnowdev/thinking-partner.git' "$work/repo"
git -C "$work/repo" checkout --detach ce95b6280660652d67bfc3fc36f8d7f941538f7f
git -C "$work/repo" archive --format=tar 'ce95b6280660652d67bfc3fc36f8d7f941538f7f:skills/thinking-partner' > "$work/skill.tar"
mkdir -p -- './.gemini/skills'
mkdir -- "$destination"
tar -xf "$work/skill.tar" -C "$destination"
)GitHub Copilot
Destination .github/skills/thinking-partner
(
set -euo pipefail
destination='./.github/skills/thinking-partner'
if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi
work=$(mktemp -d)
trap 'rm -rf -- "$work"' EXIT
git clone --filter=blob:none --no-checkout -- 'https://github.com/mattnowdev/thinking-partner.git' "$work/repo"
git -C "$work/repo" checkout --detach ce95b6280660652d67bfc3fc36f8d7f941538f7f
git -C "$work/repo" archive --format=tar 'ce95b6280660652d67bfc3fc36f8d7f941538f7f:skills/thinking-partner' > "$work/skill.tar"
mkdir -p -- './.github/skills'
mkdir -- "$destination"
tar -xf "$work/skill.tar" -C "$destination"
)OpenCode
Destination .opencode/skills/thinking-partner
(
set -euo pipefail
destination='./.opencode/skills/thinking-partner'
if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi
work=$(mktemp -d)
trap 'rm -rf -- "$work"' EXIT
git clone --filter=blob:none --no-checkout -- 'https://github.com/mattnowdev/thinking-partner.git' "$work/repo"
git -C "$work/repo" checkout --detach ce95b6280660652d67bfc3fc36f8d7f941538f7f
git -C "$work/repo" archive --format=tar 'ce95b6280660652d67bfc3fc36f8d7f941538f7f:skills/thinking-partner' > "$work/skill.tar"
mkdir -p -- './.opencode/skills'
mkdir -- "$destination"
tar -xf "$work/skill.tar" -C "$destination"
)Repository context
- Repository stars (not skill ratings)
- 227
- Repository last updated
- Mar 31, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- agent-skills Repository topic
- claude-code Repository topic
- critical-thinking Repository topic
- cursor Repository topic
- decision-making Repository topic
- mental-models Repository topic
- thinking Repository topic
- testing Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 17,512 bytesreferences/model-catalog.mddoc · 46,406 bytesreferences/thinking-diagnostics.mddoc · 11,776 bytes
Read excerpt
# Thinking Partner
A deterministic thinking partner that challenges assumptions and applies mental models to help users think better and clearer. Not a lecture — a sparring session.
## Core Philosophy
Good thinking is an active achievement, not a default state. The goal is not to tell the user what to think, but to sharpen *how* they think by:
1. **Challenging assumptions** — Surface hidden beliefs the user is treating as facts
2. **Applying mental models** — Select and deploy the right thinking frameworks for the situation
3. **Detecting orientation capture** — Notice when thinking serves comfort instead of truth
4. **Maintaining productive tension** — Hold complexity open long enough to find real insight
You are not a yes-machine. You are not an interrogator. You are a thinking partner: respectful, direct, genuinely curious, and willing to push back.