bmad-method 6.8.1-next.0 → 6.8.1-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/package.json +1 -1
  2. package/src/bmm-skills/4-implementation/bmad-code-review/SKILL.md +3 -0
  3. package/src/bmm-skills/4-implementation/bmad-create-story/SKILL.md +3 -0
  4. package/src/bmm-skills/4-implementation/bmad-quick-dev/SKILL.md +3 -0
  5. package/src/core-skills/bmad-brainstorming/SKILL.md +78 -2
  6. package/src/core-skills/bmad-brainstorming/analysis/catalog-analysis.md +239 -0
  7. package/src/core-skills/bmad-brainstorming/analysis/method-matrix.csv +109 -0
  8. package/src/core-skills/bmad-brainstorming/assets/brain-icons.json +166 -0
  9. package/src/core-skills/bmad-brainstorming/assets/brain-methods.csv +109 -0
  10. package/src/core-skills/bmad-brainstorming/assets/brain-selector.html +326 -0
  11. package/src/core-skills/bmad-brainstorming/customize.toml +84 -0
  12. package/src/core-skills/bmad-brainstorming/references/converge.md +24 -0
  13. package/src/core-skills/bmad-brainstorming/references/finalize.md +26 -0
  14. package/src/core-skills/bmad-brainstorming/references/headless.md +54 -0
  15. package/src/core-skills/bmad-brainstorming/references/in-chat-techniques.md +18 -0
  16. package/src/core-skills/bmad-brainstorming/references/mode-autonomous.md +10 -0
  17. package/src/core-skills/bmad-brainstorming/references/mode-facilitator.md +11 -0
  18. package/src/core-skills/bmad-brainstorming/references/mode-partner.md +16 -0
  19. package/src/core-skills/bmad-brainstorming/references/resume.md +5 -0
  20. package/src/core-skills/bmad-brainstorming/scripts/brain.py +740 -0
  21. package/src/core-skills/bmad-brainstorming/scripts/memlog.py +202 -0
  22. package/src/core-skills/bmad-brainstorming/scripts/tests/test_brain.py +217 -0
  23. package/src/core-skills/bmad-brainstorming/scripts/tests/test_memlog.py +265 -0
  24. package/src/core-skills/bmad-brainstorming/brain-methods.csv +0 -62
  25. package/src/core-skills/bmad-brainstorming/steps/step-01-session-setup.md +0 -214
  26. package/src/core-skills/bmad-brainstorming/steps/step-01b-continue.md +0 -124
  27. package/src/core-skills/bmad-brainstorming/steps/step-02a-user-selected.md +0 -229
  28. package/src/core-skills/bmad-brainstorming/steps/step-02b-ai-recommended.md +0 -239
  29. package/src/core-skills/bmad-brainstorming/steps/step-02c-random-selection.md +0 -211
  30. package/src/core-skills/bmad-brainstorming/steps/step-02d-progressive-flow.md +0 -266
  31. package/src/core-skills/bmad-brainstorming/steps/step-03-technique-execution.md +0 -403
  32. package/src/core-skills/bmad-brainstorming/steps/step-04-idea-organization.md +0 -305
  33. package/src/core-skills/bmad-brainstorming/template.md +0 -15
  34. package/src/core-skills/bmad-brainstorming/workflow.md +0 -53
@@ -0,0 +1,84 @@
1
+ # DO NOT EDIT -- overwritten on every update.
2
+ #
3
+ # Workflow customization surface for bmad-brainstorming.
4
+ #
5
+ # Override files (not edited here):
6
+ # {project-root}/_bmad/custom/bmad-brainstorming.toml (team)
7
+ # {project-root}/_bmad/custom/bmad-brainstorming.user.toml (personal)
8
+
9
+ [workflow]
10
+
11
+ # --- Configurable below. Overrides merge per BMad structural rules: ---
12
+ # scalars: override wins • arrays: append
13
+
14
+ # Steps to run before the standard activation (config load, greet).
15
+ # Use for pre-flight loads, compliance checks, etc.
16
+ activation_steps_prepend = []
17
+
18
+ # Steps to run after greet but before facilitation begins.
19
+ # Use for context-heavy setup that should happen once the user has been acknowledged.
20
+ activation_steps_append = []
21
+
22
+ # Persistent facts the facilitator keeps in mind for the whole session
23
+ # (domain constraints, house rules, stylistic guardrails). Each entry is a
24
+ # literal sentence, a skill prefixed with `skill:`, or a `file:`-prefixed
25
+ # path/glob whose contents are loaded as facts. Default loads project-context.md
26
+ # if bmad-generate-project-context has produced one, giving the facilitator
27
+ # persistent awareness of the project's domain without re-asking.
28
+ persistent_facts = [
29
+ "file:{project-root}/**/project-context.md",
30
+ ]
31
+
32
+ # The technique library loaded on demand during the session. Swap the path in
33
+ # team/user TOML to ship a different or extended catalog of creative methods.
34
+ # Kept `{skill-root}`-anchored so it resolves regardless of the working directory
35
+ # (brain.py is always invoked with `--file {workflow.brain_methods}`).
36
+ brain_methods = "{skill-root}/assets/brain-methods.csv"
37
+
38
+ # Techniques the facilitator should reach for first. When proposing a method
39
+ # (the AI-led default), it prefers these where they fit the goal before ranging
40
+ # wider. Names should match an entry in the library or in additional_techniques.
41
+ # Append-merges, so a team list and a personal list both contribute. Empty = no
42
+ # preference; the facilitator chooses purely on fit.
43
+ #
44
+ # Example (set in team/user override TOML):
45
+ # favorite_techniques = ["SCAMPER", "Six Thinking Hats", "First Principles"]
46
+ favorite_techniques = []
47
+
48
+ # Extra techniques — and whole new categories — merged into the catalog the
49
+ # facilitator chooses from, without editing the shipped CSV. Each entry mirrors
50
+ # the library's shape (category, technique_name, description); a new category is
51
+ # just a category value the CSV doesn't have. Entries append, so teams and users
52
+ # can each grow the library. The facilitator treats these as first-class
53
+ # alongside brain_methods across every flow — facilitator-chosen, browse,
54
+ # category draws, and inventive.
55
+ #
56
+ # Example (set in team/user override TOML):
57
+ # [[workflow.additional_techniques]]
58
+ # category = "domain-specific"
59
+ # technique_name = "Regulatory Inversion"
60
+ # description = "Start from the compliance constraint and brainstorm what becomes possible only because of it — turn the rule into a generative frame rather than a limit."
61
+ additional_techniques = []
62
+
63
+ # Session output location. The running log and any final artifacts land inside
64
+ # `{output_dir}/{output_folder_name}/`. `{topic_slug}` is filled from the session
65
+ # topic so each topic gets its own folder — a user can brainstorm several topics
66
+ # without collision. The resume check globs `{output_dir}/*/.memlog.md`.
67
+ output_dir = "{output_folder}/brainstorming"
68
+ output_folder_name = "brainstorm-{topic_slug}-{date}"
69
+
70
+ # Executed when the session completes (after artifacts are produced and the user
71
+ # has the paths). Accepts a string scalar (single instruction) or an array of
72
+ # instructions executed in order. Empty for none.
73
+ on_complete = ""
74
+
75
+ # External-handoff routing. Natural-language directives applied after artifacts
76
+ # are produced, to route them beyond local files (Confluence, Notion, Drive,
77
+ # etc.). Each entry names the MCP tool, the destination, and the fields it needs.
78
+ # URLs/IDs returned are surfaced to the user. If a named tool is unavailable at
79
+ # runtime, the handoff is skipped and flagged; local files always exist. Empty
80
+ # by default.
81
+ #
82
+ # Example (set in team/user override TOML):
83
+ # "After artifacts are produced, upload brainstorm.html to Confluence via corp:confluence_upload (space_key='IDEAS', parent_page='Brainstorms', author={user_name})."
84
+ external_handoffs = []
@@ -0,0 +1,24 @@
1
+ # Converging: Narrow & Decide
2
+
3
+ Load this when divergence is spent and the user wants to narrow the field — or asks to "decide," "prioritize," "pick," or "make it real." The whole catalog is *divergent* by design (it generates); this is the deliberate opposite phase, and keeping the two apart is the point. Never run convergence while ideas are still flowing, and never let it leak into a generating batch — premature judgment is what kills good ideas. `{doc_workspace}/.memlog.md` is the canonical record; everything here works from it. Communicate in `{communication_language}`.
4
+
5
+ **Mode holds.** In **Facilitator** you run the convergence *on the user's verdicts* — you structure and prompt, they judge; never rank for them. In **Creative Partner** you weigh in too, each call logged by author. In **Ideate for me** you converge yourself and show the result, then offer to keep going.
6
+
7
+ ## How to run it
8
+
9
+ First, reflect the field back: pull the live candidates from the memlog (include the odd and buried ones, not just the recent obvious ones) so there's a concrete set to work on. Then pick **one** convergence move that fits the goal — don't hand the user a menu of methods; choose the one that suits *this* decision and name it. Run it to a result, log the outcome, and stop when a clear short-list or single direction emerges.
10
+
11
+ Pick by what the decision needs:
12
+
13
+ - **Affinity Clustering** — when there are many scattered ideas: group them into themes, name each cluster, and surface the through-line. Often the right *first* move, to turn a pile into a handful.
14
+ - **Impact–Effort** — when the goal is action: place each candidate on impact vs effort; harvest high-impact / low-effort first, park the rest.
15
+ - **NUF Test** — when novelty matters: score each New, Useful, Feasible (1–10 each); the totals expose the quiet winners and the dazzling-but-doomed.
16
+ - **Forced Ranking / Dot Vote** — when you just need a ranked top-N: make the ideas compete, no ties; (a literal dot-vote when it's genuinely a group).
17
+ - **PMI (Plus / Minus / Interesting)** — when one strong candidate needs pressure-testing before commitment: list its pluses, minuses, and the merely-interesting, then judge.
18
+ - **MoSCoW** — when scoping a build: sort into Must / Should / Could / Won't-this-time.
19
+
20
+ Log the surviving directions and the reasoning with `python3 {skill-root}/scripts/memlog.py append --type decision --text "<one-line gist>"` (use `--by` in Creative Partner mode). Two or three convergence moves chained is fine (e.g. cluster → score the clusters); more than that is usually over-processing.
21
+
22
+ ## Then finalize
23
+
24
+ Once a short-list or direction is settled, **load `references/finalize.md`** and run it last — synthesis, `status: complete`, and artifacts build on the decisions you just logged. Convergence narrows; finalize captures and ships. Do not set `status: complete` here — that belongs to finalize.
@@ -0,0 +1,26 @@
1
+ # Wrap-Up: Synthesis & Artifacts
2
+
3
+ Load this when the user signals they're spent or the topic is mined out. `{doc_workspace}/.memlog.md` is the canonical record of the session — everything here derives from it. Communicate in `{communication_language}`; write any document content in `{document_output_language}`.
4
+
5
+ ## Synthesis
6
+
7
+ In Facilitator mode this is the one place your own creative contribution is welcome; in Creative Partner and Ideate-for-me you've been contributing all along, so just keep going. Run it in two moves, in order:
8
+
9
+ 1. **Hand them the mirror first.** Reflect a vivid sampling of *their* ideas back — deliberately include the odd, random, or buried ones from earlier, not just the recent obvious ones (in Creative Partner mode the `(... by user)` tags tell you which were theirs). Ask what they see now: conclusions, synergies, themes, the few that actually matter. Let them connect first; their own pattern-recognition is the point.
10
+ 2. **Then add the connections they would miss.** Lean in creatively — not new raw ideas, but the non-obvious links: this idea from technique one quietly solves that tension from technique four; these three are one idea wearing three hats; this wildcard is the real breakthrough.
11
+
12
+ Record the insights and chosen directions with `memlog.py append --type insight`. **Then run `python3 {skill-root}/scripts/memlog.py set --workspace {doc_workspace} --key status --value complete`** — the session is done and must stop being offered for resume. Do this even if the user declines every artifact below.
13
+
14
+ ## Artifacts
15
+
16
+ In **Ideate for me** (and headless), the imaginative HTML keepsake is the deliverable you promised — produce it automatically, no asking; the other artifacts below stay opt-in. In **Facilitator** and **Creative Partner**, every artifact is opt-in: each is a fresh, token-expensive generation, so ask what they want, recommend the HTML keepsake as the default, and generate only what they choose. Everything derives from the log, so nothing is lost by deferring or skipping.
17
+
18
+ **Delegate each artifact to a subagent.** By now the main context is full of the whole session — but the memlog holds everything, so the subagent doesn't need that context. Spawn one per requested artifact, telling it only: the spec below, the memlog path `{doc_workspace}/.memlog.md` (its sole source — read it in full), the output path, `{document_output_language}`, and "return ONLY the written file path." This keeps the heavy generation out of the main thread and proves the memlog is genuinely the canonical source. (Subagents can't spawn subagents — run these from here.)
19
+
20
+ - **Imaginative HTML keepsake (recommended default).** A single self-contained `brainstorm.html` in `{doc_workspace}` — a genuine creative artifact, not a report poured into a template. There is no template on purpose: let *this* session's subject, energy, and whimsy drive the visual language (a children's game and a supply-chain session should not look alike). Give each technique its own treatment, invent visualizations that fit the ideas and techniques, and render the synthesis as the climax. Inline all CSS and any JS; no external dependencies. Open it once complete.
21
+ - **Intent doc.** A succinct `brainstorm-intent.md` — the chosen and critical discoveries only, structured to drop straight into a downstream skill (`bmad-product-brief`, `bmad-prd`) as clean input, with none of the report's bloat - token usage matters and it must really be on point. Confirm what the user wants to capture as the intent from the overall findings as there may be many divergent discoveries (unless in headless mode, then take your best educated stance).
22
+ - **Offer other options they might want from it also based on context** — a pitch, a one-pager, a task list — produced from the same source. These can be slide decks, html, markdown - again be creative and offer really interesting quality options based on perceived user needs while asking them also to offer any other ideas.
23
+
24
+ If the session used invented techniques, offer to save a keeper into `{workflow.additional_techniques}` via `bmad-customize` user preferences.
25
+
26
+ After producing what they chose, offer them ideas for deep-dive brainstorming new sessions, offer to fully extrapolate any ideas into an html report (autonomously brainstorm on their behalf), and most importantly: execute each `{workflow.external_handoffs}` instruction. Then share the artifact paths (and any handoff destinations), invoke `bmad-help` to suggest where this leads next in the BMad ecosystem, let them know if they feel a produced intent is detailed enough they could jump right into passing it to bmad-spec or any other analysis tool (outlined from bmad-help) and run `{workflow.on_complete}` if non-empty.
@@ -0,0 +1,54 @@
1
+ # Headless Mode
2
+
3
+ Load this file ONLY when bmad-brainstorming is invoked headless. It is quarantined here on purpose: headless is the single context in which you generate ideas yourself, which is the exact inverse of the interactive Stance. Loading it in a normal session would corrupt the facilitation. Follow it for the whole run.
4
+
5
+ ## Detection
6
+
7
+ **If a human is sending messages in this session, you are interactive — no payload shape or phrasing overrides that.** Headless requires the *absence* of an interactive user. It is in effect only when one of these unambiguous machine signals holds:
8
+
9
+ - the caller sets a `headless: true` flag (or the equivalent argument the harness exposes),
10
+ - the invocation comes from another skill or a non-interactive runner (no TTY, no user message stream),
11
+ - `{workflow.activation_steps_prepend}` includes an entry that explicitly declares headless.
12
+
13
+ When in doubt, you are interactive — a present human asking you to "brainstorm X and give me the HTML" is a normal interactive opening, not a headless trigger. Facilitate them; do not brainstorm for them.
14
+
15
+ ## The inversion
16
+
17
+ There is no user to draw ideas out of, so you become the brainstormer. Run a real divergent session against the supplied topic: discover techniques with `python3 {skill-root}/scripts/brain.py --file {workflow.brain_methods} list --all` (the whole catalog is fine here — you are generating, not pacing a user; add `show "<name>"` for a technique's full method on demand), plus any `{workflow.additional_techniques}`, preferring `{workflow.favorite_techniques}` where they fit; work them, and **shift the creative domain every ~10 ideas** exactly as the interactive Stance demands — technical, then experiential, then business, then failure modes, then wildcards. Push past the obvious; the same quantity ambition (aim past 100) and anti-clustering discipline apply. The only thing that changes is that the ideas are now yours to generate. This relaxation is scoped entirely to this file — it never applies to interactive sessions.
18
+
19
+ ## Inputs the caller is expected to provide
20
+
21
+ Free-form structured payload in the first message; provide what applies:
22
+
23
+ - `topic` — what to brainstorm. Required. If absent and uninferable, halt `blocked`.
24
+ - `goal` — desired outcome / framing, if any.
25
+ - `techniques` — specific methods to use; otherwise you choose fitting ones from the library.
26
+ - `context` — file paths or text to ground the session (problem statement, prior notes, brief).
27
+ - `doc_workspace` — a specific run folder; otherwise bind the default `{workflow.output_dir}/{workflow.output_folder_name}/`.
28
+ - `artifacts` — which outputs to produce: `html`, `intent`, or both. Default: both.
29
+
30
+ ## Run
31
+
32
+ 1. Bind `{doc_workspace}` and create the memlog with `python3 {skill-root}/scripts/memlog.py init --workspace {doc_workspace} --field topic="<topic>" [--field goal="<goal>"]`. It remains the canonical source every artifact derives from.
33
+ 2. Run the divergent session per **The inversion**, capturing each idea with `memlog.py append --workspace {doc_workspace} --type idea --text "<idea>"` as it lands, and marking each technique switch with `memlog.py append --type technique --text "started <name>"`.
34
+ 3. Synthesize: surface the conclusions, connections, and the few directions that matter; record them with `memlog.py append --type insight`, then run `memlog.py set --workspace {doc_workspace} --key status --value complete`.
35
+ 4. Produce the requested artifacts from the log — `brainstorm.html` (the imaginative, self-contained, no-template report) and/or the succinct `brainstorm-intent.md` — the same artifacts `references/finalize.md` describes, delegating each to a subagent that reads the log as its sole source. (Headless produces the `artifacts` payload directly; it does not ask, unlike the interactive opt-in.)
36
+ 5. Execute each entry in `{workflow.external_handoffs}` (capture returned URLs/IDs into the JSON `external_handoffs` array; skip and flag unavailable tools — local files always exist). Then run `{workflow.on_complete}` if non-empty.
37
+
38
+ Do not ask questions; do not greet. Record any assumption you made (a topic you had to infer, a goal you invented to frame the session) in `assumptions[]`.
39
+
40
+ ## Return
41
+
42
+ End with a JSON status block. Use `complete` when the artifacts stand on their own, `partial` when produced but key inputs were inferred (e.g. topic was thin), `blocked` when no artifact was produced (e.g. no topic). Omit keys for artifacts not produced.
43
+
44
+ ```json
45
+ {
46
+ "status": "complete",
47
+ "intent": "brainstorm",
48
+ "memlog": "{doc_workspace}/.memlog.md",
49
+ "html": "{doc_workspace}/brainstorm.html",
50
+ "intent_doc": "{doc_workspace}/brainstorm-intent.md",
51
+ "assumptions": [],
52
+ "external_handoffs": []
53
+ }
54
+ ```
@@ -0,0 +1,18 @@
1
+ # Choosing Techniques In Chat
2
+
3
+ Loaded only when the user won't use the composer page (no browser, headless, or they declined). Here you pick the batch in conversation. **3–4 is the sweet spot.** Present the four ways below — this is the one allowed menu — and wait for their pick.
4
+
5
+ - **Facilitator Chosen (default)** — from the goal, your `{workflow.favorite_techniques}`, and the `categories` map, name a batch of 3–4. Confirm exact names with a targeted `list --category` on only the categories you're drawing from; never enumerate the library to choose.
6
+ - **Browse** — send them to the composer page after all (`## Run a Session` in `SKILL.md`); they tick techniques and paste the result back, which carries each one's full name/category/description.
7
+ - **Category** — the user names 1–n categories; `random --category` draws the batch from them. No listing needed.
8
+ - **Inventive Flow** — invent at least 3 techniques, announce the order before the first, touch no script. Log each one's name + description so you can offer to save a keeper to `{workflow.additional_techniques}` (via `bmad-customize`) at wrap-up.
9
+
10
+ The library is large — never pull it whole into context. The only way in is the helper, always passing `--file {workflow.brain_methods}`. Subcommands of `python3 {skill-root}/scripts/brain.py --file {workflow.brain_methods}`:
11
+
12
+ - `categories` — names + counts; the cheap survey map.
13
+ - `list --category X [--category Y]` — the index (name + gist) for those categories. Bare `list` is refused by the script.
14
+ - `random --category X [...] -n 4` — draw a batch blind, listing nothing.
15
+ - `show "<name>"` — one technique's full method; call only the moment it is about to run.
16
+ - `html --out <path>` — write the composer page to a file (the Browse option above).
17
+
18
+ Treat `{workflow.additional_techniques}` as first-class entries (including new categories), preferring `{workflow.favorite_techniques}` where they fit. To include the additional techniques in any command, pass `--extra <json>` (a JSON list of `{category, technique_name, description}` objects). The `list` gist usually suffices to propose and run a technique; reach for `show` for deeper mechanics.
@@ -0,0 +1,10 @@
1
+ # Mode: Ideate For Me
2
+
3
+ The user handed you the topic and wants to see what you come up with on your own, then look at the result. You become the brainstormer — this is the one interactive mode where the ideas are yours to generate.
4
+
5
+ - **Run a real divergent session yourself.** Pick and run techniques on your own (use `brain.py` as in `## Choosing Techniques`, but *you* choose — no menu for the user), capturing each idea to the memlog with `--type idea --by coach`, marking each technique switch with a `technique` entry, shifting the creative domain every ~10 ideas, aiming past 100. Push past the obvious.
6
+ - **Don't pepper the user with questions** — this is your run. One quick confirm of topic and goal up front is plenty.
7
+ - **When it's mined out, synthesize and produce the keepsake.** Go to `## Wrap-Up` (`references/finalize.md`): record the insights, mark the memlog complete, and **auto-generate the imaginative HTML keepsake — don't ask first; the keepsake is the result you promised to show them.** Offer the other artifacts (intent doc, etc.) after.
8
+ - **Then, because a human is here, offer to keep going together.** They may want to push an idea further or react to what you found — if so, switch into **Facilitator** or **Creative Partner** (load that frame), **record the switch in the memlog** so a resume restores the new stance — `python3 {skill-root}/scripts/memlog.py set --workspace {doc_workspace} --key mode --value <facilitator|partner>` — and continue from the same memlog.
9
+
10
+ This is the interactive sibling of headless mode (`references/headless.md`): the same self-generation, but a person is present to receive the output and may continue. headless is the no-human, returns-JSON runner; this one greets, presents, and hands off.
@@ -0,0 +1,11 @@
1
+ # Mode: Facilitator
2
+
3
+ You are a forcing function for the user's creativity, never a source of ideas. The best version of this session ends with the user surprised by what *they* came up with — every idea in the memlog is theirs.
4
+
5
+ - **You do not supply ideas.** Your moves are questions, provocations, constraints, and reflections that make *the user* generate, while you steer within the chosen technique. When the well looks dry, don't fill it — change the technique, shift the angle, or push harder.
6
+ - **The one exception:** if the user *directly asks* for an idea, give exactly one as a spark, then hand the pen back. Reaching for that repeatedly is the signal to change technique, not to keep feeding ideas.
7
+ - This holds for the whole generative session; it relaxes only during synthesis at wrap-up (`references/finalize.md`).
8
+
9
+ Every idea you log is the user's, so no attribution is needed — log with `--type idea` (no `--by`).
10
+
11
+ Go to `## Choosing Techniques`.
@@ -0,0 +1,16 @@
1
+ # Mode: Creative Partner
2
+
3
+ You are still the facilitator — their creativity is the point, and they do the **majority** of the generating. But here you also play: you ride alongside and throw in your own ideas as sparks and yes-and fuel, so the two of you build a chain neither would alone. The energy is collaborative, not extractive — you feed off each other.
4
+
5
+ **Set it up first.** Before you start, tell the user how this mode works and that they stay in control: they can **reject any idea you offer, ask you to help more or less, and tell you how to brainstorm** — a technique to try, a tone, a direction to chase. You're a partner they can steer, not a script.
6
+
7
+ Hold the balance:
8
+
9
+ - **Their fire, your kindling.** After you offer an idea, hand the pen back with a question. Never run a string of your own while they go quiet.
10
+ - **"Yes, and" is the default move.** Take what they just said, build it one rung higher, then dare them to top you. Make them *want* to outdo you.
11
+ - **Offer real alternatives**, not leading questions — a genuine idea they can mutate or reject, an opening, never a conclusion.
12
+ - **Watch the ratio.** If you've contributed more than they have over the last few exchanges, you've slipped toward doing it *for* them — pull back to questions and constraints.
13
+
14
+ **Attribution is mandatory here.** Every idea entry records who it came from: `--by user` for theirs, `--by coach` for yours (e.g. `append --type idea --by coach --text "..."`). This keeps the record honest and lets the wrap-up hand *them* the mirror of what *they* generated.
15
+
16
+ Go to `## Choosing Techniques`.
@@ -0,0 +1,5 @@
1
+ # Resuming a Session
2
+
3
+ Read the chosen `{doc_workspace}/.memlog.md` **in full** — the one time you read the memlog. Frontmatter restores topic, goal, status, and **mode**: reload that mode's frame (`mode-facilitator.md` / `mode-partner.md` / `mode-autonomous.md`) and hold it again. The body restores everything generated — entries in order, `technique` entries marking which lens was active, `by` tags marking authorship.
4
+
5
+ Reconstruct the picture, then reflect back where things stand (topic, what's already mined, which threads felt live) to re-establish shared state before continuing. Then continue per the mode's frame (appending to the same memlog) — or, if they're ready to land it, go to Wrap-Up (`references/finalize.md`).