Development record
The persona glossary (brief/glossary/core/persona.md) and brief/01-product/05-personas.md say the persona picker 'chooses at random', contradicting personas.json and itd-79 whose rule is 'selection is by role, never by name'; the glossary's worked examples also assign off-role names (Carol as product lead, Alice as developer)
issueresolvednitpickiss-300
The persona glossary (brief/glossary/core/persona.md) and brief/01-product/05-personas.md say the persona picker 'chooses at random', contradicting personas.json and itd-79 whose rule is 'selection is by role, never by name'; the glossary's worked examples also assign off-role names (Carol as product lead, Alice as developer)
Evidence
.abcd/development/personas.jsonconvention: "the audience picks the ROLE; the role determines the name — never pick a name directly", echoed by.abcd/development/intents/disciplines/itd-79-persona-registry.md("by role, never by name"). Thepersona_registrylint (internal/core/lint/persona.go, blocker) and the 2026-07-08 / 2026-08 entries in.abcd/work/decisions/confirm this is the shipped, reconciled rule; there is no random-picker code in the tree..abcd/development/brief/glossary/core/persona.mdsays "Match the role hint when the role matters; pick randomly otherwise", and its worked examples assignCarol, product lead(registry: product lead → Iris; Carol → engineering manager) andAlice (developer)(registry: Alice → solo founder / product engineer).- The
brief/01-product/05-personas.md"chooses at random" half is already filed as open iss-49 (record-cosmetics batch); the novel finding is the glossary file.
Adversarial review
CONFIRMED by an independent refuter (glossary half is novel; personas.md half is prior art
iss-49). Fix confined to persona.md: state the role-first rule and re-role the two examples
(Iris for product lead; Alice with a registered hint).
Frontmatter
| id | iss-300 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | nitpick |
.abcd/work/issues/resolved/iss-300-the-persona-glossary-brief-glossary-core.md
open on GitHub ↗ · commit history ↗
mentions7
- dcn-26081900000000032026-08-19 — bughunt round 1 (branch bughunt-b/round-1): captured iss-291..iss-304 and fixed
- dcn-26082100000000042026-08-21 — Bug-hunt round 6, branch bughunt-b/round-6. Baseline (make preflight
- iss-49record cosmetics batch: an orphaned .gitkeep; two verbatim doctrine blocks duplicated in the record; the ACKNOWLEDGEMENTS ccpm entry was added retroactively against its own same-change rule; the brief lacks a one-page arc42 crosswalk and an open-questions precedence line; 05-personas.md should be rewritten role-first with personas.json as the roster source of truth. Low individual impact; batched so the cleanup pass has one handle. Detector: none warranted beyond the existing lints — this is the residue after detector-shaped clusters were extracted, fixed directly per the fix-the-detector one-off bound.
- iss-338Seven registry personas are given he/she/his/her pronouns across intents/drafts (itd-92,97,98,108,126,128) and intents/shipped (itd-100), violating the they/them persona discipline (itd-79); review-enforced convention with no mechanical gate, concentrated in one 2026-08 authoring batch — a cosmetics-batch cleanup
- iss-2608211849581263brief 05-personas.md says the persona picker chooses at random, contradicting personas.json and itd-79 (selection is by role, never by name); a live residual of resolved iss-300
- iss-2609120452071388Reported from a downstream repository using abcd, where `abcd capture` (bare,
- itd-79Personas Come From the Registry; the Role Picks the Name