<< All versions

Skill v1.0.0

currentAutomated scan100/100
trustpager/business_operating_system/lint-document
──Details
PublishedOctober 3, 2026 at 07:35 PM
Content Hashsha256:1647b67ebda5f308...
Git SHA
──Files
Files (1 file, 3.9 KB)
SKILL.md3.9 KBactive
SKILL.md · 93 lines · 3.9 KB

version: "1.0.0" name: Lint Document description: Pre-flight a document/signing template before it goes to a client — every signer has a signature input, no broken or always-blank merge fields, required sections present, disclaimers in place. Read-only; reports fails first, then warnings. triggers:

  • lint my document
  • check my signing template
  • is this contract template ready
  • review my document template
  • check this document before I send it
  • pre-flight my signing document

function_slot: documents requires_driver: trustpager requires_credential: mcp data_path: mcp_tools uses_tools:

  • mcp__trustpager__list_document_templates
  • mcp__trustpager__get_document_template

status: active


Lint Document

Catch the embarrassing, client-facing mistakes in a document template BEFORE the first send: a signer with nothing to sign, a {{merge_field}} that always renders blank, a missing signature block, a stray placeholder. Read-only — this skill never edits the template; it routes each fix to /build-document.

Source of truth: `knowledge/document-method.md` — the checks map to §1 (anatomy) and §6 (merge-field honesty).

Step 1 — Load the template

If the operator named it by title, find it with mcp__trustpager__list_document_templates, then mcp__trustpager__get_document_template(template_id) to read its full section structure. If they didn't say which, ask.

Step 2 — Run the checks

Work through every section and signer:

FAILS (block the send):

  • Signer with no input — a named signer who has no signature/initials input

section. They'd have nothing to sign; the envelope stalls.

  • Signature input with no signer — an orphan signature block assigned to a

signer that isn't in the signer set.

  • Broken merge token — a {{ }} that isn't a real field path (typo'd

{{contact.fullname}}, unclosed {{deal.value, unknown namespace).

  • Empty template — no body sections, or no signature input at all.

WARNINGS (worth a look):

  • Likely-blank merge field — a field the opportunity usually doesn't carry

(e.g. {{deal.value}} on a workspace that leaves value empty). Flag for the operator to confirm it'll be filled at send time.

  • Placeholder text left in — "Lorem ipsum", "TODO", "[INSERT…]", "XXXX",

a draft date.

  • No dated signature — a signature input with no accompanying date field

(most agreements want the signing date captured).

  • Missing disclaimer/terms for an agreement-type document, if the operator's

CLAUDE.md or brand notes say one is required.

Step 3 — Report, fails first

📄 "Broker Partnership Agreement" — 1 fail, 2 warnings
❌ FAILS (fix before sending)
→ Signer "Guarantor" has no signature input. Add one, or remove the signer. → /build-document
→ Merge token {{contact.fulname}} is misspelled (should be {{contact.full_name}}). → /build-document
⚠️ WORTH A LOOK
→ {{deal.value}} is used in the fee schedule but is often blank on your deals — confirm it'll be filled.
→ No date field next to the broker's signature — most agreements capture the signing date.

End with the single most important fix, and route every fix to /build-document (this skill doesn't edit). If it's clean: "Clean — every signer has an input, all merge fields resolve, no placeholders. Ready for `/send-for-signing`."

Hard rules

  • Read-only. Never edit the template here. Diagnose, route to /build-document.
  • Fails before warnings. Lead with what would actually break or embarrass.
  • Don't invent required disclaimers — only flag a missing one if the

operator's own notes/brand say it's required.

  • A likely-blank merge field is a warning, not a fail — the operator may

fill it per-deal; surface it, don't block on it.

Output shape

Headline tally, then FAILS, then WARNINGS, then the one fix to make first — or a clean bill of health with the hand-off to /send-for-signing.

All versions