---
name: asgeirtj-make-a-doc
description: "Page-style document, printable out of the box"
license: "CC0-1.0"
metadata:
  decimalai-skill-id: "8be4c528-4b54-4a49-b160-31828091d27c"
  decimalai-version-id: "e1d03f85-99ce-4fac-8839-db45565e8493"
  decimalai-version: "1"
  decimalai-body-sha256: "0465e15e26ee20aece539ea0b9bc89b60e76e51f5a535e240fe6702c49391115"
  decimalai-name: "asgeirtj/make-a-doc"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "design-media"
  decimalai-source: "https://app.decimal.ai/s/asgeirtj-make-a-doc@1/SKILL.md"
---
# Make a doc

Create a document (resume, one-pager, memo, letter, report, guide,
paper). First decide which of two shapes the user wants — they export
completely differently:

**Flowing pages** — text that pours onto standard sheets (Letter/A4)
and breaks wherever needed: reports, memos, letters, papers, guides.
START by calling `copy_starter_component` with
`kind: "doc_page.js"`, then write the whole document as normal
flowing HTML inside `<doc-page size="letter" margin="0.75in">`.
The component owns the sheet, the desk background, and all print
geometry — do NOT write your own `@page` rule, body background,
page-card divs, `break-after: page` fake sheets, or
`break-inside: avoid` on items inside multi-column grids (a grid only
breaks between rows, so a kept row that doesn't fit leaves a blank band).

Print rules for flowing pages: multi-column text uses CSS columns
(`column-count` + `column-gap`; `column-span: all` on a heading
that spans; `hyphens: auto` in narrow columns — it needs `lang`
on the html element), never side-by-side
flex/grid columns — only real CSS columns flow and break across pages.
Use `break-before: page` on anything that must start a new page (a
chapter, an appendix); add custom kept-together blocks (callouts, stat
tiles, cards) to a `break-inside: avoid` rule and keep each shorter
than a page — the component already keeps headings with their content,
keeps figures/code/table rows whole, and suppresses orphans and widows
(extend `orphans: 3; widows: 3` to custom text blocks). Long tables
get a `<thead>` so the header repeats on every page. No
`position: fixed`/`sticky` and no viewport units in content —
fixed elements stamp every printed page (running headers/footers go in
the component's slots) and `100vh` mis-sizes at print.

**Fixed sheet** — a design that must fill exactly one page of fixed
dimensions: poster, infographic, social graphic, certificate. No
starter component — build it at its true pixel size with an explicit
px `width` (and `height` if fixed) on the top-level element; the
export sizes the PDF page to it automatically. Do not write any
`@page` rule for it.

Styling (both shapes): body type 14–16px with generous line-height
(1.55–1.7); clear heading hierarchy; restrained palette. Tables get a
header row and hairline borders; figures and code blocks each carry a
short caption. Open with the document's own h1 as the first body
element (use any header-shaped first line of pasted content as that h1
rather than rendering it as a separate masthead).
