---
title: "NamedProcedure"
description: "a written way of doing a recurring job, which the agent follows and a person can read"
section: concepts
address: /concepts/namedprocedure
contract: 0476e35e6e275db5
---

# NamedProcedure

a written way of doing a recurring job, which the agent follows and a person can read

[figure: NamedProcedure is a definition at platform scope. The drawing shows its fields and the objects that they point at.]

| property | value |
|---|---|
| kind | definition |
| scope | platform |
| key | its name and version |
| store | postgres |
| family | harness |



## Fields


| field | type | required | note |
|---|---|---|---|
| `name` | `text` | yes |  |
| `steps` | `[text]` | yes |  |
| `plants` | `text` | no | for an acceptance procedure: the fault it plants |
| `must_read_red` | `text` | no |  |
| `must_read_green` | `text` | no |  |
| `population` | `text` | no |  |
| `control` | `text` | no |  |
| `code` | `text` | no | for a procedure the workbench runs: the script its steps run, as a path inside the workspace |
| `code_hash` | `hash` | no | the hash of the code as it ran; a number from code without it is never measured |



## Routes that use it
No route takes or returns NamedProcedure directly. The record holds it, and the objects that point at it reach it.
