> ## Documentation Index
> Fetch the complete documentation index at: https://docs.withmethod.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Observed effects

> What each script step really did in a run: hosts, files, variables, and programs.

For each `run` step, the runtime records what the script process did. It does not change the script. The run record keeps `observed_effects` for each step:

| Field | What the process did |
| - | - |
| `network` | Hosts that it connected to. |
| `reads` | Files that it read. |
| `writes` | Files that it wrote. |
| `env` | Environment variables that it read. |
| `runs` | Programs that it started. |

Paths inside the run's own temporary and output folders are left out. Python scripts are observed with an audit hook, and Node scripts with a preload. Other runtimes are not observed: the record says `runtime_not_observed`. Observation never fails a step; a problem gives `unavailable` with the reason.

## On the dashboard

Each script step on the run page shows what the script did. When the step has a [script card](/guides/script-cards), the page compares the two and shows what the script did beyond its card: for example a host, a file, or a variable that code analysis did not find.

## Observed effects and effect contracts

Observed effects are a record of the process. They do not confirm that an external change happened. To confirm a change in a service, a step declares `effects` with an observer that reads the changed system. See [Method format](/method/format#effects).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.