software-engineering
type: Ontology
identifier: software-engineering
version: 0.7.0
description: Software engineering domain ontology — incidents and SDLC operational procedures
has namespace:
  procedural memory: procedural
defines entity type: incident-report
defines entity type: runbook
defines entity type: deployment-procedure
defines entity type: migration-guide
defines trait:
  versioned: versioned
  dated: dated
  timeline: timeline
  stakeholders: stakeholders
defines relationship:
  caused by: caused_by
  resolves: resolves
  supersedes: supersedes
  documents: documents
  triggers: triggers
discovery config:
  discovery enabled: true
  confidence threshold: 0.8
  has discovery pattern: https://mif-spec.dev/ns/pattern/0
  has discovery pattern: https://mif-spec.dev/ns/pattern/1
  has discovery pattern: https://mif-spec.dev/ns/pattern/2
  has discovery pattern: https://mif-spec.dev/ns/pattern/3
  has discovery pattern: https://mif-spec.dev/ns/pattern/4
  has discovery pattern: https://mif-spec.dev/ns/pattern/5

procedural
type: Namespace
has child namespace:
  deployments: deployments

deployments
type: Namespace
description: Deployment procedures, release processes
type hint: procedural

incident-report
type: EntityType
base type: EpisodicMemory
description: A production incident or outage report
alternative label: production incident report
alternative label: postmortem report
alternative label: outage report
alternative label: incident postmortem
alternative label: operational incident
example: An autonomous coding agent ignored an explicit action freeze and deleted a production database, then fabricated records to conceal it
example: A single API call from an AI coding agent destroyed both a production database and its backups, causing a multi-hour customer outage
example: A platform's own monthly availability report documents an hours-long window where enterprise customers could not use a core feature
negative example: Game days and disaster recovery testing are an engineering practice where teams simulate outage scenarios without impacting production, regularly practicing incident response and validating runbook accuracy.
defines trait: mif:trait/timeline
defines trait: mif:trait/stakeholders
schema.org:
  required: severity
  required: impact
  required: resolution
  properties:
    severity:
      type: string
      description: Incident severity level
      enum: critical
      enum: high
      enum: medium
      enum: low
    impact:
      type: string
      description: Business/user impact description
    resolution:
      type: string
      description: How the incident was resolved
    root cause:
      type: string
      description: Root cause analysis
    prevention:
      type: array
      description: Prevention measures
      items:
        type: string
    duration minutes:
      type: integer
      description: Incident duration in minutes

runbook
type: EntityType
base type: ProceduralMemory
description: Operational runbook for handling scenarios
alternative label: operational runbook
alternative label: incident runbook
alternative label: remediation runbook
alternative label: on-call runbook
example: An industry production-readiness checklist names on-call and runbook readiness as a required facet that is easy to omit
example: A runbook library spanning over a dozen procedures classifies each by severity and automation coverage target
example: A standard runtime for operational runbooks executes version-controlled remediation actions under least-privilege roles, triggered automatically on events
negative example: CQRS splits commands from queries into separate models, but eventual consistency lag makes it a poor fit for a bank balance check immediately after a debit. The Saga pattern chains local transactions with compensating rollbacks, favoring orchestration over choreography as the number of steps grows.
negative example: A deployment procedure for rolling updates of container nodes on ECS: drain existing tasks, launch new tasks on updated AMI, wait for health checks, then terminate old tasks once new ones report healthy, minimizing downtime during gradual node replacement.
negative example: A migration guide for upgrading from Java 8 to Java 17 covers deprecated APIs to update, new module system configuration requirements, garbage collector tuning changes, and testing strategies for validating the upgrade in staging environments.
defines trait: mif:trait/versioned
defines trait: mif:trait/stakeholders
schema.org:
  required: title
  required: trigger
  required: procedure
  properties:
    title:
      type: string
    trigger:
      type: string
      description: What triggers this runbook
    severity:
      type: string
      enum: critical
      enum: high
      enum: medium
      enum: low
    procedure:
      type: array
      description: Step-by-step procedure
      items:
        type: object
    escalation:
      type: object
      description: Escalation path

deployment-procedure
type: EntityType
base type: ProceduralMemory
description: Step-by-step deployment or release procedure
negative example: A git-flow branching model with long-lived develop and release branches can cause multi-day merge conflicts when feature branches diverge for days. Trunk-based development merges small changes directly to main behind feature flags, surfacing integration issues within hours instead of days.
negative example: Pull request cycle time measures the elapsed time from a PR being opened to it being merged, broken into sub-phases like time-to-first-review and approval-to-merge, to identify which phase is the actual bottleneck in the review process.
negative example: Feature flags and dark launches are an engineering practice where new code is deployed to production but hidden behind a configuration flag, allowing teams to control visibility and rollout pace independently of deployment timing.
defines trait: mif:trait/versioned
defines trait: mif:trait/stakeholders
schema.org:
  required: name
  required: steps
  required: target_environment
  properties:
    name:
      type: string
    steps:
      type: array
      items:
        type: object
    target environment:
      type: string
      enum: development
      enum: staging
      enum: production
    prerequisites:
      type: array
      items:
        type: string

migration-guide
type: EntityType
base type: ProceduralMemory
description: Database or system migration procedure
defines trait: mif:trait/versioned
defines trait: mif:trait/dated
schema.org:
  required: title
  required: from_state
  required: to_state
  required: steps
  properties:
    title:
      type: string
    from state:
      type: string
    to state:
      type: string
    steps:
      type: array
      items:
        type: object
    rollback procedure:
      type: array
      items:
        type: object
    downtime required:
      type: boolean

versioned
type: Trait
description: Adds version tracking fields
has field:
  version:
    type: string
    pattern: ^\d+\.\d+\.\d+.*$
  changelog:
    type: array
    items:
      type: object

dated
type: Trait
description: Adds decision/event date
has field:
  decision date:
    type: string
    format: date
  review date:
    type: string
    format: date

timeline
type: Trait
description: Adds incident timeline
has field:
  timeline:
    type: array
    items:
      type: object

stakeholders
type: Trait
description: Adds stakeholder tracking
has field:
  stakeholders:
    type: array
    items:
      type: object

caused_by
type: Relationship
description: Incident causality
domain: mif:entityType/incident-report
range: mif:entityType/component
range: mif:entityType/technology
symmetric property: false

resolves
type: Relationship
description: Decision resolves an issue
domain: mif:entityType/architectural-decision
range: mif:entityType/incident-report
symmetric property: false

supersedes
type: Relationship
description: Newer version supersedes older
domain: mif:entityType/architectural-decision
domain: mif:entityType/component
domain: mif:entityType/runbook
domain: mif:entityType/deployment-procedure
range: mif:entityType/architectural-decision
range: mif:entityType/component
range: mif:entityType/runbook
range: mif:entityType/deployment-procedure
symmetric property: false

documents
type: Relationship
description: Procedure documents how to work with entity
domain: mif:entityType/runbook
domain: mif:entityType/deployment-procedure
domain: mif:entityType/migration-guide
range: mif:entityType/component
range: mif:entityType/technology
symmetric property: false

triggers
type: Relationship
description: Incident triggers runbook execution
domain: mif:entityType/incident-report
range: mif:entityType/runbook
symmetric property: false

https://mif-spec.dev/ns/pattern/0
type: DiscoveryPattern
content pattern: \b(outage|incident|postmortem|RCA)\b
suggests entity type: incident-report
suggests namespace: _episodic/incidents

https://mif-spec.dev/ns/pattern/1
type: DiscoveryPattern
content pattern: \b(runbook|playbook|SOP|procedure)\b
suggests entity type: runbook
suggests namespace: _procedural/runbooks

https://mif-spec.dev/ns/pattern/2
type: DiscoveryPattern
content pattern: \b(deploy|release|rollout)\s+(steps|procedure)\b
suggests entity type: deployment-procedure
suggests namespace: _procedural/deployments

https://mif-spec.dev/ns/pattern/3
type: DiscoveryPattern
content pattern: \b(migration|migrate|upgrade)\s+(guide|plan)\b
suggests entity type: migration-guide
suggests namespace: _procedural/migrations

https://mif-spec.dev/ns/pattern/4
type: DiscoveryPattern
file pattern: **/runbooks/**/*.md
suggests entity type: runbook
suggests namespace: _procedural/runbooks

https://mif-spec.dev/ns/pattern/5
type: DiscoveryPattern
file pattern: **/docs/procedures/**/*.md
suggests entity type: deployment-procedure
suggests namespace: _procedural/deployments

step:
  type: integer
action:
  type: string
expected outcome:
  type: string

order:
  type: integer
action:
  type: string
verification:
  type: string
rollback:
  type: string

type: string
format: date-time

type: string

type: string

type: string

type: string

type: string