Skip to content

Workspace patterns

Alfred can run against one repo, a multi-repo product workspace, or a specs-led workspace. The important part is making the repo scope explicit.

This page mirrors the full GitHub guide: docs/WORKSPACE_PATTERNS.md.

For a deeper spec workflow, read Specs-driven development.

~/code/
alfred-os/
product/
api/
web/
mobile/
specs/

Set WORKSPACE_ROOT=~/code. Repo-operating agents look under $WORKSPACE_ROOT/product/<repo>.

Terminal window
./bin/alfred-init.py \
--non-interactive \
--agents all \
--repos my-org/my-app \
--slack-webhook skip

Use this for one app, one library, or one Mac/iOS app repo.

Terminal window
./bin/alfred-init.py \
--non-interactive \
--agents all \
--repos my-org/api,my-org/web,my-org/mobile \
--slack-webhook skip

The full fleet receives the selected repo list. Drake and Batman can plan across the selected repos, Lucius and Nightwing can pick labelled issues in any selected repo, Bane can run QA, and Ra’s al Ghul can review PRs across the same repo set.

Clone the specs repo for context, but keep the first write loop focused on code repos:

~/code/product/
api/
web/
mobile/
specs/

Use --repos my-org/api,my-org/web,my-org/mobile, then edit ~/.alfred/prompts/drake.md to reference the specs checkout. Drake should copy the relevant spec links and acceptance criteria into the GitHub issue body. Lucius receives spec context through that issue body when it claims the work.

Specs-driven means agents read the specs repo as planning context while code-writing agents stay scoped to code repos. Include specs in --repos only when you want Alfred to create labels there or pick issues and PRs from it.

Batman is included in the full fleet as the architect agent for cross-repo work. ARCHITECT_PARENT_REPO parent issues can go through plan, approval, child-issue filing, and status reporting.

Batman owns the feature shape above the repo-local work. It plans the rollout and files scoped child issues for the normal fleet queue when the gate allows it.

Configure it with the rest of the fleet:

Terminal window
./bin/alfred-init.py \
--non-interactive \
--agents all \
--repos my-org/api,my-org/web,my-org/mobile \
--slack-webhook skip

Then set ARCHITECT_PARENT_REPO, choose ARCHITECT_AUTO_EXECUTE=approval-gate when you want approved child filing, and run alfred labels bootstrap my-org/specs for the parent repo if it sits outside --repos. The full-fleet setup already enables the architect; it remains idle until this scope exists.