Back to Explore

rmolines/fractal

Shell1 contributorsMIT
View on GitHub

Summary

Fractal is a Claude Code plugin that replaces flat task lists with a recursive predicate tree for AI-assisted project management. Instead of 'implement auth', you state 'users can authenticate with Google' and the agent decomposes it, always attacking the highest-uncertainty child node first. The entire state machine lives on disk as markdown files in a .fractal/ directory — no database, no external services.

Great for

People interested in AI-driven project orchestration systems, specifically the problem of autonomous goal decomposition with human-in-the-loop validation gates and filesystem-as-state persistence

Easy wins

  • +Fix the documented session.lock PPID bug: CLAUDE.md explicitly calls out that session locks use $PPID from a short-lived shell, meaning PIDs get recycled and locks appear permanently active — scripts/session-lock.sh needs a more robust lock strategy (e.g., lockfiles with timestamps or flock)
  • +The 'return-to-parent' node is marked pruned in the README's own tree (recursive-skill-invocation > return-to-parent shows ✗) — this is an unresolved core feature gap worth investigating and documenting as a known limitation or opening an issue for
  • +Add a CONTRIBUTING.md explaining the prompt-as-code pattern, how to test commands locally, and what 'no build step, pure shell + markdown' means in practice — the architecture is non-obvious to newcomers
  • +The statechart.ts is documentation-only but is a clean XState v5 machine — adding a runtime interpreter or at least a validation harness against the shell scripts would catch state/code drift

Red flags

  • !1 commit total — this is either a very fresh project or was developed entirely elsewhere and bulk-uploaded; the git history provides zero context for contributors
  • !The README's own .fractal tree shows 'return-to-parent' as pruned (✗), meaning the recursive self-invocation feature — the project's core differentiator — has a known unimplemented path
  • !CLAUDE.md documents a known correctness bug in session locking: PPID recycling can make locks appear permanently active, breaking the 'parallel sessions safely' guarantee advertised in the README
  • !No tests whatsoever for a tool whose value prop is reliable autonomous state management across sessions
  • !The 'auto-selection-by-score' node is marked pending (◎) in the README tree — risk-first ordering, the primary stated differentiator vs. Task Master, is not fully implemented
  • !Commands/ directory contains the actual agent logic as markdown prompt files — these are effectively unverifiable as code and untestable without Claude Code

Code quality

decent

The XState statechart in references/statechart.ts is well-structured with clear state names, documented human gates, and explicit idempotency checkpoints — it's clearly the design authority even though it's not runtime code. The CLAUDE.md architecture notes are unusually thorough for a 1-commit repo, suggesting careful upfront design. However, the actual executable logic lives in markdown prompt files (commands/*.md) which weren't surfaced as samples, so true code quality of the agent logic is unverifiable from the outside. The shell scripts are referenced but not shown — the PPID lock bug documented in CLAUDE.md itself suggests at least one known correctness issue in scripts/session-lock.sh.

What makes it unique

The predicate-vs-task distinction (verifiable conditions over imperative steps) and the single recursive primitive with risk-scoring are genuinely differentiated from Task Master's flat PRD-to-tasklist and BMAD's fixed 6-phase pipeline. The filesystem-as-state-machine design with idempotent resume is architecturally interesting. That said, the two core differentiators — risk-first auto-selection and recursive self-invocation — are both marked incomplete in the project's own self-managed tree, so the current implementation is closer to 'structured Claude Code scaffolding' than the adaptive planning system described.

Scores

Collab
2
Activity
3

Barrier to entry

high

Requires Claude Code with plugin support to even run the thing, there's no CI, no tests, no CONTRIBUTING guide, only 1 commit, 0 stars, and the core 'commands/' logic lives in markdown prompt files that require understanding Claude Code's undocumented plugin execution model to evaluate or modify.

Skills needed

Bash/shell scripting (scripts/ directory is the core runtime)Markdown-based DSL design (commands and agents are .md prompt files)Claude Code plugin architecture and slash-command conventionsState machine concepts (the XState statechart in references/statechart.ts is documentation, not runtime)Familiarity with Claude Code's subagent/tool invocation model