Skip to content

Energy vertical — academic tutorial

Released in FCC v1.2.0. You are teaching or studying persona-driven agent workflows and want to use the Energy pack as a case study. This tutorial connects the persona's R.I.S.C.E.A.R. specification to the underlying regulatory standards and shows how to cite them properly in classwork or publications.

The Energy pack in one paragraph

The energy vertical pack (at src/fcc/data/verticals/energy.yaml) contains 6 personas covering grid model management (IEC 61970 CIM), energy settlements, NERC CIP compliance, demand response planning, renewable integration, and battery storage optimization. Headline compliance frameworks: IEC 61970 CIM, NERC CIP-003 through CIP-014, FERC Order 2222, IEEE 1547.

Focus persona: GMM — Grid Model Manager

We'll anchor this tutorial on GMM, because it's the one most relevant to the academic audience in the Energy domain.

from fcc.verticals.registry import VerticalRegistry

reg = VerticalRegistry.from_builtin()
pack = reg.get("energy")
persona = next(p for p in pack.personas if p.id == "GMM")

print(persona.name)
print(persona.risk_category or "minimal")
riscear = persona.riscear or {}
print("Archetype:", riscear.get("archetype"))
print("Role:", riscear.get("role"))

Connecting the persona to its regulatory standards

GMM (Grid Model Manager) was selected because its responsibilities map cleanly onto published standards in the energy domain. The research note at src/fcc/data/verticals/research/energy.research.md lists the exact sources.

When citing this persona in classwork or a publication, use both:

  1. The FCC framework citation (see docs/community/citation.md).
  2. The underlying standards cited in the research note.

Extracting persona constraints for comparison

A common assignment is to compare the R.I.S.C.E.A.R. constraints across several personas and argue which are regulatory versus organizational in origin.

for p in pack.personas:
    r = p.riscear or {}
    print(f"=== {p.id}{p.name} ===")
    for c in r.get("constraints", []):
        print(f"  - {c}")
    print()

Your homework: classify each constraint as regulatory, organizational, or professional-ethical.

Generating a model card for citation

fcc model-card generate --persona GMM --output _output/cards

Model cards follow Mitchell et al. (2019) and include a bibliographic field you can cite directly.

Verify what you did

Run the vertical test suite to make sure your changes didn't break anything:

pytest tests/test_verticals.py -k "energy" -v

All academic-path steps in this tutorial leave your working tree unchanged — the pack YAML is read-only from your perspective. The only state that accumulates is in _output/ (scenario run traces) and docs/model-cards/ (if you regenerated cards).

Next steps