Skip to content

feat(ideation): capture-first default — lean brainstorm, idea import, techniques on demand#11

Open
ydmitry wants to merge 3 commits into
agentlogbooks:mainfrom
ydmitry:feat/ideation-capture-first-default
Open

feat(ideation): capture-first default — lean brainstorm, idea import, techniques on demand#11
ydmitry wants to merge 3 commits into
agentlogbooks:mainfrom
ydmitry:feat/ideation-capture-first-default

Conversation

@ydmitry

@ydmitry ydmitry commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

What & why

Inverts the ideation skill's default from frame-first machinery to capture-first:

  • Default (no signal): one plain generate.brainstorm call — no framing checkpoint, no persona fan-out, no compare report. A blind A/B showed a single plain call matches or beats the old 2-persona starter default on substance (4.09 vs 3.88), relevance (4.5 vs 3.88) and mechanism diversity (13 vs 11.5); 4/4 blind judges preferred plain.
  • Ingest: new generate.import operator stores the user's own ideas; being a generate.* op it rides the Step-5B emit loop, so imports populate the live wall (closes a validated "can't feed my own ideas" gap).
  • Light-frame precondition (frame.light) resolves the not-null frame FK without a framing pause; real framing is deferred (frame-on-first-iterate).
  • starter demoted to opt-in (--techniques); every operator/playbook is kept and surfaced via the Step 6 technique menu.

New operators: generate.brainstorm, generate.import. Planner Step 3 routing reworked (3a ingest / 3b opt-in / 3c lean default).

Evidence (stress-test/)

Backed by a multi-track measurement harness (blind, position-swapped A/B throughout):

  • UX stress test + dynamic live-wall prototype
  • Quality loops A–E (idea-substance interventions — all null/marginal)
  • the plain-vs-starter gate (justifies the lean default)
  • import→iterate→visualize validation (found the FEED gap this PR closes)
  • the capture-first stress test (caught + fixed a min_cohort linter break that broke the operator catalog, plus a half-done starter demotion)
  • Tracks F/G/H — classical techniques (Reverse Brainstorming, SCAMPER, Six Hats) as generators and as transforms. They support the "techniques stay opt-in" decision: technique-choice is noise, while developing a captured idea is the real lever.

Validation status (honest)

Validated by spec review + CLI plumbing (list-operators --format json loads all 28 operators), a reproduced linter break, and an adversarial multi-agent re-check. Not yet a full interactive orchestrator→planner→subagent run.

Notes

  • live/serve.py and live/view.html (separate in-progress visualization WIP) are intentionally excluded from this PR.
  • The stress-test/ analysis is bundled as evidence — happy to drop it for a code-only PR if preferred.

ydmitry added 3 commits June 7, 2026 10:37
… techniques on demand

Invert the default from frame-first machinery to capture-first:

- DEFAULT (no clear signal): one plain `generate.brainstorm` call — no
  framing checkpoint, no persona fan-out, no compare report. Backed by a
  blind A/B: plain beats the old 2-persona `starter` on substance (4.09 vs
  3.88), relevance (4.5 vs 3.88) and mechanism diversity (13 vs 11.5); 4/4
  judges prefer plain. (The win is architectural — one self-deduping agent
  vs two blind parallel personas — not a claim that techniques are bad.)
- INGEST: new `generate.import` operator stores the user's own ideas; being
  a generate.* op it rides the Step-5B emit loop, so imports populate the
  live wall at ingest (closes the previously-validated FEED gap).
- Light-frame precondition (`frame.light`) resolves the frame FK without a
  framing pause; real framing deferred (frame-on-first-iterate).
- `starter` demoted to opt-in (`--techniques`); all operators/playbooks
  kept and surfaced via the Step 6 technique menu (discoverability).

New operators: generate.brainstorm, generate.import. Planner Step 3 routing
reworked (3a ingest / 3b opt-in / 3c lean default). Stress-tested via a
multi-agent workflow; all findings fixed (min_cohort linter break, finished
starter demotion in playbook sources, --import wiring, stale avoid_when
pointers, regenerated operator reference).

Note: live/serve.py and live/view.html (separate in-progress viz work) are
intentionally left uncommitted.
…analysis

The working harness and reports behind the capture-first redesign:
- UX stress test + dynamic-wall prototype (STRESS-TEST-REPORT.md, view.dynamic.html, replay harness, screenshots)
- quality loops Tracks A–E (idea-substance interventions: all null/marginal; QUALITY-LOOP-REPORT.md + *-result.json + workflow scripts)
- plain-vs-starter gate (the A/B that justifies the lean default)
- import→iterate→visualize journey validation (VALIDATION-import-iterate-visualize.md)
- capture-first stress test + punch-list (STRESS-TEST-capture-first.md) and the new-default specs/operators (new-default/)

Evidence and analysis only; not loaded by the skill at runtime.
Follow-on quality-loop experiments on whether classical techniques
(Reverse Brainstorming, SCAMPER, Six Thinking Hats) beat a plain call —
evidence for the redesign's "techniques stay opt-in" decision:

- Track F (as generators): none beat plain (4 tech-wins / 7 plain); plain
  is the most mechanically diverse arm. Idea substance is model-bound.
- Track G (as transforms on captured ideas): technique-choice is noise,
  but developing a seed beats the raw seed 8/8 — developing is the lever.
- Track H (4 frames + why-analysis): confirmed and explained — the model
  already makes the high-value moves; most ideas have one obvious fix.

Adds track-{f,g,h} results + reports, QUALITY-LOOP-REPORT addenda, and the
experiment extracts. Evidence only; not loaded by the skill at runtime.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant