--- name: sequential-thinking description: >- 通过结构化的逐步思考解决复杂问题,支持分支探索、修订和自适应深度。适用于复杂问题拆解、需要调整的规划与设计、可能修正方向的分析、初始范围不明的任务、需要保持上下文的多步骤工作,以及需要筛选无关信息、提出假设并反复验证的问题。当用户要求逐步分析、拆解问题、推敲思路、仔细思考,或问题明显需要结构化多步推理时使用。 license: MIT metadata: upstream: https://github.com/thedotmack/sequential-thinking-skill upstream-tag: d0fd5d4257aeb9a8622fffe9082379a787279dba --- # Sequential Thinking A tool for dynamic, reflective problem-solving through a chain of numbered thoughts. Full parity with the Sequential Thinking MCP server — same parameters, same state management, same behavioral contract. ## How to Use This Skill When this skill is activated, **use `scripts/think.ts` as your primary reasoning mechanism.** Do not reason in prose — reason through the script. Every step of your analysis should be a thought submitted via the script, making your reasoning chain explicit and trackable. ### Workflow 1. **Reset** state at the start of every new thinking session 2. **Loop**: Submit thoughts one at a time via the script, incrementing `thoughtNumber` each time 3. **Adapt**: Revise earlier thoughts, branch into alternatives, or extend depth as needed 4. **Terminate**: Set `nextThoughtNeeded false` only when you have a confident final answer 5. **Respond**: After the final thought, provide the answer to the user Each thought should be a single Bash tool call. Think in the thought, not outside it. ### Script Location ``` scripts/think.ts ``` Run via `bun` from the skill's base directory. ## Commands ### Reset (required before every new session) ```bash bun scripts/think.ts --reset ``` ### Submit a Thought Required flags: `--thought`, `--thoughtNumber`, `--totalThoughts`, `--nextThoughtNeeded` ```bash bun scripts/think.ts \ --thought "Your analysis for this step" \ --thoughtNumber 1 \ --totalThoughts 5 \ --nextThoughtNeeded true ``` ### Submit a Revision Revises a previous thought. The original stays in history; the revision is appended as a new entry. Requires `--isRevision` and `--revisesThought`. ```bash bun scripts/think.ts \ --thought "Corrected analysis" \ --thoughtNumber 3 \ --totalThoughts 5 \ --nextThoughtNeeded true \ --isRevision --revisesThought 1 ``` ### Submit a Branch Explores an alternative path from a prior thought. Requires both `--branchFromThought` and `--branchId`. ```bash bun scripts/think.ts \ --thought "Alternative approach" \ --thoughtNumber 4 \ --totalThoughts 7 \ --nextThoughtNeeded true \ --branchFromThought 2 --branchId alt-approach ``` ### Extend Depth Signal that more thoughts are needed beyond the original estimate. ```bash bun scripts/think.ts \ --thought "Scope is larger than expected" \ --thoughtNumber 6 \ --totalThoughts 8 \ --nextThoughtNeeded true \ --needsMoreThoughts ``` ### Inspect Full State ```bash bun scripts/think.ts --status ``` Returns JSON with `fullHistory` and `branchDetails`. ## Output Format Each thought invocation prints the thought to stderr and a compact status line to stdout: ``` 💭 Thought 3/7 The analysis shows that... [3/7] history=3 next=true ``` Revision and branch thoughts use `🔄 Revision` and `🌿 Branch` headers respectively. ## Parameters (Full MCP Parity) | Parameter | Type | Required | Description | |---|---|---|---| | `--thought` | string | yes | The content of this thinking step | | `--thoughtNumber` | int >= 1 | yes | Current thought number in the sequence | | `--totalThoughts` | int >= 1 | yes | Estimated total thoughts needed (adjustable) | | `--nextThoughtNeeded` | bool | yes | `true` to continue, `false` to terminate | | `--isRevision` | flag | no | Marks this thought as revising a previous one | | `--revisesThought` | int >= 1 | no | Which thought number is being revised (required with `--isRevision`) | | `--branchFromThought` | int >= 1 | no | Create a branch starting from this thought number | | `--branchId` | string | no | Label for the branch (required with `--branchFromThought`) | | `--needsMoreThoughts` | flag | no | Signal that `totalThoughts` should be expanded | ## Behavioral Rules These match the MCP server's tool description exactly: 1. **Start** with an initial estimate of `totalThoughts`, but adjust freely as understanding deepens 2. **Auto-adjust**: If `thoughtNumber` exceeds `totalThoughts`, the script raises `totalThoughts` to match 3. **Revise** previous thoughts when you realize an earlier step was wrong or incomplete — set `--isRevision` and `--revisesThought N`. The original stays in history; the revision is appended 4. **Branch** to explore alternative reasoning paths — set both `--branchFromThought N` and `--branchId label`. This does not abandon the main line 5. **Extend** beyond the initial estimate at any time with `--needsMoreThoughts` and an increased `--totalThoughts` 6. **Express uncertainty** — not every thought needs confidence. Questioning and exploring is encouraged 7. **Filter noise** — ignore information irrelevant to the current step 8. **Generate hypotheses** when you have enough evidence, then verify them against prior thoughts in the chain 9. **Iterate** hypothesis-verification cycles until satisfied with the answer 10. **Terminate** only when you have a satisfactory answer — set `--nextThoughtNeeded false` 11. **Non-linear paths are first-class** — branching, backtracking, and revision are features, not failures ## State Management - State is persisted to `scripts/.think_state.json` between invocations - `thoughtHistory[]` is append-only — thoughts are never deleted - `branches{}` maps branch IDs to their thought arrays - `--reset` clears all state for a fresh session - `--status` dumps the full state as JSON for inspection ## Example Session See [references/example-session.md](references/example-session.md) for a complete worked example demonstrating normal thoughts, revisions, branches, and dynamic depth adjustment.