Files
AIPass/STATUS.md
T

947 lines
52 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AIPass — System Status
> Auto-generated by `drone @prax status sync`. Do not edit manually.
**Last sync:** 2026-04-14 20:58
**Summary:** 8 operational | 0 in-progress | 0 not started
---
<details><summary><strong>@ai_mail</strong> — Operational (2026-04-07 (session 30))</summary>
# @ai_mail
> Inter-branch email, dispatch, wake, bounce
**State:** Operational
**Last update:** 2026-04-07 (session 30)
## Milestones
- Send/receive/reply/close lifecycle
- Dispatch+wake pattern (combined `dispatch` command)
- Sender identity fix (AIPASS_BRANCH_NAME env var)
- email.py split (840 to 420 lines)
- notify-send to dbus notifications
- mailbox_path bug fixed (relative→absolute in get_user_by_email, get_all_users)
- Health audit: 7 dead handlers archived, branch cleaned
- Venv PATH guarantee in dispatch (wake.py + dispatch_monitor.py)
- Phase 1 dispatch safety net: JSONL-based startup timeout (90s), auto-retry (3 strikes), notification naming
- 100% module test coverage: 322 tests, 16 test files
## Command Status (audited 2026-04-07)
| Command | Status |
|---------|--------|
| `--help` | works |
| `inbox` | works |
| `view <id>` | works |
| `reply <id> "msg"` | works |
| `close <id>` | works |
| `close all` | works |
| `sent` | works |
| `contacts` | works |
| `email @target "Subj" "Body"` | works |
| `dispatch @target "Subj" "Body"` | works |
| `dispatch wake @target` | works |
| `ping status` | exit 0, no visible output (partial) |
| `ping ping` | exit 0, no visible output (partial) |
| `ping thresholds` | exit 0, no visible output (partial) |
## Seedgo Audit (2026-04-07)
- **Overall: 99%**
- 32/35 standards at 100%
- Error_Handling: 96% — dispatch_monitor.py line 124 silent failure
- Silent_Catch: 97% — dispatch_monitor.py 5 silent catches (lines 101, 125, 127 + 2 more, from JSONL helpers)
- 54/101 public functions tested (53% function coverage, 100% module coverage)
## Current Work
- DPLAN-0091 Phase 2 (JSONL pre-validation in wake.py) pending
- ping commands need Rich console output investigation (works in branch, silent via drone)
## Known Issues
- Registry shows 6 pytest test branches with /tmp paths (test pollution)
- ping commands produce no visible output via drone (Rich console likely suppressed in subprocess)
- dispatch combined command BRANCH DETECTION FAILED when AIPASS_CALLER_BRANCH not set (known identity tension, low severity, dispatch succeeds via wake step)
- dispatch_monitor.py has 5 silent catches flagged by seedgo (JSONL helper OSError catches)
## Architecture Notes
- trigger branch owns error_detected events; ai_mail provides delivery only
- extensions/, plugins/, json_templates/, json/ shim, persistence/ = repeatable skeleton (don't archive)
- Dead code was inherited from DevPass migration, not accumulated in AIPass
- .seedgo/bypass.json: email.py bypassed for introspection, json_handler bypassed for json_structure
- Startup check monitors JSONL session files at ~/.claude/projects/{encoded-cwd}/*.jsonl (not stdout, which is buffered by --output-format json)
- .ai_mail/ at repo root is a stray dir created by @memory branch (should be .ai_central/)
</details>
<details><summary><strong>@api</strong> — Operational | **Seedgo:** 99% (32/33 at 100%) | **Tests:** 290 pass, 65/65 functions (2026-04-10)</summary>
# @api
> Centralized external API gateway — authenticated service clients for all external APIs
**State:** Operational | **Seedgo:** 99% (32/33 at 100%) | **Tests:** 290 pass, 65/65 functions
**Last update:** 2026-04-10
## Milestones
- OpenRouter client (get_response, models, test)
- Key management from ~/.secrets/aipass/
- Google provider module (Drive, Calendar, any Google API)
- Seedgo compliance: 100% across all 33 categories
- Test coverage: 100% — all 64 public functions tested
## Current Work
- Backup migration to use our Google module (pending backup)
## Known Issues
- Seedgo Architecture 99% — missing CLAUDE.md from builder template (pre-existing, not a real gap)
- Seedgo introspection standard doesn't account for standalone commands (workaround in place)
## Command Audit (2026-04-07)
| Command | Status | Notes |
|---|---|---|
| `--help` | OK | Shows all 15 commands |
| `--version` | OK | v1.0.0 |
| (no args) | OK | Introspection shows 4 modules |
| `get-key` | OK | Retrieves masked key |
| `validate` | OK | Key valid |
| `validate google` | OK | Creds valid |
| `reauth google` | skipped | Would trigger real OAuth flow |
| `test` | OK | 352 models found |
| `models` | OK | 352 models, table format |
| `status` | OK | Key, SDK, cache info |
| `call` (no args) | OK | Proper error message |
| `list-providers` | OK | openai, openrouter |
| `init` | OK | Detects existing .env |
| `track` (no args) | OK | Proper error message |
| `stats` | OK | No data (expected) |
| `session` | OK | No data (expected) |
| `caller-usage` (no args) | OK | Proper error message |
| `cleanup` | OK | Now handles empty state gracefully |
## Recent (Session 20, 2026-04-10)
- S84 dispatch from @devpulse — 3 CRITICAL security fixes + 3 BUG fixes
- CRITICAL: get_cache_stats() no longer exposes raw API keys
- CRITICAL: .env and google_creds.json now created with 0o600 permissions
- BUG: Validation rules aligned, cleanup return type fixed, stats/session differentiated
- 290/290 tests, seedgo 99%, no type errors
</details>
<details><summary><strong>@cli</strong> — Operational (2026-04-11)</summary>
# @cli
> Display service, Rich formatting for all branches
**State:** Operational
**Last update:** 2026-04-11
**Seedgo:** 100% (all standards green, 161 tests)
## Branch State Audit (2026-04-07)
### Command Status — ALL operational
| Command | Status |
|---------|--------|
| `drone @cli --help` | Works |
| `drone @cli` (introspection) | Works — shows 1 command module + 2 services |
| `drone @cli --version` | Works — v2.0.0 |
| `drone @cli aipass` | Works — shows subcommand table |
| `drone @cli aipass init /path Name` | Works — creates 12 items |
| `drone @cli aipass init agent <name>` | Works — routes to spawn |
| `drone @cli aipass init --help` | Works — Rich-formatted help |
| `drone @cli display` | Works — shows function list |
| `drone @cli display demo` | Works — full showcase |
| `drone @cli templates` | Works — shows function list |
| `drone @cli templates demo` | Works — full showcase |
| `python -m aipass.cli --help` | Works — standalone entry |
### Architecture Reality
- **3 modules:** display.py, templates.py, init_project.py — all operational
- **2 handlers:** init/bootstrap.py (pure Python), json/json_handler.py — both operational
- **1 empty handler:** handlers/templates/ — placeholder from scaffold, never used
- **.archive/:** extensions/, json_templates/ — archived stubs, not active
- **Extra dirs:** artifacts/, docs/, docs.local/, templates/, tools/ — exist but not in architecture tree
### Tests
- 161 tests, 6 files, 5/5 modules covered, all passing
- Seedgo Test_Quality: 100%
### No APLAN
- No .plans/ directory exists. No active architecture plan.
## Milestones
- Console singleton
- Header/success/error/warning/fatal formatters
- Shared across all branches
- `aipass init` project bootstrap command
- 100% seedgo compliance
- 138 unit tests (100% module coverage)
## Current Work
- S31: DPLAN-0121 (AIPASS_HOME auto-setup + external mailbox) + local prompt hook (5eb695d7). 161 tests.
## Known Issues
- None. All commands operational, all tests passing, seedgo 100%.
</details>
<details><summary><strong>@devpulse</strong> — Operational (2026-04-14 (S92 18:20))</summary>
# @devpulse
> Orchestration hub — coordinates via dispatch + agents. Feedback channel live.
**State:** Operational
**Last update:** 2026-04-14 (S92 18:20)
## Current State
- **11 core agents** (split from 15 — backup, daemon, commons, skills moved to standalone projects; api reinstated as infrastructure)
- **90 sessions** of development
- **230+ PRs** merged (PR #254 created S90)
- **3,500+ tests** across core agents (1,162 verified S90)
- **Feedback channel:** Cross-project communication bridge (DPLAN-0117, 101 tests)
- **Watchdog module:** Directed wake system live. `drone @devpulse watchdog {agent,timer,schedule,status,cancel,list}`. 130 tests, seedgo 92%. FPLAN-0186 complete. Bash one-liner replaced.
- **PyPI:** `pip install aipass` works (v2.0.0)
- **Vera Studio:** standalone promotion project — 4 bug reports received via feedback
- **Goldfish panel:** 7-round multi-model README review (Claude + Codex + Gemini)
## Active Work
- **S90 In Progress:** SYSTEM HEALTH + CROSS-PROJECT COMPLETION. Dispatch -c -p bug found (Claude Code v2.1.90-100, fixed v2.1.101, DPLAN-0122). AIPASS_HOME added to .bashrc + settings.json. Vera 4 bug reports via feedback (ai_mail registry hardcode, export issue, registry ID mismatch, local prompt hook). CLI built AIPASS_HOME auto-detect + project mailbox (DPLAN-0121 P1+2). Drone JSON KeyboardInterrupt fix. Prax monitor refactored (introspection extracted). Test isolation fixes (AIPASS_HOME leaking). PR #254. DPLAN-0123 system health tracker. ai_mail dispatched for bidirectional email (Phase 3). Prax re-dispatched for Ctrl+C fix.
- **S89 Complete:** FULL EXTERNAL ACCESS + FEEDBACK BRIDGE. Dual registry (AIPASS_HOME), global prompt template rewrite (7→expanded with dispatch+dplan+feedback), UX warnings when AIPASS_HOME not set, idempotent init update (diff check), feedback channel built (DPLAN-0117/FPLAN-0173, 101 tests, cross-project sender detection). 8 dispatches to drone/cli/seedgo/flow. Global prompt: "ask before spelunking" rule + feedback section added.
- **S88 Complete:** AIPL Phase 1 complete. Style guide + 6 examples. Polyglot wired. DPLAN-0115. Global prompt: no manual plan files.
- **S86 Complete:** 6-HOUR AUTONOMOUS SESSION (DPLAN-0111). 41 dispatches. 15 PRs (#233-247). 11 CRITICALs + 35+ BUGs + 25+ quality fixes. DPLAN-0112 COMPLETE. Seedgo 22-23/33 at 100%. APLAN 42→7. decisions.md #029+#030.
- **S85 Complete:** TRIGGER SELF-HEALING LIVE. Git divergence fixed (merge not reset). Drone git fix/sync upgraded (PR #229). OSS Health badge (PR #230). 13 stale plans closed (28→15). Trigger Medic v2 fixed: log_watcher dedup, count gate removed, wake_branch() wired. Full autonomous error cycle proven.
- **S84 Complete:** Watchdog fixed. Night shift: 4 DPLANs (0107-0110), 10 branches dispatched, PRs #214-226. API key incident. 28 stale branches purged.
- **Hook-sounds plugin:** Built by drone, wired to sound scripts. `drone hook-sounds off/on`.
- **DPLAN-0106:** Watchdog v2 — SUPERSEDED by DPLAN-0130 + FPLAN-0186 (shipped S92).
- **DPLAN-0119:** Auto-watchdog hook — CLOSED in FPLAN-0186 Phase 1 (replaced by watchdog module).
- **DPLAN-0105:** Promotion prep — Vera owns execution.
- **DPLAN-0099:** README value prop — Vera owns future changes.
## Recent Milestones
- S82: Core 10 split decided + executed. 6 agents verified zero deps. README/Herald/prompts updated. Spawn CWD-aware sync-registry. Sandbox + vision docs updated.
- S81: TDPLAN-0002 complete. Init creates 10 items with real content. Spawn routing fixed. Watchdog daemon mode. README Quick Start rewritten. Vera Studio initiated.
- S80: FPLAN-0165 (README 366→279). Goldfish R5-7. 14-branch simultaneous audit. CLI init bug fixed. Watchdog statusline indicator. PRs #202-207.
- S79: README overhaul with 4 Goldfish rounds. PyPI published. Security blocked across 3 CLIs.
## Known Issues
- **Watchdog module:** FPLAN-0186 shipped S92 (agent + timer + schedule + registry). Known issue: `drone @devpulse watchdog agent <branch>` clipped at 30s by drone CLI wrapper — workaround is direct `python3 apps/devpulse.py watchdog agent <branch>` call. Watchdog's own --timeout flag governs the real wait.
- **Wake protection:** Any branch can manually wake devpulse. Medic only blocks auto-dispatch. Needs blocklist in wake.py.
- **Hook inbox notification:** Cosmetic only — watchdog handles real waking.
- **Hooks:** Don't work from external projects. Hooks reference AIPass-specific scripts.
- **backup:** Directory confirmed gone from disk S87. Registry cleaned S86.
- **Memory rollover:** At limit (20/20 sessions, 25/25 learnings). Auto-archives on next write.
- **inotify limits:** System-wide exhaustion when many agents run simultaneously. Cosmetic warning.
## Notepad (Agent)
### S92 (2026-04-14 ~18:20 PT) — FPLAN-0186 watchdog module MASTER COMPLETE
**All 5 phases shipped. Plan closed.**
- **Files:** `apps/modules/watchdog.py` + `apps/handlers/watchdog/{agent,timer,schedule,registry,__init__}.py` + 5 test files
- **Tests:** 130 passed, 3 skipped, 0 failed (Phase 1→4 baseline 122 → 130)
- **Seedgo:** 88% baseline → 92% final (held through Phase 4 and Phase 5). 11 bypass entries all justified inline (encapsulation + json_structure manager-branch gaps)
- **Agent completion signal:** ai_mail dispatch lock file polling. Monitor deletes `.ai_mail.local/.dispatch.lock` on exit (success or crash); `last_bounce.json` distinguishes. Zero upstream changes needed.
- **Bash one-liner GONE** from `.aipass/aipass_local_prompt.md` — replaced with `drone @devpulse watchdog agent @target`
- **Smoke test:** 13/13 steps PASS — `artifacts/reports/watchdog_smoke_test.md`
- **Plans closed:** DPLAN-0119 (Phase 1), DPLAN-0106 superseded by DPLAN-0130, FPLAN-0186 closed via `drone @flow close`
- **Known issue:** drone CLI 30s wrapper timeout clips long agent watches. Workaround is direct python call. Not a watchdog bug. Worth lifting in a future drone fix.
### S92 (2026-04-14 ~14:08 PT) — DPLAN-0128 complete, working on private memory project
**DPLAN-0128 execution DONE — reformat is live.**
- T1 @cli: 27 PASS, 2 FAIL. Removed `drone @flow info <id>` and `drone @memory archive` from reformat.
- T2 @spawn: terminology PASS. Reformat's agent=citizen framing is more consistent with spawn code than the old live prompt was.
- T4 Anthropic source read: MISMATCH. AIPL format is ORIGINAL AIPass convention, NOT copied from Claude Code. Report: `.trinity/night_shift_reports/aipl_format_provenance.md`
- T5 @seedgo: recommended prompt note + reference doc, NOT a 34th standard. Unenforceable soft rules.
- T6 @prax: sync mechanism fully wired (pr_created/pr_merged → pr_status_sync.py). Softened wording: "PR commit"→"PR create/merge", "11 branches"→"all registered branches", "Herald reads it"→"Herald documents it".
- T3 skill files split: PR #272 — /memo user-scope only (removed from repo), /prep shipped via `aipass init` template in bootstrap.py `_prep_md()`. Init test passed.
- T7: stale `agent-aa2b7d43` worktree removed.
- T8: reformat promoted to live `.aipass/aipass_global_prompt.md` + new `.aipass/PROMPT_STYLE.md` reference doc + one-line style comment. PR #273.
**PRs awaiting merge**: #272, #273 (both scoop the S91 night shift backlog of 6 commits — known drone @git system-pr behavior). Plus S91's #265-#271 still open.
### S92 (2026-04-14 ~14:08 PT) — Private memory project autonomous work while user AFK
**User said**: "lets park this off. work on your private memory project. no need to stop im outside working on my rv. ill be in and out all day"
- **Phase 1** scaffold + ROOMS_ENABLED flag (default False, v1 untouched)
- **Phase 2** BERTopic clustering → 12 real clusters on 133 live fragments, persisted to `.chroma/rooms_map.json`
- **Phase 3** cluster-aware rerank via `room_aware_query()` with majority-vote target room picking. Smoke test: "verify claims" query correctly boosted verification observations to ranks 2+3 while preserving top anchor
- **Phase 4** `RoomStrategy` protocol + `prior_plan_decisions` hand-authored strategy (filter kind=decision, recency boost, source-branch text-match boost) + strategy registry
- **Phase 5** `consult()` advisor entrypoint — single call handles both paths (cluster_aware + strategy), contract locked, placeholder `suggested_question_for_user` per rule table ("mixed signal" / "tight consensus" annotations), state echoed for Phase 7 to consume
- **Phase 6** `ProjectState` dataclass + `birth_watcher` scaffold (diff new/gone/resized clusters vs baseline, 20% threshold). SCAFFOLD ONLY — no auto-notification, no LLM, no background job
**Live end-to-end commands** when `ROOMS_ENABLED=True` in the project:
`status | discover | list | peek <id> | query "..." | strategies | strategy <name> "..." | consult "..." --strategy X --state-energy N --state-pressure N | births | births --save-baseline`
**Metrics**: 201 tests green (started Phase 1 at 122), ~5,300 LOC across handlers+modules+tests, 0 v1 file mutations, 0 Chroma collection mutations, 0 commits.
**DPLAN-0129** (architecture research) and **FPLAN-0185** (master plan, 6 phases) both live in the private project repo, uncommitted.
- Runtime unblocked: created dedicated `~/Projects/<private>/.venv` with chromadb 1.5.5 + sentence-transformers 5.3.0.
- Fixed `navigator/__init__.py` missing. Bypass entries added for seedgo `__init__.py` false positives. Emailed @seedgo friction note.
- First real query ran and surfaced decision_006 ("branches self-report optimistically") + obs_s60_verification_agents — the exact prior art DPLAN-0128 was defending against. **Rule #033 closed** — the project is being used, not just built. Next time: query first, plan second.
- S92 decisions #034-#036 ingested. Collection now 133 fragments.
- Invocation form: the private project invocation form. Bare script invocation fails with path issue — not urgent to fix.
- `navigator/__init__.py` (new — package marker)
- `navigator/.seedgo/bypass.json` (modified — 2 new bypass entries)
- `navigator/.trinity/local.json` (modified — S4 session)
- `navigator/STATUS.local.md` (updated — gitignored anyway)
### Friction notes
- **seedgo __init__.py false positive**: `imports: Failed` and `naming: invalid characters` fire on Python reserved filename. Need special-case in seedgo's naming standard and imports standard. Encountered in another project; likely also in AIPass repo. Open a seedgo standard PR when there's bandwidth.
### S92 (2026-04-14 ~12:45 PT) — PRE-COMPACT, system prompt reformat work in flight
**Not shipped, verification-pending**:
- `/home/patrick/Projects/AIPass/.aipass/aipass_global_prompt.reformat.md` — draft reformat of AIPass's global system prompt in AIPL/Anthropic Claude Code style. Gitignored, not tracked. Original `.aipass/aipass_global_prompt.md` untouched.
- Multiple correction rounds applied this morning (terminology, memory roles, TDPLAN, librarian philosophy, sections removed). See DPLAN-0128 Context section for full history.
**DPLAN-0128 is the execution plan** — 8 tracks, verification-first, designed to survive /compact. Post-compact session reads DPLAN-0128 first, then the two prompt files, then executes Tracks 1-6 serially (one branch/agent at a time), and ONLY promotes the reformat (Track 8) if all critical claims pass. Critical claims: TDPLAN command exists, no invalid commands in reformat, STATUS.local.md central sync is real.
**Skill integration gaps to confirm**:
- `/prep` at `~/.claude/commands/prep.md` — Section 1 "Memories" lists local.json, observations.json, passport.json — does NOT include STATUS.local.md in the main update list
- `/memo` at `~/.claude/commands/memo.md` — STATUS.local.md is in "If Relevant" section, weak framing
- Proposed edits drafted verbally but not applied. DPLAN-0128 Track 3 verifies claim + applies fixes post-compact.
**AIPL format standard question**:
- AIPL format is Anthropic-sourced per the user (unconfirmed)
- Decision: seedgo standard / prompt note / both — DPLAN-0128 Track 5 asks @seedgo to recommend
**Gavin reply posted**: https://github.com/AIOSAI/AIPass/issues/261#issuecomment-4245709624 — done this morning.
**Stale worktree flagged**: `/home/patrick/Projects/AIPass/.claude/worktrees/agent-aa2b7d43` on branch `fix/wake-claude-path-resolution` (PR #268) — leftover from last night's Track E. Cleanup in DPLAN-0128 Track 7 if safe, else manual.
**S91 follow-ups still open**:
- PRs #265-#270 await merge (user reviews in their own time)
- Track G (AIPL log leak) still blocked — prax ghosted last night, needs firm retry
- PR #269 category-d flags (code-level /home/patrick/ paths in symbolic.py, branch_detector.py docstrings, .claude/settings.json deny rules, ai_mail docstrings)
- 2% usage finding to confirm (S91 night shift burned less than expected)
**Next steps**: /compact (the user does this) → post-compact session reads DPLAN-0128 → executes.
### S91 (2026-04-14 ~05:00 Pacific) — NIGHT SHIFT COMPLETE
**6 PRs shipped tonight** — all awaiting AIPass Developer review:
- **#265** — devpulse docs restructure (README 209→35 lines + new SETUP.md with Linux/Mac/Windows/WSL/uninstall/troubleshooting)
- **#266** — drone three bugs fix (`system-pr` git add -A, STATUS.md sync before commit, Rich help table + bonus encapsulation fix)
- **#267** — Windows compat for issue #261 (bootstrap.py pathlib traversal, setup.sh OS detection, new cross-platform setup.py)
- **#268** — wake PATH isolation fix (bare `claude` → absolute path via shutil.which + ~/.local/bin PATH prepend)
- **#269** — personal-name scrub (11 files, 14+/14-, flagged category-d code paths for manual review)
**Research reports in `.trinity/night_shift_reports/`** — morning reading:
- `anthropic_peak_hours.md` — peak hours are 5 AM–11 AM Pacific (AIPass Developer's intuition was inverted)
- `repo_etiquette.md` — top gaps: SECURITY.md (urgent), CHANGELOG.md, root-level INSTALLATION.md
- `local_llm_research.md` — hybrid recommendation: Qwen 2.5 3B Q4 Ollama local + Llama 3.3 70B / DeepSeek R1 OpenRouter free
- `watchdog_design.md` — full design for future hooks session (Options A-D insufficient, Option E requires hooks)
**Gavin reply draft**: `/tmp/gavin_reply_261.md` — ready for AIPass Developer review/approval/posting
**Track G blocked**: @prax ghosted the AIPL log leak dispatch (exited code=0 after 722s but no PR, no reply). Same pattern as S90 `prax_needs_firm_prompts` learning. Retry in morning with MANDATORY framing.
**Time log**: `.trinity/time_log.jsonl` — 24 entries, 12 complete, 189.5 min tracked. First temporal data point.
**Anthropic peak hours reality**: I finished the night shift inside the off-peak window. Peak starts at 5 AM Pacific and runs until 11 AM. The "cross 5 AM" theory was backwards but the net effect was right — I paced serial and finished before 5 AM anyway.
**Total runtime**: ~2h50m of session wall-clock, ~3h09m of tracked task time (overlap from watchdog waits).
**Session cost estimate**: 6 branch dispatches + 5 sub-agent spawns + manual work. Within off-peak doubled-limit promotion, so cheap.
**NEEDS AIPASS DEVELOPER ATTENTION**:
1. Review and merge PRs #265-270 (in order — #266 drone fix unblocks future `system-pr` usage)
2. Review Gavin reply draft, approve and post to issue #261
3. Read the 5 research docs in `.trinity/night_shift_reports/`
4. Retry Track G (AIPL log leak) — prax needs firm framing
5. Manually review category-d code path flags from PR #269 (symbolic.py priority_dirs, branch_detector.py docstrings, .claude/settings.json deny rules, ai_mail docstrings blocked by pre-existing seedgo)
6. Consider landing the hooks session soon — unblocks watchdog-as-code (Track H) + audio hook cleanup
### S91 (2026-04-14 early AM) — Issue #261 triage + cleanup + night shift planning
**Status at /prep** (02:15 AM, going into autonomous night shift):
- **3 PRs created**: #262 (cleanup + scrub + epigraph + gitignore), #263 (S90 stragglers drone system-pr missed), #264 (STATUS.md auto-sync refresh) — all need AIPass Developer merge.
- **`.claude/CLAUDE.md`**: Patrick scrub complete (3 lines). Only private global `~/.claude/CLAUDE.md` retains the name.
- **`README.md`**: memory/presence epigraph added near line 40 with `— AIPass` attribution.
- **`trigger_data.lock`**: explained (fcntl process lock from log_watcher_service PID 1622), gitignored with pattern `src/aipass/trigger/*.lock`.
- **`unknown_branch/`**: confirmed AIPL polyglot log leak. Tracked as Track G of DPLAN-0125.
- **Issue #261 (Gavin Rooney, Windows 10)**: triaged. 3 real bugs (setup.sh symlink, bootstrap.py bash loop, audio hooks). Stale-clone artifacts (old .claude/settings.json `/home/patrick` paths removed April 5). Non-bugs (AIPASS_REGISTRY.json gitignored, passports not tracked). Reply draft pending (FPLAN-0183 Step 1).
- **Feedback channel tests**: grep showed 0 module-level test defs — needs verification morning, may be class-based.
**Plans built**:
- **DPLAN-0125** — S91 Night Shift master plan. 10 tracks, SERIAL execution strategy, cross-5AM pacing theory.
- **DPLAN-0126** — Future research: local LLM + OpenRouter free tier (split from 0125 as future-ideas bucket).
- **FPLAN-0183** — Step-by-step execution script. Post-compact survival. 12 numbered steps + pre-flight. This is what I follow when I wake up.
**Autonomous night shift directive from the AIPass Developer**: GO. Serial execution, deliberate slow pacing, cross 5 AM peak-hours cutoff, do not touch `.claude/hooks/*`, do not merge PRs, log time per track to `.trinity/time_log.jsonl`, keep going until usage cap or dawn.
**Known bugs that will bite during execution**:
1. `drone @git system-pr` doesn't stage untracked files — stage manually with `git add` before running it
2. `drone @git system-pr` leaves STATUS.md dirty after every run — known, accept it, do NOT chase the loop
3. Wake command may not work (S90 flag — Track E investigates)
**Loose ends at /prep**:
- STATUS.md still modified (drone bug, documented, ignored)
- trigger log_watcher_service running (PID 1622, healthy, leave it)
- No background agents running, no open watchdogs at /prep time
- Next action after compact: Step 0.5 of FPLAN-0183 (Anthropic peak hours WebSearch) → Step 1 (Gavin reply draft) → onward
**The AIPass Developer is asleep. Work alone. Stay steady.**
### S90 (2026-04-11 evening) — System health + cross-project completion
- **Dispatch -c -p bug:** Claude Code v2.1.90-100 broke headless resume. Fixed v2.1.101. DPLAN-0122 (closed).
- **AIPASS_HOME:** Added to .bashrc (export) + ~/.claude/settings.json env. CLI auto-detects via importlib.
- **Vera 4 bugs via feedback:** All resolved. Registry hardcode (PR #255), export (manual), registry ID (spawn already built), local prompt hook (PR #257).
- **5 PRs:** #254 (drone JSON+cli init+test isolation), #255 (ai_mail bidirectional), #256 (prax cleanup), #257 (local prompt hook), #258 (prax Ctrl+C+labels)
- **Prax finally delivered:** Ctrl+C clean exit, UNKNOWN→AIPL/POLYGLOT labels, AI_MAIL→AI_MAIL label fix. Took 4 dispatches.
- **Contacts system built:** identity.json + contacts.json + auto-registration. PR #259.
- **Cross-project email WORKING:** Vera→@strategy tested live in tmux. Two fixes: sender detection (drone router_handler) + target resolution (ai_mail delivery.py loads caller registry). PR #260.
- **15+ dispatches:** ai_mail x4, prax x4, drone x1, cli x2, spawn x1, flow x1, + sub-agents
- **PRs #249-260 all need merge** (Patrick reviews in his own time)
- **Wake broken:** dispatch wake not working at end of S90. Investigate S91.
- **NEEDS PATRICK:** Merge PRs #249-260
### S89 (2026-04-11 afternoon) — Full external access + feedback bridge
- AIPASS_HOME dual registry: drone loads both local + AIPass registries simultaneously
- Global prompt template rewrite: 3→7 sections, all command variants (dplan/aplan/master, dispatch, feedback)
- UX warnings: drone systems hints + BranchNotFoundError guidance when AIPASS_HOME not set
- `aipass init update` idempotent: content diff before write, "Already current" for unchanged files (8 new CLI tests)
- Feedback channel (DPLAN-0117/FPLAN-0173): cross-project communication bridge
- 4 handler files + 1 module, 101 tests passing
- Sender auto-detected via AIPASS_CALLER_BRANCH env var
- Reply path stored per-message for cross-project delivery
- Fixed devpulse.py module discovery (full package import path)
- Fixed pytest.ini inline comments bug (seedgo confirmed: isolated to devpulse, no standard exists)
- Global prompt: "ask before spelunking" rule + feedback section added
- Learning: dispatch the question to branches instead of reading 4-5 unfamiliar files
### S88 (2026-04-11 morning) — AIPL Phase 1 + global prompt fix
- AIPL Phase 1 COMPLETE: docs/style_guide.md (7 rules, symbols, content types, anti-patterns, decode protocol, quick reference)
- 6 before/after examples: session_log, observation, email, status_update, plan, delta_update (54-69% savings)
- Polyglot agent wired: local prompt filled, CLAUDE.md updated with AIPL context
- DPLAN-0115 created via flow (replaced manual DPLAN-001 — wrong numbering)
- Global prompt: "Never create plan files manually" rule added
- Learning: external AIPass projects still use AIPass tooling (flow, seedgo) — don't bypass
### S87 (2026-04-11 morning) — Model choice + AIPL + init update
- dispatch --model flag: sonnet default, all 3 tiers tested (sonnet/haiku/opus confirmed in process args)
- Apr 4 usage policy change discovered — sub-agent compute metered more aggressively
- DPLAN-0114: aipass init update (5 phases). cli+spawn+drone dispatched, all replied. Registry fix, hook fixes, source headers ready.
- Patrick-Personal deny rules added to AIPass settings
- Vera Studio S3 reviewed — registry mismatch, missing hooks, 5 gaps documented in DPLAN-0114
- AIPL PROJECT LAUNCHED: ~/Projects/AIPL/. 72K research transferred. DPLAN-001 written. Caveman analyzed (neighbor, not parent). Build from scratch, hand to Polyglot when ready.
- PRs #231-248 ALL MERGED (Patrick merged #247 for S86 stack, #248 for S87)
- Trigger cleaned up after PC shutdown (stale lock removed, log_watcher auto-restarted, processed 2 pending emails)
- **NEEDS PATRICK:** Wake protection — any branch can manually wake devpulse
- **NEEDS PATRICK:** CLAUDE.md template gap — spawn template has it, no branch does
### S86 (2026-04-10 afternoon) — Autonomous session
- 41 dispatches, 15 PRs (#233-247), DPLAN-0112 complete
- Devpulse APLAN: 42→7 open items
- decisions.md: #029 (dispatch patterns) + #030 (fixes→architecture in one session)
### S85 (2026-04-10 morning)
- TRIGGER SELF-HEALING PROVEN: Full autonomous error cycle — detect → dispatch → wake → fix → report
- Fixes to trigger: (1) log_watcher dedup blocking count increment, (2) report_error() count==2 gate, (3) wake_branch() after email delivery
- Drone git fix/sync upgraded to merge on divergence instead of rebase (PR #229)
- OSS Health badge: 364 commits, 2.8h pace, 1 month old (PR #230)
- 13 stale plans closed (28→15 open)
- Old Dev-Pass trigger studied at /media/patrick/EXTERNAL/Dev-Pass/aipass_core/trigger/
- Key learning: old system had no count threshold (noisy), new system's threshold was right but gate logic was wrong
- TODO: Watchdog needs error handling (log failures so trigger catches them)
- TODO: Add prax logger catch-all to all branch entry points (unhandled exceptions bypass logs)
- TODO: Properly develop watchdog v2 (leave duct tape running for a week first)
- Never reset HEAD — merge only. SATA=/mnt/sata (old OS), EXTERNAL=/media/patrick/EXTERNAL (Dev-Pass)
### S83 (2026-04-09 evening)
- 22 Opus adversarial audit agents: 350+ findings across all 11 branches
- 11 CRITICALs: prax thread safety, flow FPLAN-only (x3), cli .gitignore, cli cd path, ai_mail locking (x2), api key exposure, api permissions, trigger no atomic writes, memory path bugs, memory security violation
- All 11 APLANs updated by builder agents. Health: 2 RED (memory, devpulse), 9 YELLOW
- Memory doesn't use api branch — raw urllib to OpenRouter, bypasses api entirely
- Hook-sounds plugin built by drone (14 tests). Sound scripts wired.
- Test count reality: ~3,501 not 4,900+ (split branches took their tests)
- PR count reality: ~179 not 192+
- PR #211 created with all S83 work
- Wave 3 complete: 170+ new findings, all written directly to APLANs by agents
- API is NOT on public repo — local/private only. Docs need correcting (say 10 public + api local)
- PR #211 (Wave 1 + hook-sounds) and PR #212 (Wave 3 APLAN updates) both shipped
- Next: fix CRITICALs via branch dispatches, correct api count in public docs
### S82 (2026-04-09)
- Core split: daemon/commons/skills moved. API reinstated (LLM access layer). Backup pending move.
- All 9 agents dispatched for split fallout testing — replies received, not fully reviewed.
- Flow/spawn/memory dispatched for .backup/ redirect — replies received.
- README + Herald + global/local prompts all updated to "11 agents".
- Patrick's direction: focus on core 11, use the system for real projects, Vera handles promotion.
## Notepad (User)
- Study Anthropic prompt layout.
- Review builder agent (~/.claude/agents/builder.md) — should it default to sonnet? Should seedgo checklist be the primary validator instead of pyright? Should it be available to external projects?
- Add /memo and /prep to `aipass init` so new projects get them in .claude/commands/ (DPLAN-0114 follow-up)
- Prax: fix AI_MAIL showing as MAIL (underscore branch names getting split)
</details>
<details><summary><strong>@drone</strong> — Operational (2026-04-07 (Session 38))</summary>
# @drone
> Command router, @branch resolution, subprocess dispatch, custom commands, git workflow, plugin architecture
**State:** Operational
**Last update:** 2026-04-07 (Session 38)
**Seedgo audit:** 99% (Readme 83%, Silent_Catch 96%)
**Test suite:** 513 passed, 4 skipped — 19 test files
## All Commands — Verified Operational
| Command | Status | Notes |
|---------|--------|-------|
| `drone --help` | Operational | |
| `drone --version` | Operational | v1.1.0 |
| `drone` (no args) | Operational | Auto-discovers 9 modules |
| `drone systems` | Operational | Shows infrastructure, modules (4), branches (11) |
| `drone @target command` | Operational | Routes to any branch via subprocess |
| `drone @target --help` | Operational | |
| `drone @seedgo audit` | Operational | Interactive mode for Rich progress bars |
| `drone @git pr/status/sync/lock/unlock` | Operational | Internal module routing |
| `drone @git system-pr/merge/smart-sync/fix` | Operational | devpulse_ops plugin |
| `drone scan @branch` | Operational | Discovers commands via --help + modules/ |
| `drone activate @branch` | Operational | Scan + register as custom shortcuts |
| `drone list` | Operational | Shows registered custom commands |
| `drone remove <name>` | Operational | |
## Milestones (Cumulative)
- Core routing: @branch resolution, subprocess dispatch, interactive mode
- `drone systems` with infrastructure + modules + branches sections
- Credential verification (RegistryMismatchError split from RegistryNotFoundError)
- Activated commands: scan, activate, list, remove, execute (PR #74)
- `drone @git` module: pr, status, sync, lock, unlock (FPLAN-0094)
- `devpulse_ops` plugin: system-pr, merge, smart-sync, fix (DPLAN-0087)
- DPLAN-0053: Removed drone from _MODULE_REGISTRY, --help in all 9 modules, @ validation, generic adapter, bypass reduction (13 → 4)
- Persistent citizen branches: citizen/{name} instead of feat/{name}-{slug}
- External project fallback: module routing when subprocess fails (DPLAN-0104)
- Test coverage push: 447 → 513 tests, 3 new test files (S73)
- Seedgo 100% → 99% (pre-existing readme date + 2 silent_catch in resolver.py)
## Architecture Summary
- **3-layer pattern:** drone.py (entry) → modules/ (orchestrators) → handlers/ (implementation)
- **Routing:** internal modules via importlib, external modules via generic_adapter + routing_config.json
- **Interactive mode:** per-command (monitor, audit) + per-branch (cli, backup)
- **Plugins:** apps/plugins/devpulse_ops/ (auth.py + 4 plugin files)
- **Module fallback:** BranchNotFoundError for registered modules → _handle_module() (DPLAN-0104)
## Known Issues
- Pyright warns about `json` package name shadowing stdlib — works at runtime
- Pyright can't fully resolve handlers/git/ imports (handler guard __init__.py limitation)
- Silent_Catch: resolver.py lines 55, 72 — needs logger calls added
- README date flagged by seedgo (auto-stales between sessions)
- ai_mail `close` command times out through drone routing (30s capture timeout) — workaround: clear inbox directly
## No APLAN Exists
No action plan file found for drone. Cross-branch plans (DPLAN-0053, DPLAN-0087, DPLAN-0104) tracked in devpulse.
</details>
<details><summary><strong>@flow</strong> — Operational (2026-04-07)</summary>
# @flow
> Plan lifecycle — FPLANs, DPLANs, RPLANs, TDPLANs, and any custom plan type via filesystem-driven template registry
**State:** Operational
**Last update:** 2026-04-07
## Command Status
| Command | Status | Notes |
|---------|--------|-------|
| `drone @flow create` | Operational | FPLAN default, master, DPLAN, RPLAN, TDPLAN |
| `drone @flow close` | Operational | Foreground archival + vector verify |
| `drone @flow close --dry-run` | Operational | Preview mode |
| `drone @flow list open/all` | Operational | Multi-registry merge |
| `drone @flow restore` | Operational | Reopen closed plans |
| `drone @flow templates` | Operational | 4 registered types |
| `drone @flow scan` | Operational | Found 1 unregistered (audit_plans/) |
| `drone @flow register/unregister` | Operational | Template CRUD |
| `drone @flow aggregate` | Operational | Cross-branch aggregation |
| `drone @flow registry scan` | Operational | But trigger events not handled (132 unprocessed) |
| `drone @flow post` | NOT OPERATIONAL | "Unknown command" — post_close_runner not standalone-routable |
## Seedgo Audit
- **Overall:** 100% (all 33 standards)
- **Tests:** 452 tests, 90/90 public functions, 0 failures
- **Last audit:** 2026-04-07
## Registered Plan Types
| Type | Prefix | Templates |
|------|--------|-----------|
| flow_plans | FPLAN | default, master |
| dev_plans | DPLAN | default |
| research_plans | RPLAN | default |
| team_dev_plans | TDPLAN | default |
Unregistered: `audit_plans/` (1 template, needs `drone @flow register audit_plans APLAN`)
## Close Pipeline
Fully operational. On close:
1. Template check → 2. Mark closed → 3. Archive to processed_plans/ (foreground, flags set atomically) → 4. Vector intake (drone @memory process-plans + is_plan_vectorized verification) → 5. Dashboard updates → 6. CLOSED_PLANS.local.json
Vector verification shows in console output: "Vectorized: N chunks in chroma" or "NOT vectorized".
## Known Issues
- `post` command not routable as standalone (post_close_runner is background-only, invoked internally by close)
- `registry scan` fires 132 trigger events that are never handled (trigger event bus not wired for plan_file_created/deleted/moved)
- `audit_plans/` directory exists but is not registered
- Dashboard push still warns on some closes ("Failed to push flow section to branch dashboard")
## Pending Dispatches
- Dispatch from @devpulse (6e3f39e5): Update FPLAN templates — old send syntax
- Dispatch from @devpulse (f37c43f6): Update drone @flow list → list open in docs
</details>
<details><summary><strong>@memory</strong> — Operational — 100% seedgo compliant (33/33 standards) (2026-04-07 (s29))</summary>
# @memory
> Vector memory archive — ChromaDB, sentence-transformers
**State:** Operational — 100% seedgo compliant (33/33 standards)
**Last update:** 2026-04-07 (s29)
## Command Audit (2026-04-07)
| Command | Status | Notes |
|---------|--------|-------|
| `--help` | OK | Lists all commands correctly |
| `rollover` (introspection) | OK | Shows handlers + subcommands |
| `rollover status` | OK | 16 branches, 32 files checked |
| `rollover check` | OK | Correctly identifies 2 files needing rollover |
| `rollover run` | OK | Not executed this session (discovery only) |
| `rollover sync-lines` | OK | Updated 32 files |
| `search "query"` | OK | 20 results from 4 collections |
| `symbolic` (introspection) | OK | Lists 6 subcommands |
| `symbolic demo` | OK | v1 + v2 mock extraction works |
| `symbolic fragments "query"` | EMPTY | Returns 0 fragments — no stored data |
| `symbolic extract` | UNTESTED | Requires API key |
| `templates` (introspection) | OK | Lists 3 subcommands |
| `templates template-status` | FAIL | Template files MISSING |
| `templates diff-templates` | FAIL | Template files MISSING |
| `templates push-templates` | FAIL | Template files MISSING |
| `verify FPLAN-XXXX` | OK | Confirmed FPLAN-0128 = 126 chunks |
| `watch` | UNTESTED | Persistent watcher, would block |
## Seedgo Audit
- **Overall: 100%** — all 33 standards passing
- 175 public functions, 102 tested (58% function coverage)
- 35 files checked, 0 type errors
## Rollover Status
- **MEMORY.local:** READY for rollover (21/20 sessions, 26/25 key_learnings)
- **DEVPULSE.local:** READY for rollover (21/20 sessions, 46/25 key_learnings)
- DEVPULSE.observations: 567/600 lines (33 remaining — approaching limit)
- All other branches within limits
## Milestones
- ChromaDB integration
- Auto-rollover at entry-count limits (v2 mode)
- Searchable vector archive (4 collections, 2200+ vectors)
- FPLAN-0026 complete (rollover E2E, search, plans archival)
- DPLAN-0073 COMPLETE — 100% seedgo audit
- FPLAN-0128 COMPLETE — verify command + config fix (PR #94)
- Session 16: CRITICAL FIX — batch vectorization, decoupled from startup trigger (PR #95)
- 113 plan files vectorized (2019 chunks)
- Session 27: 468 tests passing, 16/16 module coverage
## Known Issues
- `search` fails without torch/sentence-transformers (memory .venv required)
- Templates subsystem not operational — template files (LOCAL.template.json, OBS.template) missing from `apps/templates/`
- `symbolic fragments` returns 0 results — no fragment data stored yet
- `symbolic extract` requires API key — untested
- `inotify limit reached` warning on every command (system-level, not memory's fault)
- Memory's own local.json needs rollover (21/20 sessions, 26/25 learnings)
## Architecture Notes
- Dual vector storage: local (`{branch}/.chroma/`) + global (`memory/.chroma/`). Local fails gracefully, global is critical.
- Plan vectorization decoupled from startup trigger. `_check_plans()` = count only. Processing via explicit command.
- All ML operations via subprocess isolation — main process never imports torch/chromadb.
- Startup trigger chain: prax logger -> trigger.fire('startup') -> check_and_rollover(). Keep lightweight.
## No APLAN
- No APLAN file exists for memory branch.
</details>
<details><summary><strong>@polyglot</strong> — Unknown (n/a)</summary>
# @POLYGLOT
> AIPL compression engine developer
State: Phase 2 complete + seedgo 99% + guardrails designed (DPLAN-0124)
Last update: 2026-04-12
## Milestones
- Phase 1 spec: COMPLETE (locked)
- Phase 2 engine: COMPLETE (441 tests, 10 handlers, 5 modules, 99% seedgo)
- Global prompt AIPL'd: DONE (913->843 tokens, 7.7% honest savings)
- ~/.aipl scaffold: DEPLOYED
- Phase 3 integration: In progress
- Phase 4 validation: Not started
## Current Work
- Token scan: 220K tokens across 80 AIPass files, 81K saveable
- Stress tested 16 real files, 15.8% avg automated savings
- Decode tests: 93-95% info recovery on compressed files
- AIPL is convention not engine — agents write terse from global prompt
- Private repo: AIOSAI/AIPL
## Known Issues
- Commands incompressible — only prose between commands can shrink
- .trinity/ must stay valid JSON — no headers, no unquoted keys
- Cross-project ai_mail outbound broken (feedback channel in progress)
- delta_extractor limited pattern detection
- Handlers standard 93% — inspect.stack() needed on 2 pipeline files
## Next
- Build DPLAN-0124: anchor detection + integrity verification (guardrails)
- Roll AIPL global prompt to AIPass and Vera-Studio
- Test with fresh agents across projects
- Close 17% vs 62% gap via convention (not engine)
</details>
<details><summary><strong>@prax</strong> — Operational (2026-04-07)</summary>
# @prax
> Logging, monitoring, dashboard infrastructure
**State:** Operational
**Last update:** 2026-04-07
## Commands (4 active)
| Command | Status | Notes |
|---------|--------|-------|
| `drone @prax monitor run` | Operational | Polling fallback, caller attribution, model tags, multi-CLI |
| `drone @prax status` | Operational | Shows modules, loggers, watcher state |
| `drone @prax log-audit audit` | Operational | 197 log files, all healthy |
| `drone @prax dashboard` | Operational | Template sections, refresh from centrals |
## Seedgo Audit: 99%
- 35 categories, 32 at 100%
- Deep_Nesting: 97% (filesystem_handler.py — Codex/Gemini adapters)
- Error_Handling: 96% (filesystem_handler.py)
- Silent_Catch: 97% (filesystem_handler.py)
- Custom tests: 90/134 functions (374 tests, 2.0s)
## Monitor Features
- **Operational:** File watcher, log watcher, polling fallback, caller attribution (CALLER→TARGET), model tags (BRANCH/model), Claude Code JSONL, Codex JSONL, Gemini JSON adapters, agent activity tracking
- **Not operational:** Interactive filtering (watch/filter commands deferred)
## Recently Completed
- Session 40: Inbox watchdog tool (tools/inbox_watchdog.py)
- Session 39: Codex model tag fix (turn_context.payload.model)
- Session 38: Dynamic branch detection for Codex/Gemini (CWD + projects.json)
- Session 37: Filter fix + model tags + Gemini adapter live test
- Session 36: inotify errno-specific messages (Errno 28 vs 24)
- Session 34: Codex + Gemini monitoring adapters (DPLAN-0097)
- Session 33: Test coverage push (229→374 tests)
## Archived Modules (5)
init_prax, shutdown, discover, run, terminal — in modules/.archive/
## Known Issues
- inotify watches/instances near-exhausted. Monitor uses polling fallback — functional but slower.
- filesystem_handler.py has 3 seedgo violations (deep_nesting, error_handling, silent_catch) from Codex/Gemini adapter code
- Interactive filtering (Phase 4) deferred indefinitely
</details>
<details><summary><strong>@seedgo</strong> — Operational — 99% self-audit (32/33 standards at 100%, Architecture 99%) (2026-04-14 (session 59 — DPLAN-0128 Track 5 advisory: recommend prompt note + ref doc over 34th standard))</summary>
# @seedgo
> Standards enforcement, 32-standard audit pack + seedgo proof system (CERTIFIED) + hook ownership
**State:** Operational — 99% self-audit (32/33 standards at 100%, Architecture 99%)
**Last update:** 2026-04-14 (session 59 — DPLAN-0128 Track 5 advisory: recommend prompt note + ref doc over 34th standard)
## Session 43 — Dispatch Processing
Two emails processed:
1. **Devpulse 4adc667b** — 5-branch split-out fallout test (backup, daemon, api, commons, skills removed from AIPass). Result: zero imports from split branches, no runtime deps, README clean, self-audit 99%. Reported all clear.
2. **Trigger af202e98** — Recurring JSON parse error (ERROR 3c63b0e0). Root cause: race condition in json_handler.py `load_json()` line 134 — no try-except around `json.load()`. Concurrent writes truncate file between validation and read. Low severity, fix recommended for next PR.
### Command Test Results
| Command | Status | Notes |
|---------|--------|-------|
| `--help` | Works | Lists 9 commands. Missing: proof, proof_query, test_map |
| `audit` | Works | Introspection shows 1 pack (32 checkers) |
| `audit aipass @seedgo` | Works | 99% overall, 0 type errors |
| `standards_query` | Works | Lists packs |
| `standards_query aipass_standards` | Works | Lists 32 standards |
| `standards_query aipass_standards cli` | Works | Shows content |
| `checklist` | Works | Introspection output |
| `checklist <file>` | Works | Per-file scoring |
| `diagnostics` | Works | Introspection — redirects to audit |
| `diagnostics @seedgo` | Works | Same redirect |
| `readme` | Works | Introspection |
| `proof` | Works | **Not in --help** |
| `test_map` | Works | **Not in --help** |
### Self-Audit (2026-04-07)
- 99% overall
- 32/33 standards at 100%
- Readme at 83% (date was 8 days stale — now fixed)
- 0 type errors
- 181 public functions, 65 tested (36% coverage)
### Findings
1. **--help missing 3 commands** — `proof`, `proof_query`, `test_map` work but not listed in help output
2. **diagnostics @branch doesn't run diagnostics** — just tells you to use audit pipeline. UX confusion.
3. **Standards count: 32 checkers + diagnostics = 33 audit lines** — pack says 32 (correct), audit shows 33 (includes diagnostics separately)
4. **README was stale** — date 2026-03-29, now updated to 2026-04-07
## Active Plans
- **DPLAN-0012** — Hook Management. PARKED.
- **DPLAN-0104** — External project registry discovery. Seedgo section DONE (CWD-first fix tested).
## TODO
- **Add proof/test_map to --help** — missing from help output
- **Bypass CLI** — Feature request from devpulse
- **Checker test coverage** — 31/32 checkers still need direct tests (APLAN-0084)
## Known Issues
- audit_display.py has depth 5-6 nesting (bypassed)
- unused_function_check: importlib/getattr dynamic discovery needs bypass
- documentation_check 5-line lookahead limitation for multi-line signatures
- dead_code_check doesn't recognize iterdir() discovery patterns
- Duplicate PostToolUse hooks (PARKED)
</details>
<details><summary><strong>@spawn</strong> — Operational (2026-04-07)</summary>
# @spawn
> Branch lifecycle — create, update, delete, sync
**State:** Operational
**Last update:** 2026-04-07
## Branch State Audit (2026-04-09)
### Command Status
| Command | Status | Notes |
|---|---|---|
| `--help` | Operational | Full help text with all commands |
| `(no args)` | Operational | Introspection — lists connected modules |
| `create <path>` | Operational | Creates agent from builder template, registers in registry |
| `create` (external project) | Operational | Auto-detects *_REGISTRY.json, stores relative paths |
| `passport @dirname` | Operational | Grants birthright citizenship |
| `update @branch` | Operational | Single branch update with class-aware template |
| `update <class> --all` | Operational | Batch update by citizen class |
| `update --dry-run` | Operational | Preview mode works |
| `update --help` | Operational | Shows usage and returns 0 |
| `delete @branch` | Operational | Archive + deregister |
| `delete --help` | Operational | Shows usage and returns 0 |
| `sync-registry` | Operational | Reports healthy/stale/unregistered branches |
| `sync-registry --fix` | Operational | Rebuilds .spawn/ tracking |
| `sync-templates` | Partial | Runs but template_owners.json is empty — no managed files |
| `regenerate-registry` | Operational | Regenerates builder template hashes (43 files, 23 dirs) |
| `regenerate-registry --all` | Operational | All template classes |
| Python API (`spawn_agent`) | Operational | `from aipass.spawn import spawn_agent` |
### Metrics
- **Seedgo:** 99% (architecture: CLAUDE.md not yet pushed to spawn branch)
- **Tests:** 206 passed, 37 skipped
- **Module coverage:** 23/23 (100%)
- **Registry:** 12 healthy branches (clean — test artifact removed)
## Known Issues
- `sync-templates` is a no-op (template_owners.json has no entries)
- No APLAN exists for this branch
## Recent Work
- S82 dispatch: Fixed update --help and delete --help (--help interception before argparse processing). test_spawn_audit_agent already removed from registry by S82 split.
- CWD-aware sync-registry for external projects
- TDPLAN-0002: --template flag, CLAUDE.md in builder template
- Seedgo compliance: 99% (CLAUDE.md architecture item pre-existing)
</details>
<details><summary><strong>@trigger</strong> — Operational (2026-04-09)</summary>
# @trigger
> Event bus — 14 events, error registry, circuit breaker, Medic auto-dispatch
**State:** Operational
**Last update:** 2026-04-09
## Milestones
- 14 event types, 14 handlers wired (via registry.py)
- fire/status/list/--version commands
- Error registry (104 tracked errors, SHA1 fingerprinting)
- handle_command routing on all 5 modules
- Medic: enabled, running via systemd, circuit breaker closed
- Seedgo 100% (33/33 categories)
- 370 tests, all passing (12/12 modules covered)
- json_handler wired to all 21 modules/handlers
- Introspection gates on all 5 modules + config.py
- PR events: pr_created + pr_merged fire prax status sync
- Persistent log watcher via systemd user service
## Current State (verified 2026-04-09)
- All CLI commands operational (--help, fire, list, status, medic, errors, branch_log_events, log_events)
- branch_log_events watcher: Active=False in-process (systemd service handles persistence)
- log_events watcher: Active=False in-process (same)
- Error registry: 0 errors tracked (cleared 106 stale entries 2026-04-09)
- Circuit breaker: closed (normal operation)
- Dispatch pipeline: verified working (count>=2 triggers email delivery)
- 55/76 public functions tested
## Current Work
- No active plans. All FPLANs closed.
## Known Issues
- UNKNOWN component errors from prax branch detection failures in watchdog contexts (root cause in prax, not trigger)
- No dispatches have occurred organically yet — all real errors are unique (count=1), never repeating to trigger dispatch threshold (count>=2)
</details>