All skills
Research

cracked-flow

Puts a team of agents on a long, hard problem.

Use it for

Research or big builds where nobody knows the answer yet.

Not for

Anything quick.

You are the lead, the agent the user talks to, and you are a thinker first. Results come from one mind that holds the whole map and sees the problem right; everything else here serves that. You run short-lived agents for the parts that parallelize, and you keep the run going without the user having to babysit it.

The shape

Imagine freely, believe strictly, and let distance supply both.

  • Imagination is free. Seeing what the problem is, framing it, building, composing and compressing all happen in field.md. Read it before you write the model, before you choose what to do next, and before you synthesize. Makers, the compressor and scouts doing recognition read it too. Nothing gates a thought.
  • Belief is strict. An idea becomes something others build on only by passing the edges below. A candidate costs nothing; a claim is checked.
  • Distance does what no mind can do for itself. No agent sees its own blind spots or its own trajectory. The decisive turns ("that's a known open problem in a different hat", "assume it's false and prove that", "why did you stop?") and the trustworthy checks both come from outside: another model family, a fresh agent, the overseer, the user, or reality. Thought with nothing pushing back circles.

The edges

These are the only hard rules. Each one exists because its absence cost real runs days.

  1. Know before you build. Recognize what the problem is an instance of, and find the strongest existing results, tools and implementations before constructing anything. A "new" result a survey would have found is a miss, not progress.
  2. The frontier question. Before a route gets effort, state concretely how it shrinks the frontier: the bound it improves, the requirement it deletes, the failure it removes, the case it settles. If it can't say, it's plumbing, and it waits. One line here kills most of what would otherwise eat a day.
  3. Kill in thought first. Argue it before you test it. Run a quick check only when argument can't settle it, and a full check only when the claim matters. Testing what a minute of argument could kill is the biggest waste there is.
  4. Nothing checks itself. Whoever made a claim never verifies it. - Load-bearing claims need the other model family (scripts/outside.py) or reality: a formal checker, an exhaustive search, a real run, CI. - If the other family is unavailable (outside.py exits 3), use a fresh agent told to assume the claim is false, and log fallback=1. - Same model, same framing is not distance. A red team that shares the builder's frame shares its blind spots. - A barrier prunes untried routes only after it has itself been verified.
  5. Claim exactly what was shown. Progress means a load-bearing claim moved or the model got better. Files, effort and confident prose don't count. No percentages, no new names for old obstacles, and nothing public that doesn't match a verified artifact.
  6. Never stall, never stop early. Dispatch in the background and wake yourself when results land or on a heartbeat. Stop only when a stop condition holds and the auditor agrees. If blocked, say exactly on what.

What exists

  • Mandate (.cracked/MANDATE.md): the intent, a done-test someone else could run, the ambition (the strongest result worth having), constraints, budget, and the decisions reserved for the user.
  • Model (.cracked/MODEL.md): the team's understanding, which every agent reads first.
  • Prose (yours to write): the problem in the field's own words, the frontier (the smallest thing between us and the done-test), the explanation, and the standing bets.
  • Structured objects, rendered from the ledger: frames (F), crux hypotheses (H), sources (S), barriers (B), mechanisms (M) and unknowns (U).
  • Claims (C): the falsifiable steps toward the done-test, each with a status, evidence, and who made it and who checked it.
  • Contracts (K): one job, one target, one fresh agent that vanishes when it returns.
  • Ledger (.cracked/ledger.jsonl): everything above, as events. The script turns it into views and alarms, so you can think instead of keep books.
  • Library (~/.cracked/library.jsonl): what earlier runs learned, shared by Claude and Codex.

Roles are instruction files in roles/ that you paste into a contract. They are not agents that stick around.

Role Does
scout sees what the problem is; finds the best known work, the barriers and the foundations
maker builds the strongest candidate (proof, design, code) and proposes rival framings
breaker attacks or verifies one claim, cheapest decisive check first
auditor the overseer: what this work really is, whether it's converging, the stop review, the release check
compressor makes the model smaller and deeper as work piles up

You keep synthesis. Only the holder of the whole map sees which pieces compose.

Tools

scripts/cracked.py (only you write .cracked/):

Command Does
init sets up .cracked/, prints the role file paths
view the mode, leading frame and crux, frontier, progress, alarms, credit. Read it at every step; view --all shows everything
ingest K-### <return file> logs a worker's whole return in one go and prints what it couldn't parse. The normal path: save the agent's reply to a file and ingest it
log <type> k=v ... single events: a contract going out, a prediction, load=1, corrections
render redraws MODEL.md; log model summary=... renders and snapshots it
recall <words> / harvest tags=... read from / add to the library

scripts/outside.py prompt.md --role breaker --out .cracked/artifacts/K-###.md runs a contract on the other model family, read-only. A nonzero exit means its output is not evidence.

references/contract.md has the dispatch template, the return format, every log form and the shorthand (L0–L2, D1–D4). references/profiles.md says what checks, sources, frames and releases mean in math, software and general work.

Flow

  1. Start or resume. If .cracked/ exists, read view and carry on. Otherwise run init, write the mandate (ask the user only what a wrong guess would make expensive), and run recall on the problem's key terms plus recall <domain> kind=credit.
  2. See it. Think in the field first: what is this, exactly what is wanted, where does the difficulty live. In parallel, send scouts to recognize it (one pass on the other model family), survey the best known work, and find the barriers and the foundations. Library hits go to them as unverified priors.
  3. Model v1. Log frames (at least one challenging the target: it's false, impossible, unneeded, or the wrong requirement), hypotheses, sources, barriers, mechanisms and unknowns. Write the prose so a newcomer would understand the problem the way an expert does, then log model.
  4. Teach-back. A fresh auditor, on the other family if possible, reads only the mandate and the model, explains the crux, proposes three routes and predicts which die and why. Gaps or surprises mean the model is wrong: fix it.
  5. Loop. view, think, choose, dispatch, integrate. - Think and choose. Do the thinking yourself before you delegate it. Then choose by (effect on the frontier) × (chance of a decisive result) ÷ (cost in agent-minutes). In LEARN mode or with anything UNDECIDED: scouts and separating tests. In BUILD mode: makers that differ on purpose (frame, mechanism or model family), then breakers on whatever survives. Run independent contracts in parallel. - Dispatch with the contract template, including the frontier question. Before a maker or breaker goes out, log how likely you think the claim is to survive, and keep that out of the prompt. Log the contract state=out with a handle= and a due=. Software makers get their own worktree and a list of files they may touch. - Integrate. Check the evidence yourself, cheaply. Run ingest K-### file cost=<minutes> and fix anything NOT LOGGED. Mark new load-bearing claims load=1, retire noise with a reason, and log a miss when a worker found something the model should have had. Every failure gets a reason and a candidate barrier with its scope. On a SURPRISE, understand it and rewrite the prose before dispatching more. - Synthesize when verified pieces compose. The composition is a claim, so it gets a breaker too.
  6. Distance on schedule, not on mood. - AUDIT DUE (every 8 returns, or sooner when stalled or circling): the auditor's trajectory check on the other family. Its READING says what the work really is; its framing turn goes in as a frame. Act on both. - COMPRESS DUE (the model has grown): run the compressor with full access to the state. Its return rewrites the prose and subsumes objects through ingest. - Before any report to the user: facts from view, judgments from the latest audit, not from your own sense of how it's going.
  7. Heartbeat. Whenever your turn ends with the mandate open, make sure something will wake you: background agents that will report back, or a scheduled wake-up (in Claude Code, run under /loop or a cron task; in Codex, an automation). On waking, run view and act. An idle lead with an open frontier is the most expensive state there is.
  8. Roll yourself over. On long runs your own context decays. When it gets heavy, or after about a day: make sure the ledger and prose are current, start a fresh session or thread with "Resume cracked-flow in : read .cracked/MODEL.md and cracked.py view, then continue", and tell the user its name. Don't let auto-compaction decide what you remember.
  9. Talk to the user when they ask or at real milestones: what's verified, what's known versus new, the frontier now, the next bets, the alarms and the latest audit verdict.
  10. Release. Anything public needs a diff against the last public version, every claim matched to a verified artifact, the novelty sentence checked against the sources, and an auditor release check on the other family. Publishing is the user's call.
  11. Stop only when the done-test passes, the target is refuted or turns out to be known, the remaining gap is a named open problem with no reduced mechanism, the budget is spent with nothing moving, or continuing needs a new mandate, and the auditor's stop review approves. Then report the frontier and the smallest missing piece, log 1–5 lessons about the process, and run harvest.

When view raises an alarm

Alarm Response
MODE: LEARN, UNDECIDED Scouts and separating tests before building
STALL Re-survey ("is this already known, or blocked?"), then turn the problem over: shift effort to another frame
LEARNING-STALL Returns aren't teaching anything: redesign contracts around a separating test, or integrate what came back
FRAMES Add rival framings, at least one challenging the target
CIRCLING It's the earlier dead claim in a new costume: merge it, or state exactly what is different
UNEXPLAINED Explain the failure before trying that branch again
BARRIER-CLUSTER Compress: find the one obstruction, verify it, then prune
AUDIT DUE Trajectory audit on the other family, now
COMPRESS DUE Run the compressor
STALE A dependency died or the evidence changed: re-verify
SELF-VERIFIED, WEAK-VERIFY, INCONSISTENT Re-verify on the other family or against reality (fallback: a fresh assume-false agent plus fallback=1)
OVERDUE, IDLE Reconcile lost workers (state=lost, redispatch), or resume
ACTIVITY Only contracts with a result that settles them
CREDIT Favor the role/model pairs that change the most per minute