Skip to content

ADR-007: SAFe Alignment Skeleton

Date: 2026-04-22 Status: Accepted Decision-makers: FCC core maintainers · SFBI (SAFe-FCC Bridge Interpreter) persona · SMC (SAFe Metrics Crafter) persona Consulted: Research Center (NEXUS) — PI calendar alignment · ai-coe-docs (PHOENIX) — quality-gate vocabulary Informed: All ecosystem partners tracking FCC PI cadence

Context and Problem Statement

By v1.4.1 the FCC ecosystem spanned nineteen projects across three trust tiers, with cross-repo coordination happening ad-hoc through CHANGELOG references, coordination notes, and bilateral slack threads. Release trains (PAOM alignment releases, AOME compliance pushes, constellation vocabulary updates) lacked a shared operating model that could answer questions like "what is the current PI?", "which epics are in-flight?", or "what's the readiness state of the next framework-wide release?"

The Research Center had adopted SAFe 6.0 (Scaled Agile Framework) for its own portfolio planning. Consumer projects (PAOM, AOME, CONSTEL) had started using SAFe terminology informally (Portfolio Epic, Value Stream, PI Objective) but without a canonical vocabulary that let FCC translate between its own internal Layer-1 Emergent-Design vocabulary and the SAFe Layer-2 Intentional-Architecture vocabulary.

The problem was whether FCC itself should adopt SAFe, and if so, how much: pure vocabulary reconciliation, a full SAFe instance, or something in between.

Decision Drivers

  • Ecosystem alignment. Research Center uses SAFe 6.0; adoption reduces translation friction across the ecosystem.
  • Scope discipline. SAFe's full scope is enormous; FCC needs "enough SAFe to coordinate with RC + consumers" without becoming a SAFe transformation project itself.
  • Persona embedding. Any adoption must surface SAFe roles (PO, PM, RTE, Business Owner) as FCC personas so the catalog stays the single source of "who does what."
  • Additive, not prescriptive. FCC must keep working without SAFe — consuming projects that don't adopt SAFe should not be disadvantaged.
  • Trademark posture. "SAFe" is a registered trademark of Scaled Agile, Inc. FCC consumes SAFe terminology but does not claim certification or own the vocabulary.

Considered Options

  1. No SAFe adoption. Keep using the loose Layer-1 / Layer-2 / Layer-3 vocabulary and reconcile with RC bilaterally.
  2. Full SAFe instance. Adopt the entire Portfolio + Large Solution
  3. Essential configuration, certify RTE roles, run actual PIs.
  4. Skeleton + vocabulary reconciliation. Vendor a minimal docs/safe/ tree (portfolio epics, value streams, ARTs, PI calendar, vocabulary reconciliation table) with make safe-report
  5. fcc audit safe CLI. Let RC-aligned projects consume it; allow others to ignore it. This is the skeleton that became v1.4.1 + expanded in v1.4.4.
  6. Build a custom portfolio vocabulary. Ignore SAFe and invent FCC-specific terms. Maximum flexibility, maximum translation cost.

Decision

We adopt option 3: a SAFe skeleton + vocabulary reconciliation, delivered in two stages.

Stage 1 (v1.4.1). Scaffolding:

  • docs/safe/ tree with 8 files: README, portfolio/{epics,value-streams}, arts/{framework,ecosystem,docs}-art, pi-calendar, safe-fcc-vocabulary.
  • 9 Portfolio Epics skeleton (6 v1.5.0 pillars + 3 strategic: patent delegation, dual-bus event split, POLARIS/LYRA integration).
  • 4 Value Streams: Framework, Ecosystem, Documentation, Delegation.
  • PI calendar aligned to RC PI-2026-Q3 / Q4 / 2027-Q1.
  • make safe-report Makefile target.
  • docs/safe/safe-fcc-vocabulary.md — canonical reconciliation table (Portfolio Epic ↔ Layer-1 Emergent-Design initiative, PI Objective ↔ release-note bullet, ART ↔ team topology).
  • Two new personas: SMC (SAFe Metrics Crafter), SFBI (SAFe-FCC Bridge Interpreter).

Stage 2 (v1.4.4). Completion:

  • Portfolio epics page gains full YAML front-matter (id, title, owner persona, value_stream, target_pi, status, acceptance_criteria, dependencies).
  • Each ART gets a ~600-word page: team topology (Stream-aligned + Enabling + Complicated-Subsystem + Platform per Skelton & Pais), iteration cadence within PI, backlog refinement, PO/PM/RTE roles mapped to FCC personas.
  • PI calendar adds Innovation & Planning (IP) iterations at the end of each PI and marks holiday skip-weeks.
  • New docs/safe/metrics/ directory: flow-metrics.md, pi-objectives.md, quality-gate-aggregates.md (all SMC-owned).
  • fcc audit safe CLI subcommand (extended from v1.4.1 skeleton) reads the portfolio-epics YAML front-matter and emits both JSON + Markdown reports; flags: --pi, --owner, --value-stream.

Out of scope: RTE certification, SAFe Agile Release Train naming ceremony, formal PI Planning events, SAFe 6.0 Large Solution configuration, SAFe 6.0 Essential configuration. FCC does not claim to be a SAFe transformation — it consumes enough SAFe to coordinate.

Consequences

Positive

  • Ecosystem vocabulary alignment. Research Center + FCC speak the same terminology; translation table handles consumers that stick with Layer-1 vocabulary.
  • Auditable cadence. fcc audit safe gives a JSON + Markdown snapshot of in-flight epics + PI status on demand.
  • Persona-embedded roles. SMC + SFBI personas keep the single catalog as the source of truth for "who owns what SAFe responsibility."
  • Incremental. v1.4.1 + v1.4.4 together add roughly 15 markdown files + 2 personas — not a framework overhaul.
  • Trademark-safe. We consume SAFe terminology verbatim (preserved in docs/i18n/glossary.csv as "do not translate") without claiming certification.

Negative

  • Vocabulary discipline cost. Contributors must learn "Portfolio Epic" vs "Feature" vs "Story" to use the CLI meaningfully.
  • Partial adoption. Some SAFe concepts (WSJF scoring, System Demos, Inspect & Adapt retrospectives) are out of scope; adopters must reach for the full SAFe playbook for those.
  • Trademark watch. Any marketing content referencing SAFe must carry the ® symbol + Scaled Agile attribution.

Confirmation

  • tests/test_audit_safe.py (26 tests, v1.4.4) — exercises the fcc audit safe CLI with JSON + Markdown output against fixture portfolios.
  • docs/safe/safe-fcc-vocabulary.md — owned by SFBI persona; referenced from ROADMAP.md.
  • make safe-report executable and idempotent against docs/safe/portfolio/epics.md YAML front-matter.
  • Coverage ≥99% line + branch on the new src/fcc/audit/safe_auditor.py module.

References

  • docs/safe/ tree (v1.4.1 + v1.4.4)
  • docs/safe/safe-fcc-vocabulary.md — canonical reconciliation
  • tests/test_audit_safe.py
  • CHANGELOG [1.4.1] — 2026-04-22 §FCC SAFe instance skeleton
  • CHANGELOG [1.4.4] — 2026-04-22 §SAFe instance completion
  • Skelton & Pais, Team Topologies (referenced for ART team typing)
  • Scaled Agile Inc. — SAFe 6.0 reference framework (external)
  • New personas: SMC, SFBI