---
title: "AI Lab Project Building Part 4: Agent Agenda"
date: 2026-03-30
summary: Agent Agenda is a composable editor for agent configuration documents, personas, skills, rules, and tools, with AI assistance only where it removes blank-page friction and never where it removes your decisions.
status: published
tags: ai lab, agent agenda, agent configuration, composable ui, prompt contracts, testing
mediaSourcePath: /ai-lab/agent-workflow/app.html
mediaSourceSelector: .agent-agenda-layout, main
mediaSourceTheme: dark
imageAlt: Agent Agenda's category tabs, domains, and linked components.
imageCaption: Structured enough to be consistent, editable enough to be real, exportable enough to be useful.
---

# AI Lab Project Building Part 4: Agent Agenda

Agent Agenda is the most compositional thing in the AI Lab. The goal is to help you assemble an agent configuration document from reusable blocks rather than writing a wall of instructions from scratch, and to keep you in charge of every block.

I built it because I was writing these documents by hand for my own repos, the `AGENTS.md` and `CLAUDE.md` files that tell an assistant what it is and isn't for, and the structure kept repeating.

## Blocks, not one big prompt

The workbench at [/ai-lab/agent-workflow/app.html](/ai-lab/agent-workflow/app.html) organizes an agenda into four categories: personas, skills, rules, and tools. Each category holds domains, each domain holds components, and components can link across categories in both directions. A rule can reference the tool it constrains. A skill can reference the persona that owns it.

Categories can be enabled or disabled per agenda, and the export copies only the enabled ones. That sounds minor until you're drafting a configuration for two different assistants and want to hand each one only the parts it needs.

## AI where it helps, and nowhere else

There are exactly four generation actions, and every one is a click:

- generate a domain scaffold
- draft a single component
- fill in default attributes for a component
- expand one specific attribute

Nothing runs on its own. There's no "generate my whole agenda" button, on purpose. The backend contract, `agentAgenda.generate.v1`, returns strict JSON keyed by action type, so each action produces one predictable shape the UI can merge into the existing document without clobbering what you've already written.

Most agent-builder tools I've tried either over-automate or under-structure. Over-automation produces a plausible document you didn't author and won't maintain. Under-structure produces a blank page. The middle path is a structured editor with targeted assistance, and that's what this is.

## State

The agenda persists under `ai-lab-agent-agenda-state`. The UI state is explicit and stored with it: which category tab is active, which component is selected, which sections are expanded. Long editing sessions resume where they left off. Manual CRUD works for everything, domains and components alike, so the AI actions are additive rather than required.

## Testing a composable UI

The layering matches the other apps. Unit tests cover parsing, normalization, and the export helper. Integration tests assert the prompt key, the model tier, and the action sequence. The end-to-end spec walks a full workflow, then checks copy and export, accessibility, contrast, and responsive scrolling. A UI-controls spec covers tabs, toggles, manual add and remove, theme, privacy panel, and copy wiring.

The bidirectional linking got its own attention. Linking component A to component B has to update B's link list too, and unlinking has to remove both. It's the kind of invariant that's easy to get right on the happy path and wrong the moment someone deletes a component that other components point at.

## Where it points

This app is closest to the work I do at my day job, where the team's AI configuration lives as version-controlled Rules, Profiles, and Prompts. Agent Agenda is the same idea with an editor around it. Structured enough to be consistent across a team, editable enough to reflect real constraints, exportable enough to drop into a repo.

- Previous: [AI Lab Project Building Part 3: Problem Solver](/blog/ai-lab-project-building-part-3-problem-solver/)
- Next: [AI Lab Project Building Part 5: Iterative Engineering with AI Assistants](/blog/ai-lab-project-building-part-5-iterative-engineering-with-ai-assistants/)
