Create notes, inject Layer 1 content, and commit to vault. Canonical pipeline shared by triage-worker agent and quick-create skill. Not user-invocable — loaded as reference knowledge.
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/content-processing/SKILL.md -a claude-code --skill content-processingInstallation paths:
.claude/skills/content-processing/# Content Processing Pipeline
Canonical pipeline for creating notes from enriched content. This skill is the single source of truth for:
1. **Note creation** — generic `para_create` pattern for all templates
2. **Layer 1 injection** — `para_replace_section` with formatting rules
3. **Commit** — `para_commit` after creation
4. **Null-safety** — field handling rules
Callers (triage-worker, quick-create) handle enrichment, classification, user confirmation, and persistence separately. This skill only covers the "create → inject → commit" pipeline.
---
## Pipeline Overview
```
Enriched content + classification (from caller)
↓
1. Discover template metadata (para_template_fields)
↓
2. Create note (para_create)
- Resources: pass Layer 1 via `content` parameter → single call creates + injects + commits
- Meetings: pass structured body via `content` parameter → single call creates + injects + commits
- Others: frontmatter-only → auto-commits
```
**Key optimization:** Resources and meetings both use the `content` parameter on `para_create` to inject body content in a single CLI invocation. The CLI internally calls `createFromTemplate → replaceSections → autoCommitChanges` — no separate `para_commit` or `para_replace_section` needed.
---
## Null-Safety Rules
**CRITICAL:** Never pass `null` values in `args` to `para_create`. Omit the key entirely.
```
// WRONG — creates "[[null]]" in frontmatter
args: { projects: null, author: null }
// CORRECT — omit keys with no value
args: { } // projects and author omitted
```
Apply this rule to ALL optional fields: `projects`, `project`, `author`, `transcription`, `source`.
---
## Enrichment
Before creating notes, content must be enriched. See the canonical routing table and tool selection:
@plugins/para-obsidian/skills/triage/references/enrichment-strategies.md
**Quick summary:** YouTube → `get_transcript`, Articles/GitHub → `firecrawl_scrape`, X/Twitter → X-API MCP (`x_get_tweet`), Voice/Attachment → `