Commit Graph
117 Commits
Author SHA1 Message Date
AIOSAIand@devpulse f91c8d2f32 fix(system): session 29 cleanup — governance, ruff config, branch work
- Global prompt: dispatch reply breadcrumb (branches must reply to dispatchers)
- /prep command: broadened to end-of-session, not just pre-compact
- .gitignore: added .ruff_cache/ and .pytest_cache/
- pyproject.toml: ruff ignore E402 (metadata headers) + __init__.py F401 (re-exports)
- ai_mail: dashboard_sync.py import fix (devpulse → prax)
- backup: config_handler, ignore_patterns, file_scanner, backup_core updates + test
- devpulse: archived init_project.py (migrated to CLI in PR #48)

Co-Authored-By: @devpulse <devpulse@aipass>
2026-03-14 23:40:10 -07:00
4f061c4d75 feat(prax): fix dashboard refresh data pipeline — 4 bugs (#47)
- 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>
2026-03-14 23:29:53 -07:00
AIPassand@cli 05af9e5cd5 feat(cli): migrate aipass init from devpulse prototype (#48)
Restructure init_project.py into CLI's 3-layer architecture:
- Handler: apps/handlers/init/bootstrap.py (pure Python business logic)
- Module: apps/modules/init_project.py (thin orchestration)
- Wiring: cli.py routes `aipass init` via _handle_aipass()

Command: drone @cli aipass init [target_dir] [project_name]

FPLAN-0041

Co-authored-by: @cli <cli@aipass>
2026-03-14 23:29:50 -07:00
f9cff284b3 feat(prax): dashboard cleanup — remove devpulse, fix broken paths (#45)
* feat(backup): stderr routing, error masking fix, mtime pre-check, ignore patterns split

- Route all error/warning prints to stderr via error()/warning() (backup_core, google_drive_sync)
- Fix route_command error masking — show real errors instead of "Unknown command"
- Add versioned backup mtime pre-check to skip unchanged files
- Extract ignore patterns from config_handler to editable JSON (FPLAN-0037)
  - New: ignore_patterns.py loads from json_templates/ignore_patterns.json
  - config_handler.py v3.0.0 re-exports for backwards compatibility
  - 132 patterns, 14/14 tests pass

Co-Authored-By: @backup <backup@aipass>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(prax): dashboard cleanup — remove devpulse section, fix broken paths

Phase 1 dashboard cleanup (FPLAN-0040):
- Remove devpulse section from template, all hardcoded defaults, and refresh pipeline
- Fix broken paths: old aipass_os/dev_central/devpulse → prax via Path(__file__)
- Fix registry: BRANCH_REGISTRY.json → AIPASS_REGISTRY.json with repo root walk-up
- Fix relative path resolution: registry stores relative paths, now resolved against repo root
- Fix agent_status_writer subprocess import: aipass.devpulse → aipass.prax
- Update help text and docstrings: drone @devpulse → drone @prax
- Add devpulse to DEPRECATED_SECTIONS in template_pusher and differ
- Push-template verified: all 15 branches updated, devpulse section removed

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

---------

Co-authored-by: @backup <backup@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: @prax <prax@aipass>
2026-03-14 23:07:39 -07:00
c6d2bcd353 feat(drone): 188-test suite, interactive backup commands, type fix (#46)
* feat(backup): stderr routing, error masking fix, mtime pre-check, ignore patterns split

- Route all error/warning prints to stderr via error()/warning() (backup_core, google_drive_sync)
- Fix route_command error masking — show real errors instead of "Unknown command"
- Add versioned backup mtime pre-check to skip unchanged files
- Extract ignore patterns from config_handler to editable JSON (FPLAN-0037)
  - New: ignore_patterns.py loads from json_templates/ignore_patterns.json
  - config_handler.py v3.0.0 re-exports for backwards compatibility
  - 132 patterns, 14/14 tests pass

Co-Authored-By: @backup <backup@aipass>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(prax): dashboard cleanup — remove devpulse section, fix broken paths

Phase 1 dashboard cleanup (FPLAN-0040):
- Remove devpulse section from template, all hardcoded defaults, and refresh pipeline
- Fix broken paths: old aipass_os/dev_central/devpulse → prax via Path(__file__)
- Fix registry: BRANCH_REGISTRY.json → AIPASS_REGISTRY.json with repo root walk-up
- Fix relative path resolution: registry stores relative paths, now resolved against repo root
- Fix agent_status_writer subprocess import: aipass.devpulse → aipass.prax
- Update help text and docstrings: drone @devpulse → drone @prax
- Add devpulse to DEPRECATED_SECTIONS in template_pusher and differ
- Push-template verified: all 15 branches updated, devpulse section removed

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

* feat(drone): add 188-test suite, interactive commands for backup, type fix

- Add 5 test files (188 tests) covering executor, resolver, router,
  registry_handler, and discovery — built via 3-round audit process
- Add snapshot/versioned to interactive command tuple for backup Rich output
- Fix type error in router_handler.py:119 (command: Optional[str] → str)
- Fix pytest.ini inline comments breaking pytest 9.x
- Document interactive commands in README

Co-Authored-By: @drone <drone@aipass>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: @backup <backup@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: @prax <prax@aipass>
Co-authored-by: @drone <drone@aipass>
2026-03-14 23:07:06 -07:00
0e658baf85 feat(backup): stderr routing, error masking fix, mtime pre-check, ignore patterns split (#44)
- Route all error/warning prints to stderr via error()/warning() (backup_core, google_drive_sync)
- Fix route_command error masking — show real errors instead of "Unknown command"
- Add versioned backup mtime pre-check to skip unchanged files
- Extract ignore patterns from config_handler to editable JSON (FPLAN-0037)
  - New: ignore_patterns.py loads from json_templates/ignore_patterns.json
  - config_handler.py v3.0.0 re-exports for backwards compatibility
  - 132 patterns, 14/14 tests pass

Co-authored-by: @backup <backup@aipass>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 23:07:03 -07:00
AIPassand@api 9ab96013e7 feat(api): Google provider module — centralized external API gateway (#43)
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>
2026-03-14 23:07:00 -07:00
dependabot[bot] 4c43610816 ci(deps): bump actions/upload-artifact from 4 to 7 (#40)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-14 23:06:57 -07:00
dependabot[bot] dc60524f21 ci(deps): bump actions/stale from 9 to 10 (#39)
Bumps [actions/stale](https://github.com/actions/stale) from 9 to 10.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v9...v10)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: '10'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-14 23:06:55 -07:00
AIPassand@devpulse 3fd3c24bf7 docs(system): git workflow, DPLAN/FPLAN docs, and how-to-work guidelines (#42)
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>
2026-03-14 20:18:30 -07:00
AIPassandClaude Opus 4.6 8fedc053ec feat(system): credential model, stderr migration, DPLAN/FPLAN docs (#41)
* 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>
2026-03-14 18:57:23 -07:00
AIPass 518d6bf2d6 Merge pull request #38 from AIOSAI/feat/registry-glob-and-system-fixes
feat(system): registry glob discovery, drone stderr fix, pyright OOM fix
2026-03-14 11:52:06 -07:00
AIOSAIandClaude Opus 4.6 97952124b5 feat(system): stderr routing migration Phase 3 — 10 branches migrated (FPLAN-0033)
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>
2026-03-14 00:41:38 -07:00
AIOSAIandClaude Opus 4.6 154e92d13e feat(system): CLI stderr standardization + drone error propagation (FPLAN-0032)
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>
2026-03-13 23:27:51 -07:00
AIOSAIandClaude Opus 4.6 c6e504f861 feat(system): registry credential verification + spawn registry_id injection
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>
2026-03-13 22:46:10 -07:00
AIOSAIandClaude Opus 4.6 aa271ba883 feat(system): credential model design + aipass init prototype (DPLAN-003)
Registry credential model: registries get UUID in metadata.id, passports
carry matching registry_id. Stage 1 (UUID match) designed, Stage 2
(macaroon tokens) planned. Research confirmed macaroons as best-fit
pattern for AI agent delegation.

init_project.py prototype: bootstraps AIPass project in any directory
(registry, .trinity, .aipass, AIPASS.md). Hardened against 10 edge
cases (name sanitization, permission errors, passport overwrite guard).
Drone isolation verified across 6 scenarios (sibling, nested, deep
walk-up, cross-project contamination). All findings documented in
credential_model.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 22:38:23 -07:00
AIOSAIandClaude Opus 4.6 8ab43a2cd0 feat(system): registry glob discovery, drone stderr fix, pyright OOM fix (#38)
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>
2026-03-13 21:22:47 -07:00
AIPassandClaude Opus 4.6 4f87b5c044 feat(system): clean hook separation, AIPASS.md as project prompt (#37)
- 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>
2026-03-13 18:02:57 -07:00
AIPassandClaude Opus 4.6 08988ecead chore: remove CLAUDE.md, add AIPASS.md, gitignore .chroma/, DPLAN-003 (#36)
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>
2026-03-13 15:51:14 -07:00
AIPassandClaude Opus 4.6 717acf078a feat(system): hook containment + memory bank operational (FPLAN-0026) (#35)
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>
2026-03-12 19:29:06 -07:00
AIPass 1c5e3ee561 Merge pull request #33 from AIOSAI/feat/system-skills-prompts-precompact
feat(system): skills validation, prompt architecture v2, pre-compact v3, context guardrail
2026-03-12 00:28:26 -07:00
AIOSAIandClaude Opus 4.6 d3cabba738 feat(system): skills validation, prompt architecture v2, pre-compact v3, context guardrail
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>
2026-03-12 00:04:16 -07:00
AIPassandClaude Opus 4.6 fc0de2a76f feat(system): STATUS board, flow DPLAN fixes, prompt architecture, dev.local.md (#32)
STATUS board: per-branch STATUS.local.md with central aggregation via
drone @prax status sync. Prax handler scans AIPASS_REGISTRY.json and
builds collapsible STATUS.md at repo root (14 operational, 1 in-progress).

Flow: migrated all 10 DPLAN handler files from Dev-Pass paths to
Path(__file__)-based resolution. Fixed FPLAN template detection
(is_template_content was deleting plans with real content).

Prompts: breadcrumbs philosophy in global prompt, dev.local.md awareness,
devpulse branch prompt revised (expertise table, working habits, git hygiene).

ai_mail: sender identity fix propagated, email.py handler refactoring.

Prax: status sync handler, dashboard command collision fix, central/reader.py.

dev.local.md seeded across all 15 branches + spawn template. Gitignore
updated (dev.local.md, STATUS.local.md, CLOSED_PLANS.local.json, backup_data).

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 13:36:05 -07:00
AIPass 0cfb440ae3 feat(system): seedgo v2 operational, full system audit — 14/15 branches at 99% (#31)
feat(system): seedgo v2 operational, full system audit — 14/15 branches at 99%
2026-03-10 01:29:05 -07:00
AIOSAIandClaude Opus 4.6 babedd9c64 feat(system): seedgo v2 operational, full system audit, 14/15 branches at 99%
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>
2026-03-10 01:26:42 -07:00
AIPassandClaude Opus 4.6 09e759a8a4 fix(setup): seed .env template into ~/.secrets/aipass/ on bootstrap (#29)
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>
2026-03-08 13:26:23 -07:00
AIPassandClaude Opus 4.6 ca8b3a2912 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>
2026-03-08 13:05:51 -07:00
AIPassandClaude Opus 4.6 9579c27139 fix(skills): drone routing, name validator, pytest.ini, full template (#24) (#27)
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>
2026-03-08 13:02:10 -07:00
AIPassandClaude Opus 4.6 3460963ba0 feat(system): prompt architecture, dashboard → prax, DPLANs → flow, culture doc (#23) (#23)
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>
2026-03-08 11:58:18 -07:00
AIPass 1bab122b81 Merge pull request #22 from AIOSAI/fix/ai-mail-caller-identity
fix(ai_mail): caller identity detection for Docker and local (#22)
2026-03-08 11:09:28 -07:00
AIOSAIandClaude Opus 4.6 d7eab7314d fix(ai_mail): caller identity detection for Docker and local (FPLAN-0011)
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>
2026-03-08 11:07:37 -07:00
AIOSAI bd22f1a076 📝 docs(README): update module descriptions and add new branches
- revise module details to reflect current framework structure
- introduce new branches and explain their purposes
- clarify active development status and project history
2026-03-08 11:02:46 -07:00
AIPassandClaude Opus 4.6 defd1d3c94 feat(setup): full bootstrap — setup.sh delivers all 15 branches ready to go (#21)
- 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>
2026-03-08 10:47:13 -07:00
AIPassandClaude Opus 4.6 cfd66b3b96 fix(seedgo): audit and fix all 20 standards — checker bugs, doc paths, naming rewrite (#20) (#20)
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>
2026-03-08 01:39:36 -08:00
AIPassandClaude Opus 4.6 04b0c80329 fix(scaffold): add builder operational files to commons and skills (#19)
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>
2026-03-07 23:30:09 -08:00
AIPassandClaude Opus 4.6 f9304f6c33 fix(spawn): upgrade backup/daemon/memory from birthright to builder class (#18)
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>
2026-03-07 23:26:40 -08:00
AIPassandClaude Opus 4.6 18bfd0640d feat(bootstrap): grant citizenship to 5 modules, fix drone routing for all 15 (#17)
System bootstrap DPLAN-0001 phases 1-4:
- Grant birthright citizenship to backup, daemon, memory, commons, skills
- Fix backup imports: 16 files relative→absolute (aipass.backup.apps...)
- Fix daemon imports: 8 files relative→absolute (aipass.daemon.apps...)
- Fix skills: add __main__ block + convert 5 files to absolute imports
- Rename commons entry point: the_commons.py → commons.py for drone routing
- Update global prompt: 10→15 branches
- Rewrite devpulse branch prompt with all 15 modules and DPLAN docs
- Remove stale aipass_local_prompt.md
- Add DPLAN-0001 bootstrap tracker and DPLAN template
- Verified round-trip comms: dispatch→wake→process→reply on @memory

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:14:00 -08:00
AIOSAIandClaude Opus 4.6 2099adda72 feat(spawn): citizen classes, setup script, gitignore, README rewrite
- Spawn: builder/birthright templates replace agent.template, passport command,
  class-aware create/update (FPLAN-0009)
- setup.sh: one-command install (venv, pip, hooks, registry generation)
- .gitignore: comprehensive coverage for all runtime state (.trinity/,
  .ai_mail.local/, DASHBOARD.local.json, *_json/, logs/, etc.)
- README.md: rewritten for accuracy — removed fictional plugin docs,
  fixed architecture pattern, corrected module statuses
- Hooks moved to global ~/.claude/settings.json (absolute paths)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 22:06:28 -08:00
AIOSAI 6bd7395763 ✨ chore(logs): add system-wide logging alongside module-local logs
- 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
2026-03-07 16:27:57 -08:00
AIOSAIandClaude Opus 4.6 fe187be8cd ✨ feat(commons): port The Commons social network to AIPass framework
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>
2026-03-07 16:13:49 -08:00
Input-X f8b48a6bb6 updates 2026-03-07 22:13:52 +00:00
Input-X fe3bca1790 updates 2026-03-07 21:02:14 +00:00
Input-X 14979fcb28 drone path fixes 2026-03-07 20:28:38 +00:00
Input-X 6ed12ef523 Merge branch 'main' of https://github.com/AIOSAI/AIPass 2026-03-07 20:17:04 +00:00
AIOSAI 330708695d ✨ feat(skills): implement full skills system with three-tier architecture
- 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
2026-03-07 12:15:29 -08:00
Input-X 2b525cfa4d update 2026-03-07 10:26:35 +00:00
Input-X f64c01916a update 2026-03-07 09:51:38 +00:00
AIOSAI 22c33d4ec7 📝 docs(.claude): add detailed README for Claude Code configuration
- 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
2026-03-07 00:38:22 -08:00
AIOSAIandClaude Opus 4.6 b7f6c16793 feat: port Backup System and Daemon modules to AIPass repo (FPLAN-0004, FPLAN-0005)
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>
2026-03-07 00:36:02 -08:00
AIOSAIandClaude Opus 4.6 da4fa82771 feat: port Memory Bank module to AIPass repo (FPLAN-0003)
Port internal Memory Bank system into src/aipass/memory/ with adapted
imports and paths. All 17 Python files compile clean, 13 existing tests
still pass.

Ported components:
- Entry point: apps/memory.py (drone @memory command routing)
- Modules: rollover.py (orchestration), search.py (query routing)
- Handlers: detector, extractor, line_counter, json_handler, indexer,
  embedder, chroma, vector_search, normalize, manager, dashboard_push,
  central_writer, memory_watcher, chroma_subprocess

Adaptations from internal system:
- Removed all /home/aipass/ hardcoded paths
- Removed sys.path manipulation hacks
- Replaced prax logger with stdlib logging
- Replaced cli console/header with Rich (already a dep)
- Changed BRANCH_REGISTRY → AIPASS_REGISTRY references
- Made chromadb/sentence-transformers optional (try/except)
- Removed private branch registry concept
- Subprocess Python uses sys.executable with AIPASS_MEMORY_PYTHON override

Still needs: drone registration, spawn template updates, container
testing, integration tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 22:49:53 -08:00