From psd-productivity
Manage document signing with Documenso — create envelopes, add recipients/fields, distribute for signature, download signed PDFs, manage templates. Use when: sending documents for signature, creating signing workflows, checking document status, managing templates, building e-signature automations. Triggers on: documenso, sign, signature, envelope, signing, document signing, e-sign.
How this skill is triggered — by the user, by Claude, or both
Slash command
/psd-productivity:documenso-managerclaude-opus-4-6This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- **Server**: Read from `DOCUMENSO_HOST` environment variable (never hardcoded)
references/documenso-api-reference.mdreferences/documenso-envelope-lifecycle.mdreferences/psd-signing-templates.mdreferences/psd-signing-workflows.mdscripts/add_fields.jsscripts/add_recipients.jsscripts/create_envelope.jsscripts/create_folder.jsscripts/delete_envelope.jsscripts/distribute_envelope.jsscripts/documenso-mcp-proxy.shscripts/documenso_client.jsscripts/download_document.jsscripts/duplicate_envelope.jsscripts/get_audit_log.jsscripts/get_envelope.jsscripts/get_template.jsscripts/health_check.jsscripts/list_envelopes.jsscripts/list_folders.jsDOCUMENSO_HOST environment variable (never hardcoded)Authorization: api_xxxxxxxx header (NOT Bearer — literal key value)plugins/psd-productivity/skills/documenso-manager/scripts/All scripts use bun and read credentials from secrets.js (env vars → Geoffrey .env).
| Command | Script | Description |
|---|---|---|
/documenso status | bun health_check.js | Server health, envelope count |
/documenso list | bun list_envelopes.js | List all envelopes |
/documenso list '{"status":"PENDING"}' | bun list_envelopes.js '{"status":"PENDING"}' | Filter by status |
/documenso show <id> | bun get_envelope.js <id> | Envelope details (recipients, fields, items) |
/documenso create <pdf> [options] | bun create_envelope.js <pdf> '<json>' | Create envelope with PDF |
/documenso update '<json>' | bun update_envelope.js '<json>' | Update envelope metadata |
/documenso delete <id> | bun delete_envelope.js <id> | Delete envelope (confirm first) |
/documenso duplicate <id> | bun duplicate_envelope.js <id> | Clone an envelope |
| Command | Script | Description |
|---|---|---|
/documenso send <id> | bun distribute_envelope.js <id> | Send for signing (DRAFT → PENDING) |
/documenso resend <id> | bun redistribute_envelope.js <id> | Resend signing emails |
/documenso download <item-id> | bun download_document.js <item-id> signed | Download signed PDF |
/documenso download <item-id> original | bun download_document.js <item-id> original | Download original PDF |
/documenso audit <id> | bun get_audit_log.js <id> | Audit trail |
| Command | Script | Description |
|---|---|---|
/documenso add-recipients <id> '<json>' | bun add_recipients.js <id> '<json>' | Add recipients (SIGNER/APPROVER/CC/VIEWER/ASSISTANT) |
/documenso update-recipients <id> '<json>' | bun update_recipients.js <id> '<json>' | Update recipients |
/documenso remove-recipient <id> <rid> | bun remove_recipient.js <id> <rid> | Remove recipient |
/documenso add-fields <id> '<json>' | bun add_fields.js <id> '<json>' | Add fields (SIGNATURE/DATE/TEXT/etc.) |
/documenso update-fields <id> '<json>' | bun update_fields.js <id> '<json>' | Update field positions |
/documenso remove-field <id> <fid> | bun remove_field.js <id> <fid> | Remove field |
| Command | Script | Description |
|---|---|---|
/documenso templates | bun list_templates.js | List templates |
/documenso template <id> | bun get_template.js <id> | Template details |
/documenso use-template <id> [options] | bun use_template.js <id> '<json>' | Create envelope from template |
/documenso folders | bun list_folders.js | List folders |
/documenso create-folder <name> | bun create_folder.js <name> | Create folder |
When building a signing workflow from natural language:
references/psd-signing-templates.md for matching PSD patternsreferences/documenso-envelope-lifecycle.md for field positioninglist_templates.jsEnvelope titles follow the pattern: {Document Type} - {Person Name} - {Year}
Examples:
Performance Evaluation - Jane Smith - 2025-2026Central Leadership Evaluation - John Doe - 2025-2026Leave Request - Jane Smith - 2025-2026This pattern is critical — the Document Completion Router uses the title prefix to dispatch to the correct handler workflow.
Present the envelope to the user:
bun plugins/psd-productivity/skills/documenso-manager/scripts/create_envelope.js <pdf-path> '<options>'
bun add_recipients.js <id> '<recipients>'
bun add_fields.js <id> '<fields>'
Show envelope summary and link: http://${DOCUMENSO_HOST}/documents/<id>
bun distribute_envelope.js <id>
Check status and download signed PDF when complete.
Pre-fill TEXT fields with values via the API so signers see data without needing to type it:
fieldMeta.text — set this property when creating fields to pre-fill the valuefieldMeta.readOnly: true — prevents signers from editing the pre-filled value. Also works around Documenso bug #2512 where clicking a pre-filled field clears its value.fieldMeta.fontSize — controls rendered text size (e.g., 9 for smaller text)25cqw font-sizing issue. The final signed PDF renders correctly (uses Konva path which respects field width). Workaround: accept the preview overflow and keep the PDF box border for clean appearance.{
"type": "TEXT",
"identifier": 0,
"page": 1,
"positionX": 8.82,
"positionY": 15.84,
"width": 23.53,
"height": 2.78,
"fieldMeta": {
"type": "text",
"label": "Employee Name",
"text": "Jane Smith",
"readOnly": true,
"required": false,
"fontSize": 9,
"placeholder": ""
}
}
add_fields.js rejects coordinates > 100Authorization: api_xxxxxxxx (literal key value)DOCUMENSO_HOST will change — never hardcode the URLid is numeric (internal documentId). API endpoints require string format envelope_xxxxx. Bridge via search: GET /envelope?query={title}.envelopeItems — not items. Item IDs are string format: envelope_item_xxxxx.Content-Type: application/json header. The n8n HTTP Request node's keypair body mode can produce malformed JSON.| Role | Signs? | Blocks Completion? | Receives Copy? |
|---|---|---|---|
| SIGNER | Yes | Yes | Yes |
| APPROVER | Reviews | Yes | Yes |
| CC | No | No | Yes |
| VIEWER | No | No | View only |
| ASSISTANT | Fills fields | No | No |
| Document | Contents |
|---|---|
references/documenso-api-reference.md | Full v2 API endpoints, field types (11), recipient roles (5), webhook events (13) |
references/documenso-envelope-lifecycle.md | DRAFT→PENDING→COMPLETED flow, field positioning guide, signing order, email settings |
references/psd-signing-templates.md | 8 pre-built PSD template patterns with field positions |
references/psd-signing-workflows.md | End-to-end workflows for HR, board, student, vendor + n8n integration |
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub psd401/psd-claude-plugins --plugin psd-productivity