sequential-thinking
Structure cognitive analysis using sequential reasoning chains. Use for codebase analysis, pattern extraction, complex problem decomposition, and building mental models before implementation.
- License 许可
- MIT
- 最近更新
- 2026-05-28
- Stars
- ★ 2
- Forks
- 3
01 前言 Front Matter
- name
- sequential-thinking
- description
- Structure cognitive analysis using sequential reasoning chains. Use for codebase analysis, pattern extraction, complex problem decomposition, and building mental models before implementation.
- compatibility
- claude-code
03 SKILL.md 正文
Note: Converted from Claude Skill.
Sequential Thinking
Progressive disclosure framework for structured cognition and codebase analysis.
Core Principles
- Question-First: Define what you need to understand before using tools
- Reasoning Chains: Each thought explicitly depends on previous thoughts
- Cognitive Branches: Separate thinking tracks for different aspects
- Synthesis Before Action: Complete understanding before extraction
When to Use
- Analyzing new codebases
- Extracting reusable patterns
- Complex problem decomposition
- Building mental models
- Understanding domain-specific architectures
All 12 tools via mcporter
| Tool | Required params | Purpose |
|---|---|---|
start_session |
problem, success_criteria |
Begin a new thinking session |
add_thought |
content |
Add a thought to the current session |
create_branch |
name, from_thought, purpose |
Fork reasoning into a parallel track |
merge_branch |
branch_id |
Merge a branch back into main reasoning |
store_memory |
content |
Store a reusable insight |
query_memories |
(none) | Search memories by tags or content |
record_decision |
decision_title, context, options_considered, chosen_option, rationale, consequences |
Capture architecture decisions |
explore_packages |
task_description |
Find relevant installed packages |
export_session |
filename |
Export session or memories to file |
list_sessions |
(none) | List all saved sessions |
load_session |
session_id |
Resume a specific session |
analyze_session |
(none) | Get stats summary of current session |
Process
Phase 1: Problem Decomposition
# Check if session already loaded (server auto-loads last session on startup)
mcporter call sequential-thinking.analyze_session()
# If no active session, start one
mcporter call sequential-thinking.start_session(
problem: "What fundamental questions must I answer?",
success_criteria: "Clear understanding of core questions",
session_type: "general"
)
Phase 2: Structured Discovery
# Add initial thought — returns thought_id needed for branching
mcporter call sequential-thinking.add_thought(
content: "FIRST PRINCIPLE: What is this fundamentally?",
confidence: 0.9
)
# → save the returned thought_id
# Fork into parallel reasoning tracks
mcporter call sequential-thinking.create_branch(
name: "conceptual-analysis",
from_thought: "<thought_id from above>",
purpose: "Understand concepts separate from implementation"
)
# → save the returned branch_id
mcporter call sequential-thinking.add_thought(
content: "Pattern criteria: Generic, clear interfaces, domain-independent",
branch_id: "<branch_id from above>"
)
Phase 3: Synthesis
mcporter call sequential-thinking.merge_branch(
branch_id: "<branch_id>",
target_thought: ""
)
Phase 4: Pattern Extraction
mcporter call sequential-thinking.query_memories(
tags: "domain-specific,architectural-patterns",
content_contains: "core-concept"
)
mcporter call sequential-thinking.store_memory(
content: "Brief description of the pattern",
code_snippet: "pure code without comments",
language: "python",
tags: "pattern,category"
)
Full mcporter call reference
start_session
mcporter call sequential-thinking.start_session(
problem: "what to solve",
success_criteria: "how to know it is done",
session_type: "general" # or "coding" — triggers explore_packages automatically
)
Returns: session_id
add_thought
mcporter call sequential-thinking.add_thought(
content: "reasoning step",
branch_id: "<id>", # optional — omit for main thread
confidence: 0.8 # optional
)
Returns: thought_id — save this when you need to branch from it
create_branch
mcporter call sequential-thinking.create_branch(
name: "branch-name",
from_thought: "<thought_id>", # required — must be non-empty string
purpose: "why this branch exists"
)
Returns: branch_id
merge_branch
mcporter call sequential-thinking.merge_branch(
branch_id: "<branch_id>",
target_thought: "" # optional — leave empty to merge into latest
)
Returns: branch_id, target_thought, status: "merged"
store_memory
mcporter call sequential-thinking.store_memory(
content: "what to remember",
code_snippet: "pure code", # optional
language: "python", # optional
tags: "tag1,tag2" # optional — comma-separated
)
Returns: memory_id
query_memories
mcporter call sequential-thinking.query_memories(
tags: "tag1,tag2", # OR search; use & for AND: "tag1&tag2"
content_contains: "/regex/" # optional — wrap in // for regex
)
Returns: memories[], count, search_tips when empty
record_decision
mcporter call sequential-thinking.record_decision(
decision_title: "What we decided",
context: "why this decision was needed",
options_considered: "option A vs option B",
chosen_option: "option A",
rationale: "because...",
consequences: "this means..."
)
Returns: decision_id
explore_packages
mcporter call sequential-thinking.explore_packages(
task_description: "what I am trying to do",
language: "python" # optional, default python
)
Returns: packages[], count
export_session
mcporter call sequential-thinking.export_session(
filename: "output.md",
format: "markdown", # or "json"
export_type: "session" # or "memories"
)
list_sessions / load_session
mcporter call sequential-thinking.list_sessions()
mcporter call sequential-thinking.load_session(session_id: "<id>")
analyze_session
mcporter call sequential-thinking.analyze_session()
Returns stats or {"error": ...} if no active session — use this before start_session
Runtime Behaviors
| Behavior | When | Effect |
|---|---|---|
| Auto-load last session | MCP server starts | current_session already set — check with analyze_session first |
Auto-trigger explore_packages |
start_session with session_type="coding" |
Scans installed packages; suppress with package_exploration_required: false |
query_memories returns [] |
No active session | Silent empty — not an error |
add_thought with explore_packages: true |
On general session |
Does nothing — only activates for coding sessions |
dependencies param in add_thought |
Non-empty string | Broken — stored incorrectly, avoid using |
Storage
memory-bank/
├── sessions/ # session .md files
├── memories/ # standalone memory .md files
└── patterns/ # pure code only (no comments, no docstrings)
Workflow Examples
Codebase Analysis
mcporter call sequential-thinking.start_session(
problem: "Fundamental concepts in this codebase?",
success_criteria: "Mental model of structure and reusable elements",
session_type: "general"
)
mcporter call sequential-thinking.add_thought(content: "Initial observation about structure")
# save returned thought_id as t1
mcporter call sequential-thinking.create_branch(name: "architecture", from_thought: "<t1>", purpose: "Structural patterns")
mcporter call sequential-thinking.create_branch(name: "data-flow", from_thought: "<t1>", purpose: "Information flow")
mcporter call sequential-thinking.merge_branch(branch_id: "<arch-id>")
mcporter call sequential-thinking.merge_branch(branch_id: "<flow-id>")
Architecture Decision
mcporter call sequential-thinking.record_decision(
decision_title: "Storage format choice",
context: "Need persistent session storage",
options_considered: "JSON vs Markdown",
chosen_option: "Markdown",
rationale: "Human-readable, diffable, no parser needed",
consequences: "Regex parsing required for reload"
)
Anti-Patterns
- Calling
start_sessionwithout checkinganalyze_sessionfirst — may create duplicate session - Passing empty string to
from_thoughtincreate_branch— raises ValidationError - Using
dependenciesparam inadd_thought— broken for non-empty values - Tool-first thinking — define what to understand before calling tools
- Comments or docstrings in stored code patterns
Key Insight
Sequential thinking is NOT about organizing tools — it is about structuring COGNITION. Tools serve your thinking process, not replace it.
04 同仓库更多 Skills
xia
Borrow and adapt patterns from GitHub projects into the current codebase using a structured 6-phase protocol. Invoke with /xia <github-repo> [focus].
x2md
Convert an X (Twitter) post URL to markdown. Use when user wants to read, summarize, archive, or analyze a tweet or X post.
rlm-workflow
暂无简介
repomix
Pack local or remote repos into a single context blob for whole-repository understanding. Use before tasks spanning multiple directories, architecture reviews, or onboarding to an unfamiliar codebase.
reddit2md
Convert a Reddit post URL to markdown. Use when user wants to read, summarize, archive, or analyze a Reddit post.
playwright
Browser automation via Playwright MCP through mcporter. Use when you need to navigate pages, extract data, take screenshots, interact with UI elements, or scrape web content. All tools called via mcporter to avoid context pollution.