Skip to content

Kami: Constraint-Based Document Design for AI

3 min read

Today I discovered Kami (紙, “paper” in Japanese), a design system and Claude Code skill that solves the “every AI-generated document looks like generic gray garbage” problem. The fix isn’t better prompting. It’s better constraints. Same thesis I explored with Impeccable for UI code and Effective HTML + Archify for diagrams, but applied to documents: resumes, reports, slide decks, landing pages.

The Core Idea

AI is already good at content. The problem is presentation. Without a ruleset, every generation looks different. Ask Claude to “make a one-pager” ten times and you get ten visually inconsistent layouts. Kami fixes this by providing a strict but small design language: colors, type, spacing, and components that any agent can follow reliably.

If DESIGN.md is the constraint file for UI components and Impeccable is the quality gate for frontend code, Kami is the equivalent for print-ready documents. Same pattern: text-native specifications that agents read before generating output. The difference is the surface area. DESIGN.md constrains your app’s look. Kami constrains your deliverables’ look.

It’s part of a trilogy by tw93: Kaku writes code, Waza drills habits, and Kami delivers documents.

Setup

# Install as a Claude Code skill
npx skills add tw93/kami -a claude-code -g -y

Once installed, no slash command needed. Natural prompts auto-trigger it: “make a one-pager for my startup”, “turn this research into a long doc”, “design a slide deck for my talk.”

The Design Language

The visual system is deliberately minimal:

ElementConstraint
BackgroundParchment #f5f4ed (never pure white)
AccentInk blue #1B365D (single color, no alternates)
NeutralsWarm only (no cool gray)
TypographySerif-led hierarchy (Charter EN, YuMincho JP)
ShadowsRing and “whisper” only (no hard drop shadows)
Spacing4pt grid with named scales (xs-3xl)

What It Produces

Kami supports ten document templates: one-pagers, long documents, letters, portfolios, resumes, slides, equity reports, changelogs, and landing pages. Outputs are HTML exportable to PDF, PNG, or editable PPTX. It also includes fourteen inline SVG diagram types (architecture, flowcharts, bar charts, donut charts) embedded directly in the doc. The HTML-as-output thesis applies here too: agents produce better visual artifacts when they write to a format they can read.

For personalization, you can create ~/.config/kami/brand.md with your identity context (name, brand color, tone, page size). Kami uses it only when the request is ambiguous, so your documents feel consistently “yours” without becoming clones of each other.

The Pattern Keeps Repeating

This is now four data points in the same direction:

ToolSurfaceConstraint Mechanism
DESIGN.mdUI componentsToken file in repo root
ImpeccableFrontend code25 anti-pattern rules + scanner
Effective HTML / ArchifyDiagramsReference example corpus
KamiDocumentsStrict design language + brand profile

The mechanism varies but the thesis is identical: AI agents produce consistently better output when you shrink the design space rather than expand the prompt. Skills with bundled taste beat long prompts describing taste.

What I Learned

  • Constraints beat freedom for consistent AI output. The smaller the design space, the more reliable the results
  • The parchment + ink blue + serif formula works because it references editorial print design, not web defaults
  • Auto-triggering from natural language means zero friction. No slash commands, no template selection
  • The brand profile concept (~/.config/kami/brand.md) mirrors DESIGN.md’s role for apps: low-resolution identity that influences without dominating
  • Kami works across Claude Code, Codex, OpenCode, and Claude Desktop. One design system, many agents
  • The constraint-based skill pattern is converging across every output type: UI, diagrams, video (HyperFrames), and now documents

Building with AI design skills? I’d love to hear what document workflows you’re automating. Reach out on LinkedIn.