Persona writing
Skill event4u-app/agent-config/dist/agent-src/skills/persona-writing
Universal AI Agent OS — audited skills, governance rules, replayable state. One contract, every host agent.
npx -y skills add event4u-app/agent-config --skill persona-writingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when creating or editing a persona in src/agent-src/personas/ — voice / focus / unique questions / output expectations — even when the user just says 'add a reviewer voice for X'.
SKILL.md
5.3 KB, as published. Nobody here has run it
persona-writing
When to use
- Creating a new persona file in
src/agent-src/personas/{id}.md - Rewriting an existing persona (focus shift, output-expectation change — not a typo fix)
- Deciding whether a new reviewer voice should be a persona at all (vs. a skill of its own)
Do NOT use this skill when:
- The content is a multi-step workflow → use
skill-writing - The content is a hard obligation the agent must always honor → use
rule-writing - The content describes the project's role-mode contract → that lives
in
docs/guidelines/agent-infra/role-contracts.md, not in personas
Persona vs skill vs role-mode — critical test
| Intent | Artifact |
|---|---|
| "Agent should review through a specific lens" | Persona |
| "Agent should run a multi-step workflow" | Skill |
| "Agent's closing contract differs by role" | Role-mode (contract file) |
A persona is passive reference content — it never triggers by
description, never appears in <available_skills>. Skills cite
personas via the personas: frontmatter key.
Procedure
0. Drafting protocol
Creating or materially rewriting a persona must go through
Understand → Research → Draft per the
artifact-drafting-protocol
rule. Inspect existing personas under
src/agent-src/personas/ for overlap before writing a new
one.
1. Decide focus, not topic
A persona owns one focus: automation-readiness, adversarial challenge, product-owner priorities, etc. If the focus needs three sentences, it is two personas.
2. Draft the persona file
Required sections:
## Focus— one paragraph, what this lens cares about and what it ignores.## Unique questions— 4–7 questions only this persona would ask. Each question must be decidable against the artifact under review.## Output expectations— what the persona produces (verdict format, severity vocabulary, citation discipline).
Optional: ## Anti-patterns this persona catches — concrete examples
the persona is calibrated to flag.
3. Cite from at least one skill
A persona that is not cited by any skill via the personas:
frontmatter key is dead code. Either wire it into an existing skill
or do not ship it.
Frontmatter shape
---
id: <kebab-case-id>
role: <Human-Readable Role>
description: "One sentence: what this voice catches that others miss."
tier: core | specialty
mode: developer | product-owner | qa | stakeholder | none
version: "1.0"
source: package
---
The mode: field is advisory only — it suggests which role-mode the
persona pairs naturally with; it does not bind.
Output format
A single Markdown file at src/agent-src/personas/{id}.md:
- Frontmatter (
id,role,description,tier,mode,version,source) ## Focus— one paragraph, what the lens cares about and ignores## Unique questions— 4–7 decidable questions## Output expectations— verdict format, severity vocabulary
Length: ≤ 80 lines for a tier-core persona; longer signals the focus is too broad.
Gotchas
- Persona without a citing skill — a persona that no skill
references via
personas:never loads. Wire it in or do not ship. - Focus drift across rewrites — adding "and also …" to
## Focusis the first symptom of a second persona hiding inside the first. - Vibe-based unique questions — "Does this feel right?" cannot be evaluated against the artifact. Replace with decidable triggers.
- Restating role-mode contracts — closing-contract obligations
belong in
docs/guidelines/agent-infra/role-contracts.md, not in the persona body.
Frugality Standards
Apply the Frugality Charter to every persona you author.
Examples in this artifact:
- Per the charter's default-terse rule,
## Focusopens with what the persona cares about, not "This persona was created to…". - Per the cite-don't-restate principle, link rules the persona enforces; do not paste their text into the persona body.
- Per the cheap-question check,
## Unique questionslists decidable questions only — drop any that read like vibe checks.
Pre-save self-check:
- Does
## Focusopen with the lens, or with persona meta-narrative? - Are unique questions decidable against the artifact alone?
- Are any questions duplicated from another persona?
- Is the persona cited by at least one skill via
personas:?
Do NOT
- Author a persona that nobody cites.
- Restate Iron-Law text from rules inside
## Output expectations. - Use ALL-CAPS Iron-Law fenced blocks — those belong in rules on the
kernel-membershiplist. - Ship a persona that overlaps an existing one's focus by more than 50 % — merge instead.
Examples
See src/agent-src/personas/ai-agent.md (automation
readiness) and critical-challenger.md (adversarial review) for
canonical structure.