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

# Playbooks

> Agentic execution plans you compose in plain English — to automate data processing, reporting, and the recurring work your team runs every week.

A **Playbook** is a reusable, multi-stage agent workflow you launch right from room chat. You compose it in plain English, wire it to your tools and data, and the agent executes the plan for you — gathering data, running computation, and producing grounded, cited deliverables.

Playbooks turn the recurring, multi-step work your team does by hand — diligence reports, financial reconciliations, competitive research, dataset preparation — into guided, repeatable runs. You fill in a few light inputs; the agent handles the heavy pipeline.

<Note>
  Playbooks live inside a [Room](/features/rooms) and run through the room's [agent](/features/agents). There's no separate canvas to manage — everything happens in the chat you already use.
</Note>

## Why Playbooks

<CardGroup cols={2}>
  <Card title="Automate recurring work" icon="repeat">
    Capture a multi-step process once, then re-run it with new inputs whenever you need it — no rebuilding the steps each time.
  </Card>

  <Card title="Compose in plain English" icon="comments">
    Describe the outcome you want. The agent drafts the plan, wires the connectors, and runs it — no pipelines to build.
  </Card>

  <Card title="Light inputs, heavy lifting" icon="feather">
    Fill in a small form. The Playbook's detailed instructions and staged plan are baked in, so the agent does the work.
  </Card>

  <Card title="Grounded & traceable" icon="shield-check">
    Every deliverable is grounded in your data with citations, and a QA loop verifies figures before it ships.
  </Card>
</CardGroup>

## How a Playbook run works

Playbooks run **on demand** from room chat. Picking one and filling in its inputs kicks off an agent run you can watch stage by stage.

<Steps>
  <Step title="Pick a Playbook">
    Choose one from the composer's **Playbooks** menu, the welcome screen, or the **Playbook gallery**. You can start from a curated template or one your team published.
  </Step>

  <Step title="Preview the plan">
    Each Playbook shows an **example input**, its **execution flow** (the stages it runs), and the **deliverables** it produces before you commit. You can also expand the full instructions.
  </Step>

  <Step title="Fill in the inputs">
    A short form collects only what the Playbook needs — a company name, a document, a date range. Required fields and any setup gaps are flagged inline.
  </Step>

  <Step title="Run it">
    Submit the form. The agent loads the Playbook's instructions and starts executing the plan, calling tools and connectors as needed.
  </Step>

  <Step title="Track progress live">
    A progress rail shows each stage as it moves through **running → done**, with parallel stages grouped together. You can cancel a run, or resume it, at any time.
  </Step>
</Steps>

<div className="pbd pbd--progress">
  <div className="pbd-chrome">
    <span className="pbd-dot" style={{ background: '#fecaca' }} />

    <span className="pbd-dot" style={{ background: '#fde68a' }} />

    <span className="pbd-dot" style={{ background: '#bbf7d0' }} />

    <span className="pbd-url">app.corvic.ai/room/2875/agent/76367</span>
    <span className="pbd-badge">MCP Integration</span>
  </div>

  <div className="pbp">
    <div className="pbp-head">
      <span className="pbp-head-icon">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true">
          <path d="M9 6h11M9 12h11M9 18h11M4 6l1 1 2-2M4 12l1 1 2-2M4 18l1 1 2-2" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
        </svg>
      </span>

      <div className="pbp-head-meta">
        <span className="pbp-title">Venture Capital Diligence Report</span>
        <span className="pbp-sub">Playbook progress</span>
      </div>

      <span className="pbp-status">
        <span className="pbp-badge-run"><span className="pbp-bdot" />running</span>
        <span className="pbp-badge-done"><span className="pbp-bdot" />done</span>
      </span>

      <span className="pbp-counter">
        <span className="pbp-c pbp-c0">0/6 stages</span>
        <span className="pbp-c pbp-c1">1/6 stages</span>
        <span className="pbp-c pbp-c3">3/6 stages</span>
        <span className="pbp-c pbp-c4">4/6 stages</span>
        <span className="pbp-c pbp-c5">5/6 stages</span>
        <span className="pbp-c pbp-c6">6/6 stages</span>
      </span>
    </div>

    <div className="pbp-stages">
      <div className="pbp-stage pbp-card-g1">
        <span className="pbp-ind">
          <span className="pbp-ind-pending" />

          <span className="pbp-ind-run pbp-run-g1">
            <svg width="8" height="8" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="M8 5v14M16 5v14" stroke="currentColor" strokeWidth="3" strokeLinecap="round" />
            </svg>

            <span className="pbp-pulse" />
          </span>

          <span className="pbp-ind-comp pbp-comp-g1">
            <svg width="10" height="10" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="M5 12l5 5L20 7" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </span>
        </span>

        <div className="pbp-stage-body">
          <span className="pbp-stage-label">Data gathering — all sources in parallel</span>
          <span className="pbp-token">→ data.diligence</span>
        </div>

        <div className="pbd-chips"><span className="pbd-chip">execute\_python</span></div>
      </div>

      <div className="pbp-divider">Run concurrently</div>

      <div className="pbp-stage pbp-card-g23">
        <span className="pbp-ind">
          <span className="pbp-ind-pending" />

          <span className="pbp-ind-run pbp-run-g23">
            <svg width="8" height="8" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="M8 5v14M16 5v14" stroke="currentColor" strokeWidth="3" strokeLinecap="round" />
            </svg>

            <span className="pbp-pulse" />
          </span>

          <span className="pbp-ind-comp pbp-comp-g23">
            <svg width="10" height="10" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="M5 12l5 5L20 7" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </span>
        </span>

        <div className="pbp-stage-body">
          <span className="pbp-stage-label">Market report</span>
          <span className="pbp-token">→ artifact.market\_report</span>
        </div>

        <div className="pbd-chips"><span className="pbd-chip">skill</span></div>
      </div>

      <div className="pbp-stage pbp-card-g23">
        <span className="pbp-ind">
          <span className="pbp-ind-pending" />

          <span className="pbp-ind-run pbp-run-g23">
            <svg width="8" height="8" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="M8 5v14M16 5v14" stroke="currentColor" strokeWidth="3" strokeLinecap="round" />
            </svg>

            <span className="pbp-pulse" />
          </span>

          <span className="pbp-ind-comp pbp-comp-g23">
            <svg width="10" height="10" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="M5 12l5 5L20 7" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </span>
        </span>

        <div className="pbp-stage-body">
          <span className="pbp-stage-label">Competitor x-ray</span>
          <span className="pbp-token">→ data.competitors</span>
        </div>

        <div className="pbd-chips"><span className="pbd-chip">web\_search</span></div>
      </div>

      <div className="pbp-stage pbp-card-g4">
        <span className="pbp-ind">
          <span className="pbp-ind-pending" />

          <span className="pbp-ind-run pbp-run-g4">
            <svg width="8" height="8" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="M8 5v14M16 5v14" stroke="currentColor" strokeWidth="3" strokeLinecap="round" />
            </svg>

            <span className="pbp-pulse" />
          </span>

          <span className="pbp-ind-comp pbp-comp-g4">
            <svg width="10" height="10" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="M5 12l5 5L20 7" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </span>
        </span>

        <div className="pbp-stage-body">
          <span className="pbp-stage-label">Build the HTML diligence report</span>
          <span className="pbp-token">→ artifact.html</span>
        </div>

        <div className="pbd-chips"><span className="pbd-chip">write\_file</span></div>
      </div>

      <div className="pbp-stage pbp-card-g5">
        <span className="pbp-ind">
          <span className="pbp-ind-pending" />

          <span className="pbp-ind-run pbp-run-g5">
            <svg width="8" height="8" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="M8 5v14M16 5v14" stroke="currentColor" strokeWidth="3" strokeLinecap="round" />
            </svg>

            <span className="pbp-pulse" />
          </span>

          <span className="pbp-ind-comp pbp-comp-g5">
            <svg width="10" height="10" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="M5 12l5 5L20 7" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </span>
        </span>

        <div className="pbp-stage-body">
          <span className="pbp-stage-label">Accuracy QA loop — verify figures & citations</span>
          <span className="pbp-token">→ validation.passed</span>
        </div>

        <div className="pbd-chips"><span className="pbd-chip">openrouter</span></div>
      </div>

      <div className="pbp-stage pbp-card-g6">
        <span className="pbp-ind">
          <span className="pbp-ind-pending" />

          <span className="pbp-ind-run pbp-run-g6">
            <svg width="8" height="8" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="M8 5v14M16 5v14" stroke="currentColor" strokeWidth="3" strokeLinecap="round" />
            </svg>

            <span className="pbp-pulse" />
          </span>

          <span className="pbp-ind-comp pbp-comp-g6">
            <svg width="10" height="10" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="M5 12l5 5L20 7" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </span>
        </span>

        <div className="pbp-stage-body">
          <span className="pbp-stage-label">Final delivery</span>
          <span className="pbp-token">→ artifact.qa\_log</span>
        </div>

        <div className="pbd-chips"><span className="pbd-chip">write\_file</span></div>
      </div>
    </div>

    <div className="pbp-foot">
      <svg width="11" height="11" viewBox="0 0 24 24" fill="none" aria-hidden="true">
        <path d="M5 12l5 5L20 7" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" />
      </svg>

      Deliverables — nothing skipped
    </div>
  </div>
</div>

<p className="pbd-caption">Live playbook progress: each stage moves from pending to running to complete, with parallel stages running concurrently.</p>

Once a Playbook is running, it stays active for the thread. Follow-up messages continue in the same Playbook context, and you can **fill in the inputs again** to re-run it with new values.

## Anatomy of a Playbook

Every Playbook is defined by a small spec that the product renders into the preview, form, and progress view.

| Part                       | What it is                                                                                                                             |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| **Inputs**                 | The light form fields you fill in — text, choices, uploads, or repeatable rows.                                                        |
| **Plan**                   | The staged execution graph. Stages can depend on earlier ones or run in parallel, and each stage lists the tools it uses.              |
| **Deliverables**           | The outputs the Playbook must produce (a report, a table, a validated file) — nothing is skipped.                                      |
| **Connector requirements** | External services the Playbook needs, such as an API in the [API Secret Vault](/features/api-secret-vault).                            |
| **Workflow requirements**  | Room [Workflows](/features/workflows) the Playbook reads from — for semantic search, graph queries, feature views, or model inference. |

<Note>
  Click any stage in the execution-flow diagram to see what it does, what it waits for, what it produces, and which tools it uses. Stages on the same row run concurrently.
</Note>

## Get a Playbook

<CardGroup cols={2}>
  <Card title="Pick a battle-tested one" icon="book-open">
    Start from a curated Playbook shipped with a [room template](/features/room-templates), or one a teammate published to your room.
  </Card>

  <Card title="Create your own" icon="wand-magic-sparkles">
    Use **Make your own** in the Playbook gallery. Describe the workflow you want and the agent drafts the inputs and plan with you — no config files to write.
  </Card>
</CardGroup>

### Create your own, conversationally

Choose **Make your own** and describe the process in plain English — for example, *"Connect to GitHub, find the latest PR, summarize the diff, and email me the summary."* Corvic drafts the plan, wires up the connectors, and shows the Playbook being constructed stage by stage. When it looks right, publish it to the room so your whole team can run it.

<div className="pbd pbd--flow">
  <div className="pbd-chrome">
    <span className="pbd-dot" style={{ background: '#fecaca' }} />

    <span className="pbd-dot" style={{ background: '#fde68a' }} />

    <span className="pbd-dot" style={{ background: '#bbf7d0' }} />

    <span className="pbd-url">app.corvic.ai / new-playbook</span>
  </div>

  <div className="pbd-stage-area">
    <div className="pbd-glow" aria-hidden="true" />

    <div className="pbd-chat">
      <div className="pbd-chat-head">
        <span className="pbd-chat-title"><span className="pbd-live" />Chat</span>
        <span className="pbd-time">3:00 AM</span>
      </div>

      <div className="pbd-chat-mid">
        <div className="pbd-empty">
          <span className="pbd-empty-title">Ask me anything about your data.</span>
          <span className="pbd-empty-sub">Start a new conversation</span>
        </div>

        <div className="pbd-input">
          <div className="pbd-input-text">
            <span className="pbd-typed">Connect to Github, find the latest PR, summarize and send email.</span>

            <span className="pbd-caret" aria-hidden="true" />
          </div>

          <div className="pbd-input-foot">
            <div className="pbd-input-foot-left">
              <span className="pbd-plus">
                <svg width="11" height="11" viewBox="0 0 24 24" fill="none" aria-hidden="true">
                  <path d="M12 5v14M5 12h14" stroke="currentColor" strokeWidth="2" strokeLinecap="round" />
                </svg>
              </span>

              <span className="pbd-foot-item">Playbooks</span>
              <span className="pbd-foot-item">Sample questions</span>
            </div>

            <span className="pbd-send">
              <svg width="12" height="12" viewBox="0 0 24 24" fill="none" aria-hidden="true">
                <path d="M22 2 11 13M22 2 15 22l-4-9-9-4 20-7z" stroke="currentColor" strokeWidth="1.75" strokeLinecap="round" strokeLinejoin="round" />
              </svg>
            </span>
          </div>
        </div>

        <div className="pbd-model-chips">
          <span className="pbd-mchip"><span className="pbd-mdot" />Claude Sonnet 4.6</span>
          <span className="pbd-mchip">Prompt</span>
          <span className="pbd-mchip">Tools · 1</span>
        </div>
      </div>
    </div>

    <div className="pbd-plan">
      <div className="pbd-bubble">
        <span className="pbd-avatar">You</span>
        <div className="pbd-bubble-body">Connect to Github, find the latest PR, summarize and send email.</div>
      </div>

      <div className="pbd-header">
        <span className="pbd-header-icon">
          <svg width="18" height="18" viewBox="0 0 24 24" fill="none" aria-hidden="true">
            <path d="M9 6h11M9 12h11M9 18h11M4 6l1 1 2-2M4 12l1 1 2-2M4 18l1 1 2-2" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
          </svg>
        </span>

        <div className="pbd-header-meta">
          <div className="pbd-kicker">
            <span className="pbd-kicker-label">Playbook</span>
            <span className="pbd-kicker-sub">· created from your prompt</span>
          </div>

          <span className="pbd-header-title">GitHub PR Digest</span>
        </div>
      </div>

      <div className="pbd-stages">
        <div className="pbd-stage pbd-s1">
          <span className="pbd-num">1</span>

          <div className="pbd-stage-body">
            <span className="pbd-stage-label">Connect to GitHub</span>
            <span className="pbd-token">→ data.repo</span>
          </div>

          <div className="pbd-chips"><span className="pbd-chip">GitHub</span></div>

          <span className="pbd-chev">
            <svg width="12" height="12" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="m9 6 6 6-6 6" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </span>
        </div>

        <div className="pbd-arrow pbd-a1">
          <svg width="14" height="14" viewBox="0 0 24 24" fill="none" aria-hidden="true">
            <path d="M12 5v14M6 13l6 6 6-6" stroke="currentColor" strokeWidth="2.25" strokeLinecap="round" strokeLinejoin="round" />
          </svg>
        </div>

        <div className="pbd-stage pbd-s2">
          <span className="pbd-num">2</span>

          <div className="pbd-stage-body">
            <span className="pbd-stage-label">Find the latest pull request</span>
            <span className="pbd-token">→ data.pr</span>
          </div>

          <div className="pbd-chips"><span className="pbd-chip">GitHub API</span></div>

          <span className="pbd-chev">
            <svg width="12" height="12" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="m9 6 6 6-6 6" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </span>
        </div>

        <div className="pbd-arrow pbd-a2">
          <svg width="14" height="14" viewBox="0 0 24 24" fill="none" aria-hidden="true">
            <path d="M12 5v14M6 13l6 6 6-6" stroke="currentColor" strokeWidth="2.25" strokeLinecap="round" strokeLinejoin="round" />
          </svg>
        </div>

        <div className="pbd-stage pbd-s3">
          <span className="pbd-num">3</span>

          <div className="pbd-stage-body">
            <span className="pbd-stage-label">Summarize the PR diff</span>
            <span className="pbd-token">→ data.summary</span>
          </div>

          <div className="pbd-chips"><span className="pbd-chip">LLM</span></div>

          <span className="pbd-chev">
            <svg width="12" height="12" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="m9 6 6 6-6 6" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </span>
        </div>

        <div className="pbd-arrow pbd-a3">
          <svg width="14" height="14" viewBox="0 0 24 24" fill="none" aria-hidden="true">
            <path d="M12 5v14M6 13l6 6 6-6" stroke="currentColor" strokeWidth="2.25" strokeLinecap="round" strokeLinejoin="round" />
          </svg>
        </div>

        <div className="pbd-stage pbd-s4">
          <span className="pbd-num">4</span>

          <div className="pbd-stage-body">
            <span className="pbd-stage-label">Send the summary via email</span>
            <span className="pbd-token">→ delivery.done</span>
          </div>

          <div className="pbd-chips"><span className="pbd-chip">SMTP</span></div>

          <span className="pbd-chev">
            <svg width="12" height="12" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d="m9 6 6 6-6 6" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </span>
        </div>
      </div>

      <div className="pbd-ready">
        <svg width="11" height="11" viewBox="0 0 24 24" fill="none" aria-hidden="true">
          <path d="M5 12l5 5L20 7" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" />
        </svg>

        Playbook ready to run
      </div>
    </div>
  </div>
</div>

<p className="pbd-caption">Type a workflow in plain English — Corvic drafts the plan, wires the connectors, and runs it for you.</p>

## Sharing & scope

Playbooks are scoped so drafts stay private until they're ready to share.

<CardGroup cols={2}>
  <Card title="This chat" icon="message">
    Draft Playbooks you're still shaping live in the current thread. Find them under **Draft Playbooks** in the thread assets panel.
  </Card>

  <Card title="Room" icon="users">
    **Publish to room** to make a Playbook available to everyone in the room. Shared Playbooks appear in the gallery for all members.
  </Card>
</CardGroup>

## Setup requirements

Before a Playbook runs, Corvic checks that everything it depends on is in place and flags anything marked **Needs setup**:

* **Connectors** — if a Playbook calls an external service, connect that API in the [API Secret Vault](/features/api-secret-vault) and allow the agent to use it. You can still run without it — the agent skips what it can't reach and notes the gap.
* **Workflows** — if a Playbook reads from a room Workflow that doesn't exist yet, create it first. Workflows are shared across the room and run on their own schedule; the Playbook only reads their outputs.

<Tip>
  Pair Playbooks with scheduled [Workflows](/features/workflows) for recurring work: the Workflow keeps your data fresh on a cadence, and the Playbook turns that data into a report or decision whenever you run it.
</Tip>

## Categories

The Playbook gallery groups Playbooks so you can find the right one fast:

<CardGroup cols={3}>
  <Card title="Data" icon="database" />

  <Card title="Documents" icon="file-lines" />

  <Card title="Finance" icon="chart-line" />

  <Card title="Research" icon="magnifying-glass" />

  <Card title="Evaluation" icon="clipboard-check" />

  <Card title="Automation" icon="gears" />
</CardGroup>

## Example Playbooks

Corvic ships curated Playbooks with its [room templates](/features/room-templates). A few examples:

| Playbook                                 | What it produces                                                                |
| ---------------------------------------- | ------------------------------------------------------------------------------- |
| **Venture Capital Diligence**            | A sourced, single-file HTML diligence report with a verification log            |
| **Prior-Art & FTO**                      | Patent prior-art search, similarity assessment, and freedom-to-operate analysis |
| **Literature Synthesis**                 | Extracted figures/tables and correlated findings across research papers         |
| **Product Competitiveness Intelligence** | Competitive feature matrices and positioning for product teams                  |
| **P\&ID to Validated XML**               | Piping & instrumentation diagrams digitized into validated, audited XML         |
| **AP Aging & Cash Requirements**         | Bills, due dates, vendor balances, and AP aging from your books                 |
| **Financial Report & Reconciliation**    | Balance sheet, cash flow, burn, COGS, and bank/card reconciliation              |
| **Equity Research Brief**                | Fundamentals, statements, and valuation for a given stock                       |
| **Tax-Prep Organizer**                   | Organized financials, categorized deductions, and estimated liabilities         |
| **ICP Lead Pipeline & Dashboard**        | A qualified lead pipeline against your ideal-customer profile                   |
| **Dataset to ML-Ready Features**         | A raw dataset transformed into engineered, ML-ready features                    |

## Related Documentation

<CardGroup cols={2}>
  <Card title="Exploration & Workflows" icon="comments" href="/features/compose-ui">
    The chat-first room experience where Playbooks run.
  </Card>

  <Card title="Workflows" icon="window" href="/features/workflows">
    Shared, scheduled pipelines that Playbooks can read from.
  </Card>

  <Card title="Agents" icon="robot" href="/features/agents">
    The assistant that executes a Playbook's plan.
  </Card>

  <Card title="API Secret Vault" icon="key" href="/features/api-secret-vault">
    Connect the external services Playbooks call.
  </Card>

  <Card title="Room Templates" icon="grip" href="/features/room-templates">
    Pre-built rooms that ship with curated Playbooks.
  </Card>

  <Card title="Agent Skills" icon="puzzle-piece" href="/tutorials/agent-skills">
    Reusable capabilities Playbooks build on.
  </Card>
</CardGroup>
