Goal: Understand and use the framework in under 5 minutes.
- What thinking tools are and why they matter
- How to use existing thinking tools
- How to create your own thinking tool
- How the framework integrates with AI assistants
Thinking tools = Structured prompts that make reasoning explicit
Instead of asking: "Review this code"
Use a thinking tool: code_review_checklist with explicit criteria for:
- Code quality
- Security
- Performance
- Five Cornerstones compliance
Key Insight: Explicit structure → Better consistency + Higher quality
File: examples/review/code_review_checklist.yml
Parameters:
review_type: self | peer | pre_commit | architecturelanguage: python | javascript | go | rust | etc.change_description: What changed
Output: Comprehensive checklist covering:
- Correctness, readability, maintainability
- Security vulnerabilities
- Performance considerations
- Five Cornerstones compliance
- Language-specific concerns
When to use: Before committing code, during PR reviews, architecture changes
File: examples/handoff/session_handover.yml
Purpose: Preserve complete context for next AI session (zero information loss)
Parameters:
completeness: minimal | standard | comprehensivereason: session_end | context_limit | checkpoint | blocked
Output: Structured handover document with:
- What was accomplished
- What's in progress
- Blockers and decisions
- Context and priorities
- Resume strategies
When to use: End of work session, before context window limit, when switching tasks
Metacognition (examples/metacognition/)
- Thinking about thinking
- Surface assumptions, verbalize reasoning
- Tools: think_aloud, assumption_check, fresh_eyes_exercise
Review (examples/review/)
- Systematic quality assessment
- Code and architecture evaluation
- Tools: code_review_checklist, architecture_review
Handoff (examples/handoff/)
- Context preservation
- AI session continuity
- Tools: session_handover, context_preservation
Debugging (examples/debugging/)
- Root cause analysis
- Error investigation
- Tools: five_whys, error_analysis
Step 1: Copy a template (use think_aloud.yml as base)
Step 2: Modify metadata
metadata:
name: "my_analysis"
display_name: "My Analysis Tool"
description: "Helps me analyze X"
category: "metacognition"Step 3: Define parameters
parameters:
type: "object"
properties:
depth:
type: "string"
enum: ["quick", "detailed"]
default: "quick"Step 4: Write template (Jinja2 + Markdown)
template:
source: |
# My Analysis - {{ depth|upper }}
{% if depth == 'quick' %}
## Quick Check
- Key question: [What to analyze]
- Answer: [Analysis result]
{% else %}
## Detailed Analysis
[More comprehensive structure]
{% endif %}Step 5: Validate
bash scripts/validate.sh examples/metacognition/The framework integrates as an MCP server:
- Zero Serena modifications - Install independently
- Auto-discovery - Tools found automatically in
examples/ - Hot-reload - Edit tools, changes apply immediately
- Standard interface - Same MCP protocol as other tools
from cogito.orchestration import ToolRegistry
from cogito.processing import TemplateRenderer
# Load tool
registry = ToolRegistry()
tool = registry.get_tool("code_review_checklist")
# Render with parameters
renderer = TemplateRenderer()
result = renderer.render(tool, {
"review_type": "self",
"language": "python",
"change_description": "Added input validation"
})
print(result)Every tool embodies these principles:
- Configurability - Parameters, not hardcoded values
- Modularity - Single responsibility, composable
- Extensibility - Plugin architecture
- Integration - Standard protocols (MCP)
- Automation - Auto-discovery, validation
Machine-readable formats (YAML, JSON)
- Self-documenting (metadata, examples)
- Context preservation (process memory)
- No hidden state (explicit parameters) = Effective AI-human collaboration
52 entries documenting design decisions, lessons learned, assumptions.
- Why this matters: New AI instances can establish context in <5 minutes
- Where to find:
.bootstrap/session_context.md - How to use: Read at session start for framework understanding
- Read examples - Best way to learn patterns
- Check specs -
docs/specs/for complete technical detail - Explore process memory -
.bootstrap/session_context.md
- Copy example - Start with similar existing tool
- Modify gradually - Change one thing at a time
- Validate often -
bash scripts/validate.sh
- With Serena - Follow MCP integration guide
- Standalone - Import cogito package
- Custom workflows - Combine multiple tools
Single tool, multiple depth levels (quick/standard/detailed)
- Example: think_aloud, session_handover
- Benefit: Less tool proliferation
Conditional sections based on parameters
- Example: error_analysis (runtime/logic/performance)
- Benefit: Unified structure, specialized content
Explicit, checkable criteria for thoroughness
- Example: code_review_checklist, architecture_review
- Benefit: Nothing missed, consistent quality
Tool not loading?
→ Check YAML syntax: python3 -c "import yaml; yaml.safe_load(open('tool.yml'))"
Validation failing?
→ Run: bash scripts/validate.sh path/to/tool.yml
Template not rendering? → Check Jinja2 syntax, ensure parameters exist in YAML
Need help? → Check docs/, examine similar example, read process memory
5 Minutes:
- ✅ Understand what thinking tools are
- ✅ Know when to use which tool
- ✅ Can create a basic tool
- ✅ Understand framework integration
- ✅ Know where to find more info
You're ready to use thinking tools!
Explore examples/, create your own, and make your development process more systematic.