agent-builder/.claude/plans/blueprints/session-1-foundation.md
Kjell Tore Guttormsen 1a776bdeb2 docs(plans): create session blueprints for Agent Factory execution
8 session blueprints covering all 27 steps across 3 waves:
- Session 1: Foundation (rename + commands, Steps 1-5)
- Session 2: Skills and templates (Steps 6-7)
- Session 3: OpenClaw patterns (memory/heartbeat/proactive/cron, Steps 9-12)
- Session 4: Paperclip patterns (context/goals/budget/governance/org-chart, Steps 14-18)
- Session 5: Self-learning (feedback/optimization, Steps 20-21)
- Session 6: Integration (Docker/transfer/5 more domains, Steps 22-24)
- Session 7: Skill updates (memory/autonomy/orchestration/governance/MCP refs, Steps 13,19,25)
- Session 8: Finalization (build command integration + v1.0, Steps 8,26,27)

Also updates plan assumptions table with verified findings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 11:21:17 +02:00

548 lines
18 KiB
Markdown

# Session 1: Foundation — Rename and Commands
> Steps 1, 2, 3, 4, 5 | Wave 1 | Depends on: none
## Dependencies
Entry condition: none (first session, clean repo)
## Scope Fence
**Touch:**
- `.claude-plugin/plugin.json`
- `CLAUDE.md`
- `README.md`
- `commands/build.md`
- `commands/deploy.md` (new)
- `commands/evaluate.md` (new)
- `commands/status.md` (new)
- `agents/deployment-advisor.md` (new)
- `skills/agent-system-design/SKILL.md` (rename reference only)
**Never touch:**
- `scripts/templates/*` (except reading existing for reference)
- `skills/managed-agents/`
- `agents/builder.md` (content — only read for format reference)
- Any file in `scripts/templates/memory/`, `scripts/templates/heartbeat/`, etc.
---
## Step 1: Rename plugin from agent-builder to agent-factory
### Files to modify
**`.claude-plugin/plugin.json`** — Replace content with:
```json
{
"name": "agent-factory",
"description": "Build and manage autonomous agent systems with Claude Code. Guided workflow from idea to deployed, self-running agents. Covers all 22 agent capabilities with patterns from OpenClaw and Paperclip.",
"version": "0.2.0",
"author": {
"name": "Kjell Tore Guttormsen",
"url": "https://fromaitochitta.com"
},
"repository": "https://git.fromaitochitta.com/open/agent-factory",
"license": "MIT",
"keywords": [
"agent",
"autonomous",
"pipeline",
"automation",
"hooks",
"security",
"deployment",
"memory",
"heartbeat",
"governance"
]
}
```
**`CLAUDE.md`** — Apply these diffs:
- Line 1: `# Agent Builder Plugin``# Agent Factory Plugin`
- Line 3: `Plugin that helps users build complete autonomous agent systems``Plugin that guides users through building complete autonomous agent systems`
- Line 8: `The `/agent-builder:build` command``The `/agent-factory:build` command`
- All other occurrences of `agent-builder``agent-factory`
**`README.md`** — Full rewrite for v0.2.0 (will be rewritten again in Step 27 for v1.0):
Replace `# Agent Builder` with `# Agent Factory` and update:
- Install command: `/install agent-factory` or `--plugin-dir ./agent-factory`
- All `/agent-builder:` prefixes → `/agent-factory:`
- Repository URL: `https://git.fromaitochitta.com/open/agent-factory`
- Add recommendation: "For the best experience, install via [ktg-plugin-marketplace](https://git.fromaitochitta.com/open/ktg-plugin-marketplace) which includes Agent Factory plus the ultra-suite (ultraplan, ultraresearch, ultraexecute)."
**`commands/build.md`** — Diff:
- Line 7: `You are running `/agent-builder:build`` → `You are running `/agent-factory:build``
**`skills/agent-system-design/SKILL.md`** — Diff:
- Line 106: `Run `/agent-builder:build`` → `Run `/agent-factory:build``
### Verify
```bash
grep -r "agent-builder" /Users/ktg/repos/agent-builder/ --include="*.md" --include="*.json" | grep -v ".git/" | grep -v "research/" | grep -v "ultraplan-spec" | grep -v "ultraplan-2026" | grep -v "blueprints/" | grep -v "execution-guide" | wc -l
```
Expected: `0` (all renamed)
### On failure
revert
### Checkpoint
```bash
git commit -m "feat!: rename plugin from agent-builder to agent-factory"
```
---
## Step 2: Create /agent-factory:deploy command
### Files to create
**`commands/deploy.md`**:
```markdown
---
description: Configure deployment for your agent system. Supports /schedule (cloud), Desktop scheduled tasks, cron/launchd, systemd, and Docker.
argument-hint: "Optional: deployment target (schedule, desktop, local, vps, docker)"
allowed-tools: ["Read", "Write", "Edit", "Glob", "Grep", "Bash", "Agent", "AskUserQuestion"]
---
You are running `/agent-factory:deploy` — a guided deployment configuration for autonomous agent systems.
If $ARGUMENTS specifies a target, skip to that target's section. Otherwise, ask the user to choose.
---
## Step 1: Scan existing system
Read the user's agent system:
- Glob for `.claude/agents/*.md` — list all agents with names and models
- Glob for `.claude/skills/*/SKILL.md` and `.claude/skills/*.md` — list all skills
- Read `.claude/settings.json` if it exists — check hook configuration
- Check for existing automation: `automation/`, `HEARTBEAT.md`, `docker-compose.yml`
- Read `CLAUDE.md` for project context
Summarize what was found before proceeding.
---
## Step 2: Choose deployment target
Ask using AskUserQuestion:
"Where should your agents run? Choose a deployment target:
1. **Cloud (/schedule)** — Runs on Anthropic's cloud. Needs GitHub repo. No local file access. 1-hour minimum interval. Best for: PR reviews, CI triage, repo maintenance.
2. **Desktop scheduled tasks** — Runs on your machine via Claude Code Desktop app. Local file access. 1-minute minimum interval. Best for: local automation, file processing.
3. **Local (cron/launchd)** — Traditional scheduler. Runs headless via `claude -p`. Full local access. Best for: personal daily pipelines, development.
4. **VPS (systemd)** — Linux server with systemd service/timer. Always-on. Best for: team pipelines, production workloads.
5. **Docker** — Containerized agent. Portable, isolated. Best for: reproducible deployments, security isolation."
If `$ARGUMENTS` matches a target name, skip this question.
---
## Step 3: Configure chosen target
### Cloud (/schedule)
1. Check GitHub connection: suggest `/web-setup` if not connected
2. Explain: "Cloud tasks clone your repo on each run. Local files are not accessible. MCP connectors provide external service access."
3. Generate a task prompt from the user's pipeline skills
4. Guide the user through `/schedule` to create the task
5. Note minimum 1-hour interval
### Desktop scheduled tasks
1. Explain: "Desktop tasks run on your machine with full local file access."
2. Guide through the Desktop app's Schedule page
3. Configure permission mode for unattended operation
### Local (cron/launchd)
1. Read `${CLAUDE_PLUGIN_ROOT}/scripts/templates/automation.sh`
2. Copy and customize to `automation/run-pipeline.sh`
3. Replace SKILL_NAME with the user's pipeline name
4. Ask: "What schedule? (e.g., daily at 07:00, every 2 hours)"
5. For macOS: read `${CLAUDE_PLUGIN_ROOT}/scripts/templates/launchd.plist`, customize, save to `automation/`
6. For Linux: generate cron entry
7. Provide exact activation commands
### VPS (systemd)
1. Read `${CLAUDE_PLUGIN_ROOT}/scripts/templates/systemd-service.unit`
2. Ask: "What Linux user runs the agent?" and "Absolute path to project?"
3. Customize and save service + timer units to `automation/`
4. Copy automation.sh template to `automation/run-pipeline.sh`
5. Provide setup instructions including `systemctl enable/start`
### Docker
1. Read `${CLAUDE_PLUGIN_ROOT}/scripts/templates/docker/` templates (created in Session 6)
2. If templates don't exist yet: generate basic Dockerfile + docker-compose.yml inline
3. Customize with project-specific values
4. Save to project root
5. Provide `docker compose up -d` instructions
---
## Step 4: Verify deployment
For each target, provide a verification command:
- Cloud: `/schedule list` → task visible
- Desktop: Check Schedule page in Desktop app
- Local: `crontab -l | grep claude` or `launchctl list | grep claude`
- VPS: `systemctl status claude-agent`
- Docker: `docker compose ps`
Use the `deployment-advisor` agent when the user needs guidance choosing between targets.
---
## Step 5: Next steps
Tell the user:
- "Run `/agent-factory:status` to check your deployment"
- "Run `/agent-factory:evaluate` to assess your system's capability coverage"
```
### Verify
```bash
head -3 /Users/ktg/repos/agent-builder/commands/deploy.md | grep -c "description:"
```
Expected: `1`
### On failure
revert
### Checkpoint
```bash
git commit -m "feat(commands): add /agent-factory:deploy command"
```
---
## Step 3: Create deployment-advisor agent
### Files to create
**`agents/deployment-advisor.md`**:
```markdown
---
name: deployment-advisor
description: |
Use this agent when the user needs help choosing or configuring a deployment target for their agent system.
<example>
Context: User has built agents and wants to deploy
user: "How should I deploy my agent system?"
assistant: "I'll use the deployment-advisor to analyze your setup and recommend a target."
<commentary>
Deployment guidance request triggers the advisor.
</commentary>
</example>
<example>
Context: User wants to switch deployment targets
user: "Can I move my agents from cron to Docker?"
assistant: "I'll use the deployment-advisor to plan the migration."
<commentary>
Deployment migration request triggers the advisor.
</commentary>
</example>
<example>
Context: User asks about cloud vs local deployment
user: "Should I use /schedule or cron for my pipeline?"
assistant: "I'll use the deployment-advisor to compare the options for your use case."
<commentary>
Deployment comparison request triggers the advisor.
</commentary>
</example>
model: sonnet
color: blue
tools: ["Read", "Glob", "Grep", "Bash", "AskUserQuestion"]
---
## How you work
You analyze the user's agent system and recommend a deployment target based on their requirements.
1. Scan the project: `.claude/agents/*.md`, `.claude/skills/`, `.claude/settings.json`, `CLAUDE.md`, `automation/`, `HEARTBEAT.md`
2. Assess requirements by asking targeted questions:
- Does this need to run when your computer is off?
- Do agents need local filesystem access?
- Is this for personal use or a team?
- Any budget constraints for hosting?
- Do agents need Computer Use (browser interaction)?
3. Read the deployment reference at `${CLAUDE_PLUGIN_ROOT}/skills/agent-system-design/references/deployment-targets.md`
4. Apply the decision guide from that reference
5. Recommend ONE primary target with clear reasoning
6. Generate the deployment configuration files for the chosen target
## Rules
- Never overwrite existing deployment config without asking the user first
- Always verify generated shell scripts with `bash -n` before saving
- Always include rollback instructions (how to undo the deployment)
- If the user's needs span multiple targets, recommend the simplest one that covers all requirements
- For Docker: always include `security_opt: [no-new-privileges:true]` in docker-compose.yml
- For /schedule (cloud): warn that local files are not accessible — only GitHub repo content
- Never recommend `--dangerously-skip-permissions` outside a Docker container or sandboxed environment
## Output format
```
DEPLOYMENT RECOMMENDATION
========================
Target: [chosen target]
Reason: [why this fits]
Files to create:
- [file 1]: [description]
- [file 2]: [description]
Activation:
[exact commands to activate the deployment]
Verification:
[exact commands to verify it's running]
Rollback:
[exact commands to undo if needed]
```
```
### Verify
```bash
python3 -c "import yaml; yaml.safe_load(open('/Users/ktg/repos/agent-builder/agents/deployment-advisor.md').read().split('---')[1])" 2>&1 && echo "VALID"
```
Expected: `VALID`
### On failure
retry — fix YAML syntax, then revert if still failing
### Checkpoint
```bash
git commit -m "feat(agents): add deployment-advisor agent"
```
---
## Step 4: Create /agent-factory:evaluate command
### Files to create
**`commands/evaluate.md`**:
```markdown
---
description: Evaluate your agent system against the 22 agent capabilities. Shows coverage, gaps, and recommendations.
argument-hint: "Optional: focus area (security, deployment, memory, autonomy)"
allowed-tools: ["Read", "Glob", "Grep", "Bash"]
---
You are running `/agent-factory:evaluate` — a capability assessment for your agent system.
## Step 1: Scan project components
Scan for all agent system components:
- Agents: Glob for `.claude/agents/*.md`
- Pipeline skills: Glob for `.claude/skills/*/SKILL.md`
- Knowledge skills: Glob for `.claude/skills/*.md`
- Hooks: Glob for `.claude/hooks/*.sh` and `hooks/*.sh`
- Settings: Read `.claude/settings.json` if it exists
- Context: Read `CLAUDE.md` if it exists
- Automation: Glob for `automation/*`, `scripts/*.sh`
- Memory: look for `memory/MEMORY.md`, `memory/SESSION-STATE.md`, `data/run-state.json`
- Heartbeat: look for `HEARTBEAT.md`
- Goals: look for `GOALS.md`
- Governance: look for `GOVERNANCE.md`
- Org chart: look for `ORG-CHART.md`
- Budget: look for `budget/BUDGET.md`, `budget/cost-events.jsonl`
- Docker: look for `Dockerfile`, `docker-compose.yml`
## Step 2: Score against 22 capabilities
Read the feature map at `${CLAUDE_PLUGIN_ROOT}/skills/agent-system-design/references/feature-map.md`.
For each of the 22 capabilities, check whether the user's project has the corresponding component. Score as:
- **OK** — component exists and is properly configured
- **Partial** — component exists but is incomplete or misconfigured
- **Missing** — component does not exist
## Step 3: Output capability matrix
```
AGENT SYSTEM EVALUATION
=======================
| # | Capability | Status | What exists | What's needed |
|---|-----------|--------|-------------|---------------|
| 1 | Agent Runtime | OK | CLAUDE.md + settings.json | — |
| 2 | Shell Execution | Missing | — | hooks/pre-tool-use.sh + deny list |
...
Score: X/22 OK | Y/22 Partial | Z/22 Missing
```
## Step 4: Recommendations
Provide specific recommendations for filling gaps, ordered by impact:
1. Security gaps first (hooks, permissions)
2. Core functionality gaps (missing agents, skills)
3. Operational gaps (memory, automation, deployment)
4. Advanced gaps (governance, budget, self-learning)
If $ARGUMENTS specifies a focus area, expand that section with detailed guidance and link to relevant templates from `${CLAUDE_PLUGIN_ROOT}/scripts/templates/`.
## Step 5: Next steps
Suggest: "Run `/agent-factory:build` to fill gaps interactively, or `/agent-factory:deploy` to configure deployment."
```
### Verify
```bash
head -3 /Users/ktg/repos/agent-builder/commands/evaluate.md | grep -c "description:"
```
Expected: `1`
### On failure
revert
### Checkpoint
```bash
git commit -m "feat(commands): add /agent-factory:evaluate command"
```
---
## Step 5: Create /agent-factory:status command
### Files to create
**`commands/status.md`**:
```markdown
---
description: Quick status check of your agent infrastructure. Shows agents, skills, hooks, deployment, and recent activity.
argument-hint: ""
allowed-tools: ["Read", "Glob", "Grep", "Bash"]
---
You are running `/agent-factory:status` — a quick health check of your agent infrastructure.
## Scan and report
Run all scans, then output a single compact status report.
### Agents
Glob for `.claude/agents/*.md`. For each agent file:
- Read the frontmatter to extract: name, model, tools count
- List as: `[name] (model: [model], tools: [N])`
- Flag: agents without `<example>` blocks in description (unreliable triggering)
### Skills
Glob for `.claude/skills/*/SKILL.md` and `.claude/skills/*.md`. For each:
- Read frontmatter to extract: name, version (if present)
- List as: `[name] v[version]`
- Flag: skills without version field
### Hooks
Glob for `.claude/hooks/*.sh` and `hooks/*.sh`. For each:
- Check if executable: `test -x [path]`
- List as: `[filename] ([executable/not executable])`
- Flag: hook scripts that are not executable
### Settings
Read `.claude/settings.json` if it exists:
- Count permission allow rules and deny rules
- Count hook configurations
- Summarize: `[N] allow rules, [M] deny rules, [K] hooks configured`
### Deployment
Check for:
- `automation/*.sh` → "Local automation scripts found"
- `automation/*.plist` → "launchd config found"
- `automation/*.service` → "systemd config found"
- `docker-compose.yml` or `Dockerfile` → "Docker config found"
- `HEARTBEAT.md` → "Heartbeat file found"
### Memory
Check for:
- `memory/MEMORY.md` → "Long-term memory: found"
- `memory/SESSION-STATE.md` → "Session state: found"
- `memory/*.md` (daily logs) → "Daily logs: [N] files"
- `data/run-state.json` → "Run state: found"
### Recent activity
If `.claude/hooks/audit.log` or `hooks/audit.log` exists:
- Read last 5 lines
- Display as recent tool call log
### Issues
Compile all flags from above into an issues list:
- "WARNING: [agent] has no example blocks — may not trigger reliably"
- "WARNING: [hook] is not executable — run chmod +x"
- "WARNING: No hooks configured — unattended runs have no guardrails"
## Output format
```
AGENT FACTORY STATUS
====================
Agents: [N] configured
Skills: [N] loaded
Hooks: [N] configured ([M] executable)
Settings: [allow/deny/hooks counts]
Deployment: [target or "not configured"]
Memory: [tiers found]
Issues: [N]
[list if any]
```
```
### Verify
```bash
head -3 /Users/ktg/repos/agent-builder/commands/status.md | grep -c "description:"
```
Expected: `1`
### On failure
revert
### Checkpoint
```bash
git commit -m "feat(commands): add /agent-factory:status command"
```
---
## Exit Condition
- [ ] `grep -r "agent-builder" /Users/ktg/repos/agent-builder/ --include="*.md" --include="*.json" | grep -v ".git/" | grep -v "research/" | grep -v "ultraplan" | grep -v "blueprints/" | grep -v "execution-guide" | wc -l` → 0
- [ ] `ls /Users/ktg/repos/agent-builder/commands/ | sort``build.md deploy.md evaluate.md status.md`
- [ ] `ls /Users/ktg/repos/agent-builder/agents/ | sort``builder.md deployment-advisor.md`
- [ ] `python3 -c "import json; d=json.load(open('/Users/ktg/repos/agent-builder/.claude-plugin/plugin.json')); assert d['name']=='agent-factory'; assert d['version']=='0.2.0'"` → no error
- [ ] All agent files have valid YAML frontmatter: `find /Users/ktg/repos/agent-builder/agents -name "*.md" -exec python3 -c "import yaml,sys; yaml.safe_load(open(sys.argv[1]).read().split('---')[1])" {} \;` → no errors
## Quality Criteria
- All 4 command files have valid YAML frontmatter with `description:` field
- deployment-advisor.md has 3 `<example>` blocks in description
- deploy.md covers all 5 deployment targets with specific instructions
- evaluate.md references the 22-capability feature map
- status.md scans all 7 component types (agents, skills, hooks, settings, deployment, memory, activity)
- No `agent-builder` references remain in any touched file
- plugin.json version is `0.2.0` and name is `agent-factory`