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
docxonly when the user explicitly asks for Word, DOCX, an editable Word document, or Word-specific rich formatting. - 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 building the structured presentation object. 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. - For file-first requests, put the complete body directly in the generation tool call. Do not first emit the same complete body through
submit_intermediate_answer. Only show the complete body in chat as well when the user explicitly asks to see both the chat text and the file. - After the required format reference is read and the source material is sufficient, call the selected generation tool immediately. On that tool-calling turn, leave ordinary assistant content empty; do not first draft or duplicate the report, analysis, or document body outside the tool arguments.
- 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.
- A generic request for a "file" or "document" does not imply Word. When the content is structured prose and no format is specified, use
generate_filewithmd; usetxtonly when formatting is unnecessary. - If a generation call fails schema validation, correct the selected tool's arguments and retry it at most once. Do not switch to another format-specific tool merely to bypass a missing required argument.
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 structured document object. Do not stringify it, and do not pass raw Markdown or HTML asdocument.- Do not call
generate_docxunless the user explicitly requested Word/DOCX, an editable Word document, or Word-specific rich formatting. A generic request to "write this as a file/document" should usegenerate_filewithmd(ortxtfor plain text). generate_pdfaccepts self-contained HTML and optional inline CSS. Do not pass JSON document specs.generate_pptxaccepts a structured presentation object. Do not stringify it, and 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: structured object describing the styled DOCX document.filename: optional display filename. The.docxextension is added automatically.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: structured object describing the editable static PPTX deck.filename: optional display filename. The.pptxextension is added automatically.lifecycle: optional temporary artifact lifecycle,persistentortemporary. Defaults totemporary.