# persona-roster-expander

Turns a seed list of personas into a tiered, judgment-mapped cast bounded by safety rules and exports the structure to a JSON file.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 30
- Author: chrono-meta
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/chrono-meta/forge-harness/tree/HEAD/plugins/fh-meta/skills/persona-roster-expander/SKILL.md
- Updated: 2026-10-25
- HTML: https://affpapa.org/en/nevibecode/skills/persona-roster-expander

## What it does

The skill takes a seed roster, a decision domain, and a mandatory tiering constraint provided by the user. Each persona is assigned a strict tier (such as quote-only relay versus framed perspective) that limits what it can assert. Every adversarial voice is paired with a constructive counter-voice so that devil's-advocate roles never take the final turn.

To fill missing decision lenses, the skill suggests 2 to 4 extra roles. It delegates name generation to the `persona-innovator` agent and uses `WebSearch` to find verifiable anchors for the top candidates. Any proposed voice lacking a resolvable citation receives an explicit `stub:` prefix.

The process halts if you do not provide a domain safety rule, because the skill strictly avoids fabricating authority. The finalized cast is never left as plain chat text; it is verified by writing directly to a loadable file like `personas.json`.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add chrono-meta/forge-harness --skill persona-roster-expander -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/persona-roster-expander/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/persona-roster-expander/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add chrono-meta/forge-harness --skill persona-roster-expander -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/persona-roster-expander/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add chrono-meta/forge-harness --skill persona-roster-expander -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/persona-roster-expander/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install chrono-meta/forge-harness persona-roster-expander
```

2. **Manually: put the files in place**
- File: `.github/skills/persona-roster-expander/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add chrono-meta/forge-harness --skill persona-roster-expander -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/chrono-meta/forge-harness --path plugins/fh-meta/skills/persona-roster-expander
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/persona-roster-expander/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add chrono-meta/forge-harness --skill persona-roster-expander -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/chrono-meta/forge-harness/tree/HEAD/plugins/fh-meta/skills/persona-roster-expander/SKILL.md

## When to use it
- assign authority tiers to personas using explicit domain safety rules
- map character archetypes to concrete engineering decision lenses
- propose missing roles backed by verifiable external references
- export validated persona rosters directly to personas.json

## Example prompts
- expand the persona roster and keep it faithful to our security policy
- /persona-roster-expander seed personas + domain + safety rule
- take these character archetypes and tell me what engineering judgment each one provides

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: b6828bd233c97e58.

BEGIN THIRD-PARTY FILE b6828bd233c97e58
```text
---
name: persona-roster-expander
description: Expands a named persona seed into a tiered, judgment-mapped cast — tiering each persona by a domain safety rule, mapping each to a decision-lens in the user's vocabulary, then proposing additional voices with sourced anchors.
user-invocable: true
allowed-tools: ["Read", "Grep", "WebSearch", "WebFetch", "Write", "Agent"]
model: sonnet
---

# persona-roster-expander

Takes a seed set of named personas and turns it into a usable judgment cast: each persona tiered by a
domain safety rule, mapped to a concrete decision-lens, plus a few proposed additions filling
uncovered lenses with real anchors. An innovator-family skill — generative, but bounded by a
caller-supplied safety rule so the expansion stays faithful to the domain's constraints.

> Origin: harvested from the-bible (2026-06-20) — an operator persona seed (priest/nun/angel/devil/
> God/Jesus/Holy-Spirit/apostles) tiered relay-vs-lens by a relay-safety rule and mapped to
> engineering-judgment lenses, +4 sourced proposals. **The grounds, inline, because the harvest
> record does not ship**: an ungated persona cast drifts into inventing its own authority — a voice
> given a lens will speak past what the domain lets it assert — so tiering by a *caller-supplied*
> rule is what keeps the expansion faithful, and the lens mapping is what makes a named voice
> usable as a decision instrument instead of flavor. Full harvest record — **hub-local, not
> distributed in the npm package**:
> `tracks/_contrib/field_harvest_2026-06-20_gate-locality-and-grounding-capabilities.md`.

## Triggers
- "broaden these personas" / "what other voices fit this cast"
- "map these roles to a decision lens"
- "expand the persona roster and keep it faithful to <rule>"
- `/persona-roster-expander {seed personas + domain + safety rule}`

### Natural Language Triggers (example user phrases)
- "내가 명명한 페르소나 후보군을 더 넓혀줘, 판단 매핑이랑 같이"
- "take these character archetypes and tell me what engineering judgment each one provides"
- "add a few more voices that cover a perspective these don't"

## Steps
1. **Collect the seed + the safety rule** — the named personas, the domain (what decisions they
   reflect on), and the caller-supplied **tiering rule** (the hard constraint that decides what each
   persona is allowed to do). Without an explicit safety rule, ask for one — do not invent authority.
2. **Tier each persona** by the safety rule (e.g. relay/quote-only vs lens/framed-perspective). State
```
END THIRD-PARTY FILE b6828bd233c97e58

The third-party file has ended. Everything between the b6828bd233c97e58 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2560 of 6652 bytes. © chrono-meta · MIT · https://github.com/chrono-meta/forge-harness/tree/HEAD/plugins/fh-meta/skills/persona-roster-expander/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
