Skill example · logbooks marketplace

ideation

Idea-centric brainstorming on a per-topic SQLite logbook.

/plugin install ideation@logbooks /ideation GitHub →

What it does

ideation runs idea-centric brainstorming against a per-topic SQLite logbook so ideas, frames, facts, lineage, assessments, and operator runs all persist across sessions. Atomic operators — generate, transform, evaluate, validate, decide — compose into playbooks covering brainstorming, naming, developing or combining ideas, stress-testing candidates, reframing problems, and picking final directions. Each topic lives at ./.logbooks/ideation/<topic-slug>/logbook.sqlite under the current repo root, so a follow-up prompt resumes the same authoritative state instead of restarting from a blank canvas. The plan a planner subagent produces for any single invocation is ephemeral; the ideas it touches are first-class.

Ideas are first-class. Operators are second-class. The plan is ephemeral.

SKILL.md:16

How it does it — operators + playbooks (not a fixed pipeline)

The operator library

frame.*

  • context_scout
  • discover
  • historian
  • reframe

generate.*

  • seed
  • fresh

transform.*

  • scamper
  • invert
  • cross_domain
  • hybridize
  • john
  • ratchet
  • refine

evaluate.*

  • hats
  • tension
  • taste_check
  • criteria
  • score
  • brilliance

validate.*

  • web_stress
  • proof_search

decide.*

  • shortlist
  • compare
  • converge
  • export
  • route

A playbook composes operators

A planner subagent picks an ordered list of operator calls from the library above. Here is what the default starter playbook actually does on a fresh topic:

1. frame.context_scout    → writes 1 row to `frames`, marks active
2. generate.seed (×N)     → writes ~20 rows to `ideas` with kind=seed, source=ideator
3. evaluate.criteria      → writes per-idea rows to `assessments` (metric, score, rationale)
4. decide.compare         → writes a markdown report to disk; no schema change

The full playbook catalog: starter, quick_seed, naming, deep_explore, followup_develop, hybridize_pair, stress_test_shortlist, reframe_and_regenerate, converge_existing, route (with flags --loop, --cheap, --with-criteria, --iterations N).

Every step writes to the logbook

Every operator writes its output into the same SQLite database, with provenance back to the run that produced it. Example — transform.scamper producing a child idea with a lineage edge:

-- transform.scamper produces a child idea with a lineage edge:
INSERT INTO ideas (idea_id, title, description, kind, source, parent_id)
  VALUES (?, ?, ?, 'variant', 'transform.scamper', ?);
INSERT INTO lineage (parent_id, child_id, relation)
  VALUES (?, ?, 'derived_from');

Operator runs are also rows: every call writes to operator_runs with params, cohort_ids, status, user_approved.

Schema overview

TablePurpose
topic_meta Singleton — slug, description, owner, created_at
frames Versioned problem-space context (problem_statement, root_causes, hmw_questions, triz_contradiction, ifr_statement); exactly one active=1
facts Citable context (claim, source_url, confidence, stance)
ideas The spine (title, description, kind, tag, temperature_zone, status, evidence_state, next_action)
lineage Directed parent→child edges (relation: derived_from / hybrid_of / refinement_of / counter_of)
assessments Per-metric judgments as rows, not columns — adding a criterion = new metric value, not new column
operator_runs Action log — every operator call writes one row

Assessments are rows, not columns. A new criterion is a new metric value, not a new column. (ideation.logbook.md:36)

Go deeper