Part 1 of 5

Runbooks

In operations, a runbook is a written procedure you can hand to anyone — or run yourself next month without re-thinking it. Here are three I actually use, with the real prompts to paste at each step. Expand one and follow along.

Notice the thread running through all three: each one produces a machine-readable twin of your work — structured data you can re-run and refresh. That's the habit from Part 4, in practice.

Build a web page

Build a design system first, then the page on top of it — design it, build it, deploy it.

Claude Design Claude Code Cloudflare EmDash (CMS) pricing in Tools I Use
1

Start with a design system, not a page

Before you design a single page, decide how everything should look and sound. Ask Claude Design to help you build a small design system — your color palette, typography, and voice — that every page will then inherit. Decide your look once, deliberately, instead of re-deciding it on every page.

Two good ways to choose colors and fonts: do a little research in Perplexity first (pricing in Tools I Use) and bring your findings, or ask Claude Design to point you to trusted resources — like Coolors and Adobe Color for palettes, Google Fonts and Fontpair for type — and more besides.

Paste into Claude Design
Help me create a small design system for my library's website,
before we design any pages. Keep it to three things:

- Color palette: a primary, a secondary, an accent, and a few
  neutrals — with good contrast for accessibility.
- Typography: a heading font and a body font that pair well,
  with a simple size scale.
- Voice & tone: a few lines on how our copy should sound
  (for us: warm, plain-language, and welcoming).

For the colors and fonts: I may bring research I did in Perplexity.
If I haven't, suggest a few reputable resources I can use to choose
a palette and pair fonts, and we'll decide together.

Save this as a design system I can reuse for every page.
2

Design the page on top of your system

Now build the actual page — in the same Claude Design workspace, so the system carries over as context. Describe the page in plain language and tell it to use the foundation you just built. Everything inherits your palette, type, and voice automatically, so it's consistent from the first draft.

Paste into Claude Design
Using the design system we just created, design a single web page
for my library's [summer reading program].

Audience: [families with kids ages 5–12].
Include: a warm hero with the program name and dates, a "how it
works" section in 3 steps, a sign-up call-to-action, and a footer
with our branch address and hours.

Apply the palette, typography, and voice from the design system.
Build it as a Design Component I can keep iterating on, and use
placeholder images where photos will go.
3

Iterate by talking, not coding

React to what you see. "Make the hero calmer." "Add a section for volunteer sign-ups." "The dates should be more prominent." Keep going until it's right — this is the reference interview, applied to a web page.

4

Hand it to Claude Code to make a real site

Export the design, then open Claude Code in that folder and ask it to turn the design into a deployable site and set up version control.

Paste into Claude Code
Take the HTML design in this folder and turn it into a static
website I can deploy to Cloudflare Pages.

- Keep the markup and styling as-is.
- Wire up any navigation links between pages.
- Put the finished site in a /dist folder.
- Initialize a git repository and make a first commit.
- Add a short README.md with the exact deploy command.
5

Deploy to Cloudflare Pages

One command publishes it to the web. Claude Code can run this for you — or you can paste it into your terminal yourself.

Run in your terminal
npx wrangler pages deploy ./dist --project-name=my-library-page

Expect a browser pop-up the first time. When Claude Code — or CoWork — runs this, it will pause and open a browser window asking you to log in to Cloudflare and approve. That's normal and a good thing: the agent never sees your password, so this is your moment to sign in and stay in control. Approve it, and the deploy continues on its own.

6

Put it behind a CMS (Content Management System) so anyone can edit it

A deployed folder is great for you, but not for the colleague who needs to change the dates next month. Connect a content management system so the words and images become editable in a friendly admin screen — no code, no terminal.

My recommendation: EmDash, hosted on Cloudflare. It's the CMS I reach for — it sits right alongside the Cloudflare deploy you just did, so there's nothing new to host, and it lets non-technical colleagues update content safely. It's how this very site is published. (Pricing in Tools I Use.)

What you get: a real, public web page that you and your colleagues can edit any time. Next year's program is an edit, not a rebuild.

Turn a newsletter into a dashboard

Give your agent its own inbox, subscribe it to the ALA JobLIST postings, and let CoWork turn each issue into a filterable, refreshable view.

Claude CoWork Google Workspace / Gmail pricing in Tools I Use

The idea: give your agent its own inbox. Instead of pasting a newsletter in every month, route it to a dedicated email account and let CoWork read it for you. The data comes to the agent, on a schedule the publisher already runs — and you never copy-paste again.

1

Give your agent its own inbox

Create a dedicated email account just for your AI — a new mailbox in your library's Google Workspace if you have one (your IT admin can add it), or a free Gmail account if you don't. Then subscribe to the newsletter with that address. For this example, set up ALA JobLIST email job alerts sent to it. From now on, every issue lands in one clean, single-purpose inbox.

2

Connect CoWork to that inbox — read-only

CoWork can connect directly to that email account and read what's in it — no copy-paste. The important part comes when you connect it: you decide what the agent is allowed to do.

Grant read-only access — and nothing more. This job only needs permission to read the inbox. Withhold the ability to send email entirely. Your agent can look, but it can never write or speak on your behalf. Pair that with a single-purpose inbox and the worst case is simply: "it read a public newsletter." That's the whole point of giving the agent its own account.

3

Have CoWork read the inbox and extract the data — the twin

A newsletter is written for humans. Before you can build anything, it has to become structured data. Point CoWork at the inbox and ask for clean JSON.

Paste into CoWork
In the [your agent's inbox address] inbox, find the most recent
ALA JobLIST job-postings email.

Extract every job posting into a JSON array. For each posting include:
title, institution, location (city, state), type (full-time / part-time),
salary (the text as written, or null), posted_date, and url.

If a field is missing, use null. Don't invent anything. Return only the
JSON — no commentary.
4

Build the dashboard from the data

Now that the data is structured, the view is easy. Ask for a single self-contained file so you can open it anywhere or email it to a colleague.

Paste into CoWork
Using the JSON of job postings, build a single-file HTML dashboard.

- A sortable table of all postings.
- Filters for state and job type.
- A small summary bar: total postings and a count by state.
- Keep the JSON embedded in the file so it works offline.

Make it clean and readable — librarian audience, not developers.
5

Refresh — put it on a schedule

Don't even run it yourself. CoWork has a built-in scheduled task feature — set one up once and the dashboard rebuilds on its own, say the first of every month. The inbox fills itself; now the refresh runs itself too.

Create a scheduled task in CoWork
Set up a scheduled task that runs on the 1st of every month:

1. Check the [your agent's inbox address] inbox for any new ALA
   JobLIST emails since the last run.
2. Extract them into the same JSON shape we've been using.
3. Merge with the existing data and remove duplicates (match on url).
4. Regenerate the dashboard and save it.

If there are no new emails, do nothing.

What you get: the job market is just one example — this works for any newsletter you track. We all skim a whole issue hunting for the few things we actually need; the dashboard does that scanning and filtering for you, every time, fed by an inbox that fills itself and a scheduled task that runs itself.

Automate a Microsoft Word report

Design the look once in Word; let the words flow in from a Markdown file, every quarter, automatically.

Claude CoWork Microsoft Word pricing in Tools I Use

The idea: separate the look from the words. The hard part of a polished report isn't the writing — it's the formatting: the cover page, the heading styles, the table borders, the page numbers in the footer. So do that part once, by hand, in the tool built for it — Word. Then never touch it again.

From then on, each new report is just fresh content poured into that frozen design. The styling can never drift, because nobody re-formats anything.

Two words you'll see — in plain English

{{ phEmpty }}

Jinja placeholder. A labeled blank — a fill-in-the-blank you write right into the Word doc, like
{{ phReportTitle }}. The automation finds each blank and drops in this report's value.

python-docx-template. A small, free tool that opens your styled Word file, fills in the blanks, and saves a finished .docx — keeping every style intact. You won't install or run it by hand; you'll ask CoWork to, and it handles the rest.

1

Build one real report in Word — and make it beautiful

Start from a typical report — say a quarterly usage report. Put in everything you'll reuse: cover page, headings, body text, lists, tables, header and footer, page numbers. Use real sample content so you can judge it with your own eyes, and lean on Word's built-in Styles (Heading 1, Normal, a table style) rather than formatting each line by hand — that's what lets the look carry over automatically.

2

Freeze it as your approved look

When it looks right, stop. Save a backup copy and treat this as the locked visual reference. Skim once to confirm the formatting is style-driven and consistent — headings, spacing, tables, header/footer all behaving — before you change a single word.

Save it as an ordinary .docx file — not a .dotx Word template. The automation tool reads a plain .docx, so keeping it in that format is what lets the Python step open and fill it cleanly.

3

Swap the sample words for blanks

Now go through the doc and replace just the parts that change each time with placeholders. You're editing text only — the placeholder sits in the same spot and inherits the same style, so the look is untouched.

Sample text in Word Becomes a blank
Q2 2026 Usage Report {{ phReportTitle }}
Prepared by Library Services Team Prepared by {{ phPreparedBy }}
"Circulation rose 8% this quarter…" (sample paragraph) {{ phExecSummary }}
4

Write a field index — the contract

Keep one small Markdown file listing every blank and what goes in it. It's the single source of truth that keeps your Word template and your content file speaking the same language — and it's a textbook machine-readable twin (Part 4): the human-readable contract for a machine-readable job.

template-fields.md (save this)
# Template fields — Quarterly Usage Report

- report_title    — Full report title (e.g. "Q2 2026 Usage Report")
- quarter          — Quarter, e.g. "Q2"
- year             — Four-digit year, e.g. "2026"
- prepared_by      — Name of the person or team
- prepared_date    — Date prepared, written out
- executive_summary — 2–3 sentence overview of the quarter
- key_findings     — Bulleted list of the main takeaways
- recommendations  — Bulleted list of suggested next steps
5

Let CoWork pour the content in

Put three files in a folder — the styled Word template, this quarter's content as Markdown, and the field index — and point CoWork at them. Notice the guardrails: it stops and asks rather than inventing a missing value, and reports anything that doesn't line up.

Paste into CoWork
Generate a Word report from my styled template using python-docx-template.

In this folder:
- the styled Word template with {{ phEmpty }} placeholders
- this quarter's content as a Markdown file
- template-fields.md — the authoritative list of fields

Please:
1. Fill only the placeholders listed in template-fields.md, pulling
   values from the Markdown content.
2. Keep every Word style exactly as-is — don't hard-code any fonts,
   sizes, colors, or spacing.
3. If a required field has no value, STOP and tell me which one —
   don't guess.
4. Save a new .docx (don't modify the template), and give me a short
   summary: which fields were filled, plus any unused content or
   placeholder/index mismatches.

What you get: a board-ready Word file, perfectly styled, in seconds — the design frozen, the words fresh. The quarterly report is just one example: this fits any recurring document, and especially shines on the ones you dread. You could even adapt it to a newsletter whose content is gathered from emails — the same template, filled from a different source.