$npx -y skills add acnlabs/OpenPersona --skill persona-evaluatorAudit any OpenPersona (or peer LLM-agent) persona in three complementary modes: structural (CLI, deterministic, CI-friendly: 4 Layers × 5 Systemic Concepts × Constitution gate with role-aware severity), semantic white-box (LLM reads pack-content JSON and scores Soul-narrative qua
| 1 | # persona-evaluator — Persona Quality Auditor |
| 2 | |
| 3 | Score any OpenPersona persona pack against the **4+5 framework standard**: |
| 4 | **4 Layers** (Soul · Body · Faculty · Skill) × **5 Systemic Concepts** (Evolution · Economy · Vitality · Social · Rhythm) + Constitution compliance gate. |
| 5 | |
| 6 | `persona-evaluator` reads `persona.json`, generated artifacts, and soul files to produce a structured 9-dimension report — calibrated to the OpenPersona quality standard, with role-aware severity and three modes for self / peer / black-box review. |
| 7 | |
| 8 | --- |
| 9 | |
| 10 | ## Quick Start |
| 11 | |
| 12 | ```bash |
| 13 | # Evaluate an installed persona (static / structural) |
| 14 | npx openpersona evaluate <slug> |
| 15 | |
| 16 | # JSON output (for scripting or CI) |
| 17 | npx openpersona evaluate <slug> --json |
| 18 | |
| 19 | # Save report to file (always JSON; --json not needed alongside --output) |
| 20 | npx openpersona evaluate <slug> --output report.json |
| 21 | |
| 22 | # Embed evaluable persona content (Soul/character/behavior-guide) so an |
| 23 | # LLM evaluator (this skill, acting through an agent) can also judge |
| 24 | # quality semantically — not just structurally |
| 25 | npx openpersona evaluate <slug> --pack-content |
| 26 | ``` |
| 27 | |
| 28 | ## Choosing a mode |
| 29 | |
| 30 | `persona-evaluator` runs in three complementary modes. Pick the mode based on what the user asks before reading the rest of this file. |
| 31 | |
| 32 | |
| 33 | | User asks | Mode | How | Confidence | |
| 34 | | ---------------------------------------------------- | ----------------------------- | -------------------------------------------------------------------- | --------------------------- | |
| 35 | | "CI / gate persona quality" | **structural** | `npx openpersona evaluate <slug>` | deterministic | |
| 36 | | "Polish review of my own pack" | **semantic white-box** (self) | `... evaluate <slug> --pack-content`, then apply rubric in self-mode | high | |
| 37 | | "Peer-review a pack I have on disk" | **semantic white-box** (peer) | same command, peer-mode rubric | high | |
| 38 | | "Review agent X" where X is remote / non-OpenPersona | **semantic black-box** | A2A handshake → consent + probe → passive, in that order | mid (cap 8/10) or low (cap 6/10) | |
| 39 | |
| 40 | |
| 41 | Structural is the default. Switch to semantic only when the user explicitly asks for narrative quality review (e.g. "evaluate me semantically", "self-review my pack", "qualitative audit"). Switch to black-box only when you cannot read the subject's `persona.json` on disk. |
| 42 | |
| 43 | Sections below cover each mode in depth: structural ([What Gets Scored](#what-gets-scored)), semantic white-box ([Semantic Evaluation](#semantic-evaluation-llm-driven)), and semantic black-box ([Black-box Semantic Evaluation](#black-box-semantic-evaluation)). |
| 44 | |
| 45 | ## What Gets Scored |
| 46 | |
| 47 | The structural CLI scores **9 dimensions** + the Constitution gate. Severity (`strict` / `normal` / `lenient`) is set per dimension by the persona's declared role. |
| 48 | |
| 49 | |
| 50 | | Layer / Concept | Dimension | Looks at | |
| 51 | | ---------------- | ------------------------------ | ------------------------------------------------------ | |
| 52 | | Soul | identity, character, aesthetic | `persona.json` Soul block + `soul/*.md` | |
| 53 | | Body | environment, runtime | hardware/runtime declaration | |
| 54 | | Faculty | tools, capabilities | declared |