Skip to content

Persona Evolution Pathways

New in v1.3.3. This guide explains how FCC personas evolve across their lifecycle — from freshly scaffolded YAML stubs to federated, champion-led, cross-project orchestrators. It complements archetype-families.md (the who) and archetype-interaction-atlas.md (the how) by describing the when and why of persona maturation.

TL;DR

  1. FCC personas travel through the same four-stage EvolutionStage maturity model used for object-model assessments.
  2. Archetype family (Shepherd, Quant, Investigator, Architect, Storyteller, Safety Engineer) is a stable attractor — it rarely changes, even as a persona matures.
  3. Category migration is common and expected (e.g. data_engineeringgovernance as a Quality Guardian matures into a governance steward).
  4. Champion promotion is a one-way transition that lifts a base persona into an orchestration role via the champion_of and orchestrates fields.
  5. Every evolution step leaves an audit trail in the Discernment Matrix, the Cross-Reference Matrix, and the Role Collaborators list.

The EvolutionStage enum

FCC reuses the same maturity model for both object models and personas, defined in src/fcc/objectmodel/evolution.py:

class EvolutionStage(Enum):
    FOUNDATIONAL = "foundational"
    STRUCTURED = "structured"
    SEMANTIC = "semantic"
    FEDERATED = "federated"
Stage Aggregate threshold Persona-level meaning
FOUNDATIONAL 0.00–0.40 Flat YAML, missing R.I.S.C.E.A.R. components, no collaborators
STRUCTURED 0.40–0.65 Full R.I.S.C.E.A.R., explicit collaborators, named archetype
SEMANTIC 0.65–0.85 Cross-reference matrix entries, discernment scores, dimension profile
FEDERATED 0.85–1.00 Cross-project entity resolution, vocabulary mappings, champion-aware

The enum exposes next_stage(), previous_stage(), and ordinal helpers so tooling can walk the ladder deterministically.

from fcc.objectmodel.evolution import EvolutionStage

stage = EvolutionStage.STRUCTURED
print(stage.next_stage())       # EvolutionStage.SEMANTIC
print(stage.description)        # "Normalized schema with explicit relationships..."
print(stage.ordinal)            # 1

The five vectors of persona maturation

A persona does not evolve along a single axis. Five independent vectors move in loose synchrony:

flowchart LR
    P[Persona YAML] --> R[R.I.S.C.E.A.R. Completeness]
    P --> D[Discernment Matrix Depth]
    P --> X[Cross-Reference Coverage]
    P --> V[Vocabulary Mapping Coverage]
    P --> C[Champion Eligibility]
    R --> S{Aggregate Score}
    D --> S
    X --> S
    V --> S
    C --> S
    S --> E[EvolutionStage]
    E --> Q[Quality Gate Outcome]
  1. R.I.S.C.E.A.R. completeness — all 10 components populated with non-boilerplate content (see src/fcc/data/personas/ for reference YAMLs).
  2. Discernment matrix depth — the 6 traits × 7 rating dimensions are scored, not empty.
  3. Cross-reference coveragerole_collaborators names real persona IDs, and the persona appears in src/fcc/data/personas/cross_reference.yaml.
  4. Vocabulary mapping coverage — domain terms in the persona description are resolvable against entries in src/fcc/data/objectmodel/.
  5. Champion eligibility — the persona has been referenced by a champion's orchestrates list or has itself been promoted via champion_of.

Stage 1 — FOUNDATIONAL

A persona in this stage exists as a YAML stub with a name, an ID, and a single-sentence description. No role collaborators, no discernment scores, no archetype assignment.

Concrete example. A newly scaffolded SQL Query Crafter (SQC) before its first review pass:

- id: SQC
  name: SQL Query Crafter
  role_title: SQL Query Crafter
  category: data_engineering
  riscear:
    role: Writes SQL queries for analytics workloads.

Quality gates that block the next promotion: persona.riscear.completeness, persona.role_collaborators.nonempty, persona.archetype.assigned.

Stage 2 — STRUCTURED

The persona now carries a full R.I.S.C.E.A.R. block, a named archetype, a category, and at least three collaborators. This is the minimum bar for inclusion in the core 102 personas.

Concrete example. Feature Architect (FAR) in its v1.1.0 shape:

  • archetype: The Feature Engineer
  • role_collaborators: [DSS, ENA, MAR, ESC, IAN]
  • Discernment matrix — first-pass scores only on Curiosity and Taste.

Stage 3 — SEMANTIC

The persona has been folded into the cross-reference matrix, scored on all six discernment traits, carries a persona-dimension profile from src/fcc/personas/dimensions.py, and its role_skills map to named vocabulary terms.

Concrete example. Research Crafter (RC) today:

  • Appears in cross_reference.yaml as upstream of BC, UG, and RB.
  • Discernment matrix fully populated with rationales.
  • role_skills map to src/fcc/data/objectmodel/research-*.yaml entries.
  • Forms a pair with its champion counterpart RCHM.

Stage 4 — FEDERATED

The top of the ladder. The persona has:

  • Cross-project entity resolution entries in the federation registry (src/fcc/federation/registry.py).
  • Vocabulary mappings that resolve across at least two ecosystem namespaces (the framework ships 11 namespaces as of v1.2.1).
  • Change-tracking history in fcc.federation.tracker.ChangeTracker.
  • EU AI Act risk classification and NIST AI RMF subcategory mappings.

Concrete example. AI Compliance Officer (ACO) — it resolves across PAOM, athenium, and mnemosyne namespaces, carries EU AI Act high-risk classification, and is cited by the compliance subscriber.

Cross-category progression

Personas frequently migrate across categories as their scope expands. The category is a current-focus signal, not an identity. The archetype family is the stable identity.

flowchart TB
    subgraph "Quality Guardian journey"
      QG1[QGD · data_engineering · Stage 2] --> QG2[QGD · governance · Stage 3]
      QG2 --> QG3[QGD champion · jv_governance · Stage 4]
    end
    subgraph "Forecasting Analyst journey"
      FA1[FAS · ml_models · Stage 2] --> FA2[FAS · ml_lifecycle · Stage 3]
      FA2 --> FA3[FAS · finance-aligned · Stage 4]
    end

Real examples drawn from the current registry:

Persona Start category Current category Stage now
QGD (Quality Guardian) data_engineering data_engineering + governance edges SEMANTIC
FAR (Feature Architect) ml_lifecycle ml_lifecycle + ml_models edges SEMANTIC
OA (Ontology Architect) knowledge_graph knowledge_graph + integration edges FEDERATED
PTE (Privacy Taxonomy Engineer) governance governance + privacy edges SEMANTIC

Champion promotion patterns

A champion is a persona that coordinates a team of base personas. The promotion is marked by two fields:

  • champion_of: <base_persona_id> — names the origin base persona
  • orchestrates: [<id>, ...] — names the team under orchestration

The framework ships four champions out of the box: RCHM, BCHM, RBCH, UGCH. Each follows the same pattern:

- id: RCHM
  name: Research Crafter Champion
  category: champion
  champion_of: RC
  orchestrates: [RC, CIA, STE, RIC]

Champion promotion is a one-way transition — once promoted, the champion and the base persona coexist in the registry, and the champion inherits the base persona's archetype family but gains Storyteller-ish orchestration responsibilities on top.

When to promote

A base persona is a promotion candidate when:

  1. It appears in three or more role_collaborators lists as an upstream dependency.
  2. The cross-reference matrix shows it at the head of a traversal chain.
  3. Its outputs feed into at least two different FCC phases (Find, Create, Critique).
  4. Downstream teams repeatedly request synchronization / sequencing.

The FCC CLI exposes fcc personas show-champions and fcc dashboard personas --mode champions to surface promotion candidates.

Archetype family transitions

Archetype family transitions are rare but possible — rarer than category migrations, because the family captures a deep orientation of the persona (stewardship vs. analysis vs. audit vs. design vs. narrative vs. safety).

Common transitions that have occurred in the registry:

  • Investigator → Shepherd: AI Ethics Auditor (AEA) started life as an investigator (audits) and acquired shepherd responsibilities (governance ownership) during the v1.2.0 retrofit.
  • Architect → Shepherd: Data Governance Specialist (DGS) — originally a schema architect, now a governance steward.
  • Quant → Storyteller: Insight Reporter (IRE) — started as a metrics quant, matured into the narrative synthesizer that ships dashboards.

When an archetype transition occurs, the archetype field in YAML should change and docs/personas/archetype-families.md should be regenerated.

Discernment matrix evolution

Discernment matrix scores follow a characteristic evolution curve. A FOUNDATIONAL persona has no scores at all. A STRUCTURED persona has 1–3 dominant traits scored. A SEMANTIC persona has all 6 scored with a differentiated profile. A FEDERATED persona maintains scores across multiple ecosystem contexts and can reconcile them.

flowchart TD
    F[FOUNDATIONAL<br/>No scores] --> S[STRUCTURED<br/>1-3 traits]
    S --> SM[SEMANTIC<br/>All 6 traits]
    SM --> FE[FEDERATED<br/>Multi-context]
Trait Foundational Structured Semantic Federated
Humility rough scored cross-ecosystem
Professional Background rough scored cross-ecosystem
Curiosity rough scored cross-ecosystem
Taste scored cross-ecosystem
Inclusivity scored cross-ecosystem
Responsibility scored cross-ecosystem

Role Collaborators expansion

A growing role_collaborators list is one of the most visible evolution signals. The median core persona has 4–5 collaborators; the oldest, most-evolved core personas (RC, BC, UG) carry 8–12 and are cited by 15+ others.

Growth pattern:

  1. Stage 1: no collaborators.
  2. Stage 2: 3–5 direct downstream consumers.
  3. Stage 3: 5–10 with upstream + peer differentiation (see cross_reference.yaml).
  4. Stage 4: 10+ with cross-ecosystem entries (resolvable via federation).

Evolution-aware scenarios

When authoring test scenarios that exercise multiple evolution stages, place a persona at each stage and assert that the scenario engine handles the differential capabilities.

{
  "name": "evolution-walk-through",
  "personas": [
    { "id": "SQC", "expected_stage": "structured" },
    { "id": "QGD", "expected_stage": "semantic" },
    { "id": "ACO", "expected_stage": "federated" }
  ],
  "setup": { "ai_config": { "provider": "mock" } }
}

The scaffold CLI ships fcc scaffold-scenario --evolution-walk (v1.3.3) that generates a walk-through scenario automatically.

Quality gates tied to evolution

The governance registry (src/fcc/data/governance/quality_gates.yaml) defines gates that correspond to evolution steps:

Gate Blocks promotion past
persona.riscear.completeness FOUNDATIONAL
persona.archetype.assigned FOUNDATIONAL
persona.role_collaborators.min_3 STRUCTURED
persona.discernment.full_6_traits STRUCTURED
persona.cross_reference.listed SEMANTIC
persona.vocabulary.resolvable SEMANTIC
persona.federation.resolved SEMANTIC (promotes to FEDERATED)

Further reading