Skip to content
Development
Skill

/persona-generator

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

BOOST
From plugin
prismercloud
1.6k102 skills
Install
$ npx -y skills add Prismer-AI/PrismerCloud --skill persona-generator --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/persona-generator

Context 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

SKILL.md

persona-generator.SKILL.md
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

Persona Generator

**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 |

Meta-goal (iron rule — supersedes any "debate" framing)

**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 "吵一架".

Core procedure

Step 0 — List stakeholder positions first (not "axes of disagreement")

Before picking anyone, enumerate the positions whose duty / expertise / stake touches this issue:

运营执行者 / 出资人 / 监管者 / 同行实践者 / 下游客户 / 一线员工 / 被影响的第三方 …

Step 1 — One REAL person per position

  • Pick the person whose **real public track record** naturally puts them in

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).

  • **Never invent a name.** Prefer swapping to a position where a real person

exists.

  • Do **not** require them to disagree with each other. They may all agree and

still each fill in a piece the Team Manager cannot see.

  • **Forbidden:** inserting an artificial "opposing side" to manufacture

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.

Step 2 — Attach the persona (who arrives at the table)

  • Enough verifiable public record and a good fit → **real name**

(`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.

  • Otherwise → a role label ("一位持保守立场的航天投资人") — still a person,

not a concept.

  • `usernameSlug` (**load-bearing — this is the persona-agent's @-handle**):

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

Read more
Ships withprismercloud

Prismer Cloud

Get the whole plugin
Stats
1,554
Stars
17
Forks
Active
Maintenance
TypeScript
Language
MIT
License
2d ago
Last commit
6mo ago
Created

Repo: Prismer-AI/PrismerCloud

Other skills on prismercloud.