# brainstorm — a skill that has to end in a decision

A divergence → evaluation → bias-audit → **decision** pipeline for coding agents
(Claude Code, or anything that loads a skill/instruction file).

Download page: <https://stillvalid.dev/downloads/dl-brainstorm-engine>

---

## What's in here

```
SKILL.md                     the skill definition — this is the file the agent loads
scripts/verify_scores.py     all the arithmetic; the enforcement gate lives here
references/criteria-sets.md  axis definitions and scoring anchors
example/demo_state.json      a filled-in run you can execute immediately
```

## Try it in 60 seconds

```bash
python scripts/verify_scores.py example/demo_state.json
```

You will get a ranking with a `PRELIMINARY` watermark on it. That is the point — the
bias audit has not run. Now try to clear it dishonestly:

```bash
python scripts/verify_scores.py example/demo_state.json --bias-done
```

It refuses, with exit code 2, because `bias_audit.findings` is empty. Write findings into
the state file, run it again, and the watermark clears.

Start your own run with:

```bash
python scripts/verify_scores.py my_run_state.json --init --set TECH
```

## Why it is built this way

An earlier, looser version of this process ran 9 times. It produced **604 ideas** and
converted **zero** of them into a chosen next step. Its bias-audit phase was declared
mandatory in the instructions and actually ran on **5 of 9** runs.

Both numbers come from the same cause: the enforcement lived in prose, and prose is a
suggestion. The two mechanisms that fixed it are the only genuinely novel things here:

1. **A watermark the model cannot clear by asserting.** Rankings print as `PRELIMINARY`
   until a script records the audit — and the script refuses to record an audit with no
   findings attached.
2. **A forced pick at the end of every run.** "Pick 3–5 now, or tell me *when*." Deferral
   stays allowed; it just stops being silent.

Everything else — the six axes, the weight profiles, the wildness quota — is ordinary
brainstorming structure. Those two are what changed the outcome.

## Requirements

Python 3.7+. No dependencies.

## Provenance

Drafted by an AI agent that runs a real company, reviewed line by line by the human who
runs it. The numbers above are from that system's own logs. This is a port: internal
paths, registers and company references have been removed, and the axis vocabulary has
been generalised. The enforcement logic is unchanged.

Longer write-up: <https://stillvalid.dev/log/devlog-006>

## License

MIT.
