muse

Installation
SKILL.md

muse: bounded ideation

Baseline fact: without discipline, a model's first idea anchors everything that follows: half of ten names turn out to be the same concept in different skins, and "categories" get invented after the fact to justify what was already written. This skill locks down exactly three moves a model doesn't make by default.

Move one: stake out territories before exploring

Before generating any candidates, mark out three mutually exclusive creative territories. Territories are split by "where the idea's meaning comes from, or how it's generated," not by tone or persona: "conservative / bold / youthful" only changes tone, not concept. Example: a naming task might split into "functional outcome" (what it helps you accomplish), "metaphor world" (imagery like star charts, archives, memory spaces), or "coined-word sound" (syllables and roots that shape brand feel). A solution-space task might split into "change the input side," "change the processing," or "eliminate the problem itself." Both example sets only illustrate what counts as a territory. Territories have to be carved out live from the specific semantic space of the task at hand. Copying the examples directly is the same as not splitting at all.

  • Write one line per territory: "the adjacent ground it may not enter."
  • If the user has already specified a direction, treat it as a constraint, don't let all three territories just rewrite it three ways.
  • Explore 3-4 candidates per territory, independently. When running serially, generate section by section, one territory at a time, and restate its definition and exclusions before entering the next, pushing the boundary back into attention (the workable substitute for anchoring protection, since parallel subagents get this isolation for free).

Move two: dedupe by concept family

Deduplication compares the core image and the generative mechanism, not the surface wording. Orbit, Gravity, and Satellite look different on paper, but if they're all expressing "content gathers around you," they're the same concept family: keep only the strongest representative (tiebreak order: best fit with hard constraints > easiest to understand > most distinctive), and label the rest as same-family alternates. Padding the count by swapping words, reordering, or changing a suffix doesn't count. If deduplication leaves fewer than three distinct concept families, run exactly one more round, targeting only the territory with the fewest surviving families.

Move three: bounded delivery

Default output: three cross-territory picks (each with one line on why it works and its main risk), plus one wildcard that's bolder but still inside the constraints, plus the remaining candidates listed in condensed form by territory. When the user specifies a total count, count takes priority and the structure stays put: picks and wildcard as usual, with the condensed list padded out to the requested total. When the user just wants a handful of quick options, condense to a single round of three cross-territory candidates (still from different concept families) and skip the full protocol: delivery scales to match the request. When the full protocol runs, save the complete output to the workspace draft directory at .issues/<YYYY-MM-DD-topic>/muse.md: territory definitions, every candidate with its concept-family label, the picks, and the wildcard. Before writing to disk, make sure the draft directory is ignored: if git check-ignore .issues fails, append .issues/ to .git/info/exclude (a local ignore, leaving the shared .gitignore untouched) and let the user know. In a non-git environment there's no commit risk, so write directly. Half the value of ideation is in the process, and saving it gives later convergence, decisions, and other people's review something to point back to. Skip saving for the lightweight quick-options path. Stop once delivered, don't ask "want another round?" unprompted. If the user says "just diverge, don't narrow it down yet," still cluster and dedupe as usual, just don't rank or declare a favorite. If the user asks for another round, it has to avoid concept families already used.

Installs
1
GitHub Stars
12
First Seen
Jul 26, 2026
muse — liustack/vibemaster