BeatBandit MCP

Tools

/

Story Workflows

/

story_review_run

story_review_run

orchestration
beta
auth: project:write
approval: suggest
status: v1

REVIEW existing project material and produce editorial feedback — room review (writers'-room style holistic notes), analysis wizard (scored editorial pass with rewrite guidance and comps), or continuity audit / Sync Screenplay (generate, review, and explicitly apply screenplay rewrite suggestions for pending structural-sync update tasks). For `continuity_audit`, `status` is the review surface and `apply` (or legacy `finalize`) is the selected mutating phase.

When to use

You want analytical feedback first, before deciding whether to mutate — the verb is REVIEW.

Use `room_review` for showrunner-style holistic notes across the project.

Use `analysis_wizard` for a scored editorial pass with rewrite guidance and comps.

Use `continuity_audit` as the MCP Sync Screenplay workflow after structural updates; call `phase=readiness`, then `phase=start`, poll with `job_get`, inspect `phase=status`, choose from the returned apply candidates, and commit explicit selections or acknowledgements with `phase=apply`.

If `continuity_audit` readiness returns `scene_authoring_required`, generate and apply the survivor prose proposal with `screenplay_generation_run(workflow=scene_screenplay, phase=start, payload.generate_proposal=true)` before starting continuity ripple checks.

When not to use

Do not use for direct low-level screenplay mutation; use `screenplay_snapshot_apply` for exact block edits.

Do not use to **change or polish** the story material — use `story_revision_run` (change_wizard, polish_wizard, creative_canvas) instead.

Do not use to **build** new structured material that does not exist yet — use `story_development_run` (scene_wizard, beat_wizard, story_bootstrap) instead.

Do not use `continuity_audit` for freeform scoped prose rewrites that are unrelated to pending structural-sync updates — use `screenplay_rewrite_run` instead.

Examples

“Review this project like a showrunner.”

“Run Sync Screenplay readiness, start without copying update_ids, inspect status, choose suggestions, then apply explicit selections.”

“Boundary - "Get a scored editorial pass on this project with rewrite guidance." Use `analysis_wizard` here because the caller wants notes and scores, not committed changes.”

“Boundary - "Sync screenplay after I merged scenes." First author any merge survivor returned as `scene_authoring_required`, then use `continuity_audit` for ripple checks.”

Anti-examples

  • Generate a new screenplay from scratch.
  • Polishing dialogue in an existing scene — that is `story_revision_run` with `polish_wizard`.
  • Generating new beats or scenes from an idea — that is `story_development_run` with `beat_wizard` or `scene_wizard`.
  • Restructuring the story based on a free-form direction — that is `story_revision_run` with `change_wizard`.

Workflows

Switch behavior by setting the workflow input field.

room_review

readiness
start
finalize
Calls: room_review.readiness, room_review.run, room_review.finalize

analysis_wizard

readiness
start
finalize
Calls: analysis_wizard.readiness, analysis_wizard.run, analysis_wizard.finalize

continuity_audit

readiness
start
status
apply
finalize
Calls: continuity_audit.start, continuity_audit.get_job, continuity_audit.apply

Linked resources

Tool calls may return resource_links pointing at these resource families.

project_canon_summaryscreenplay_documentproject_updatesroom_review_resultanalysis_wizard_result

Input schema

story_review_run input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": [
    "workflow",
    "phase",
    "project_id"
  ],
  "properties": {
    "workflow": {
      "type": "string",
      "enum": [
        "room_review",
        "analysis_wizard",
        "continuity_audit"
      ]
    },
    "phase": {
      "type": "string",
      "enum": [
        "readiness",
        "start",
        "status",
        "finalize",
        "apply"
      ]
    },
    "project_id": {
      "type": "integer"
    },
    "job_id": {
      "type": "string"
    },
    "reservation_id": {
      "type": "string"
    },
    "payload": {
      "type": "object",
      "properties": {
        "model_hint": {
          "type": "string",
          "description": "Optional model hint for LLM-backed review generation."
        },
        "update_ids": {
          "type": "array",
          "description": "Explicit pending update ids for continuity_audit start. If omitted, start uses readiness' recommended structural-sync scene update ids.",
          "items": {
            "type": "string"
          }
        },
        "include_global_updates": {
          "type": "boolean",
          "description": "For continuity_audit only: opt in to including global dirty markers alongside recommended structural-sync scene updates. Defaults to false."
        },
        "structural_card_codes": {
          "type": "array",
          "description": "Optional structural card code filter forwarded to continuity audit generation.",
          "items": {
            "type": "string"
          }
        },
        "base_rev": {
          "type": "integer",
          "description": "Screenplay snapshot revision used when applying selected continuity suggestions. Not required for acknowledgement-only continuity_audit apply calls."
        },
        "selections": {
          "type": "array",
          "description": "Continuity suggestions to apply. Omit or pass [] only when acknowledged_dirty_scene_ids is non-empty.",
          "items": {
            "type": "object",
            "required": [
              "suggestion_id"
            ],
            "properties": {
              "suggestion_id": {
                "type": "string"
              },
              "edited_after_text": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "acknowledged_dirty_scene_ids": {
          "type": "array",
          "description": "Dirty scene ids to acknowledge as aligned/no-change during continuity_audit apply.",
          "items": {
            "type": "string"
          }
        },
        "acknowledged_update_ids": {
          "type": "array",
          "description": "Explicit pending update ids to acknowledge during continuity_audit apply. Use this for opt-in global dirty markers.",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "workflow": {
            "const": "room_review"
          }
        }
      },
      "then": {
        "properties": {
          "phase": {
            "enum": [
              "readiness",
              "start",
              "finalize"
            ]
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "workflow": {
            "const": "analysis_wizard"
          }
        }
      },
      "then": {
        "properties": {
          "phase": {
            "enum": [
              "readiness",
              "start",
              "finalize"
            ]
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "workflow": {
            "const": "continuity_audit"
          }
        }
      },
      "then": {
        "properties": {
          "phase": {
            "enum": [
              "readiness",
              "start",
              "status",
              "apply",
              "finalize"
            ]
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "phase": {
            "const": "finalize"
          },
          "workflow": {
            "enum": [
              "room_review",
              "analysis_wizard"
            ]
          }
        }
      },
      "then": {
        "required": [
          "job_id"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "workflow": {
            "const": "continuity_audit"
          },
          "phase": {
            "const": "readiness"
          }
        }
      },
      "then": {
        "properties": {
          "payload": {
            "properties": {
              "structural_card_codes": {
                "description": "Optional filter for continuity audit readiness/start; readiness returns the pending update_ids to use."
              }
            }
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "workflow": {
            "const": "continuity_audit"
          },
          "phase": {
            "const": "start"
          }
        }
      },
      "then": {}
    },
    {
      "if": {
        "properties": {
          "workflow": {
            "const": "continuity_audit"
          },
          "phase": {
            "enum": [
              "apply",
              "finalize"
            ]
          }
        }
      },
      "then": {
        "required": [
          "job_id",
          "payload"
        ],
        "properties": {
          "payload": {
            "anyOf": [
              {
                "required": [
                  "base_rev",
                  "selections"
                ],
                "properties": {
                  "selections": {
                    "minItems": 1
                  }
                }
              },
              {
                "required": [
                  "acknowledged_dirty_scene_ids"
                ],
                "properties": {
                  "acknowledged_dirty_scene_ids": {
                    "minItems": 1
                  }
                }
              },
              {
                "required": [
                  "acknowledged_update_ids"
                ],
                "properties": {
                  "acknowledged_update_ids": {
                    "minItems": 1
                  }
                }
              }
            ]
          }
        }
      }
    }
  ],
  "additionalProperties": false
}

Output schema

story_review_run output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": [
    "workflow",
    "phase"
  ],
  "properties": {
    "workflow": {
      "type": "string"
    },
    "phase": {
      "type": "string"
    },
    "async": {
      "type": "boolean"
    },
    "job_id": {
      "type": "string"
    },
    "reservation_id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "estimated_credits": {
      "type": [
        "integer",
        "number"
      ]
    },
    "readiness": {
      "type": "object"
    },
    "update_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "scene_authoring_required": {
      "type": "array",
      "description": "Scene ids that must be authored via screenplay_generation_run(scene_screenplay, payload.generate_proposal=true) before continuity_audit should run ripple checks.",
      "items": {
        "type": [
          "string",
          "object"
        ]
      }
    },
    "defaulted_update_ids": {
      "type": "boolean"
    },
    "suggestion_count": {
      "type": "integer"
    },
    "dirty_result_count": {
      "type": "integer"
    },
    "changed_scene_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "no_change_scene_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "conflict_count": {
      "type": "integer"
    },
    "recommended_apply_args": {
      "type": [
        "object",
        "null"
      ]
    },
    "apply_candidates": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "acknowledgement_candidates": {
      "type": "object"
    },
    "result": {
      "type": "object"
    },
    "summary": {
      "type": "string"
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "note_count": {
      "type": [
        "integer",
        "number"
      ]
    },
    "top_note_titles": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "suggested_capability_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "resource_links": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "pipeline_state": {
      "$ref": "./_common/pipeline_state.schema.json"
    },
    "next_actions": {
      "type": "array",
      "items": {
        "$ref": "./_common/next_action.schema.json"
      }
    }
  },
  "additionalProperties": true
}

← All toolsv1 · workflow_runner