From Watt
Read who a built audience reaches when the signals are already in hand — a signal stack fresh from generate, an explore pool, a pasted audience record, or signals the user names — skip discovery, materialize, and render the two-section read (your signals + discovered). The signals-in-hand way into audience-analyze, behind /watt:audience. Aggregates only — never individual records, never an export. Not a user command. Use when a built audience is in session or the user supplies its signals and asks who's in it — "who's actually in this audience", "what do these people look like".
How this skill is triggered — by the user, by Claude, or both
Slash command
/watt:audience-analyze-signalThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`audience-analyze-signal` is the way into the read when the **signals already exist** — a signal stack fresh from `audience-generate`, an `/watt:explore` signal pool, a pasted audience record from a past session, or signals the user names. There's no discovery and no pivot loop: take the signals as given, materialize them, and hand the built stack to the shared read.
audience-analyze-signal is the way into the read when the signals already exist — a signal stack fresh from audience-generate, an /watt:explore signal pool, a pasted audience record from a past session, or signals the user names. There's no discovery and no pivot loop: take the signals as given, materialize them, and hand the built stack to the shared read.
This is a delta over audience-analyze: the unique work here is just resolving the supplied signals into a built signal stack; the read and the shareable report are the parent's shared procedure (audience-analyze → The read & report), composed with verbatim — not restated.
audience-analyze router, when a built audience is in session or the user supplied its signals.signal-finder (only when the user supplied bare names) — to resolve each named signal to its verified trait. Never used to discover more signals — the user's set is the set.audience-profiler — mode A (the stack) → the two-section read. The parent's shared dispatch.Inherits the parent's table (signals / must-haves / exclusions; lift explained once; sample named). The role column in an audience record — defining (any-of) / must-have (all-of) / exclusion (none-of) — carries the boolean shape exactly; the operator never sees AND/OR/NOT.
audience-analyze-search) — use it directly. Confirm which one in a word if there's any doubt.role column (defining / must-have / exclusion) carries the expression exactly as built, and names ride beside hashes; take it as the stack. A past session's reach/headcount is "measured then", not re-measured silently. On a refresh-shaped ask ("refresh this", "is it still ~2M?"), the read's fresh materialization is the re-measure: after the read, re-write the audience record per the record contract (context/record.md) with today's measured reach against the header's original target (reach 2.1M (band 1M–5M) · refreshed), location and roles unchanged./watt:explore session's kept signals, or a lookalike pool) — auto-compose it to the default stack: signals the pool marks must-have go all-of, its exclusions none-of, everything else any-of (one OR union). If the pool carries no role markers at all, ask once — "any must-haves or must-have-nots in here, or read them all as one group?" — then build. This is a deterministic reading of the user's picks, the same way a record's role column reconstructs an expression — never a strategy compose; refining the pool into a tuned stack is audience-generate's lane, offered if the read shows it's wanted.signal-finder once to resolve each name to its verified trait (driving from meaning), surface the matches for a one-touch confirm, and only then build the stack. Never pass a name off as a hash, never guess one.Build the expression from the role column — defining any-of, must-have all-of, exclusion none-of — and reuse the record's workflow_id if it carries one, else generate one. If the supplied set carries no measured reach, measure the headcount once with a count-only entity find (format: "none", location applied if the record fences one).
Hand off to the parent's shared read & report (audience-analyze → The read & report) in mode A — the signal stack you took in hand (expression, signals, location, reach, workflow_id). The router owns the dispatch, the two-section dashboard, the report, and the next-step options. The state file's last_workflow is audience-analyze-signal.
audience-generate or audience-analyze-search.signal-finder and confirmed, never assigned a guessed hash.audience-activate's lane.audience-analyze-list way in — say so; this leaf reads from signals, not a people list.audience-generate (build) or audience-analyze-search (discover more from a brief); this leaf reads the set as given.npx claudepluginhub wattdata/plugin --plugin wattProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.