Chapter X · Plans

Brigade Installable Agent Workspace Plan

Goal-mode plan for turning this cookbook into an installable, public-safe starter kit for a harness-agnostic agent memory system, with OpenClaw as the reference implementation.

Current Status

This plan has shipped as Brigade. New work should target the brigade-cli package, the brigade command, and local .brigade/ state. Use this document as design history, not as the current command reference.

Current install path:

pipx install brigade-cli
brigade init --target ~/agent-kitchen --depth workspace --harnesses claude,codex,openclaw
brigade doctor --target ~/agent-kitchen

Current daily repo loop:

brigade dogfood init --target /path/to/repo
brigade work bootstrap
brigade work run --queue-next

Use this document as design history, not as the current command reference. See ../tools/brigade.md for the cookbook guide.

Name

Do not name this sskill, sbrain, or sstack. The name should signal repeatable setup, working memory, and cookbook energy without sounding like another generic agent framework.

Working decision:

Why this works:

Naming alternatives kept for reference:

NameWhy it fitsRisk
Agent KitchenTies directly to the cookbook. Implies tools, prep, recipes, and a working place where things get made.Better as metaphor than package name.
Solo KitchenKeeps it personal and brandable without locking into S3. Easy to say: “install Solo Kitchen.”Could sound like a recipe app.
GasworksMatches “Cookin’ with Gas” and feels like infrastructure.Less obvious for memory/setup.
MiseConceptually perfect and short.Too broad/generic alone.
Agent Mise en PlaceExplicitly ties the concept to agents.Too long and awkward as a CLI/package.
Open MiseSignals a reusable, open setup without pretending to be OpenClaw itself.Could imply official OpenClaw affiliation.
Kitchen PassA pass that gets an agent into the kitchen with the right rules and memory paths.More playful, less obviously technical.
Prep StationClear cookbook metaphor for preparing an agent workspace.Generic and less brandable.
Solo PantryMemory store metaphor. Good for cards, tools, reusable templates.Sounds more like storage than an installer.

Public line:

Brigade is the installable starter kit behind Solomon's Guide to Cookin' with Gas: a public-safe agent workspace, memory handoff flow, local work loop, and bootstrap layout for OpenClaw, Hermes, Codex, Claude Code, and similar harnesses.

What This Is

The cookbook is currently a set of standalone guides and templates. The installable version should become a reproducible starter kit that creates the same shape as the live setup without copying private state.

This new project must be more concise than solos-cookbook. The cookbook can stay broad, narrative, and cross-linked. The installable kit should be boring to clone, obvious to run, and small enough that a user understands the file tree in one screen.

The kit should install:

The kit should not install:

Design Principle

One memory owner remains the source of truth. In the live setup that owner is OpenClaw. In a Hermes setup it may be Hermes. In a lighter setup it may be a local repo-owned memory directory until the user wires an orchestrator.

Claude Code, Codex, browser agents, and other coding harnesses may keep local session context, but durable knowledge flows back through memory handoffs and is routed into the configured canonical memory owner.

That means the installer must create a contract, not an OpenClaw-only fork:

Claude Code / Codex / other harness
        |
        v
<repo>/.claude/memory-handoffs/*.md
        |
        v
handoff ingester adapter
        |
        v
memory/cards/*.md, TOOLS.md, USER.md, rules/*.md, .learnings/*.md

The public wording should be: harness-agnostic contract, OpenClaw-tested defaults.

Public Surface

The public package should have three entrypoints:

  1. Human install path

    • command: brigade init or final branded equivalent
    • outcome: creates a public-safe workspace skeleton and explains what to configure next
  2. Agent install path

    • file: INSTALL_FOR_AGENTS.md
    • outcome: any entering agent knows which files to read first and how to write durable findings
  3. OpenClaw integration path

    • command: brigade doctor --harness openclaw
    • outcome: checks that OpenClaw can see the workspace, memory directory, handoff inbox, content guard, and optional model lanes

Add a fourth entrypoint once the base contract is stable:

  1. Hermes integration path
    • command: brigade doctor --harness hermes
    • outcome: checks that Hermes can see the workspace, bootstrap files, handoff inbox, and configured memory owner

Concise Repo Shape

Do not recreate the cookbook’s many-category documentation tree. The installable project should have a flat, practical layout:

brigade/
  README.md
  QUICKSTART.md
  pyproject.toml
  src/brigade/
  templates/
  policies/
  tests/

Keep top-level docs to:

Everything else should live as generated templates, not explanatory prose. Link back to solos-cookbook for deep explanations.

Installer Shape

Start with a small Python CLI because the cookbook already depends on Python-era tooling through content-guard, and Python keeps the first version portable.

Proposed internal package layout:

brigade/
  src/brigade/
    __init__.py
    cli.py
    init.py
    doctor.py
    scrub.py
    templates.py
  templates/
    workspace/
      AGENTS.md
      CLAUDE.md
      SOUL.md
      USER.md
      TOOLS.md
      MEMORY.md
      IDENTITY.md
      HEARTBEAT.md
      SAFETY_RULES.md
      INSTALL_FOR_AGENTS.md
    memory/
      cards/
        memory-architecture.md
        handoff-flow.md
        content-safety.md
    claude/
      memory-handoffs/
        TEMPLATE.md
    openclaw/
      model-aliases.openclaw.json
      ollama-memory-search.openclaw.json
      acp-escalation.openclaw.json
    hermes/
      workspace.harness.json
      memory-handoff.harness.json
      model-lanes.harness.json
    generic/
      memory-contract.md
      harness-adapter-checklist.md
    hooks/
      pre-push
    policies/
      public-repo.json
      public-content.json
  tests/

The cookbook repo can keep the plan, but the actual installable project should probably become its own concise repo once the CLI starts. That avoids inheriting the cookbook’s intentionally broad file structure.

Commands

Minimum useful CLI:

brigade init --target ~/.openclaw/workspace
brigade init --target . --depth repo
brigade doctor --target ~/.openclaw/workspace
brigade doctor --target . --harness generic
brigade scrub --target .
brigade handoff doctor --target .

Later:

brigade openclaw-fragments --out ./openclaw-fragments
brigade hermes-fragments --out ./hermes-fragments
brigade install-hooks --repo .
brigade migrate-claude-memory --source ~/.claude/projects --target ~/.openclaw/workspace

Avoid command sprawl. If a command is not part of install, verify, scrub, or handoff, it belongs in the cookbook first and the CLI later.

Profiles

Profiles keep the installer from pretending every user wants the full live setup.

ProfileInstallsUse case
reporepo-local AGENTS.md, CLAUDE.md, .claude/memory-handoffs/, pre-push hookA project wants the handoff flow and public leak guard.
workspacefull bootstrap file set, memory folders, starter cards, safety filesA user wants an OpenClaw-style home workspace.
openclawworkspace profile plus OpenClaw config fragments and doctor checksA user is actively running OpenClaw.
hermesworkspace profile plus Hermes adapter fragments and doctor checksA user wants the same memory contract in Hermes.
genericcontract docs, templates, and no orchestrator-specific configA user wants the file layout without committing to a harness.
publishercontent-guard policies, scrub commands, PR/publish gatesA user wants strict scrub and publish gates before anything reaches a blog, docs, or social surface.

Default should be repo, because it is the least invasive.

Bootstrap File Contract

The installer should preserve the cookbook’s existing file split:

FileJob
AGENTS.mdshared operating rules, safety rules, memory handoff rule
CLAUDE.mdClaude Code-specific bridge rules
SOUL.mdvoice and interaction style
USER.mdstable user preferences only
TOOLS.mdcommands, services, ports, scripts, operational runbooks
MEMORY.mdslim index pointing to memory cards, not a giant memory dump
IDENTITY.mdshort agent role and identity
HEARTBEAT.mdrecurring check-in rules
SAFETY_RULES.mdhard boundaries and publishing constraints
INSTALL_FOR_AGENTS.mdfirst-read entrypoint for new agents

The generated AGENTS.md must include the core rule, with the memory owner filled from the selected harness:

The configured memory owner is the canonical long-term memory owner. Side harnesses may keep local context, but durable knowledge must be written as a Memory Handoff in `.claude/memory-handoffs/`.

For the openclaw profile, render that as OpenClaw. For the hermes profile, render that as Hermes. For generic, render it as “this repo’s memory directory until an orchestrator ingests it.”

Memory Handoff Contract

The installer should create:

.claude/memory-handoffs/
  TEMPLATE.md
  processed/
memory/
  cards/
  handoff-inbox/
.learnings/
rules/

The handoff template should match the existing cookbook guide:

The ingester should be conservative:

OpenClaw Integration

The installable kit should not rewrite a user’s openclaw.json on first run. It should generate fragments and doctor output first.

Useful fragments:

Doctor checks:

test -d "$WORKSPACE/.claude/memory-handoffs"
test -d "$WORKSPACE/memory/cards"
test -f "$WORKSPACE/AGENTS.md"
test -f "$WORKSPACE/MEMORY.md"
jq '.plugins.entries | keys' ~/.openclaw/openclaw.json
jq '.agents.defaults.model.primary' ~/.openclaw/openclaw.json

The doctor should report “manual action needed” instead of editing config when:

Hermes Integration

Hermes support should use the same file contract, not a second template universe. The Hermes adapter should answer only three questions:

  1. Which files does Hermes load as bootstrap instructions?
  2. Where should Hermes or side harnesses write memory handoffs?
  3. What command or workflow ingests those handoffs into canonical memory?

Initial Hermes deliverable:

Do not add Hermes-specific behavior until verified against a real Hermes install. Keep the first version as adapter fragments plus doctor checks.

Harness Contract

Every supported harness should map to the same abstract contract:

Contract fieldMeaning
bootstrap_filesFiles loaded into the agent’s starting context
memory_ownerSystem responsible for canonical durable memory
handoff_inboxDirectory where side harnesses write handoff markdown
routing_targetsAllowed memory outputs: cards, tools, user prefs, rules, learnings
doctor_checksCommands that prove the harness can see the expected files
publish_gateContent-guard or equivalent scan before public output leaves the repo

OpenClaw adapter maps this contract to OpenClaw workspace files and config fragments. Hermes adapter maps it to Hermes bootstrap/config paths. Generic adapter writes the contract as markdown plus templates for manual wiring.

Content-Guard Requirements

Content safety is part of the product, not a later polish pass.

The installer should include:

Default blocked classes:

Verification gate:

PYTHONPATH="$HOME/repos/content-guard/src" \
  python3 -m content_guard scan . \
  --policy "$HOME/repos/content-guard/policies/public-repo.json"

No guide, template, or generated public artifact should be considered ready until this passes.

Sanitization Boundary

The live OpenClaw setup can be used as source material for architecture, but never as copy-paste material.

Allowed to publish:

Must scrub or avoid:

Relationship To Existing Cookbook

Existing docs already cover the architecture:

The installable kit should not duplicate those guides. It should turn them into a repeatable path:

  1. install skeleton
  2. configure local details
  3. run doctor
  4. write first handoff
  5. run ingest
  6. run content-guard
  7. commit only sanitized templates

The cookbook can stay OpenClaw-heavy because it documents the live system. The installable project should say “OpenClaw-focused and Hermes-compatible” until Hermes support is verified, then “harness-agnostic with OpenClaw and Hermes adapters.”

Milestones

Milestone 1: Plan And Name

Exit criteria:

Milestone 2: Static Template Pack

Exit criteria:

Milestone 3: CLI Init And Doctor

Exit criteria:

Milestone 4: Handoff Ingester

Exit criteria:

Milestone 5: OpenClaw Fragments

Exit criteria:

Milestone 6: Public Release Gate

Exit criteria:

Implementation Risks

RiskMitigation
Accidentally publishing private setup detailsTreat live files as reference only. Run content-guard before every commit and release.
Creating a second memory source of truthMake OpenClaw canonical in every generated AGENTS.md and CLAUDE.md.
Overwriting user bootstrap filesDefault to no overwrite. Require --force or write .new files.
OpenClaw config schema driftGenerate fragments and doctor checks first. Avoid automatic mutation until the schema is stable.
Hermes support becomes speculativeShip a generic contract first. Mark Hermes adapter experimental until verified against a real install.
Users install unsafe automation blindlyKeep cron, posting, and destructive integrations opt-in.
Name confusion with OpenClawMake the package a cookbook-derived starter kit, not an official OpenClaw distribution.

Open Questions

First Build Slice

The smallest useful implementation is:

  1. standalone brigade/ Python CLI, or temporary packages/brigade/ only until extraction
  2. brigade init --target /tmp/test --depth repo
  3. generated AGENTS.md, CLAUDE.md, .claude/memory-handoffs/TEMPLATE.md, hooks/pre-push
  4. brigade doctor --target /tmp/test
  5. content-guard scan against generated output

That proves the product loop without touching a user’s live OpenClaw config.

The first public release should feel like:

pipx install git+https://github.com/escoffier-labs/brigade
brigade init
brigade doctor

If a new user has to read the whole cookbook before running those commands, the installable project has failed.