@skyf0xx/hedgehog 6.2.7 → 6.2.8

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyf0xx/hedgehog",
3
- "version": "6.2.7",
3
+ "version": "6.2.8",
4
4
  "description": "Install the Hedgehog build discipline (agents + skills) into a repo, for Claude Code, Cursor, or Gemini CLI.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hedgehog",
3
- "version": "6.2.7",
3
+ "version": "6.2.8",
4
4
  "description": "Hedgehog build discipline: ordered, tested, verified build steps.",
5
5
  "contextFileName": "GEMINI.md"
6
6
  }
@@ -66,8 +66,21 @@ meaning this directory (`vendor-skills/BMAD/`) — used to address the shared
66
66
  scripts (`{bmad-root}/scripts/memlog.py`, etc.) without reaching outside
67
67
  this vendored tree.
68
68
 
69
+ ## Local changes (not upstream)
70
+
71
+ - `core-skills/bmad-brainstorming/customize.toml` and
72
+ `core-skills/bmad-brainstorming/references/{mode-autonomous,finalize}.md`
73
+ carry a `keepsake_format` workflow key (`"html"` default,
74
+ `"markdown-only"` opt-out) not present upstream: Ideate-for-me and
75
+ headless mode otherwise auto-generate an HTML keepsake with no way to
76
+ opt out in advance, which is unwanted work on a project whose
77
+ deliverables are markdown/prose only (skyf0xx/hedgehog#386). A
78
+ re-vendor pass must re-apply this key to the freshly-fetched files
79
+ rather than letting it silently disappear.
80
+
69
81
  ## Re-vendoring
70
82
 
71
83
  Pinned deliberately. Re-vendoring against a newer BMAD-METHOD commit is a
72
84
  manual act: repeat the fetch against the new ref, re-apply the strip step
73
- above, and update this file's pinned commit and date.
85
+ above, re-apply "Local changes" above, and update this file's pinned
86
+ commit and date.
@@ -60,6 +60,17 @@ favorite_techniques = []
60
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
61
  additional_techniques = []
62
62
 
63
+ # Format for the Ideate-for-me / headless default artifact. "html" (default)
64
+ # auto-generates the imaginative HTML keepsake with no asking. "markdown-only"
65
+ # skips it and produces the intent doc (brainstorm-intent.md) instead — for a
66
+ # project whose deliverables are markdown/prose only, where an HTML file is
67
+ # unwanted work rather than a bonus. Facilitator and Creative Partner modes
68
+ # are unaffected either way: every artifact there is already opt-in.
69
+ #
70
+ # Example (set in team/user override TOML, e.g. a copywriting-core project):
71
+ # keepsake_format = "markdown-only"
72
+ keepsake_format = "html"
73
+
63
74
  # Session output location. The running log and any final artifacts land inside
64
75
  # `{output_dir}/{output_folder_name}/`. `{topic_slug}` is filled from the session
65
76
  # topic so each topic gets its own folder — a user can brainstorm several topics
@@ -13,11 +13,11 @@ Record the insights and chosen directions with `uv run {bmad-root}/scripts/memlo
13
13
 
14
14
  ## Artifacts
15
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.
16
+ In **Ideate for me** (and headless), check `{workflow.keepsake_format}`. When it's `"html"` (the default), the imaginative HTML keepsake is the deliverable you promised — produce it automatically, no asking; the other artifacts below stay opt-in. When it's `"markdown-only"`, skip the HTML keepsake entirely and produce the intent doc instead, with no ask — a project setting this override has already decided HTML is unwanted work, not a preference to re-confirm per session. In **Facilitator** and **Creative Partner**, every artifact is opt-in regardless of `keepsake_format`: each is a fresh, token-expensive generation, so ask what they want recommend the HTML keepsake as the default unless `keepsake_format` is `"markdown-only"`, in which case don't offer it — and generate only what they choose. Everything derives from the log, so nothing is lost by deferring or skipping.
17
17
 
18
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
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.
20
+ - **Imaginative HTML keepsake (recommended default, skipped when `{workflow.keepsake_format}` is `"markdown-only"`).** 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
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
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
23
 
@@ -4,7 +4,7 @@ The user handed you the topic and wants to see what you come up with on your own
4
4
 
5
5
  - **Run a real divergent session yourself.** If the user supplied techniques (e.g. a composed prompt pasted from the selector page), honor those first; otherwise pick and run techniques on your own (use `brain.py` as in `## Choosing Techniques`, but *you* choose — no menu for the user). Capture 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
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.
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** — unless `{workflow.keepsake_format}` is `"markdown-only"`, in which case skip the HTML keepsake and produce the intent doc instead, also with no asking. Offer the other artifacts (intent doc, etc.) after.
8
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 — `uv run {bmad-root}/scripts/memlog.py set --workspace {doc_workspace} --key mode --value <facilitator|partner>` — and continue from the same memlog.
9
9
 
10
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.