Idea
`FRAMES` in src/frames.ts is one flat, engineering-biased array (hardware engineer, regulator, adversary, biology, logistics, etc.), filtered by `codeMode` and a loose `tags` field. There's no way to add a domain-specific set of frames without editing this file directly.
Proposal
- Split `FRAMES` into named packs: `core` (current default), `security`, `ml-data`, `frontend`, `distsys`, `product-strategy`, `writing`.
- Each pack is its own module exporting a `Frame[]`; `selectFrames` takes a `packs?: string[]` option (default `["core"]`) and pools frames from the requested packs before shuffling.
- Add a `--pack` CLI flag (repeatable) and document pack authoring in CONTRIBUTING.md — this is the natural on-ramp for community PRs that doesn't require touching the engine.
- This is the highest-leverage change for the "no-brainer skill for creative and interdisciplinary work" pitch: right now the tool is engineering-shaped by default with no clean extension point for other domains.
Idea
`FRAMES` in src/frames.ts is one flat, engineering-biased array (hardware engineer, regulator, adversary, biology, logistics, etc.), filtered by `codeMode` and a loose `tags` field. There's no way to add a domain-specific set of frames without editing this file directly.
Proposal