Happy Path Works
Document Ops · setup guide · last updated October 29, 2026

Meeting agendas

Builds the agenda for a committee, board or workgroup meeting as a Word document in your brand. Attach last meeting’s minutes and ask for the next agenda. It builds agendas, not minutes.

Before you start

A Claude plan with code execution turned on (Setup, step 1), the brand setup run once, and three things to hand: the committee’s name, the meeting date, and the members with their roles, from the charter or the last minutes.

Add the skill

In the Claude web or desktop app, select Customize, then Skills › Add › Upload skill, and upload agenda-builder.skill from your download. Every upload tested so far used the file renamed to agenda-builder.zip; if the .skill file is not accepted, rename it and upload again. Setup walks through the screens.

Tested in Claude Code, the claude.ai web app and the Claude desktop app. See compatibility.

Ask for an agenda

Ask for it by name, “Build the agenda for…”, with the committee and the date. Attach last meeting’s minutes, or list the items yourself. If the brand setup gave you brand.json and logo.png to keep, attach both, with their names unchanged.

Give it the member list. If you do not, it asks for one rather than writing its own: a list of names nobody supplied looks official on a branded page, and it is not.

Ask for minutes, a record of what already happened, and it builds nothing and tells you it makes agendas only. A meeting with no standing members, such as a one-off briefing, gets a question too. A PDF, a spreadsheet or a slide deck is another skill’s job.

What comes back

A Word file with the meeting date in its name, such as ROAST_OPS_Safety_Committee_AGENDA_2026-04-23.docx. In the same reply Claude says which brand it used, or that it used the neutral colors, and whether it checked how the pages break.

Worked example

One request, typed into a new claude.ai chat with brand.json attached. ROAST WORKS is an invented coffee roastery.

What was typed

Build the agenda for our Safety Committee meeting on April 23, 2026, 10:00 to 11:00 AM, in the Roastery Conference Room with a video link. Members: - Carol Jensen, Operations Manager, Chair - Greg Hollis, Roastery Lead - Dana Whitaker, Facilities - Brian Keller, Packaging Supervisor - Steve Larson, Delivery Fleet Lead Joining for this meeting only: Ellen Brooks, our insurance broker. Items: 1. Approve the minutes from the March 19, 2026 meeting: corrections, then a motion to approve. 2. Open action items, one line each; anything that needs discussion becomes its own item. Loading-dock lighting survey (Facilities): quotes are in, waiting on a second bid before a recommendation. Forklift refresher training (Roastery Lead): six of nine operators done. 3. Q2 incident review. Two recordable incidents since the last meeting: the packaging line pinch-point injury on April 2, and the delivery vehicle backing incident on April 11. We look at cause and countermeasure, not blame. We need a decision: adopt the revised backing-and-spotting procedure for the delivery fleet, or send it back for another revision. Deciding today keeps driver retraining inside Q2; putting it off pushes it to Q3. 4. Insurance broker walkthrough: Ellen presents what she found on the March site walk, by area, and which items affect our renewal and which don't. Consent agenda: the monthly inspection log is filed with no exceptions, and the eyewash station service record is current. Our goals for the year: - Reduce recordable incidents by 20 percent against the 2025 baseline - Forklift refresher training done for every operator by June 30, 2026 - Close every open corrective action within 45 days of it being raised I've attached our brand file (brand.json).

What came back

[…] ROAST_OPS_Safety_Committee_AGENDA_2026-04-23.docx is ready. Check: agenda_check PASS, clean. Header, filename and closing dates all match, and no member rows are bolded. Brand kit: your brand.json (ROAST prefix, OPS segment). The kit has no logo, so the header shows the org name in text. Pagination: checked in LibreOffice. It runs two pages, with all four items and the backing-procedure decision callout on page 1, and consent, goals and open forum on page 2. Not checked by any tool: the roster and roles. I took those straight from your message. One flag: April 23, 2026 was six months ago. If this is the template run for a meeting that already happened, fine. If you meant a meeting that’s coming up, the date is wrong and I can change it.

The file: ROAST_OPS_Safety_Committee_AGENDA_2026-04-23.docx, 2 pages.

Page 1 of the Safety Committee agenda that request produced

Page 1 of what came back.

What gets checked

Before you get the file, the skill checks it. The file goes out only when every check passes:

  • the meeting date at the top matches the date in the file name;
  • the closing line carries this meeting’s date, not one left over from the last agenda;
  • no member’s name is in bold: bold marks who attended, and that is added after the meeting;
  • the file name follows your brand’s naming pattern, with a real calendar date;
  • every table and picture fits the page.

What no check can tell you: whether the member list is right, and whether the items came from the right minutes. Check both against the charter and the last minutes before you send it.

If it looks wrong

It says the skill’s files are missing. Once in testing, a chat loaded the skill’s instructions without its files. Claude stopped and said so rather than build an unchecked copy. The same request in a new chat worked.

It is in plain colors, not your brand. The skill did not find your brand. Attach brand.json and logo.png and ask again.

It asked for the members. That is on purpose. Paste the list with each person’s role, or attach the charter.

Claude answered like a normal chat. Ask for the agenda by name. If it still does not start, see Setup, “When it doesn’t work”.

Using Claude Code instead

Extract the .skill file into your skills folder: ~/.claude/skills/ for every project, or .claude/skills/ inside one. A skill in that folder does not reach your claude.ai account, and one on your account does not reach that folder.

Needs Node on the machine; the pack is tested on Node 20 and Node 24. Nothing else to install: the one library the skill uses ships inside it.

The skill reads your brand from brand.json and logo.png, looking in this order and stopping at the first hit: the path in HPW_BRAND_KIT, the folder you build from, any folder above it, then the neutral defaults.

To confirm the install, run this from the folder you will build in. Exit 0 means every file is present:

$ node <skill folder>/check_deps.js

To prove it end to end, build the shipped sample from a folder outside the skill. It builds the sample and checks it; expect PASS — clean:

$ node <skill folder>/examples/agenda-sample/build_sample_agenda.js