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¶
- No SAFe adoption. Keep using the loose Layer-1 / Layer-2 / Layer-3 vocabulary and reconcile with RC bilaterally.
- Full SAFe instance. Adopt the entire Portfolio + Large Solution
- Essential configuration, certify RTE roles, run actual PIs.
- Skeleton + vocabulary reconciliation. Vendor a minimal
docs/safe/tree (portfolio epics, value streams, ARTs, PI calendar, vocabulary reconciliation table) withmake safe-report fcc audit safeCLI. 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.- 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-reportMakefile 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 safeCLI 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 safegives 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.csvas "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 thefcc audit safeCLI with JSON + Markdown output against fixture portfolios.docs/safe/safe-fcc-vocabulary.md— owned by SFBI persona; referenced from ROADMAP.md.make safe-reportexecutable and idempotent againstdocs/safe/portfolio/epics.mdYAML front-matter.- Coverage ≥99% line + branch on the new
src/fcc/audit/safe_auditor.pymodule.
References¶
docs/safe/tree (v1.4.1 + v1.4.4)docs/safe/safe-fcc-vocabulary.md— canonical reconciliationtests/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