description: Add a frontend app (Next.js) to an existing workstream using a SPEC-PROVIDER starter pack
UI Add
Add a frontend app to an existing workstream. Fills the gap where a workstream exists but needs a new UI — a payment UI for the payments workstream, an admin panel for ops, etc.
Uses the SPEC-PROVIDER pattern: the SPEC is the skill invocation (name + workstream + port), the PROVIDER is the starter pack at claude/starter-packs/<type>/.
Arguments
- $ARGUMENTS:
<name>— kebab-case app name (becomesapps/<name>/). Followed by:--workstream <ws>— existing workstream name [required]--type <provider>— starter pack [default:nextjs-app]--port <num>— host port [default: next free in 4100–4199]--base-path <path>— Next.js basePath [default:/<name>]--dry-run— preview all writes without making changes
Examples
/ui-add payments-ui --workstream payments --dry-run
/ui-add admin --workstream ops --port 4150
/ui-add marketing --workstream marketing --base-path /mkt
What it does
- Validates name (kebab-case, not reserved), workstream (exists), starter pack (exists), no collision (
apps/<name>/must not exist) - Allocates a free port in the frontend range (4100–4199) by scanning
docker-compose.dev.yml, unless--portis provided - Invokes the starter pack's
install.shwhich scaffolds the app files - Updates
agency/config/topology.yaml— adds afrontendservice entry withwires_from: [backend] - Reports next steps (e.g. pnpm install, pnpm dev — actual commands depend on your configured package manager)
What it does NOT do (v1)
- Does not edit
docker-compose.dev.yml— add the service block manually if needed for the full stack - Does not install deps (run your package manager's install at repo root, e.g.
pnpm install) - Does not init shadcn/Tailwind (uses
@of/uiworkspace package instead) - Does not wire Vercel / Fly.io (cloud providers are separate)
- Does not update agency.yaml
Idempotency
- Safe to re-run on
--dry-run - Refuses to write over existing files (non-zero exit if
apps/<name>/exists) - Topology patch is idempotent: reports "already present" if the service is in topology.yaml with matching fields
Available starter packs
- nextjs-app (v1 default) — Next.js 16 + React 19 +
@of/uiworkspace, Dockerfile,basePath: /<name>
Instructions
Step 1: Parse and validate
Run ./agency/tools/ui-add $ARGUMENTS and relay the output.
The tool handles validation. If it fails, relay the error verbatim.
Step 2: Report
On success, the tool prints a "Next steps" block. Relay it to the user.
Step 3: Report changed files
List the files the scaffold created/modified so the principal can review before committing. Do NOT auto-commit — commit policy is the principal's decision, consistent with /workstream-create which ends at a report + hand-off.
Changed files for a non-dry-run:
apps/<name>/(new directory, 9 files)agency/config/topology.yaml(modified — new frontend entry)
The principal decides whether to run /iteration-complete immediately, extend docker-compose.dev.yml to include the new app first, or fold the scaffold into a larger iteration.
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.