File Generator
Documentsfile-generatorFile Generator is an Agent Skill for documents published in the zgiai/zgi repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
Generate downloadable files from provided content, including basic exports, SVG files, styled DOCX documents, HTML-rendered PDFs, and static editable PPTX decks.
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/zgiai/zgi/blob/HEAD/api/internal/modules/skills/catalog/file-generator/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/file-generator, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
File Generator Skill
Use this skill when the user wants an answer delivered as a downloadable file artifact. This skill creates new workflow files; it does not edit an existing uploaded file.
Workflow
- Decide the target file format from the user's request.
- If the user did not specify a format, choose the most appropriate supported format:
- Use
mdfor reports, notes, plans, structured prose, and documentation drafts. - Use
docxwhen the user explicitly asks for Word, an editable document, or a formal document file. - Use
xlsxwhen the user explicitly asks for Excel or a spreadsheet workbook. Provide valid CSV content. - Use
pdfwhen the user explicitly asks for PDF or a simple read-only distribution file. - Use
pptxwhen the user explicitly asks for PowerPoint, slides, a deck, or an editable presentation. - Use
txtfor plain text without formatting. - Use
htmlfor runnable HTML pages or previewable web documents. - Use
svgwhen the user explicitly asks for an SVG/vector image file. - Use
jsonfor machine-readable structured data. - Use
csvfor table-like data.
- Use
- For PDF, DOCX, PPTX, XLSX, and SVG, read the selected format reference before calling a tool. For MD, TXT, JSON, CSV, and HTML, the tool schema and this core skill are sufficient unless advanced format details are needed.
- Use
generate_filefor simple exports. - Use
generate_docxwhen a Word document needs headings, fonts, font sizes, alignment, spacing, page margins, page breaks, colored/bold/underlined text, or simple tables. - Use
generate_pdfwhen a PDF needs richer layout, print CSS, tables, colors, page margins, page breaks, or business-report formatting. - Use
generate_pptxwhen the user needs an editable static PowerPoint deck. - For PPTX, plan the slide layout before writing JSON. Use non-overlapping boxes for titles, text, and tables. Split dense content into more slides instead of shrinking text or stacking elements.
- For PPTX with Chinese or other dense text, treat "more text" as more slides, not denser text boxes. Keep body paragraphs short; use bullets, columns, or additional slides before exceeding the readable capacity of a box.
- Before calling
generate_pptx, self-check that each slide's readable content fits within the slide bounds, does not overlap, uses explicitx,y,w, andhwhen the layout matters, and avoids long unbroken lines. - Always create a temporary downloadable artifact. This skill does not write generated output into File Management.
- If the user explicitly asks to save, create, upload, add, or import the generated result into File Management or the current Files page, first generate the artifact here, then use
file-manager/save_file_to_managementwith the returnedtool_file_id/file_idand destination filename. - In the final answer, briefly mention the generated filename and format.
- Do not invent, rewrite, shorten, or manually format download links. The system UI displays generated file download controls from structured artifact events.
References
Read exactly one reference after choosing a complex target format. References for MD, TXT, JSON, CSV, and HTML are optional and should be read only when the request needs format-specific details:
| Requested format | Read reference |
|---|---|
txt, text | format-txt.md |
md, markdown | format-md.md |
html, htm | format-html.md |
json | format-json.md |
csv | format-csv.md |
svg | format-svg.md |
simple docx, word | format-docx.md |
styled docx, word | format-docx-rich.md |
xlsx, excel | format-xlsx.md |
simple pdf | format-pdf.md |
HTML-rendered pdf | format-pdf-html.md |
pptx, powerpoint, presentation, slides | format-pptx.md |
Constraints
- The skill creates new files only. It does not edit existing uploaded files or preserve an existing template.
- Do not call
generate_docx,generate_pdf,generate_pptx, or complexgenerate_fileformats (XLSX or SVG) until the selected format reference has been read. MD, TXT, JSON, CSV, and HTML generation may proceed directly from the core skill and tool schema. generate_fileaccepts only its documented simple parameters. Do not invent format-specific parameters such assheets,styles,pages,columns,headers, ormetadata. XLSX output applies the default table styling documented informat-xlsx.md; the caller cannot customize those styles throughgenerate_file.generate_docxaccepts a JSON string document specification. Do not pass raw Markdown or HTML asdocument.generate_pdfaccepts self-contained HTML and optional inline CSS. Do not pass JSON document specs.generate_pptxaccepts a JSON string presentation specification. Do not pass HTML or Markdown aspresentation.- PPTX readable content should not use negative coordinates. Negative
xoryis only appropriate for decorative shapes that intentionally bleed off an edge. - Generated file content must fit within the backend file size limit.
- Do not include filesystem paths in filenames.
- Do not claim a file was generated unless the tool call succeeded.
- Treat the generated tool result as authoritative. A generated file is successful only when the result includes a file identity such as
file_idortool_file_id, plus a filename/format or an equivalent artifact record. - If the generation tool fails or returns no artifact identity, do not say the file was generated. Explain the actual failure or missing confirmation.
- Retry at most once with corrected content or arguments when the tool error is recoverable. Do not repeat the same generation call with identical arguments after a failure.
- If the user asks for advanced document features that the selected reference says are unsupported, generate the closest supported file only when that still satisfies the request.
Tool Usage
generate_file accepts:
content: text content to write into the file.format:txt,md,html,json,csv,svg,docx,xlsx, orpdf.filename: optional display filename. The extension is added automatically.title: optional title used by generated HTML, XLSX, and PDF files. For XLSX, this becomes a merged title row above the table.lifecycle: optional temporary artifact lifecycle,persistentortemporary. Defaults totemporary.
generate_docx accepts:
document: JSON string describing the styled DOCX document.filename: optional display filename. The.docxextension is added automatically.title: optional title hint. Visible content must be indocument.blocks.lifecycle: optional temporary artifact lifecycle,persistentortemporary. Defaults totemporary.
generate_pdf accepts:
html: self-contained HTML body or full HTML document.css: optional inline CSS appended to the document.filename: optional display filename. The.pdfextension is added automatically.title: optional title used when wrapping an HTML fragment. Visible content must be inhtml.lifecycle: optional temporary artifact lifecycle,persistentortemporary. Defaults totemporary.
generate_pptx accepts:
presentation: JSON string describing the editable static PPTX deck.filename: optional display filename. The.pptxextension is added automatically.title: optional title hint. Visible content must be inpresentation.slides.lifecycle: optional temporary artifact lifecycle,persistentortemporary. Defaults totemporary.