Skip to content
🚧 Early alpha — building the foundation. See the roadmap →

EvolutionPattern taxonomy draft v0.1

Created Updated

Draft v0.1 — ready for architecture review. This is the foundational spec that FrameworkConfig v2 and _crosswalker metadata v2 will build on.

Derived from three foundational questions:

  1. How often does it change?release_cadence
  2. What breaks when it changes?breaking_change_policy, id_stability, hierarchy_stability, deprecation_mechanism
  3. How much context is available to handle the change?changelog_format, crosswalk_maintenance, scope_expansion
FieldTypeValuesWhy it matters
release_cadenceenumad_hoc, annual, biannual, quarterly, continuousHow often to check for staleness
breaking_change_policyenumforbidden, rare, managed, unrestrictedWhether old imports survive updates
id_stabilityenumimmutable, additive, evolving, unstableWhether crosswalk links survive
changelog_formatenumnone, prose_only, structured_incomplete, structured_completeWhether migration can be automated
hierarchy_stabilityenumfrozen, conservative, dynamic, radicalWhether folder structure survives
scope_expansionenumnone, incremental, major, metamorphicWhether old imports become incomplete
deprecation_mechanismenumnone, soft_delete, versioned_chain, forward_migrationHow removed concepts are handled
crosswalk_maintenanceenumself_maintained, submission_based, pivot_hub, delegatedWho keeps crosswalks current
FrameworkCadenceBreakingIDsChangelogHierarchyScopeDeprecationCrosswalksSCD Type
NIST 800-53ad_hocmanagedimmutablestructured_incompleteconservativeincrementalsoft_deletesubmissionType 3
NIST CSF 2.0ad_hocmanagedadditivestructured_incompleteconservativemajorsoft_deletesubmissionType 2
CIS v8ad_hocunrestrictedevolvingprose_onlyradicalincrementalnonedelegatedType 1
MITRE ATT&CKbiannualrareevolvingstructured_completedynamicnoneversioned_chainselfType 4
MITRE D3FENDcontinuousmanagedimmutablestructured_incompletefrozennonesoft_deleteselfType 3
MITRE ENGAGEad_hocrareimmutablestructured_incompletefrozennonesoft_deletedelegatedType 2
CRI Profilead_hocmanagedadditivestructured_incompletefrozenmajorsoft_deletesubmissionType 2
IF breaking == "forbidden" AND changelog == "structured_complete"
  → Type 6 (full hybrid)
ELSE IF breaking in [rare, managed] AND deprecation == "versioned_chain"
  → Type 4 (history table with revocation chains)
ELSE IF breaking == "managed" AND ids in [immutable, additive]
  → Type 2 or 3 (version-tagged folders / ID aliasing)
ELSE
  → Type 1 or 0 (overwrite / archive only)

Framework evolution profiles are YAML files:

framework_id: mitre-attack-enterprise
name: "MITRE ATT&CK Enterprise"
version: "16.1"
published_date: 2025-10-15

evolution:
  release_cadence: biannual
  breaking_change_policy: rare
  id_stability: evolving
  changelog_format: structured_complete
  hierarchy_stability: dynamic
  scope_expansion: none
  deprecation_mechanism: versioned_chain
  crosswalk_maintenance: self_maintained

recommended_scd_type: 4
handling_strategy: "history-table-with-current-flag"

Full examples for all 7 frameworks are in the spec draft.

An ontology’s evolution is not a property of the ontology itself, but of how it’s stewarded by its community.

MITRE publishes biannual with STIX changelogs → automation possible. CIS publishes infrequently with prose → human-driven. The taxonomy captures this stewardship pattern.

  1. Staleness detection algorithm — time-based? hash-based? version-aware?
  2. Crosswalk versioning — should crosswalks carry their own evolution pattern?
  3. SCD type automation — can the decision tree be fully automated from the taxonomy?
  4. Community governance — who maintains the evolution profile registry?
  5. LLM-assisted detection — can LLMs analyze changelogs and suggest evolution patterns?
  6. Pivot/interlingua strategy — should Crosswalker adopt SCF as a meta-framework?