- A new frame (highest leverage, smallest change)
- An improvement to the diverge/score/cluster/deepen loop
- A new eval problem that exposes where ADHD wins or loses
- Docs / examples / launch material
Dev setup
Authoring a new frame
The cheapest, highest-leverage contribution — every new frame widens what the package can surface for the next user. A good frame pushes the generator into a corner it would not naturally drift toward; bad frames are paraphrases of an existing one. See Frames → Authoring your own for the shape, the quality bar, and how to test it in isolation.Adding an eval problem
Eval problems live inbench/problems.json. See Evals → Methodology for what makes a good problem and how to run just yours. Costs ~10 LLM calls per problem.
Loop changes (engine.ts)
The loop is small on purpose. Before changing it, read the source spec — most “improvements” violate the load-bearing invariants: If your change weakens any of these, the bar is higher. Good loop changes: recursive deepen (multi-level ToT), pluggable scorers, streaming output during divergence, cross-model support.Style
- TypeScript strict mode. No
anyunless commented why. - Comments are for why, not what. Code shows what.
- New deps need justification. Current deps:
@anthropic-ai/claude-agent-sdk,p-limit,zod— that’s already three more than the loop strictly needs. - No emojis in source (the renderer is allowed terminal symbols).
PRs
- One concern per PR.
- New frame? Include a 2-line “what this frame catches that others miss” in the PR body.
- New eval? Include the run output.
- Loop change? Include before/after on at least one eval problem.