Skip to main content

Recursive task decomposition for Claude Code - domain-aware splitting and reunification

Project description

Cleave

Recursive task decomposition for Claude Code. Split complex directives along domain boundaries, execute in parallel, reunify with conflict detection.

Etymology

"Cleave" holds contradictory meanings: to split apart AND to hold fast together. This duality captures the tool's essence—we cleave tasks into independent pieces, then cleave the results back into a unified whole.

Installation

Both the CLI tool and Claude Code skill are required for full functionality.

# 1. Clone the repo
git clone git@github.com:styrene-lab/cleave.git ~/projects/cleave

# 2. Install the CLI (editable mode for easy updates)
pip install -e ~/projects/cleave

# 3. Symlink the skill definition to Claude Code's discovery path
ln -sf ~/projects/cleave/src/cleave/skill ~/.claude/skills/cleave

# 4. Verify
cleave --help

To update later:

cd ~/projects/cleave && git pull
# CLI updates automatically (editable install)
# Skill symlink remains valid

Usage

Within Claude Code

Invoke via /cleave in any Claude Code session:

/cleave

Implement user authentication with JWT tokens, ensuring backwards
compatibility with existing session-based auth. Include migration
path and tests.

Claude will:

  1. Assess complexity
  2. Split into 2-3 child tasks if needed
  3. Execute children (parallel or sequential)
  4. Reunify results with conflict detection

CLI Commands

# Assess complexity of a directive
cleave assess --directive "Add user auth with JWT"

# Match against known patterns
cleave match --directive "Add Stripe payments"

# Initialize workspace for manual execution
cleave init --directive "Add auth" --children '["Backend", "Frontend"]'

# Detect conflicts between task results
cleave conflicts --results ".cleave/0-task.md,.cleave/1-task.md"

# Reunify completed tasks
cleave reunify --workspace .cleave

Concepts

Complexity Assessment

Formula: complexity = (1 + systems) × (1 + 0.5 × modifiers)

  • Systems: Distinct architectural boundaries (UI, API, DB, external services)
  • Modifiers: State coordination, error handling, concurrency, security, etc.

If complexity > threshold, the directive gets cleaved.

Splitting Strategy

  • Binary (2): Clean frontend/backend or data/logic seams
  • Ternary (3): Multi-layer stacks (UI/API/DB)
  • Never 4+: Coordination overhead exceeds benefits

Workspace Structure

.cleave/
├── manifest.yaml      # Intent, ancestry, children, assessment
├── siblings.yaml      # Sibling coordination, file claims
├── 0-task.md          # Child 0 task file
├── 1-task.md          # Child 1 task file
├── metrics.yaml       # Telemetry
├── merge.md           # Reunification report
└── review.md          # Adversarial review

Conflict Detection

Four conflict types detected during reunification:

  1. File Overlap - Multiple children modified same file
  2. Decision Contradiction - Incompatible choices (Redis vs Memcached)
  3. Interface Mismatch - Different signatures for same function
  4. Assumption Violation - Child assumption contradicts sibling decision

Configuration

Modes

  • Lean (default): Terse output, fast-path assessment
  • Robust: Verbose reasoning, sequential thinking for all assessments

Flags

  • --no-tdd: Skip TDD workflow instructions in task files
  • --no-review: Skip adversarial review during reunification
  • --infer-permissions: Detect required bash permissions upfront

Requirements

  • Python 3.11+
  • Claude Code CLI (for skill usage)
  • Sequential Thinking MCP server (recommended for complex assessments)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

styrene_cleave-0.1.0.tar.gz (32.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

styrene_cleave-0.1.0-py3-none-any.whl (38.0 kB view details)

Uploaded Python 3

File details

Details for the file styrene_cleave-0.1.0.tar.gz.

File metadata

  • Download URL: styrene_cleave-0.1.0.tar.gz
  • Upload date:
  • Size: 32.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for styrene_cleave-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b87c50c4807f2ae7a9ce0c6103132e6f44ef7bbf1035fb2c5fc2e2c8c92fd83c
MD5 efa0a5097dc559f2f6ee28a035c343a2
BLAKE2b-256 fbc63091471863022f800f2ae1898b6533e88f9ceaf4f9c2916041be4afce603

See more details on using hashes here.

File details

Details for the file styrene_cleave-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: styrene_cleave-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 38.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for styrene_cleave-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b5e9068534d03dd1b20e1b4e673f766ae549f0bee6975f41b282c5a8202dbc5
MD5 6d9e37dec938c2bf9e3542ee8d64944c
BLAKE2b-256 ae35e45dc7888f71624e85bf3f6eafc7268df198b2541e83107b49935928456f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page