Skip to content
Back to skills

Playbook Running

ASecurity

How to RUN a ProvenMap playbook from the terminal — pull the playbook's compiled skill file, work its steps in order through the platform's MCP tools, and let the server prove each one. Use when the architect wants a playbook done rather than authored ("run the migration playbook", "walk me through the ADR process", "do the inherited-system one on this board"), or asks what a live run needs next. Key capabilities: the run loop (list → start → pull the skill → step → re-read), which steps an a...

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 25, 2026
toolsgonode

Works with

  • terminal
  • mcp

Security analysis

A100/100

Scanned October 3, 2026

npx -y skills add provenmap/pmap-claude --skill playbook-running --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Playbook Running?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Playbook Running
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/provenmap-playbook-running/badge)](https://www.skillsdirectory.com/skills/provenmap-playbook-running)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: playbook-running
description: How to RUN a ProvenMap playbook from the terminal — pull the playbook's compiled skill file, work its steps in order through the platform's MCP tools, and let the server prove each one. Use when the architect wants a playbook done rather than authored ("run the migration playbook", "walk me through the ADR process", "do the inherited-system one on this board"), or asks what a live run needs next. Key capabilities: the run loop (list → start → pull the skill → step → re-read), which steps an agent may do and which belong to a person, the proof discipline, and the failure branches.
---

# Running a Playbook

<!-- The file this reads is compiled by the platform from the playbook's steps; its
     shape — frontmatter, "How to run this", stage headings, per-step Tools and
     "Done when" — is fixed there. Do not restate its content here; this is how to obey it. -->

## What running a playbook means

A playbook is an org-level guided track for one job. Authoring composes it
(`playbook-authoring`); running it is doing the work it names, on a board, until the server
marks its end proof done.

The division is absolute and it is the whole safety story:

- **You do the work**, through the product's own doors — the same MCP tools any session has.
- **The server decides what is done.** It watches real workspace state. No tool proves a step;
  `report_playbook_step` records only what the workspace cannot show (a choice, a skip, a
  person's mark), and a mark shows as marked, never proven.
- **A run is one person's walk.** `list_playbooks` shows teammates' runs too, with `mine` on
  each; work the run you started, and start your own rather than acting on someone else's.

So a step is finished when a re-read of the run says it is finished, and at no other moment.
If you did the work and the step has not ticked, something about the work did not land: say
what is missing rather than moving on.

## The tools

| Tool                   | Use                                                                                                                                                                                                                                            |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_playbooks`       | the catalogue this org can start, plus this workspace's live runs and each one's next step                                                                                                                                                     |
| `start_playbook`       | open a run on a board; returns the existing run when one is already live                                                                                                                                                                       |
| `get_playbook_skill`   | the playbook compiled to one file: stages, steps, the tools each step names, the proof for each                                                                                                                                                |
| `get_playbook_run`     | one run with every step evaluated — done, available, the evidence that proved it (on an open step, `evidence` without an `instance` says why it is still open: relay it)                                                                       |
| `report_playbook_step` | record on your run what the server cannot see: `choice` (the branch key), `selectTarget` (`boardSlug` or `epicSlug`), `selectLayer` (`layerSlug`), `skip`/`restore`, `markDone`/`unmark`, `acknowledge` (a sign-off the named person gave you) |
| `get_hub_status`       | pass `playbook` when a step asks you to look at the hub: the read is that run's hub visit                                                                                                                                                      |

`get_playbook_skill` is the instruction set. Read it before the first step, not after.

## The run loop

1. **Find the run.** `list_playbooks` with the board. A live run of yours (`mine`) for what the
   architect asked for → use it. None → pick from the catalogue by matching the ask against each
   playbook's `job` line, confirm the playbook by name, then `start_playbook`. Any playbook
   starts anywhere; one on an app or an epic that has none yet opens on its Select target step.
2. **Pull the skill.** `get_playbook_skill` for that playbook. Follow its stage order. Its
   per-step **Tools** list is what you may call for that step; a step that names none is not a
   step you do (see below).
3. **Take the next available step.** `get_playbook_run` names it. Work only steps the run
   reports available — `dependsOn` is the author's sequencing and jumping it produces work the
   server will not credit. The step's `id` there is the one you pass below; a step inside a
   nested playbook reads `parent/child`.
4. **Do the work** with that step's tools, and with the step's own words as the brief. On every
   write those tools make, pass `playbook: { runId, stepId }` — the run id from
   `start_playbook`/`list_playbooks`, the step id exactly as `get_playbook_run` reports it. That
   field is how the server learns what this step produced; a write without it is real work the
   run cannot see, and the step will not tick.
5. **Re-read.** `get_playbook_run` again. Ticked → report it with the evidence the run gives and
   go to 3. Not ticked → stop on this step and say what is missing (the first thing to check:
   did the write carry `playbook`).
6. **Stop at the end proof**, or at the first step you cannot do.

Report as you go: one line per step, naming the step and the evidence. A run of six steps is
six short lines, not a narrative.

## Steps a person answers, and steps that are not yours

Every playbook but the setup guide can be finished from here: each step has tools, a command,
or a person you ask. Some steps need the person, and the compiled file says how on each:

- **A chat question expecting an answer** — yours to answer, from the board, with the read
  tools the step lists. Give the person the answer and where it comes from. Once they are
  satisfied, tick it with `report_playbook_step` `markDone`; it reads as marked, since the answer
  lives in this session rather than in a chat thread.
- **`acknowledge`** — a named person confirms it. Ask them; once they have confirmed, record it
  with `report_playbook_step` `acknowledge`. Never confirm one on someone's behalf: that is the
  one place a human signature is the point. A step that opens later ("a month on") is refused
  until its day.
- **`publish`** — a person's step: there is no publish tool. Ask the person to publish the board
  from **Publish** in ProvenMap; publishing makes it readable outside the workspace, so they choose
  who can see it. The step ticks when they publish.
- **A work item step that stops at Drafted** — draft the plan's work items and leave them as
  drafts for the person to read; handing off is a later step's.
- **A work item step that ends at Confirmed** — you author and hand off; the tick comes later,
  from a sync in the repository. Report the hand-off and move on; never wait for it.
- **`control` with tools** — yours: its tools are the terminal's way to the same proof (the
  attention queue is `get_hub_status` with `playbook`; owner tags are `update_nodes`).

Only these stop the loop; name the step, say where it happens, and stop rather than invent a
way around it:

- **`control` with no tools** — an on-screen control with no terminal equivalent. Outside the
  setup guide the composer refuses one, so it means a playbook saved before that rule.
- **`code`** — a guided sub-flow the web app walks itself (the setup guide's own screens).
- **`select-target`** — done when the run is on its app or epic. While it is open, the run's
  `targetChoices` says how to answer (`answerWith`). An app run lists the apps by name and slug:
  offer them (AskUserQuestion). An epic run lists none (`choices: null`), because epics can run to
  hundreds: ask which epic, looking it up with `list_epics`, or make one with `create_epic`. Then
  record the pick with `report_playbook_step` (`selectTarget`, with `boardSlug` or `epicSlug`). No
  apps yet → `convert_node_to_app` on a landscape system with the architect. Never pick for them.
  Work items you make at an epic run's steps are filed in its epic by the server; do not file them
  yourself.
- **`select-layer`** — done when the run is on the board where the project's systems are drawn.
  While it is open, the run lists every board under `layerChoices` (slug, name, its path from the
  root, whether it is an app) and `current`, the board it reads now. Suggest one: the root when
  the new systems stand beside the others, the layer inside a system when they extend it. Read
  what is drawn on the likely candidates with `get_nodes` and weigh it against the epic's brief,
  then ask (AskUserQuestion), your suggestion first with its reason. Record the answer with
  `report_playbook_step` (`selectLayer`, with `layerSlug`). Every later step that reads the run's
  board reads this one. Never pick for them.
- **`choice`** — ask the architect which branch (AskUserQuestion), then record it with
  `report_playbook_step` (`kind: "choice"`, the branch key). The branch's steps open only once
  it is recorded; doing the work first proves nothing. Do not pick for them. A choice with
  `settledBy` that the run already shows done is moot (the workspace has what every branch
  was for): do not ask, move on.
- **Work done outside its door** — a step you can see is done but the run cannot (the work
  item was written by hand without the run, say). Name the step and say it can be marked done
  in the guide, or with `report_playbook_step` `markDone` if the person asks you to. The tick
  shows as marked, never proven; milestones cannot be marked.

A `command` step naming a `code` plugin command (`/analyze`, `/sync`, `/adopt`) belongs to the
repository session, not here: name the command and the repo, and hand off.

## Scope

Most playbooks write. `start_playbook` and the write tools a step names need a `read_write`
token — a read-only token can list, read a run and pull the skill, and nothing else. Check the
tools available before starting rather than failing three steps in.

## Failure branches

- Tools missing / connection errors → `ProvenMap not configured — run /login (browser) or /configure (manual) first`
- 401 → `Your ProvenMap architect token was rejected — run /login to reconnect`
- 402 on a step's tool → the org's plan does not include it. Relay the message; if the step is
  optional, `report_playbook_step` `skip` so its dependants open, and carry on. A required step
  stops the run there.
- `get_playbook_skill` refuses a slug → it is not in this org's catalogue, or it is disabled.
  `list_playbooks` says what can be started.
- The run pins the version it started on. A newer version of the playbook exists → say so; the
  run keeps its pinned steps, and restarting is the architect's call from the run's menu on the
  hub card or in the guide (Restart, Remove).
- `report_playbook_step` refuses with "belongs to …" → the run is a teammate's. Start your own.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…