home / skills / zpankz / mcp-skillset / reason

reason skill

/reason

This skill helps you reason recursively to reveal emergent complexity and produce structured conclusions across problems.

npx playbooks add skill zpankz/mcp-skillset --skill reason

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
5.5 KB
---
name: reason
description: "Understand through recursive decomposition and modular reconstruction
  of simple operations to reproduce emergent complexity. Use this skill whenever
  reasoning is required. Framework for [[#parse|parsing]], [[#branch|branching]],
  [[#reduce|reducing]], [[#ground|grounding]] and [[#emit|emitting]]. Employs
  metacognitive reasoning epistemology, leveraging first principles through
  recursive decomposition[^1]. Self-referential and scale-invariant."
---
# reason

## structure

```mermaid
graph LR
    A[parse] --> B[branch]
    B --> C[reduce]
    C --> D[ground]
    D --> E[emit]

    style A fill:#e1f5ff
    style B fill:#fff4e1
    style C fill:#ffe1f5
    style D fill:#e1ffe1
    style E fill:#f5e1ff
```

[[#parse]] → [[#branch]] → [[#reduce]] → [[#ground]] → [[#emit]] ^structure

---

## parse

1. receive `input` ^input
2. extract[^2]:
   - #component/parameter — what varies ^parameters
   - #component/constant — what is fixed ^constants
   - #component/operation — what transforms ^operations
   - #component/unknown — what is sought^unknowns
3. A question is a function awaiting its arguments[^3].
   Identify what arguments it needs. ^function-analogy

---

## branch

Generate multiple resolution paths before committing[^4]:

| Path Type | Tag | Purpose | Anchor |
|-----------|-----|---------|--------|
| Typical | #path/typical | The conventional approach | ^path-typical |
| Alternative | #path/alternative | A valid but less obvious route | ^path-alternative |
| Boundary | #path/boundary | The edge case or inversion | ^path-boundary |

Assign rough likelihood. Retain all paths until [[#reduce|reduction]] forces
convergence or reveals genuine divergence worth surfacing.

>[!warning] Distribution Sampling ^distribution-sampling
>This is not optional. Single-path reasoning collapses to the mode.
>The goal is to sample from the full distribution of valid approaches.

---

## reduce

Transform step by step[^5]. Each step follows the primitive: ^transformation-primitive

$$\text{input} \xrightarrow{\text{operation}} \text{output}$$

>[!caution] Skip Nothing ^skip-nothing
>An obvious step is still a step.
>A hidden step is where errors hide.

### five primitive operations

| Operation | Tag | Definition | Anchor |
|-----------|-----|------------|--------|
| `select` | #primitive/select | condition → one of two branches | ^op-select |
| `sequence` | #primitive/sequence | output of one feeds [[SKILL#^input\|input]] of next | ^op-sequence |
| `iterate` | #primitive/iterate | apply operation n times | ^op-iterate |
| `recurse` | #primitive/recurse | define in terms of self, with base case | ^op-recurse |
| `search` | #primitive/search | find first element satisfying constraint | ^op-search |

Name which [[SKILL#five primitive operations|primitive]] you are applying.

Substitution is explicit:

> Given X, applying rule R yields X transformed by R

Never say "therefore" without showing the step that licenses it. ^explicit-substitution

---

## ground

Before [[#emit|emitting]], verify:

- [ ] Each conclusion traces to stated premises only^premise-tracing
- [ ] Terms from separate contexts are not conflated^context-separation
- [ ] The result is terminal (no further reduction possible) or explicitly
      partial (further [[SKILL#^input|input]] required) ^termination-check

### convergence logic

| State | Tag | Meaning | Anchor |
|-------|-----|---------|--------|
| Converged | #state/converged | confidence is high | ^state-converged |
| Diverged | #state/diverged | present the divergence—it is the answer | ^state-diverged |
| Continuing | #state/continuing | [[#reduce\|reduction]] could continue | ^state-continuing |
| Blocked | #state/blocked | state what is missing | ^state-blocked |

---

## emit

Output the synthesis.

| Context | Tag | Strategy | Anchor |
|---------|-----|----------|--------|
| Simple query | #query/simple | direct answer | ^emit-simple |
| Complex query | #query/complex | show the [[#^structure\|structure]] that produced the answer | ^emit-complex |
| Creative task | #task/creative | weight toward [[#branch\|boundary paths]][^6] | ^emit-creative |
| Analytical task | #task/analytical | weight toward [[#ground\|convergent paths]][^7] | ^emit-analytical |

>[!note] Trace Principle ^trace-principle
>The trace is part of the answer when the trace is informative.
>The trace is omitted when it would obscure.

---

[^1]: Recursive decomposition breaks complex problems into self-similar subproblems until base cases are reached.
[^2]: Component extraction as defined in [[#parse|parse phase]] identifies [[SKILL#^parameters|parameters]], [[SKILL#^constants|constants]], [[SKILL#^operations|operations]], and [[SKILL#^unknowns|unknowns]].
[^3]: See [[SKILL#^function-analogy|function analogy]] for the functional interpretation of queries.
[^4]: Multi-path generation prevents [[SKILL#^distribution-sampling|mode collapse]] by exploring [[SKILL#^path-typical|typical path]], [[SKILL#^path-alternative|alternative path]], and [[SKILL#^path-boundary|path boundary]] simultaneously.
[^5]: Stepwise transformation using [[SKILL#^op-select|op-select]], [[SKILL#^op-sequence|op-sequence]], [[SKILL#^op-iterate|op-iterate]], [[SKILL#^op-recurse|op-recurse]], or [[SKILL#^op-search|op-search]].
[^6]: Boundary paths (see [[SKILL#^path-boundary|path-boundary]]) explore inversions and edge cases suitable for creative divergence.
[^7]: Convergent paths (see [[SKILL#^state-converged|state-converged]]) prioritize analytical rigor through [[SKILL#^premise-tracing|premise-tracing]] and [[SKILL#^context-separation|context-separation]].

Overview

This skill applies recursive decomposition and modular reconstruction to reproduce emergent complexity from simple operations. It provides a disciplined pipeline—parse, branch, reduce, ground, emit—for reliable, metacognitive reasoning. Use it whenever structured, traceable, and multi-path reasoning is required.

How this skill works

It first parses the input into components: parameters, constants, operations, and unknowns. It then generates multiple resolution paths (typical, alternative, boundary) and assigns rough likelihoods. Reduction proceeds stepwise using five primitive operations (select, sequence, iterate, recurse, search) with explicit substitutions. Before output, conclusions are grounded by tracing premises, checking context separation, and verifying termination. The emit stage returns a synthesis with a trace when informative.

When to use it

  • Solving multi-step analytical problems that require explicit step tracking
  • Designing algorithms or decomposing specifications into subproblems
  • Diagnosing failures where multiple plausible explanations exist
  • Producing explainable answers that must include reasoning traces
  • Creative tasks where edge-case or inversion thinking is valuable

Best practices

  • Always extract components (parameters, constants, operations, unknowns) up front
  • Generate multiple paths before committing to one to avoid mode collapse
  • Label which primitive operation you apply at each reduction step
  • Show explicit substitutions for every inference that leads to a conclusion
  • Ground the result: trace premises, keep contexts separate, and state termination status

Example use cases

  • Break down a natural language question into function-like arguments and compute them stepwise
  • Compare typical and boundary solutions for a debugging problem to reveal hidden failure modes
  • Design a recursive algorithm with explicit base cases and stepwise transformations
  • Provide an explainable chain-of-thought where each step names the primitive used
  • Produce a multi-path tradeoff analysis that surfaces divergences as part of the answer

FAQ

How many paths should I generate in branching?

At minimum generate a typical, an alternative, and a boundary path. Add more only when they represent distinct, plausible approaches.

When should the trace be omitted from the output?

Omit the trace only when it obscures the result. For simple queries give a direct answer; for complex or analytical tasks include the trace.