| name | missing-signatures |
| description | Report who is missing document signatures or quorum approvals in Probo. Use when the user wants a per-person recap of unsigned signature requests, pending approval decisions, or document signing compliance status. |
| compatibility | Requires Probo MCP (OAuth 2.0) and file write access for .probo/missing-signatures/ |
Missing signatures report
Build a read-only, per-person recap of outstanding document obligations for
organization $ARGUMENTS (or ask the user for the organization name). Cover:
- Signature requests —
REQUESTED but not SIGNED on a published version
- Quorum approvals —
PENDING decisions on a PENDING approval quorum
while the version is PENDING_APPROVAL
Before executing, read these files relative to this skill directory:
references/mcp-tools.md — MCP tool names, inputs, pagination
references/report-format.md — per-person recap and summary layout
references/notes-format.md — working memory for resumable scans
Preconditions
- A Probo MCP server must be connected. The plugin ships two hosted servers,
probo-us and probo-eu; self-hosted instances are configured in the agent.
Use the server for the user's region, and when the region is unknown call
listOrganizations on each connected server and keep the one that returns
the organization. If tools fail with auth errors, stop and tell the user to
complete OAuth sign-in for that server (Claude Code: /mcp or
claude mcp login probo-us; Codex: codex mcp login probo-us;
OpenCode/Cursor: configure MCP in settings then authenticate).
- Resolve the organization from
$ARGUMENTS (name match or GID). If ambiguous,
call listOrganizations and ask the user to pick one.
- This skill is reporting only. Do not request signatures, cancel requests,
publish documents, or submit approval decisions unless the user explicitly
asks for follow-up actions outside this report.
Working notes file
Create or resume .probo/missing-signatures/<org-slug>.md per
references/notes-format.md. Create .probo/missing-signatures/ if missing.
Workflow
1. Orient
- Record
organization_id in the notes file.
- If resuming, read
last_document_cursor and cached profile_cache from
notes.
- Tell the user whether this is a fresh scan or a resume.
2. Scan documents (paginated)
For each page from listDocuments:
- Skip
ARCHIVED documents.
- Call
listDocumentVersions for the document.
- For each version, branch on
status:
| Version status | What to check |
|---|
PUBLISHED | listDocumentVersionSignatures with filter.states: ["REQUESTED"] |
PENDING_APPROVAL | listDocumentVersionApprovalQuorums; for each quorum with status: PENDING, listDocumentVersionApprovalDecisions with filter.states: ["PENDING"] |
Prefer the current published version (current_published_major /
current_published_minor on the document) when multiple published minors exist.
Still scan all PUBLISHED versions if the user asked for exhaustive coverage.
Paginate every list call. Store last_document_cursor after each document page
so a large org can be resumed.
3. Resolve people
Collect unique signed_by and approver_id profile GIDs. Resolve each once via
getUser and cache full_name and email_address in the notes file. Never
invent names.
4. Build per-person recap
Aggregate findings by profile. Each item is either:
| Type | Meaning |
|---|
signature | Signature requested, not yet signed |
approval | Quorum approval decision still pending |
Use references/report-format.md for the output layout. Sort people by
full_name, then email.
5. Present summary
Show:
- Total people with at least one outstanding item
- Count by type (signatures vs approvals)
- Count by document
- The per-person recap tables
If the scan is incomplete (more document pages), say so and offer to continue.
6. Checkpoint
Update notes: last_document_cursor, profile_cache, session log, updated_at.
Clear last_document_cursor when the document pagination is exhausted.
Hard rules
- Never call write mutations (
requestDocumentVersionSignature,
cancelSignatureRequest, publishDocument, voidDocumentVersionApproval)
unless the user explicitly requests action after reviewing the report.
- Never invent profile IDs, document titles, or states — use MCP responses only.
- Include document title, version (
major.minor), and requested_at or quorum
created_at on every line item so the report is audit-ready.