agent-workspace ~ %

// multi-agent operating environment · macOS · Claude Code

A one-person, multi-agent operating environment

A root orchestrator decomposes work and delegates to six scoped subagents. A pluggable Markdown knowledge layer holds your durable knowledge, fed automatically from web clips, and macOS launchd jobs keep the whole thing ingesting, summarizing, and self-checking in the background.

bash — agent-workspace
$ git clone https://github.com/Classiccottrell/Agent_Workspace_Template.git agent-workspace
Cloning into 'agent-workspace'...
$ cd agent-workspace
$ ./bootstrap.sh
→ scripts made executable, logs/ created
→ .mcp.json seeded from example
→ Knowledge Base strategy [1=Obsidian / 2=VS Code, default 1]:  

// what it is

Three sentences, one loop

The orchestrator dispatches each unit of work to a scoped subagent — architect designs, coder builds, eng-manager runs projects, archivist files shipped artifacts, curator tends the knowledge wiki.

A clip lands in Vault_Brain/sources/, a scheduled headless Claude distills it into a wiki page, and you review the result in your chosen knowledge app — Obsidian or VS Code + Foam.

A self-check probes every layer — delivery, automation, knowledge, and documentation currency — and writes a status page that confirms the whole system is healthy.

// the three layers

One owner, one job per layer

An Integrated Context Management folder pattern layered over the Karpathy LLM-wiki idea: a structured workspace where each layer has a single owner.

Delivery

Projects/ · Final_Products/

Active project workspaces and shipped artifacts. Owned by eng-manager and archivist.

Automation

System_Config/

launchd jobs and scripts that keep the system running. You run the installers.

Knowledge

Vault_Brain/

Pluggable knowledge layer — plain .md files. Open in Obsidian or VS Code + Foam. sources → wiki → schema. Owned by the curator.

// agent roster

6 scoped subagents

Subagents live in .claude/agents/ and are invoked by name via the Task tool — never paste their role text into a prompt.

Agent roster: scope, entry file, and hand-off target for each core subagent.
AgentScopeEntry fileHands off to
architectSystem designer for the workspace.claude/agents/architect.mdcoder
archivistProduction-artifact archivist for Final_Products/.claude/agents/archivist.mdorchestrator
coderImplementation engineer for the workspace.claude/agents/coder.mdorchestrator
creative-directorElite Creative Director and Brand Strategist.claude/agents/creative-director.mdorchestrator
curatorKnowledge curator for the Vault_Brain Obsidian LLM-wiki.claude/agents/curator.mdorchestrator
eng-managerProject lifecycle controller for Projects/.claude/agents/eng-manager.mdarchitect, coder

// knowledge base

Two ways to view your notes

bootstrap.sh asks which viewer you want. Either way the store is local .md files — the daily ingest pipeline works identically regardless of your choice.

Obsidian + Web Clipper

default · docs/kb-obsidian.md

Native wikilinks, graph view, and backlinks. Obsidian Web Clipper saves web pages directly to Vault_Brain/sources/ with structured frontmatter.

VS Code + Foam + MarkSnip

docs/kb-vscode.md

Foam extension provides graph, backlinks, and wikilinks in VS Code. MarkSnip clips web pages to Vault_Brain/sources/.

bootstrap.sh writes your choice to System_Config/config.sh as KB_STRATEGY. Switch anytime by re-running bootstrap or editing config.sh directly. Full guides: kb-obsidian.md · kb-vscode.md

$ quick start

Clone, cd, bootstrap

  1. Clone the template into a workspace folder.
  2. Change into it.
  3. Run ./bootstrap.sh.
$ git clone https://github.com/Classiccottrell/Agent_Workspace_Template.git agent-workspace
$ cd agent-workspace
$ ./bootstrap.sh

bootstrap.sh is idempotent and never deletes or overwrites your data. It makes scripts executable, creates the log directory, seeds .mcp.json from the example if you don't have one, prints a prerequisite check, prompts for KB strategy (Obsidian + Web Clipper or VS Code + Foam), an optional Git remote URL, and asks before installing any background automation. All steps are idempotent — re-run it any time. Then open the folder in Claude Code (claude from the workspace root) and you're operating.

// automation & health

launchd jobs that keep it running

bootstrap.sh can install 5 launchd agents — it asks first, default No. You can also run each installer directly later.

healthy

Daily ingest

daily 07:00 + at login

Reads new Vault_Brain/sources/*.md clips and files them into the wiki — one headless claude -p call per clip, content-hash dedup.

install_daily_ingest.sh

healthy

Weekly notes

Fridays 19:00

Writes a 1–2 sentence weekly summary into the Master Note and regenerates docs/index.html via gen_site.py.

install_friday_process.sh

healthy

Health check

at login + every 4h

Probes layers A–H (orchestration, automation, knowledge, persistence, projects, doc currency, repo hygiene, decision hygiene) and writes the status dashboard to status_page.html, then publishes the snapshot to the microsite dashboard.

install_healthcheck.sh

healthy

Monday init

at login + Mon 08:00

Creates the week's ISO-named note from Weekly_Note_Template.md, carries forward open tasks, and inserts a row in the Master Note weekly index.

install_monday_init.sh

healthy

Skill sync

on install + hourly

Watches ~/.agents/skills/ for npx-installed skills and syncs them to ~/.claude/skills/, then flags new arrivals in the master-orchestrator index.

install_sync_skills.sh

Run the health check on demand and open the dashboard:

$ bash System_Config/healthcheck.sh
$ open System_Config/status_page.html

status_page.html and its status.json data are generated at runtime into System_Config/ — they are not part of the template and are git-ignored. Green = healthy; amber/red lists exactly what needs attention.

// workspace layout

The directory tree

your-workspace/
├── README.md                 ← spin-up guide / entry point
├── bootstrap.sh              ← one-command setup
├── .AGENT.MD                 ← root orchestrator + workspace map
├── CLAUDE.md                 ← orchestrator rules
├── .mcp.json.example         ← MCP config template
├── .cursor/rules/skill.md    ← design skill profile
├── .claude/
│   ├── settings.json         ← permissions + MCP allow-list
│   └── agents/               ← architect, coder, eng-manager, archivist, curator
├── System_Config/            ← automation hub
│   ├── config.sh             ← shared, relocatable config
│   ├── daily_ingest.sh       ← ingest new clips into the wiki
│   ├── friday_process.sh     ← weekly close-out + cross-refs
│   ├── healthcheck.sh        ← probe all layers → status_page.html
│   ├── install_*.sh          ← launchd installers (idempotent)
│   └── logs/                 ← per-job logs
├── Projects/                 ← active project workspaces
├── Final_Products/           ← shipped, archived artifacts
└── Vault_Brain/              ← Obsidian LLM-wiki (open in Obsidian)
    ├── CLAUDE.md             ← wiki schema (Layer 3)
    ├── wiki/                 ← one page per entity
    ├── sources/              ← raw inputs (immutable)
    └── weekly-logs/  archive/
Relocatable layout — clone anywhere; every script derives its paths from System_Config/config.sh.

// conventions & constraints

The rules it runs by

bash 3.2
Scripts run on stock macOS /bin/bash — no associative arrays, no mapfile, no bash 4+ syntax.
relocatable
Nothing hardcoded. Every script sources config.sh, which derives the workspace path, vault paths, and the launchd label namespace from its own location.
docs stay current
After any change to a script, agent, config, or the structure, update the governing doc in the same task. The health check flags a README older than the files it documents.
append-only knowledge
The wiki and weekly logs are create-or-append; agents never overwrite or delete vault content.
one .mcp.json per machine
.mcp.json.example is tracked; your real .mcp.json with any URLs or credentials is git-ignored. Never commit it.

// prerequisites & pointers

Before you bootstrap

Requires: macOS with launchd (the install step is mac-only); the Claude Code CLI installed and logged in; stock /bin/bash (3.2) — no extra shell needed; a knowledge viewer is optional — bootstrap guides you to Obsidian or VS Code + Foam; and a one-time grant of Full Disk Access to /bin/bash if you install the background automation, so the scheduled jobs can read your workspace.

Further reading