docs(system): README update — init-anywhere, recent work (#54)

* chore: project-level PostToolUse hook + builder agent definition + prompt update

- .claude/settings.json: Added PostToolUse hook (Edit|Write|MultiEdit) for
  auto-fix diagnostics at project level (investigating subagent hook delivery)
- .claude/agents/builder.md: Custom builder agent with auto-fix PostToolUse hook
  (not yet accessible via Agent tool subagent_type — investigating)
- .aipass/aipass_global_prompt.md: Added "stage from git, not from memory" rule
- .gitignore: Added memory fragmented config/state files

Co-Authored-By: @seedgo <seedgo@aipass>

* docs(system): README update — init-anywhere story, recent work sync

Add init-anywhere as a core capability. Update recently completed with CLI front door,
memory introspection overhaul, seedgo standards enforcement. Refresh STATUS.md sync.

Co-Authored-By: @devpulse <devpulse@aipass>

---------

Co-authored-by: @seedgo <seedgo@aipass>
Co-authored-by: @devpulse <devpulse@aipass>
This commit is contained in:
AIPass
2026-03-15 22:36:25 -07:00
committed by GitHub
co-authored by @devpulse @seedgo
parent d46b7b512e
commit 75009603f5
6 changed files with 82 additions and 16 deletions
+2
View File
@@ -114,6 +114,8 @@ gh pr create --title "feat(branch): ..." --body "..."
Co-Authored-By: @{branch} <{branch}@aipass>
```
**Stage from git, not from memory.** Use `git diff --stat` or `git status` to see what's actually changed, then stage those files. Never manually list files to commit from memory — you'll try to add gitignored files or miss real changes. Trust `.gitignore` and let git tell you what changed.
**Never merge.** Only devpulse or Patrick merge PRs. If your PR gets feedback, fix the issues, commit, and push to the same git branch — the PR updates automatically.
## Context Guardrail
+16
View File
@@ -0,0 +1,16 @@
---
name: builder
description: General-purpose builder agent with auto-fix validation. Use this instead of general-purpose when the agent will be writing or editing code.
hooks:
PostToolUse:
- matcher: "Edit|Write|MultiEdit"
hooks:
- type: command
command: "python3 /home/patrick/.claude/hooks/auto_fix_diagnostics.py"
---
You are a builder agent for the AIPass project. You write code, edit files, and run tests.
After every file edit, the auto-fix hook will validate your changes and surface any issues. If you see validation errors in the hook output, fix them immediately before moving on.
Follow project standards — use `pathlib.Path` not string concatenation, `encoding='utf-8'` on all `open()` calls, proper Optional syntax (`str | None = None` not `str = None`).
+14 -1
View File
@@ -10,5 +10,18 @@
],
"defaultMode": "acceptEdits"
},
"skipDangerousModePermissionPrompt": true
"skipDangerousModePermissionPrompt": true,
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write|MultiEdit",
"hooks": [
{
"type": "command",
"command": "python3 /home/patrick/.claude/hooks/auto_fix_diagnostics.py"
}
]
}
]
}
}
+2
View File
@@ -63,3 +63,5 @@ backup_data/
backups
backup_system
src/aipass/flow/CLOSED_PLANS.local.json
src/aipass/memory/config/fragmented_memory_config.json
src/aipass/memory/config/fragmented_memory_state.json
+9 -5
View File
@@ -19,22 +19,26 @@ An operating system for AI agents. Not a chatbot wrapper. Not a prompt chain. A
- **Standards enforcement** keeps the system consistent as it grows (seedgo runs 24+ automated checks)
- **Inter-agent messaging** lets citizens email each other, dispatch tasks, and wake each other up
- **Everything is tracked** — design plans (DPLANs), execution plans (FPLANs), and seedgo audits make changes traceable even when 500+ files change in a single session
- **Init anywhere** — `aipass init` turns any directory into a self-contained AI workspace with its own registry, identity, and memories. No repo required. A business project, a research folder, a side project — each gets its own isolated environment that works immediately
## Current State: Beta
**It works.** 15 branches are operational, tested, and communicating. We're past prototyping and into hardening — building the infrastructure that makes the system reliable at scale.
**It works.** 14 of 15 branches are operational, tested, and communicating. 53 PRs merged. 30+ orchestration sessions. We're past prototyping and into hardening — building the infrastructure that makes the system reliable at scale.
**Recently completed:**
- **Credential model** — UUID-based registry matching is live. Every project gets a unique registry ID, every citizen's passport carries it. `aipass init` creates a new project in any directory with its own credentials. Agents always know which project they belong to, even with multiple AIPass projects on the same machine.
- **CLI front door + init anywhere** — full discovery chain rebuilt so users can find and use `aipass init` through natural exploration. CLI rewritten to seedgo's auto-discovery pattern. Registered as a drone internal module — `drone @cli aipass init` works from any directory on any system, before any project exists. Creates a registry (UUID), passport, `.trinity/` memories, prompt files, and hooks. Every project is fully self-contained — no shared state, no cross-contamination between workspaces.
- **Memory introspection overhaul** — memory branch rewired to seedgo-compliant CLI discovery. Rollover and search introspection rebuilt. 18+ files ported back from archives (symbolic reasoning, templates, pool processor). Templates modernization in progress (FPLAN-0052).
- **Seedgo standards enforcement** — checklist command fixed, checker false positives addressed, handler guards added. PR #52 open.
- **Credential model** — UUID-based registry matching is live. Every project gets a unique registry ID, every citizen's passport carries it. `aipass init` creates a new project in any directory with its own credentials.
- **Stderr routing** — system-wide migration across 10 branches (48 files). CLI owns the display layer (`error()`, `warning()`, `fatal()` all route to stderr). Seedgo enforces it with an automated checker.
- **Dashboard pipeline** — Prax now owns the dashboard end-to-end. Per-branch `STATUS.local.md` files sync to a central `STATUS.md` via `drone @prax status sync`. DevPulse section removed — it's a coordinator, not a service.
- **CLI init** — `aipass init` migrated from prototype to CLI branch. Creates registry, passport, `.trinity/`, hooks — everything needed to bootstrap a new project. 99% seedgo compliance.
- **Drone test suite** — 188 tests across 5 files. Interactive mode for human-facing commands (backup snapshot, versioned). Credential verification with dedicated error hierarchy.
- **Dashboard pipeline** — Prax owns the dashboard end-to-end. Per-branch `STATUS.local.md` files sync to a central `STATUS.md` via `drone @prax status sync`.
- **Drone test suite** — 188 tests across 5 files. Interactive mode for human-facing commands. Credential verification with dedicated error hierarchy.
- **System governance** — git workflow, commit signing (`Co-Authored-By: @branch`), DPLAN/FPLAN documentation, and "How to Work" guidelines all codified in the global prompt.
**What we're solving now:**
- **Memory subsystem wiring** — symbolic reasoning, templates, and pool processor modules ported back but need full integration and testing. Templates modernization (spawn handler, v2 schema) in progress.
- **Lint cleanup** — 474 ruff violations remain (mostly unused imports from unwired modules). Blocked until seedgo audit coverage is higher — we can't confidently remove imports until we know what's actually used.
- **Dashboard CLI routing** — the Python API works but `drone @prax dashboard refresh --all` fails because argparse eats the flags before the module sees them. Known bug, fix pending.
- **Cross-platform reliability** — Linux and Windows tested. macOS is structurally supported but needs a dedicated testing pass. All paths use `pathlib`, no hardcoded paths, secrets stored at `~/.secrets/aipass/`.
+39 -10
View File
@@ -2,7 +2,7 @@
> Auto-generated by `drone @prax status sync`. Do not edit manually.
**Last sync:** 2026-03-14 23:55
**Last sync:** 2026-03-15 22:31
**Summary:** 14 operational | 1 in-progress | 0 not started
---
@@ -189,6 +189,7 @@
- [ ] Add --model support to wake.py for dispatched branches
## Recently Completed
- Session 31: CLI front door (seedgo-compliant discovery + drone internal module), statusline git branch, Rich colors, DPLAN-0044, aipass init external test, 6 research agents, OpenClaw comparison, PR #51 (2026-03-15)
- Session 29: Merged 8 PRs (#39-48), ruff investigation (612→474), dispatch reply breadcrumb, /prep broadened (2026-03-14)
- Session 28: Global prompt governance, DPLAN/FPLAN, Git Workflow, How-to-Work, PR #41+#42 merged (2026-03-14)
- Prax Phase 1+2: dashboard devpulse section removed, refresh pipeline 4 bugs fixed (2026-03-14)
@@ -199,9 +200,14 @@
## Notepad
> **SCRATCH SPACE — gets wiped at session start or topic change.**
- Git on `feat/session-29-cleanup`. PR #49 open — needs merge.
- Prax and CLI both wrapped up (/prep done, PRs created)
- Inbox empty
- On `feat/cli-front-door-and-drone-adapter` branch. PR #51 open. 1 uncommitted change: global prompt git staging rule.
- CLI dispatched agent committed directly to main (bfeb6c0) — also on this branch. Needs merge coordination.
- ~/test_aipass exists — Patrick's first external init test. Can clean up or keep.
- Docker test container `aipass-test-run` still running — can reuse or remove.
- Fresh install gaps still open: seedgo pyproject.toml entry, CLAUDE.md in setup.sh, seedgo audit routing.
- DPLAN-0044 (front door) active — next steps: .claude/ hooks in init, cross-project comms, `drone aipass` shortcut.
- Full multi-agent landscape research completed. Reports in agent output files (will lose on compaction — key findings saved to key_learnings).
- OpenClaw deep comparison completed — they have better memory/auth, we have better governance/portability/scale.
</details>
@@ -257,25 +263,48 @@
</details>
<details><summary><strong>@memory</strong> — Operational (2026-03-10)</summary>
<details><summary><strong>@memory</strong> — Operational (2026-03-15)</summary>
# @memory
> Vector memory bank — ChromaDB, sentence-transformers
> Vector memory archive — ChromaDB, sentence-transformers
**State:** Operational
**Last update:** 2026-03-10
**Last update:** 2026-03-15
## Milestones
- ChromaDB integration
- Auto-rollover at 800 lines
- Auto-rollover at 600 lines (v2 entry-count mode)
- Searchable vector archive
- FPLAN-0026 complete (rollover E2E, search, plans archival)
## Current Work
-
- DPLAN-0045: CLI Introspection Overhaul — introspection DONE, remaining tracks open
- [x] Rollover introspection (FPLAN-0047) — PR #53
- [x] Search introspection (FPLAN-0049) — PR #53
- [ ] Reconnect disconnected handlers (central_writer, dashboard_push)
- [x] Restore lost subsystems (symbolic, templates, pool_processor) — session 8, 18+ files ported
- DPLAN-0051: Templates Modernization + Spawn Handler
- [x] Research complete (spawn template system, handler deep reads)
- FPLAN-0052: Templates Module Modernization + Spawn Handler
- [x] Phase 1: Modernized templates.py, pusher.py, differ.py (imports, paths, introspection)
- [x] Phase 2: Updated canonical templates to v2 schema
- [ ] Phase 3: spawn_pusher.py handler (in progress)
- [ ] Phase 4: Wire spawn_pusher into templates.py, verify all commands
## Known Issues
- None known
- `search` fails without torch/sentence-transformers installed
- central_writer.py and dashboard_push.py exist but not called post-rollover
- Symbolic + templates modules ported but not yet wired/tested (old imports in symbolic)
- DPLANs not vectorized on close (flow-side issue)
## Notepad
- #@comment:Patrick: Discuss ghost commands, and how we can properly enforce --flags standard, can we detect ghost commands?
- Ghost commands now removed from help (session 7). Ghost commands for templates+symbolic will come BACK once those modules are wired
- Session 8: Full system audit (7 agents), file port (18+ files), templates modernization (FPLAN-0052)
- Memory at 25/25 key_learnings — next addition triggers rollover
- Old memory bank had ~4,180 vectors. Current has 127. Patrick wants full vector port eventually
- spawn has template_owners.json (empty) — memory should populate it as authoritative source for .trinity files
</details>