# Signing Desk > A pre-signature desk for a contract that is finalized and about to go out for e-signature. The > browser checks the agreement for free - unfilled blanks, leftover drafting notes, tracked changes > and comments in a .docx, exhibits referenced but not attached, party names that differ between the > opening paragraph and the signature blocks, signature blocks without a name or title line, blank > effective dates, witness, notary and initials lines, and recipients that cannot be routed - and > proposes the signing order. A paid run writes the signing packet: the pre-signature checklist, the > issues to fix, the signing table, each signer's fields, the CC list and the envelope message. > Nothing is ever sent. Not legal advice. URL: https://signing-desk.skillsafe.ai/ API tutorial: https://signing-desk.skillsafe.ai/api.html Model: gpt-terra (metered; a guest can use every free check, a run needs a SkillSafe account) Source skill: @anthropics/signature-request (https://skillsafe.ai/skill/@anthropics/signature-request), from anthropics/knowledge-work-plugins (legal/skills/signature-request), Apache-2.0. ## What the free prescan checks - Party names: every company named with a legal suffix (Inc., LLC, Ltd., Corporation, Co., GmbH ...) in the opening paragraph is compared letter for letter with the name over its signature block, and with the company name the user typed. A different word is high severity; punctuation only is low. - Blanks: [●], [ ], [TBD], [insert ...], bracketed alternatives such as [Customer/Supplier], TBD, XX, {{...}}, and runs of underscores outside the By / Name / Title / Date lines. - Drafting marks: DRAFT, Note to Draft, NTD, [Comment ...], For discussion purposes, and in a .docx the count of tracked insertions, deletions and comments. - Exhibits: every Exhibit, Schedule, Annex, Appendix, Attachment and Addendum the text refers to must be attached after the signature section and have content under its heading. - Signature blocks: a By: line for each party, a Name: line, a Title: line for a company, an empty signature line, and a printed name that matches the listed signer. - Dates: a blank effective date (fine only when the agreement says it takes the date of the last signature), more than one "as of" date, an effective date far in the past or future. - Formalities: witness, notary or seal lines (flagged for counsel - whether they can be completed electronically is not decided here), initials, and whether a counterparts or electronic-signature clause exists. - Recipients: each signer needs a name, a valid email and a party; every party needs a signer; duplicate emails are flagged. Browser status: resolve_first (any high flag), confirm_then_send (any medium flag), ready_to_send. ## Signing order Internal approvers first (action approve), then signers (action sign): counterparty_first (the counterparty signs, your side countersigns last), we_first, or parallel (all signers share one step). The recipients CSV has columns order, ref, name, email, role, action. ## Run contract POST https://api.skillsafe.ai/v1/app-api/run (or /run-stream), bearer token, Idempotency-Key. Body: {"task": "prepare", "document_title": string, "document": string (the agreement; the middle of a very long one is cut with a marker), "facts": JSON string built by signkit.js, "question": optional string}. The reply is one JSON object: - document {title, type, parties[], pages} - status: ready_to_send | confirm_then_send | resolve_first - headline, summary - checklist[]: {id, status pass/issue/confirm, note, refs}; ids final_form, exhibits, entity_names, dates, signature_blocks, internal_approvals, counsel_review - issues[]: {ref, severity high/medium/low, issue, fix} - routing sequential/parallel, routing_reason - signing[]: {order, ref, name, email, role, action sign/approve} - cc[]: {ref, name, email} - fields[]: {ref, field signature/date/name/title/initials, where} - envelope {subject, message} - next_steps[] - prescan_responses[]: {id, status confirmed/dismissed, reason} The page reconciles every reply: the status may not be looser than the flags left standing, every high or medium flag needs an issue line, every flag an answer, every signer and approver appears once with the exact email entered, the order follows the routing choice, and no email address or party name may appear that is not in the recipient list or the agreement. ## Limits It reads only what is pasted or dropped (.docx, .txt, .md). It does not connect to an e-signature service, a CLM or cloud storage, and it never sends an envelope. It does not give legal advice or opinions on enforceability or e-signature law.