From 5059d82c7aea4e60319e0ae243712a9638da7599 Mon Sep 17 00:00:00 2001 From: SystemFiles <13636889+SystemFiles@users.noreply.github.com> Date: Thu, 9 Jul 2026 13:31:01 -0400 Subject: [PATCH] feat: add brain-storm skill --- README.md | 1 + .../agentsmd-generator/scripts/repo-inventory | 4 +- skills/brain-storm/SKILL.md | 75 +++++++++++++++++++ tests/test_skill_contract.py | 1 + 4 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 skills/brain-storm/SKILL.md diff --git a/README.md b/README.md index 377dc7d..ecc9d3b 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Each skill is a directory under `skills//` containing a `SKILL.md` (plus a | Skill | Description | | --- | --- | | `agentsmd-generator` | Generate project-level `AGENTS.md` onboarding guides covering structure, tooling, testing, task flow, and conventions. | +| `brain-storm` | Facilitate structured brainstorming sessions that generate, expand, organize, and prioritize ideas around a topic, problem, or goal. | | `jj-case-insensitive-clone-fix` | Diagnose and fix the `jj git clone` "Failed to update refs" error on case-insensitive filesystems (e.g. macOS APFS). | | `research_codebase` | Map how a codebase works today and save a dated, citation-backed report under `thoughts/`, using parallel sub-agents by default. | | `sdd-linear` | Run the Spec-Driven Development (SDD) workflow with Linear issues, sub-issues, attachments, and comments as the system of record instead of `docs/specs`. | diff --git a/skills/agentsmd-generator/scripts/repo-inventory b/skills/agentsmd-generator/scripts/repo-inventory index 9670b48..70de742 100755 --- a/skills/agentsmd-generator/scripts/repo-inventory +++ b/skills/agentsmd-generator/scripts/repo-inventory @@ -158,7 +158,9 @@ if command -v tree >/dev/null 2>&1; then tree -a -I '.git|.jj' -L "$depth" 2>/dev/null || true fi elif git rev-parse --git-dir >/dev/null 2>&1; then - git ls-files 2>/dev/null | awk -F/ -v d="$depth" '{ n = (NF < d ? NF : d); p=$1; for(i=2;i<=n;i++) p=p"/"$i; print p }' | sort -u || true + git ls-files --cached --others --exclude-standard 2>/dev/null \ + | awk -F/ -v d="$depth" '{ n = (NF < d ? NF : d); p=$1; for(i=2;i<=n;i++) p=p"/"$i; print p }' \ + | sort -u || true else find . -maxdepth "$depth" -not -path '*/.git/*' 2>/dev/null | sort || true fi diff --git a/skills/brain-storm/SKILL.md b/skills/brain-storm/SKILL.md new file mode 100644 index 0000000..a964786 --- /dev/null +++ b/skills/brain-storm/SKILL.md @@ -0,0 +1,75 @@ +--- +name: brain-storm +description: Facilitate a structured brainstorming session to generate, expand, and organize ideas around a topic, problem, or goal. Use when the user wants to brainstorm, ideate, explore options, think through possibilities, or get unstuck on an idea. +--- + +# brain-storm + +Facilitate an interactive brainstorming session. Act as a thinking partner: draw ideas out of the user, push past the obvious, and leave them with an organized set of options plus a clear next step. Favor breadth first, then converge. + +## When to use + +Use when the user says things like "help me brainstorm…", "I have an idea for…", "what are some ways to…", "I'm stuck on…", or "let's think through…". Applies to product ideas, feature directions, naming, content angles, problem-solving, business strategy, and other open-ended ideation. + +## Process + +Run these phases in order. Keep momentum; don't interrogate the user with a long questionnaire up front. + +### 1. Frame the problem briefly + +Restate the topic in one sentence and confirm understanding. Ask at most 2–3 sharp questions only if the framing is genuinely ambiguous. Useful context: + +- **Goal**: what does a good outcome look like? +- **Constraints**: budget, time, audience, must-haves, non-negotiables. +- **Stage**: blank slate, or refining something that already exists? + +If the user is vague, pick a reasonable interpretation, state it, and start generating. Producing ideas is more useful than gathering requirements. + +### 2. Diverge — generate widely + +Produce a broad spread of ideas. Aim for 8–15 to start. Optimize for variety, not polish: include safe ideas, ambitious ideas, and 1–2 deliberately unconventional ideas. Use these lenses to avoid a monotone list: + +- **Analogies**: how do other industries/products solve a similar problem? +- **Inversion**: what would the opposite or worst approach look like? Flip it. +- **Constraints**: what if it had to be free, 10x bigger, or built in a weekend? +- **Combination**: mash two unrelated ideas together. +- **First principles**: strip the problem to its core need and rebuild. +- **Personas**: how would a specific user, competitor, or skeptic approach it? + +Present ideas as a scannable list with a short **bold label** and a one-line description each. Don't over-explain in this phase. + +### 3. Expand — go deeper on what resonates + +Ask the user which 2–4 ideas they want to develop, or pick the strongest yourself if they defer. For each: + +- Sketch how it could work concretely. +- Note the upside, main risk/open question, and roughly what it would take. +- Suggest one variation or extension. + +### 4. Converge — organize and prioritize + +Pull the session into a structured summary: + +- Group ideas into themes if there are many. +- Offer rough prioritization, such as a simple **impact vs. effort** read or a clearly labeled top pick with reasoning. +- Surface tradeoffs or assumptions worth testing. + +### 5. Land on a next step + +End with one concrete, actionable next step: a prototype to try, a question to validate, a person to talk to, or a decision to make. A brainstorm that doesn't lead to action was just a chat. + +## Style + +- Be generative and encouraging, but not a hype machine; name real weaknesses in ideas. +- Keep turns tight and leave room for the user to react and steer. +- Build on the user's contributions ("yes, and…") rather than replacing them. +- Use formatting — bold labels, short lists, occasional tables — to keep things scannable. +- Keep it dialogic. Check in and adjust direction; don't dump a finished report when the user wants to think out loud. + +## Output + +A working brainstorm in the conversation, ending with: + +1. An organized summary of the strongest ideas, grouped/prioritized. +2. Key tradeoffs or open questions. +3. One concrete recommended next step. diff --git a/tests/test_skill_contract.py b/tests/test_skill_contract.py index 4645a85..de12a33 100644 --- a/tests/test_skill_contract.py +++ b/tests/test_skill_contract.py @@ -19,6 +19,7 @@ # Skills expected to be present in this repository. EXPECTED_SKILLS = { "agentsmd-generator", + "brain-storm", "jj-case-insensitive-clone-fix", "research_codebase", "sdd-linear",