Skip to main content
Glama

Sign off new work

figma_sign_off
Idempotent

End a piece of new work the way a studio signs it off. Runs the role's checks on the deliverables (figma_check_layout with the role's audits and the brief's floors; for motion the frame-by-frame check at the delivery fps), checks the brief…

Instructions

End a piece of new work the way a studio signs it off. Runs the role's checks on the deliverables (figma_check_layout with the role's audits and the brief's floors; for motion the frame-by-frame check at the delivery fps), checks the brief is complete for its gear (directions, the choice, styleframes, the system), takes your critique lens scores, rounds and a reason for every info you keep, then records the result and a fingerprint on each deliverable and on the brief block, closes the brief, and selects and zooms to the work on a pass. At top and piece, message and originality need a reviewer other than you (the critique_cold prompt in a fresh context, or the owner); at page a self-review is recorded as one. ok: false lists each blocker with the call that clears it. A final export (figma_export_node, figma_export_frames_to_pdf or figma_export_video with final: true) needs a passing sign-off newer than the last change. Writes plugin data only. Editors: Design; unverified: FigJam, Slides.

Input Schema

NameRequiredDescriptionDefault
fpsNoMotion: the delivery rate. Default the brief's.
deckNoFigma Slides: the whole deck.
forceNoOverwrite on purpose. A write to a node someone changed after you last read it is refused (STALE); read it again and resend instead. Pass true only when the person said to overwrite their edit.
lensesYesEvery lens of the role's sign-off, scored as the critique skill scores it, each with its reviewer.
nodeIdNoThe deliverable. Default the brief's deliverables.
roundsYesCritique rounds run.
answersNoAn info kept on purpose, with why.
briefIdNoDefault the brief whose work the node is, else the brief in force, else its page's.
nodeIdsNoThe deliverables: top-level frames, component sets, sections.
sessionNoOptional sessionId or file name, to pick a Figma file when more than one is connected.
placeholdersNoEvery invented fact, or ["none"].
idempotencyKeyNoCaller-owned retry key, ≤128 chars. Re-calling with the same key never executes twice: it returns the existing result, or waits for the op still in flight. Supply your own for anything large — if the MCP client times out (rather than the bridge), only a key you chose can be used to retry safely.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-destructive, idempotent, non-open-world. The description adds real value: 'Writes plugin data only', the STALE refusal behavior, the reviewer constraint, the blocker listing on `ok: false`, and the export-freshness rule. It corroborates rather than contradicts the annotations and adds workflow-level behavior beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, but the body is a dense run-on cramming checks, reviewer rules, blocker behavior, export gating, and editor support into one paragraph. Every clause carries content, yet the lack of structure makes it harder to parse than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, no-output-schema, complex workflow tool, the description covers the essential mechanics: what it checks, what it records, what gates it, what blockers look like, and editor support. Return shape is described only via `ok: false`, which is adequate but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, and the description still adds narrative meaning: it ties `lenses`, `rounds`, `answers`, and `placeholders` together into the sign-off flow ('takes your critique lens scores, rounds and a reason for every info you keep'). It also clarifies the reviewer rule that applies per lens, which the schema only partially encodes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'End a piece of new work the way a studio signs it off', then names the gating checks it runs (figma_check_layout, brief completeness, critique lenses). An agent can clearly distinguish it from siblings like figma_check_layout or figma_export_node because it is the aggregating sign-off step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Strong contextual guidance: it explains the reviewer requirement at top/piece levels, the export gating ('a final export ... needs a passing sign-off newer than the last change'), and how `ok: false` surfaces blockers. It stops short of an explicit 'use this instead of X when Y' statement against alternatives, but the workflow placement is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools