Statement Extract And Prove
OneWave-AI/claude-skills
Converts bank, credit card and brokerage statement PDFs, invoices and vendor price lists into clean CSV or Excel, then proves the extraction is complete and correct - opening balance plus…
Perform a full InDesign data merge from a CSV/TSV and an .indd template (or a PDF that gets converted to .indd automatically).
$ npx skills add adobe/skills --skill adobe-create-pdfs-from-data -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install adobe/skills adobe-create-pdfs-from-data --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data .claude/skills/adobe-create-pdfs-from-data && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "adobe-create-pdfs-from-data" agent skill from https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data into .claude/skills/adobe-create-pdfs-from-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adobe-create-pdfs-from-data", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-dataType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add adobe/skills --skill adobe-create-pdfs-from-data -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install adobe/skills adobe-create-pdfs-from-data --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data .agents/skills/adobe-create-pdfs-from-data && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "adobe-create-pdfs-from-data" agent skill from https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data into .agents/skills/adobe-create-pdfs-from-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adobe-create-pdfs-from-data", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add adobe/skills --skill adobe-create-pdfs-from-data -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install adobe/skills adobe-create-pdfs-from-data --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data .cursor/skills/adobe-create-pdfs-from-data && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "adobe-create-pdfs-from-data" agent skill from https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data into .cursor/skills/adobe-create-pdfs-from-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adobe-create-pdfs-from-data", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/adobe/skills.git --path plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add adobe/skills --skill adobe-create-pdfs-from-data -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install adobe/skills adobe-create-pdfs-from-data --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data .gemini/skills/adobe-create-pdfs-from-data && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "adobe-create-pdfs-from-data" agent skill from https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data into .gemini/skills/adobe-create-pdfs-from-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adobe-create-pdfs-from-data", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install adobe/skills adobe-create-pdfs-from-dataInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add adobe/skills --skill adobe-create-pdfs-from-data -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data .github/skills/adobe-create-pdfs-from-data && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "adobe-create-pdfs-from-data" agent skill from https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data into .github/skills/adobe-create-pdfs-from-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adobe-create-pdfs-from-data", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add adobe/skills --skill adobe-create-pdfs-from-data -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install adobe/skills adobe-create-pdfs-from-data --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data .opencode/skills/adobe-create-pdfs-from-data && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "adobe-create-pdfs-from-data" agent skill from https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data into .opencode/skills/adobe-create-pdfs-from-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adobe-create-pdfs-from-data", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
adobe-create-pdfs-from-dataPerform a full InDesign data merge from a CSV/TSV and an .indd template (or a PDF that gets converted to .indd automatically).
Adobe Create Pdfs From Data is an agent skill from adobe/skills. Perform a full InDesign data merge from a CSV/TSV and an .indd template (or a PDF that gets converted to .indd automatically). Use this skill whenever the user wants to merge a data file with a layout template — including visiting cards, certificates, badges, catalogs, mailers, labels, invoices, or any per-row personalisation. Triggers on: "data merge", "InDesign merge", "merge my CSV with InDesign", "batch export PDF from template", "variable data InDesign", "personalise each row", or any request combining an…
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Documents & Office, covering PDF, CSV and tabular files and Forms and invoices. The repository describes itself as: Adobe Skills for Agents. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cbc9952. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
adobe_mandatory_initasset_inline_previewasset_preview_fileasset_initialize_file_uploadasset_finalize_file_uploadconvert_pdf_to_inddexport_idmlgenerate_indd_mapping_promptprepare_indd_merge_templatedocument_merge_data_layoutFrom allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ADOBE_CLIENT_SECRETADOBE_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Adobe Create Pdfs From Data loads about 3.7k tokens when it runs. Until then it costs about 184 tokens; SKILL.md has 1,384 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from adobe/skills at commit cbc9952, republished under its Apache-2.0 licence (© adobe). 1,384 words, ~3,691 tokens.
.claude/skills/adobe-create-pdfs-from-data/SKILL.md (or your agent's skills folder).Orchestrates the complete InDesign data merge pipeline. The naive path — calling
document_merge_data_layout directly — often fails because the template must have its
data-merge fields linked to the correct data columns before merging. This skill ensures
that linkage is in place first, including automatic placeholder creation when the template
has none, and PDF-to-INDD conversion when the user only has a PDF layout.
Pipeline at a glance:
| Phase | What happens | Gate |
|---|---|---|
| 0 | Adobe init | — |
| 1a | Convert PDF template → .indd (skip if already .indd) | ⛔ GATE 1 |
| 1b | Confirm .indd URL and data file are available | — |
| 2 | Export IDML; detect existing merge placeholders | — |
| 3 | Create placeholders via LLM mapping (only if Phase 2 found none) | ⛔ GATE 2 |
| 4 | Run document_merge_data_layout | — |
| Step | Tool | Notes |
|---|---|---|
| Initialize Adobe tools | adobe_mandatory_init | Always call first |
| Inspect PDF pages | asset_inline_preview | Returns rendered preview per page |
| Preview PDF pages (fallback) | asset_preview_file | Use if asset_inline_preview unavailable |
| Upload condensed template PDF | asset_initialize_file_upload + asset_finalize_file_upload | Required before convert_pdf_to_indd |
| Convert PDF → INDD | convert_pdf_to_indd | Use extractedDocumentPresignedUrls as inddUrl |
| Export IDML | export_idml | Outputs presigned IDML URL for inspection |
| Generate mapping prompt | generate_indd_mapping_prompt | Read-only; returns prompt — you run it through an LLM |
| Create placeholders in INDD | prepare_indd_merge_template | Only after user approves mapping |
| Run data merge | document_merge_data_layout | Template + data → merged PDF |
Two rules are non-negotiable and override all efficiency instincts.
Never call convert_pdf_to_indd on a user-supplied PDF without first inspecting its
page layout structure. A multi-page PDF (e.g. a prior merged output) produces a multi-page INDD
which breaks the merge. Always distil it to a single-layout condensed PDF first.
Never call prepare_indd_merge_template in the same turn you generate or display the mapping JSON.
Show the mapping summary + raw JSON, ask for approval, and end the turn. Only call
prepare_indd_merge_template after the user explicitly approves in a later turn.
{ "skill_name": "adobe-create-pdfs-from-data", "skill_version": "1.0.1" }Call adobe_mandatory_init once, before any other Adobe tool.
.indd)When to run: The user's template is a PDF (or any non-INDD layout). If you already have a
usable .indd URL, skip directly to Step 1b.
Record the user-supplied PDF URL as originalPdfUrl.
Call asset_inline_preview on the PDF (or asset_preview_file as fallback). Record totalPages.
If totalPages == 1: set templatePdfUrl = originalPdfUrl and skip to Sub-step 5.
Look at each preview image. Ask: "If I removed all text and image content and compared only the skeleton — frame positions, structural regions — would this page match another page?"
Group pages by layout skeleton into layoutGroups:
layoutGroups = {
"layout-A": [1, 2, 3, ...], // pages sharing layout A
"layout-B": [N+1, ...], // pages with a distinct layout B
}Pick templatePages as a single representative page:
layoutGroups has exactly 1 entry: templatePages = [first page in that group].layoutGroups has >1 entry: ask the user which layout group to use (or default to the group with the most pages) and set templatePages to one page from that group.Tell the user:
"Your PDF has {totalPages} pages. I found {N} unique layout(s). I'll use page {templatePages[0]} as the template. (If you need multiple layouts, we can run separate merges per layout.)"
Download the PDF from {originalPdfUrl} and extract only page(s) {templatePages} (1-indexed) to template-condensed.pdf using PyMuPDF (fitz). Report the absolute file path as intermediatePdfLocalPath.
Record the path as intermediatePdfLocalPath.
asset_initialize_file_upload({ path: "template-condensed.pdf", media_type: "application/pdf" })
// PUT the local file bytes to the returned upload URL, then:
asset_finalize_file_upload({ filename: "template-condensed.pdf", transfer_document: <from initialize response> })Record the resulting presigned URL as templatePdfUrl.
convert_pdf_to_indd:
pdfSourceUrl: {templatePdfUrl}
outputFormat: "indd"
embedLinks: false
waitForCompletion: true
includeAdobeZipDownloadLinksInResult: falseUse the first entry in extractedDocumentPresignedUrls as inddUrl. If that field is
missing, re-run with embedLinks: true. Do not attempt to download or unzip the output ZIP.
Confirm all inputs are accessible (attached files, URLs from conversation, or prior tool calls):
.indd URL — if missing, prompt the user to upload their templateIf any file is a local attachment without a URL, upload it first:
asset_initialize_file_upload → asset_finalize_file_uploadRecord inddUrl and dataUrl. Proceed only when both are confirmed.
Parse the header row of dataUrl. If any column values look like image filenames or paths
(common with @-prefixed image fields in InDesign templates), collect those images:
asset_initialize_file_upload +
asset_finalize_file_upload.additionalImageFiles: a map of { "filename.jpg": "<presignedUrl>", ... } covering
every unique image referenced across all rows.Record additionalImageFiles (or {} if no image columns are present).
export_idml:
assets:
- sourceUrl: {inddUrl} destination: "template.indd"Record the presigned idmlUrl from the response.
If export_idml fails (missing execute URL), tell the user you cannot proceed with
automatic placeholder creation and ask whether they want to continue manually.
Fetch and unzip the IDML. Build docAnalysis capturing every candidate merge target:
uid, bounds, current text content, any existing <<fieldName>> or <AppliedDataMergeField> tokensuid, bounds, aspect ratio, any @-prefixed image field namesExtract idmlPlaceholders: string[] — unique field names stripped of <</>> wrappers.
If placeholders are found: skip Phase 3 and go directly to Step 4 using inddUrl.
If no placeholders are found: proceed to Step 3.
Parse the header row of dataUrl. Treat the file as delimited text; infer the delimiter if
ambiguous. Preserve exact column name strings as dataColumns: string[].
Call generate_indd_mapping_prompt — this returns a prompt string only; it does not call an LLM:
generate_indd_mapping_prompt:
userRequest: {user's original request}
tier: "standard" (use "complex" for dense templates; "modification" for edits)
idmlPresignedUrl: {idmlUrl}
csvInfo:
headers: {dataColumns}
data_types: {inferred types}
sample_data: {first 2–3 rows}Run the returned prompt through an LLM requiring JSON-only output. Record as mappingJson.
Call generate_indd_mapping_prompt again with the same inputs, adding:
mappingJson: {mappingJson}If the response includes filteredMappings (hallucinated UIDs removed), use it as the working
mapping. Fix any errors and re-validate until isValid: true.
After the first successful validation, record:
originalMappingJson — the first validated mapping (use filteredMappings if returned)originalIdmlUrl — the idmlUrl from Step 2 (never overwrite with a post-edit version)originalInddUrl — the inddUrl from Step 1b (never overwrite with mappedInddUrl)Your response for this step must contain exactly:
"Please confirm this mapping (or tell me what to change). I'll apply it to create placeholders in your
.inddand then run the merge."
After that line — no more tool calls, no further narration. End the turn.
If the user requests changes, enter a modification loop:
originalMappingJson — never use an
intermediate draft or mappedInddUrl as the basetier: "modification", passing originalIdmlUrl and
originalMappingJson in modificationContextprepare_indd_merge_template until the user approvesOnly callable after user explicitly approves in a later turn.
prepare_indd_merge_template:
assets:
- sourceUrl: {originalInddUrl} destination: "template.indd"
params: {filteredMappings or validated mappingJson}Record the first presigned URL from the response as mappedInddUrl.
document_merge_data_layout:
templateSourceUrl: {mappedInddUrl or inddUrl}
templateFileName: "template.indd"
dataSourceUrl: {dataUrl}
additionalImageFiles: {additionalImageFiles} # omit or pass {} if no image columns
outputSpecs: [{ outputMediaType: "application/pdf" }]
recordRange: "All"Return download links to the user:
"Data merge complete — {N} record(s) rendered. Here are your download links:"
User requests data merge
│
Phase 0: adobe_mandatory_init
│
Already have .indd URL?
YES → Step 1b
NO → Template is PDF?
YES → Step 1a.1: inspect all pages
→ single page? → convert_pdf_to_indd (original URL)
→ multi-page? → identify unique layouts → extract condensed PDF
→ upload → convert_pdf_to_indd → inddUrl
NO → Step 1b (ask for .indd upload)
│
Step 1b: confirm inddUrl + dataUrl
│
Step 2: export_idml → parse IDML for placeholders
│
Placeholders found?
YES → Step 4: document_merge_data_layout
NO → Step 3a: parse data headers
Step 3b: generate_indd_mapping_prompt → LLM → mappingJson
Step 3b.1: validate → filteredMappings
⛔ STOP — show mapping + ask approval — END TURN
│
[Next turn] user approves?
YES → Step 3c: prepare_indd_merge_template → mappedInddUrl
NO → modify against originals → re-validate → ⛔ STOP again
│
Step 4: document_merge_data_layout → return download links| Situation | Action |
|---|---|
export_idml fails / missing execute URL | Inform user that automatic placeholder creation is unavailable; ask if they want to continue manually |
prepare_indd_merge_template fails / missing execute URL | Ask deployer to set ADOBE_CAPABILITY_SMART_MAPPING_EXECUTE_URL; stop |
| Data file delimiter unclear | Ask the user what delimiter is used and whether the first row is a header |
| Mapping JSON invalid after validation | Re-run LLM with the validation errors; require JSON-only output; retry until isValid: true |
document_merge_data_layout fails | Surface the raw error; suggest checking that template variable names match CSV column headers exactly |
convert_pdf_to_indd fails | Confirm the PDF URL is accessible; retry with embedLinks: true; if still failing, ask user for a native .indd |
No .indd and PDF conversion unavailable | Ask user to export their template as .indd directly |
The IDML export and smart-mapping tools require these environment variables (configure them in your deployment environment):
| Variable | Used by |
|---|---|
ADOBE_CAPABILITY_IDMLEXPORT_EXECUTE_URL | export_idml |
ADOBE_CAPABILITY_SMART_MAPPING_EXECUTE_URL | prepare_indd_merge_template |
ADOBE_CLIENT_ID, ADOBE_CLIENT_SECRET, ADOBE_API_KEY, ADOBE_IMS_ORG_ID, ADOBE_CLIENT_CODE, ADOBE_IMS_TOKEN_URL, ADOBE_API_BASE_URL | All Adobe tools |
© adobe, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data of adobe/skills.
Open the folder on GitHubat commit cbc9952
Adobe Create Pdfs From Data next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Adobe Create Pdfs From Data this skilladobe/skills | 195 | — | ~3.7k | Automated safety check: Pass | Apache-2.0 | |
| Statement Extract And ProveOneWave-AI/claude-skills | 322 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences | 274 | 2 repos | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Code2mediatsingliuwin/autoclaw | 280 | — | ~956 | Automated safety check: Pass | MIT | |
| Research Integrity Auditxuzhougeng/wisp-science | 1k | — | ~2.6k | Automated safety check: Pass | AGPL-3.0 | |
| File ReadingWide-Moat/open-computer-use | 126 | 1 repos | ~3.1k | Automated safety check: Pass | Proprietary |
OneWave-AI/claude-skills
Converts bank, credit card and brokerage statement PDFs, invoices and vendor price lists into clean CSV or Excel, then proves the extraction is complete and correct - opening balance plus…
aws-samples/amazon-bedrock-agents-healthcare-lifesciences
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.
tsingliuwin/autoclaw
Universal media renderer with no fixed template — any custom layout, size or style becomes pixel-perfect images (PNG/JPEG/WebP), vector SVG, paged PDFs or animations (WebP/GIF).
xuzhougeng/wisp-science
学术审查 / research-integrity screening of a manuscript's figures and reported numbers.
Wide-Moat/open-computer-use
A skill your agent uses when a file has been uploaded but its content is NOT in your context — only its path at /mnt/user-data/uploads/ is listed in an uploadedfiles block.
jimmc414/Kosmos
PDF generation toolkit. An agent skill from jimmc414/Kosmos.
adobe/skills
Scaffolds, implements, deploys and debugs Adobe Runtime actions in App Builder projects, with templates for webhooks, events, database CRUD, sequences and Asset Compute workers.
adobe/skills
Launches Chrome with an unpacked extension over CDP, opens its sidepanel, popup or options page, and hands over to cdp-connect for clicks, typing and screenshots.
adobe/skills
Extracts icons, metadata, text, forms, videos and social links from any web page with playwright-cli, with SVG icon classification and cleanup.
adobe/skills
Detect all languages used on a webpage — both declared (html@lang, hreflang alternate links, nested lang= attributes, meta content-language) and actually present in the body text (Google CLD3 via…
adobe/skills
Prepare any webpage for clean interaction by detecting and removing disruptive overlays (cookie banners, GDPR consent, modals, popups, newsletter signups, paywalls, login walls).
adobe/skills
Reduce a webpage to a structural skeleton with semantic tokens.
Categories
Perform a full InDesign data merge from a CSV/TSV and an .indd template (or a PDF that gets converted to .indd automatically). Adobe Create Pdfs From Data is an agent skill from adobe/skills.indd automatically).
Adobe Create Pdfs From Data fits situations like: the user wants to merge a data file with a layout template — including visiting cards; any per-row personalisation; merge my CSV with InDesign; batch export PDF from template.
Run `npx skills add adobe/skills --skill adobe-create-pdfs-from-data -a claude-code`. Or copy the skill folder (plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data in adobe/skills) into .claude/skills/adobe-create-pdfs-from-data in your project. Claude Code loads it when a task matches its description.
Run `npx skills add adobe/skills --skill adobe-create-pdfs-from-data -a codex`. Or copy the skill folder (plugins/creative-cloud/adobe-for-creativity/skills/adobe-create-pdfs-from-data in adobe/skills) into .agents/skills/adobe-create-pdfs-from-data in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add adobe/skills --skill adobe-create-pdfs-from-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/adobe-create-pdfs-from-data, .gemini/skills/adobe-create-pdfs-from-data, .github/skills/adobe-create-pdfs-from-data and .opencode/skills/adobe-create-pdfs-from-data in your project.
Going by SKILL.md and its folder, Adobe Create Pdfs From Data needs credentials named ADOBE_CLIENT_SECRET and ADOBE_API_KEY. Its frontmatter pre-approves these tools: adobe_mandatory_init, asset_inline_preview, asset_preview_file, asset_initialize_file_upload, asset_finalize_file_upload, convert_pdf_to_indd, export_idml, generate_indd_mapping_prompt, prepare_indd_merge_template, document_merge_data_layout.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Adobe Create Pdfs From Data is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Adobe Create Pdfs From Data: Statement Extract And Prove (OneWave-AI/claude-skills, 322 stars), Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars), Code2media (tsingliuwin/autoclaw, 280 stars) and Research Integrity Audit (xuzhougeng/wisp-science, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
adobe (a GitHub organization) maintains it in adobe/skills, which has 195 GitHub stars. The repository holds 105 skills in this directory. The repository was last updated on October 6, 2026.
Source: adobe/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.