FCC Quality Gates Reference¶
The quality-gates registry is the list of explicit, machine-checkable controls that FCC enforces against itself and downstream deployments. From v1.3.8, two registries coexist:
- Core registry (30 gates) —
src/fcc/data/governance/quality_gates.yaml - Extended registry (58 gates) —
src/fcc/data/governance/quality_gates_extended.yaml, vendored from PHOENIX v4.0.0
The extended registry extends (never replaces) the core registry. Together they cover framework completeness, plugin conformance, and multi-jurisdictional compliance.
Tier Structure¶
Every gate carries one of three tier labels:
| Tier | Meaning | Audit Disposition |
|---|---|---|
tier_1 |
Core framework completeness | Blocks release |
tier_2 |
Compliance & risk | Must be remediated for high-risk deployments |
tier_3 |
Orchestration & federation | Improvement item; tracked but not blocking |
tier_1 maps to your "Must Fix" bucket. tier_2 maps to "Should Fix." tier_3 maps to "Nice to Have."
The Three Categories¶
The extended registry organises its 58 gates into three categories matching the PHOENIX v4.0.0 scorecard:
flowchart LR
Reg[Extended Registry<br/>58 gates] --> Core[Core Framework<br/>28 gates]
Reg --> Plugin[Plugins<br/>15 gates]
Reg --> Comp[Compliance<br/>15 gates]
Core --> P[Personas]
Core --> X[Cross-cutting]
Plugin --> AOME[AOME scope]
Plugin --> CONSTEL[CONSTEL scope]
Plugin --> PAOM[PAOM scope]
Comp --> EU[EU AI Act]
Comp --> NIST[NIST AI RMF]
Comp --> Other[GDPR, CCPA, HIPAA, + 6]
classDef reg fill:#e3f2fd,stroke:#0d47a1;
classDef cat fill:#c8e6c9,stroke:#2e7d32;
classDef leaf fill:#fff9c4,stroke:#f57f17;
class Reg reg;
class Core,Plugin,Comp cat;
class P,X,AOME,CONSTEL,PAOM,EU,NIST,Other leaf;
Category 1 — Core Framework (28 gates)¶
Framework-wide gates owned by specific FCC personas or cross-cutting checks. The scorecard:
| Status | Count |
|---|---|
| Covered | 8 |
| Partial | 12 |
| Gap | 8 |
Representative gates (IDs are stable across releases):
| ID | Owner | Tier | What it checks |
|---|---|---|---|
| QG-RC-001 | Research Crafter | tier_1 | Research inventory completeness |
| QG-BC-001 | Blueprint Crafter | tier_1 | Blueprint artefact completeness |
| QG-AMS-001 | Agent Metric Scorer | tier_1 | Hallucination check stub (closed in v1.3.8) |
| QG-GCA-001 | Governance Compliance Auditor | tier_1 | Wired into fcc audit (closed in v1.3.8) |
| QG-DGS-001 | Documentation Strategist | tier_2 | Data-flow frontmatter exemplar (closed in v1.3.8) |
Three tier-1 gaps closed in v1.3.8:
QG-GCA-001— the governance auditor is now invoked by default whenfcc auditrunsQG-DGS-001— the Forensic Auditor persona YAML now carries a data_flow frontmatter exemplarQG-AMS-001— acheck_hallucinations()stub lives atfcc.scoring.hallucinations
Category 2 — Plugins (15 gates)¶
Gates scoped to specific ecosystem plugins. Status: 0 covered, 4 partial, 11 gap at the extended-registry launch. The gaps are deliberate — each is a contract that downstream plugin authors must satisfy.
Representative:
| ID | Plugin Scope | Tier | Check |
|---|---|---|---|
| QG-AOME-001 | AOME | tier_2 | Vocabulary mapping completeness |
| QG-CONSTEL-001 | CONSTEL | tier_2 | Business process coverage |
| QG-PAOM-001 | PAOM | tier_2 | Object model conformance |
Plugin-scoped gates are advisory for deployments that do not use the plugin. Auditors should scope these gates to the plugins actually installed in the audited deployment.
Category 3 — Compliance (15 gates)¶
Gates mapping to regulation articles. Status: 0 covered, 2 partial, 13 gap. The "gap" status here reflects the regulatory-evidence-collection work that operators must do; the gate itself is shipped.
| Regulation | Representative Gate | Maps to |
|---|---|---|
| EU AI Act | QG-EUAIA-001 | Article 9 Risk Management System |
| NIST AI RMF | QG-NIST-001 | GV-1 Organisational Policies |
| GDPR | QG-GDPR-001 | Article 5 Principles |
| CCPA | QG-CCPA-001 | Section 1798.100 |
| HIPAA | QG-HIPAA-001 | 45 CFR 164.308 |
Six additional jurisdictions are covered in the remaining 10 gates; see the YAML for the exhaustive list.
Running the Gates¶
# Run all gates (extended + core)
fcc audit --strict --gates all
# Run gates for one category only
fcc audit --strict --gates-category compliance
# Run gates for a specific tier
fcc audit --strict --gates-tier tier_1
# Export a scorecard
fcc audit --gates-scorecard /tmp/scorecard.json
The scorecard JSON is the right format to attach to an audit engagement. It contains:
- Per-gate status (
pass,partial,fail,skip) - Per-gate evidence (the specific artefact that satisfied or failed the gate)
- Summary by tier and category
- Diff against the previous audit (if
--baselineis provided)
Mapping to Common Control Frameworks¶
Auditors working against a standard control framework (ISO/IEC 27001, SOC 2, NIST 800-53) will want a mapping from FCC gates to their framework. The recommended approach:
- Export the full gate list:
fcc audit --gates-list --format csv > gates.csv - In a spreadsheet, add a column for each control-framework ID your engagement cares about
- Fill it in row-by-row (a one-off exercise of a few hours for a complete registry)
- Save the mapping under version control; it becomes an auditor artefact
Pre-built mappings for EU AI Act and NIST AI RMF ship in the registry. Other frameworks are community-contributed via plugins.
Interpreting partial Status¶
A partial gate is one where FCC has some of the required controls but not all. The registry surfaces this honestly rather than overclaiming. When you see partial, the remediation field tells you exactly what is missing.
Example:
- id: QG-BC-001
fcc_status: partial
remediation: "Raise blueprint artefact completeness to include formal ADRs for every major design choice."
An audit finding for partial is appropriate when the missing portion materially affects the compliance claim. For low-risk deployments, a partial may be acceptable with compensating controls.
Gate Evolution¶
Gates are versioned. When a gate's definition changes, its ID stays stable but its version field bumps. This means:
- Historical audits remain valid (reproducible against the gate version in effect at the time)
- New gates are added via minor releases; existing gates are rarely removed
- A gate that is deprecated is marked
deprecated: truebut remains in the registry for at least two release cycles
Track the gate version in your engagement record alongside the FCC version and git rev.
Persona-to-Gate Matrix¶
For auditors who prefer a persona-first lens:
The output groups gates by persona_id so you can evaluate each persona's governance surface in one pass. Pair this with the R.I.S.C.E.A.R. Completeness check for a complete per-persona audit.
Gate Development Lifecycle¶
When FCC or a plugin adds a new gate:
- Gate is authored in YAML with provisional
fcc_status: gap - CI verifies the gate is syntactically valid
- Gate is implemented (code written, tests added)
- Gate graduates to
partialorcovered - Release notes document the new gate
- Auditors update their mapping spreadsheet on next engagement
The governance module docs document the gate-development process in full.
Related Reading¶
- Compliance Audit Workflow — the audit process that invokes gates
- R.I.S.C.E.A.R. Completeness — persona-level audit
- Evidence Artifacts — the artefacts gates compare against
- Governance module docs — implementation reference
- For Developers: Governance — authoring new gates
- For Professionals: Governance Compliance — business-facing view