## §OIP SYSTEM ARTICLE — SHEET (8 operations)
A generated article for one OIP shelf. It lists every operation in this API/CLI/MCP/device/model/core subsystem, links each leaf article, and gives the ledger path for proof.

### Read Order
- scan operations
- open a leaf doc
- run via run_now or POST /api/dispatch
- open receipt
- repair/replay if needed

### Operations
- **SHEET_LIST** — Every sheet in the workbook: id, title, cell count, whether it is a view. The link of a sheet is https://miscs
  when: the owner asks what sheets exist, or you need a sheet id.
  args: none
  doc: https://miscsubjects.com/api/dispatch?key=SHEET_LIST&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SHEET_LIST&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SHEET_LIST
- **SHEET_NEW** — Make a new sheet as a live view over a source of record. Columns are a comma list of source columns, JSON path
  when: the owner wants to see, compare or edit a set of agents, tools, payloads or events as a grid.
  args: title | source | columns | filter
  doc: https://miscsubjects.com/api/dispatch?key=SHEET_NEW&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SHEET_NEW&body=Agents%7Cdirectory%7Ckey%2Ctype%2Ctest_state%2Ccontent%2Clast_response%7Ctype%20%3D%20agent&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SHEET_NEW
- **SHEET_ADD_COLUMN** — Add a column to a view sheet: a source column, a JSON path, or an =expression evaluated per row.
  when: the owner wants one more thing visible on an existing sheet.
  args: sheet_id | path
  doc: https://miscsubjects.com/api/dispatch?key=SHEET_ADD_COLUMN&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SHEET_ADD_COLUMN&body=sh_abc123%7Cdescriptor_json.governance.direct&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SHEET_ADD_COLUMN
- **SHEET_ADD_FILTER** — Add a row filter to a view sheet, written as words: "field op value".
  when: the owner wants fewer rows on an existing sheet.
  args: sheet_id | filter
  doc: https://miscsubjects.com/api/dispatch?key=SHEET_ADD_FILTER&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SHEET_ADD_FILTER&body=sh_abc123%7Ckey%20contains%20BLOOIO&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SHEET_ADD_FILTER
- **SHEET_PIN** — Pin one field of one object above a sheet's grid, editable in place: directory/<KEY>/<field> (an agent's promp
  when: the owner wants to read and edit a prompt or setting beside the rows it affects.
  args: sheet_id | ref | label
  doc: https://miscsubjects.com/api/dispatch?key=SHEET_PIN&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SHEET_PIN&body=sh_abc123%7Cdirectory%2FROUTER%2Fcontent%7CROUTER%20prompt&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SHEET_PIN
- **SHEET_REMOVE_COLUMN** — Remove a column from a view sheet by its path.
  args: sheet_id | path
  doc: https://miscsubjects.com/api/dispatch?key=SHEET_REMOVE_COLUMN&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SHEET_REMOVE_COLUMN&body=sh_abc123%7Ccontent&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SHEET_REMOVE_COLUMN
- **SHEET_VISIBILITY** — Make a sheet public (anyone reads it at https://miscsubjects.com/sheet/<id>) or private.
  args: sheet_id | public|private
  doc: https://miscsubjects.com/api/dispatch?key=SHEET_VISIBILITY&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SHEET_VISIBILITY&body=sh_abc123%7Cpublic&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SHEET_VISIBILITY
- **SHEET_DELETE** — Delete a sheet. The rows it projected are untouched.
  args: sheet_id
  doc: https://miscsubjects.com/api/dispatch?key=SHEET_DELETE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SHEET_DELETE&body=sh_abc123&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SHEET_DELETE

### Troubleshooting
- If a row's example has placeholders, replace only the placeholder values and preserve separators.
- If a call fails, open its receipt and repair it with POST /api/dispatch {key, body, repairs:'inv_ID'}.
- If token scope denies this system, ask the owner for a row:/rows:/pfx: token scoped to the exact operation set.

Back to the tree: https://miscsubjects.com/api/dispatch?map=1&format=markdown