Analyze PDF/DOCX attachments, create notes, and return lightweight proposals. Reads content via para_read, analyzes, creates note with para_create, and persists proposal. Worker skill for triage orchestrator.
View on GitHubnathanvale/side-quest-marketplace
para-obsidian
February 4, 2026
Select agents to install to:
npx add-skill https://github.com/nathanvale/side-quest-marketplace/blob/main/plugins/para-obsidian/skills/analyze-attachment/SKILL.md -a claude-code --skill analyze-attachmentInstallation paths:
.claude/skills/analyze-attachment/# Analyze Attachment
Analyze PDF or DOCX attachments, **create the note**, and return a lightweight proposal.
**Key design:** Like analyze-web and analyze-voice, this skill creates the note AND returns a proposal. The full content stays in subagent context โ only the proposal flows back to the coordinator.
## Input
You receive:
- `file`: Path to attachment inbox note (e.g., `00 Inbox/๐ document.md` โ the inbox note referencing the attachment)
- `areas`: Available areas in vault
- `projects`: Available projects in vault
## Output
Return a JSON proposal per @plugins/para-obsidian/skills/triage/references/proposal-schema.md.
**Key:** Use `area` (single wikilink), `project` (single wikilink or null), `resourceType` (camelCase). Include `file`, `type: "attachment"`, `created`, `layer1_injected`, and `document_type` alongside the standard proposal fields.
For attachments, always set `source_format: "document"`. Include `document_type` (invoice, contract, cv, letter, medical, report, manual) as an attachment-specific field.
## Workflow
### Step 1: Read Inbox Note
```
para_read({ file: "[input file]", response_format: "json" })
```
Extract frontmatter fields (`source`, `type`, pre-filled `areas`/`projects`) and body content from the inbox note. The inbox note typically contains extracted text from the attachment (placed there by the CLI scan step or Web Clipper).
Do NOT call `para_fm_get` separately โ `para_read` returns the full file including frontmatter.
### Step 2: Analyze Content
Based on the extracted content in the inbox note, determine:
1. **Document type**: Invoice, contract, CV, letter, medical, report, manual
2. **Template**: Most attachments โ `resource`, invoices โ `invoice`, bookings โ `booking`
3. **Key information**: Dates, amounts, parties, terms
4. **Area/project**: Which vault area does this belong to?
### Step 3: Pre-Creation Self-Check
Before calling `para_create`, verify your `args` object includes critical fields:
**If resource:**
-