chore: gitignore FPLAN and DPLAN files — plans are local, not tracked (#28)

Plans are runtime artifacts managed by flow. They stay on disk but don't belong in the repo.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
AIPass
2026-03-08 13:05:51 -07:00
committed by GitHub
co-authored by Claude Opus 4.6
parent 9579c27139
commit ca8b3a2912
15 changed files with 4 additions and 4469 deletions
+4
View File
@@ -9,6 +9,10 @@ __pycache__/
# Secrets
.env
# Plans (managed by flow, local to each installation)
FPLAN-*.md
DPLAN-*.md
# AIPass runtime state (local to each installation)
AIPASS_REGISTRY.json
.trinity/
@@ -1,308 +0,0 @@
# FPLAN-0003 - [framework] Memory Bank — port to AIPass repo
**Created**: 2026-03-06
**Branch**: /home/aipass/aipass_business/AIPass
**Status**: Active
**Type**: Standard Plan
---
## What Are Flow Plans?
Flow Plans (FPLANs) are for **BUILDING** - autonomous construction of systems, features, modules.
**This is NOT for:**
- Research or exploration (use agents directly)
- Quick fixes (just do it)
- Discussion or planning (that happens before creating the FPLAN)
**This IS for:**
- Building features or modules
- Single focused construction tasks
- Sub-plans within a master plan
---
## When to Use This vs Master Plan
| This (Default) | Master Plan |
|----------------|-------------|
| Single focused task | 3+ phases, complex build |
| Self-contained | Roadmap + multiple sub-plans |
| Quick build | Multi-session project |
| One phase of a master | Entire branch/system build |
**Need a master plan?** `drone @flow create "subject" master`
---
## Branch Directory Structure
Use dedicated directories - don't scatter files:
| Directory | Purpose |
|-----------|---------|
| `apps/` | Code (modules/, handlers/) |
| `tests/` | All test files |
| `tools/` | Utility scripts |
| `artifacts/` | Agent outputs |
| `docs/` | Documentation |
---
## Critical: Branch Manager Role
**You are the ORCHESTRATOR, not the builder.**
Your 200k context is precious. Burning it on file reads and code writing risks compaction during autonomous work. Agents have clean context - use them for ALL building.
| You Do (Orchestrator) | Agents Do (Builders) |
|-----------------------|----------------------|
| Create plans | Write code |
| Give instructions | Run tests |
| Review output | Read/modify files |
| Course correct | Research/exploration |
| Update memories | Heavy lifting |
| Send status emails | Single-task execution |
**Pattern:** Instruct agent → Wait for completion → Review output → Next step
---
## Seek Branch Expertise
Don't figure everything out alone. Other branches are domain experts - ask them first.
**Before building anything that touches another branch's domain:**
```bash
ai_mail send @branch "Question: [topic]" "I'm working on X and need guidance on Y. What's the best approach?"
```
**Common examples:**
- Building something with email? Ask @ai_mail how delivery works
- Need routing or @ resolution? Ask @drone
- Unsure about standards? Ask @seed for reference code
- Need persistent storage or search? Ask @memory_bank
- Event-driven behavior? Ask @trigger about their event system
- Dashboard integration? Ask @devpulse about update_section()
They have deep memory on their systems. A 1-email question saves you hours of guessing.
---
## Notepad
Keep `notepad.md` in your branch directory as a shared scratchpad during the build. Use it for:
- **Status updates** - Quick progress lines so Patrick can glance without asking
- **Questions for Patrick** - Non-urgent questions that can wait for his next visit
- **Notes to self** - Decisions made, things to revisit, gotchas discovered
Update it as you work - lightweight, not formal. Patrick checks it when he wants to, skips it when he's busy.
---
## Command Reference
When unsure about syntax, use `--help`:
```bash
# Flow - Plan management
drone @flow create . "subject" # Create plan (. = current dir)
drone @flow close FPLAN-XXXX # Close plan
drone @flow list # List active plans
drone @flow --help # Full help
# Seed - Quality gates
drone @seed checklist <file> # 10-point check on file
drone @seed audit @branch # Full branch audit
drone @seed --help # Full help
# AI_Mail - Status updates
drone @ai_mail send @dev_central "Subject" "Message"
drone @ai_mail --help # Full help
# Discovery
drone systems # All available modules
drone list @branch # Commands for branch
```
---
## Planning Phase
### Goal
Port the internal Memory Bank system into `src/aipass/memory/` as a fully functional module. Every spawned branch should have working memory rollover, JSONL archival, and searchable archives out of the box. Vector storage (ChromaDB + sentence-transformers) as optional pip extra.
### What We're Porting
Source: `/home/aipass/MEMORY_BANK/` (~1,800 lines, 75+ files)
**Core (zero new deps — must ship):**
- `detector.py` — threshold detection via AIPASS_REGISTRY.json (600-line default)
- `extractor.py` — FIFO extraction of oldest sessions, backup-before-extract
- `line_counter.py` — metadata `current_lines` updates
- `json_handler.py` — atomic JSON read/write (temp file + rename)
- `archiver.py` — JSONL archive write + keyword search
- `rollover.py` module — orchestrates detect → extract → archive → update
- `search.py` module — keyword search over JSONL archives
**Optional (`pip install aipass[vectors]`):**
- `embedder.py` — sentence-transformers wrapper (all-MiniLM-L6-v2, 384-dim)
- `vector_store.py` — ChromaDB persistence, per-branch `.chroma/` dirs
- `vector_search.py` — semantic search with metadata filtering
- Graceful fallback to keyword search if deps not installed
**Not v1 (later):**
- Symbolic/fragmented memory (experimental, v0.3)
- Living template push system
- Dashboard integration (needs DevPulse)
- Central writer (needs AI_CENTRAL concept)
- Memory pool intake processing
### Key Decisions
- **passport.json** is the identity file name (not id.json)
- **`.trinity/`** stays as the memory directory name
- **AIPASS_REGISTRY.json** is used for branch discovery (same as internal BRANCH_REGISTRY.json)
- **No daemon** — auto-check on command execution or manual `drone @memory rollover`
- **3-layer architecture** — apps/memory.py → modules/ → handlers/
- **JSONL for base archive** — keyword search good enough for most users
- **ChromaDB optional** — subprocess isolation if Python version issues arise
### Spawn Template Updates
- Welcome session (session 0) in local.json on branch creation
- `.trinity/archive/` directory pre-created and empty
- Memory self-managing — agent updates files, rollover handles overflow
### Integration Points
- Drone: `drone @memory status|rollover|search` commands
- Spawn: post-spawn welcome memory
- Registry: reads AIPASS_REGISTRY.json for branch discovery
- Hooks: PreCompact already references memory context
### Reference Documents
- Internal Memory Bank: `/home/aipass/MEMORY_BANK/apps/` (source code)
- Internal rollover module: `/home/aipass/MEMORY_BANK/apps/modules/rollover.py` (676 lines)
- Internal detector: `/home/aipass/MEMORY_BANK/apps/handlers/monitor/detector.py`
- Internal extractor: `/home/aipass/MEMORY_BANK/apps/handlers/rollover/extractor.py`
- Spawn templates: `src/aipass/spawn/templates/agent.template/.trinity/`
- AIPass architecture: 3-layer pattern (apps → modules → handlers)
---
## Agent Preparation (Before Deploying)
Agents can't work blind. They need context before they build.
**Your Prep Work (as orchestrator):**
1. [ ] Know where agent will work (branch path, key directories)
2. [ ] Identify files agent needs to reference or modify
3. [ ] Gather any specs, planning docs, or examples to include
4. [ ] Prepare COMPLETE instructions (agents are stateless)
**Agent's First Task (context building):**
- Agent should explore/read relevant files BEFORE writing code
- "First, read X and Y to understand the current structure"
- "Look at Z for the pattern to follow"
- Context-first, build-second
**What Agents DON'T Have:**
- No prior conversation history
- No memory files loaded automatically
- No knowledge of other branches
- Only what you put in their instructions
**Your instructions determine success - be thorough and specific.**
---
## Agent Instructions Template
```
You are working at [BRANCH_PATH].
TASK: [Specific single task]
CONTEXT:
- [What they need to know]
- Reference: [planning docs, existing code to study]
- First, READ the relevant files to understand current structure
DELIVERABLES:
- [Specific file or output expected]
- Tests → tests/
- Reports/logs → artifacts/reports/ or artifacts/logs/
CONSTRAINTS:
- Follow Seed standards (3-layer architecture)
- Do NOT modify files outside your task scope
- CROSS-BRANCH: Never modify other branches' files unless explicitly authorized by DEV_CENTRAL
- 2-ATTEMPT RULE: If something fails twice, note the issue and move on
- Do NOT go down rabbit holes debugging
WHEN COMPLETE:
- Verify code runs without syntax errors
- List files created/modified
- Note any issues encountered (with what was attempted)
```
---
## Execution Log
### 2026-03-06
- [ ] Created FPLAN-0003
- [ ] Agent deployed for: [task]
- [ ] Agent completed: [outcome]
- [ ] Seed checklist passed: [file]
- [ ] Memories updated
**Log Pattern:** Task → Agent → Outcome → Quality check → Next
**If production stops (critical blocker):**
```bash
drone @ai_mail send @dev_central "PRODUCTION STOPPED: FPLAN-0003" "Issue: [description]. Attempted: [what was tried]. Awaiting guidance."
```
---
## Notes
[Working notes, issues encountered, decisions made]
---
## Completion Checklist
### Before Closing
- [ ] All goals achieved
- [ ] Agent output reviewed and verified
- [ ] Seed checklist on new code: `drone @seed checklist <file>`
- [ ] Branch memories updated:
- [ ] `BRANCH.local.json` - session/work log
- [ ] `BRANCH.observations.json` - patterns learned (if any)
- [ ] README.md updated (if build changed status/capabilities)
- [ ] Status email sent to DEV_CENTRAL:
```bash
drone @ai_mail send @dev_central "FPLAN-0003 Complete" "Summary of what was done, any issues, outcomes"
```
**Completion Order:** Memories → README → Email (README before email - don't report complete with stale docs)
### Definition of Done
- `src/aipass/memory/` module exists with 3-layer architecture
- `drone @memory status` shows all branches and their memory file line counts
- `drone @memory rollover` detects and processes oversized files
- `drone @memory search "query"` returns keyword matches from JSONL archives
- Spawn creates branches with welcome session and empty archive dir
- All 13+ existing tests still pass
- New tests for memory module (detector, extractor, archiver, search)
- `pip install aipass[vectors]` adds ChromaDB + semantic search capability
- Memory module registered in AIPASS_REGISTRY.json
---
## Close Command
When all boxes checked:
```bash
drone @flow close FPLAN-0003
```
@@ -1,274 +0,0 @@
# FPLAN-0004 - [framework] Backup System — port to AIPass repo
**Created**: 2026-03-06
**Branch**: /home/aipass/aipass_business/AIPass
**Status**: Active
**Type**: Standard Plan
---
## What Are Flow Plans?
Flow Plans (FPLANs) are for **BUILDING** - autonomous construction of systems, features, modules.
**This is NOT for:**
- Research or exploration (use agents directly)
- Quick fixes (just do it)
- Discussion or planning (that happens before creating the FPLAN)
**This IS for:**
- Building features or modules
- Single focused construction tasks
- Sub-plans within a master plan
---
## When to Use This vs Master Plan
| This (Default) | Master Plan |
|----------------|-------------|
| Single focused task | 3+ phases, complex build |
| Self-contained | Roadmap + multiple sub-plans |
| Quick build | Multi-session project |
| One phase of a master | Entire branch/system build |
**Need a master plan?** `drone @flow create "subject" master`
---
## Branch Directory Structure
Use dedicated directories - don't scatter files:
| Directory | Purpose |
|-----------|---------|
| `apps/` | Code (modules/, handlers/) |
| `tests/` | All test files |
| `tools/` | Utility scripts |
| `artifacts/` | Agent outputs |
| `docs/` | Documentation |
---
## Critical: Branch Manager Role
**You are the ORCHESTRATOR, not the builder.**
Your 200k context is precious. Burning it on file reads and code writing risks compaction during autonomous work. Agents have clean context - use them for ALL building.
| You Do (Orchestrator) | Agents Do (Builders) |
|-----------------------|----------------------|
| Create plans | Write code |
| Give instructions | Run tests |
| Review output | Read/modify files |
| Course correct | Research/exploration |
| Update memories | Heavy lifting |
| Send status emails | Single-task execution |
**Pattern:** Instruct agent → Wait for completion → Review output → Next step
---
## Seek Branch Expertise
Don't figure everything out alone. Other branches are domain experts - ask them first.
**Before building anything that touches another branch's domain:**
```bash
ai_mail send @branch "Question: [topic]" "I'm working on X and need guidance on Y. What's the best approach?"
```
**Common examples:**
- Building something with email? Ask @ai_mail how delivery works
- Need routing or @ resolution? Ask @drone
- Unsure about standards? Ask @seed for reference code
- Need persistent storage or search? Ask @memory_bank
- Event-driven behavior? Ask @trigger about their event system
- Dashboard integration? Ask @devpulse about update_section()
They have deep memory on their systems. A 1-email question saves you hours of guessing.
---
## Notepad
Keep `notepad.md` in your branch directory as a shared scratchpad during the build. Use it for:
- **Status updates** - Quick progress lines so Patrick can glance without asking
- **Questions for Patrick** - Non-urgent questions that can wait for his next visit
- **Notes to self** - Decisions made, things to revisit, gotchas discovered
Update it as you work - lightweight, not formal. Patrick checks it when he wants to, skips it when he's busy.
---
## Command Reference
When unsure about syntax, use `--help`:
```bash
# Flow - Plan management
drone @flow create . "subject" # Create plan (. = current dir)
drone @flow close FPLAN-XXXX # Close plan
drone @flow list # List active plans
drone @flow --help # Full help
# Seed - Quality gates
drone @seed checklist <file> # 10-point check on file
drone @seed audit @branch # Full branch audit
drone @seed --help # Full help
# AI_Mail - Status updates
drone @ai_mail send @dev_central "Subject" "Message"
drone @ai_mail --help # Full help
# Discovery
drone systems # All available modules
drone list @branch # Commands for branch
```
---
## Planning Phase
### Goal
Port the internal Backup System (`/home/aipass/aipass_core/backup_system/`) into the AIPass public repo at `src/aipass/backup/`. Working backup with snapshot mode, versioned mode, Google Drive sync (optional), dry-run support, and 90+ ignore patterns. Same approach as FPLAN-0003 (Memory Bank) — rewire, don't rebuild.
### Approach
1. Copy all source files from internal backup_system/apps/ into src/aipass/backup/apps/
2. Deploy parallel agents to adapt imports (remove prax/cli/sys.path, use relative imports, make Google Drive optional)
3. Fix hardcoded paths to use `Path(__file__).resolve().parents[N]`
4. Verify no internal references remain
### Reference Documents
- Source: `/home/aipass/aipass_core/backup_system/apps/` (entry point + 4 modules + ~20 handlers)
- Pattern: FPLAN-0003 (Memory Bank port) — identical approach
- Architecture: 3-layer (apps/backup.py → modules/ → handlers/)
---
## Agent Preparation (Before Deploying)
Agents can't work blind. They need context before they build.
**Your Prep Work (as orchestrator):**
1. [ ] Know where agent will work (branch path, key directories)
2. [ ] Identify files agent needs to reference or modify
3. [ ] Gather any specs, planning docs, or examples to include
4. [ ] Prepare COMPLETE instructions (agents are stateless)
**Agent's First Task (context building):**
- Agent should explore/read relevant files BEFORE writing code
- "First, read X and Y to understand the current structure"
- "Look at Z for the pattern to follow"
- Context-first, build-second
**What Agents DON'T Have:**
- No prior conversation history
- No memory files loaded automatically
- No knowledge of other branches
- Only what you put in their instructions
**Your instructions determine success - be thorough and specific.**
---
## Agent Instructions Template
```
You are working at [BRANCH_PATH].
TASK: [Specific single task]
CONTEXT:
- [What they need to know]
- Reference: [planning docs, existing code to study]
- First, READ the relevant files to understand current structure
DELIVERABLES:
- [Specific file or output expected]
- Tests → tests/
- Reports/logs → artifacts/reports/ or artifacts/logs/
CONSTRAINTS:
- Follow Seed standards (3-layer architecture)
- Do NOT modify files outside your task scope
- CROSS-BRANCH: Never modify other branches' files unless explicitly authorized by DEV_CENTRAL
- 2-ATTEMPT RULE: If something fails twice, note the issue and move on
- Do NOT go down rabbit holes debugging
WHEN COMPLETE:
- Verify code runs without syntax errors
- List files created/modified
- Note any issues encountered (with what was attempted)
```
---
## Execution Log
### 2026-03-06
- [x] Created FPLAN-0004
- [x] Agent deployed for: investigate backup_system structure (returned full report)
- [x] Created directory structure: src/aipass/backup/apps/{modules,handlers/{config,models,operations,utils,json,diff,reporting},json_templates/default,extensions,plugins}
- [x] Copied 42 files from internal backup_system
- [x] Agent 1 deployed: adapt 5 modules + entry point (completed — all imports fixed)
- [x] Agent 2 deployed: adapt 20 handler files (completed — all imports fixed)
- [x] Manual fix: handlers/__init__.py cross-branch guard removed (incompatible with public repo paths)
- [x] Manual fix: removed unused imports in backup_core.py (load_json, save_json, temporarily_writable, module-level logger.info)
- [x] Verified: zero remaining internal imports (prax, cli, sys.path, aipass_core, backup_system.apps)
- [ ] Memories updated
**Log Pattern:** Task → Agent → Outcome → Quality check → Next
**If production stops (critical blocker):**
```bash
drone @ai_mail send @dev_central "PRODUCTION STOPPED: FPLAN-0004" "Issue: [description]. Attempted: [what was tried]. Awaiting guidance."
```
---
## Notes
- Same port-by-rewiring pattern as Memory Bank (FPLAN-0003): copy files, adapt imports, verify
- Google Drive deps (google-api-python-client, google-auth-oauthlib) made optional via try/except
- drive_sync_client.py already had Google API imports wrapped — just fixed internal path refs
- handlers/__init__.py had cross-branch security guard that checked for `/backup_system/` in caller path — incompatible with new `/backup/` path, replaced with simple package init
- JSON runtime data dir changed from `backup_system_json/` to `backup_json/` (relative to backup root)
- Timestamps file moved to `backup_data/backup_timestamps.json`
- Entry point renamed from `backup_system.py` to `backup.py`
- All `header()` calls from cli module replaced with local `_header()` helpers
---
## Completion Checklist
### Before Closing
- [ ] All goals achieved
- [ ] Agent output reviewed and verified
- [ ] Seed checklist on new code: `drone @seed checklist <file>`
- [ ] Branch memories updated:
- [ ] `BRANCH.local.json` - session/work log
- [ ] `BRANCH.observations.json` - patterns learned (if any)
- [ ] README.md updated (if build changed status/capabilities)
- [ ] Status email sent to DEV_CENTRAL:
```bash
drone @ai_mail send @dev_central "FPLAN-0004 Complete" "Summary of what was done, any issues, outcomes"
```
**Completion Order:** Memories → README → Email (README before email - don't report complete with stale docs)
### Definition of Done
- All backup_system files ported to src/aipass/backup/ with working imports
- Zero references to internal paths (prax, cli, aipass_core, sys.path hacks)
- Google Drive integration optional (graceful degradation when deps missing)
- JSON templates preserved for module initialization
- Entry point (backup.py) routes commands to all 4 modules
---
## Close Command
When all boxes checked:
```bash
drone @flow close FPLAN-0004
```
@@ -1,106 +0,0 @@
# FPLAN-0005 - [framework] Daemon (assistant) — port to AIPass repo
**Created**: 2026-03-07
**Branch**: /home/aipass/aipass_business/AIPass
**Status**: Active
**Type**: Standard Plan
---
## Planning Phase
### Goal
Port the internal Assistant system (`/home/aipass/aipass_os/dev_central/assistant/`) into the AIPass public repo at `src/aipass/daemon/`. Rename from "assistant" to "daemon". Working scheduler with plugin system, scheduled tasks, activity monitoring, and cron-driven execution. Telegram integration optional. Same approach as FPLAN-0003/0004 — rewire, don't rebuild.
### Approach
1. Copy all source files from internal assistant/apps/ into src/aipass/daemon/apps/
2. Rename entry point from assistant.py to daemon.py
3. Deploy parallel agents to adapt imports (remove prax/cli/sys.path, use relative imports)
4. Make Telegram, ai_mail dispatch, and BRANCH_REGISTRY deps optional via try/except
5. Fix hardcoded paths to use `Path(__file__).resolve().parents[N]`
6. Verify no internal references remain
### Key Decisions
- **Rename**: assistant → daemon (Patrick approved)
- **Telegram**: Optional — wrap in try/except, graceful skip when unconfigured
- **ai_mail dispatch**: Optional — wake.py spawning won't work outside Dev-Pass, needs abstraction
- **BRANCH_REGISTRY**: Activity monitoring reads this — make it configurable, graceful fallback
- **Plugins**: Port all 5 plugins as examples, but they're Dev-Pass-specific — document as templates
- **filelock**: Only external dep (already lightweight)
### Reference Documents
- Source: `/home/aipass/aipass_os/dev_central/assistant/apps/` (entry point + 2 cron scripts + 4 modules + ~10 handlers + 5 plugins)
- Pattern: FPLAN-0003 (Memory Bank) and FPLAN-0004 (Backup System) — identical approach
- Architecture: 3-layer (apps/daemon.py → modules/ → handlers/)
### Investigation Summary
- **4 modules**: update, schedule, activity_report, actions
- **10 handlers** across 6 subdirs: actions/, json/, monitoring/ (3 files), schedule/ (3 files), telegram/, update/
- **5 plugins**: heartbeat, daily_audit, community_rotation, botfather_reminder, dev_central_monitor
- **2 cron scripts**: scheduler_cron.py, assistant_wakeup.py (renamed to daemon_wakeup.py)
- **External deps**: filelock only
- **Internal deps**: prax logger, cli console/header, ai_mail send_email_direct, api telegram_chat, BRANCH_REGISTRY.json
- **Tests**: 1 test file (test_actions_registry.py) with pytest
---
## Execution Log
### 2026-03-07
- [x] Created FPLAN-0005
- [x] Agent deployed for: investigate assistant structure (returned full report)
- [x] Created directory structure: src/aipass/daemon/apps/{modules,handlers/{actions,json,monitoring,schedule,telegram,update},plugins,extensions,json_templates/default}
- [x] Copied 41 files from internal assistant system (renamed assistant→daemon)
- [x] Agent 1 deployed: adapt 13 files (3 entry points + 4 modules + 5 plugins + plugin init) — completed
- [x] Agent 2 deployed: adapt 10 handler files — completed
- [x] Fixed standalone scripts (scheduler_cron.py, daemon_wakeup.py): changed relative imports to absolute package imports (standalone scripts can't use relative imports)
- [x] Fixed test file: removed sys.path manipulation, uses package imports
- [x] Fixed actions_registry.py: removed sys.path.insert in migrate_plugins, uses absolute package import
- [x] Fixed memory_health.py: removed hardcoded /home/aipass test path
- [x] Removed 3 remaining shebangs from conftest.py and handler __init__.py files
- [x] Cleaned unused imports (Path, sys, os, timedelta, Optional, Tuple) across modules
- [x] Verified: zero remaining internal imports (prax, cli, sys.path, aipass_core, aipass_os, assistant_json, ASSISTANT_ROOT)
- [ ] Memories updated
---
## Notes
- Same port-by-rewiring pattern as Memory Bank (FPLAN-0003) and Backup System (FPLAN-0004)
- Renamed assistant → daemon (Patrick approved the name)
- Standalone cron scripts (scheduler_cron.py, daemon_wakeup.py) can't use relative imports — fixed to use absolute package imports (aipass.daemon.apps.handlers.xxx)
- Telegram integration made optional via try/except + TELEGRAM_AVAILABLE flag
- ai_mail dispatch made optional via try/except + AI_MAIL_AVAILABLE flag
- Wake script path configurable via AIPASS_WAKE_SCRIPT env var
- BRANCH_REGISTRY path configurable via AIPASS_REGISTRY env var
- Daemon config path configurable via AIPASS_DAEMON_CONFIG env var
- filelock made optional (try/except, falls back to fcntl)
- handlers/__init__.py cross-branch guard removed (incompatible with public repo)
- JSON runtime data dir changed from assistant_json/ to daemon_json/
- Entry point renamed from assistant.py to daemon.py
- Wakeup script renamed from assistant_wakeup.py to daemon_wakeup.py
- All ASSISTANT.local.json refs changed to DAEMON.local.json
- Plugin system preserved — 5 example plugins ported as templates
---
## Completion Checklist
### Definition of Done
- All assistant files ported to src/aipass/daemon/ with working imports
- Entry point renamed from assistant.py to daemon.py
- Zero references to internal paths (prax, cli, aipass_core, aipass_os, sys.path hacks)
- Telegram integration optional (graceful degradation)
- ai_mail dispatch optional (abstracted for external use)
- Plugin system preserved with example plugins
- JSON templates preserved for module initialization
- Tests ported and passing
---
## Close Command
When all boxes checked:
```bash
drone @flow close FPLAN-0005
```
@@ -1,116 +0,0 @@
# FPLAN-0006 - [framework] Skills System Build
**Created**: 2026-03-07
**Branch**: /home/aipass/aipass_business/AIPass
**Status**: Complete
**Type**: Master Plan
---
## Planning Phase
### Goal
Build the Skills system for AIPass framework. Skills are documented capabilities that any AI can use — from simple markdown SOPs to full 3-layer code implementations. Lives at `src/skills/` (peer to `src/aipass/`, not inside it — skills are separate from infrastructure).
### Approach
Three-tier skill architecture:
- **Tier 1 (Markdown):** SKILL.md only — instructions an LLM reads and follows
- **Tier 2 (Markdown + Handler):** SKILL.md + handler.py — code does the work
- **Tier 3 (Full 3-layer):** SKILL.md + apps/modules/handlers — complete implementation
Follows seedgo's pack pattern: auto-discovery via SKILL.md manifests, drone-routable via `handle_command()`.
OpenClaw SKILL.md format compatibility: their 52 skills (MIT license) can be adapted with minor metadata changes.
### Key Decisions
- **Location**: `src/skills/` — outside `src/aipass/` (skills are capabilities, not infrastructure)
- **Format**: SKILL.md with YAML frontmatter (compatible with OpenClaw format)
- **Discovery**: Glob + importlib + duck typing (same pattern as Nexus skills, seedgo packs)
- **Drone integration**: `drone @skills list|info|run|create|validate`
- **Handler contract**: `run(action, args, config) -> {"success": bool, "output": str, "error": str|None}`
- **No branch manager build** — directory structure only (like FPLAN-0003/0004/0005 pattern)
### Reference Documents
- Design: `vera/projects/framework/skills_system_design.md`
- Research: `vera/projects/framework/nexus_and_skills_design.md`
- Seedgo pattern: `src/aipass/seedgo/apps/standards/aipass/` (pack architecture)
- Telegram reference: `/home/aipass/aipass_core/api/apps/handlers/telegram/` (complex skill example)
- OpenClaw skills: `/home/aipass/external_repos/openclaw/skills/` (SKILL.md format reference)
- Architecture: `vera/projects/framework/architecture_reference.md`
---
## Execution Log
### Phase 1: Foundation — Directory Structure + Core
- [x] Create `src/skills/` directory structure (3-layer: apps/skills.py → modules/ → handlers/)
- [x] Create entry point: `apps/skills.py` with `handle_command()` for drone routing
- [x] Create discovery module: `apps/modules/discovery.py` (scan search paths, parse SKILL.md frontmatter)
- [x] Create loader module: `apps/modules/loader.py` (load full SKILL.md, import handler if present)
- [x] Create runner module: `apps/modules/runner.py` (execute handler or display instructions)
- [x] Create creator module: `apps/modules/creator.py` (scaffold new skills from templates)
- [x] Create registry handler: `apps/handlers/registry.py` (skill registry management)
- [x] Create validator handler: `apps/handlers/validator.py` (check requirements — bins, pip, config)
- [x] Create template handler: `apps/handlers/template.py` (skill templates for scaffolding)
- [x] Create Trinity files: `.trinity/passport.json`, `.trinity/local.json`, `.trinity/observations.json`
- [x] Create `__init__.py` files at all levels
- [x] Create README.md
### Phase 2: Templates
- [x] Markdown-only skill template (`templates/markdown_only/SKILL.md`)
- [x] Markdown + handler skill template (`templates/with_handler/SKILL.md` + `handler.py`)
- [x] Full 3-layer skill template (`templates/full/SKILL.md` + `apps/` structure)
### Phase 3: Test Skills (One Per Tier)
- [x] Tier 1: Adapt OpenClaw GitHub skill → `catalog/github/SKILL.md`
- [x] Tier 2: Build system_status skill → `catalog/system_status/SKILL.md` + `handler.py`
- [x] Tier 3: Create drone_commands skill skeleton → `catalog/drone_commands/` with apps structure
### Phase 4: Seedgo Skills Standard
- [x] Create skills standard pack: `src/aipass/seedgo/apps/standards/skills/`
- [x] Create `pack.json` manifest
- [x] Create `pack_entry.py` entry point
- [x] Create standard modules (skill_format, skill_structure, skill_handler)
- [x] Create standard handlers (content + check pairs)
### Phase 5: Testing
- [x] Unit tests for discovery engine (32 tests)
- [x] Unit tests for loader (7 tests)
- [x] Unit tests for runner (11 tests)
- [x] Unit tests for validator (10 tests)
- [x] Integration test: full skill lifecycle create → discover → load → run (14 tests)
- [x] Test OpenClaw skill adaptation works (github skill loads and runs correctly)
---
## Notes
- Same citizen-branch pattern as drone, ai_mail, prax — but directory structure only, no branch manager
- Skills are separate from aipass infrastructure (sit at `src/skills/`, not `src/aipass/skills/`)
- Patrick wants all three tiers supported: markdown SOPs, markdown+handler, full 3-layer
- Code skills cost zero tokens to run — markdown skills cost tokens every time. Both have a place.
- OpenClaw SKILL.md compatibility lets users adapt 52 existing MIT-licensed skills
- Seedgo standard for skills ensures all skills meet quality bar
---
## Completion Checklist
### Definition of Done
- Skills branch exists at `src/skills/` with full 3-layer architecture
- `drone @skills list|info|run|create|validate` commands work
- All three skill tiers supported (markdown, markdown+handler, full 3-layer)
- At least one test skill per tier working
- OpenClaw GitHub skill successfully adapted
- Seedgo skills standard created with at least 3 checks
- Tests passing
- Trinity files in place
---
## Close Command
When all boxes checked:
```bash
drone @flow close FPLAN-0006
```
@@ -1,679 +0,0 @@
# FPLAN-0411 - [framework] The Commons — Port to AIPass Framework (MASTER PLAN)
**Created**: 2026-03-07
**Branch**: /home/aipass/aipass_business/AIPass
**Status**: COMPLETE
**Type**: Master Plan (Multi-Phase)
---
## What Are Flow Plans?
Flow Plans (FPLANs) are for **BUILDING** - autonomous construction of systems, features, modules. They're the structured way to execute work without constant human oversight.
**This is NOT for:**
- Research or exploration (use agents directly)
- Quick fixes (just do it)
- Discussion or planning (that happens before creating the FPLAN)
**This IS for:**
- Building new branches/modules
- Implementing features
- Multi-phase construction projects
- Autonomous execution
---
## Master Plan vs Default Plan
| | Master Plan | Default Plan |
|---|-------------|--------------|
| **Use when** | 3+ phases, complex build | Single focused task |
| **Structure** | Roadmap + sub-plans | Self-contained |
| **Phases** | Multiple, sequential | One |
| **Sub-plans** | Yes, one per phase | No |
| **Typical use** | Build entire branch | One phase of master |
**Pattern:**
```
Master Plan (roadmap)
├── Sub-plan Phase 1 (default template)
├── Sub-plan Phase 2 (default template)
├── Sub-plan Phase 3 (default template)
└── Sub-plan Phase 4 (default template)
```
**How to start:**
1. DEV_CENTRAL provides planning doc or instructions
2. Branch manager reads and understands scope
3. Branch manager creates master plan: `drone @flow create . "Build X" master`
4. Branch manager fills in phases, then executes autonomously
---
## Critical: Branch Manager Role
**You are the ORCHESTRATOR, not the builder.**
Your 200k context is precious. Burning it on file reads and code writing risks compaction during autonomous work. Agents have clean context - use them for ALL building.
| You Do (Orchestrator) | Agents Do (Builders) |
|-----------------------|----------------------|
| Create plans & sub-plans | Write code |
| Define phases | Run tests |
| Give agent instructions | Read/modify files |
| Review agent output | Research/exploration |
| Course correct | Heavy lifting |
| Update memories | Single-task execution |
| Send status emails | Build deliverables |
| Track phase progress | Quality checks on code |
**Master Plan Pattern:** Define all phases → Create sub-plan for Phase 1 → Deploy agent → Review → Close sub-plan → Email update → Next phase
---
## Seek Branch Expertise
Don't figure everything out alone. Other branches are domain experts - ask them first.
**Before building anything that touches another branch's domain:**
```bash
ai_mail send @branch "Question: [topic]" "I'm working on X and need guidance on Y. What's the best approach?"
```
**Common examples:**
- Building something with email? Ask @ai_mail how delivery works
- Need routing or @ resolution? Ask @drone
- Unsure about standards? Ask @seed for reference code
- Need persistent storage or search? Ask @memory_bank
- Event-driven behavior? Ask @trigger about their event system
- Dashboard integration? Ask @devpulse about update_section()
They have deep memory on their systems. A 1-email question saves you hours of guessing. For master plans spanning multiple domains, identify which branches to consult during phase definitions.
---
## Notepad
Keep `notepad.md` in your branch directory as a shared scratchpad during the build. Use it for:
- **Status updates** - Quick progress lines so Patrick can glance without asking
- **Questions for Patrick** - Non-urgent questions that can wait for his next visit
- **Notes to self** - Decisions made, things to revisit, gotchas discovered
Update it as you work - lightweight, not formal. Patrick checks it when he wants to, skips it when he's busy. Low friction both ways.
```bash
# Create it at plan start
echo "# Notepad - FPLAN-0411" > notepad.md
```
---
## Command Reference
When unsure about syntax, use `--help`:
```bash
# Flow - Plan management
drone @flow create . "Phase X: subject" # Create sub-plan (. = current dir)
drone @flow create . "subject" master # Create master plan
drone @flow close FPLAN-XXXX # Close plan
drone @flow list # List active plans
drone @flow status # Plan status
drone @flow --help # Full help
# Seed - Quality gates
drone @seed checklist <file> # 10-point check on file
drone @seed audit @branch # Full branch audit (before master close)
drone @seed --help # Full help
# AI_Mail - Status updates
drone @ai_mail send @vera "Subject" "Message"
drone @ai_mail inbox # Check your inbox
drone @ai_mail --help # Full help
# Discovery
drone systems # All available modules
drone list @branch # Commands for branch
```
---
## What is a Master Plan?
Master Plans are for **complex multi-phase projects**. You define all phases upfront, then create focused sub-plans for each phase.
**When to use:**
- 3+ distinct sequential phases
- Work spanning multiple sessions
- Need clear phase completion milestones
- Complex builds requiring sustained focus
**Pattern:** Master Plan = Roadmap | Sub-Plans = Focused Execution
---
## Project Overview
### Goal
Port The Commons — AIPass's social network for branches — from the dev system (`/home/aipass/The_Commons/`) to the public AIPass framework at `src/commons/`. This is a complete social platform: 12,649 lines, 85 Python files, SQLite database with 16 tables, 50+ commands, 22 modules, 60 handler files.
The Commons sits at `src/commons/` — peer to `src/aipass/` (infrastructure) and `src/skills/` (capabilities). It's a social application, not infrastructure.
### Reference Documentation
- **Source code:** `/home/aipass/The_Commons/` (dev system — the authoritative implementation)
- **Entry point:** `/home/aipass/The_Commons/apps/the_commons.py` (442 lines)
- **Schema:** `/home/aipass/The_Commons/apps/handlers/database/schema.sql`
- **Database manager:** `/home/aipass/The_Commons/apps/handlers/database/db.py` (527 lines)
- **Identity:** `/home/aipass/The_Commons/THE_COMMONS.id.json`
- **Architecture reference:** `vera/projects/framework/architecture_reference.md`
- **Skills port (pattern reference):** FPLAN-0006 (just completed — same port-by-copy approach)
- **Branch manager:** The Commons has its own branch manager at `/home/aipass/The_Commons/`
### Success Criteria
- `src/commons/` exists with full 3-layer architecture
- `drone @commons` commands route correctly (list, post, feed, thread, comment, vote, room, etc.)
- SQLite database initializes and works (all 16 tables, FTS5 search)
- All 50+ commands functional
- Tests passing (baseline: port the 72 existing tests)
- Trinity files in place
- Cross-branch integrations abstracted (ai_mail, prax, cli, devpulse — lazy-imported, graceful fallback)
### Architecture Decisions
- **Location:** `src/commons/` (social layer, separate from infrastructure)
- **Imports:** Replace dev-system absolute imports with relative package imports
- **Cross-branch deps:** Lazy-import with graceful fallback (system works without prax/ai_mail/cli)
- **Database:** Ships with schema, creates `commons.db` in user's `.aipass/` directory (not in package)
- **Rich dependency:** Required — The Commons uses Rich extensively for CLI output
- **No branch manager build** — just the code package (same pattern as skills, FPLAN-0006)
### Branch Expertise to Leverage
| Branch | Consultation Topic |
|--------|-------------------|
| @the_commons | Architecture decisions, why certain patterns exist, migration history |
| @ai_mail | Notification integration — how send_email_direct works, what to abstract |
| @prax | Logger integration — system_logger API, what to stub for standalone use |
| @memory_bank | SQLite patterns — they use vectors/ChromaDB, may have connection pool insights |
| @drone | Routing registration — how to add `commons` as a routable module |
| @seed | Standards compliance — what the 3-layer audit expects for this size module |
---
## Branch Directory Structure
Every branch has dedicated directories. Use them correctly:
```
branch/
├── apps/ # Code (modules/, handlers/)
├── tests/ # All test files go here
├── tools/ # Utility scripts, helpers
├── artifacts/ # Agent outputs (reports, logs)
├── docs/ # Documentation
└── logs/ # Execution logs
```
**Rules:**
- Tests → `tests/` (not root, not random locations)
- Tools/scripts → `tools/`
- Agent artifacts → `artifacts/`
- Create subdirs if needed: `mkdir -p artifacts/reports artifacts/logs`
- **Never delete** - DEV_CENTRAL manages cleanup
- Future: artifacts auto-roll to Memory Bank
---
## Phase Definitions
Define ALL phases before starting work:
### Phase 1: Foundation — Directory Structure, Database, Entry Point
**Goal:** Create `src/commons/` skeleton and port the database layer + entry point. This is the foundation everything else builds on. Without the DB, nothing works.
**Agent Task:**
- Create `src/commons/` directory tree (apps/, apps/modules/, apps/handlers/ with all subdirs)
- Port `apps/the_commons.py` entry point (adapt imports to relative)
- Port `apps/handlers/database/` (schema.sql, db.py, migrations.py) — the entire DB layer
- Port `apps/modules/commons_identity.py` (identity detection)
- Port `apps/handlers/identity/` (identity ops — branch detection from CWD)
- Create all `__init__.py` files
- Create `.trinity/` files (passport.json, local.json, observations.json)
- Abstract cross-branch imports: prax logger → stdlib logging fallback, cli console → Rich direct
- Database path: `{AIPASS_ROOT}/.aipass/commons.db` (not in package)
**Deliverables:**
- `src/commons/apps/the_commons.py`
- `src/commons/apps/handlers/database/schema.sql`
- `src/commons/apps/handlers/database/db.py`
- `src/commons/apps/handlers/database/migrations.py`
- `src/commons/apps/modules/commons_identity.py`
- `src/commons/apps/handlers/identity/identity_ops.py`
- All `__init__.py` files (15+)
- `.trinity/` files
- `README.md`
**Consult:** @the_commons (migration history), @prax (logger stub pattern), @memory_bank (SQLite best practices)
### Phase 2: Core Social — Posts, Comments, Votes, Feed, Rooms
**Goal:** Port the core social functionality — the fundamental CRUD operations that everything else builds on. After this phase, you can post, comment, vote, browse feeds, and manage rooms.
**Agent Task:**
- Port `apps/modules/post_module.py` + `apps/handlers/posts/post_ops.py`
- Port `apps/modules/comment_module.py` + `apps/handlers/comments/comment_ops.py`
- Port `apps/modules/feed_module.py` + `apps/handlers/feed/feed_ops.py`
- Port `apps/modules/room_module.py` + `apps/handlers/rooms/room_ops.py`
- Port vote handling (in comment_module or post_module — verify source)
- Adapt all imports (prax logger → fallback, cli console → Rich direct, cross-handler refs → relative)
- Wire module discovery in entry point
**Deliverables:**
- 4 modules, 4+ handler files
- All CRUD operations working: create/read/delete posts, add/read comments, vote up/down, feed sorting (hot/new/top/activity), room create/list/join
**Consult:** @the_commons (feed sorting algorithm, vote score calculation)
### Phase 3: Discovery & Social Features — Search, Catchup, Activity, Profiles, Welcome
**Goal:** Port the discovery and social enrichment features that make The Commons useful beyond basic CRUD.
**Agent Task:**
- Port `search_module.py` + `apps/handlers/search/` (FTS5 full-text search, log export)
- Port `catchup_module.py` + `apps/handlers/catchup/` (what you missed)
- Port `activity_module.py` + `apps/handlers/activity/` (cross-thread activity feed)
- Port `profile_module.py` + `apps/handlers/profiles/` (view/edit profiles)
- Port `welcome_module.py` + `apps/handlers/welcome/` (welcome new branches)
- Port `digest_module.py` + `apps/handlers/digest/` (24h digest)
**Deliverables:**
- 6 modules, 8+ handler files
- FTS5 search working, catchup/activity feeds functional
### Phase 4: Engagement — Reactions, Notifications, Pins, Trending, Leaderboards
**Goal:** Port the engagement layer — reactions, curation, notifications, gamification.
**Agent Task:**
- Port `reaction_module.py` + `apps/handlers/curation/` (react, pin, pinned, trending)
- Port `notification_module.py` + `apps/handlers/notifications/` (watch, mute, track, preferences)
- Port `leaderboard_module.py` + `apps/handlers/social/` (rankings)
- Port `engagement_module.py` + `apps/handlers/engagement/` (prompts, events)
- Abstract ai_mail notification integration (lazy import with graceful "notifications disabled" fallback)
**Deliverables:**
- 4 modules, 10+ handler files
- Notification preferences working, reactions functional, leaderboards calculating
**Consult:** @ai_mail (send_email_direct API for notification abstraction)
### Phase 5: Extended Features — Spatial, Artifacts, Trading, Capsules, Exploration
**Goal:** Port the extended/fun features — spatial mechanics, artifact crafting, trading, time capsules, secret rooms.
**Agent Task:**
- Port `space_module.py` + `apps/handlers/rooms/spatial_ops.py` (enter, look, decorate, visitors)
- Port `artifact_module.py` + `apps/handlers/artifacts/` (craft, list, inspect, rewards)
- Port `trade_module.py` + `apps/handlers/artifacts/trade_ops.py` (gift, trade, drop, find, mint)
- Port `capsule_module.py` + `apps/handlers/artifacts/capsule_ops.py` (time capsules)
- Port `explore_module.py` + `apps/handlers/rooms/exploration_ops.py` (secret rooms)
**Deliverables:**
- 5 modules, 6+ handler files
- Spatial mechanics working, artifacts craftable, trading functional
### Phase 6: Integration & Output — Central, Dashboard, JSON Templates
**Goal:** Port the integration layer that connects Commons to the broader ecosystem (AI_CENTRAL stats, dashboard updates, JSON output).
**Agent Task:**
- Port `central_module.py` + `apps/handlers/central/` (push stats to AI_CENTRAL)
- Port `apps/handlers/dashboard/` (dashboard write-through to branch DASHBOARD files)
- Port `apps/handlers/json/` (JSON template rendering)
- Abstract devpulse write_section import (lazy + graceful fallback)
- All cross-branch integrations use lazy import pattern with disabled-mode fallback
**Deliverables:**
- 1 module, 4+ handler files
- Central stats generation working (even if push target doesn't exist)
**Consult:** @devpulse (write_section API), @the_commons (central JSON format)
### Phase 7: Testing & Verification
**Goal:** Port existing tests, write additional coverage, run end-to-end verification.
**Agent Task:**
- Port `/home/aipass/The_Commons/tests/test_commons.py` (72 tests) into `src/commons/tests/`
- Adapt test imports for package structure
- Add integration tests: full lifecycle (init DB → create room → post → comment → vote → feed → search)
- Verify all 50+ commands work via entry point
- Run full test suite
- Syntax check all files
**Deliverables:**
- `src/commons/tests/test_commons.py` (ported 72 tests)
- `src/commons/tests/test_lifecycle.py` (new integration tests)
- All tests passing
- End-to-end command verification report
---
## Execution Philosophy
### Autonomous Power-Through
Master plans are for **autonomous execution**. Don't halt production every phase waiting for DEV_CENTRAL review.
**The Pattern:**
- Power through all phases
- Accumulate issues as you go
- Deal with issues at the end
- DEV_CENTRAL reviews final result, not every step
**Why this works:**
- Context is precious - don't burn it chasing bugs
- Complete picture reveals which issues actually matter
- Many "bugs" resolve themselves when later phases complete
- DEV_CENTRAL time is for decisions, not babysitting
### The 2-Attempt Rule
When agent encounters an issue:
```
Attempt 1 → Failed?
↓
Attempt 2 → Failed?
↓
STOP. Mark as issue. Move on.
```
**Do NOT:**
- Try 5 different approaches
- Go down rabbit holes
- Burn context debugging
- Stop production for every error
**DO:**
- Note the issue clearly
- Note what was tried
- Move to next task
- Let branch manager decide priority
### Critical vs Non-Critical Issues
When you see an issue, decide:
| Question | If YES → | If NO → |
|----------|----------|---------|
| Does this block ALL future phases? | STOP. Investigate. | Continue. |
| Can the system work around this? | Continue. | STOP. Investigate. |
| Is this a syntax/import error? | Quick fix, continue. | - |
| Is this a logic/design problem? | Note it. Continue. | - |
**Critical (stop production):**
- Core module won't import at all
- Database/file system inaccessible
- Fundamental architecture wrong
**Non-critical (note and continue):**
- One command throws error but others work
- Registry not updating properly
- Edge case not handled
- Test failing but code runs
**Pattern:** Note issue → Continue building → Fix at end with complete picture
### False Positives Awareness
Seed audits are helpful but not infallible.
**When Seed flags something:**
1. Check if the code is actually correct from your understanding
2. If you're confident it's right → mark as false positive, move on
3. If you're unsure → note it, continue, review later
**Don't stop production for:**
- Style preferences (comments, spacing)
- Patterns that differ from Seed's but still work
- Checks that don't apply to your context
### Forward Momentum Summary
- **Don't stop to fix bugs during phases** - Note them, keep moving
- **Get complete picture first** - All phases done, THEN systematic fixes
- **Prevents:** Bug-fixing rabbit holes, premature optimization, scope creep
- **DEV_CENTRAL reviews at END** - not every phase
### Production Stop Protocol
If something causes production to STOP (critical blocker), **immediately email DEV_CENTRAL**:
```bash
drone @ai_mail send @vera "PRODUCTION STOPPED: FPLAN-0411" "Phase X halted. Issue: [description]. Attempted: [what was tried]. Awaiting guidance."
```
**Never leave a branch stopped without reporting.** VERA (not DEV_CENTRAL) is the main contact for this build.
### Monitoring Resources
For quick status checks and debugging, these resources are available:
| Resource | Location | Purpose |
|----------|----------|---------|
| Branch logs | `logs/` directory | Local execution logs |
| JSON tree | `apps/json_templates/` | Module firing status |
| Prax monitor | `drone @prax monitor` | Real-time system events |
| Seed audit | `drone @seed audit @branch` | Code quality check |
Use these when you need to confirm status or investigate issues.
### Branch Dispatch Per Phase
Each phase = dispatch to the domain-expert branch:
1. Identify which branch(es) own this phase's domain
2. Send dispatch email with clear task + context + deliverables
3. Wake the branch (`drone wake @branch`)
4. Monitor progress (check inbox for replies, check files for output)
5. Review deliverables when branch replies
6. Run seedgo checklist on new code
7. Course-correct if needed, then dispatch next phase
**Branch Ownership:**
| Phase | Primary Branch | Support |
|-------|---------------|---------|
| Phase 1 (Foundation) | Vera sub-agent (DONE) | @prax (logger), @memory_bank (SQLite) |
| Phase 2 (Core Social) | @the_commons | — |
| Phase 3 (Discovery) | @the_commons | — |
| Phase 4 (Engagement) | @the_commons | @ai_mail (notification integration) |
| Phase 5 (Extended) | @the_commons | — |
| Phase 6 (Integration) | @the_commons | @devpulse (dashboard API) |
| Phase 7 (Testing) | @the_commons | @seed (compliance) |
**Key Principle:** The Commons branch manager knows their own code better than any generic sub-agent. They port their own modules. Vera orchestrates and monitors.
### Agent Preparation (Before Deploying)
Agents can't work blind. They need context before they build.
**Your Prep Work (as orchestrator):**
1. [ ] Know where agent will work (branch path, key directories)
2. [ ] Identify files agent needs to reference or modify
3. [ ] Gather any specs, planning docs, or examples to include
4. [ ] Prepare COMPLETE instructions (agents are stateless)
**Agent's First Task (context building):**
- Agent should explore/read relevant files BEFORE writing code
- "First, read X and Y to understand the current structure"
- "Look at Z for the pattern to follow"
- Context-first, build-second
**What Agents DON'T Have:**
- No prior conversation history
- No memory files loaded automatically
- No knowledge of other branches
- Only what you put in their instructions
**Your instructions determine success - be thorough and specific.**
### Agent Instructions Template
```
You are working at [BRANCH_PATH].
TASK: [Specific single task for this phase]
CONTEXT:
- [What they need to know]
- Reference: [planning docs, existing code to study]
- First, READ the relevant files to understand current structure
DELIVERABLES:
- [Specific file or output expected]
- Tests → tests/
- Reports/logs → artifacts/reports/ or artifacts/logs/
CONSTRAINTS:
- Follow Seed standards (3-layer architecture: apps/modules/handlers)
- Do NOT modify files outside your task scope
- CROSS-BRANCH: Never modify other branches' files unless explicitly authorized by @vera
- 2-ATTEMPT RULE: If something fails twice, note the issue and move on
- Do NOT go down rabbit holes debugging
SEEDGO COMPLIANCE:
- After building, run seedgo checklist on key files:
cd /home/aipass/aipass_business/AIPass/src/aipass/seedgo && python3 apps/seedgo.py checklist aipass <file_path>
- Run seedgo audit for full branch check:
cd /home/aipass/aipass_business/AIPass/src/aipass/seedgo && python3 apps/seedgo.py audit aipass
- Target: 80%+ compliance score
- Key standards to hit:
- architecture: 3-layer pattern (apps/entry.py -> modules/ -> handlers/)
- handlers: return dicts, NEVER print
- modules: handle_command(command, args) -> bool, can print
- imports: no sys.path hacking, no AIPASS_ROOT, proper aipass.* namespace
- naming: snake_case files and functions
- meta: AIPass metadata headers on all .py files
WHEN COMPLETE:
- Verify code runs without syntax errors
- Run seedgo checklist on entry point and 2-3 key handlers
- List files created/modified
- Note any issues encountered (with what was attempted)
- Report score from seedgo
```
---
## Phase Tracking
### Phase 1: Foundation — Directory Structure, Database, Entry Point
- [x] Built by Vera sub-agent (initial scaffolding)
- [x] Output reviewed and verified
- [ ] Seedgo checklist passed (80%+)
- **Status:** COMPLETE
- **Owner:** Vera sub-agent
- **Notes:** 18 files created. Entry point, flattened schema (16 tables), db.py, identity detection, Trinity files. Quality verified.
### Phase 2: Core Social — Posts, Comments, Votes, Feed, Rooms
- [x] Dispatched to @the_commons
- [x] @the_commons replied with completion
- [x] Output reviewed — clean 3-layer separation, proper dict-return handlers, Rich display
- [ ] Seedgo checklist passed (80%+)
- **Status:** COMPLETE
- **Owner:** @the_commons
- **Notes:** 8 files: post_ops, comment_ops (dedup + vote toggle), feed_ops (hot/new/top/activity + format_time_ago), room_ops + 4 matching modules. Stripped dev-pass integrations (FTS sync, dashboard, reward drops, profile counts).
### Phase 3: Discovery & Social Features — Search, Catchup, Activity, Profiles, Welcome
- [x] Dispatched to @the_commons
- [x] @the_commons replied with completion
- [x] Output reviewed — 6 modules + 11 handler files. Seedgo: 91%, 86%, 94%.
- [x] Seedgo checklist passed (80%+) — All scores above 80%
- **Status:** COMPLETE
- **Owner:** @the_commons
- **Notes:** search (FTS5), catchup (what-you-missed), activity (cross-thread), profile (view/edit/who), welcome (scan/welcome), digest (24h). Stripped dashboard pipeline for later phase.
### Phase 4: Engagement — Reactions, Notifications, Pins, Trending, Leaderboards
- [x] Dispatched to @the_commons (primary) + @ai_mail (notification patterns — received)
- [x] @the_commons replied with completion
- [x] Output reviewed — 4 modules + 8 handlers. Seedgo: 95%, 91%, 90%.
- [x] Seedgo checklist passed (80%+)
- **Status:** COMPLETE
- **Owner:** @the_commons
- **Notes:** curation_ops (7 commands), notification_ops, leaderboard_ops (5 categories), engagement_ops (prompts + events). Pure DB helpers: reaction_queries, pin_queries, trending_queries, preferences. ai_mail notification not yet wired (Phase 6).
### Phase 5: Extended Features — Spatial, Artifacts, Trading, Capsules, Exploration
- [x] Dispatched to @the_commons
- [x] @the_commons replied with completion
- [x] Output reviewed — 5 modules + 8 handler files. Seedgo: 100%, 91%, 85%.
- [x] Seedgo checklist passed (80%+)
- **Status:** COMPLETE
- **Owner:** @the_commons
- **Notes:** space_ops (enter/look/decorate/visitors), room_state_ops, explore_ops (secret rooms), artifact_ops (craft/inspect/list/collab/sign with provenance), trade_ops (gift/trade/drop/find/mint with sweep-on-access), capsule_ops (seal/list/open). Stripped physical artifact file operations.
### Phase 6: Integration & Output — Central, Dashboard, JSON Templates
- [x] Dispatched to @the_commons
- [x] @the_commons replied with completion
- [x] Output reviewed — 1 module + 4 handlers + 3 JSON templates. Seedgo: 90%, 84%, 81%, 81%, 80%.
- [x] Seedgo checklist passed (80%+) — All files at or above 80%
- **Status:** COMPLETE
- **Owner:** @the_commons
- **Notes:** central_writer (aggregate stats, atomic write), dashboard_writer (write-through via lazy devpulse), dashboard_pipeline (event-driven, tiered), json_handler (template-based auto-create), central_module (push-central cmd). JSON templates copied.
### Phase 7: Testing & Verification
- [x] Dispatched to @the_commons
- [x] @the_commons replied with completion
- [x] Output reviewed — 72 ported tests + 10 integration tests = 82/82 passing. Syntax clean.
- [x] All tests passing — Verified: `pytest src/commons/tests/ -v` → 82 passed in 5.64s
- **Status:** COMPLETE
- **Owner:** @the_commons
- **Notes:** test_commons.py (72 tests, 11 classes — adapted imports, fixed room name collisions). test_lifecycle.py (10 integration tests: room→post→comment→vote→feed→search→thread→cascade delete→room filter→mentions). 83 .py files syntax checked — zero failures.
---
## Issues Log
Track issues here as you encounter them. Don't fix during build - log and continue.
| Phase | Issue | Severity | Attempted | Status |
|-------|-------|----------|-----------|--------|
| 1 | [description] | Low/Med/High | [what was tried] | Open/Resolved |
| 2 | [description] | Low/Med/High | [what was tried] | Open/Resolved |
**Severity Guide:**
- **High:** Blocks future phases, must fix before continuing
- **Med:** Affects functionality but can work around
- **Low:** Cosmetic, edge case, or false positive
**End of Build:** Review this log. Tackle High→Med→Low. Some Low issues may not need fixing.
---
## Master Plan Notes
**Cross-Phase Patterns:**
[Patterns discovered that span multiple phases]
**Blockers & Resolutions:**
[Significant blockers and how resolved]
**Adjustments:**
[Changes to planned phases - scope changes, phases added/merged]
---
## Final Completion Checklist
### Before Closing Master Plan
- [ ] All phases complete
- [ ] All sub-plans closed
- [ ] Issues Log reviewed - High/Med issues addressed
- [ ] Full seedgo audit: `cd /home/aipass/aipass_business/AIPass/src/aipass/seedgo && python3 apps/seedgo.py audit aipass` (80%+)
- [ ] Branch memories updated:
- [ ] `BRANCH.local.json` - full session log
- [ ] `BRANCH.observations.json` - patterns learned
- [ ] README.md updated (status, architecture, API - if build changed capabilities)
- [ ] Artifacts reviewed
- [ ] Final status to @vera (main contact for this build):
```bash
drone @ai_mail send @vera "FPLAN-0411 MASTER COMPLETE" "Full build summary: phases completed, seedgo score, deliverables, remaining issues (if any)"
```
**Completion Order:** Memories → README → Email (README before email - don't report complete with stale docs)
**Note:** DEV_CENTRAL will perform their own Seed audit for visibility into the work.
### Definition of Done
- `src/commons/` exists at `/home/aipass/aipass_business/AIPass/src/commons/` with full 3-layer architecture
- Entry point (`apps/the_commons.py`) routes all 50+ commands
- SQLite database initializes correctly (16 tables, 22 indexes, FTS5 virtual tables)
- All 22 modules ported and discoverable
- All 60 handler files ported with adapted imports
- Cross-branch integrations abstracted (lazy import + graceful fallback for prax, ai_mail, cli, devpulse)
- Database stored at `{AIPASS_ROOT}/.aipass/commons.db` (not in package)
- 72+ tests passing
- Trinity files in place
- README.md accurate
- No hardcoded dev-system paths
---
## Close Command
When ALL phases complete and checklist done:
```bash
drone @flow close FPLAN-0411
```
@@ -1,92 +0,0 @@
# DPLAN-0001: System Bootstrap
Tag: bootstrap
> Get all 15 modules operational with citizenship, comms, and branch awareness.
## Vision
Every module has citizenship (.trinity/), can receive email, and can be woken via dispatch. DevPulse has full visibility. The system runs as a coordinated multi-agent team.
## Current State
- All 15 branches registered, discoverable, and fully scaffolded
- All citizens are builder class (except devpulse = manager)
- 13/15 respond to `drone @branch --help` (devpulse has no apps/ by design, commons DB init fails)
- Import fixes complete: backup (16 files), daemon (8 files), skills (5 files)
- Commons entry point renamed (the_commons.py → commons.py)
- Wake + round-trip comms verified on @memory and @backup
- Seedgo audit: all branches passing (77-98%)
- gh CLI installed and authed for PR workflow
- 3 PRs merged: #17 (bootstrap), #18 (builder scaffold), #19 (commons/skills scaffold)
## What Needs Building
### Phase 1: Test Spawn Safety
- [x] Create mock test branch with apps/ to verify spawn passport doesn't clobber existing code
- [x] Verify birthright grants .trinity/ without touching apps/
- [x] Clean up test branch after verification
### Phase 2: Grant Citizenship
- [x] Grant birthright to backup (has apps/, is builder — but existing code, use passport)
- [x] Grant birthright to daemon (has apps/, same situation)
- [x] Grant birthright to memory (has apps/, same situation)
- [x] Grant birthright to skills (src/skills/, external)
- [x] Grant birthright to commons (src/commons/, external)
- [x] Clean stale test entries from registry (sync-registry --fix removed 6 stale)
### Phase 3: Drone Discovery
- [x] Verify `drone systems` shows all 15 branches
- [x] Test `drone @backup --help` — FIXED: agent converted 16 files relative→absolute imports
- [x] Test `drone @daemon --help` — FIXED: agent converted 8 files relative→absolute imports
- [x] Test `drone @memory --help` — WORKS
- [x] Test `drone @skills --help` — FIXED: added __main__ block + converted relative→absolute imports
- [x] Test `drone @commons --help` — FIXED: renamed the_commons.py → commons.py (DB init still fails, separate issue)
- [ ] Fix commons DB initialization (ported code, SQLite path issue)
### Phase 4: Wake & Comms
- [x] Send test email to each new citizen (all 5 delivered)
- [x] Verify inboxes receive messages (confirmed all 5)
- [x] Test wake on @memory — agent spawned successfully via dispatch
- [x] Confirm round-trip communication — memory replied to both emails, replies in devpulse inbox.json
- [ ] Fix `drone @ai_mail inbox` display — shows stale cached message, doesn't reflect actual inbox.json content
### Phase 5: Branch Prompts
- [x] Update devpulse local prompt (fixed paths, added all 15 modules with descriptions)
- [x] Fix devpulse passport (builder → manager)
- [ ] Build local prompts for new citizens (backup, daemon, memory, skills, commons)
- [x] Update global prompt branch count (10 → 15)
- [x] Disabled stale aipass_local_prompt.md
## Design Decisions
| Decision | Options | Leaning | Notes |
|----------|---------|---------|-------|
| commons/skills location | Move to src/aipass/ vs keep outside | Keep outside | They're not aipass system apps, they're external projects with their own namespace |
| Citizenship for existing code | spawn create vs spawn passport | passport | Passport adds .trinity/ without touching apps/ |
| Registry cleanup | Manual vs sync-registry --fix | sync-registry --fix | Let spawn's built-in tool handle it |
| Citizen class for ported code | birthright vs builder | builder | All branches with apps/ should be builder — birthright is for identity-only |
| External project scaffolding | spawn update vs manual | manual | spawn update can't reach outside src/aipass/, copy template files manually |
## Relationships
- **Related DPLANs:** None yet
- **Related FPLANs:** None yet
- **Owner branches:** devpulse (coordination), spawn (execution)
## Status
- [x] Planning
- [x] In Progress
- [ ] Ready for Execution
- [ ] Complete
- [ ] Abandoned
## Notes
Session 11. First DPLAN in AIPass. Patrick confirmed: commons and skills are NOT aipass system apps — they live outside src/aipass/ intentionally. Use spawn passport for existing directories to avoid clobbering code.
**Progress:** Phases 1-4 substantially complete. All 15 branches scaffolded as builder class. Wake + round-trip comms verified on @memory and @backup. Phase 5 partial — prompts need building for new citizens.
**Session 12:** Fixed skills (added __main__ + absolute imports), fixed commons routing (renamed entry point), cleaned registry stale entries manually, tested wake dispatch on @memory and @backup — both replied autonomously. Discovered passport was setting birthright instead of builder — fixed all 5, ran spawn update on backup/daemon/memory, manually scaffolded commons/skills. Installed gh CLI. PRs #17, #18, #19 merged.
**Remaining:** Commons DB init fix, ai_mail inbox display bug, branch prompts for new citizens, test registry isolation.
---
*Created: 2026-03-07*
*Updated: 2026-03-07*
@@ -1,129 +0,0 @@
# DPLAN-0002: Prompt Architecture & Standards
Tag: infrastructure
> Design the prompt system so every branch has exactly what it needs — no more, no less — and seedgo can enforce it.
## Vision
Every branch gets a local prompt that orients it instantly. The system prompt (CLAUDE.md) + hook-injected global prompt + branch local prompt work together without duplication. Seedgo has a standard to audit prompt quality. New branches get a prompt template from spawn.
## Current State
- **CLAUDE.md** — lean system prompt (startup, hard rules, navigation, memory, docker). ~30 lines. Good.
- **Hook-injected global prompt** — identity_injector.py injects AIPass system context every turn. Contains terminology, branch structure template, commands, dispatch syntax, hard rules, memories. ~80 lines. Heavy — overlaps with CLAUDE.md.
- **Devpulse local prompt** — rewritten session 14. Lean, operational. Has branch list (needed for orchestrator role). ~55 lines.
- **Other branch prompts** — vary wildly. Some copied from devpulse template, some minimal, some empty. No standard.
- **No seedgo standard** for prompt quality.
- **No spawn template** for local prompts — spawn scaffolds branches but doesn't generate a prompt.
### Key Insight: Three Prompt Layers
| Layer | File | Injected | Purpose |
|-------|------|----------|---------|
| System | `CLAUDE.md` | Every turn (by Claude Code) | Hard rules, startup, navigation |
| Global | Hook output (`identity_injector.py`) | Every turn (by hook) | AIPass context, terminology, commands |
| Local | `.aipass/aipass_local_prompt.md` | Every turn (by hook) | Branch identity, role-specific guidance |
**Problem:** System + Global overlap significantly. Both have commands, rules, structure. That's ~110 lines injected every turn with duplication.
## What Needs Building
### Phase 1: Prompt Templates
- [ ] Define what goes in each layer (system vs global vs local) — no overlap
- [ ] Create local prompt template for **worker branches** (most branches)
- [ ] Create local prompt template for **orchestrator** (devpulse only)
- [ ] Create local prompt template for **infrastructure** branches (drone, prax, seedgo — they serve others)
- [ ] Add template to spawn's scaffold so new branches get a prompt automatically
### Phase 2: Consolidate System + Global
- [ ] Audit overlap between CLAUDE.md and hook-injected global prompt
- [ ] Decide: merge into one, or split responsibilities cleanly
- [ ] Option A: CLAUDE.md has rules + startup, hook has AIPass context (no rules)
- [ ] Option B: Kill CLAUDE.md, put everything in hook (single source)
- [ ] Option C: Kill hook injection, put everything in CLAUDE.md (simpler)
- [ ] Reduce total injected tokens
### Phase 3: Seedgo Standard
- [ ] Add prompt standard to seedgo audit pack (e.g. `prompt_quality`)
- [ ] Checks: file exists, not empty, has Identity section, has Current Context, under max lines
- [ ] Checks: no directory structures (belong in README), no duplicated rules (belong in system prompt)
- [ ] Checks: has @branch address references where needed (orchestrator only)
### Phase 4: Migrate All Branches
- [ ] Audit all 15 branch prompts against the template
- [ ] Rewrite each to match template
- [ ] Run seedgo prompt_quality checker on all
## Design Decisions
| Decision | Options | Leaning | Notes |
|----------|---------|---------|-------|
| System + Global merge | A: split clean / B: merge to CLAUDE.md / C: merge to hook | A | Hook gives dynamic injection, CLAUDE.md is static. Both have value. |
| Branch list in prompts | Devpulse only / All branches / None | Devpulse only | Orchestrator needs awareness. Workers get instructions, don't need full map. |
| Prompt max lines | 30 / 50 / 80 | 50 | Worker branches ~30, orchestrator ~55, infra ~40. Ceiling at 80. |
| Seedgo enforcement | Advisory / Blocking | Advisory first | Start with checklist, not gate. Tighten later. |
| Local prompt sections | Fixed template / Flexible | Fixed core + flexible extras | Identity + How You Work + Current Context required. Rest optional per role. |
### What Goes Where
| Content | Layer | Why |
|---------|-------|-----|
| Startup protocol | System (CLAUDE.md) | Universal, rarely changes |
| Hard rules (imports, paths) | System (CLAUDE.md) | Universal, authoritative |
| Memory update guidance | System (CLAUDE.md) | Universal behavior |
| AIPass terminology | Global (hook) | Context, not rules |
| Branch structure template | Global (hook) | Shows what a branch looks like |
| Command reference | Global (hook) | Available to all, operational |
| Dispatch syntax | Global (hook) | Operational pattern |
| Branch identity/role | Local | Unique per branch |
| Branch-specific commands | Local | What THIS branch does |
| Branch list (15) | Local (devpulse only) | Orchestrator needs it |
| Current context/session | Local | Unique per branch |
### Worker Branch Template (draft)
```
# {BRANCH} — Branch Prompt
## Identity
You are {BRANCH} — {one-line role}. {What you do, what you don't do.}
## Your Commands
{Branch-specific commands from --help, just the key ones}
## How You Work
{Role-specific operational guidance — 3-5 bullets}
## Current Context (Session N)
**Date:** YYYY-MM-DD
{Active work, blockers, recent changes}
```
## Ideas
- Could generate prompt health report: `drone @seedgo prompt-audit` showing all branches, line counts, missing sections
- Prompt version tracking — when template changes, detect stale prompts across branches
- "Prompt diff" tool — compare branch prompt against template, show gaps
- Dynamic section injection — hook could inject inbox count, active plans, etc. (already does email count)
## Relationships
- **Related DPLANs:** DPLAN-0001 (system bootstrap — prompts are part of bootstrap)
- **Related FPLANs:** Will spawn FPLANs for Phase 2 (consolidation) and Phase 4 (migration)
- **Owner branches:** @devpulse (design), @seedgo (standard), @spawn (template)
## Status
- [x] Planning
- [ ] In Progress
- [ ] Ready for Execution
- [ ] Complete
- [ ] Abandoned
## Notes
- Session 14: Discovered prompt vs memory distinction through Patrick's feedback. "Prompts are signposts, memories are knowledge." Every-turn injection must be minimal.
- The hook-injected global prompt is the biggest opportunity — it's ~80 lines injected every single turn across every branch. Reducing that by even 30% saves significant tokens per session.
- Patrick's key insight: "branches take instructions from devpulse — they don't need the full map, just their own commands and identity."
---
*Created: 2026-03-08*
*Updated: 2026-03-08*
@@ -1,194 +0,0 @@
# FPLAN-001 - AIPass Path Rewire & Portability Fix (MASTER PLAN)
**Created**: 2026-03-06
**Branch**: src/aipass/devpulse
**Status**: Phase 5 (Final Verification)
**Type**: Master Plan (Multi-Phase)
**Reference**: DPLAN-047 (Path.home() Purge)
---
## Project Overview
### Goal
All 10 AIPass modules import cleanly on ANY system. Zero filesystem assumptions. Code runs after `pip install -e .` on Mac, Linux, CI runners, Docker — anywhere.
### CRITICAL: This is a Public Pip Package
AIPass is a PUBLIC pip package installable on ANY machine. There is NO `/home/aipass`. There is NO `aipass_core` directory. There is NO `.venv` at a known location. None of that exists outside Dev-Pass (the private source repo).
**Dev-Pass vs AIPass confusion is the #1 risk.** Code was ported from Dev-Pass where `/home/aipass` and `aipass_core` are real paths. Here, they are ghosts that crash on import.
### Only Valid Path Patterns
```python
# 1. Package-relative (where the code lives)
Path(__file__).resolve().parents[N]
# 2. Walk-up to repo root (finds AIPASS_REGISTRY.json)
def _find_repo_root() -> Path:
current = Path(__file__).resolve().parent
for parent in [current] + list(current.parents):
if (parent / "AIPASS_REGISTRY.json").exists():
return parent
return Path.cwd()
# 3. User's working directory
Path.cwd()
```
**Everything else is Dev-Pass baggage and MUST be removed or rewired.**
### Seedgo Standards Adjustment
Seedgo standards were built for Dev-Pass. Standards that don't align with public pip package reality MUST be adjusted:
- Shebang requirements: REMOVED (irrelevant for pip packages)
- `/home/aipass` reference paths in standards content: must be updated
- Any standard assuming filesystem structure beyond the package itself
### Reference Documentation
- `DPLAN-047_path_home_purge_portability_2026-03-06.md` (repo root)
- `docs/sub_agent_drops/path_home_audit.md` (full audit from session 1)
- `spawn/templates/agent.template/` (reference for correct patterns)
### Success Criteria
1. `pip install -e .` clean
2. All module top-level imports work (`from aipass.{module} import ...`)
3. `drone systems` shows 10 branches
4. `drone @seedgo verify` passes
5. `drone @seedgo audit aipass` runs without import crashes
6. Zero `Path.home()` or `/home/aipass` in functional code (comments/docstrings updated too)
7. Zero `aipass_core` references in functional code
---
## What We're Cleaning Up
This is a cleanup of Dev-Pass baggage. The code was ported from a private system that assumes `/home/aipass/aipass_core/` exists. We're making it universal.
### Fix Categories
1. **FUNCTIONAL** — `Path.home()`, `Path("/home/aipass/...")`, `aipass_core` in actual code logic → MUST fix or code crashes
2. **COMMENTS/DOCSTRINGS** — References to `/home/aipass` in documentation strings → Update to reflect package-relative reality
3. **STRING COMPARISONS** — Code checking for `aipass_core` in path parts → Adapt to new structure (`src/aipass/`)
### Fix Pattern
```python
# WRONG — Dev-Pass patterns (CRASH on any other system)
AIPASS_ROOT = Path.home() / "aipass_core"
ECOSYSTEM_ROOT = Path("/home/aipass")
SYSTEM_LOGS_DIR = Path("/home/aipass/system_logs")
# RIGHT — Package-relative
MODULE_ROOT = Path(__file__).resolve().parents[N] # N = depth to module root
# RIGHT — Walk-up finder (proven in drone/seedgo)
def _find_repo_root() -> Path:
current = Path(__file__).resolve().parent
for parent in [current] + list(current.parents):
if (parent / "AIPASS_REGISTRY.json").exists():
return parent
return Path.cwd()
# RIGHT — Logs go in package-relative location
LOGS_DIR = Path(__file__).resolve().parents[3] / "logs"
```
---
## Phase Definitions
### Phase 1: Safe Modules (drone, cli, spawn, devpulse) — COMPLETE
**Goal:** Fix LOW severity modules
**Result:** drone (2 files), cli (12 files), spawn (4 files) — all verified clean
**Remaining:** drone/config.py has 1 Path.home() for registry (quick fix), cli/__init__.py has 1 string comparison (cosmetic)
### Phase 2: Prax — COMPLETE
**Goal:** `from aipass.prax import logger` works AND deeper handler imports don't crash
**Scope:** ~47 hits across functional code, comments, and string comparisons. Key files: introspection.py (14), branch_detector.py (8), monitor_module.py (6), setup.py (5), log_watcher.py (4)
**Result:** 16 files functional fixes + 17 files comments/docstrings updated. All imports verified.
**Critical:** Unblocks all other modules since they import prax
### Phase 3: Trigger + Flow — COMPLETE
**Goal:** Fix CRITICAL import-time crashes + all Dev-Pass path references
**Scope:** trigger (~50 hits), flow (~70 hits). CRITICAL: plan_file.py ECOSYSTEM_ROOT, registry_monitor.py ECOSYSTEM_ROOT
**Result:** Trigger 23 files fixed, flow 37 files fixed. All CRITICAL crashes resolved.
**Parallel:** Yes, 2 agents
### Phase 4: AI Mail + API — COMPLETE
**Goal:** Fix the heaviest modules
**Scope:** ai_mail (~80 hits), api (~70 hits). CRITICAL: ai_mail/registry/read.py, api/log_streamer.py
**Result:** ai_mail 37 files fixed, api 35 files fixed. All CRITICAL crashes resolved.
**Parallel:** Yes, 2 agents
### Phase 5: Seedgo Standards + Verification — IN PROGRESS
**Goal:** Fix seedgo's own Dev-Pass references + full system test
**Scope:** ~60 hits in seedgo standards content (reference strings pointing to /home/aipass/standards/). Remove shebang standard. Update all reference paths. Run full import + drone verification.
**Critical:** Seedgo standards must reflect the public pip package reality
**Progress:**
- Seedgo standards: 30 files updated (Dev-Pass reference paths)
- Shebang standard: CREATED (new SHEBANG check that fails files with shebangs)
- Shebangs stripped: 205 files cleaned codebase-wide
- Meta docs: aligned to match checker format
- 4 bare import violations: FIXED
- Full verification: All 10 modules import clean, `drone systems` works
- Remaining: Running `seedgo audit` for final violations
---
## Phase Tracking
### Phase 1: Safe Modules
- **Status:** COMPLETE
- **Agents:** 4 (drone, cli, spawn, devpulse)
- **Result:** All verified clean. Minor residual hits (drone config.py, cli __init__.py)
### Phase 2: Prax
- **Status:** COMPLETE
- **Agents:** 1
- **Result:** 16 files functional fixes, 17 files comments/docstrings. All imports verified.
### Phase 3: Trigger + Flow
- **Status:** COMPLETE
- **Agents:** 2
- **Result:** Trigger 23 files, flow 37 files. All CRITICAL import crashes fixed.
### Phase 4: AI Mail + API
- **Status:** COMPLETE
- **Agents:** 2
- **Result:** ai_mail 37 files, api 35 files. All CRITICAL import crashes fixed.
### Phase 5: Seedgo Standards + Verification
- **Status:** IN PROGRESS
- **Agents:** 2 (1 for seedgo cleanup, 1 for final verification)
- **Progress:** 30 seedgo files updated, shebang standard created, 205 shebangs stripped, 4 bare imports fixed. All 10 modules import clean. Remaining: final seedgo audit pass.
---
## Issues Log
| Phase | Issue | Severity | Attempted | Status |
|-------|-------|----------|-----------|--------|
| 2 | Prax agent lost during session compaction | LOW | Retry deployed | RESOLVED |
| 3 | trigger/plan_file.py ECOSYSTEM_ROOT crash | CRITICAL | Phase 3 | RESOLVED |
| 3 | flow/registry_monitor.py ECOSYSTEM_ROOT crash | CRITICAL | Phase 3 | RESOLVED |
| 4 | ai_mail/registry/read.py import crash | CRITICAL | Phase 4 | RESOLVED |
| 4 | api/log_streamer.py import crash | CRITICAL | Phase 4 | RESOLVED |
| 5 | 4 bare import violations (missing aipass. prefix) | HIGH | Phase 5 | RESOLVED |
| 5 | 205 files with shebangs (irrelevant for pip pkg) | MEDIUM | Phase 5 | RESOLVED |
| 5 | Seedgo standards referencing Dev-Pass paths | HIGH | Phase 5 | RESOLVED |
| 5 | Final seedgo audit for remaining violations | MEDIUM | In progress | OPEN |
---
## Notes
- **PUBLIC PIP PACKAGE** — This is the core principle. Zero filesystem assumptions. Works on any machine.
- **Dev-Pass confusion is the #1 risk** — All code was ported from a system where /home/aipass exists. Be vigilant.
- Seedgo standards built for Dev-Pass MUST be adjusted: shebang standard removed, reference paths updated
- Shebangs are IRRELEVANT for pip packages — don't waste time on them, focus on functional path violations
- Some modules reference Dev-Pass infrastructure (AI_CENTRAL, MEMORY_BANK, telegram) — guard or remove
- 2-attempt rule: if a fix breaks something, note it and move on
- Comments/docstrings referencing /home/aipass should be updated too — clean break from Dev-Pass
---
## Definition of Done
All 5 success criteria pass in Docker container.
@@ -1,279 +0,0 @@
# FPLAN-0005 - Spawn Branch Scaffold Audit
**Created**: 2026-03-07
**Branch**: flow
**Status**: Active
**Type**: Standard Plan
---
## What Are Flow Plans?
Flow Plans (FPLANs) are for **BUILDING** - autonomous construction of systems, features, modules.
**This is NOT for:**
- Research or exploration (use agents directly)
- Quick fixes (just do it)
- Discussion or planning (that happens before creating the FPLAN)
**This IS for:**
- Building features or modules
- Single focused construction tasks
- Sub-plans within a master plan
---
## When to Use This vs Master Plan
| This (Default) | Master Plan |
|----------------|-------------|
| Single focused task | 3+ phases, complex build |
| Self-contained | Roadmap + multiple sub-plans |
| Quick build | Multi-session project |
| One phase of a master | Entire branch/system build |
**Need a master plan?** `drone @flow create "subject" master`
---
## Branch Directory Structure
Use dedicated directories - don't scatter files:
| Directory | Purpose |
|-----------|---------|
| `apps/` | Code (modules/, handlers/) |
| `tests/` | All test files |
| `tools/` | Utility scripts |
| `artifacts/` | Agent outputs |
| `docs/` | Documentation |
---
## Critical: Branch Manager Role
**You are the ORCHESTRATOR, not the builder.**
Your 200k context is precious. Burning it on file reads and code writing risks compaction during autonomous work. Agents have clean context - use them for ALL building.
| You Do (Orchestrator) | Agents Do (Builders) |
|-----------------------|----------------------|
| Create plans | Write code |
| Give instructions | Run tests |
| Review output | Read/modify files |
| Course correct | Research/exploration |
| Update memories | Heavy lifting |
| Send status emails | Single-task execution |
**Pattern:** Instruct agent → Wait for completion → Review output → Next step
---
## Seek Branch Expertise
Don't figure everything out alone. Other branches are domain experts - ask them first.
**Before building anything that touches another branch's domain:**
```bash
ai_mail send @branch "Question: [topic]" "I'm working on X and need guidance on Y. What's the best approach?"
```
**Common examples:**
- Building something with email? Ask @ai_mail how delivery works
- Need routing or @ resolution? Ask @drone
- Unsure about standards? Ask @seedgo for reference code
- Need persistent storage or search? Ask @memory_bank
- Event-driven behavior? Ask @trigger about their event system
- Dashboard integration? Ask @devpulse about update_section()
They have deep memory on their systems. A 1-email question saves you hours of guessing.
---
## Notepad
Keep `notepad.md` in your branch directory as a shared scratchpad during the build. Use it for:
- **Status updates** - Quick progress lines so the user can glance without asking
- **Questions for the user** - Non-urgent questions that can wait for the next check-in
- **Notes to self** - Decisions made, things to revisit, gotchas discovered
Update it as you work - lightweight, not formal. The user checks it when they want to, skips it when busy.
---
## Command Reference
When unsure about syntax, use `--help`:
```bash
# Flow - Plan management
drone @flow create . "subject" # Create plan (. = current dir)
drone @flow close FPLAN-XXXX # Close plan
drone @flow list # List active plans
drone @flow --help # Full help
# Seedgo - Quality gates
drone @seedgo checklist <file> # 10-point check on file
drone @seedgo audit @branch # Full branch audit
drone @seedgo --help # Full help
# AI_Mail - Status updates
drone @ai_mail send @devpulse "Subject" "Message"
drone @ai_mail --help # Full help
# Discovery
drone systems # All available modules
drone list @branch # Commands for branch
```
---
## Planning Phase
### Goal
All 10 branches are fully scaffolded citizens — each has `.trinity/` identity, `.aipass/` prompt, `.ai_mail.local/` mailbox, and all standard dirs from the spawn template. No code is overwritten — only missing pieces are added.
### Current State (Audit)
| Branch | .trinity/ | .aipass/ | .ai_mail.local/ | logs/ | Status |
|--------|:---------:|:--------:|:---------------:|:-----:|--------|
| **spawn** | YES | YES | YES | YES | COMPLETE |
| **devpulse** | YES | YES | YES | YES | COMPLETE |
| **ai_mail** | YES | MISSING | MISSING | YES | PARTIAL |
| **flow** | MISSING | MISSING | MISSING | YES | NEEDS SCAFFOLD |
| **prax** | MISSING | MISSING | MISSING | YES | NEEDS SCAFFOLD |
| **seedgo** | MISSING | MISSING | MISSING | YES | NEEDS SCAFFOLD |
| **trigger** | MISSING | MISSING | MISSING | YES | NEEDS SCAFFOLD |
| **api** | MISSING | MISSING | MISSING | MISSING | NEEDS SCAFFOLD |
| **cli** | MISSING | MISSING | MISSING | MISSING | NEEDS SCAFFOLD |
| **drone** | MISSING | MISSING | MISSING | MISSING | NEEDS SCAFFOLD |
### Approach
Deploy agents (one or more per branch) to add missing scaffold. Each agent:
1. Reads spawn's template (`src/aipass/spawn/templates/agent.template/`) to understand the standard
2. Reads the target branch to see what already exists
3. Adds ONLY what's missing — never overwrites existing files
4. Fills `.trinity/passport.json` with correct branch name, role, email (@name)
5. Creates stub `.aipass/branch_system_prompt.md` with branch-specific context
6. Sets up `.ai_mail.local/` mailbox structure
**Critical:** Existing code in `apps/`, `README.md`, etc. must NOT be touched. This is additive only.
### Reference Documents
- Template source: `src/aipass/spawn/templates/agent.template/`
- Mock example: `src/aipass/spawn/templates/agent_mock_branch/`
- Registry: `AIPASS_REGISTRY.json` (branch emails, paths, roles)
- Completed examples: `src/aipass/spawn/` and `src/aipass/devpulse/` (reference citizens)
---
## Agent Preparation (Before Deploying)
Agents can't work blind. They need context before they build.
**Your Prep Work (as orchestrator):**
1. [ ] Know where agent will work (branch path, key directories)
2. [ ] Identify files agent needs to reference or modify
3. [ ] Gather any specs, planning docs, or examples to include
4. [ ] Prepare COMPLETE instructions (agents are stateless)
**Agent's First Task (context building):**
- Agent should explore/read relevant files BEFORE writing code
- "First, read X and Y to understand the current structure"
- "Look at Z for the pattern to follow"
- Context-first, build-second
**What Agents DON'T Have:**
- No prior conversation history
- No memory files loaded automatically
- No knowledge of other branches
- Only what you put in their instructions
**Your instructions determine success - be thorough and specific.**
---
## Agent Instructions Template
```
You are working at [BRANCH_PATH].
TASK: [Specific single task]
CONTEXT:
- [What they need to know]
- Reference: [planning docs, existing code to study]
- First, READ the relevant files to understand current structure
DELIVERABLES:
- [Specific file or output expected]
- Tests → tests/
- Reports/logs → artifacts/reports/ or artifacts/logs/
CONSTRAINTS:
- Follow Seedgo standards (3-layer architecture)
- Do NOT modify files outside your task scope
- CROSS-BRANCH: Never modify other branches' files unless explicitly authorized by the user
- 2-ATTEMPT RULE: If something fails twice, note the issue and move on
- Do NOT go down rabbit holes debugging
WHEN COMPLETE:
- Verify code runs without syntax errors
- List files created/modified
- Note any issues encountered (with what was attempted)
```
---
## Execution Log
### 2026-03-07
- [ ] Created FPLAN-0005
- [ ] Agent deployed for: [task]
- [ ] Agent completed: [outcome]
- [ ] Seedgo checklist passed: [file]
- [ ] Memories updated
**Log Pattern:** Task → Agent → Outcome → Quality check → Next
**If production stops (critical blocker):**
```bash
drone @ai_mail send @devpulse "PRODUCTION STOPPED: FPLAN-0005" "Issue: [description]. Attempted: [what was tried]. Awaiting guidance."
```
---
## Notes
[Working notes, issues encountered, decisions made]
---
## Completion Checklist
### Before Closing
- [ ] All goals achieved
- [ ] Agent output reviewed and verified
- [ ] Seedgo checklist on new code: `drone @seedgo checklist <file>`
- [ ] Branch memories updated:
- [ ] `BRANCH.local.json` - session/work log
- [ ] `BRANCH.observations.json` - patterns learned (if any)
- [ ] README.md updated (if build changed status/capabilities)
- [ ] Status email sent to @devpulse:
```bash
drone @ai_mail send @devpulse "FPLAN-0005 Complete" "Summary of what was done, any issues, outcomes"
```
**Completion Order:** Memories → README → Email (README before email - don't report complete with stale docs)
### Definition of Done
All 10 branches have: `.trinity/passport.json`, `.trinity/local.json`, `.trinity/observations.json`, `.aipass/branch_system_prompt.md`, `.ai_mail.local/inbox.json`, `logs/` directory. No existing code was overwritten. `drone @seedgo audit aipass` shows improvement across the board.
---
## Close Command
When all boxes checked:
```bash
drone @flow close FPLAN-0005
```
@@ -1,253 +0,0 @@
# FPLAN-0007 - Seedgo Architecture Checker Activation
**Created**: 2026-03-07
**Branch**: flow
**Status**: Active
**Type**: Standard Plan
---
## What Are Flow Plans?
Flow Plans (FPLANs) are for **BUILDING** - autonomous construction of systems, features, modules.
**This is NOT for:**
- Research or exploration (use agents directly)
- Quick fixes (just do it)
- Discussion or planning (that happens before creating the FPLAN)
**This IS for:**
- Building features or modules
- Single focused construction tasks
- Sub-plans within a master plan
---
## When to Use This vs Master Plan
| This (Default) | Master Plan |
|----------------|-------------|
| Single focused task | 3+ phases, complex build |
| Self-contained | Roadmap + multiple sub-plans |
| Quick build | Multi-session project |
| One phase of a master | Entire branch/system build |
**Need a master plan?** `drone @flow create "subject" master`
---
## Branch Directory Structure
Use dedicated directories - don't scatter files:
| Directory | Purpose |
|-----------|---------|
| `apps/` | Code (modules/, handlers/) |
| `tests/` | All test files |
| `tools/` | Utility scripts |
| `artifacts/` | Agent outputs |
| `docs/` | Documentation |
---
## Critical: Branch Manager Role
**You are the ORCHESTRATOR, not the builder.**
Your 200k context is precious. Burning it on file reads and code writing risks compaction during autonomous work. Agents have clean context - use them for ALL building.
| You Do (Orchestrator) | Agents Do (Builders) |
|-----------------------|----------------------|
| Create plans | Write code |
| Give instructions | Run tests |
| Review output | Read/modify files |
| Course correct | Research/exploration |
| Update memories | Heavy lifting |
| Send status emails | Single-task execution |
**Pattern:** Instruct agent → Wait for completion → Review output → Next step
---
## Seek Branch Expertise
Don't figure everything out alone. Other branches are domain experts - ask them first.
**Before building anything that touches another branch's domain:**
```bash
ai_mail send @branch "Question: [topic]" "I'm working on X and need guidance on Y. What's the best approach?"
```
**Common examples:**
- Building something with email? Ask @ai_mail how delivery works
- Need routing or @ resolution? Ask @drone
- Unsure about standards? Ask @seedgo for reference code
- Need persistent storage or search? Ask @memory_bank
- Event-driven behavior? Ask @trigger about their event system
- Dashboard integration? Ask @devpulse about update_section()
They have deep memory on their systems. A 1-email question saves you hours of guessing.
---
## Notepad
Keep `notepad.md` in your branch directory as a shared scratchpad during the build. Use it for:
- **Status updates** - Quick progress lines so the user can glance without asking
- **Questions for the user** - Non-urgent questions that can wait for the next check-in
- **Notes to self** - Decisions made, things to revisit, gotchas discovered
Update it as you work - lightweight, not formal. The user checks it when they want to, skips it when busy.
---
## Command Reference
When unsure about syntax, use `--help`:
```bash
# Flow - Plan management
drone @flow create . "subject" # Create plan (. = current dir)
drone @flow close FPLAN-XXXX # Close plan
drone @flow list # List active plans
drone @flow --help # Full help
# Seedgo - Quality gates
drone @seedgo checklist <file> # 10-point check on file
drone @seedgo audit @branch # Full branch audit
drone @seedgo --help # Full help
# AI_Mail - Status updates
drone @ai_mail send @devpulse "Subject" "Message"
drone @ai_mail --help # Full help
# Discovery
drone systems # All available modules
drone list @branch # Commands for branch
```
---
## Planning Phase
### Goal
[What do you want to achieve? Specific end state.]
### Approach
[How will agents tackle this? What instructions will they need?]
### Reference Documents
[List any planning docs, specs, or examples to reference]
---
## Agent Preparation (Before Deploying)
Agents can't work blind. They need context before they build.
**Your Prep Work (as orchestrator):**
1. [ ] Know where agent will work (branch path, key directories)
2. [ ] Identify files agent needs to reference or modify
3. [ ] Gather any specs, planning docs, or examples to include
4. [ ] Prepare COMPLETE instructions (agents are stateless)
**Agent's First Task (context building):**
- Agent should explore/read relevant files BEFORE writing code
- "First, read X and Y to understand the current structure"
- "Look at Z for the pattern to follow"
- Context-first, build-second
**What Agents DON'T Have:**
- No prior conversation history
- No memory files loaded automatically
- No knowledge of other branches
- Only what you put in their instructions
**Your instructions determine success - be thorough and specific.**
---
## Agent Instructions Template
```
You are working at [BRANCH_PATH].
TASK: [Specific single task]
CONTEXT:
- [What they need to know]
- Reference: [planning docs, existing code to study]
- First, READ the relevant files to understand current structure
DELIVERABLES:
- [Specific file or output expected]
- Tests → tests/
- Reports/logs → artifacts/reports/ or artifacts/logs/
CONSTRAINTS:
- Follow Seedgo standards (3-layer architecture)
- Do NOT modify files outside your task scope
- CROSS-BRANCH: Never modify other branches' files unless explicitly authorized by the user
- 2-ATTEMPT RULE: If something fails twice, note the issue and move on
- Do NOT go down rabbit holes debugging
WHEN COMPLETE:
- Verify code runs without syntax errors
- List files created/modified
- Note any issues encountered (with what was attempted)
```
---
## Execution Log
### 2026-03-07
- [ ] Created FPLAN-0007
- [ ] Agent deployed for: [task]
- [ ] Agent completed: [outcome]
- [ ] Seedgo checklist passed: [file]
- [ ] Memories updated
**Log Pattern:** Task → Agent → Outcome → Quality check → Next
**If production stops (critical blocker):**
```bash
drone @ai_mail send @devpulse "PRODUCTION STOPPED: FPLAN-0007" "Issue: [description]. Attempted: [what was tried]. Awaiting guidance."
```
---
## Notes
[Working notes, issues encountered, decisions made]
---
## Completion Checklist
### Before Closing
- [ ] All goals achieved
- [ ] Agent output reviewed and verified
- [ ] Seedgo checklist on new code: `drone @seedgo checklist <file>`
- [ ] Branch memories updated:
- [ ] `BRANCH.local.json` - session/work log
- [ ] `BRANCH.observations.json` - patterns learned (if any)
- [ ] README.md updated (if build changed status/capabilities)
- [ ] Status email sent to @devpulse:
```bash
drone @ai_mail send @devpulse "FPLAN-0007 Complete" "Summary of what was done, any issues, outcomes"
```
**Completion Order:** Memories → README → Email (README before email - don't report complete with stale docs)
### Definition of Done
[What specifically defines complete for this plan?]
---
## Close Command
When all boxes checked:
```bash
drone @flow close FPLAN-0007
```
@@ -1,635 +0,0 @@
# FPLAN-0008 - Spawn Rebuild — Full Branch Lifecycle Manager (MASTER PLAN)
**Created**: 2026-03-07
**Branch**: flow
**Status**: Active
**Type**: Master Plan (Multi-Phase)
---
## What Are Flow Plans?
Flow Plans (FPLANs) are for **BUILDING** - autonomous construction of systems, features, modules. They're the structured way to execute work without constant human oversight.
**This is NOT for:**
- Research or exploration (use agents directly)
- Quick fixes (just do it)
- Discussion or planning (that happens before creating the FPLAN)
**This IS for:**
- Building new branches/modules
- Implementing features
- Multi-phase construction projects
- Autonomous execution
---
## Master Plan vs Default Plan
| | Master Plan | Default Plan |
|---|-------------|--------------|
| **Use when** | 3+ phases, complex build | Single focused task |
| **Structure** | Roadmap + sub-plans | Self-contained |
| **Phases** | Multiple, sequential | One |
| **Sub-plans** | Yes, one per phase | No |
| **Typical use** | Build entire branch | One phase of master |
**Pattern:**
```
Master Plan (roadmap)
├── Sub-plan Phase 1 (default template)
├── Sub-plan Phase 2 (default template)
├── Sub-plan Phase 3 (default template)
└── Sub-plan Phase 4 (default template)
```
**How to start:**
1. The user provides planning doc or instructions (coordinate with @devpulse)
2. Branch manager reads and understands scope
3. Branch manager creates master plan: `drone @flow create . "Build X" master`
4. Branch manager fills in phases, then executes autonomously
---
## Critical: Branch Manager Role
**You are the ORCHESTRATOR, not the builder.**
Your 200k context is precious. Burning it on file reads and code writing risks compaction during autonomous work. Agents have clean context - use them for ALL building.
| You Do (Orchestrator) | Agents Do (Builders) |
|-----------------------|----------------------|
| Create plans & sub-plans | Write code |
| Define phases | Run tests |
| Give agent instructions | Read/modify files |
| Review agent output | Research/exploration |
| Course correct | Heavy lifting |
| Update memories | Single-task execution |
| Send status emails | Build deliverables |
| Track phase progress | Quality checks on code |
**Master Plan Pattern:** Define all phases → Create sub-plan for Phase 1 → Deploy agent → Review → Close sub-plan → Email update → Next phase
---
## Seek Branch Expertise
Don't figure everything out alone. Other branches are domain experts - ask them first.
**Before building anything that touches another branch's domain:**
```bash
ai_mail send @branch "Question: [topic]" "I'm working on X and need guidance on Y. What's the best approach?"
```
**Common examples:**
- Building something with email? Ask @ai_mail how delivery works
- Need routing or @ resolution? Ask @drone
- Unsure about standards? Ask @seedgo for reference code
- Need persistent storage or search? Ask @memory_bank
- Event-driven behavior? Ask @trigger about their event system
- Dashboard integration? Ask @devpulse about update_section()
They have deep memory on their systems. A 1-email question saves you hours of guessing. For master plans spanning multiple domains, identify which branches to consult during phase definitions.
---
## Notepad
Keep `notepad.md` in your branch directory as a shared scratchpad during the build. Use it for:
- **Status updates** - Quick progress lines so the user can glance without asking
- **Questions for the user** - Non-urgent questions that can wait for the next check-in
- **Notes to self** - Decisions made, things to revisit, gotchas discovered
Update it as you work - lightweight, not formal. The user checks it when they want to, skips it when busy. Low friction both ways.
```bash
# Create it at plan start
echo "# Notepad - FPLAN-0008" > notepad.md
```
---
## Command Reference
When unsure about syntax, use `--help`:
```bash
# Flow - Plan management
drone @flow create . "Phase X: subject" # Create sub-plan (. = current dir)
drone @flow create . "subject" master # Create master plan
drone @flow close FPLAN-XXXX # Close plan
drone @flow list # List active plans
drone @flow status # Plan status
drone @flow --help # Full help
# Seedgo - Quality gates
drone @seedgo checklist <file> # 10-point check on file
drone @seedgo audit @branch # Full branch audit (before master close)
drone @seedgo --help # Full help
# AI_Mail - Status updates
drone @ai_mail send @devpulse "Subject" "Message"
drone @ai_mail inbox # Check your inbox
drone @ai_mail --help # Full help
# Discovery
drone systems # All available modules
drone list @branch # Commands for branch
```
---
## What is a Master Plan?
Master Plans are for **complex multi-phase projects**. You define all phases upfront, then create focused sub-plans for each phase.
**When to use:**
- 3+ distinct sequential phases
- Work spanning multiple sessions
- Need clear phase completion milestones
- Complex builds requiring sustained focus
**Pattern:** Master Plan = Roadmap | Sub-Plans = Focused Execution
---
## Project Overview
### Goal
Rebuild spawn from a create-only tool into a **full branch lifecycle manager** — matching and exceeding Dev-Pass cortex capabilities. When complete, spawn can create, update, delete, and sync branches. Template changes propagate system-wide with a single command. 100% seedgo audit compliance.
### Reference Documentation
- **Dev-Pass cortex** (reference, not source): `/home/coder/share/cortex/`
- `apps/modules/update_branch.py` — 965-line update system (the crown jewel)
- `apps/handlers/branch/change_detection.py` — ID-based rename detection
- `apps/handlers/branch/reconcile.py` — pre/post-flight verification
- `apps/handlers/json/ops.py` — deep merge + migrations
- `apps/handlers/registry/meta_ops.py` — template registry + branch metadata ops
- `apps/handlers/templates/sync.py` — managed file sync from source branches
- **Our spawn** (current state): `/home/coder/workspace/AIPass/src/aipass/spawn/`
- **Template**: `spawn/templates/agent.template/`
- **Existing tracking**: `.spawn/` dir per branch (template_registry, migrations stub, ignore files)
- **Registry**: `AIPASS_REGISTRY.json` at repo root
### Success Criteria
1. `drone @spawn create @newbranch` — creates branch from template (already works, wire through drone)
2. `drone @spawn update @branch` — fills missing scaffold, deep merges JSON, preserves code
3. `drone @spawn update --all` — batch update all branches
4. `drone @spawn sync-registry` — repair registry against filesystem
5. `drone @spawn delete @branch` — archive + deregister (with confirmation)
6. `.spawn/.branch_meta.json` tracks files by ID + hash per branch
7. `.spawn/.migrations.json` executes structural JSON transforms
8. Python files (.py) NEVER auto-overwritten — user code protected
9. Dry-run mode (`--dry-run`) for preview without execution
10. `drone @seedgo audit aipass` — spawn branch passes at highest possible score
---
## Branch Directory Structure
Every branch has dedicated directories. Use them correctly:
```
branch/
├── apps/ # Code (modules/, handlers/)
├── tests/ # All test files go here
├── tools/ # Utility scripts, helpers
├── artifacts/ # Agent outputs (reports, logs)
├── docs/ # Documentation
└── logs/ # Execution logs
```
**Rules:**
- Tests → `tests/` (not root, not random locations)
- Tools/scripts → `tools/`
- Agent artifacts → `artifacts/`
- Create subdirs if needed: `mkdir -p artifacts/reports artifacts/logs`
- **Never delete** - devpulse manages cleanup
- Future: artifacts auto-roll to Memory Bank
---
## Phase Definitions
Define ALL phases before starting work:
### Phase 1: Drone Adapter + CLI Wiring
**Goal:** Make spawn routable via `drone @spawn` — currently spawn is only callable directly, not through drone routing.
**Agent Task:**
- Create `spawn/apps/handlers/drone_adapter.py` following the pattern from other branches (e.g., `drone/apps/handlers/module_registry.py`)
- Register spawn in drone's module registry so `drone @spawn` resolves
- Wire existing `create` command through adapter
- Add `--help` output listing all commands (create, update, delete, sync-registry)
- Stub command routing for future commands (update, delete, sync-registry) — they can return "not yet implemented"
**Deliverables:**
- `spawn/apps/handlers/drone_adapter.py`
- Updated module registry entry
- `drone @spawn --help` works
- `drone @spawn create` routes to existing create logic
- Tests in `spawn/tests/`
### Phase 2: Branch Metadata + Reconciliation Handlers
**Goal:** Build the tracking infrastructure that update depends on. Each branch needs `.spawn/.branch_meta.json` (ID-based file tracking with hashes). Need handlers for: loading/saving metadata, reconciling tracked state vs filesystem, and change detection.
**Agent Task:**
- Create `spawn/apps/handlers/meta_ops.py` — load/save `.branch_meta.json`, generate metadata for existing branches (scan filesystem, assign IDs, compute hashes)
- Create `spawn/apps/handlers/reconcile.py` — compare `.branch_meta.json` vs actual filesystem (missing files, untracked files, hash mismatches)
- Create `spawn/apps/handlers/change_detection.py` — compare template registry vs branch metadata: detect renames (by ID), additions, content updates (by hash), pruned files
- Create `spawn/apps/handlers/json_ops.py` — deep merge (template structure + existing values), load/apply migrations from `.migrations.json`
- Reference cortex handlers for logic patterns but use AIPass conventions (imports, prax logging, Path resolution)
**Deliverables:**
- `spawn/apps/handlers/meta_ops.py`
- `spawn/apps/handlers/reconcile.py`
- `spawn/apps/handlers/change_detection.py`
- `spawn/apps/handlers/json_ops.py`
- Tests in `spawn/tests/`
### Phase 3: Update Command
**Goal:** Build `drone @spawn update @branch` — the core feature. Uses Phase 2 handlers to: load tracking, detect changes, backup, apply changes (add missing files, deep merge JSON, archive pruned), update tracking.
**Agent Task:**
- Create `spawn/apps/modules/update.py` — orchestrator for the update workflow:
1. Resolve branch path from registry
2. Load `.spawn/.template_registry.json` + `.spawn/.branch_meta.json`
3. If no branch_meta → generate from filesystem scan (first-time adoption)
4. Pre-flight reconciliation (reconcile.py)
5. Change detection (change_detection.py)
6. If `--dry-run` → print what would change, exit
7. Create backup of branch state
8. Execute: renames → additions → JSON deep merges → archive pruned
9. NEVER overwrite .py files — log as "manual review needed"
10. Update `.spawn/.branch_meta.json` with new state
11. Post-flight reconciliation to verify
- Wire `update` command into drone_adapter.py
- Support `--dry-run`, `--all` (batch), `--trace` (verbose logging)
**Deliverables:**
- `spawn/apps/modules/update.py`
- Updated `drone_adapter.py` with `update` routing
- `drone @spawn update @branch` works end-to-end
- `drone @spawn update --all` iterates all registered branches
- `drone @spawn update --dry-run @branch` previews without executing
- Tests in `spawn/tests/`
### Phase 4: Delete + Sync-Registry + Template Sync
**Goal:** Complete the lifecycle with delete (archive + deregister), registry repair, and managed file sync.
**Agent Task:**
- Create `spawn/apps/modules/delete.py`:
- Move branch to `.archive/deleted_branches/{name}_{timestamp}/`
- Remove from AIPASS_REGISTRY.json
- Require `--yes` flag to skip confirmation (default: confirm)
- Fire `branch_deleted` trigger event
- Create `spawn/apps/modules/sync_registry.py`:
- Scan `src/aipass/` for branches with `.trinity/passport.json`
- Compare against AIPASS_REGISTRY.json
- Report stale entries (registered but missing) and unregistered branches
- `--fix` flag to auto-repair
- Create `spawn/apps/modules/sync_templates.py`:
- Define `template_owners.json` — maps template files to authoritative source branches
- Pull latest versions of managed files from source branches into template
- Example: if devpulse owns DASHBOARD.local.json schema → sync latest into template
- Wire all commands into drone_adapter.py
- Add `drone @spawn --help` showing complete command list
**Deliverables:**
- `spawn/apps/modules/delete.py`
- `spawn/apps/modules/sync_registry.py`
- `spawn/apps/modules/sync_templates.py`
- `spawn/apps/handlers/templates/template_owners.json`
- Updated `drone_adapter.py`
- Tests in `spawn/tests/`
### Phase 5: Seedgo Compliance + Integration Testing
**Goal:** Get spawn to highest possible seedgo audit score. End-to-end integration tests. Verify the full lifecycle: create → update → re-update after template change → delete.
**Agent Task:**
- Run `drone @seedgo audit aipass` and focus on spawn branch violations
- Fix all fixable violations (imports, structure, docstrings, logging)
- Create integration test suite:
- Test create → verify scaffold complete
- Test update on fresh branch → verify metadata generated
- Test update after template change → verify additions detected
- Test update --dry-run → verify no filesystem changes
- Test JSON deep merge → verify values preserved, structure updated
- Test .py file protection → verify Python never overwritten
- Test delete → verify archive created + registry cleaned
- Test sync-registry → verify stale/missing detection
- Update spawn README.md with complete API documentation
- Update spawn's `.trinity/` identity files
**Deliverables:**
- All seedgo violations fixed
- `spawn/tests/test_lifecycle.py` — integration test suite
- Updated `spawn/README.md`
- Updated `.trinity/passport.json` reflecting new capabilities
- Final `drone @seedgo audit aipass` report showing spawn score
---
## Execution Philosophy
### Autonomous Power-Through
Master plans are for **autonomous execution**. Don't halt production every phase waiting for review.
**The Pattern:**
- Power through all phases
- Accumulate issues as you go
- Deal with issues at the end
- The user reviews the final result, not every step
**Why this works:**
- Context is precious - don't burn it chasing bugs
- Complete picture reveals which issues actually matter
- Many "bugs" resolve themselves when later phases complete
- Coordination time is for decisions, not babysitting
### The 2-Attempt Rule
When agent encounters an issue:
```
Attempt 1 → Failed?
↓
Attempt 2 → Failed?
↓
STOP. Mark as issue. Move on.
```
**Do NOT:**
- Try 5 different approaches
- Go down rabbit holes
- Burn context debugging
- Stop production for every error
**DO:**
- Note the issue clearly
- Note what was tried
- Move to next task
- Let branch manager decide priority
### Critical vs Non-Critical Issues
When you see an issue, decide:
| Question | If YES → | If NO → |
|----------|----------|---------|
| Does this block ALL future phases? | STOP. Investigate. | Continue. |
| Can the system work around this? | Continue. | STOP. Investigate. |
| Is this a syntax/import error? | Quick fix, continue. | - |
| Is this a logic/design problem? | Note it. Continue. | - |
**Critical (stop production):**
- Core module won't import at all
- Database/file system inaccessible
- Fundamental architecture wrong
**Non-critical (note and continue):**
- One command throws error but others work
- Registry not updating properly
- Edge case not handled
- Test failing but code runs
**Pattern:** Note issue → Continue building → Fix at end with complete picture
### False Positives Awareness
Seedgo audits are helpful but not infallible.
**When Seedgo flags something:**
1. Check if the code is actually correct from your understanding
2. If you're confident it's right → mark as false positive, move on
3. If you're unsure → note it, continue, review later
**Don't stop production for:**
- Style preferences (comments, spacing)
- Patterns that differ from Seedgo's but still work
- Checks that don't apply to your context
### Forward Momentum Summary
- **Don't stop to fix bugs during phases** - Note them, keep moving
- **Get complete picture first** - All phases done, THEN systematic fixes
- **Prevents:** Bug-fixing rabbit holes, premature optimization, scope creep
- **Review happens at END** - not every phase
### Production Stop Protocol
If something causes production to STOP (critical blocker), **immediately email @devpulse**:
```bash
drone @ai_mail send @devpulse "PRODUCTION STOPPED: FPLAN-0008" "Phase X halted. Issue: [description]. Attempted: [what was tried]. Awaiting guidance."
```
**Never leave a branch stopped without reporting.** The orchestration hub needs visibility into all work.
### Monitoring Resources
For quick status checks and debugging, these resources are available:
| Resource | Location | Purpose |
|----------|----------|---------|
| Branch logs | `logs/` directory | Local execution logs |
| JSON tree | `apps/json_templates/` | Module firing status |
| Prax monitor | `drone @prax monitor` | Real-time system events |
| Seedgo audit | `drone @seedgo audit @branch` | Code quality check |
Use these when you need to confirm status or investigate issues.
### Agent Deployment Per Phase
Each phase = focused agent deployment:
1. Create sub-plan: `drone @flow create . "Phase X: [name]"`
2. Write agent instructions in sub-plan
3. Deploy agent with single-task focus
4. Review agent output (don't rebuild yourself)
5. Seedgo checklist on new code
6. Close sub-plan
7. Update memories
8. Email status to @devpulse
9. Next phase
### Agent Preparation (Before Deploying)
Agents can't work blind. They need context before they build.
**Your Prep Work (as orchestrator):**
1. [ ] Know where agent will work (branch path, key directories)
2. [ ] Identify files agent needs to reference or modify
3. [ ] Gather any specs, planning docs, or examples to include
4. [ ] Prepare COMPLETE instructions (agents are stateless)
**Agent's First Task (context building):**
- Agent should explore/read relevant files BEFORE writing code
- "First, read X and Y to understand the current structure"
- "Look at Z for the pattern to follow"
- Context-first, build-second
**What Agents DON'T Have:**
- No prior conversation history
- No memory files loaded automatically
- No knowledge of other branches
- Only what you put in their instructions
**Your instructions determine success - be thorough and specific.**
### Agent Instructions Template
```
You are working at [BRANCH_PATH].
TASK: [Specific single task for this phase]
CONTEXT:
- [What they need to know]
- Reference: [planning docs, existing code to study]
- First, READ the relevant files to understand current structure
DELIVERABLES:
- [Specific file or output expected]
- Tests → tests/
- Reports/logs → artifacts/reports/ or artifacts/logs/
CONSTRAINTS:
- Follow Seedgo standards (3-layer architecture: apps/modules/handlers)
- Do NOT modify files outside your task scope
- CROSS-BRANCH: Never modify other branches' files unless explicitly authorized by the user in the planning doc
- 2-ATTEMPT RULE: If something fails twice, note the issue and move on
- Do NOT go down rabbit holes debugging
WHEN COMPLETE:
- Verify code runs without syntax errors
- List files created/modified
- Note any issues encountered (with what was attempted)
```
---
## Phase Tracking
### Phase 1: Drone Adapter + CLI Wiring
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending
- **Notes:**
### Phase 2: Branch Metadata + Reconciliation Handlers
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending
- **Notes:**
### Phase 3: Update Command
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending
- **Notes:**
### Phase 4: Delete + Sync-Registry + Template Sync
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending
- **Notes:**
### Phase 5: Seedgo Compliance + Integration Testing
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending
- **Notes:**
---
## Issues Log
Track issues here as you encounter them. Don't fix during build - log and continue.
| Phase | Issue | Severity | Attempted | Status |
|-------|-------|----------|-----------|--------|
| 1 | [description] | Low/Med/High | [what was tried] | Open/Resolved |
| 2 | [description] | Low/Med/High | [what was tried] | Open/Resolved |
**Severity Guide:**
- **High:** Blocks future phases, must fix before continuing
- **Med:** Affects functionality but can work around
- **Low:** Cosmetic, edge case, or false positive
**End of Build:** Review this log. Tackle High→Med→Low. Some Low issues may not need fixing.
---
## Master Plan Notes
**Cross-Phase Patterns:**
[Patterns discovered that span multiple phases]
**Blockers & Resolutions:**
[Significant blockers and how resolved]
**Adjustments:**
[Changes to planned phases - scope changes, phases added/merged]
---
## Final Completion Checklist
### Before Closing Master Plan
- [ ] All phases complete
- [ ] All sub-plans closed
- [ ] Issues Log reviewed - High/Med issues addressed
- [ ] Full branch audit: `drone @seedgo audit @branch`
- [ ] Branch memories updated:
- [ ] `BRANCH.local.json` - full session log
- [ ] `BRANCH.observations.json` - patterns learned
- [ ] README.md updated (status, architecture, API - if build changed capabilities)
- [ ] Artifacts reviewed (devpulse manages cleanup)
- [ ] Final email to @devpulse:
```bash
drone @ai_mail send @devpulse "FPLAN-0008 MASTER COMPLETE" "Full build summary: phases completed, deliverables, remaining issues (if any)"
```
**Completion Order:** Memories → README → Email (README before email - don't report complete with stale docs)
**Note:** Devpulse will perform its own Seedgo audit for visibility into the work.
### Definition of Done
1. All 5 commands work via drone: `create`, `update`, `delete`, `sync-registry`, `sync-templates`
2. `drone @spawn update --all` successfully updates all 10 branches from template
3. `.spawn/.branch_meta.json` exists in every branch with ID-based tracking
4. JSON deep merge preserves existing values while adopting template structure changes
5. Python files are never auto-overwritten during updates
6. `--dry-run` mode works for update and delete
7. Integration tests pass for full lifecycle (create → update → delete)
8. `drone @seedgo audit aipass` — spawn scores highest possible
9. spawn README.md documents complete API
10. spawn `.trinity/` identity reflects lifecycle manager role
---
## Close Command
When ALL phases complete and checklist done:
```bash
drone @flow close FPLAN-0008
```
@@ -1,609 +0,0 @@
# FPLAN-0009 - Citizen Classes — Template System + Passport Command (MASTER PLAN)
**Created**: 2026-03-07
**Branch**: flow
**Status**: Active
**Type**: Master Plan (Multi-Phase)
---
## What Are Flow Plans?
Flow Plans (FPLANs) are for **BUILDING** - autonomous construction of systems, features, modules. They're the structured way to execute work without constant human oversight.
**This is NOT for:**
- Research or exploration (use agents directly)
- Quick fixes (just do it)
- Discussion or planning (that happens before creating the FPLAN)
**This IS for:**
- Building new branches/modules
- Implementing features
- Multi-phase construction projects
- Autonomous execution
---
## Master Plan vs Default Plan
| | Master Plan | Default Plan |
|---|-------------|--------------|
| **Use when** | 3+ phases, complex build | Single focused task |
| **Structure** | Roadmap + sub-plans | Self-contained |
| **Phases** | Multiple, sequential | One |
| **Sub-plans** | Yes, one per phase | No |
| **Typical use** | Build entire branch | One phase of master |
**Pattern:**
```
Master Plan (roadmap)
├── Sub-plan Phase 1 (default template)
├── Sub-plan Phase 2 (default template)
├── Sub-plan Phase 3 (default template)
└── Sub-plan Phase 4 (default template)
```
**How to start:**
1. The user provides planning doc or instructions (coordinate with @devpulse)
2. Branch manager reads and understands scope
3. Branch manager creates master plan: `drone @flow create . "Build X" master`
4. Branch manager fills in phases, then executes autonomously
---
## Critical: Branch Manager Role
**You are the ORCHESTRATOR, not the builder.**
Your 200k context is precious. Burning it on file reads and code writing risks compaction during autonomous work. Agents have clean context - use them for ALL building.
| You Do (Orchestrator) | Agents Do (Builders) |
|-----------------------|----------------------|
| Create plans & sub-plans | Write code |
| Define phases | Run tests |
| Give agent instructions | Read/modify files |
| Review agent output | Research/exploration |
| Course correct | Heavy lifting |
| Update memories | Single-task execution |
| Send status emails | Build deliverables |
| Track phase progress | Quality checks on code |
**Master Plan Pattern:** Define all phases → Create sub-plan for Phase 1 → Deploy agent → Review → Close sub-plan → Email update → Next phase
---
## Seek Branch Expertise
Don't figure everything out alone. Other branches are domain experts - ask them first.
**Before building anything that touches another branch's domain:**
```bash
ai_mail send @branch "Question: [topic]" "I'm working on X and need guidance on Y. What's the best approach?"
```
**Common examples:**
- Building something with email? Ask @ai_mail how delivery works
- Need routing or @ resolution? Ask @drone
- Unsure about standards? Ask @seedgo for reference code
- Need persistent storage or search? Ask @memory_bank
- Event-driven behavior? Ask @trigger about their event system
- Dashboard integration? Ask @devpulse about update_section()
They have deep memory on their systems. A 1-email question saves you hours of guessing. For master plans spanning multiple domains, identify which branches to consult during phase definitions.
---
## Notepad
Keep `notepad.md` in your branch directory as a shared scratchpad during the build. Use it for:
- **Status updates** - Quick progress lines so the user can glance without asking
- **Questions for the user** - Non-urgent questions that can wait for the next check-in
- **Notes to self** - Decisions made, things to revisit, gotchas discovered
Update it as you work - lightweight, not formal. The user checks it when they want to, skips it when busy. Low friction both ways.
```bash
# Create it at plan start
echo "# Notepad - FPLAN-0009" > notepad.md
```
---
## Command Reference
When unsure about syntax, use `--help`:
```bash
# Flow - Plan management
drone @flow create . "Phase X: subject" # Create sub-plan (. = current dir)
drone @flow create . "subject" master # Create master plan
drone @flow close FPLAN-XXXX # Close plan
drone @flow list # List active plans
drone @flow status # Plan status
drone @flow --help # Full help
# Seedgo - Quality gates
drone @seedgo checklist <file> # 10-point check on file
drone @seedgo audit @branch # Full branch audit (before master close)
drone @seedgo --help # Full help
# AI_Mail - Status updates
drone @ai_mail send @devpulse "Subject" "Message"
drone @ai_mail inbox # Check your inbox
drone @ai_mail --help # Full help
# Discovery
drone systems # All available modules
drone list @branch # Commands for branch
```
---
## What is a Master Plan?
Master Plans are for **complex multi-phase projects**. You define all phases upfront, then create focused sub-plans for each phase.
**When to use:**
- 3+ distinct sequential phases
- Work spanning multiple sessions
- Need clear phase completion milestones
- Complex builds requiring sustained focus
**Pattern:** Master Plan = Roadmap | Sub-Plans = Focused Execution
---
## Project Overview
### Goal
Evolve spawn from a single-template system into a **class-based template system** where citizens have different types (builder, manager, researcher, birthright). Each class has its own template. Commands become class-aware. `update --all` scopes by class. A new `passport` command grants lightweight citizenship without full scaffold.
### Reference Documentation
- **Current spawn**: `/home/coder/workspace/AIPass/src/aipass/spawn/`
- **Current template**: `spawn/templates/agent.template/` (becomes `builder` template)
- **FPLAN-0008**: Spawn rebuild plan (completed — lifecycle commands working)
- **Session 7 design discussion**: citizen_classes key in local.json + MEMORY.md
- **Dev-Pass cortex templates**: `/home/coder/share/cortex/templates/` (had branch, business_branch, team — same concept, different naming)
- **daemon branch**: `/home/coder/workspace/AIPass/src/aipass/daemon/` — the real-world case that drove this design (needs citizenship without apps/)
### Success Criteria
1. `drone @spawn create builder @newbranch` — creates full 3-layer branch (current behavior, new syntax)
2. `drone @spawn create manager @ops` — creates manager-class citizen (lighter template)
3. `drone @spawn passport @daemon` — grants birthright only (.trinity/ + .aipass/ + registry)
4. `drone @spawn update builder --all` — updates only builder-class branches
5. `drone @spawn update --all` — BLOCKED with "specify a class" message
6. Passport stores `citizen_class` field — spawn reads it for routing
7. `agent.template/` renamed to `builder/` in templates dir
8. At least 2 templates: `builder` (full) and `birthright` (minimal)
9. All existing branches get `citizen_class: "builder"` in passport
10. 84+ tests still passing, new tests for class-based features
---
## Branch Directory Structure
Every branch has dedicated directories. Use them correctly:
```
branch/
├── apps/ # Code (modules/, handlers/)
├── tests/ # All test files go here
├── tools/ # Utility scripts, helpers
├── artifacts/ # Agent outputs (reports, logs)
├── docs/ # Documentation
└── logs/ # Execution logs
```
**Rules:**
- Tests → `tests/` (not root, not random locations)
- Tools/scripts → `tools/`
- Agent artifacts → `artifacts/`
- Create subdirs if needed: `mkdir -p artifacts/reports artifacts/logs`
- **Never delete** - devpulse manages cleanup
- Future: artifacts auto-roll to Memory Bank
---
## Phase Definitions
Define ALL phases before starting work:
### Phase 1: Template Restructure + Class Registry
**Goal:** Reorganize templates directory from single template to class-based structure. Create a class registry that maps class names to template dirs. Rename `agent.template/` to `builder/`.
**Agent Task:**
- Rename `spawn/templates/agent.template/` to `spawn/templates/builder/`
- Create `spawn/templates/birthright/` with minimal template:
- `.trinity/passport.json` (with `citizen_class: "birthright"`)
- `.trinity/local.json` (empty session template)
- `.trinity/observations.json` (empty observations template)
- `.aipass/branch_system_prompt.md` (placeholder prompt)
- `README.md` (minimal)
- `.spawn/.template_registry.json` (generated)
- Create `spawn/apps/handlers/class_registry.py`:
- `CITIZEN_CLASSES` dict mapping class name → template dir
- `get_template_dir(citizen_class)` → returns Path to template
- `get_available_classes()` → returns list of class names
- `validate_class(name)` → bool
- Update `spawn/apps/handlers/meta_ops.py` → `get_template_dir()` now accepts optional `citizen_class` param (default: "builder")
- Update all references to `agent.template` across spawn code
- Update `spawn/templates/agent_mock_branch/` references if needed
- Generate `.template_registry.json` for both builder and birthright templates
**Deliverables:**
- `spawn/templates/builder/` (renamed from agent.template)
- `spawn/templates/birthright/` (new minimal template)
- `spawn/apps/handlers/class_registry.py`
- Updated meta_ops.py
- All existing tests still pass
### Phase 2: Passport Command + Class-Aware Create
**Goal:** Build the `passport` command for lightweight citizenship. Make `create` class-aware with new syntax.
**Agent Task:**
- Create `spawn/apps/modules/passport.py` (thin module) + `spawn/apps/handlers/passport_ops.py` (implementation):
- `drone @spawn passport @dirname` — grants birthright to existing directory
- Creates .trinity/ with passport (citizen_class: "birthright"), local.json, observations.json
- Creates .aipass/ with branch_system_prompt.md
- Registers in AIPASS_REGISTRY.json
- Accepts `--role`, `--purpose` flags for passport fields
- If directory doesn't exist, creates it
- If .trinity/ already exists, error: "already a citizen"
- Update `spawn/apps/spawn.py` to route `passport` command
- Update `create` command to accept class as first arg:
- `drone @spawn create builder @path` (explicit class)
- `drone @spawn create @path` (default: builder, backward compatible)
- Wire class through to `_spawn_agent()` in core.py → passes class to template selection
- Add `citizen_class` field to passport.json template and create logic
**Deliverables:**
- `spawn/apps/modules/passport.py`
- `spawn/apps/handlers/passport_ops.py`
- Updated `spawn/apps/spawn.py` with passport + class-aware create
- Updated `spawn/apps/modules/core.py` with class routing
- Tests for passport command
### Phase 3: Class-Aware Update + Profile Check
**Goal:** Make update class-aware. `update --all` requires class. Update checks passport's citizen_class to know which template applies. Light citizens don't get builder scaffold forced on them.
**Agent Task:**
- Update `spawn/apps/handlers/update_ops.py`:
- `update_branch()` reads passport.json → gets `citizen_class` → selects correct template
- If no citizen_class in passport → default to "builder" (backward compat for existing branches)
- Template comparison uses class-appropriate template dir
- Update `update_all()`:
- REQUIRE class arg: `update_all(citizen_class, dry_run, trace)`
- `drone @spawn update --all` without class → error message: "Specify a class: drone @spawn update builder --all"
- `drone @spawn update builder --all` → only updates branches with citizen_class="builder"
- `drone @spawn update birthright --all` → only updates birthright branches
- Update CLI parsing in `spawn/apps/modules/update.py`:
- `["builder", "--all"]` → update all builders
- `["builder", "@branch"]` → update specific branch as builder
- `["@branch"]` → update using branch's own citizen_class from passport
- `["--all"]` → blocked
- Backfill: add `citizen_class: "builder"` to all 10 existing branch passports
**Deliverables:**
- Updated `spawn/apps/handlers/update_ops.py`
- Updated `spawn/apps/modules/update.py`
- All 10 existing passports updated with citizen_class
- Tests for class-scoped update
### Phase 4: Integration Testing + Seedgo Compliance
**Goal:** End-to-end testing of the full class system. Verify seedgo compliance.
**Agent Task:**
- Create integration tests:
- `passport @dirname` → verify birthright files created, registered
- `create builder @path` → verify full scaffold
- `create @path` → verify backward compat (defaults to builder)
- `update builder --all` → only touches builders, skips birthright
- `update --all` → blocked with clear error
- `update @birthright_branch` → uses birthright template, doesn't add apps/
- `passport` on existing citizen → error
- `delete @birthright_branch` → archive works for light citizens too
- Run `drone @seedgo audit aipass` → fix any new violations
- Update spawn README.md with new command syntax
- Update spawn --help text
**Deliverables:**
- `spawn/tests/test_citizen_classes.py`
- Updated README.md
- Seedgo compliance maintained
- All tests passing
---
## Execution Philosophy
### Autonomous Power-Through
Master plans are for **autonomous execution**. Don't halt production every phase waiting for review.
**The Pattern:**
- Power through all phases
- Accumulate issues as you go
- Deal with issues at the end
- The user reviews the final result, not every step
**Why this works:**
- Context is precious - don't burn it chasing bugs
- Complete picture reveals which issues actually matter
- Many "bugs" resolve themselves when later phases complete
- Coordination time is for decisions, not babysitting
### The 2-Attempt Rule
When agent encounters an issue:
```
Attempt 1 → Failed?
↓
Attempt 2 → Failed?
↓
STOP. Mark as issue. Move on.
```
**Do NOT:**
- Try 5 different approaches
- Go down rabbit holes
- Burn context debugging
- Stop production for every error
**DO:**
- Note the issue clearly
- Note what was tried
- Move to next task
- Let branch manager decide priority
### Critical vs Non-Critical Issues
When you see an issue, decide:
| Question | If YES → | If NO → |
|----------|----------|---------|
| Does this block ALL future phases? | STOP. Investigate. | Continue. |
| Can the system work around this? | Continue. | STOP. Investigate. |
| Is this a syntax/import error? | Quick fix, continue. | - |
| Is this a logic/design problem? | Note it. Continue. | - |
**Critical (stop production):**
- Core module won't import at all
- Database/file system inaccessible
- Fundamental architecture wrong
**Non-critical (note and continue):**
- One command throws error but others work
- Registry not updating properly
- Edge case not handled
- Test failing but code runs
**Pattern:** Note issue → Continue building → Fix at end with complete picture
### False Positives Awareness
Seedgo audits are helpful but not infallible.
**When Seedgo flags something:**
1. Check if the code is actually correct from your understanding
2. If you're confident it's right → mark as false positive, move on
3. If you're unsure → note it, continue, review later
**Don't stop production for:**
- Style preferences (comments, spacing)
- Patterns that differ from Seedgo's but still work
- Checks that don't apply to your context
### Forward Momentum Summary
- **Don't stop to fix bugs during phases** - Note them, keep moving
- **Get complete picture first** - All phases done, THEN systematic fixes
- **Prevents:** Bug-fixing rabbit holes, premature optimization, scope creep
- **Review happens at END** - not every phase
### Production Stop Protocol
If something causes production to STOP (critical blocker), **immediately email @devpulse**:
```bash
drone @ai_mail send @devpulse "PRODUCTION STOPPED: FPLAN-0009" "Phase X halted. Issue: [description]. Attempted: [what was tried]. Awaiting guidance."
```
**Never leave a branch stopped without reporting.** The orchestration hub needs visibility into all work.
### Monitoring Resources
For quick status checks and debugging, these resources are available:
| Resource | Location | Purpose |
|----------|----------|---------|
| Branch logs | `logs/` directory | Local execution logs |
| JSON tree | `apps/json_templates/` | Module firing status |
| Prax monitor | `drone @prax monitor` | Real-time system events |
| Seedgo audit | `drone @seedgo audit @branch` | Code quality check |
Use these when you need to confirm status or investigate issues.
### Agent Deployment Per Phase
Each phase = focused agent deployment:
1. Create sub-plan: `drone @flow create . "Phase X: [name]"`
2. Write agent instructions in sub-plan
3. Deploy agent with single-task focus
4. Review agent output (don't rebuild yourself)
5. Seedgo checklist on new code
6. Close sub-plan
7. Update memories
8. Email status to @devpulse
9. Next phase
### Agent Preparation (Before Deploying)
Agents can't work blind. They need context before they build.
**Your Prep Work (as orchestrator):**
1. [ ] Know where agent will work (branch path, key directories)
2. [ ] Identify files agent needs to reference or modify
3. [ ] Gather any specs, planning docs, or examples to include
4. [ ] Prepare COMPLETE instructions (agents are stateless)
**Agent's First Task (context building):**
- Agent should explore/read relevant files BEFORE writing code
- "First, read X and Y to understand the current structure"
- "Look at Z for the pattern to follow"
- Context-first, build-second
**What Agents DON'T Have:**
- No prior conversation history
- No memory files loaded automatically
- No knowledge of other branches
- Only what you put in their instructions
**Your instructions determine success - be thorough and specific.**
### Agent Instructions Template
```
You are working at [BRANCH_PATH].
TASK: [Specific single task for this phase]
CONTEXT:
- [What they need to know]
- Reference: [planning docs, existing code to study]
- First, READ the relevant files to understand current structure
DELIVERABLES:
- [Specific file or output expected]
- Tests → tests/
- Reports/logs → artifacts/reports/ or artifacts/logs/
CONSTRAINTS:
- Follow Seedgo standards (3-layer architecture: apps/modules/handlers)
- Do NOT modify files outside your task scope
- CROSS-BRANCH: Never modify other branches' files unless explicitly authorized by the user in the planning doc
- 2-ATTEMPT RULE: If something fails twice, note the issue and move on
- Do NOT go down rabbit holes debugging
WHEN COMPLETE:
- Verify code runs without syntax errors
- List files created/modified
- Note any issues encountered (with what was attempted)
```
---
## Phase Tracking
### Phase 1: Template Restructure + Class Registry
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending
- **Notes:**
### Phase 2: Passport Command + Class-Aware Create
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending
- **Notes:**
### Phase 3: Class-Aware Update + Profile Check
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending
- **Notes:**
### Phase 4: Integration Testing + Seedgo Compliance
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending
- **Notes:**
---
## Issues Log
Track issues here as you encounter them. Don't fix during build - log and continue.
| Phase | Issue | Severity | Attempted | Status |
|-------|-------|----------|-----------|--------|
| 1 | [description] | Low/Med/High | [what was tried] | Open/Resolved |
| 2 | [description] | Low/Med/High | [what was tried] | Open/Resolved |
**Severity Guide:**
- **High:** Blocks future phases, must fix before continuing
- **Med:** Affects functionality but can work around
- **Low:** Cosmetic, edge case, or false positive
**End of Build:** Review this log. Tackle High→Med→Low. Some Low issues may not need fixing.
---
## Master Plan Notes
**Cross-Phase Patterns:**
[Patterns discovered that span multiple phases]
**Blockers & Resolutions:**
[Significant blockers and how resolved]
**Adjustments:**
[Changes to planned phases - scope changes, phases added/merged]
---
## Final Completion Checklist
### Before Closing Master Plan
- [ ] All phases complete
- [ ] All sub-plans closed
- [ ] Issues Log reviewed - High/Med issues addressed
- [ ] Full branch audit: `drone @seedgo audit @branch`
- [ ] Branch memories updated:
- [ ] `BRANCH.local.json` - full session log
- [ ] `BRANCH.observations.json` - patterns learned
- [ ] README.md updated (status, architecture, API - if build changed capabilities)
- [ ] Artifacts reviewed (devpulse manages cleanup)
- [ ] Final email to @devpulse:
```bash
drone @ai_mail send @devpulse "FPLAN-0009 MASTER COMPLETE" "Full build summary: phases completed, deliverables, remaining issues (if any)"
```
**Completion Order:** Memories → README → Email (README before email - don't report complete with stale docs)
**Note:** Devpulse will perform its own Seedgo audit for visibility into the work.
### Definition of Done
1. `templates/` has `builder/` and `birthright/` (no more `agent.template/`)
2. `drone @spawn passport @daemon` creates .trinity/ + .aipass/ + registry entry
3. `drone @spawn create builder @path` creates full scaffold
4. `drone @spawn create @path` defaults to builder (backward compat)
5. `drone @spawn update builder --all` only touches builders
6. `drone @spawn update --all` blocked with clear error
7. All 10 existing passports have `citizen_class: "builder"`
8. daemon has `citizen_class: "birthright"` after passport command
9. All tests passing (84+ existing + new class tests)
10. Seedgo audit score maintained
---
## Close Command
When ALL phases complete and checklist done:
```bash
drone @flow close FPLAN-0009
```
@@ -1,514 +0,0 @@
# FPLAN-0010 - Fix seedgo standards: 3 checker bugs, doc paths, header regex (MASTER PLAN)
**Created**: 2026-03-08
**Branch**: flow
**Status**: Active
**Type**: Master Plan (Multi-Phase)
---
## What Are Flow Plans?
Flow Plans (FPLANs) are for **BUILDING** - autonomous construction of systems, features, modules. They're the structured way to execute work without constant human oversight.
**This is NOT for:**
- Research or exploration (use agents directly)
- Quick fixes (just do it)
- Discussion or planning (that happens before creating the FPLAN)
**This IS for:**
- Building new branches/modules
- Implementing features
- Multi-phase construction projects
- Autonomous execution
---
## Master Plan vs Default Plan
| | Master Plan | Default Plan |
|---|-------------|--------------|
| **Use when** | 3+ phases, complex build | Single focused task |
| **Structure** | Roadmap + sub-plans | Self-contained |
| **Phases** | Multiple, sequential | One |
| **Sub-plans** | Yes, one per phase | No |
| **Typical use** | Build entire branch | One phase of master |
**Pattern:**
```
Master Plan (roadmap)
├── Sub-plan Phase 1 (default template)
├── Sub-plan Phase 2 (default template)
├── Sub-plan Phase 3 (default template)
└── Sub-plan Phase 4 (default template)
```
**How to start:**
1. The user provides planning doc or instructions (coordinate with @devpulse)
2. Branch manager reads and understands scope
3. Branch manager creates master plan: `drone @flow create . "Build X" master`
4. Branch manager fills in phases, then executes autonomously
---
## Critical: Branch Manager Role
**You are the ORCHESTRATOR, not the builder.**
Your 200k context is precious. Burning it on file reads and code writing risks compaction during autonomous work. Agents have clean context - use them for ALL building.
| You Do (Orchestrator) | Agents Do (Builders) |
|-----------------------|----------------------|
| Create plans & sub-plans | Write code |
| Define phases | Run tests |
| Give agent instructions | Read/modify files |
| Review agent output | Research/exploration |
| Course correct | Heavy lifting |
| Update memories | Single-task execution |
| Send status emails | Build deliverables |
| Track phase progress | Quality checks on code |
**Master Plan Pattern:** Define all phases → Create sub-plan for Phase 1 → Deploy agent → Review → Close sub-plan → Email update → Next phase
---
## Seek Branch Expertise
Don't figure everything out alone. Other branches are domain experts - ask them first.
**Before building anything that touches another branch's domain:**
```bash
ai_mail send @branch "Question: [topic]" "I'm working on X and need guidance on Y. What's the best approach?"
```
**Common examples:**
- Building something with email? Ask @ai_mail how delivery works
- Need routing or @ resolution? Ask @drone
- Unsure about standards? Ask @seedgo for reference code
- Need persistent storage or search? Ask @memory_bank
- Event-driven behavior? Ask @trigger about their event system
- Dashboard integration? Ask @devpulse about update_section()
They have deep memory on their systems. A 1-email question saves you hours of guessing. For master plans spanning multiple domains, identify which branches to consult during phase definitions.
---
## Notepad
Keep `notepad.md` in your branch directory as a shared scratchpad during the build. Use it for:
- **Status updates** - Quick progress lines so the user can glance without asking
- **Questions for the user** - Non-urgent questions that can wait for the next check-in
- **Notes to self** - Decisions made, things to revisit, gotchas discovered
Update it as you work - lightweight, not formal. The user checks it when they want to, skips it when busy. Low friction both ways.
```bash
# Create it at plan start
echo "# Notepad - FPLAN-0010" > notepad.md
```
---
## Command Reference
When unsure about syntax, use `--help`:
```bash
# Flow - Plan management
drone @flow create . "Phase X: subject" # Create sub-plan (. = current dir)
drone @flow create . "subject" master # Create master plan
drone @flow close FPLAN-XXXX # Close plan
drone @flow list # List active plans
drone @flow status # Plan status
drone @flow --help # Full help
# Seedgo - Quality gates
drone @seedgo checklist <file> # 10-point check on file
drone @seedgo audit @branch # Full branch audit (before master close)
drone @seedgo --help # Full help
# AI_Mail - Status updates
drone @ai_mail send @devpulse "Subject" "Message"
drone @ai_mail inbox # Check your inbox
drone @ai_mail --help # Full help
# Discovery
drone systems # All available modules
drone list @branch # Commands for branch
```
---
## What is a Master Plan?
Master Plans are for **complex multi-phase projects**. You define all phases upfront, then create focused sub-plans for each phase.
**When to use:**
- 3+ distinct sequential phases
- Work spanning multiple sessions
- Need clear phase completion milestones
- Complex builds requiring sustained focus
**Pattern:** Master Plan = Roadmap | Sub-Plans = Focused Execution
---
## Project Overview
### Goal
[What is the end state when ALL phases complete?]
### Reference Documentation
[List planning docs, specs, existing code to reference]
### Success Criteria
[What defines DONE for the entire project?]
---
## Branch Directory Structure
Every branch has dedicated directories. Use them correctly:
```
branch/
├── apps/ # Code (modules/, handlers/)
├── tests/ # All test files go here
├── tools/ # Utility scripts, helpers
├── artifacts/ # Agent outputs (reports, logs)
├── docs/ # Documentation
└── logs/ # Execution logs
```
**Rules:**
- Tests → `tests/` (not root, not random locations)
- Tools/scripts → `tools/`
- Agent artifacts → `artifacts/`
- Create subdirs if needed: `mkdir -p artifacts/reports artifacts/logs`
- **Never delete** - devpulse manages cleanup
- Future: artifacts auto-roll to Memory Bank
---
## Phase Definitions
Define ALL phases before starting work:
### Phase 1: [Name]
**Goal:** [What this phase accomplishes]
**Agent Task:** [What the agent will build]
**Deliverables:** [Files/outputs expected]
### Phase 2: [Name]
**Goal:** [What this phase accomplishes]
**Agent Task:** [What the agent will build]
**Deliverables:** [Files/outputs expected]
### Phase 3: [Name]
**Goal:** [What this phase accomplishes]
**Agent Task:** [What the agent will build]
**Deliverables:** [Files/outputs expected]
### Phase 4: [Name]
**Goal:** [What this phase accomplishes]
**Agent Task:** [What the agent will build]
**Deliverables:** [Files/outputs expected]
[Add more phases as needed]
---
## Execution Philosophy
### Autonomous Power-Through
Master plans are for **autonomous execution**. Don't halt production every phase waiting for review.
**The Pattern:**
- Power through all phases
- Accumulate issues as you go
- Deal with issues at the end
- The user reviews the final result, not every step
**Why this works:**
- Context is precious - don't burn it chasing bugs
- Complete picture reveals which issues actually matter
- Many "bugs" resolve themselves when later phases complete
- Coordination time is for decisions, not babysitting
### The 2-Attempt Rule
When agent encounters an issue:
```
Attempt 1 → Failed?
↓
Attempt 2 → Failed?
↓
STOP. Mark as issue. Move on.
```
**Do NOT:**
- Try 5 different approaches
- Go down rabbit holes
- Burn context debugging
- Stop production for every error
**DO:**
- Note the issue clearly
- Note what was tried
- Move to next task
- Let branch manager decide priority
### Critical vs Non-Critical Issues
When you see an issue, decide:
| Question | If YES → | If NO → |
|----------|----------|---------|
| Does this block ALL future phases? | STOP. Investigate. | Continue. |
| Can the system work around this? | Continue. | STOP. Investigate. |
| Is this a syntax/import error? | Quick fix, continue. | - |
| Is this a logic/design problem? | Note it. Continue. | - |
**Critical (stop production):**
- Core module won't import at all
- Database/file system inaccessible
- Fundamental architecture wrong
**Non-critical (note and continue):**
- One command throws error but others work
- Registry not updating properly
- Edge case not handled
- Test failing but code runs
**Pattern:** Note issue → Continue building → Fix at end with complete picture
### False Positives Awareness
Seedgo audits are helpful but not infallible.
**When Seedgo flags something:**
1. Check if the code is actually correct from your understanding
2. If you're confident it's right → mark as false positive, move on
3. If you're unsure → note it, continue, review later
**Don't stop production for:**
- Style preferences (comments, spacing)
- Patterns that differ from Seedgo's but still work
- Checks that don't apply to your context
### Forward Momentum Summary
- **Don't stop to fix bugs during phases** - Note them, keep moving
- **Get complete picture first** - All phases done, THEN systematic fixes
- **Prevents:** Bug-fixing rabbit holes, premature optimization, scope creep
- **Review happens at END** - not every phase
### Production Stop Protocol
If something causes production to STOP (critical blocker), **immediately email @devpulse**:
```bash
drone @ai_mail send @devpulse "PRODUCTION STOPPED: FPLAN-0010" "Phase X halted. Issue: [description]. Attempted: [what was tried]. Awaiting guidance."
```
**Never leave a branch stopped without reporting.** The orchestration hub needs visibility into all work.
### Monitoring Resources
For quick status checks and debugging, these resources are available:
| Resource | Location | Purpose |
|----------|----------|---------|
| Branch logs | `logs/` directory | Local execution logs |
| JSON tree | `apps/json_templates/` | Module firing status |
| Prax monitor | `drone @prax monitor` | Real-time system events |
| Seedgo audit | `drone @seedgo audit @branch` | Code quality check |
Use these when you need to confirm status or investigate issues.
### Agent Deployment Per Phase
Each phase = focused agent deployment:
1. Create sub-plan: `drone @flow create . "Phase X: [name]"`
2. Write agent instructions in sub-plan
3. Deploy agent with single-task focus
4. Review agent output (don't rebuild yourself)
5. Seedgo checklist on new code
6. Close sub-plan
7. Update memories
8. Email status to @devpulse
9. Next phase
### Agent Preparation (Before Deploying)
Agents can't work blind. They need context before they build.
**Your Prep Work (as orchestrator):**
1. [ ] Know where agent will work (branch path, key directories)
2. [ ] Identify files agent needs to reference or modify
3. [ ] Gather any specs, planning docs, or examples to include
4. [ ] Prepare COMPLETE instructions (agents are stateless)
**Agent's First Task (context building):**
- Agent should explore/read relevant files BEFORE writing code
- "First, read X and Y to understand the current structure"
- "Look at Z for the pattern to follow"
- Context-first, build-second
**What Agents DON'T Have:**
- No prior conversation history
- No memory files loaded automatically
- No knowledge of other branches
- Only what you put in their instructions
**Your instructions determine success - be thorough and specific.**
### Agent Instructions Template
```
You are working at [BRANCH_PATH].
TASK: [Specific single task for this phase]
CONTEXT:
- [What they need to know]
- Reference: [planning docs, existing code to study]
- First, READ the relevant files to understand current structure
DELIVERABLES:
- [Specific file or output expected]
- Tests → tests/
- Reports/logs → artifacts/reports/ or artifacts/logs/
CONSTRAINTS:
- Follow Seedgo standards (3-layer architecture: apps/modules/handlers)
- Do NOT modify files outside your task scope
- CROSS-BRANCH: Never modify other branches' files unless explicitly authorized by the user in the planning doc
- 2-ATTEMPT RULE: If something fails twice, note the issue and move on
- Do NOT go down rabbit holes debugging
WHEN COMPLETE:
- Verify code runs without syntax errors
- List files created/modified
- Note any issues encountered (with what was attempted)
```
---
## Phase Tracking
### Phase 1: [Name]
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending / In Progress / Complete
- **Notes:** [Outcomes, issues, adjustments]
### Phase 2: [Name]
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending / In Progress / Complete
- **Notes:** [Outcomes, issues, adjustments]
### Phase 3: [Name]
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending / In Progress / Complete
- **Notes:** [Outcomes, issues, adjustments]
### Phase 4: [Name]
- [ ] Sub-plan created: FPLAN-____
- [ ] Agent deployed
- [ ] Agent completed
- [ ] Output reviewed
- [ ] Seedgo checklist passed
- [ ] Sub-plan closed
- [ ] Memories updated
- [ ] Email sent to @devpulse
- **Status:** Pending / In Progress / Complete
- **Notes:** [Outcomes, issues, adjustments]
[Copy template for additional phases]
---
## Issues Log
Track issues here as you encounter them. Don't fix during build - log and continue.
| Phase | Issue | Severity | Attempted | Status |
|-------|-------|----------|-----------|--------|
| 1 | [description] | Low/Med/High | [what was tried] | Open/Resolved |
| 2 | [description] | Low/Med/High | [what was tried] | Open/Resolved |
**Severity Guide:**
- **High:** Blocks future phases, must fix before continuing
- **Med:** Affects functionality but can work around
- **Low:** Cosmetic, edge case, or false positive
**End of Build:** Review this log. Tackle High→Med→Low. Some Low issues may not need fixing.
---
## Master Plan Notes
**Cross-Phase Patterns:**
[Patterns discovered that span multiple phases]
**Blockers & Resolutions:**
[Significant blockers and how resolved]
**Adjustments:**
[Changes to planned phases - scope changes, phases added/merged]
---
## Final Completion Checklist
### Before Closing Master Plan
- [ ] All phases complete
- [ ] All sub-plans closed
- [ ] Issues Log reviewed - High/Med issues addressed
- [ ] Full branch audit: `drone @seedgo audit @branch`
- [ ] Branch memories updated:
- [ ] `BRANCH.local.json` - full session log
- [ ] `BRANCH.observations.json` - patterns learned
- [ ] README.md updated (status, architecture, API - if build changed capabilities)
- [ ] Artifacts reviewed (devpulse manages cleanup)
- [ ] Final email to @devpulse:
```bash
drone @ai_mail send @devpulse "FPLAN-0010 MASTER COMPLETE" "Full build summary: phases completed, deliverables, remaining issues (if any)"
```
**Completion Order:** Memories → README → Email (README before email - don't report complete with stale docs)
**Note:** Devpulse will perform its own Seedgo audit for visibility into the work.
### Definition of Done
[What specifically defines the project complete?]
---
## Close Command
When ALL phases complete and checklist done:
```bash
drone @flow close FPLAN-0010
```
@@ -1,281 +0,0 @@
# FPLAN-0011 - Fix ai_mail caller identity detection for Docker and local
**Created**: 2026-03-08
**Branch**: flow
**Status**: Active
**Type**: Standard Plan
---
## What Are Flow Plans?
Flow Plans (FPLANs) are for **BUILDING** - autonomous construction of systems, features, modules.
**This is NOT for:**
- Research or exploration (use agents directly)
- Quick fixes (just do it)
- Discussion or planning (that happens before creating the FPLAN)
**This IS for:**
- Building features or modules
- Single focused construction tasks
- Sub-plans within a master plan
---
## When to Use This vs Master Plan
| This (Default) | Master Plan |
|----------------|-------------|
| Single focused task | 3+ phases, complex build |
| Self-contained | Roadmap + multiple sub-plans |
| Quick build | Multi-session project |
| One phase of a master | Entire branch/system build |
**Need a master plan?** `drone @flow create "subject" master`
---
## Branch Directory Structure
Use dedicated directories - don't scatter files:
| Directory | Purpose |
|-----------|---------|
| `apps/` | Code (modules/, handlers/) |
| `tests/` | All test files |
| `tools/` | Utility scripts |
| `artifacts/` | Agent outputs |
| `docs/` | Documentation |
---
## Critical: Branch Manager Role
**You are the ORCHESTRATOR, not the builder.**
Your 200k context is precious. Burning it on file reads and code writing risks compaction during autonomous work. Agents have clean context - use them for ALL building.
| You Do (Orchestrator) | Agents Do (Builders) |
|-----------------------|----------------------|
| Create plans | Write code |
| Give instructions | Run tests |
| Review output | Read/modify files |
| Course correct | Research/exploration |
| Update memories | Heavy lifting |
| Send status emails | Single-task execution |
**Pattern:** Instruct agent → Wait for completion → Review output → Next step
---
## Seek Branch Expertise
Don't figure everything out alone. Other branches are domain experts - ask them first.
**Before building anything that touches another branch's domain:**
```bash
ai_mail send @branch "Question: [topic]" "I'm working on X and need guidance on Y. What's the best approach?"
```
**Common examples:**
- Building something with email? Ask @ai_mail how delivery works
- Need routing or @ resolution? Ask @drone
- Unsure about standards? Ask @seedgo for reference code
- Need persistent storage or search? Ask @memory_bank
- Event-driven behavior? Ask @trigger about their event system
- Dashboard integration? Ask @devpulse about update_section()
They have deep memory on their systems. A 1-email question saves you hours of guessing.
---
## Notepad
Keep `notepad.md` in your branch directory as a shared scratchpad during the build. Use it for:
- **Status updates** - Quick progress lines so the user can glance without asking
- **Questions for the user** - Non-urgent questions that can wait for the next check-in
- **Notes to self** - Decisions made, things to revisit, gotchas discovered
Update it as you work - lightweight, not formal. The user checks it when they want to, skips it when busy.
---
## Command Reference
When unsure about syntax, use `--help`:
```bash
# Flow - Plan management
drone @flow create . "subject" # Create plan (. = current dir)
drone @flow close FPLAN-XXXX # Close plan
drone @flow list # List active plans
drone @flow --help # Full help
# Seedgo - Quality gates
drone @seedgo checklist <file> # 10-point check on file
drone @seedgo audit @branch # Full branch audit
drone @seedgo --help # Full help
# AI_Mail - Status updates
drone @ai_mail send @devpulse "Subject" "Message"
drone @ai_mail --help # Full help
# Discovery
drone systems # All available modules
drone list @branch # Commands for branch
```
---
## Planning Phase
### Goal
ai_mail caller identity detection works in both Docker containers and local environments. When devpulse sends an email via `drone @ai_mail send @spawn "Subject" "Body"`, ai_mail correctly identifies devpulse as the sender — regardless of mount paths.
### Problem
Drone routes commands to ai_mail via subprocess with `cwd=ai_mail_dir`. Drone passes `AIPASS_CALLER_CWD` env var with the original caller's directory. ai_mail's `branch_detection.py` reads this CWD and walks up looking for `.trinity/passport.json`, then matches against the registry.
In Docker: registry paths use container paths (`/home/coder/workspace/AIPass/...`) which are generated fresh. The CWD-to-registry path resolution fails when paths don't match exactly.
### Approach
Two-branch fix — drone and ai_mail cooperate:
**Phase 1 — Drone side** (`src/aipass/drone/apps/modules/router.py`):
- Detect caller branch name from CWD (walk up to find `.trinity/passport.json`, read `identity.name`)
- Pass as `AIPASS_CALLER_BRANCH` env var alongside existing `AIPASS_CALLER_CWD`
- Keep CWD — other branches may need it for different purposes
**Phase 2 — ai_mail side** (`src/aipass/ai_mail/apps/handlers/users/branch_detection.py`):
- Check `AIPASS_CALLER_BRANCH` first — direct name lookup in registry (path-independent)
- Fall back to `AIPASS_CALLER_CWD` path resolution (existing behavior)
- Fall back to `Path.cwd()` (original behavior)
**Phase 3 — Test in Docker**:
- Copy fixed files into `aipass-fresh-test` container
- Run `cd src/aipass/devpulse && drone @ai_mail send @spawn "Test" "Test body"`
- Verify email lands in spawn's inbox
- Verify sender is "@devpulse"
**Phase 4 — Test locally**:
- Run same command from local devpulse
- Verify existing ai_mail functionality still works
### Reference Documents
- `src/aipass/drone/apps/modules/router.py` — lines 57-66, AIPASS_CALLER_CWD
- `src/aipass/drone/apps/handlers/executor.py` — lines 46-50, env merge
- `src/aipass/ai_mail/apps/handlers/users/branch_detection.py` — lines 51-87, detect_branch_from_pwd()
- `src/aipass/ai_mail/apps/handlers/users/user.py` — lines 37-97, get_current_user()
---
## Agent Preparation (Before Deploying)
Agents can't work blind. They need context before they build.
**Your Prep Work (as orchestrator):**
1. [ ] Know where agent will work (branch path, key directories)
2. [ ] Identify files agent needs to reference or modify
3. [ ] Gather any specs, planning docs, or examples to include
4. [ ] Prepare COMPLETE instructions (agents are stateless)
**Agent's First Task (context building):**
- Agent should explore/read relevant files BEFORE writing code
- "First, read X and Y to understand the current structure"
- "Look at Z for the pattern to follow"
- Context-first, build-second
**What Agents DON'T Have:**
- No prior conversation history
- No memory files loaded automatically
- No knowledge of other branches
- Only what you put in their instructions
**Your instructions determine success - be thorough and specific.**
---
## Agent Instructions Template
```
You are working at [BRANCH_PATH].
TASK: [Specific single task]
CONTEXT:
- [What they need to know]
- Reference: [planning docs, existing code to study]
- First, READ the relevant files to understand current structure
DELIVERABLES:
- [Specific file or output expected]
- Tests → tests/
- Reports/logs → artifacts/reports/ or artifacts/logs/
CONSTRAINTS:
- Follow Seedgo standards (3-layer architecture)
- Do NOT modify files outside your task scope
- CROSS-BRANCH: Never modify other branches' files unless explicitly authorized by the user
- 2-ATTEMPT RULE: If something fails twice, note the issue and move on
- Do NOT go down rabbit holes debugging
WHEN COMPLETE:
- Verify code runs without syntax errors
- List files created/modified
- Note any issues encountered (with what was attempted)
```
---
## Execution Log
### 2026-03-08
- [ ] Created FPLAN-0011
- [ ] Agent deployed for: [task]
- [ ] Agent completed: [outcome]
- [ ] Seedgo checklist passed: [file]
- [ ] Memories updated
**Log Pattern:** Task → Agent → Outcome → Quality check → Next
**If production stops (critical blocker):**
```bash
drone @ai_mail send @devpulse "PRODUCTION STOPPED: FPLAN-0011" "Issue: [description]. Attempted: [what was tried]. Awaiting guidance."
```
---
## Notes
[Working notes, issues encountered, decisions made]
---
## Completion Checklist
### Before Closing
- [ ] All goals achieved
- [ ] Agent output reviewed and verified
- [ ] Seedgo checklist on new code: `drone @seedgo checklist <file>`
- [ ] Branch memories updated:
- [ ] `BRANCH.local.json` - session/work log
- [ ] `BRANCH.observations.json` - patterns learned (if any)
- [ ] README.md updated (if build changed status/capabilities)
- [ ] Status email sent to @devpulse:
```bash
drone @ai_mail send @devpulse "FPLAN-0011 Complete" "Summary of what was done, any issues, outcomes"
```
**Completion Order:** Memories → README → Email (README before email - don't report complete with stale docs)
### Definition of Done
[What specifically defines complete for this plan?]
---
## Close Command
When all boxes checked:
```bash
drone @flow close FPLAN-0011
```