doc-pipeline — Claude Code skill: what it does, install
Build reusable document-processing pipelines where data moves through extraction, transformation and output stages. Use it for PDF, image or spreadsheet workflows.
npx skills add claude-office-skills/skills --skill doc-pipeline -a claude-codeWhat doc-pipeline does
This skill turns document work into ordered stages that pass data to the next step. A pipeline can extract PDF text, send it for analysis, then generate a DOCX report. It also covers OCR from images, summaries, reports, spreadsheet analysis and presentation output.
Pipelines can be described in pipeline.yaml, with named inputs and outputs for each stage. The example Python implementation includes Stage and Pipeline classes, a sequential run() method, and a conditional stage that runs OCR when images are present. A report stage can use templates/review_report.docx.
Installation lists python-docx, openpyxl, python-pptx, reportlab and jinja2 as dependencies. Check the project Python environment before running a pipeline.
What it helps with
- extract PDF text before document analysis
- run OCR on images and create a report
- analyse an Excel file and generate charts for a presentation
- merge several inputs into a formatted output
- add OCR only when an input contains images
Example prompts for the agent
- Build a pipeline that extracts PDF text, analyses it, and creates a DOCX report.
- Process these images with OCR, write a summary, and create a report.
- Create
pipeline.yamlto merge files, format the result, and produce an output document.
How to install doc-pipeline
1Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill doc-pipeline -a claude-code2Manually: put the files in place
~/.claude/skills/doc-pipeline/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/doc-pipeline/
1Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill doc-pipeline -a codex2Manually: put the files in place
.agents/skills/doc-pipeline/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill doc-pipeline -a cursor2Manually: put the files in place
.cursor/skills/doc-pipeline/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install claude-office-skills/skills doc-pipeline2Manually: put the files in place
.github/skills/doc-pipeline/SKILL.md1Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill doc-pipeline -a gemini-cli2Platform CLI
gemini skills install https://github.com/claude-office-skills/skills --path doc-pipelineManually: put the files in place
.devin/skills/doc-pipeline/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill doc-pipeline -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about doc-pipeline
How do I install doc-pipeline in Claude Code?
Run npx skills add claude-office-skills/skills --skill doc-pipeline -a claude-code, then run npx skills add claude-office-skills/skills --skill doc-pipeline -a claude-code again. The skill file is placed at ~/.claude/skills/doc-pipeline/SKILL.md.
What does doc-pipeline do?
It creates reusable chains of document operations, passing data between stages. The stages can extract, transform, analyse, convert or generate document output.
What does doc-pipeline require?
Its installation instructions list python-docx, openpyxl, python-pptx, reportlab and jinja2. Pipelines also take input data or files for processing.
Source text
SKILL.md · MIT
---
# ═══════════════════════════════════════════════════════════════════════════════
# CLAUDE OFFICE SKILL - Enhanced Metadata v2.0
# ═══════════════════════════════════════════════════════════════════════════════
# Basic Information
name: doc-pipeline
description: "Chain document operations into reusable pipelines"
version: "1.0"
author: claude-office-skills
license: MIT
# Categorization
category: workflow
tags:
- pipeline
- workflow
- document
- automation
department: All
# AI Model Compatibility
models:
recommended:
- claude-sonnet-4
- claude-opus-4
compatible:
- claude-3-5-sonnet
- gpt-4
- gpt-4o
# Skill Capabilities
capabilities:
- document_workflow
- pipeline_automation
# Language Support
languages:
- en
- zh
---
# Doc Pipeline Skill
## Overview
This skill enables building document processing pipelines - chain multiple operations (extract, transform, convert) into reusable workflows with data flowing between stages.
## How to Use
1. Describe what you want to accomplish
2. Provide any required input data or files
3. I'll execute the appropriate operations
**Example prompts:**
- "PDF → Extract Text → Translate → Generate DOCX"
- "Image → OCR → Summarize → Create Report"
- "Excel → Analyze → Generate Charts → Create PPT"
- "Multiple inputs → Merge → Format → Output"
## Domain Knowledge
### Pipeline Architecture
```
Stage 1 Stage 2 Stage 3 Stage 4
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│Extract│ → │Transform│ → │ AI │ → │Output│
│ PDF │ │ Data │ │Analyze│ │ DOCX │
└──────┘ └──────┘ └──────┘ └──────┘
│ │ │ │
└───────────┴───────────┴───────────┘
Data Flow
```
### Pipeline DSL (Domain Specific Language)
```yaml
# pipeline.yaml
name: contract-review-pipeline
description: Extract, analyze, and report on contracts
stages:
- name: extract
operation: pdf-extraction
input: $input_file
output: $extracted_text
- name: analyze
operation: ai-analyze
input: $extracted_text
prompt: "Review this contract for risks..."
output: $analysis
- name: report
operation: docx-generation
input: $analysis
template: templates/review_report.docx
output: $output_file
```
### Python Implementation
```python
from typing import Callable, Any
from dataclasses import dataclass
@dataclass
class Stage:
name: str
operation: Callable
class Pipeline:
def __init__(self, name: str):
self.name = name
self.stages: list[Stage] = []
def add_stage(self, name: str, operation: Callable):
self.stages.append(Stage(name, operation))
return self # Fluent API
def run(self, input_data: Any) -> Any:
data = input_data
for stage in self.stages:
print(f"Running stage: {stage.name}")
data = stage.operation(data)
return data
# Example usage
pipeline = Pipeline("contract-review")
pipeline.add_stage("extract", extract_pdf_text)
pipeline.add_stage("analyze", analyze_with_ai)
pipeline.add_stage("generate", create_docx_report)
result = pipeline.run("/path/to/contract.pdf")
```
### Advanced: Conditional Pipelines
```python
class ConditionalPipeline(Pipeline):
def add_conditional_stage(self, name: str, condition: Callable,
if_true: Callable, if_false: Callable):
def conditional_op(data):
if condition(data):
return if_true(data)
return if_false(data)
return self.add_stage(name, conditional_op)
# Usage
pipeline.add_conditional_stage(
"ocr_if_needed",
condition=lambda d: d.get("has_images"),
if_true=run_ocr,
if_false=lambda d: d
)
```
## Best Practices
1. **Keep stages focused (single responsibility)**
2. **Use intermediate outputs for debugging**
3. **Implement stage-level error handling**
4. **Make pipelines configurable via YAML/JSON**
## Installation
```bash
# Install required dependencies
pip install python-docx openpyxl python-pptx reportlab jinja2
```
## Resources
- [Custom Repository](https://github.com/claude-office-skills/skills)
- [Claude Office Skills Hub](https://github.com/claude-office-skills/skills)
© claude-office-skills · MIT · claude-office-skills/skills