Agent skill

Adobe Create Pdfs From Data

by adobe in 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).

Apache-2.0Auto-check passedDocuments & Office

Install Adobe Create Pdfs From Data

skills CLI
$ npx skills add adobe/skills --skill adobe-create-pdfs-from-data -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install adobe/skills adobe-create-pdfs-from-data --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
adobe-create-pdfs-from-data
GitHub stars
195
Token cost
~3.7k tokens
SKILL.md length
1,384 words
Files
1
Skills in repo
105
Repo updated
First seen
Licence
Apache-2.0

At a glance

Perform a full InDesign data merge from a CSV/TSV and an .indd template (or a PDF that gets converted to .indd automatically).

  • Works in 4 steps: Initialize Adobe Tools → Export IDML and Inspect for Placeholders → Create Placeholders (only if Step 2… → …
  • The user wants to merge a data file with a layout template — including visiting cards
  • SKILL.md covers Tool Reference, ⛔ MANDATORY GATES, Workflow and Decision Tree, plus 2 more sections
  • Needs ADOBE_CLIENT_SECRET and ADOBE_API_KEY

What it does

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.

When your agent uses it

  • 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

Example prompts

  • “data merge”
  • “InDesign merge”
  • “merge my CSV with InDesign”
  • “/adobe-create-pdfs-from-data”

Requirements

  • Pre-approved tools (allowed-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

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Initialize Adobe Tools
  2. Export IDML and Inspect for Placeholders
  3. Create Placeholders (only if Step 2 found none)
  4. Run the Data Merge

What it can do on your machine

Read from SKILL.md and the folder at commit cbc9952. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • 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

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    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.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • ADOBE_CLIENT_SECRET
    • ADOBE_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~184
When it runs · the whole SKILL.md, loaded when a task matches
~3.7k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from adobe/skills at commit cbc9952, republished under its Apache-2.0 licence (© adobe). 1,384 words, ~3,691 tokens.

Download SKILL.mdSave it as .claude/skills/adobe-create-pdfs-from-data/SKILL.md (or your agent's skills folder).
name
adobe-create-pdfs-from-data
description
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 .indd / PDF template with a data file. Use this skill even when only two of the three inputs (template, data, images) are mentioned — and even when the user never uses the phrase "data merge".
allowed-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
license
Apache-2.0
metadata.version
1.0.1
metadata.visibility
public
metadata.surface
claude

InDesign Data Merge Skill

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:

PhaseWhat happensGate
0Adobe init—
1aConvert PDF template → .indd (skip if already .indd)⛔ GATE 1
1bConfirm .indd URL and data file are available—
2Export IDML; detect existing merge placeholders—
3Create placeholders via LLM mapping (only if Phase 2 found none)⛔ GATE 2
4Run document_merge_data_layout—

Tool Reference

StepToolNotes
Initialize Adobe toolsadobe_mandatory_initAlways call first
Inspect PDF pagesasset_inline_previewReturns rendered preview per page
Preview PDF pages (fallback)asset_preview_fileUse if asset_inline_preview unavailable
Upload condensed template PDFasset_initialize_file_upload + asset_finalize_file_uploadRequired before convert_pdf_to_indd
Convert PDF → INDDconvert_pdf_to_inddUse extractedDocumentPresignedUrls as inddUrl
Export IDMLexport_idmlOutputs presigned IDML URL for inspection
Generate mapping promptgenerate_indd_mapping_promptRead-only; returns prompt — you run it through an LLM
Create placeholders in INDDprepare_indd_merge_templateOnly after user approves mapping
Run data mergedocument_merge_data_layoutTemplate + data → merged PDF

⛔ MANDATORY GATES

Two rules are non-negotiable and override all efficiency instincts.

Gate 1 — PDF template: analyse layout before converting

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.

Gate 2 — Mapping: show and wait before creating placeholders

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.


Workflow

Step 0 — Initialize Adobe Tools
json
{ "skill_name": "adobe-create-pdfs-from-data", "skill_version": "1.0.1" }

Call adobe_mandatory_init once, before any other Adobe tool.


Step 1a — Convert PDF Template to INDD (skip if already .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.

Sub-step 1 — Inspect all pages

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.

Sub-step 2 — Compare page layouts visually

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:

  • If layoutGroups has exactly 1 entry: templatePages = [first page in that group].
  • If 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.)"

Sub-step 3 — Extract only the template pages

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.

Sub-step 4 — Upload the condensed PDF
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.

Sub-step 5 — Convert to INDD
convert_pdf_to_indd:
  pdfSourceUrl:                        {templatePdfUrl}
  outputFormat:                        "indd"
  embedLinks:                          false
  waitForCompletion:                   true
  includeAdobeZipDownloadLinksInResult: false

Use 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.


Step 1b — Prerequisite Check

Confirm all inputs are accessible (attached files, URLs from conversation, or prior tool calls):

  • .indd URL — if missing, prompt the user to upload their template
  • Data file — CSV, TSV, or other delimited text; if missing, ask the user
  • Image assets (optional) — any images referenced by the data file (e.g. photo columns)

If any file is a local attachment without a URL, upload it first:

asset_initialize_file_upload → asset_finalize_file_upload

Record inddUrl and dataUrl. Proceed only when both are confirmed.

Collect image assets (if the data file references images)

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:

  1. For each unique image filename referenced in the data, obtain a presigned URL — either from the user's supplied URLs, or by uploading local files via asset_initialize_file_upload + asset_finalize_file_upload.
  2. Build additionalImageFiles: a map of { "filename.jpg": "<presignedUrl>", ... } covering every unique image referenced across all rows.

Record additionalImageFiles (or {} if no image columns are present).


Step 2 — Export IDML and Inspect for Placeholders
Export IDML
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.

Show full SKILL.md (575 more words)Show less
Inspect for existing placeholders

Fetch and unzip the IDML. Build docAnalysis capturing every candidate merge target:

  • Text frames: uid, bounds, current text content, any existing <<fieldName>> or <AppliedDataMergeField> tokens
  • Image frames: uid, bounds, aspect ratio, any @-prefixed image field names

Extract 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.


Step 3 — Create Placeholders (only if Step 2 found none)
Step 3a — Read data headers

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[].

Step 3b — Generate mapping JSON

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.

Step 3b.1 — Validate / filter the mapping

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)
Step 3b.2 — ⛔ Show mapping and END TURN (Gate 2)

Your response for this step must contain exactly:

  1. A human-readable summary of text/image mappings (placeholder name → CSV column, frame UID)
  2. The raw mapping JSON in a code block
  3. This confirmation question as the final line:

    "Please confirm this mapping (or tell me what to change). I'll apply it to create placeholders in your .indd and 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:

  • Apply only the user's requested deltas on top of originalMappingJson — never use an intermediate draft or mappedInddUrl as the base
  • Re-run Step 3b.1 validation with tier: "modification", passing originalIdmlUrl and originalMappingJson in modificationContext
  • Re-present the updated mapping and ask for confirmation again — do not call prepare_indd_merge_template until the user approves
Step 3c — Apply placeholder mapping to INDD

Only 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.


Step 4 — Run the Data Merge
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:"


Decision Tree

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

Error Handling

SituationAction
export_idml fails / missing execute URLInform user that automatic placeholder creation is unavailable; ask if they want to continue manually
prepare_indd_merge_template fails / missing execute URLAsk deployer to set ADOBE_CAPABILITY_SMART_MAPPING_EXECUTE_URL; stop
Data file delimiter unclearAsk the user what delimiter is used and whether the first row is a header
Mapping JSON invalid after validationRe-run LLM with the validation errors; require JSON-only output; retry until isValid: true
document_merge_data_layout failsSurface the raw error; suggest checking that template variable names match CSV column headers exactly
convert_pdf_to_indd failsConfirm the PDF URL is accessible; retry with embedLinks: true; if still failing, ask user for a native .indd
No .indd and PDF conversion unavailableAsk user to export their template as .indd directly

Admin Notes (IDCS Environment)

The IDML export and smart-mapping tools require these environment variables (configure them in your deployment environment):

VariableUsed by
ADOBE_CAPABILITY_IDMLEXPORT_EXECUTE_URLexport_idml
ADOBE_CAPABILITY_SMART_MAPPING_EXECUTE_URLprepare_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_URLAll 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

Files

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

Compare with similar skills

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.

Adobe Create Pdfs From Data compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Adobe Create Pdfs From Data this skilladobe/skills195—~3.7kAutomated safety check: PassApache-2.0
Statement Extract And ProveOneWave-AI/claude-skills322—~2.2kAutomated safety check: PassMIT
Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences2742 repos~2.7kAutomated safety check: PassApache-2.0
Code2mediatsingliuwin/autoclaw280—~956Automated safety check: PassMIT
Research Integrity Auditxuzhougeng/wisp-science1k—~2.6kAutomated safety check: PassAGPL-3.0
File ReadingWide-Moat/open-computer-use1261 repos~3.1kAutomated safety check: PassProprietary

Similar skills

  • 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…

    322 GitHub stars~2.2k tokensUpdated 5 days ago
    Documents & OfficeAuto-check passed
  • Instrument Data To Allotrope

    aws-samples/amazon-bedrock-agents-healthcare-lifesciences

    Official

    Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.

    274 GitHub starsUsed in 2 repos~2.7k tokens
    Documents & OfficeAuto-check passed
  • Code2media

    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).

    280 GitHub stars~956 tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • Research Integrity Audit

    xuzhougeng/wisp-science

    学术审查 / research-integrity screening of a manuscript's figures and reported numbers.

    1k GitHub stars~2.6k tokensUpdated today
    Documents & OfficeAuto-check passed
  • File Reading

    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.

    126 GitHub starsUsed in 1 repo~3.1k tokens
    Documents & OfficeAuto-check passed
  • Reportlab

    jimmc414/Kosmos

    PDF generation toolkit. An agent skill from jimmc414/Kosmos.

    594 GitHub starsUsed in 1 repo~4.2k tokens
    Documents & OfficeAuto-check passed

More from adobe/skills

All 105 skills in this repo
  • Scaffolds, implements, deploys and debugs Adobe Runtime actions in App Builder projects, with templates for webhooks, events, database CRUD, sequences and Asset Compute workers.

    195 GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • 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.

    195 GitHub stars~952 tokensUpdated today
    Auto-check passed
  • Extracts icons, metadata, text, forms, videos and social links from any web page with playwright-cli, with SVG icon classification and cleanup.

    195 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Page Langs

    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…

    195 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Page Prep

    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).

    195 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Page Reduce

    adobe/skills

    Reduce a webpage to a structural skeleton with semantic tokens.

    195 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about Adobe Create Pdfs From Data

What does Adobe Create Pdfs From Data do?

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).

When should I use Adobe Create Pdfs From Data?

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.

How do I install Adobe Create Pdfs From Data in Claude Code?

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.

How do I install Adobe Create Pdfs From Data in Codex?

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.

Can I use Adobe Create Pdfs From Data in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Adobe Create Pdfs From Data need to run?

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.

Does Adobe Create Pdfs From Data access the network?

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.

Is Adobe Create Pdfs From Data safe to install?

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.

What licence does Adobe Create Pdfs From Data use?

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.

How many tokens does Adobe Create Pdfs From Data use?

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.

What are the alternatives to Adobe Create Pdfs From Data?

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.

Who maintains Adobe Create Pdfs From Data?

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.