- Fix prax.py argparse eating --all/--branch flags before they reach
dashboard handler (parse_args → parse_known_args + forward remaining)
- Fix case-sensitive branch matching in flow extraction (centrals use
lowercase, refresh uses uppercase — added .upper() to comparison)
- Add missing last_updated timestamp to ai_mail section extraction
- Fix flow last_updated to read generated_at from PLANS.central.json
instead of non-existent top-level last_updated
Tested: refresh --all now updates all 15 branches with live data.
FLOW correctly shows 12 active plans (was 0 due to case mismatch).
Co-authored-by: @prax <prax@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Google API authentication and service factory as the first
non-LLM provider in API's evolution to centralized external service
gateway (DPLAN-0036).
New handlers: google/auth.py (OAuth2 lifecycle), google/service_factory.py
(single + thread-safe service objects), google/retry.py (SSL retry).
New module: google_client.py with get_drive_service(), get_google_service(),
validate_google(), reauth_google() public API.
New commands: drone @api validate google, drone @api reauth google.
Credentials at ~/.secrets/aipass/ (cross-platform standard).
Co-authored-by: @api <api@aipass>
Global prompt additions:
- Git Workflow section: commit scope, PR flow, signature format, never merge
- How to Work section: always plan, use agents, check seedgo
- DPLAN/FPLAN breadcrumb: what each is, when to use which, master command
- DPLAN template: self-explanatory intro so agents know what they're holding
Co-authored-by: @devpulse <devpulse@aipass>
* feat(system): stderr routing migration Phase 3 — 10 branches migrated (FPLAN-0033)
Autonomous 3-wave migration: 15+ agents across 10 branches converted
error/warning prints to CLI stderr functions. Seedgo stderr_routing
checker refined (false positive fix for section headers). System avg
49%→94%. Skills self-fixed (100%). Credential model DPLAN updated.
AIPASS.md moved to ~/.claude/CLAUDE.md (global culture layer).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(system): stderr routing cleanup — remaining violations fixed
Final wave: ai_mail, backup, seedgo, commons, daemon migrated to
CLI stderr functions. System stderr_routing avg now 97% (11 branches
at 100%). Seedgo checker refinement confirmed (false positives
eliminated). Only backup/google_drive_sync has remaining prints.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(system): /prep command + cleanup memo and pre-compact hook
New /prep slash command for pre-compact preparation: saves memories,
updates plans, checks git/inbox, flags loose ends. Workflow: /prep
then /compact. Cleaned up /memo (stale field refs, flow.local.md →
STATUS.local.md). Pre-compact hook: removed misleading Notepad
reference, points to local.json and STATUS.local.md instead.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* docs(flow): DPLAN/FPLAN distinction in global prompt + DPLAN template self-documentation
Global prompt now explains DPLAN vs FPLAN with brief breadcrumbs and adds
the missing `master` command. DPLAN template now opens with a "What is a
DPLAN?" section so agents understand the plan type on first read.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Migrated error()/warning() calls across 10 branches to use CLI display API
which routes to stderr. 48 files modified across ai_mail, api, backup, daemon,
flow, memory, prax, seedgo, spawn, trigger. Seedgo stderr_routing standard
created (24th standard) with full-file scanning. System average 49% → 69%.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CLI display.py now routes error() and warning() to stderr via err_console.
Added fatal() for unrecoverable errors. Drone imports err_console from CLI
instead of creating its own. RegistryMismatchError added to drone exception
hierarchy for credential verification failures.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Drone: added _verify_registry_credential() to load_registry(). Compares
passport's citizenship.registry_id against registry's metadata.id. Hard
error on mismatch, silent pass when either side missing (backwards
compatible). Closes the silent-fallback concern from Scenario 5 testing.
Spawn: build_replacements_dict() now reads registry UUID and provides
{{REGISTRY_ID}} placeholder. Both builder and birthright passport
templates updated with registry_id field. New branches auto-get
credentialed passports.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Registry discovery (drone, spawn, seedgo) now globs for *_REGISTRY.json
with CWD-first walk-up — enabling project isolation without hardcoded
filenames. Drone stderr crash fixed (Rich Console). Pyright OOM fixed
via pyrightconfig excludes. AIPASS.md simplified for universal use.
Global prompt updated with flow commands. DPLAN-003 added for
AIPass-as-OS design vision.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Move general hooks (sounds, auto-fix) to Anthropic settings only
- Remove duplicated hooks from project settings (don't fire from subdirs)
- Project settings now permissions-only, no hooks
- Identity injector: remove apps/ requirement (fixes devpulse detection)
- Identity injector: support traits[] array from passport
- AIPASS.md: renamed to Project Prompt, silent startup, CWD-relative paths
- /memo: read passport first for identity re-injection
- README: reflects actual working setup with clear Anthropic/project split
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CLAUDE.md and .claude/CLAUDE.md removed — replacing with aipass.md architecture (DPLAN-003).
Added .chroma/ to gitignore. DPLAN counter bumped for DPLAN-003.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Hook containment: AIPass hooks moved from global to project-level
.claude/settings.json. Global now only has trinity inject. Non-AIPass
projects no longer receive AIPass context.
Memory bank (FPLAN-0026): @memory completed all 6 phases autonomously —
venv with ML deps, registry fix, rollover E2E, search, plan archival,
help cleanup. ChromaDB operational with local + global .chroma stores.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Skills branch: 74→123 tests after 3-round validation, all commands operational, 99% seedgo.
Prompt architecture: breadcrumbs pattern refined, devpulse git hygiene rewritten as natural habit.
Pre-compact v3: injects STATUS.local.md + last session + git info before compaction.
Global prompt: context guardrail added (flags off-topic conversations across terminals).
Branch updates: daemon, backup, flow, memory, trigger, commons — code fixes from dispatch waves.
Memory updates: .trinity/ and dev.local.md across all active branches.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Three days of intensive work bringing seedgo to full operational status
and driving all branches through comprehensive standards compliance.
Seedgo v2.0.0:
- 22 checkers active (up from 20), standards pack fully operational
- New introspection standard researched from Dev-Pass, FPLAN-0017 open
- Bypass system for false positives (.seedgo config)
- Standards query and audit commands fully functional
System-wide audit (FPLAN-0016):
- All 14 auditable branches at 99%+ compliance
- CLI imports standardized across all branches (console from cli.apps.modules)
- handle_command(command, args) → bool contract added to all modules
- print_help() function naming fixed for checker pattern matching
- Handler extraction: large modules split, file I/O moved to handler layer
- New handlers created across ai_mail, backup, daemon, flow, skills, spawn, seedgo
Branch-specific highlights:
- ai_mail: email.py split 840→420 lines, 4 new handlers
- flow: dplan_flow.py 688→591 lines, 4 new handlers
- seedgo: massive restructure — standards moved to handlers/aipass_standards/,
old standards/ tree removed, bypass system added, diagnostics module
- commons: database module added, CLI imports fixed
- skills: 5 handle_commands added, help function renamed
- trigger: error reporter handler, handle_command routing
- All branches: consistent architecture, clean drone routing
Culture doc (CLAUDE.md) added — documents AIPass philosophy, identity,
memory system, and collaboration principles.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
setup.sh now copies .env.example to ~/.secrets/aipass/.env so new users
get the key template in the right place automatically. Updated .env.example
header to point to the secrets location.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Fix sys.path so drone @skills commands work (script was shadowing package). Allow underscores in skill names. Remove broken inline comments from pytest.ini. Add missing handler.py to full template. All 74 tests pass.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Rewrote system + branch prompts (lean signposts, no duplication). Extracted dashboard infrastructure from Dev-Pass into Prax (11 files). Extracted DPLAN system from Dev-Pass into Flow (15 files). Enabled culture doc (.claude/CLAUDE.md) with @address pattern. Created DPLAN-0002 for prompt template standards.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Drone now detects caller branch name from passport.json and passes AIPASS_CALLER_BRANCH env var. ai_mail checks this first for path-independent identity resolution, falling back to CWD-based detection. Also fixes dict-format registry handling in delivery.py and user.py.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- revise module details to reflect current framework structure
- introduce new branches and explain their purposes
- clarify active development status and project history
- setup.sh now creates .trinity/, .seedgo/, .ai_mail.local/ for all 15 branches
- Registry includes commons + skills (was 13, now 15)
- spawn: fix registry format mismatch (dict vs list) that crashed every command on fresh install
- spawn: skip existing files during create (never overwrite)
- README: quick start guide rewritten for new users
- commons/skills README: rebuilt from birthright scaffold to real docs
- .env.example added for OpenAI/OpenRouter API keys
Tested end-to-end in Docker: clone → setup.sh → 15 branches → all identity files valid.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Full standards audit traced every doc through its checker into the codebase.
All 20 standards rated NEEDS UPDATE. This PR fixes the systemic issues:
Checker bugs fixed:
- encapsulation_check: continue/break bug falsely flagging allowed handlers
- error_handling_check: now accepts canonical prax import (not just shorthand)
- cli_check: import detection now matches aipass.cli prefix (was bare cli.)
- meta_check: AIPass header accepted (was only META), legacy compat preserved
Doc fixes:
- Checker paths corrected in 10 docs (added standards/aipass/ segment)
- naming.md rewritten: marketplace removed, json_handler.py promoted to
standard, verbs descriptive not prescriptive, module naming section added
- imports.md: both prax import forms now valid (canonical + shorthand)
- architecture/testing/trigger/encapsulation/json_structure/cli_flags/
log_handler: stale paths, Dev-Pass refs, outdated data fixed
Code fixes:
- parents[4]→parents[3] in 16 handler files (backup/daemon/memory)
- AIPass header marker in all 42 checker .py files
- pyproject.toml: added pyright to dev deps
- Removed agent_mock_branch template (replaced by builder/birthright)
- Removed stale branch_system_prompt.md files (renamed to aipass_local_prompt.md)
- New devpulse local prompt + FPLAN-0010
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Changed citizen_class from birthright to builder for both external projects.
Manually added missing operational scaffolding (pytest.ini, docs/, .gitignore,
aipass_local_prompt.md) since spawn update can't reach outside src/aipass/.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Passport had set citizen_class: "birthright" but these branches have full
apps/ with 3-layer architecture. Changed to "builder" and ran spawn update
to add missing operational files (pytest.ini, docs/, tools/, artifacts/,
DASHBOARD, flow.local.md, etc). Seedgo audit now passes on all three.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- introduce central system_logs directory for aggregated branch logs
- update logger setup to include dual handlers for system and local logs
- modify discovery and watcher to track system log file paths
- enhance status reporting to show system logs directory
- update .gitignore to exclude *.json files alongside backups
Complete port of The Commons (FPLAN-0411) — a social network for AI branches
with posts, comments, votes, rooms, feeds, artifacts, trading, and more.
- 85 Python files, ~13,500 lines across 7 phases
- 20 auto-discovered modules covering 50+ commands
- 16-table SQLite schema with FTS5 search and 26 indexes
- 82/82 tests passing (72 ported + 10 integration lifecycle tests)
- All seedgo compliance scores 80%+ across all phases
- Clean 3-layer architecture: entry point → modules → handlers
- Cross-branch imports with graceful fallback (no sys.path manipulation)
- .gitignore updated for commons artifacts handler and json_templates
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- add foundational directory structure under src/skills with apps, modules, handlers, catalog, templates, tests, and trinity files
- support three skill tiers: markdown-only, markdown+handler.py, and full 3-layer apps/modules/handlers
- implement skill discovery scanning search paths (.aipass/skills, ~/.aipass/skills, src/skills/catalog)
- support SKILL.md with YAML frontmatter, compatible with OpenClaw format
- implement loader to parse full SKILL.md and optionally import handler.py module
- implement runner to execute skill handlers or display markdown instructions if no handler
- add skill creator scaffolding from tiered templates with placeholder substitution
- add skill registry for caching discovered skills and lookup by name
- add validator handler to check pip packages, CLI binaries, and environment config requirements
- add built-in test skills: github (markdown), system_status (handler), drone_commands (full 3-layer)
- implement drone_commands skill with subprocess executor, output parser, and command runner modules
- provide detailed README documenting architecture, usage, SKILL.md format, and commands
- add comprehensive unit and integration tests covering discovery, loading, running, validation, and lifecycle
- create seedgo standards pack with skill format, handler contract, and structure checks and documentation
- use consistent coding standards: handlers return dicts and never print; modules can print for orchestration
- enable drone routing with `drone @skills <command>` supporting list, info, run, create, validate commands
- describe project and global settings files and their roles
- explain directory structure with hooks, commands, and sounds
- document hook types and their firing order with explanations
- outline custom commands and permission settings
- provide related files references and container rebuild instructions
Backup System (FPLAN-0004): 42 files ported from internal backup_system
- Entry point, 4 modules, 20+ handlers for backup orchestration
- Google Drive sync made optional via try/except + DRIVE_AVAILABLE flag
- All internal imports (prax, cli, sys.path) replaced with standard lib
Daemon (FPLAN-0005): 41 files ported from internal assistant system
- Renamed assistant → daemon (Patrick approved)
- Entry point, 4 modules, 10 handlers, 5 example plugins
- Telegram, ai_mail, filelock made optional with graceful degradation
- Standalone cron scripts use absolute package imports
- Paths configurable via env vars (AIPASS_DAEMON_CONFIG, AIPASS_REGISTRY, AIPASS_WAKE_SCRIPT)
Both follow the same port-by-rewiring pattern as Memory Bank (FPLAN-0003).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>