super-human
AI-native software development lifecycle that replaces traditional SDLC. Triggers on "plan and build", "break this into tasks", "build this feature end-to-end", "sprint plan this", "super-human this", or any multi-step development task. Decomposes work into dependency-graphed sub-tasks, executes in parallel waves with TDD verification, and tracks progress on a persistent board. Handles features, refactors, greenfield projects, and migrations.
engineering sdlcplanningparallel-executiontddtask-managementworkflowWhat is super-human?
AI-native software development lifecycle that replaces traditional SDLC. Triggers on "plan and build", "break this into tasks", "build this feature end-to-end", "sprint plan this", "super-human this", or any multi-step development task. Decomposes work into dependency-graphed sub-tasks, executes in parallel waves with TDD verification, and tracks progress on a persistent board. Handles features, refactors, greenfield projects, and migrations.
super-human
super-human is a production-ready AI agent skill for claude-code, gemini-cli, openai-codex, and 1 more. AI-native software development lifecycle that replaces traditional SDLC.
Quick Facts
| Field | Value |
|---|---|
| Category | engineering |
| Version | 0.1.0 |
| Platforms | claude-code, gemini-cli, openai-codex, mcp |
| License | MIT |
How to Install
- Make sure you have Node.js installed on your machine.
- Run the following command in your terminal:
npx skills add AbsolutelySkilled/AbsolutelySkilled --skill super-human- The super-human skill is now available in your AI coding agent (Claude Code, Gemini CLI, OpenAI Codex, etc.).
Overview
Super-Human is a development lifecycle built from the ground up for AI agents. Traditional methods like Agile, Waterfall, and TDD were designed around human constraints - limited parallelism, context switching costs, communication overhead, and meetings. AI agents have none of these constraints. Super-Human exploits this by decomposing work into dependency-graphed sub-tasks, executing independent tasks in parallel waves, enforcing TDD verification at every step, and tracking everything on a persistent board that survives across sessions.
The model has 7 phases: INTAKE - DECOMPOSE - DISCOVER - PLAN - EXECUTE - VERIFY - CONVERGE.
Tags
sdlc planning parallel-execution tdd task-management workflow
Platforms
- claude-code
- gemini-cli
- openai-codex
- mcp
Related Skills
Pair super-human with these complementary skills:
Frequently Asked Questions
What is super-human?
AI-native software development lifecycle that replaces traditional SDLC. Triggers on "plan and build", "break this into tasks", "build this feature end-to-end", "sprint plan this", "super-human this", or any multi-step development task. Decomposes work into dependency-graphed sub-tasks, executes in parallel waves with TDD verification, and tracks progress on a persistent board. Handles features, refactors, greenfield projects, and migrations.
How do I install super-human?
Run npx skills add AbsolutelySkilled/AbsolutelySkilled --skill super-human in your terminal. The skill will be immediately available in your AI coding agent.
What AI agents support super-human?
This skill works with claude-code, gemini-cli, openai-codex, mcp. Install it once and use it across any supported AI coding agent.
Maintainers
Generated from AbsolutelySkilled
SKILL.md
Super-Human: AI-Native Development Lifecycle
Super-Human is a development lifecycle built from the ground up for AI agents. Traditional methods like Agile, Waterfall, and TDD were designed around human constraints - limited parallelism, context switching costs, communication overhead, and meetings. AI agents have none of these constraints. Super-Human exploits this by decomposing work into dependency-graphed sub-tasks, executing independent tasks in parallel waves, enforcing TDD verification at every step, and tracking everything on a persistent board that survives across sessions.
The model has 7 phases: INTAKE - DECOMPOSE - DISCOVER - PLAN - EXECUTE - VERIFY - CONVERGE.
Activation Banner
At the very start of every Super-Human invocation, before any other output, display this ASCII art banner:
███████╗██╗ ██╗██████╗ ███████╗██████╗ ██╗ ██╗██╗ ██╗███╗ ███╗ █████╗ ███╗ ██╗
██╔════╝██║ ██║██╔══██╗██╔════╝██╔══██╗██║ ██║██║ ██║████╗ ████║██╔══██╗████╗ ██║
███████╗██║ ██║██████╔╝█████╗ ██████╔╝███████║██║ ██║██╔████╔██║███████║██╔██╗ ██║
╚════██║██║ ██║██╔═══╝ ██╔══╝ ██╔══██╗██╔══██║██║ ██║██║╚██╔╝██║██╔══██║██║╚██╗██║
███████║╚██████╔╝██║ ███████╗██║ ██║██║ ██║╚██████╔╝██║ ╚═╝ ██║██║ ██║██║ ╚████║
╚══════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝This banner is mandatory. It signals to the user that Super-Human mode is active.
Activation Protocol
Immediately after displaying the banner, enter plan mode before doing anything else:
- On platforms with native plan mode (e.g., Claude Code's
EnterPlanMode, Gemini CLI's planning mode): invoke the native plan mode mechanism immediately. - On platforms without native plan mode: simulate plan mode by completing all planning phases (INTAKE through PLAN) in full before making any code changes. Present the complete plan to the user for explicit approval before proceeding to EXECUTE.
This ensures that every Super-Human invocation begins with structured thinking. The first four phases (INTAKE, DECOMPOSE, DISCOVER, PLAN) are inherently planning work - no files should be created or modified until the user has approved the plan and execution begins in Phase 5.
Session Resume Protocol
When Super-Human is invoked and a .super-human/board.md already exists in the project root:
- Detect: Read the existing board and determine its status (
in-progress,blocked,completed) - Display: Print a compact status summary showing completed/in-progress/blocked/remaining tasks
- Resume: Pick up from the last incomplete wave - do NOT restart from INTAKE
- Reconcile: If the codebase has changed since the last session (e.g., manual edits, other commits), run a quick diff check against the board's expected state and flag any conflicts before resuming
If the board is marked completed, ask the user whether to start a new Super-Human session (archive the old board to .super-human/archive/) or review the completed work.
Never blow away an existing board without explicit user confirmation.
Codebase Convention Detection
Before INTAKE begins, automatically detect the project's conventions by scanning for key files. This grounds all subsequent phases in reality rather than assumptions.
Auto-detect Checklist
| Signal | Files to Check |
|---|---|
| Package manager | package-lock.json (npm), yarn.lock (yarn), pnpm-lock.yaml (pnpm), bun.lockb (bun), Cargo.lock (cargo), go.sum (go) |
| Language/Runtime | tsconfig.json (TypeScript), pyproject.toml / setup.py (Python), go.mod (Go), Cargo.toml (Rust) |
| Test runner | jest.config.*, vitest.config.*, pytest.ini, .mocharc.*, test directory patterns |
| Linter/Formatter | .eslintrc.*, eslint.config.*, .prettierrc.*, ruff.toml, .golangci.yml |
| Build system | Makefile, webpack.config.*, vite.config.*, next.config.*, turbo.json |
| CI/CD | .github/workflows/, .gitlab-ci.yml, Jenkinsfile |
| Available scripts | scripts section of package.json, Makefile targets |
| Directory conventions | src/, lib/, app/, tests/, __tests__/, spec/ |
| Codedocs | docs/.codedocs.json, documentation/.codedocs.json, or any .codedocs.json in the repo |
Codedocs Detection
If a .codedocs.json manifest is found, the repo has structured codedocs output. Record its location on the board and set a flag codedocs_available: true. This changes how DISCOVER and PLAN operate - see those phases for details.
When codedocs is available, read docs/OVERVIEW.md and docs/GETTING_STARTED.md immediately during convention detection and append their key facts (tech stack, module map, entry points, dev commands) to the ## Project Conventions section of the board. This front-loads context that would otherwise require separate codebase exploration in DISCOVER.
Output
Write the detected conventions to the board under a ## Project Conventions section. Reference these conventions in every subsequent phase - particularly PLAN and the Mandatory Tail Tasks verification step.
When to Use This Skill
Use Super-Human when:
- Multi-step feature development touching 3+ files or components
- User says "build this end-to-end" or "plan and execute this"
- User says "break this into tasks" or "sprint plan this"
- Any task requiring planning + implementation + verification
- Greenfield projects, major refactors, or migrations
- Complex bug fixes that span multiple systems
Do NOT use Super-Human when:
- Single-file bug fixes or typo corrections
- Quick questions or code explanations
- Tasks the user wants to do manually with your guidance
- Pure research or exploration tasks
Key Principles
1. Dependency-First Decomposition
Every task is a node in a directed acyclic graph (DAG), not a flat list. Dependencies between tasks are explicit. This prevents merge conflicts, ordering bugs, and wasted work.
2. Wave-Based Parallelism
Tasks at the same depth in the dependency graph form a "wave". All tasks in a wave execute simultaneously via parallel agents. Waves execute in serial order. This maximizes throughput while respecting dependencies.
3. Test-First Verification
Every sub-task writes tests before implementation. A task is only "done" when its tests pass. No exceptions for "simple" changes - tests are the proof of correctness.
4. Persistent State
All progress is tracked in .super-human/board.md in the project root. This file survives across sessions, enabling resume, audit, and handoff. The user chooses during INTAKE whether the board is git-tracked or gitignored.
5. Interactive Intake
Never assume. Scale questioning depth to task complexity - simple tasks get 3 questions, complex ones get 8-10. Extract requirements, constraints, and success criteria before writing a single line of code.
Core Concepts
The 7 Phases
INTAKE --> DECOMPOSE --> DISCOVER --> PLAN --> EXECUTE --> VERIFY --> CONVERGE
| | | | | | |
| gather | build DAG | research | detail | parallel | test + | merge +
| context | + waves | per task | per task| waves | verify | closeTask Graph
A directed acyclic graph (DAG) where each node is a sub-task and edges represent dependencies. Tasks with no unresolved dependencies can execute in parallel. See references/dependency-graph-patterns.md.
Execution Waves
Groups of independent tasks assigned to the same depth level in the DAG. Wave 1 runs first (all tasks in parallel), then Wave 2 (all tasks in parallel), and so on. See references/wave-execution.md.
Board
The .super-human/board.md file is the single source of truth. It contains the intake summary, task graph, wave assignments, per-task status, research notes, plans, and verification results. See references/board-format.md.
Sub-task Lifecycle
pending --> researching --> planned --> in-progress --> verifying --> done
| |
+--- blocked +--- failed (retry)Phase 1: INTAKE (Interactive Interview)
The intake phase gathers all context needed to decompose the task. Scale depth based on complexity.
Complexity Detection
- Simple (single component, clear scope): 3 questions
- Medium (multi-component, some ambiguity): 5 questions
- Complex (cross-cutting, greenfield, migration): 8-10 questions
Core Questions (always ask)
- Problem Statement: What exactly needs to be built or changed? What triggered this work?
- Success Criteria: How will we know this is done? What does "working" look like?
- Constraints: Are there existing patterns, libraries, or conventions we must follow?
Extended Questions (medium + complex)
- Existing Code: Is there related code already in the repo? Should we extend it or build fresh?
- Dependencies: Does this depend on external APIs, services, or other in-progress work?
Deep Questions (complex only)
- Edge Cases: What are the known edge cases or failure modes?
- Testing Strategy: Are there existing test patterns? Integration vs unit preference?
- Rollout: Any migration steps, feature flags, or backwards compatibility needs?
- Documentation: What docs need updating? API docs, README, architecture docs?
- Priority: Which parts are most critical? What can be deferred if needed?
Board Persistence Question (always ask)
Ask: "Should the .super-human/ board be git-tracked (audit trail, resume across machines) or gitignored (local working state)?"
Output
Write the intake summary to .super-human/board.md with all answers captured. See references/intake-playbook.md for the full question bank organized by task type.
Phase 2: DECOMPOSE (Task Graph Creation)
Break the intake into atomic sub-tasks and build the dependency graph.
Sub-task Anatomy
Each sub-task must have:
- ID: Sequential identifier (e.g.,
SH-001) - Title: Clear, action-oriented (e.g., "Create user authentication middleware")
- Description: 2-3 sentences on what this task does
- Type:
code|test|docs|infra|config - Complexity:
S(< 50 lines) |M(50-200 lines) |L(200+ lines - consider splitting) - Dependencies: List of task IDs this depends on (e.g.,
[SH-001, SH-003])
Decomposition Rules
- Every task should be S or M complexity. If L, decompose further
- Test tasks are separate from implementation tasks
- Infrastructure/config tasks come before code that depends on them
- Documentation tasks depend on the code they document
- Aim for 5-15 sub-tasks. Fewer means under-decomposed; more means over-engineered
- Every task graph MUST end with three mandatory tail tasks (see below)
- Apply the complexity budget (see below)
Complexity Budget
After decomposition, sanity-check total scope before proceeding:
- Count the total number of tasks by complexity: S (small), M (medium), L (large)
- If any L tasks remain, decompose them further - L tasks are not allowed
- If total estimated scope exceeds 15 M-equivalent tasks (where 1 L = 3 M, 1 S = 0.5 M), flag to the user that scope may be too large for a single Superhuman session
- Suggest splitting into multiple Superhuman sessions with clear boundaries (e.g., "Session 1: backend API, Session 2: frontend integration")
- The user can override and proceed, but they must explicitly acknowledge the scope
Mandatory Tail Tasks
Every task graph MUST end with three mandatory tail tasks: Self Code Review, Requirements Validation, and Full Project Verification. For detailed descriptions and acceptance criteria of each, see references/execution-patterns.md.
Build the DAG
- List all sub-tasks
- For each task, identify which other tasks must complete first
- Draw edges from dependencies to dependents
- Verify no cycles exist (it's a DAG, not a general graph)
Assign Waves
Group tasks by depth level in the DAG:
- Wave 1: Tasks with zero dependencies (roots of the DAG)
- Wave 2: Tasks whose dependencies are all in Wave 1
- Wave N: Tasks whose dependencies are all in Waves 1 through N-1
Present for Approval
Generate an ASCII dependency graph and wave assignment table. Present to the user and wait for explicit approval before proceeding. See references/dependency-graph-patterns.md for common patterns, example graphs, and the wave assignment algorithm.
Phase 3: DISCOVER (Parallel Research)
Research each sub-task before planning implementation. This phase is parallelizable per wave.
Per Sub-task Research
For each sub-task, investigate in this order - docs first, source second:
Codedocs Lookup (if
codedocs_available: trueon the board)- Check
docs/INDEX.mdto find which module doc covers the files relevant to this task - Read the relevant
docs/modules/<module>.mdfor public API, internal structure, dependencies, and implementation notes - Check
docs/patterns/for any cross-cutting pattern docs (error handling, testing strategy, logging) that apply to this task - Use
docs/OVERVIEW.mdfor architecture context and to understand how this task's module fits into the system - Only proceed to Codebase Exploration below if the docs don't contain enough detail - flag any gaps in the docs as a staleness note on the board
- Record which doc files were used in the task's research notes on the board
- Check
Codebase Exploration (always run; use to fill gaps left by docs or when codedocs is not available)
- Find existing patterns, utilities, and conventions relevant to this task
- Identify files that will be created or modified
- Check for reusable functions, types, or components
- Understand the testing patterns used in the project
Web Research (when codebase context is insufficient)
- Official documentation for libraries and APIs involved
- Best practices and common patterns
- Known gotchas or breaking changes
Risk Assessment
- Flag unknowns or ambiguities
- Identify potential conflicts with other sub-tasks
- Note any assumptions that need validation
Execution Strategy
- Launch parallel Explore agents for all tasks in Wave 1 simultaneously
- Once Wave 1 research completes, launch Wave 2 research, and so on
- Each agent writes its findings to the board under the respective task
Output
Append research notes to each sub-task on the board:
- Key files identified
- Reusable code/patterns found
- Risks and unknowns flagged
- External docs referenced
Phase 4: PLAN (Execution Planning)
Create a detailed execution plan for each sub-task based on research findings.
Per Sub-task Plan
For each sub-task, specify:
- Files to Create/Modify: Exact file paths
- Test Files: Test file paths (TDD - these are written first)
- Implementation Approach: Brief description of the approach
- Acceptance Criteria: Specific, verifiable conditions for "done"
- Test Cases: List of test cases to write
- Happy path tests
- Edge case tests
- Error handling tests
Planning Rules
- Tests are always planned before implementation
- Each plan must reference specific reusable code found in DISCOVER
- Plans must respect the project's existing conventions (naming, structure, patterns)
- If a plan reveals a missing dependency, update the task graph (re-approve with user)
Output
Update each sub-task on the board with its execution plan. The board now contains everything an agent needs to execute the task independently.
Phase 5: EXECUTE (Wave-Based Implementation)
Execute tasks wave by wave. Within each wave, spin up parallel agents for independent tasks.
Pre-Execution Snapshot
Before executing the first wave, create a git safety net:
- Ensure all current changes are committed or stashed
- Record the current commit hash on the board under
## Rollback Point - If execution goes catastrophically wrong (build broken after max retries, critical files corrupted), the user can
git reset --hardto this commit - Remind the user of the rollback point hash when flagging unrecoverable failures
Wave Execution Loop
for each wave in [Wave 1, Wave 2, ..., Wave N]:
for each task in wave (in parallel):
1. Write tests (TDD - red phase)
2. Implement code to make tests pass (green phase)
3. Refactor if needed (refactor phase)
4. Update board status: in-progress -> verifying
wait for all tasks in wave to complete
run wave boundary checks (conflict resolution, progress report)
proceed to next waveFor agent context handoff format, wave boundary checks (conflict resolution and progress reports), scope creep handling, blocked task management, and failure recovery patterns, see references/execution-patterns.md.
Phase 6: VERIFY (Per-Task + Integration)
Every sub-task must prove it works before closing.
Per-Task Verification
For each completed sub-task, run:
- Tests: Run the task's test suite - all tests must pass
- Lint: Run the project's linter on modified files
- Type Check: Run type checker if applicable (TypeScript, mypy, etc.)
- Build: Verify the project still builds
Integration Verification
After each wave completes:
- Run tests for tasks that depend on this wave's output
- Check for conflicts between parallel tasks (file conflicts, API mismatches)
- Run the full test suite if available
Verification Loop
if all checks pass:
mark task as "done"
update board with verification report
else:
mark task as "failed"
loop back to EXECUTE for this task (max 2 retries)
if still failing after retries:
flag for user attention
continue with other tasksOutput
Update each sub-task on the board with a verification report:
- Tests: pass/fail (with details on failures)
- Lint: clean/issues
- Type check: pass/fail
- Build: pass/fail
See references/verification-framework.md for the full verification protocol.
Phase 7: CONVERGE (Final Integration)
Merge all work and close out the board.
Steps
- Merge: If using worktrees or branches, merge all work into the target branch
- Full Test Suite: Run the complete project test suite
- Documentation: Update any docs that were part of the task scope
- Summary: Generate a change summary with:
- Files created/modified (with line counts)
- Tests added (with coverage if available)
- Key decisions made during execution
- Any deferred work or follow-ups
- Close Board: Mark the board as
completedwith a timestamp - Suggest Commit: Propose a commit message summarizing the work
Board Finalization
The completed board serves as an audit trail:
- Full history of all 7 phases
- Every sub-task with its research, plan, and verification
- Timeline of execution
- Any issues encountered and how they were resolved
Gotchas
Parallel agents modifying shared files without a lock strategy - Two agents in the same wave that both edit the same utility file or test fixture will produce a merge conflict at the wave boundary. During DECOMPOSE, identify shared files and assign ownership to one task; other tasks must treat those files as read-only until the owning task completes.
Board marked
completedbut tests were never run - The mandatory tail task "Run full project verification suite" is frequently skipped when agents declare done based on subjective confidence. Never mark the boardcompleteduntil the actual test/lint/build commands have been run and their output recorded on the board.DISCOVER phase skipped for "obvious" tasks - Agents assume they know the codebase well enough to skip research. Then they write code that duplicates existing utilities, uses the wrong import paths, or misses a convention that would have been visible in a 2-minute code scan. Always run DISCOVER, even for small tasks.
Rollback point recorded after Wave 1 has already started - Recording the git commit hash mid-wave means the rollback point already includes partial changes. The pre-execution snapshot must be taken before any file is touched - before Wave 1 begins, not during it.
Scope creep absorbed silently expands the DAG without user visibility - Agents frequently discover adjacent improvements during EXECUTE and absorb them into the current task without flagging them. This makes the wave take longer than planned, obscures what changed, and violates the scope agreement from INTAKE. Everything outside the original scope goes to the Deferred Work section.
Anti-Patterns and Common Mistakes
For the full anti-patterns table (16 patterns covering intake, decomposition, execution, scope management, and conventions), see references/execution-patterns.md.
References
For detailed guidance on specific phases, load these reference files:
references/intake-playbook.md- Full question bank organized by task type (feature, bug, refactor, greenfield, migration), with scaling rules and example sessionsreferences/dependency-graph-patterns.md- Common DAG patterns, ASCII rendering format, wave assignment algorithm, and example graphsreferences/wave-execution.md- Parallel agent orchestration, agent prompt templates, blocked task handling, error recoveryreferences/verification-framework.md- TDD workflow per sub-task, verification signals, integration testing, failure handlingreferences/board-format.md- Full.super-human/board.mdspecification with format, status transitions, and example board
References
board-format.md
Board Format Specification
The .super-human/board.md file is the single source of truth for a Super-Human execution. It tracks everything from intake through convergence and is designed to be both human-readable and machine-parseable.
File Location
{project-root}/.super-human/board.mdThe .super-human/ directory may also contain:
board.md- the main board file (always present)- Historical boards renamed to
board-{timestamp}.md(if running multiple sessions)
Board Metadata (YAML Frontmatter)
---
id: sh-{timestamp}
title: "{brief description of the overall task}"
status: intake | decomposing | discovering | planning | executing | verifying | converged | completed | abandoned
created: "{ISO 8601 timestamp}"
updated: "{ISO 8601 timestamp}"
git_tracked: true | false
total_tasks: {N}
completed_tasks: {N}
failed_tasks: {N}
current_wave: {N}
total_waves: {N}
---Board Sections
The board is organized into sections that correspond to the 7 phases. Each section is populated as the relevant phase completes.
Section 1: Intake Summary
## Intake Summary
- **Task**: {one-line description}
- **Type**: feature | bug | refactor | greenfield | migration
- **Complexity**: simple | medium | complex
- **Problem**: {what needs to be built/fixed}
- **Success Criteria**: {what "done" looks like}
- **Constraints**: {patterns, libraries, conventions to follow}
- **Dependencies**: {external APIs, services, other work}
- **Edge Cases**: {known edge cases} (if complex)
- **Testing Strategy**: {approach to testing} (if complex)
- **Board Persistence**: git-tracked | gitignoredSection 2: Task Graph
## Task Graph
### Sub-tasks
| ID | Title | Type | Size | Dependencies | Wave | Status |
|----|-------|------|------|-------------|------|--------|
| SH-001 | {title} | code | S | - | 1 | done |
| SH-002 | {title} | code | M | SH-001 | 2 | in-progress |
| SH-003 | {title} | test | S | SH-002 | 3 | pending |
### Dependency Graph
{ASCII graph - see dependency-graph-patterns.md}
### Wave Assignments
- **Wave 1** (N tasks): SH-001, SH-002 [parallel]
- **Wave 2** (N tasks): SH-003 [serial]
- **Wave 3** (N tasks): SH-004, SH-005, SH-006 [parallel]Section 3: Sub-task Details
Each sub-task gets its own subsection that grows as phases complete:
## Tasks
### SH-001: {title}
- **Type**: code | test | docs | infra | config
- **Size**: S | M
- **Dependencies**: none | [SH-XXX, SH-YYY]
- **Wave**: {N}
- **Status**: {current status}
#### Research Notes
{populated during DISCOVER phase}
- Key files: {list of relevant files}
- Reusable code: {functions/utilities to reuse}
- Patterns: {conventions observed}
- Risks: {any risks identified}
- External docs: {URLs referenced}
#### Execution Plan
{populated during PLAN phase}
- Files to create: {list}
- Files to modify: {list}
- Test files: {list}
- Approach: {brief description}
- Acceptance criteria:
- [ ] {criterion 1}
- [ ] {criterion 2}
- Test cases:
- {test case 1}
- {test case 2}
#### Verification
{populated during VERIFY phase}
- Status: PASS | FAIL
- Tests: {passed}/{total} ({new} new)
- Lint: clean | {issues}
- Type Check: pass | {errors}
- Build: pass | fail
- Retries: {used}/{max}
- Notes: {context}Section 4: Execution Log
## Execution Log
### Wave 1 - {timestamp}
- Started: {timestamp}
- Tasks: SH-001, SH-002
- Agents: 2 parallel
- Completed: {timestamp}
- Result: all passed | {N} failed
### Wave 2 - {timestamp}
- Started: {timestamp}
- Tasks: SH-003
- Agents: 1 serial
- Completed: {timestamp}
- Result: all passedSection 5: Convergence Summary
## Convergence Summary
### Files Changed
| File | Action | Lines |
|------|--------|-------|
| src/models/user.ts | created | +45 |
| src/api/auth.ts | created | +120 |
| src/api/auth.test.ts | created | +85 |
| src/middleware/auth.ts | modified | +30, -5 |
### Tests Added
- Total new tests: {N}
- Test files: {list}
- Coverage: {percentage if available}
### Key Decisions
- {decision 1 and why}
- {decision 2 and why}
### Deferred Work
- {anything not completed and why}
- {follow-up tasks suggested}
### Suggested Commit Message{emoji} {type}: {subject}
{body with summary of changes}
Status Transitions
Board-Level Status
intake --> decomposing --> discovering --> planning --> executing --> verifying --> converged --> completed
|
+--> abandonedTask-Level Status
pending --> researching --> planned --> in-progress --> verifying --> done
| |
+-- blocked +-- failedValid Transitions
| From | To | Trigger |
|---|---|---|
| pending | researching | DISCOVER phase starts for this task |
| researching | planned | Research complete, plan written |
| planned | in-progress | EXECUTE phase starts for this task |
| in-progress | verifying | Implementation complete, running checks |
| in-progress | blocked | Dependency failed or external blocker |
| verifying | done | All verification signals pass |
| verifying | failed | Verification failed after max retries |
| blocked | in-progress | Blocker resolved |
| failed | in-progress | User intervention or revised approach |
Resuming a Board Across Sessions
When starting a new session and a .super-human/board.md exists:
- Read the board - parse the frontmatter and current state
- Identify the current phase from the board status
- Find incomplete tasks - any task not in
doneorfailedstatus - Resume from the current phase:
- If
executing: continue with the next unfinished wave - If
verifying: re-run verification on unverified tasks - If
discoveringorplanning: continue research/planning for remaining tasks
- If
- Update the board with a "Resumed at {timestamp}" entry in the execution log
Resume Detection
At the start of any Super-Human invocation:
- Check if
.super-human/board.mdexists - If yes, ask the user: "Found an existing Super-Human board. Resume it or start fresh?"
- If resuming, load the board and continue from where it left off
- If starting fresh, archive the old board as
board-{timestamp}.md
Example: Complete Board
---
id: sh-1710432000
title: "Add user authentication to Next.js app"
status: executing
created: "2026-03-14T10:00:00Z"
updated: "2026-03-14T11:30:00Z"
git_tracked: false
total_tasks: 8
completed_tasks: 3
failed_tasks: 0
current_wave: 2
total_waves: 4
---
## Intake Summary
- **Task**: Add email/password + Google OAuth authentication
- **Type**: feature
- **Complexity**: complex
- **Problem**: App has no auth - need login, register, protected routes
- **Success Criteria**: Users can register, login (email + Google), access protected routes
- **Constraints**: Use NextAuth.js v5, existing Prisma + PostgreSQL
- **Dependencies**: Google OAuth credentials needed
- **Edge Cases**: Session expiry, multiple tabs, password reset
- **Testing Strategy**: E2e for auth flows, unit for middleware
- **Board Persistence**: gitignored
## Task Graph
### Sub-tasks
| ID | Title | Type | Size | Dependencies | Wave | Status |
|----|-------|------|------|-------------|------|--------|
| SH-001 | NextAuth config + providers | config | S | - | 1 | done |
| SH-002 | User + Account Prisma models | config | S | - | 1 | done |
| SH-003 | Auth API route handler | code | M | SH-001, SH-002 | 2 | in-progress |
| SH-004 | Auth middleware for protected routes | code | M | SH-001 | 2 | in-progress |
| SH-005 | Login page component | code | M | SH-003 | 3 | pending |
| SH-006 | Register page component | code | M | SH-003 | 3 | pending |
| SH-007 | Auth e2e tests | test | M | SH-005, SH-006 | 4 | pending |
| SH-008 | Auth API documentation | docs | S | SH-003 | 4 | pending |
### Wave Assignments
- **Wave 1** (2 tasks): SH-001, SH-002 [parallel] - COMPLETED
- **Wave 2** (2 tasks): SH-003, SH-004 [parallel] - IN PROGRESS
- **Wave 3** (2 tasks): SH-005, SH-006 [parallel] - PENDING
- **Wave 4** (2 tasks): SH-007, SH-008 [parallel] - PENDING
## Tasks
### SH-001: NextAuth config + providers
- **Type**: config
- **Size**: S
- **Dependencies**: none
- **Wave**: 1
- **Status**: done
#### Research Notes
- NextAuth v5 uses `auth.ts` at project root
- Existing env pattern: `.env.local` with `DATABASE_URL`
- Need: `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`, `NEXTAUTH_SECRET`
#### Execution Plan
- Files to create: `auth.ts`, `app/api/auth/[...nextauth]/route.ts`
- Test files: none (config, verified by build)
- Approach: Configure NextAuth with Credentials + Google provider
#### Verification
- Status: PASS
- Tests: N/A (config)
- Build: pass
- Notes: Auth config loads, providers registered
## Execution Log
### Wave 1 - 2026-03-14T10:15:00Z
- Started: 2026-03-14T10:15:00Z
- Tasks: SH-001, SH-002
- Agents: 2 parallel
- Completed: 2026-03-14T10:25:00Z
- Result: all passed
### Wave 2 - 2026-03-14T10:26:00Z
- Started: 2026-03-14T10:26:00Z
- Tasks: SH-003, SH-004
- Agents: 2 parallel
- Status: in-progress dependency-graph-patterns.md
Dependency Graph Patterns
This reference covers how to decompose tasks into dependency graphs, common patterns, the ASCII rendering format, and the wave assignment algorithm.
Identifying Dependencies
A task B depends on task A if:
- B needs code/files that A creates
- B extends or modifies A's output
- B tests functionality that A implements
- B documents behavior that A defines
- B configures infrastructure that A requires
A task B does NOT depend on A if:
- They modify different files with no shared interfaces
- They implement independent features
- They can be tested in isolation
Dependency Checklist
For each pair of tasks, ask:
- Does task B need any file that task A creates? -> dependency
- Does task B import or use any function/type that task A defines? -> dependency
- Does task B test code that task A writes? -> dependency
- Can task B's tests pass without task A being complete? -> if yes, no dependency
Common DAG Patterns
Linear Chain
One task after another. No parallelism possible.
SH-001 --> SH-002 --> SH-003 --> SH-004When it occurs: Sequential migrations, step-by-step setup Waves: Each task is its own wave (worst case for parallelism)
Fan-Out
One task fans out to many independent tasks.
+---> SH-002
|
SH-001 ----+---> SH-003
|
+---> SH-004When it occurs: After initial setup, multiple independent features branch off Waves: Wave 1 = SH-001, Wave 2 = SH-002 + SH-003 + SH-004
Fan-In
Many independent tasks converge to one.
SH-001 ---+
|
SH-002 ---+---> SH-004
|
SH-003 ---+When it occurs: Integration testing after parallel implementation Waves: Wave 1 = SH-001 + SH-002 + SH-003, Wave 2 = SH-004
Diamond
Fan-out followed by fan-in.
+---> SH-002 ---+
| |
SH-001 ----+ +---> SH-005
| |
+---> SH-003 ---+
| |
+---> SH-004 ---+When it occurs: Setup -> parallel features -> integration Waves: Wave 1 = SH-001, Wave 2 = SH-002 + SH-003 + SH-004, Wave 3 = SH-005
Independent Clusters
Multiple disconnected sub-graphs that can run entirely in parallel.
Cluster A: SH-001 --> SH-002
Cluster B: SH-003 --> SH-004 --> SH-005
Cluster C: SH-006When it occurs: Unrelated features being built simultaneously Waves: Wave 1 = SH-001 + SH-003 + SH-006, Wave 2 = SH-002 + SH-004, Wave 3 = SH-005
Layered Architecture
Tasks organized by architectural layers.
Layer 1 (infra): SH-001, SH-002
Layer 2 (data): SH-003, SH-004 (depend on Layer 1)
Layer 3 (logic): SH-005, SH-006 (depend on Layer 2)
Layer 4 (UI): SH-007, SH-008 (depend on Layer 3)
Layer 5 (tests): SH-009, SH-010 (depend on Layer 4)When it occurs: Full-stack feature development Waves: One wave per layer
Wave Assignment Algorithm
Algorithm (Topological Sort + Depth Grouping)
function assignWaves(tasks):
// Calculate depth for each task
for each task in tasks:
if task has no dependencies:
task.depth = 0
else:
task.depth = max(dependency.depth for dependency in task.dependencies) + 1
// Group by depth
waves = group tasks by task.depth
// Wave 1 = depth 0, Wave 2 = depth 1, etc.
return wavesRules
- Tasks with no dependencies are always Wave 1
- A task's wave = max(wave of its dependencies) + 1
- All tasks in the same wave can execute in parallel
- Waves execute in strict sequential order
- If a wave has only 1 task, it still counts as a wave (serial execution)
Optimization
- If two tasks are in the same wave but modify the same file, move one to a later wave to prevent conflicts
- If a wave has more tasks than available parallel agents, split it into sub-waves
ASCII Graph Rendering Format
Conventions
-->for dependency edges (A --> B means "B depends on A")+for branch points|for vertical connections- Indent child tasks under their parents
- Include task type and title in brackets
Standard Format
Task Graph:
SH-001 [type: title]
|
+---> SH-002 [type: title]
| |
| +---> SH-004 [type: title]
|
+---> SH-003 [type: title]With Wave Annotations
Task Graph:
[W1] SH-001 [config: Init project structure]
|
+---> [W2] SH-002 [code: Database schema]
| |
| +---> [W3] SH-004 [code: User model]
|
+---> [W2] SH-003 [code: API router setup]
Wave Summary:
Wave 1 (1 task): SH-001
Wave 2 (2 tasks): SH-002, SH-003 [parallel]
Wave 3 (1 task): SH-004Example: Full-Stack Feature Decomposition
Task: "Add a commenting system to blog posts"
Sub-tasks identified:
- SH-001: Create Comment database model and migration (config, S)
- SH-002: Create Comment API endpoints - CRUD (code, M)
- SH-003: Create CommentList UI component (code, M)
- SH-004: Create CommentForm UI component (code, S)
- SH-005: Wire API to UI with data fetching (code, M)
- SH-006: Add comment notification system (code, M)
- SH-007: Write API integration tests (test, M)
- SH-008: Write UI component tests (test, S)
- SH-009: Update API documentation (docs, S)
Dependencies:
- SH-002 depends on SH-001 (needs the model)
- SH-003 depends on nothing (can use mock data)
- SH-004 depends on nothing (can use mock data)
- SH-005 depends on SH-002, SH-003, SH-004 (wires them together)
- SH-006 depends on SH-002 (needs API to trigger notifications)
- SH-007 depends on SH-002 (tests the API)
- SH-008 depends on SH-003, SH-004 (tests the components)
- SH-009 depends on SH-002 (documents the API)
Graph:
SH-001 [config: Comment model + migration]
|
+---> SH-002 [code: Comment CRUD API]
| |
| +---> SH-005 [code: Wire API to UI] (also depends on SH-003, SH-004)
| +---> SH-006 [code: Notification system]
| +---> SH-007 [test: API integration tests]
| +---> SH-009 [docs: API documentation]
|
(independent)
SH-003 [code: CommentList component]
| |
| +---> SH-005 (see above)
| +---> SH-008 [test: UI component tests] (also depends on SH-004)
|
SH-004 [code: CommentForm component]Wave Assignment:
Wave 1 (3 tasks): SH-001, SH-003, SH-004 [parallel]
Wave 2 (1 task): SH-002 [serial - needs SH-001]
Wave 3 (4 tasks): SH-005, SH-006, SH-007, SH-008, SH-009 [parallel]Note: SH-005 depends on SH-002 (Wave 2) AND SH-003, SH-004 (Wave 1), so it goes in Wave 3. SH-008 depends on SH-003, SH-004 (Wave 1), so it could be Wave 2, but since it also tests the components, waiting for Wave 2 to complete is cleaner.
execution-patterns.md
Execution Patterns and Anti-Patterns
Scope Creep Guard
During EXECUTE, agents may discover additional work needed ("oh, this also needs X"). Handle scope creep strictly:
- Blocking discovery (can't complete the current task without it): Add a new task to the DAG, assign it to the current or next wave, and flag the change to the user on the board. Continue with other tasks in the wave.
- Non-blocking discovery (nice-to-have, related improvement, cleanup): Do NOT absorb it. Add it to a
## Deferred Worksection on the board. Mention it in the CONVERGE summary. The user decides whether to start a new Super-Human session for it. - Never silently expand scope - every addition to the DAG must be visible on the board and flagged in the next progress report.
Handling Blocked Tasks
If a task cannot proceed:
- Mark it as
blockedon the board with a reason - Continue with non-blocked tasks in the same wave
- After the wave completes, reassess blocked tasks
- If the blocker is resolved, add the task to the next wave
Handling Failures
If an agent fails to complete a task:
- Capture the error/failure reason on the board
- Attempt one retry with adjusted approach
- If retry fails, mark as
failedand flag for user attention with the rollback point hash - Continue with other tasks - don't let one failure block the wave
See references/wave-execution.md for detailed agent orchestration patterns.
Mandatory Tail Tasks
Every Super-Human task graph must include these three tasks as the final tasks, in this order:
Third-to-last task: Self Code Review
- Type:
review - Title: "Self code review of all changes"
- Description: Run a structured code review of all changes made across every completed sub-task using the
code-review-masterymethodology. Get the full diff of all changes since the rollback point. Execute the review pyramid bottom-up: Security > Correctness > Performance > Design > Readability > Convention > Testing. Classify each finding as[MAJOR]or[MINOR]. Fix all[MAJOR]findings immediately and address reasonable[MINOR]findings. Re-run the review after fixes to confirm no new issues were introduced. Only proceed when no[MAJOR]findings remain. - Dependencies: All other implementation/test/docs tasks
- Acceptance Criteria: Zero
[MAJOR]findings remaining after fixes. All[MINOR]findings documented on the board (fixed or explicitly deferred).
Second-to-last task: Requirements Validation
- Type:
verify - Title: "Validate changes against original requirements"
- Description: Review all changes made across every completed sub-task and compare them against the original user prompt and intake summary. Verify that every requirement, success criterion, and constraint from INTAKE is satisfied. If any requirement is unmet or the implementation deviates from what was asked, flag the gaps and loop back to EXECUTE to address them. Do NOT proceed to the final task until all requirements are confirmed met.
- Dependencies: The self code review task above
- Acceptance Criteria: Every success criterion from INTAKE is demonstrably satisfied. If gaps are found, reiterate until they are resolved.
Last task: Full Project Verification
- Type:
verify - Title: "Run full project verification suite"
- Description: Run all available verification checks in the repo, in order. Use the project's package manager scripts (check
package.json,Makefile,pyproject.toml, etc.) - never invoke tools directly. Skip any that are not configured in the project - only run what exists:- Tests - Run the test script (
npm test,yarn test,pnpm test,make test,pytest, etc.) - Lint - Run the lint script (
npm run lint,yarn lint,pnpm lint,make lint, etc.) - Typecheck - Run the typecheck script (
npm run typecheck,yarn typecheck,pnpm typecheck,make typecheck, etc.) - Build - Run the build script (
npm run build,yarn build,pnpm build,make build, etc.)
- Tests - Run the test script (
- Dependencies: The requirements validation task above
- Acceptance Criteria: All available checks pass. If any check fails, fix the issues and re-run until green. Do not mark the board as complete until every available check passes.
Agent Context Handoff Format
Each parallel agent receives a standardized prompt with these sections:
## Task: {SH-XXX} - {Title}
### Context
{Description from the board}
### Project Conventions
{Detected conventions from Codebase Convention Detection - package manager, test runner, linter, directory patterns}
### Research Notes
{Findings from DISCOVER phase for this task}
### Execution Plan
- Files to create/modify: {list}
- Test files: {list}
- Approach: {from PLAN phase}
### Acceptance Criteria
{Specific, verifiable conditions from PLAN phase}
### Rules
1. Follow TDD: write tests first, then implement
2. Use the project's existing patterns and conventions
3. Do NOT modify files outside your task scope
4. If you encounter a blocker, stop and report it - do not work around it
5. Update the board with your status when doneWave Boundary Checks
After all tasks in a wave complete, before proceeding to the next wave:
1. Conflict Resolution
- Check if any two agents in the wave modified the same file
- If conflicts exist: review both changes, merge them intelligently (prefer the change that better satisfies its task's acceptance criteria), and verify the merged result
- If conflicts cannot be auto-resolved: flag to the user with both versions and let them decide
- Run a quick build/test check after any merge to catch integration issues early
2. Progress Report Print a compact status table after each wave:
Wave 2 Complete (3/6 waves done)
-----------------------------------------
| Task | Status | Notes |
|--------|--------|----------------------|
| SH-001 | done | |
| SH-002 | done | |
| SH-003 | done | |
| SH-004 | done | wave 2 |
| SH-005 | done | wave 2 |
| SH-006 | next | wave 3 |
| SH-007 | next | wave 3 |
| SH-008 | queued | wave 4 |
-----------------------------------------Anti-Patterns and Common Mistakes
| Anti-Pattern | Better Approach |
|---|---|
| Skipping intake for "obvious" tasks | Even simple tasks benefit from 3 intake questions - assumptions kill projects |
| Flat task lists without dependencies | Always model as a DAG - hidden dependencies cause merge conflicts and ordering bugs |
| Executing without user approval of the graph | Always present the wave plan and get explicit approval before any execution |
| Skipping TDD for "simple" changes | Tests are verification proof, not optional extras - write them first, always |
| Massive sub-tasks (L+ complexity) | Decompose further until all tasks are S or M - large tasks hide complexity |
| Not persisting board state | Always write to .super-human/board.md - it enables resume, audit, and handoff |
| Over-decomposing into 20+ micro-tasks | Aim for 5-15 tasks - too many creates overhead that defeats the purpose |
| Ignoring research phase | DISCOVER prevents rework - 10 minutes of research saves hours of wrong implementation |
| Sequential execution when parallelism is possible | Always check the DAG for parallel opportunities - that's the whole point of Super-Human |
| Silently absorbing scope creep during EXECUTE | Flag blocking additions on the board; defer non-blocking discoveries to the Deferred Work section |
| Starting fresh when a board already exists | Detect existing boards, display status, and resume from last incomplete wave |
| Assuming project conventions without checking | Always run Codebase Convention Detection before INTAKE - read package.json, config files, directory structure |
| No rollback plan before execution | Record the git commit hash before Wave 1 starts - offer rollback if things go sideways |
| Parallel agents modifying the same file without reconciliation | Run conflict resolution checks at every wave boundary before proceeding |
| Skipping self code review before verification | Verification catches build/test failures but not code quality issues - review catches bugs, security issues, and design problems that tests miss |
Ignoring docs/ when it exists |
Reading raw source files when codedocs output is available wastes context window and misses curated architecture context - always check for .codedocs.json during Convention Detection and use docs-first in DISCOVER |
intake-playbook.md
Intake Playbook
The intake phase is the foundation of every Super-Human execution. A thorough intake prevents rework, missed requirements, and scope creep. This playbook provides the full question bank, scaling rules, and example sessions.
Question Bank by Task Type
Feature Development
| # | Question | Purpose |
|---|---|---|
| 1 | What feature needs to be built? Describe the user-facing behavior. | Problem statement |
| 2 | What does "done" look like? List specific acceptance criteria. | Success criteria |
| 3 | Are there existing patterns or conventions in the codebase we should follow? | Constraints |
| 4 | Which files, modules, or components will this touch? | Scope mapping |
| 5 | Does this depend on any external APIs, services, or libraries? | Dependencies |
| 6 | What are the known edge cases or error scenarios? | Edge cases |
| 7 | How should this be tested? Unit, integration, e2e? | Testing strategy |
| 8 | Does this need documentation updates? API docs, README, changelog? | Documentation |
| 9 | Any backwards compatibility or migration concerns? | Rollout |
| 10 | Which parts are highest priority if we need to split delivery? | Priority |
Bug Fix
| # | Question | Purpose |
|---|---|---|
| 1 | What is the bug? Describe the expected vs actual behavior. | Problem statement |
| 2 | How do we reproduce it? Steps, environment, conditions. | Reproduction |
| 3 | What is the impact? Who is affected and how severely? | Priority |
| 4 | When did this start happening? Any recent changes? | Root cause hints |
| 5 | Are there related bugs or known issues? | Context |
| 6 | What is the fix criteria? When is this bug "fixed"? | Success criteria |
Refactor
| # | Question | Purpose |
|---|---|---|
| 1 | What code needs refactoring and why? | Problem statement |
| 2 | What is the desired end state? | Success criteria |
| 3 | Must the refactor be backwards-compatible? | Constraints |
| 4 | What is the test coverage of the code being refactored? | Safety net |
| 5 | Can this be done incrementally or must it be all-at-once? | Strategy |
| 6 | Are there downstream consumers that will be affected? | Impact |
Greenfield Project
| # | Question | Purpose |
|---|---|---|
| 1 | What is the project and what problem does it solve? | Problem statement |
| 2 | Who is the target user? | Context |
| 3 | What are the core features for v1? | Scope |
| 4 | What tech stack and conventions should we use? | Constraints |
| 5 | Are there reference implementations or designs to follow? | Patterns |
| 6 | What external services or APIs will we integrate with? | Dependencies |
| 7 | What is the testing strategy? | Testing |
| 8 | What does the deployment/infra look like? | Infrastructure |
| 9 | What documentation is needed? | Documentation |
| 10 | What is the priority order of features? | Priority |
Migration
| # | Question | Purpose |
|---|---|---|
| 1 | What is being migrated and to what? (e.g., v2 to v3, JS to TS) | Problem statement |
| 2 | What is the scope? Full migration or incremental? | Strategy |
| 3 | Must the old and new coexist during migration? | Constraints |
| 4 | What is the rollback plan if something goes wrong? | Safety |
| 5 | Are there breaking changes to account for? | Risk |
| 6 | What is the test coverage of the code being migrated? | Safety net |
| 7 | What is the priority order of modules to migrate? | Priority |
Scaling Rules
When to Ask 3 Questions (Simple)
- Task touches 1-2 files
- Clear, well-defined scope ("add a button that does X")
- No external dependencies
- Existing patterns to follow
- Always ask: Problem statement, Success criteria, Constraints
When to Ask 5 Questions (Medium)
- Task touches 3-5 files or 2+ components
- Some ambiguity in requirements
- May involve external APIs
- Add: Existing code context, Dependencies
When to Ask 8-10 Questions (Complex)
- Task touches 5+ files or is cross-cutting
- Greenfield project or major refactor
- External services, migrations, or rollout concerns
- Add: Edge cases, Testing strategy, Documentation, Rollout, Priority
Complexity Detection Heuristic
Ask yourself:
- How many files/components will this touch? (1-2: simple, 3-5: medium, 5+: complex)
- Are there external dependencies? (no: simpler, yes: more complex)
- Is the scope well-defined? (yes: simpler, no: more complex)
- Does this involve data migration or backwards compatibility? (yes: complex)
Extracting Implicit Requirements
Users often omit critical requirements. Watch for these patterns:
| User Says | Implicit Requirement |
|---|---|
| "Add a login page" | Auth system, session management, error handling, redirect logic |
| "Make it faster" | Needs benchmarks before and after, specific performance targets |
| "Support dark mode" | Theme system, all components must be theme-aware, persistence |
| "Add search" | Indexing strategy, debounce, empty state, pagination |
| "Deploy to production" | CI/CD, environment config, monitoring, rollback plan |
When you detect implicit requirements, surface them as follow-up questions rather than assuming.
Example Intake Session
Task: "Add user authentication to our Next.js app"
Detected complexity: Complex (cross-cutting, external dependencies, security-sensitive)
Questions asked:
- Problem: "What authentication method do you need? Email/password, OAuth providers (Google, GitHub), magic links, or a combination?"
- Success criteria: "What does 'authenticated' look like? Protected routes, user profile page, session persistence across browser restarts?"
- Constraints: "Are there existing auth patterns in the codebase, or is this the first auth implementation? Any preferred libraries (NextAuth, Clerk, custom)?"
- Existing code: "Is there already a user model or database schema? Any existing API routes we should integrate with?"
- Dependencies: "Which OAuth providers need to be supported? Do we need a database for sessions/users?"
- Edge cases: "How should we handle: expired sessions, multiple tabs, password reset, account lockout?"
- Testing: "What auth flows need e2e tests? Is there an existing test setup?"
- Docs: "Do we need API documentation for auth endpoints?"
- Rollout: "Is this for new users only, or do existing users need migration?"
- Board persistence: "Should the
.super-human/board be git-tracked or gitignored?"
Intake Summary (written to board):
## Intake Summary
- Task: Add email/password + Google OAuth authentication to Next.js app
- Library: NextAuth.js v5
- Database: Existing Prisma + PostgreSQL setup
- Protected routes: /dashboard, /settings, /api/*
- Success: User can register, login, logout, and access protected routes
- Edge cases: Session expiry shows login prompt, password reset via email
- Testing: E2e tests for login, register, OAuth flow, protected route redirect
- Board: gitignored (local working state) verification-framework.md
Verification Framework
Every Superhuman sub-task must prove it works before closing. This reference covers the TDD workflow, verification signals, integration testing, and the verification report format.
TDD Workflow Per Sub-task
The Red-Green-Refactor Cycle
RED: Write tests that describe the desired behavior -> tests FAIL
GREEN: Write the minimum code to make tests pass -> tests PASS
REFACTOR: Clean up the code while keeping tests green -> tests PASSStep-by-Step
- Read the acceptance criteria from the task's execution plan
- Write test file(s) that encode each acceptance criterion as a test case
- Run tests - confirm they FAIL (red phase proves tests are meaningful)
- Implement the code to make each test pass, one at a time
- Run tests - confirm they PASS (green phase)
- Refactor if needed - rename, extract, simplify - while keeping tests green
- Final run - all tests pass, lint clean, types check
Test Categories Per Sub-task
| Category | What to Test | Priority |
|---|---|---|
| Happy path | Primary use case works correctly | Required |
| Edge cases | Boundary values, empty inputs, nulls | Required |
| Error handling | Invalid inputs, failure modes | Required |
| Integration points | Interactions with other components | If applicable |
Test Naming Convention
Follow the project's existing convention. If none exists, use:
describe("{ComponentOrFunction}", () => {
it("should {expected behavior} when {condition}", () => {
// ...
});
});Verification Signals
Every completed sub-task must pass ALL applicable signals before closing.
Signal Matrix
| Signal | Command | Required | Notes |
|---|---|---|---|
| Tests | npm test / pytest / project test cmd |
Always | All new and existing tests must pass |
| Lint | npm run lint / eslint / project lint cmd |
Always | Zero new warnings or errors |
| Type Check | tsc --noEmit / mypy / pyright |
If typed | No new type errors |
| Build | npm run build / project build cmd |
If applicable | Project must still build |
| Format | prettier --check / black --check |
If configured | Code matches project format |
Signal Priority
If time-constrained, verify in this order:
- Tests (non-negotiable)
- Build (catch compile/bundling errors)
- Type check (catch type mismatches)
- Lint (catch style/convention issues)
- Format (lowest priority, auto-fixable)
Detecting Project Commands
Before running verification, detect what's available:
- Check
package.jsonscripts fortest,lint,build,typecheck - Check for
Makefile,pyproject.toml,Cargo.tomlfor project-specific commands - Check for CI config (
.github/workflows/,.gitlab-ci.yml) to see what CI runs - If nothing is configured, at minimum run the test file directly
Integration Verification
When to Run Integration Checks
After each wave completes, run integration verification if:
- Tasks in the wave have shared dependencies
- Tasks in the wave create interfaces consumed by the next wave
- The wave includes both implementation and test tasks
Integration Check Protocol
Import Resolution
- Verify all cross-file imports resolve
- Check that types exported by one task match types expected by another
- Run
tsc --noEmitor equivalent to catch import issues
Combined Test Run
- Run the full test suite (not just new tests)
- If full suite is too slow, run tests for all files modified in this wave
Build Verification
- Run the project build to catch bundling/compilation issues
- Check for circular dependency warnings
Runtime Smoke Test (if applicable)
- Start the application/server
- Hit the key endpoints or render the key pages
- Verify no runtime errors in console
Cross-Wave Integration
After the final wave, before CONVERGE:
- Run the FULL test suite
- Run the FULL build
- Verify no regressions in existing functionality
Failure Handling
Failure Categories and Responses
| Failure Type | Likely Cause | Response |
|---|---|---|
| Test fails (new test) | Implementation bug | Fix the code, re-run (up to 2 retries) |
| Test fails (existing test) | Regression introduced | Identify what broke it, fix without changing the test |
| Lint error | Code style violation | Auto-fix if possible, manual fix otherwise |
| Type error | Type mismatch | Fix the types - don't use any or # type: ignore |
| Build failure | Import error, syntax error | Fix the root cause, re-build |
| Runtime error | Logic bug, missing dependency | Debug, fix, re-verify |
Retry Budget
- Each sub-task gets a maximum of 2 retry attempts
- Each retry includes the previous failure context in the agent prompt
- If all retries are exhausted, the task is marked
failed
Escalation Protocol
When a task is marked failed:
- Write a failure summary to the board including:
- What was attempted
- What failed and why
- All error outputs from each attempt
- Flag the task for user attention
- Continue with non-dependent tasks
- Do NOT attempt workarounds that bypass tests or checks
What NOT to Do on Failure
- Do NOT suppress or skip failing tests
- Do NOT add
@ts-ignore,// eslint-disable, or# type: ignoreto pass checks - Do NOT reduce test coverage to make the suite pass
- Do NOT modify existing passing tests to accommodate bugs
- Do NOT mark a task as "done" if any verification signal fails
Verification Report Format
Each sub-task's verification results are recorded on the board in this format:
### Verification: SH-{id}
- Status: PASS | FAIL
- Tests: {passed}/{total} passing ({new_tests} new tests added)
- Lint: clean | {N} issues
- Type Check: pass | {N} errors
- Build: pass | fail
- Retries Used: {N}/2
- Notes: {any relevant context}Example - Passing Task
### Verification: SH-003
- Status: PASS
- Tests: 24/24 passing (8 new tests added)
- Lint: clean
- Type Check: pass
- Build: pass
- Retries Used: 0/2
- Notes: All acceptance criteria verifiedExample - Failed Task
### Verification: SH-006
- Status: FAIL
- Tests: 18/21 passing (3 failures in notification delivery tests)
- Lint: clean
- Type Check: pass
- Build: pass
- Retries Used: 2/2
- Notes: Email service mock not matching production API response format.
Needs user input on correct response schema. See error log below.
Error: Expected {status: "sent"} but received {status: "queued", id: "..."} wave-execution.md
Wave Execution Model
This reference covers how to orchestrate parallel execution of sub-tasks in waves, including agent management, prompt templates, blocked task handling, and error recovery.
Execution Overview
for each wave in [Wave 1, Wave 2, ..., Wave N]:
1. Gather all tasks in this wave
2. For each task, prepare the agent prompt from the board
3. Launch parallel agents (one per task)
4. Wait for all agents to complete
5. Update board with results
6. Run cross-task verification for this wave
7. Resolve any conflicts between parallel outputs
8. Proceed to next waveAgent Orchestration
Claude Code (Primary Platform)
Parallel Agents via Agent Tool: Launch multiple Agent tool calls in a single message. Each agent runs independently with its own context.
Agent 1: Execute SH-002 (Database schema)
Agent 2: Execute SH-003 (API router setup)
Agent 3: Execute SH-004 (Config files)Worktree Isolation (for file-conflict-prone tasks):
Use isolation: "worktree" when tasks in the same wave might touch overlapping files. Each agent gets an isolated copy of the repo. Changes are merged back after the wave completes.
When to use worktrees:
- Two tasks in the same wave modify the same directory
- Tasks create files with potential naming conflicts
- Complex refactors where intermediate states might conflict
When NOT to use worktrees:
- Tasks touch completely different directories
- Simple additions with no overlap
- The overhead of merging isn't worth the isolation
Other Platforms (Adaptable)
The wave model works with any agent system that supports:
- Spawning multiple independent execution contexts
- Waiting for all contexts to complete
- Collecting results from each context
Agent Prompt Template
Each agent receives a structured prompt derived from the board. Use this template:
## Task: {task.id} - {task.title}
### Context
{task.description}
### Research Notes
{task.research_notes from DISCOVER phase}
### Execution Plan
- Files to create/modify: {task.plan.files}
- Test files: {task.plan.test_files}
- Approach: {task.plan.approach}
### Acceptance Criteria
{task.plan.acceptance_criteria}
### Instructions
1. Write tests FIRST based on the acceptance criteria
2. Run the tests - they should FAIL (red phase)
3. Implement the code to make the tests pass (green phase)
4. Refactor if needed, ensuring tests still pass (refactor phase)
5. Run lint and type-check on all modified files
6. Report: files changed, tests written, tests passing, any issues
### Constraints
- Follow existing project conventions found in research notes
- Reuse existing utilities identified in research: {task.research.reusable_code}
- Do NOT modify files outside the planned scope
- If blocked, report the blocker instead of working around itTemplate Customization by Task Type
For code tasks: Use the full TDD template above.
For test tasks: Skip the "write tests first" step - the task IS writing tests.
### Instructions
1. Write comprehensive tests for: {what_is_being_tested}
2. Include: happy path, edge cases, error scenarios
3. Run the tests to verify they pass against the existing implementation
4. Report: test count, coverage if available, any gaps identifiedFor docs tasks: No TDD, focus on accuracy.
### Instructions
1. Review the code/API that needs documentation
2. Write documentation following the project's existing doc style
3. Verify all code examples are syntactically correct
4. Report: files created/modified, sections coveredFor config/infra tasks: Verify by running the tool/build.
### Instructions
1. Create/modify configuration files as planned
2. Verify the configuration works by running the relevant tool
3. Report: files changed, verification outputHandling Blocked Tasks
What Causes Blocks
- A dependency task failed and its output isn't available
- An external service is unavailable during DISCOVER
- The planned approach turns out to be infeasible during EXECUTE
- A file conflict is detected between parallel tasks
Block Resolution Protocol
When a task is blocked:
1. Mark task status as "blocked" on the board
2. Record the blocker reason: {why it's blocked}
3. Record the blocking task ID (if applicable): {SH-XXX}
4. Continue executing non-blocked tasks in the current wave
5. After wave completes, reassess blocked tasks:
a. If blocker is resolved -> add task to next wave
b. If blocker persists -> flag for user attention
c. If task can be approached differently -> revise plan and retryDynamic Re-Waving
If blocked tasks need to be rescheduled:
- Remove the blocked task from its current wave
- Recalculate its earliest possible wave based on resolved dependencies
- Insert it into the appropriate wave
- Update the board with the revised wave plan
Error Recovery
Failure Categories
| Category | Action | Max Retries |
|---|---|---|
| Test failure (code bug) | Fix the code, re-run tests | 2 |
| Lint/type error | Fix the issue, re-run check | 2 |
| Build failure | Investigate root cause, fix | 1 |
| Agent crash/timeout | Restart agent with same prompt | 1 |
| Merge conflict | Resolve conflict, re-verify | 1 |
| Fundamental approach failure | Revise plan, flag for user | 0 (needs user input) |
Retry Protocol
When a task fails:
1. Capture the error output
2. Determine the failure category
3. If retries remaining:
a. Append error context to the agent prompt
b. Re-run the agent with: "Previous attempt failed because: {error}. Fix and retry."
c. Decrement retry counter
4. If no retries remaining:
a. Mark task as "failed" on the board
b. Record the failure reason and all attempt logs
c. Flag for user attention with a clear summary
d. Continue with other tasks - don't block the waveCascade Failure Prevention
If a Wave N task fails and Wave N+1 tasks depend on it:
- Mark dependent tasks as "blocked" (not "failed")
- Execute non-dependent tasks in Wave N+1 normally
- If the failed task is eventually fixed (via retry or user intervention), unblock and execute dependents
Cross-Task Verification (Post-Wave)
After all tasks in a wave complete:
- File Conflict Check: Verify no two agents modified the same file in conflicting ways
- Interface Compatibility: If tasks defined shared interfaces, verify they match
- Import Resolution: Verify all cross-task imports resolve correctly
- Combined Build: Run the build with all wave outputs combined
- Combined Tests: Run the test suite for all tasks in the wave
If conflicts are detected:
- Identify which tasks conflict
- Determine priority (earlier task ID wins by default)
- Resolve the conflict
- Re-verify the resolution
Performance Guidelines
Optimal Wave Size
- 1-3 tasks per wave: Efficient, low coordination overhead
- 4-6 tasks per wave: Good parallelism, manageable verification
- 7+ tasks per wave: Consider splitting into sub-waves to reduce blast radius of failures
Agent Resource Management
- Each parallel agent consumes context window and compute
- For resource-constrained environments, limit concurrent agents to 3-4
- Use
run_in_background: truefor independent tasks that don't block your next action
When to Skip Parallelism
- Wave has only 1 task (obvious)
- All tasks in the wave modify the same file (serialize to prevent conflicts)
- Tasks have implicit dependencies not captured in the DAG (rare, indicates decomposition issue)
Frequently Asked Questions
What is super-human?
AI-native software development lifecycle that replaces traditional SDLC. Triggers on "plan and build", "break this into tasks", "build this feature end-to-end", "sprint plan this", "super-human this", or any multi-step development task. Decomposes work into dependency-graphed sub-tasks, executes in parallel waves with TDD verification, and tracks progress on a persistent board. Handles features, refactors, greenfield projects, and migrations.
How do I install super-human?
Run npx skills add AbsolutelySkilled/AbsolutelySkilled --skill super-human in your terminal. The skill will be immediately available in your AI coding agent.
What AI agents support super-human?
super-human works with claude-code, gemini-cli, openai-codex, mcp. Install it once and use it across any supported AI coding agent.