{"id":48085188,"url":"https://github.com/rmolines/fractal-loop","last_synced_at":"2026-04-20T01:00:43.275Z","repository":{"id":344506205,"uuid":"1182048693","full_name":"rmolines/fractal-loop","owner":"rmolines","description":"Recursive project management for Claude Code. One primitive, any scale.","archived":false,"fork":false,"pushed_at":"2026-03-18T21:14:53.000Z","size":684,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-19T06:32:17.671Z","etag":null,"topics":["ai-agents","anthropic","claude","claude-code","plugin","project-management","recursive"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rmolines.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-15T01:01:54.000Z","updated_at":"2026-03-19T05:29:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rmolines/fractal-loop","commit_stats":null,"previous_names":["rmolines/openpredicate","rmolines/fractal","rmolines/fractal-loop"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/rmolines/fractal-loop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmolines%2Ffractal-loop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmolines%2Ffractal-loop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmolines%2Ffractal-loop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmolines%2Ffractal-loop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rmolines","download_url":"https://codeload.github.com/rmolines/fractal-loop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmolines%2Ffractal-loop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32028547,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"ssl_error","status_checked_at":"2026-04-20T00:17:31.068Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","anthropic","claude","claude-code","plugin","project-management","recursive"],"created_at":"2026-04-04T15:14:13.314Z","updated_at":"2026-04-20T01:00:43.266Z","avatar_url":"https://github.com/rmolines.png","language":"Shell","funding_links":[],"categories":["Plugins"],"sub_categories":["All Plugins"],"readme":"# 🪾 Fractal Loop\n\n**Recursive project management for Claude Code. State a goal — it figures out what to do next.**\n\n![version](https://img.shields.io/badge/version-0.9.0-blue) ![license](https://img.shields.io/badge/license-MIT-green)\n\n[Install](#install) · [How it works](#how) · [Skills](#skills) · [Full spec](./LAW.md) · [Theory](./THEORY.md)\n\nFractal Loop is a Claude Code plugin that decomposes goals into verifiable predicates and always works on the riskiest unknown first. You state an objective. The agent picks the piece with the most uncertainty, works on it, then reassesses. When a path fails, it backs up and tries another. Same operation at every scale. Works on any project.\n\n## How\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/fractal-recursion.png\" alt=\"Fractal Loop — recursive decomposition\" width=\"600\"\u003e\n\u003c/p\u003e\n\nYou give it a goal. It turns that into a verifiable condition, breaks it down one\npiece at a time, and always picks the piece that reduces the most uncertainty.\n\n```\n$ /fractal:init I want to build an open-source Granola — local meeting\n  recorder that transcribes and feeds context into Claude Code via MCP\n\n\u003e Before I write the root predicate: are you capturing system audio\n\u003e (the call), microphone (your voice), or both?\n\nBoth. I want the full conversation, locally, no cloud.\n\n\u003e Predicate: \"Users run a local MCP server that captures meeting audio,\n\u003e transcribes it, and exposes structured notes to Claude Code —\n\u003e no data leaves the machine.\"\n\u003e Create the tree?\n\nYes.\n\n\u003e Biggest risk: whether macOS even allows capturing system audio\n\u003e programmatically without a kernel extension. If it doesn't, the\n\u003e entire approach changes. Starting with a spike on ScreenCaptureKit.\n```\n\nA few days later:\n\n```\n$ /fractal:run\n\n\u003e Reading tree... 8 nodes. 3 satisfied, 5 pending.\n\u003e \"screencapturekit-spike\" satisfied — system audio capture works\n\u003e without kernel extension on macOS 13+.\n\u003e Re-evaluating parent... next risk: chunking live audio into\n\u003e segments the transcription model can handle. Starting there.\n```\n\nSession dies, you come back, run `/fractal:run`. It reads the filesystem\nand picks up where it left off. When a piece is done, the parent gets\nre-evaluated — maybe it needs another piece, maybe the whole direction\nwas wrong and it prunes the branch and tries something else.\n\n## Install\n\nRequires [Claude Code](https://claude.ai/code) with plugin support.\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/rmolines/fractal-loop/master/install.sh | bash\n```\n\nStart a new session and run `/fractal:run` in any repo. Override the install path\nwith `INSTALL_DIR=~/your/path` before the curl command.\n\n## How is this different?\n\nOther tools ask you to decompose upfront. You write a PRD, it becomes a task\nlist, the agent follows the list. If a task turns out wrong, you fix the list.\n\nFractal Loop doesn't need a list. You state the goal, it picks the riskiest piece,\nworks on it, then reassesses. If a path doesn't work out, it backs up and tries\nanother.\n\n**vs. [Task Master](https://github.com/eyaltoledano/claude-task-master) (~27k stars):**\nPRD becomes a flat task list. No re-evaluation after each task.\n\n**vs. [BMAD Method](https://github.com/bmad-code-org/BMAD-METHOD):**\nSpecialized agents per phase (PM, Architect, Developer). Rich but rigid — six\nphases in fixed order.\n\n**vs. [CCPM](https://github.com/automazeio/ccpm):**\nGitHub Issues + worktrees. Sound state management but fixed hierarchy. Doesn't\nhandle plan invalidation.\n\n**vs. native Claude Code Tasks:**\nGood for checklists. Not for goal decomposition.\n\n**What fractal does differently:**\n- Conditions, not tasks. \"Users can authenticate with Google\" vs. \"implement auth.\"\n- One recursive primitive at every scale. No fixed hierarchy.\n- One child at a time. Re-evaluate the parent after each.\n- Pruning is a feature. Failed path → back up → try another.\n- The tree is the plan, the log, and the state. Nothing else to maintain.\n\n## The operation\n\nOne recursive function. Same structure at every scale.\n\n```\nfractal(predicate):\n  discover(predicate)        → branch | leaf | unachievable\n  if unachievable            → prune\n  if leaf, patch can satisfy → patch → human validates\n  if leaf, cycle needed      → prd → plan → build → review → ship → human validates\n  if branch                  → find riskiest child → human validates → recurse\n```\n\n## This is fractal's own tree\n\nThe project manages itself with the same primitive it gives you.\n\n```\n.fractal ○  \"developers using Claude Code discover fractal, understand the value...\"\n├── validated-market-need ✓ — \"Pain confirmed, no equivalent tool exists\"\n├── mapped-user-journey ✓ — \"8-step journey from discovery to retention\"\n│   ├── added-session-example ✓ — \"Concrete demo in README before install\"\n│   └── clarified-skill-hierarchy ✓ — \"Separated 'you use' from 'runs internally'\"\n├── picks-riskiest-piece-first ○\n│   ├── defined-scoring-rubric ✓ — \"Uncertainty × impact × return\"\n│   ├── scores-persisted ✓ — \"Recorded in each node's discovery file\"\n│   └── auto-selection-by-score ○\n├── enforces-engineering-standards ✓ — \"Auto-generates, consumes, and updates standards\"\n├── resumes-where-you-left-off ✓ — \"Each session discovers its own focus\"\n├── runs-parallel-sessions-safely ✓ — \"Locks force concurrent work onto sibling branches\"\n├── recursive-skill-invocation ○\n│   ├── descend-into-children ✓ — \"Self-invocation pattern validated\"\n│   └── return-to-parent ✗\n├── captures-ideas-bottom-up ○\n│   └── reframes-raw-input ✓ — \"/fractal:propose turns tasks into conditions\"\n├── outsider-validation ○\n├── multi-channel-distribution ○\n├── competitive-positioning ✓ — \"Compared against Task Master, BMAD, CCPM, ICM\"\n├── validates-assumptions-first ✓ — \"Web search before acting on stale knowledge\"\n└── html-dashboard ✓ — \"Standalone viewer, no dependencies\"\n\n88 nodes · 48 satisfied · 39 pending · 1 pruned\n```\n\nThe pruned node (`return-to-parent`) was an approach that didn't work. The system\nrecognized it, backed up, and tried something else. That's the point.\n\nEach satisfied node writes a `conclusion.md` — what was achieved, key decisions,\ndeferred items. Any future session reads conclusions instead of loading every\nfile. The tree is its own documentation.\n\n## What it actually does\n\n**Risk-first ordering.** The evaluator scores each candidate by uncertainty,\nimpact, and return. Highest uncertainty gets worked first — kill the unknown\nbefore optimizing value delivery.\n\n**Session continuity.** Die mid-sprint, come back next week. `/fractal:run`\nreads the filesystem and picks up where you left off. No global pointer to fight\nover.\n\n**Parallel sessions.** Session locks prevent two sessions from working the same\nnode. Run multiple Claude Code sessions on the same project safely.\n\n**Fast path.** `/fractal:patch` handles small changes without the full sprint\ncycle. Only the final validation is human.\n\n**Bottom-up capture.** `/fractal:propose` takes a raw idea, reframes it into a\nverifiable condition, and places it in the tree.\n\n**Objection trees.** `/fractal:init-objection` applies the same primitive in\nreverse — decomposes challenges instead of goals. \"You can't do X\" becomes the\nroot, children are reasons it might be true, satisfaction means refutation.\nDurable refutation required: the capability must survive session reset.\n\n**Sprint agent.** The planning → delivery → review → ship cycle runs as a\nsingle subagent with no human gates. The review is the quality gate. You\nvalidate only the final result.\n\n**Engineering standards.** `/fractal:init` generates `.claude/standards.md` from\nyour codebase. Each delivery auto-updates it so standards never drift.\n\n## Skills\n\n**You use:**\n- `/fractal:init` — state an objective, create the tree.\n- `/fractal:run` — advance one step. Call repeatedly to converge on the goal.\n- `/fractal:init-objection` — stress-test a plan. Decomposes challenges instead of goals.\n- `/fractal:propose` — capture a raw idea, reframe it, place it in the tree.\n- `/fractal:view` — open the HTML dashboard in your browser.\n\n**Runs internally:**\n- `/fractal:patch` — fast path for small changes.\n- `/fractal:planning` → `/fractal:delivery` → `/fractal:review` → `/fractal:ship` — the sprint cycle.\n- `/fractal:doctor` — tree integrity validation.\n\n## Full spec\n\n[LAW.md](./LAW.md) for the formal specification. [THEORY.md](./THEORY.md) for the\ntheoretical grounding — how the primitive converges with HTN planning, reinforcement\nlearning options, model predictive control, and four other fields.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frmolines%2Ffractal-loop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frmolines%2Ffractal-loop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frmolines%2Ffractal-loop/lists"}