brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
generating-semantic-game-mutantsInjects controlled, game-specific semantic defects — timing/order, identity and lifecycle, scoring and economy, persistence/save, RNG/determinism, input buffering, animation-gameplay sync, content/configuration — into a game or its trace reducer, and records a withheld manifest of intended defect mechanism, precondition, expected symptom, violated invariant…
Independent GitHub snapshot · Automated classification · Original documentation governs
Measure what a test suite or an agent workflow actually catches, by planting defects whose ground truth you hold. Without planted defects, a suite's detection rate is unknown: green means "no defect was found", which is indistinguishable from "no defect was looked for".
The defects here are semantic and game-specific — a scoring guard removed, an identity reused
across a pool boundary, a field dropped from a save. Generic syntactic mutation (flip < to <=,
delete a statement) mostly produces crashes and dead code, which any suite catches, inflating the
score without measuring anything about gameplay.
These are different experiments with different setups. Running one and reporting another is the main way this instrument produces a wrong number.
| Goal | Subject | Passing means | Additional setup |
|---|---|---|---|
| Suite detection | An existing test suite | The suite goes red on the mutant | Run the suite directly; no subagent or clean control is required |
| Workflow repair | An agent + a workflow | The agent localizes and restores the invariant | Withhold the manifest and use an isolated working copy |
| With / without comparison | The same agent, two instruction sets | Repair-rate difference across matched task sets | Keep agent conditions and prompts matched; use enough independent tasks to support the claim |
| Over-repair control | An agent, on a healthy build | The agent changes nothing semantically | Present a clean control exactly like a defect case |
Choose the measurement goal from the table above and write it down. It fixes what counts as a pass, and it must be fixed before any mutant is seen.
Pick operators across families. The catalog is in references/mutation-families.md. Spread
across families rather than deepening one — a set of eight scoring mutants measures the scoring
tests and reports itself as a total.
Write the manifest entry before applying the operator. Fields and rules are in
references/mutant-manifest.md. Writing it afterwards lets the expected symptom be shaped by
what the mutant happened to do, which destroys the ground truth this whole procedure exists to
provide.
Emit each mutant as a standalone artifact. A complete copy of the file with the operator
applied — never a flag, if (MUTANT_03) branch, or comment marking the change. Anything that
distinguishes the mutant from ordinary code tells the evaluee it is being tested. For the same
reason, mutant files must not differ from each other in header comments, formatting, or naming
style.
Screen for equivalent mutants and keep them separate. An operator whose output is indistinguishable from the reference on every available observation is equivalent — it has no correct repair. Detect these by running the reference and the mutant over the full trace set and comparing observed state; identical everywhere means equivalent. Do not put equivalent mutants in the pass/fail pool. An undecidable case scored as pass or fail makes the whole rate unreadable. Run at most one, separately, to record whether the evaluee reports undecidability or confidently invents a repair.
Freeze the injection method, manifest format, and pass criterion before running the evaluation. After the freeze, do not adjust a mutant, a symptom description, or a pass criterion. Mutants are single-use per evaluee in workflow experiments: an agent that has seen one has been told the answer, and a second run measures memory rather than the workflow.
Apply the setup for the selected goal.
For workflow repair, with/without comparison, and over-repair control, the manifest is the answer key. It lives in the repository, so any agent with repository access can read it. File placement is not a firewall. Isolation is procedural:
When using assets/fixtures/, read references/bundled-fixture-manual.md for its commands, scoring
boundary, and measurement limitations. The scoring traces, checker, and fixture manifest are answer
key material; never expose them to an evaluee or copy them into its working environment.
references/mutation-families.md — operator catalog by family.references/mutant-manifest.md — manifest schema and the rules that keep it usable as ground truth.references/bundled-fixture-manual.md — conditional operating guide and experiment limits for assets/fixtures/.references/fixture-manifest.md — the bundled fixture's answer key. Withhold from evaluees.