본문으로 건너뛰기
cccskills
무료GitHub에 공개

pdf-tools

Use when creating, merging, splitting, filling, or extracting from a PDF — library-per-task, output validated. Triggers on 'merge these PDFs', 'fill this PDF form', 'split the PDF', 'create a PDF'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md4.4 KB
  • evals/triggers.json2.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

pdf-tools

Wing-1 engineering skill for PDF write/transform — markitdown reads a PDF to Markdown; this creates, merges, fills, and extracts. Ships zero runtime: the agent drives libraries the consumer has. Pattern re-implementation only.

When to use

  • "Merge / split / rotate / encrypt these PDFs."
  • "Fill this PDF form (AcroForm) with these values."
  • "Create a PDF from this content."
  • "Extract the text / tables from this PDF" (structured extraction beyond markitdown's Markdown).
  • "OCR this scanned PDF."

Do NOT use for: PDF → Markdown ingestion (markitdown); Word (docx-authoring).

Procedure

1. Library per task — do not force one tool

TaskLibrary path
merge / split / rotate / encryptpypdf — page-level operations, no rendering
create from contentreportlab (canvas / platypus)
form-fill (AcroForm)a form-aware library; map field name → value, then flatten if the form must not be re-editable
text / table extractiona text-layer extractor; tables need a layout-aware pass, not naive text
OCR (scanned/image PDF)an OCR engine over rasterized pages — ONLY when there is no text layer

2. Decide flatten-or-keep on form fills

A filled AcroForm stays editable unless flattened. Flatten when the PDF is a final artifact (an invoice, a signed form); keep fields when the recipient must edit further. State which you chose — a silently-editable "final" form is a correctness bug.

3. Validate — assert output validity, do not trust the write

  1. Re-open the output with pypdf; assert len(reader.pages) matches the expected count (merge = sum; split = 1 per part).
  2. For a form-fill: read back one field value (pre-flatten) or extract the rendered text (post-flatten) and assert the value is present.
  3. For create: assert the file opens and page 1 carries expected text.

Output format

  1. The output PDF path(s).
  2. Validation: page count matches expected ✅, read-back value/text present ✅.
  3. For fills: flatten decision stated (flattened / kept-editable + why).

Gotcha

OCR is a last resort, not the default extraction path. Running OCR over a PDF that already has a text layer produces worse output (OCR errors) than the existing text and burns time. Check for a text layer first; OCR only when it is genuinely absent.

  • Editable "final" form: a filled AcroForm left un-flattened ships as a "signed invoice" the recipient can silently alter → flatten when the artifact is final.

Do NOT

  • Do NOT bundle a Python toolkit in this package — drive the consumer's libraries (zero-runtime posture).
  • Do NOT OCR a PDF that has a text layer.
  • Do NOT leave a "final" filled form editable without saying so.
  • Do NOT claim success on "file written"; claim it only after the re-open + page-count assertion.

Related Skills

WHEN to use this

  • The task creates, merges, splits, rotates, encrypts, or form-fills a PDF.
  • Structured text/table extraction beyond markitdown's Markdown, or OCR of a scanned PDF.

WHEN NOT to use this

When the agent should load this

  • "Merge / split / rotate these PDFs."
  • "Fill this PDF form."
  • "Create a PDF from this content."
  • "Extract the tables from this PDF / OCR this scan."

Output

  1. Output PDF(s) — the path(s). Cite as pdf-output.
  2. Validation receipt — page count matches expected ✅, read-back value/text present ✅. Cite as pdf-validation.
  3. Fill decision — present on form-fills: flattened / kept-editable + why. Cite as pdf-fill-decision.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config132026년 10월 22일 업데이트

Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config132026년 10월 22일 업데이트

Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config132026년 10월 22일 업데이트

Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config132026년 10월 22일 업데이트

Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config132026년 10월 22일 업데이트

Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config132026년 10월 22일 업데이트

event4u-app의 스킬 모두 보기

이 스킬의 문제 신고