# Conformance ## Overview This section defines what it means for an implementation to conform to the CFSE specification. ## Conformance Levels CFSE defines three conformance levels to accommodate different use cases: ### Minimal Conformance **Required artifacts:** Concepts, Entry Points, Scenarios, Explorations **Use case:** Quick security assessments, time-constrained engagements **Requirements:** - Concepts MUST have: ID, Name, Promise, Entry Points (with `EP-*` IDs), Invariants (may be empty) - Entry Points MUST have: ID, Title, Owner Concept, Method, Path, Action - Scenarios MUST have: ID, Hypothesis, Attack Vector - Explorations MUST have: ID, Scenario Reference, Observations, Verdict ### Standard Conformance **Required artifacts:** All Minimal + Interactions, Flows, Invariants, Findings **Use case:** Typical security assessments, penetration testing **Requirements:** - All Minimal requirements - Interactions MUST have: ID, From/To Concepts, Entry Points (`EP-*`), Pre/Post Invariants - Flows MUST have: ID, Steps with Interaction references - Invariants MUST have: ID, Rule, Logic expression - Findings MUST have: ID, Evidence (Exploration references), Remediation **Optional supporting artifacts (not required for conformance):** - Projections (`PRJ-*`) - Traces (`T-*`) ### Full Conformance **Required artifacts:** All Standard + Predicates, Generators, Patches **Use case:** Comprehensive security programs, methodology development **Requirements:** - All Standard requirements - Predicates MUST have: ID, Parameters, Definition - Invariants MUST decompose into Predicates - Generators MUST have: ID, Template, Variables - Patches MUST have: ID, Finding reference, Verification evidence - Complete traceability (TR-1 through TR-5) ## Validation Criteria ### ID Syntax Validation All artifact IDs MUST match their defined regex patterns (see grammar/01-id-syntax.md). ### Reference Validation All cross-references MUST resolve to existing artifacts. ### Schema Validation All artifacts MUST validate against their YAML schemas. If a corpus uses an Invariant Library YAML file, every Predicate and Invariant entry in that library MUST validate against the Predicate and Invariant schemas (see `artifacts/supporting/invariant_library/invariant_library.md`). ### Traceability Validation At Full conformance, all traceability rules (TR-1 through TR-5) MUST be satisfied. ## Conformance Declaration A CFSE implementation SHOULD declare its conformance level: ```yaml cfse: version: "1.0.0" conformance: "standard" # minimal | standard | full ``` ## Extensions CFSE supports optional extensions. A corpus MAY declare extensions alongside core conformance. See `foundations/extensions.md` for the normative extension mechanism. Example: ```yaml cfse: version: "1.0.0" conformance: "standard" extensions: example_ext: version: "0.1.0" conformance: "standard" ``` ## Partial Conformance An implementation that meets some but not all requirements of a level is considered non-conformant to that level but MAY declare partial conformance: ```yaml cfse: version: "1.0.0" conformance: "partial" level: "standard" missing: - "Flows do not reference Interaction IDs" ```