danielmiessler

thealgorithm

@danielmiessler/thealgorithm
danielmiessler
5,085
813 forks
Updated 1/18/2026
View on GitHub

THEALGORITHM: Universal execution engine using scientific method to achieve ideal state. USE WHEN complex tasks, multi-step work, "run the algorithm", "use the algorithm", OR any non-trivial request that benefits from structured execution with ISC (Ideal State Criteria) tracking.

Installation

$skills install @danielmiessler/thealgorithm
Claude Code
Cursor
Copilot
Codex
Antigravity

Details

PathPacks/pai-algorithm-skill/src/skills/THEALGORITHM/SKILL.md
Branchmain
Scoped Name@danielmiessler/thealgorithm

Usage

After installing, this skill will be available to your AI coding assistant.

Verify installation:

skills list

Skill Instructions


name: THEALGORITHM description: Universal execution engine using scientific method to achieve ideal state. USE WHEN complex tasks, multi-step work, "run the algorithm", "use the algorithm", OR any non-trivial request that benefits from structured execution with ISC (Ideal State Criteria) tracking.

Customization

Before executing, check for user customizations at: ~/.claude/skills/CORE/USER/SKILLCUSTOMIZATIONS/THEALGORITHM/

If this directory exists, load and apply any PREFERENCES.md, configurations, or resources found there. These override default behavior. If the directory does not exist, proceed with skill defaults.

THE ALGORITHM - Universal Execution Engine

PURPOSE: Produce euphoric, highly surprising, exceptional results that solve the problem better than expected.

PHILOSOPHY: Move from current state to ideal state using the scientific method. The ISC (Ideal State Criteria) captures what "ideal" looks like, which we execute against, verify against, and iterate against until achieved.

CORE PRINCIPLE: Effort classification determines which capabilities are available. Higher effort unlocks more powerful tools.


Core Mission

The goal of The Algorithmβ€”and indeed of the PAI system overallβ€”is to create Euphoric Surprise at its ability to perform every task in service of helping its principal become the best version of themselves.

This is the north star. Every capability, every phase, every ISC row exists to serve this mission. When the system works correctly, the principal should be genuinely surprised and delighted by how thoroughly, thoughtfully, and effectively their request was fulfilledβ€”not just "done" but done in a way that exceeds expectations and moves them closer to their ideal self.


Visual Display & Voice Notifications

Use the LCARS-style AlgorithmDisplay for visual feedback and voice announcements:

# Start algorithm with effort level (shows banner + announces via voice)
bun run ~/.claude/skills/THEALGORITHM/Tools/AlgorithmDisplay.ts start THOROUGH -r "your request"

# Transition phases (updates display + voice announcement)
bun run ~/.claude/skills/THEALGORITHM/Tools/AlgorithmDisplay.ts phase THINK
bun run ~/.claude/skills/THEALGORITHM/Tools/AlgorithmDisplay.ts phase EXECUTE

# Show current status anytime
bun run ~/.claude/skills/THEALGORITHM/Tools/AlgorithmDisplay.ts show

# Show just the effort banner
bun run ~/.claude/skills/THEALGORITHM/Tools/AlgorithmDisplay.ts effort DETERMINED

The display shows:

  • 🎯 Current effort level (TRIVIAL β†’ DETERMINED) with color-coded banner
  • πŸ“Š Phase progression bar (7 phases with completion status)
  • πŸ“ ISC summary (rows pending/active/done)
  • πŸ”Š Voice announcements when transitioning phases

Phase Icons: πŸ‘οΈ OBSERVE β†’ 🧠 THINK β†’ πŸ“‹ PLAN β†’ πŸ”¨ BUILD β†’ ⚑ EXECUTE β†’ βœ… VERIFY β†’ πŸ“š LEARN

Quick Start

# 1. START WITH VISUAL DISPLAY (shows banner + voice announcement)
bun run ~/.claude/skills/THEALGORITHM/Tools/AlgorithmDisplay.ts start STANDARD -r "your request"

# 2. CLASSIFY EFFORT (if not using display start)
bun run ~/.claude/skills/THEALGORITHM/Tools/EffortClassifier.ts --request "your request"
# Or with override: --override DETERMINED
# Or inline: "algorithm effort THOROUGH: your request"

# 3. LOAD CAPABILITIES for effort level
bun run ~/.claude/skills/THEALGORITHM/Tools/CapabilityLoader.ts --effort STANDARD

# 4. CREATE ISC
bun run ~/.claude/skills/THEALGORITHM/Tools/ISCManager.ts create --request "your request"

# 5. TRANSITION PHASES (voice + visual update)
bun run ~/.claude/skills/THEALGORITHM/Tools/AlgorithmDisplay.ts phase THINK
bun run ~/.claude/skills/THEALGORITHM/Tools/AlgorithmDisplay.ts phase PLAN
# ... continues through EXECUTE, VERIFY, LEARN

# 6. MANAGE ISC during EXECUTE
bun run ~/.claude/skills/THEALGORITHM/Tools/ISCManager.ts capability --row 1 -c research.perplexity
bun run ~/.claude/skills/THEALGORITHM/Tools/ISCManager.ts update --row 1 --status DONE
bun run ~/.claude/skills/THEALGORITHM/Tools/ISCManager.ts show

Effort β†’ Capability Matrix

Capabilities.yaml is the source of truth. See Data/Capabilities.yaml.

EffortModelsThinkingDebateResearchAgentsParallel
TRIVIALβ€”β€”β€”β€”β€”0
QUICKhaikuβ€”β€”β€”Intern1
STANDARDhaiku, sonnetdeep thinking, FirstPrinciplesβ€”1 agentEngineer, QA, Designer1-3
THOROUGHhaiku, sonnetAllCouncilparallelAll + Architect, Pentester3-5
DETERMINEDall + opusAllCouncil + RedTeamallunlimited10

ISC Scale (CRITICAL)

The ISC is NOT limited to a small number of rows. The ISC captures what "ideal" looks like, and for complex problems this can be massive:

ScaleWhenExamples
5-10 rowsQuick fixes, simple features"Fix typo", "Add button"
20-50 rowsStandard development work"Add dark mode", "Create API endpoint"
50-200 rowsComplex features, refactors"Redesign auth system", "Add new major feature"
200-1000+ rowsMajor projects, DETERMINED effort"Build entire system", "Security audit"

ISC rows come from:

  • EXPLICIT requirements - What user literally asked for
  • INFERRED requirements - From context (TECHSTACKPREFERENCES, past work, etc.)
  • IMPLICIT requirements - Security, quality, testing standards
  • Research findings - Best practices discovered via research agents
  • Anti-patterns - Things to AVOID discovered via research
  • Edge cases - Discovered through thinking/analysis
  • Verification criteria - How to confirm each requirement is met

The algorithm's capabilities EXPAND the ISC:

  • Research agents find best practices β†’ add ISC rows
  • Research agents find anti-patterns β†’ add "avoid X" ISC rows
  • Council debate surfaces edge cases β†’ add ISC rows
  • FirstPrinciples analysis reveals assumptions β†’ add ISC rows
  • Verification requirements β†’ add ISC rows for each testable criterion

Higher effort = larger, higher quality ISC. The DETERMINED level can have thousands of ISC rows because we use ALL capabilities to discover everything that "ideal" looks like.

The 7 Phases

Execute IN ORDER. Each phase mutates the ISC:

PhaseActionISC MutationGate Question
OBSERVEUnderstand request + user contextCREATE rowsDo I have 2+ rows? Used context to infer?
THINKEnsure nothing missingCOMPLETE rowsAll rows clear, testable?
PLANSequence + assign capabilitiesORDER rows + ASSIGN capabilitiesDependencies mapped? Capabilities assigned?
BUILDMake rows testableREFINE rowsEach row specific enough to verify?
EXECUTEDo the work (spawn agents per capability)ADVANCE statusEvery row has final status?
VERIFYTest each DONE row (skeptical agent)CONFIRM statusTested/confirmed each completion?
LEARNOutput for user to rateOUTPUT resultsUser rates for memory system

CRITICAL: The LEARN phase does NOT self-rate. User rates outputs for the memory system.

The ISC Table (FRONT AND CENTER)

Every non-trivial task has an ISC. Display this prominently throughout execution:

## 🎯 IDEAL STATE CRITERIA

**Request:** Add dark mode to the settings page
**Effort:** STANDARD | **Phase:** EXECUTE | **Iteration:** 1

| # | What Ideal Looks Like | Source | Capability | Status |
|---|----------------------|--------|------------|--------|
| 1 | Research good patterns | INFERRED | πŸ”¬ perplexity | ⏳ PENDING |
| 2 | Toggle component works | EXPLICIT | πŸ€– engineer | πŸ”„ ACTIVE |
| 3 | Theme state persists | EXPLICIT | πŸ€– engineerΓ— | ⏳ PENDING |
| 4 | Uses TypeScript | INFERRED | β€” | βœ… DONE |
| 5 | Tests pass | IMPLICIT | βœ… qa_tester | ⏳ PENDING |
| 6 | Browser-verified | IMPLICIT | βœ… browser | ⏳ PENDING |

**Legend:** πŸ”¬ Research | πŸ’‘ Thinking | πŸ—£οΈ Debate | πŸ” Analysis | πŸ€– Execution | βœ… Verify | Γ— Parallel

Source types:

  • EXPLICIT - User literally said this
  • INFERRED - Derived from user context (TECHSTACKPREFERENCES, etc.)
  • IMPLICIT - Universal standards (security, quality)

Status progression:

  • PENDING β†’ ACTIVE β†’ DONE
  • ADJUSTED - Modified with reason
  • BLOCKED - Cannot achieve, triggers loop-back

Execution Flow

Step 1: EFFORT CLASSIFICATION (REQUIRED FIRST)

bun run ~/.claude/skills/THEALGORITHM/Tools/EffortClassifier.ts --request "your request"

Override methods:

  • CLI flag: --override THOROUGH
  • Inline pattern: "algorithm effort DETERMINED: build this feature"

The effort level determines ALL available capabilities.

Step 2: CAPABILITY LOADING

bun run ~/.claude/skills/THEALGORITHM/Tools/CapabilityLoader.ts --effort STANDARD

Returns available: models, thinking modes, debate systems, research agents, execution agents, verification.

Step 3: ISC CREATION + CAPABILITY ASSIGNMENT

For each ISC row, select appropriate capability:

bun run ~/.claude/skills/THEALGORITHM/Tools/CapabilitySelector.ts --row "Research best practices" --effort STANDARD
# Returns: research.perplexity as primary, with icon πŸ”¬

bun run ~/.claude/skills/THEALGORITHM/Tools/ISCManager.ts capability --row 1 -c research.perplexity

Step 4: ORCHESTRATED EXECUTION

Execute in phases based on capability assignments:

PHASE A: RESEARCH (parallel for independent queries)
β”œβ”€ Row with πŸ”¬ research.perplexity β†’ Spawn PerplexityResearcher
β”œβ”€ Row with πŸ”¬ research.gemini β†’ Spawn GeminiResearcher
└─ Row with πŸ”¬ research.grok β†’ Spawn GrokResearcher

PHASE B: THINKING (for creative/analysis needs)
β”œβ”€ Row with πŸ’‘ thinking.deep thinking β†’ Invoke BeCreative skill
β”œβ”€ Row with πŸ” analysis.first_principles β†’ Invoke FirstPrinciples skill
└─ Row with πŸ—£οΈ debate.council β†’ Invoke Council skill

PHASE C: EXECUTION (parallel agents)
β”œβ”€ Row with πŸ€– execution.engineer β†’ Spawn Engineer agent
β”œβ”€ Row with πŸ€– execution.architect β†’ Spawn Architect agent (THOROUGH+)
└─ Rows marked Γ— β†’ Run in parallel

PHASE D: VERIFICATION (skeptical, different from executor)
β”œβ”€ Row with βœ… verification.browser β†’ Browser skill validation
└─ All rows β†’ Skeptical verifier agent (skeptical,meticulous,adversarial traits)

For TRIVIAL (skip algorithm):

Direct response, no ISC, no capability loading. Just answer.

Capability Categories

Models (compute resources)

  • models.haiku - Fast, cheap (QUICK+)
  • models.sonnet - Balanced reasoning (STANDARD+)
  • models.opus - Maximum intelligence (DETERMINED)

Thinking Modes

  • thinking.deep thinking - BeCreative skill for creative solutions (STANDARD+)
  • thinking.tree_of_thought - Branching exploration (THOROUGH+)
  • thinking.plan_mode - EnterPlanMode for complex implementations (THOROUGH+)

Debate Systems

  • debate.council - 4 agents, collaborative analysis (THOROUGH+)
  • debate.redteam - 32 agents, adversarial stress-testing (DETERMINED)

Analysis Modes

  • analysis.first_principles - Challenge assumptions (STANDARD+)
  • analysis.science - Hypothesis-driven exploration (STANDARD+)

Research Agents

  • research.perplexity - Web research, current events (STANDARD+)
  • research.gemini - Multi-perspective research (STANDARD+)
  • research.grok - Contrarian fact-checking (STANDARD+)
  • research.claude - Academic/scholarly sources (STANDARD+)
  • research.codex - Technical code pattern research (STANDARD+)

Execution Agents

  • execution.intern - Parallel grunt work (QUICK+)
  • execution.engineer - Implementation/coding (STANDARD+)
  • execution.qa_tester - Testing/validation (STANDARD+)
  • execution.designer - UX/UI design (STANDARD+)
  • execution.architect - System design (THOROUGH+)
  • execution.pentester - Security testing (THOROUGH+)

Verification

  • verification.browser - Web application validation (STANDARD+)
  • verification.skeptical_verifier - Different agent than executor (STANDARD+)

Iteration Loop

When VERIFY finds issues:

BLOCKED row
    β”‚
    β”œβ”€ Unclear what ideal looks like? β†’ Loop to THINK
    β”œβ”€ Wrong approach? β†’ Loop to PLAN
    └─ Execution error? β†’ Loop to EXECUTE

Iteration count bounded by effort level:
- QUICK: 1 iteration max
- STANDARD: 2 iterations
- THOROUGH: 3-5 iterations
- DETERMINED: Unlimited until success

Integration

Uses

  • Agents Skill - AgentFactory for dynamic agent composition
  • CORE Skill - User context for ISC inference
  • Browser Skill - Web verification in VERIFY phase
  • BeCreative Skill - deep thinking for THINK phase
  • Council Skill - Multi-perspective debate (THOROUGH+)
  • RedTeam Skill - Adversarial analysis (DETERMINED)
  • FirstPrinciples Skill - Assumption challenging
  • Research Skill - Multi-source research agents

Memory

  • ISC artifacts: MEMORY/Work/{session}/ISC.md
  • Learnings: MEMORY/Learning/ALGORITHM/
  • Patterns: MEMORY/Signals/algorithm-patterns.jsonl

Workflow Routing

TriggerAction
"run the algorithm"Full execution
"use the algorithm"Full execution
"algorithm effort LEVEL"Force effort level + full execution
Complex multi-step requestAuto-invoke if appropriate

Enhanced ISC Features

Verification Paired at Creation

CRITICAL: Every ISC row should have a verification method defined at creation, not after.

# Add row WITH verification (recommended)
bun run ISCManager.ts add -d "Toggle component works" -s EXPLICIT \
  --verify-method browser --verify-criteria "Toggle visible in settings"

Verification methods: browser, test, grep, api, lint, manual, agent, inferred

See Data/VerificationMethods.yaml for selection guidance.

Agent Claim System

Prevents race conditions when multiple agents work on ISC items.

# Claim an item
bun run ISCManager.ts claim --row 1 --agent Engineer

# Release when done
bun run ISCManager.ts release --row 1

# See what's available
bun run ISCManager.ts available

Claims expire after 30 minutes (stale detection).

Research Override System

Research findings can BLOCK user assumptions. User must acknowledge.

# Research agent finds issue
bun run ISCManager.ts research-block --row 2 \
  --reason "Best practice is X, not Y" --source research.perplexity

# User acknowledges
bun run ISCManager.ts acknowledge --row 2 --action OVERRIDE  # or ACCEPT

Nested Algorithm

Complex items spawn child ISAs.

# Mark item as nested
bun run ISCManager.ts nest --row 5

# Update child status
bun run ISCManager.ts child-status --row 5 --child-status COMPLETE

Interview Protocol

When ideal state is unclear, use structured questions.

bun run ISCManager.ts interview -r "vague request"

The 5 Questions:

  1. What does success look like when this is done?
  2. Who will use this and what will they do with it?
  3. What would make you show this to your friends?
  4. What existing thing is this most similar to?
  5. What should this definitely NOT do?

Files

FilePurpose
Data/Capabilities.yamlSource of truth for all capabilities
Data/VerificationMethods.yamlVerification method registry
Tools/AlgorithmDisplay.tsLCARS visual display + voice announcements
Tools/EffortClassifier.tsClassify TRIVIAL→DETERMINED
Tools/CapabilityLoader.tsLoad + filter capabilities by effort
Tools/CapabilitySelector.tsSelect capabilities for ISC rows
Tools/ISCManager.tsEnhanced: ISC with verification, claims, research, nesting
Tools/TraitModifiers.tsEffort β†’ trait mappings
Phases/*.mdDetailed phase documentation (Observe.md has interview protocol)
Reference/CapabilityMatrix.mdEffort β†’ capability documentation

The Purpose

Produce euphoric, highly surprising, exceptional results that solve the user's problem better than expected.

The ISC captures what "ideal" looks like. Effort determines available capabilities. Execute against it. Verify against it. Iterate until achieved.

This is not documentation. This is a command. Execute the algorithm.