Problem
`scoreIdeas` and `clusterIdeas` in src/engine.ts send every generated idea to the critic in a single prompt:
```ts
IDEAS (id → text):
${ideas.map((i) => `${i.id} :: ${i.text}`).join("\n")}
```
At `--frames 20 --ideas 50` (both allowed by the CLI's `positiveInt` caps in src/cli.ts) that's up to 1000 ideas in one critic call — context overload degrades scoring quality and risks truncated/invalid JSON.
Proposal
- Chunk ideas into batches (e.g. 40-idea windows) for scoring, run batches in parallel via the existing `pLimit` concurrency control.
- For clustering, either chunk-then-merge clusters by label similarity, or run a two-pass approach: cluster within chunks, then a final small pass to merge cross-chunk clusters with the same underlying angle.
- Add a warning `RunEvent` when idea count exceeds a safe single-call threshold, even before chunking ships, so users understand today's quality cliff.
(Re-filed as part of a backlog reset; previously tracked as #7.)
Problem
`scoreIdeas` and `clusterIdeas` in src/engine.ts send every generated idea to the critic in a single prompt:
```ts
IDEAS (id → text):
${ideas.map((i) => `${i.id} :: ${i.text}`).join("\n")}
```
At `--frames 20 --ideas 50` (both allowed by the CLI's `positiveInt` caps in src/cli.ts) that's up to 1000 ideas in one critic call — context overload degrades scoring quality and risks truncated/invalid JSON.
Proposal
(Re-filed as part of a backlog reset; previously tracked as #7.)