Agent skill

Print Layout Review

by simonliu-ai-product in simonliu-ai-product/open-doc

Reviews page layout, typography, and pagination code in open-doc against a print craft bar — the sheet is the deliverable, not the screen.

MITAuto-check passedFrontend & Design

Install Print Layout Review

skills CLI
$ npx skills add simonliu-ai-product/open-doc --skill print-layout-review -a claude-code

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

GitHub CLI
$ gh skill install simonliu-ai-product/open-doc print-layout-review --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/simonliu-ai-product/open-doc.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/print-layout-review .claude/skills/print-layout-review && 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
print-layout-review
GitHub stars
108
Token cost
~2k tokens
SKILL.md length
1,168 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Reviews page layout, typography, and pagination code in open-doc against a print craft bar — the sheet is the deliverable, not the screen.

  • Works in 10 steps: One geometry source. Page size comes… → Physical units, honestly. Authors write… → The margin is the text block.… → …
  • Reviewing changes to the flow packer
  • SKILL.md covers Operating posture, The ten non-negotiable standards, Escalation triggers — flag on… and Remedial preference hierarchy, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Print Layout Review is an agent skill from simonliu-ai-product/open-doc. Reviews page layout, typography, and pagination code in open-doc against a print craft bar — the sheet is the deliverable, not the screen. Use when reviewing changes to the flow packer, page geometry, the design system, themes, the exporters, or any document page that has to survive a printer. Default to flagging; approval is earned.

Its SKILL.md is about 2k 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 Frontend & Design, covering Typography and Design systems. The repository describes itself as: The document framework built for agents — write reports as React, get real A4 pages, an outline, page numbers, and a PDF. The licence is MIT.

When your agent uses it

  • Reviewing changes to the flow packer
  • The design system
  • Any document page that has to survive a printer

Example prompts

  • “Use the print-layout-review skill to review page layout, typography, and pagination code in open-doc against a print craft bar — the sheet is the…”
  • “/print-layout-review”

Workflow steps

10 steps, taken from the first numbered list in SKILL.md.

  1. One geometry source. Page size comes from resolvePageGeometry(meta) (app/lib/sdk.ts), which owns both the CSS-pixel box and the @page size…
  2. Physical units, honestly. Authors write CSS px at 96dpi; paper is mm. 1pt ≈ 1.333px, so body: 14 prints at ~10.5pt. Any type below ~9pt…
  3. The margin is the text block. design.margin is the inset from the sheet edge and is the only thing standing between content and a…
  4. Breaks are content-aware. A break that strands a heading at the foot of a page, splits a table from its header row, orphans a single line…
  5. Vertical budget adds up. A fixed page is height − 2 × margin of usable space, minus any running header/footer. A page component that can…
  6. Grayscale-safe. Meaning may never be carried by hue alone — a chart series, a status pill, a diff highlight all have to survive a mono…
  7. Deterministic rendering. Exports serialize whatever the DOM says at that moment. Fonts must be awaited (waitForFonts), images must be…
  8. Two render paths, one result. The viewer, the thumbnails, and both exporters all consume the page list from useDocPages. A fix applied to…
  9. Print CSS lives with the page, not in overrides. @media print hacks that undo layout are a smell — the sheet is the layout. Legitimate…
  10. No screen-only affordances. Viewport units (vh/vw/dvh), position: sticky, scroll containers, hover-only content, overflow: auto inside a…

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    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 no API keys, tokens, secrets or passwords.

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

Context cost

Print Layout Review loads about 2k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 1,168 words of instructions outside code blocks.

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

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 simonliu-ai-product/open-doc at commit af6095d, republished under its MIT licence (© simonliu-ai-product). 1,168 words, ~2,044 tokens.

Download SKILL.mdSave it as .claude/skills/print-layout-review/SKILL.md (or your agent's skills folder).
name
print-layout-review
description
Reviews page layout, typography, and pagination code in open-doc against a print craft bar — the sheet is the deliverable, not the screen. Use when reviewing changes to the flow packer, page geometry, the design system, themes, the exporters, or any document page that has to survive a printer. Default to flagging; approval is earned.

Reviewing print layout

A specialized review skill. It does ONE thing: judge whether rendered output holds up as paper. It does not write features, fix unrelated bugs, or review non-layout code. If asked for a general review, decline and point to a general review skill.

Operating posture

You are a typesetter with a brutal eye. The bar is not "it renders" — it's "a designer would sign this off after it came out of a printer". A page that looks fine in the viewer at 60% zoom and falls apart at 100% on A4, in grayscale, or after the flow packer moves a break, is a regression.

Screen conventions do not transfer. Hover states, scroll affordances, viewport units, dark mode, and lazy loading are all meaningless on a sheet — their presence in page code is itself a finding.

The ten non-negotiable standards

  1. One geometry source. Page size comes from resolvePageGeometry(meta) (app/lib/sdk.ts), which owns both the CSS-pixel box and the @page size descriptor. A hardcoded 794 / 1123 / 210mm anywhere else is a block — it silently breaks B4, A3, and landscape. The allowed sizes are the closed set in PAGE_SIZE_NAMES; a change that restates that list instead of reading it is also a block.

  2. Physical units, honestly. Authors write CSS px at 96dpi; paper is mm. 1pt ≈ 1.333px, so body: 14 prints at ~10.5pt. Any type below ~9pt (12px) in body copy, or a hairline under 0.5pt, is a finding — screens forgive it, toner does not.

  3. The margin is the text block. design.margin is the inset from the sheet edge and is the only thing standing between content and a printer's unprintable border. Content bleeding into the last ~5mm, or a footer sitting outside the margin box, is a finding. Full-bleed is deliberate and must be stated.

  4. Breaks are content-aware. A break that strands a heading at the foot of a page, splits a table from its header row, orphans a single line of a paragraph, or separates a figure from its caption is a finding. paginateBlocks is the pure packer in app/lib/flow.ts — a rule about where it's allowed to break belongs there, unit-tested, not in a component's margins.

  5. Vertical budget adds up. A fixed page is height − 2 × margin of usable space, minus any running header/footer. A page component that can grow past that clips silently. Flag layouts whose height depends on content length without a flow section doing the pagination.

  6. Grayscale-safe. Meaning may never be carried by hue alone — a chart series, a status pill, a diff highlight all have to survive a mono laser printer. Require a second channel: value contrast, pattern, label, or weight. palette.accent on palette.bg must still separate when both collapse to gray.

  7. Deterministic rendering. Exports serialize whatever the DOM says at that moment. Fonts must be awaited (waitForFonts), images must be complete (waitForImages), and anything that paints asynchronously — a chart, a map, a canvas — must expose data-waitfor so waitForDataWaitfor can block on it. Async paint without a data-waitfor handle is a block: it produces a blank rectangle in the PDF and nowhere else.

  8. Two render paths, one result. The viewer, the thumbnails, and both exporters all consume the page list from useDocPages. A fix applied to the viewer that doesn't hold in export-pdf.ts / export-html.ts is half a fix. Any change to page composition must state how it was verified in an actual export.

  9. Print CSS lives with the page, not in overrides. @media print hacks that undo layout are a smell — the sheet is the layout. Legitimate print-only concerns are break-inside, break-after, running headers/footers, and link URL expansion. Anything else is compensating for a screen-first layout.

  10. No screen-only affordances. Viewport units (vh/vw/dvh), position: sticky, scroll containers, hover-only content, overflow: auto inside a page frame, and transitions on page content are all findings. If content can scroll, it can be lost in print.

Show full SKILL.md (522 more words)Show less

Escalation triggers — flag on sight

  • Hardcoded sheet dimensions or @page descriptors outside sdk.ts
  • Font size below 12px (~9pt) in body copy; line-height below 1.3 on a long measure
  • Measure over ~90 characters at body size on a full-width A4 block
  • vh / vw / dvh / % heights inside a page frame
  • overflow: hidden used to make content "fit" (that's clipping, not fitting)
  • Colour as the sole carrier of meaning
  • A chart, image, or web font with no data-waitfor and no completion guarantee
  • Table markup without a repeating <thead> in a flow section
  • margin-top on the first block of a page (already stripped by [data-od-flow-block]:first-child) — re-adding it fights the framework
  • A change to break behaviour with no test in flow.test.ts
  • Page numbers or footers computed per-component instead of via useDocPageNumber / useDocPageCount
  • Absolute positioning used to place a running footer inside content flow

Remedial preference hierarchy

Prefer earlier moves:

  1. Delete the constraint — remove the fixed height, the clip, the screen affordance; let the flow packer do its job.
  2. Move the rule into the packer — a break decision belongs in paginateBlocks with a test, not in ad-hoc spacing.
  3. Fix the geometry source — route through resolvePageGeometry / design tokens (--od-margin, --od-size-*) instead of literals.
  4. Fix the type — size, leading, measure, hierarchy. Most "broken layout" is really a typographic budget problem.
  5. Add the wait handle — data-waitfor on anything painting async.
  6. Add the second channel — pattern or label alongside colour.
  7. Polish — rules, spacing rhythm, caption alignment, footer alignment to the margin box.

Required output

Part 1 — findings table (REQUIRED)
BeforeAfterWhy
height: 100vh on a page sectiondrop it — the page frame already sizes the sheet from resolvePageGeometryViewport units have no meaning on a sheet; the frame owns the box
<table> inside a flow block, no <thead><thead> + break-inside: avoid on rowsA header that doesn't repeat leaves page 2 of a table unreadable
fontSize: 11 on body copyvar(--od-size-body) (14px ≈ 10.5pt)11px prints at ~8pt — below the legibility floor
<Chart /> with no wait handle<div data-waitfor="svg path">Exports serialize the DOM as-is; an unpainted chart exports blank
Part 2 — verdict (REQUIRED)

Group by impact, highest first, omitting empty tiers:

  1. Print-breaking — clipped content, blank exports, geometry hardcoded, unreadable type.
  2. Pagination craft — stranded headings, split tables, orphans/widows, figure/caption splits.
  3. Reproducibility — viewer/export divergence, async paint, font loading.
  4. Legibility & accessibility — measure, leading, contrast, grayscale safety.
  5. Framework fit — bypassing resolvePageGeometry, useDocPages, design tokens, or the ops layer.

Close with Block or Approve. Block on any print-breaking finding, any hardcoded geometry, any async paint without a wait handle, or a break-behaviour change without a test. Cite file:line. Pull exact values from app/lib/sdk.ts and app/lib/design.ts rather than approximating.

Guidelines

  • When judging feel, look at a spread — two facing pages at 100% — not a single page at fit-to-width. Rhythm problems only show up across a break.
  • The strongest fix for a stubborn page is usually less content on it, not tighter leading.
  • If a rule can be expressed as a pure function over block metrics, it belongs in flow.ts with a test. Everything else is a per-document decision and shouldn't be enforced by the framework.

© simonliu-ai-product, MIT. 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 .agents/skills/print-layout-review of simonliu-ai-product/open-doc.

Open the folder on GitHubat commit af6095d

Compare with similar skills

Print Layout Review 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.

Print Layout Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Print Layout Review this skillsimonliu-ai-product/open-doc108—~2kAutomated safety check: PassMIT
Impeccablebestofjs/bestofjs3.1k26 repos~2.6kAutomated safety check: PassMIT
Design SystemOhh-889/skyroc79511 repos~1.7kAutomated safety check: PassMIT
Scalar Design Systemscalar/scalar16k—~2.7kAutomated safety check: PassMIT
Stitch Taste Design Systemgoogle-labs-code/stitch-skills8.5k15 repos~3.1kAutomated safety check: PassApache-2.0
UI/UX Design System AdvisorGalaxy-Dawn/claude-scholar5.7k1 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Impeccable

    bestofjs/bestofjs

    A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…

    3.1k GitHub starsUsed in 26 repos~2.6k tokens
    Frontend & DesignAuto-check passed
  • Design System

    Ohh-889/skyroc

    Token architecture, component specifications, and slide generation.

    795 GitHub starsUsed in 11 repos~1.7k tokens
    Frontend & DesignAuto-check passed
  • Scalar's design system — design tokens, theming (@scalar/themes), CSS variables, and the @scalar/components library.

    16k GitHub stars~2.7k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Stitch Taste Design System

    google-labs-code/stitch-skills

    Official

    Generates a DESIGN.md design-language file for Google Stitch that encodes color, typography, layout, component behavior and motion rules to avoid generic AI-looking UI.

    8.5k GitHub starsUsed in 15 repos~3.1k tokens
    Frontend & DesignAuto-check passed
  • UI/UX Design System Advisor

    Galaxy-Dawn/claude-scholar

    Turns a vague UI request into a concrete design system with style, palette, typography and layout guidance from a search script, plus stack-specific implementation advice.

    5.7k GitHub starsUsed in 1 repo~1.1k tokens
    Frontend & DesignAuto-check passed
  • Use UI Kit

    tetherto/pearpass-app-desktop

    A skill your agent uses whenever creating or editing UI in this repo — React components, modals, dialogs, forms, buttons, inputs, typography, styling, icons, or any .tsx/.jsx work.

    539 GitHub stars~3.3k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check passed

More from simonliu-ai-product/open-doc

  • Apply Comments

    simonliu-ai-product/open-doc

    A skill your agent uses when the user asks to apply, process, or clear the comments they left in the open-doc inspector — phrases like "apply the comments", "apply my edits", "I left notes on the…

    108 GitHub stars~948 tokensUpdated 4 days ago
    Auto-check passed
  • Doc Authoring

    simonliu-ai-product/open-doc

    Technical reference for writing or editing open-doc pages — file contract, the A4/B4/A3 page canvas, print type scale, the vertical budget that decides where a page breaks, tables, charts, table of…

    108 GitHub stars~6.8k tokensUpdated 4 days ago
    Auto-check passed
  • Create Doc

    simonliu-ai-product/open-doc

    A skill your agent uses when the user wants to create, draft, author, or generate a new document, report, whitepaper, proposal, memo, or spec in this open-doc repo.

    108 GitHub stars~2.4k tokensUpdated 4 days ago
    Auto-check passed
  • Current Doc

    simonliu-ai-product/open-doc

    Resolve which document, page, and (optionally) selected element the user is currently viewing in the open-doc dev server.

    108 GitHub stars~1.8k tokensUpdated 4 days ago
    Auto-check passed
  • Doc Runtime Patterns

    simonliu-ai-product/open-doc

    Implementation patterns for the @open-doc/core runtime — the split between the viewer and the published bundle, virtual modules, the flow pipeline, the ops layer, dev-only plugins, and the…

    108 GitHub stars~2.1k tokensUpdated 4 days ago
    Auto-check passed
  • Viewer UI Guidelines

    simonliu-ai-product/open-doc

    Design and accessibility rules for the open-doc viewer chrome — the browser shell, sidebars, thumbnail rail, outline, assets and design panels, inspector overlay, and menus.

    108 GitHub stars~1.6k tokensUpdated 4 days ago
    Auto-check passed

Questions about Print Layout Review

What does Print Layout Review do?

Reviews page layout, typography, and pagination code in open-doc against a print craft bar — the sheet is the deliverable, not the screen. Print Layout Review is an agent skill from simonliu-ai-product/open-doc. Reviews page layout, typography, and pagination code in open-doc against a print craft bar — the sheet is the deliverable, not the screen.

When should I use Print Layout Review?

Print Layout Review fits situations like: reviewing changes to the flow packer; the design system; any document page that has to survive a printer.

How do I install Print Layout Review in Claude Code?

Run `npx skills add simonliu-ai-product/open-doc --skill print-layout-review -a claude-code`. Or copy the skill folder (.agents/skills/print-layout-review in simonliu-ai-product/open-doc) into .claude/skills/print-layout-review in your project. Claude Code loads it when a task matches its description.

How do I install Print Layout Review in Codex?

Run `npx skills add simonliu-ai-product/open-doc --skill print-layout-review -a codex`. Or copy the skill folder (.agents/skills/print-layout-review in simonliu-ai-product/open-doc) into .agents/skills/print-layout-review in your project. Codex loads it when a task matches its description.

Can I use Print Layout Review 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 simonliu-ai-product/open-doc --skill print-layout-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/print-layout-review, .gemini/skills/print-layout-review, .github/skills/print-layout-review and .opencode/skills/print-layout-review in your project.

What does Print Layout Review need to run?

SKILL.md names no scripts, command-line tools or credentials: Print Layout Review is instructions for the agent only.

Does Print Layout Review 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 Print Layout Review 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 Print Layout Review use?

Print Layout Review is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Print Layout Review use?

About 2k tokens (SKILL.md is roughly 8.2k 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 Print Layout Review?

Skills that share tags, products or a category with Print Layout Review: Impeccable (bestofjs/bestofjs, 3.1k stars), Design System (Ohh-889/skyroc, 795 stars), Scalar Design System (scalar/scalar, 16k stars) and Stitch Taste Design System (google-labs-code/stitch-skills, 8.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Print Layout Review?

simonliu-ai-product (a GitHub organization) maintains it in simonliu-ai-product/open-doc, which has 108 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.

Source: simonliu-ai-product/open-doc on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.