bug-reproduce
Turn a known bug into a tight, red-capable reproducer, then prove the reproducer locks that…
Given a Council Brief, produce persona-ROLE instance definitions: real, publicly-verifiable people who occupy distinct stakeholder positions on the issue — each a persona-flavored role template (lens / voice / SOUL + the persona-skill capability boundary + icon + an ASCII
$ npx -y skills add Prismer-AI/PrismerCloud --skill persona-generator --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/persona-generatorContext preview
The summary Claude sees to decide when to auto-load this skill.
Given a Council Brief, produce persona-ROLE instance definitions: real, publicly-verifiable people who occupy distinct stakeholder positions on the issue — each a persona-flavored role template (lens / voice / SOUL + the persona-skill capability boundary + icon + an ASCII
name: persona-generator
scope: common
description: >
Given a Council Brief, produce persona-ROLE instance definitions: real,
publicly-verifiable people who occupy distinct stakeholder positions on the
issue — each a persona-flavored role template (lens / voice / SOUL + the
persona-skill capability boundary + icon + an ASCII usernameSlug), handed to
convene (council-creator) to be instantiated as a REAL agent. (Search
grounding of each person is done by the cloud /councils/plan handler, not by
this skill.) Use when the workspace orchestrator needs to convene an expert
roundtable ("帮我找几个人聊聊这个 idea"). Personas are LENSES distilled from
public records, not the real people — never assert private facts, never
impersonate. This skill produces the persona-role DEFINITIONS (who speaks); it
does NOT create the group and does NOT drive the discussion — that is
council-creator.
license: MIT
compatibility:
- prismer-sdk
- hermes
metadata:
category: council
personaPolicy: public_distillation
disclaimerRequired: true
allowedUse: [analysis, debate, ideation]
forbiddenUse:
- impersonation
- private_claim
- legal_advice_without_disclaimer
- medical_advice_without_disclaimer
- financial_advice_without_disclaimer
eval:
level: generator # eval the GENERATOR against a Brief — never a single persona
assertions:
- positions-distinct # N personas occupy N distinct stakeholder positions (no two share one)
- insider-view-present # ≥1 persona sits where outsiders cannot see
- no-fabricated-people # every displayName is a real, publicly verifiable person
- risk-coverage-3plus # cast covers ≥3 risk dimensions (capital/tech/market/org/compliance)
- grounding-substring # every quote is a substring of a real search snippet (code-checked)
- brief-boundary # no persona asserts company facts beyond the Brief
- honest-degradation # ungroundable candidates are dropped; never fabricate quotes**Who speaks.** Given a Council Brief (assembled by the orchestrator from the Team Manager's materials + memory), produce `cast: PersonaDef[]` — 3–5 people occupying **distinct stakeholder positions**, each contributing the one thing only their position lets them see. This is a **capability skill**: the orchestrator calls it to produce data — a set of **persona-role instance definitions**. Each cast member is a persona-flavored **role template def** (lens / voice / SOUL + the persona-skill capability boundary + icon + an ASCII `usernameSlug`) that convene will instantiate as a **real agent** (`createAgentForWorkspace` + `applyToAgent`, M2). It is **not** a virtual `im_users` mask — persona = role instance.
| Do | Do NOT | | --- | --- | | Enumerate stakeholder positions for the issue | Create the council group (council-creator) | | Pick one **real person** per position | Drive or moderate the discussion (council-creator) | | Produce `seesWhatOthersDont` per person | Write memory (settle phase, via `memory` skill) | | Emit voice (per-turn instructions) per person | Parse / extract materials (orchestrator tool-skills) | | Hand the cast to cloud `/councils/plan` for grounding | Run search verification / supply quotes yourself (cloud does it) | | Read `droppedCast[]` and substitute for dropped people | Invent people, quotes, or citations — ever |
**A discussion is a plurality of viewpoints, not a positive-vs-negative game.** Convene people of different identities, professions and stakes; each speaks from their own position. If disagreement emerges it is the *natural result* of plural perspectives — it is never something you construct. Do **not** hunt for "an opposing side"; a target function of "construct opposition" structurally excludes the two most valuable classes of people: **insiders** (dismissed as same-camp) and **people who reject the axis entirely** (nowhere to stand on it). The UI language is "讨论组" (discussion group), never "吵一架".
Before picking anyone, enumerate the positions whose duty / expertise / stake touches this issue:
运营执行者 / 出资人 / 监管者 / 同行实践者 / 下游客户 / 一线员工 / 被影响的第三方 …
that position. If no fitting famous person exists for a position (e.g. "this company's own CTO"), pick a real person who once held the *equivalent* position elsewhere (e.g. another rocket company's former CTO).
exists.
still each fill in a piece the Team Manager cannot see.
conflict.
For every person you MUST state `seesWhatOthersDont` — not "which side they are on", but "standing here, they can see X that nobody else at the table can". This field is the core output of the skill.
(`displayName: "Elon Musk"`, `subtitle: "SpaceX CEO"`). Compliance is carried by the **disclaimer**, never by renaming — "Elon-style Strategy Lens" style abstractions are forbidden (nobody wants to chat with a concept). Internal terms (`persona`, `lens`) never surface in UI copy.
not a concept.
ascii `[a-zA-Z0-9_-]`, 3–20 chars, lowercase slug of the person (e.g. `elon-musk`). It must NOT start with the reserved `prismer-` segment. Final uniqueness (`<slug>-<conv8>` + dedupe suffix) is enforced by the cloud at convene time — you only produce the candi
Repo: Prismer-AI/PrismerCloud
Turn a known bug into a tight, red-capable reproducer, then prove the reproducer locks that…
Review a diff against its acceptance criteria in four segments (convention adherence, bug…
Five-dimension design audit (frontend UI/UX · server data-model & flow · endpoint spec ·…
Before merge, mechanize Documentation-First — derive the code delta from git diff, then…
Diagnose the local dev machine before any APC loop step — run apc env doctor, classify each…
Close out a local coding task on the bound daemon — stage, commit, branch, merge, push via…