- allow tracking of specific hidden directories and files under spawn templates
- ensure agents can build properly with required template files
✨ feat(branch): add comprehensive branch template verification tool
- implemented verify_branch.py to compare branch vs template files
- supports ignoring files based on .registry_ignore.json patterns
- outputs missing, additional, and matched files for branch validation
- included usage instructions and error handling for robust operation
♻️ refactor(prax): fix logger branch logs path to use Path.home()
- replaced hardcoded "/home/aipass" with portable Path.home()
- allows logging directory creation to adapt to user environment
✨ feat(spawn): add default template files and ignore configs for agent branches
- added .backup_ignore.json, .migrations.json, .registry_ignore.json for agent templates
- introduced .template_registry.json to track template files and directories
- created local context and metadata files for branch identity and session tracking
- included dashboard and flow local markdown templates for branch status and management
- added artifacts birth_certificate template for branch registration metadata
✨ feat(spawn): add mock agent branch templates and backups for testing
- created mock branch with backup ignore and registry ignore files for efficient backups
- added template registry and migration definitions matching main agent template
- included local prompt, passport, observations, and dashboard templates for mock branch
- provided flow local markdown and artifact registration files for mock branch use
- duplicated verify_branch.py tool for mock branch environment consistency
♻️ refactor(spawn): unify verify_branch.py tool in agent and mock branches
- standardized branch verification script in both template sets
- ensures consistent branch-template comparison and ignores handling
- implement _find_registry() to locate AIPASS_REGISTRY.json dynamically
- update discover_branches() to resolve absolute branch paths consistently
- fix _is_branch_private() to use _find_registry() and private registry path correctly
- update readme_ops, verify checks, and cli_standard to resolve paths relative to current file
- adjust standards_audit to use discover_branches() for private branch path lookup
- improve robustness and flexibility by removing hardcoded home directory paths
📝 docs(gitignore): add local cheat sheets and Docker.md to gitignore
- ignore local cheat sheets and Docker.md files as they are not source code
♻️ refactor(architecture_check): fix branch root detection loop condition
- change loop condition to stop at filesystem root instead of home directory
- prevent infinite loop by checking if current directory equals its parent
♻️ refactor(readme_generator): default target to current working directory
- change default path from fixed user home subdirectory to current working dir
- improves usability and flexibility when running script without arguments
- replace hard-coded path example with resolve_branch usage
- add load_registry usage to show full registry retrieval
🐛 fix(pyproject): add watchdog dependency
- include watchdog>=3.0 in dependencies for file watching support
🧹 chore(docs): remove obsolete Docker.md file
- delete Docker cheat sheet as it is no longer relevant or maintained
- replace git and curl with python3-full package for dependencies
- create python virtualenv owned by user 1000 for permission consistency
- add entrypoint scripts in /etc/entrypoint.d to avoid shadowing by bind mounts
- override ENTRYPOINTD environment variable to use non-shadowed entrypoint scripts
- switch to user 1000 instead of coder user for container runtime
- use official base image entrypoint with fixuid and dumb-init for process management
- set default code-server workspace to /home/coder/workspace for consistency
📝 docs(readme): overhaul README to reflect current state and usage
- simplify introduction with focus on core AIPass features and status
- update quick start instructions for source install and basic commands
- add Docker usage example for isolated testing with VS Code
- provide core concepts for drone command router and seedgo standards
- rewrite seedgo plugin example and built-in plugin list with formatting
- remove old API examples and deprecated instructions
- add module architecture and status table for all 10 modules
- clarify configuration and environment variable usage
- update requirements and license sections for clarity
📦 build(scripts): add setup-workspace.sh for container initialization
- script ensures workspace directory is writable by coder user
- clones AIPass repo if not already present in workspace
- installs AIPass in editable mode to keep dependencies up to date
- designed to run as container entrypoint.d script for first boot setup
- add critical startup vs task mode instructions with exact greetings
- specify session entry greetings and steps after startup
- detail files to read on startup and verification commands
- clarify module directory structure and coding conventions
- emphasize core principles including testing and import rules
- Replace hardcoded Path(__file__).parents[8] with walk-up registry finder
- Update prax import detection from Dev-Pass pattern to aipass.* namespace
- Fix BRANCH_REGISTRY_PATH undefined error in encapsulation_check
- Add .seed/ and tools/ to gitignore (runtime artifacts)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- spawn: BRANCH_REGISTRY → AIPASS_REGISTRY, place at project root
(finds pyproject.toml/.git instead of hardcoded paths)
- discovery: replace fragile parents[8] with walk-up search,
resolve relative paths, support branch.py entry points,
remove Dev-Pass fallback paths
- Ship pre-populated AIPASS_REGISTRY.json with 9 core modules
- Un-ignore registry from .gitignore (framework config, not state)
Tested: full spawn→registry→seedgo audit pipeline works in clean
Docker container with no Dev-Pass environment.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Strip 230 spawn/runtime files from git tracking. These are generated
post-install (memories, dashboards, birth certs, agent metadata,
runtime JSON) — not source code. Updated .gitignore to prevent
re-tracking.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- add standardized META block with name, description, version, created, modified dates
- unify metadata formatting for better maintainability and traceability
- introduce new meta_check standard handler for library-profile META validation
- update json_structure_check to support library-profile branch detection and path rules
- improve imports_check to enforce pip package import standards (no AIPASS_ROOT/sys.path hacks)
- refine documentation_check to remove META block validation (now in meta_check)
- clean up legacy code and comments related to META and import checks
- add meta standard to aipass standards list and pack manifest
- add aipass pack manifest describing standards and metadata
- implement pack entry point for command routing and module discovery
- enable modular standard checks via auto-discovered modules
- add spawn_agent function to create new agents with placeholders replaced
- support role, traits, purpose, profile overrides in spawning
- copy template files recursively, replacing placeholders in content and paths
- rename any remaining placeholder paths after copy
- regenerate .template_registry.json with fresh file hashes
- register new branch in BRANCH_REGISTRY.json with metadata
- validate no unreplaced placeholders remain in spawned files
✨ feat(spawn/file_ops): add template copy and rename utilities
- implement copy_template to recursively copy templates with placeholder replacements
- skip undesired files and directories during copy (e.g. __pycache__, .git)
- implement rename_placeholder_paths to rename files/directories containing branch placeholders
✨ feat(spawn/placeholders): add placeholder replacement engine
- implement replace_placeholders to substitute {{PLACEHOLDER}} patterns in strings
- build_replacements_dict generates full placeholder map including date, branch names, role, traits, purpose
- validate_no_placeholders scans spawned files to detect unreplaced placeholders
✨ feat(spawn/metadata): add branch name extraction and profile detection
- get_branch_name extracts branch folder name from target path
- normalize_branch_name converts branch name to uppercase or lowercase with underscores
- detect_profile determines AIPass profile from folder path heuristics
✨ feat(spawn/registry): implement BRANCH_REGISTRY.json CRUD
- find_registry locates registry file by walking up directories or defaults
- load_registry loads or initializes registry JSON with metadata and branches list
- save_registry writes registry JSON with updated timestamp and sorted branches
- add_to_registry adds a new branch entry, avoiding duplicates
✨ feat(spawn/__init__): expose spawn_agent API
- add docstring usage example for spawn_agent import and usage
- import spawn_agent from spawn module and export in __all__
✨ style(spawn/templates): update agent.template files for placeholder integration
- replace hardcoded branch names and dates with placeholders like {{BRANCHNAME}} and {{DATE}}
- clean up dashboard and flow local JSON files to use placeholders
- remove deprecated artifact_7_cortex_birth_certificate.json file
- add birth_certificate.json artifact template with placeholders
✅ test(spawn): add comprehensive tests for spawn module
- test metadata functions for branch name extraction and normalization
- test placeholder replacement dict building and validation
- test registry loading, adding entries, and duplicate prevention
- test full spawn_agent workflow including file creation, registry update, and placeholder validation
- test error handling for existing target directory
- test regeneration of .template_registry.json after spawn
- delete all deprecated aipass modules: api, assistant, citizenship, devpulse,
drone, flow, mail, seedgo, skills, trigger, templates, and tests
- remove seedgo config and coverage files no longer used
- cleanup tests for drone CLI, compliance, core, integration, modules, phase2,
seedgo CLI, core, plugins, silent failure detection, file module size, paths,
and version to reduce maintenance burden
- add new agent_mock_branch spawn template with scaffold files, config, and
verification tool for branch consistency checks
- add comprehensive .registry_ignore.json and .backup_ignore.json to exclude
unwanted files from branch updates and backups
- include branch README, artifacts, docs, logs, pytest setup, tools, tests, and
standard bypass configs for new agent mock branch template
- rename and reorganize template files from branch_template to spawn/templates
agent.template for consistent naming and usage
- move all files and folders from cortex branch_template to agents branch_template
- keep file structure and contents unchanged during rename
- add new empty files for docs, logs, and json placeholders in agents branch_template
Implement three priority improvements from seed review:
1. DRONE_MODULE key validation:
- Add check for required keys (name, version, description)
- Fail with ERROR severity if keys are missing
- Extract helper function _get_missing_drone_module_keys()
2. get_introspective() check:
- Add WARNING-level check for get_introspective() function
- Recommended but not required for drone modules
- Follows introspective pattern for module self-documentation
3. New naming-convention plugin:
- Enforce PEP 8 naming conventions
- Check snake_case for functions, variables, module names
- Check PascalCase for classes
- Check UPPER_CASE for module-level constants
- Provide helpful conversion suggestions in fix hints
Test coverage:
- Update existing tests to include new checks
- Add tests for missing DRONE_MODULE keys (ERROR)
- Add tests for missing get_introspective (WARNING)
- All 444 tests pass
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <noreply@anthropic.com>
Replace raw ANSI escape codes with Rich library for all human-facing
seedgo CLI output. Adds display.py module with styled components:
header panels, plugin result lines, check items with severity markers,
summary sections, and plugin tables.
- seedgo check: branded header, styled verdicts, hint formatting
- seedgo list: Rich table with bordered columns
- seedgo init: styled success message
- drone_adapter: use direct import instead of parsing CLI output
- Add rich>=13.0 as dependency
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements the internal AIPass navigation pattern:
- `drone @module` (no args) → introspective: shows what's connected
- `drone @module --help` → help: shows usage documentation
Seedgo introspective lists all discovered plugins with descriptions.
Modules that don't implement get_introspective() fall back to help.
442 tests pass. 5 new introspective tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- introduce drone module registry with metadata and command routing
- add seedgo as a registered internal drone module with adapter
- update drone CLI to route commands to modules or branches by @target
- enhance `drone systems` to list registered modules with descriptions
- provide module help integration alongside branch help
✨ feat(seedgo): create drone adapter for seedgo module commands
- implement handle_command forwarding to seedgo CLI subprocess
- provide get_help function with command-specific help text
- support commands: check, audit, list, init with options and examples
✨ feat(seedgo): add __main__.py to support `python -m seedgo` execution
✨ feat(seedgo plugin): add drone-compliance plugin to verify drone adapter compliance
- checks existence of drone_adapter.py and required interface elements
- validates presence of DRONE_MODULE dict, handle_command(), and get_help()
- reports compliance results with pass/fail and score with detailed checks
- skips non-target packages and handles syntax errors gracefully
✅ test(drone modules): add comprehensive tests for drone module registry and routing
- test listing, info retrieval, command routing, and help retrieval
- test CLI integration for `drone systems` and `drone @seedgo` commands
- verify module priority over branch routing and error handling
✅ test(seedgo drone compliance): add tests for drone-compliance plugin
- test passing cases with proper adapter and interface
- test failures for missing adapter, metadata, or functions
- test warnings for missing get_help function
- test skipping non-target packages and file-not-found cases
- test handling of syntax errors in adapter files
BREAKING: aipass.routing renamed to aipass.drone. Routing IS drone —
the command routing engine IS the CLI command center. No reason to
keep them separate.
Adds `drone` CLI entry point:
drone systems — list registered branches
drone @branch command — route command to branch
drone @branch --help — get branch help
drone --version — show version
406 tests pass (20 new CLI tests). All imports updated.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixes ruff F401 (unused os import, unused _get_root_direct alias) and
F841 (unused parent variable) that caused CI lint failure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Foundation package with zero external dependencies. Implements 3-tier
AIPASS_ROOT resolution: env var → .aipass/ marker walk → ~/.aipass/ default.
Includes derived path helpers (system_logs_dir, branch_registry_path,
branch_path, branch_logs_dir). 32 tests, full coverage.
Also positions placeholder modules (cortex, mail, prax) with documented
intent for upcoming implementation. Version bumped to 1.0.0.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove sys.path.insert() blocks from test files (E402) — package is
installed via pip install -e . so path manipulation is unnecessary
- Move import importlib.util and import subprocess to top of file (E402)
- Remove unused sys import from test_seedgo_core.py (F401)
- Fix undefined _src_path reference in test_seedgo_cli.py (F821)
- Remove unused result variable assignment in TestCLIInit (F841)
- Remove extraneous f prefix from f-string in cli.py (F541)
All 249 tests pass. Zero ruff violations.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove unused `pathlib.Path` and `RegistryNotFoundError` from resolver.py
and unused `tempfile` from test_routing_core.py, resolving ruff F401 errors.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- README with project overview
- pyproject.toml with trinity-pattern dependency
- src/aipass/ package with version
- Basic CI workflow (Python 3.10-3.13, ruff, pytest)
- MIT license
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>