Expand description
Brainstorming with the pair: existing pieces, paired in ways nobody has.
The premise is that the parts of an answer usually exist already, in the problem’s own field or an adjacent one, and what is missing is the pairing. So the agents are not asked to invent. They are asked to take inventory of what exists and then to combine, and every idea has to name its parts and the nearest thing that already does something like it.
Nothing is edited between rounds, so the custody loop in crate::review
does not apply. The shape is the one spar review uses:
- Diverge. Both agents propose at the same time, neither seeing the other. An idea both reach on their own is the strongest signal there is.
- Cross. Each reads only the other’s ideas and, for each, builds on it with a further piece, challenges it by naming where it already exists or why it cannot work, or keeps it. These are the middle rounds.
- Converge. Whoever proposed a challenged idea defends it with specifics or withdraws it, and both rank what is left.
The settle is mechanical. Nothing here lets one agent overrule the other: an idea leaves the set only when its own proposer withdraws it or never answers the objection, and the order is the sum of two rankings.
Structs§
- Candidate
- One idea, with everything the rounds said about it.
- Outcome
- What a session produced.
- Session
- What one
spar brainstormwas asked for.
Enums§
- Standing
- Where an idea stands after the rounds that have run.
Functions§
- apply_
converge - One agent’s defences and ranking onto the set.
- apply_
cross - One agent’s rulings onto the set. Builds are collected rather than pushed so a build cannot be ruled on in the round that produced it.
- date_
line 2026-09-12 14:03 UTC, for the header a person reads.- default_
path - Where a session goes unless
--outsays otherwise. - file_
ideas - File each idea, or add it to the issue that already covers it. One failure does not stop the rest; the write ledger makes the exit status say so.
- file_
stamp yyyymmdd-hhmmssin UTC, for a file name that sorts by when it was made.- idea_
sections - The six sections an idea is written in, wherever it is written.
- issue_
body - The whole body of an idea as it is filed: the sections and the discussion.
- issue_
entries - What the kept ideas become when filed from a live run.
- merge
- Both lists into one numbered set. An idea both agents reached is kept once, in the longer wording, with both names on it.
- now_
secs - parse_
session - The ideas in a saved session, as title and body, with the provenance line taken out of each body so what is filed carries no agent’s name.
- print_
summary - What the terminal gets: the kept ideas in order, and where the rest went.
- render_
session - The session file.
- run
- Run the rounds and settle the set.
- settle
- Keep the best
wanted, and say why the rest were set aside. - slug
- A file name fragment from a topic: lowercase, runs of anything but a letter or digit collapsed to one hyphen, cut at a word, “idea” when nothing is left.