---
slug: "Step"
name: "Step"
type: "Data Structures"
layer: "Infrastructure"
ref: "Step#fa20"
sema_id: "sema:Step#mh:SHA-256:fa207e6f70e14a67e3baa7e4ad4df9ece59ba4d07083fbbcc992332959e1520a"
tags: ["Infrastructure","Data Structures"]
updated: 2026-11-11
mindscape: "bootstrap"
index_url: https://mindscape.pages.dev/bootstrap/index.json
url: https://mindscape.pages.dev/bootstrap/Step/
related: ["Plan","Realizable","Workflow"]
---

# Step

Atomic action with pre/post conditions

Layer: Infrastructure · Category: Data Structures

## Mechanism

A unit of action that declares its own boundaries. It specifies: 1. Preconditions (what must be true before), 2. Action (what to do), 3. Postconditions (what will be true after), 4. Rollback (how to undo if needed). It acts as a node in a causal graph.

## Invariants

- Declares whether it can be rolled back, and how. A step that cannot be undone says so.
- Causal closure: preconditions are satisfiable by prior steps or the initial state.

## Failure modes

- Precondition violation: executed when preconditions were not met.
- Postcondition failure: completes without achieving its postconditions.
- Rollback failure: the declared undo does not restore the prior state, so the step is neither done nor undone.

## Data schema

```json
{
  "type": "object",
  "required": [
    "step_id",
    "action_type",
    "params",
    "preconditions",
    "postconditions",
    "rollback"
  ],
  "properties": {
    "step_id": {
      "type": "string"
    },
    "action_type": {
      "type": "string",
      "description": "The verb or tool to invoke"
    },
    "params": {
      "type": "object",
      "description": "Arguments for the action"
    },
    "dependencies": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "IDs of steps that must complete first"
    },
    "retry_policy": {
      "type": "object",
      "properties": {
        "max_attempts": {
          "type": "integer"
        },
        "backoff_strategy": {
          "type": "string"
        }
      }
    },
    "preconditions": {
      "type": "array",
      "description": "What must be true before the action runs."
    },
    "postconditions": {
      "type": "array",
      "description": "What will be true after it succeeds."
    },
    "rollback": {
      "type": "object",
      "description": "How to undo the action, or an explicit statement that it cannot be undone."
    }
  }
}
```

## Builds on

—

## Used by

- [Plan](https://mindscape.pages.dev/bootstrap/Plan.md) (Infrastructure; References)
- [Realizable](https://mindscape.pages.dev/bootstrap/Realizable.md) (Mind; References)
- [Workflow](https://mindscape.pages.dev/bootstrap/Workflow.md) (Society; References)

## Identity

- Sema ID: `sema:Step#mh:SHA-256:fa207e6f70e14a67e3baa7e4ad4df9ece59ba4d07083fbbcc992332959e1520a`
- Ref: `Step#fa20`
- Supersedes:
  - `sema:Step#mh:SHA-256:aa73ad96f51e2c5fe3a5a42d251855eea9c8a75c93a50539f4d6c6635c8dd7d7`

## Links

- [Pattern page](https://mindscape.pages.dev/bootstrap/Step/)
- [View in the interactive graph](https://mindscape.pages.dev/bootstrap/#Step)
- [JSON](https://mindscape.pages.dev/bootstrap/Step.json)
- [Index of all patterns](https://mindscape.pages.dev/bootstrap/index.json)
