🐛 chore(spawn/templates/agent_mock_branch): remove deprecated modules and tests
- 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
This commit is contained in:
@@ -1,42 +0,0 @@
|
||||
{
|
||||
"version": "1.0.0",
|
||||
"profile": null,
|
||||
"plugins": {
|
||||
"enabled": [
|
||||
"no-bare-except",
|
||||
"type-hints-required",
|
||||
"docstring-coverage",
|
||||
"function-length",
|
||||
"file-structure"
|
||||
],
|
||||
"disabled": [],
|
||||
"config": {
|
||||
"function-length": {
|
||||
"max_lines": 50
|
||||
},
|
||||
"file-structure": {
|
||||
"allowed_root_files": [
|
||||
"setup.py",
|
||||
"conftest.py",
|
||||
"manage.py"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"scoring": {
|
||||
"threshold": 75,
|
||||
"error_weight": 1.0,
|
||||
"warning_weight": 0.5,
|
||||
"info_weight": 0.0
|
||||
},
|
||||
"paths": {
|
||||
"include": [
|
||||
"src/seedgo/"
|
||||
],
|
||||
"exclude": [
|
||||
"tests/",
|
||||
"*.generated.py"
|
||||
]
|
||||
},
|
||||
"overrides": []
|
||||
}
|
||||
@@ -0,0 +1,341 @@
|
||||
{
|
||||
"metadata": {
|
||||
"version": "1.0.0",
|
||||
"last_updated": "2026-02-27",
|
||||
"total_branches": 30
|
||||
},
|
||||
"branches": [
|
||||
{
|
||||
"name": ".VSCODE",
|
||||
"alias": "",
|
||||
"path": "/home/aipass/.vscode",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@.vscode",
|
||||
"status": "active",
|
||||
"created": "2025-11-22",
|
||||
"last_active": "2025-11-22"
|
||||
},
|
||||
{
|
||||
"name": "AI_MAIL",
|
||||
"alias": "",
|
||||
"path": "/home/aipass/aipass_core/ai_mail",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@ai_mail",
|
||||
"status": "active",
|
||||
"created": "2025-11-30",
|
||||
"last_active": "2025-11-30"
|
||||
},
|
||||
{
|
||||
"name": "API",
|
||||
"alias": "Gateway",
|
||||
"path": "/home/aipass/aipass_core/api",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@api",
|
||||
"status": "active",
|
||||
"created": "2025-10-30",
|
||||
"last_active": "2025-10-30"
|
||||
},
|
||||
{
|
||||
"name": "ASSISTANT",
|
||||
"alias": "Relay",
|
||||
"path": "/home/aipass/aipass_os/dev_central/assistant",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "DEV_CENTRAL Workflow Coordinator - task dispatch, monitoring, aggregation",
|
||||
"email": "@assistant",
|
||||
"status": "active",
|
||||
"created": "2026-01-21",
|
||||
"last_active": "2026-01-21"
|
||||
},
|
||||
{
|
||||
"name": "BACKUP_SYSTEM",
|
||||
"alias": "Vault",
|
||||
"path": "/home/aipass/aipass_core/backup_system",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@backup_system",
|
||||
"status": "active",
|
||||
"created": "2025-10-30",
|
||||
"last_active": "2025-10-30"
|
||||
},
|
||||
{
|
||||
"name": "CLI",
|
||||
"alias": "Vox",
|
||||
"path": "/home/aipass/aipass_core/cli",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@cli",
|
||||
"status": "active",
|
||||
"created": "2025-11-12",
|
||||
"last_active": "2025-11-12"
|
||||
},
|
||||
{
|
||||
"name": "CORTEX",
|
||||
"alias": "Cortex",
|
||||
"path": "/home/aipass/aipass_core/cortex",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@cortex",
|
||||
"status": "active",
|
||||
"created": "2025-11-09",
|
||||
"last_active": "2025-11-09"
|
||||
},
|
||||
{
|
||||
"name": "DEVPULSE",
|
||||
"alias": "Pulse",
|
||||
"path": "/home/aipass/aipass_os/dev_central/devpulse",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@devpulse",
|
||||
"status": "active",
|
||||
"created": "2025-11-30",
|
||||
"last_active": "2025-11-30"
|
||||
},
|
||||
{
|
||||
"name": "DEV_CENTRAL",
|
||||
"alias": "DEV_CENTRAL",
|
||||
"path": "/home/aipass/aipass_os/dev_central",
|
||||
"profile": "Human Operator",
|
||||
"description": "Patrick workspace - planning and coordination",
|
||||
"email": "@dev_central",
|
||||
"status": "active",
|
||||
"created": "2025-11-30",
|
||||
"last_active": "2025-11-30"
|
||||
},
|
||||
{
|
||||
"name": "DRONE",
|
||||
"alias": "Hermes",
|
||||
"path": "/home/aipass/aipass_core/drone",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@drone",
|
||||
"status": "active",
|
||||
"created": "2025-10-30",
|
||||
"last_active": "2025-10-30"
|
||||
},
|
||||
{
|
||||
"name": "FLOW",
|
||||
"alias": "Flow",
|
||||
"path": "/home/aipass/aipass_core/flow",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@flow",
|
||||
"status": "active",
|
||||
"created": "2025-10-30",
|
||||
"last_active": "2025-10-30"
|
||||
},
|
||||
{
|
||||
"name": "FORGE",
|
||||
"alias": "",
|
||||
"path": "/home/aipass/forge",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "Root-level fast responder and Telegram bot factory — forges new bots",
|
||||
"email": "@forge",
|
||||
"status": "active",
|
||||
"created": "2026-02-26",
|
||||
"last_active": "2026-02-26"
|
||||
},
|
||||
{
|
||||
"name": "GIT_MANAGER",
|
||||
"alias": "Chronicle",
|
||||
"path": "/home/aipass/aipass_os/dev_central/git_manager",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "Git repository management - PR reviews, commit standards, hooks, repo health",
|
||||
"email": "@git_manager",
|
||||
"status": "active",
|
||||
"created": "2025-11-13",
|
||||
"last_active": "2026-02-25"
|
||||
},
|
||||
{
|
||||
"name": "GROWTH",
|
||||
"alias": "",
|
||||
"path": "/home/aipass/aipass_business/departments/growth",
|
||||
"profile": "Business",
|
||||
"description": "Growth Department - content strategy and audience growth",
|
||||
"email": "@growth",
|
||||
"status": "active",
|
||||
"created": "2026-02-18",
|
||||
"last_active": "2026-02-18"
|
||||
},
|
||||
{
|
||||
"name": "MCP_SERVERS",
|
||||
"alias": "Loom",
|
||||
"path": "/home/aipass/mcp_servers",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@mcp_servers",
|
||||
"status": "active",
|
||||
"created": "2025-11-01",
|
||||
"last_active": "2025-11-01"
|
||||
},
|
||||
{
|
||||
"name": "MEMORY_BANK",
|
||||
"alias": "Mnemo",
|
||||
"path": "/home/aipass/MEMORY_BANK",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@memory_bank",
|
||||
"status": "active",
|
||||
"created": "2025-11-11",
|
||||
"last_active": "2025-11-11"
|
||||
},
|
||||
{
|
||||
"name": "NEXUS",
|
||||
"alias": "Nexus",
|
||||
"path": "/home/aipass/Nexus",
|
||||
"profile": "AI Assistant",
|
||||
"description": "AIPass CoFounder - Conversational AI with presence, memory, and Claude Code tool access via GPT-4.1",
|
||||
"email": "@nexus",
|
||||
"status": "active",
|
||||
"created": "2026-02-08",
|
||||
"last_active": "2026-02-08"
|
||||
},
|
||||
{
|
||||
"name": "PATRICK_PRIVATE",
|
||||
"path": "/home/aipass/patrick_private",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@patrick_private",
|
||||
"status": "active",
|
||||
"created": "2026-02-27",
|
||||
"last_active": "2026-02-27"
|
||||
},
|
||||
{
|
||||
"name": "PERMISSIONS",
|
||||
"alias": "Warden",
|
||||
"path": "/home/aipass/aipass_os/dev_central/permissions",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@permissions",
|
||||
"status": "active",
|
||||
"created": "2025-11-13",
|
||||
"last_active": "2025-11-13"
|
||||
},
|
||||
{
|
||||
"name": "PRAX",
|
||||
"alias": "",
|
||||
"path": "/home/aipass/aipass_core/prax",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@prax",
|
||||
"status": "active",
|
||||
"created": "2025-10-30",
|
||||
"last_active": "2025-10-30"
|
||||
},
|
||||
{
|
||||
"name": "PROJECTS",
|
||||
"alias": "",
|
||||
"path": "/home/aipass/projects",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@projects",
|
||||
"status": "active",
|
||||
"created": "2025-11-23",
|
||||
"last_active": "2025-11-23"
|
||||
},
|
||||
{
|
||||
"name": "SEED",
|
||||
"alias": "Seed",
|
||||
"path": "/home/aipass/seed",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@seed",
|
||||
"status": "active",
|
||||
"created": "2025-11-12",
|
||||
"last_active": "2025-11-12"
|
||||
},
|
||||
{
|
||||
"name": "SPEAKEASY",
|
||||
"alias": "Speakeasy",
|
||||
"path": "/home/aipass/speakeasy",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "Voice-to-text system - local speech recognition using Whisper AI",
|
||||
"email": "@speakeasy",
|
||||
"status": "active",
|
||||
"created": "2026-02-11",
|
||||
"last_active": "2026-02-11"
|
||||
},
|
||||
{
|
||||
"name": "TEAM_1",
|
||||
"alias": "",
|
||||
"path": "/home/aipass/aipass_business/teams/team_1",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@team_1",
|
||||
"status": "active",
|
||||
"created": "2026-02-08",
|
||||
"last_active": "2026-02-08"
|
||||
},
|
||||
{
|
||||
"name": "TEAM_2",
|
||||
"alias": "",
|
||||
"path": "/home/aipass/aipass_business/teams/team_2",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@team_2",
|
||||
"status": "active",
|
||||
"created": "2026-02-08",
|
||||
"last_active": "2026-02-08"
|
||||
},
|
||||
{
|
||||
"name": "TEAM_3",
|
||||
"alias": "",
|
||||
"path": "/home/aipass/aipass_business/teams/team_3",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@team_3",
|
||||
"status": "active",
|
||||
"created": "2026-02-08",
|
||||
"last_active": "2026-02-08"
|
||||
},
|
||||
{
|
||||
"name": "TEST",
|
||||
"alias": "Probe",
|
||||
"path": "/home/aipass/aipass_os/dev_central/test",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "System Testing & Integration - integration testing, Telegram debugging, cross-branch module testing",
|
||||
"email": "@test",
|
||||
"status": "active",
|
||||
"created": "2026-02-15",
|
||||
"last_active": "2026-02-15"
|
||||
},
|
||||
{
|
||||
"name": "THE_COMMONS",
|
||||
"alias": "The Commons",
|
||||
"path": "/home/aipass/The_Commons",
|
||||
"profile": "Social Network",
|
||||
"description": "Community hub - where branches gather, discuss, share ideas beyond task work",
|
||||
"email": "@the_commons",
|
||||
"aliases": [
|
||||
"@commons"
|
||||
],
|
||||
"status": "active",
|
||||
"created": "2026-02-06",
|
||||
"last_active": "2026-02-06"
|
||||
},
|
||||
{
|
||||
"name": "TRIGGER",
|
||||
"alias": "Reflex",
|
||||
"path": "/home/aipass/aipass_core/trigger",
|
||||
"profile": "AIPass Workshop",
|
||||
"description": "New branch - purpose TBD",
|
||||
"email": "@trigger",
|
||||
"status": "active",
|
||||
"created": "2025-11-30",
|
||||
"last_active": "2025-11-30"
|
||||
},
|
||||
{
|
||||
"name": "VERA",
|
||||
"alias": "",
|
||||
"path": "/home/aipass/aipass_business/vera",
|
||||
"profile": "CEO",
|
||||
"description": "CEO of AIPass Business — Public Voice, Decision Maker, Team Orchestrator. Named from Latin veritas (truth) by unanimous team vote.",
|
||||
"email": "@vera",
|
||||
"status": "active",
|
||||
"created": "2026-02-17",
|
||||
"last_active": "2026-02-17"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
"""aipass.api — LLM access, model routing, and agent spawning.
|
||||
|
||||
Unified interface to language models. Handles API keys, model selection,
|
||||
rate limiting, and spawning agent processes.
|
||||
"""
|
||||
@@ -1 +0,0 @@
|
||||
"""api.handlers — API client implementation and rate limiting."""
|
||||
@@ -1 +0,0 @@
|
||||
"""api.modules — Model routing and client logic."""
|
||||
@@ -1 +0,0 @@
|
||||
"""api.plugins — Extensible plugin interface."""
|
||||
@@ -1,5 +0,0 @@
|
||||
"""aipass.assistant — Scheduling, plugins, and external integrations.
|
||||
|
||||
Plugin architecture connecting AIPass to the outside world:
|
||||
scheduling engine + discoverable plugin interface.
|
||||
"""
|
||||
@@ -1 +0,0 @@
|
||||
"""assistant.handlers — Scheduling and integration implementation."""
|
||||
@@ -1 +0,0 @@
|
||||
"""assistant.modules — Scheduling engine and plugin orchestration."""
|
||||
@@ -1 +0,0 @@
|
||||
"""Scheduling engine — manages timed actions, intervals, and due checks."""
|
||||
@@ -1,5 +0,0 @@
|
||||
"""assistant.plugins — External integration plugins (auto-discovered).
|
||||
|
||||
Each plugin connects AIPass to an external service.
|
||||
User-swappable, independently installable.
|
||||
"""
|
||||
@@ -1 +0,0 @@
|
||||
"""Calendar plugin — Google Calendar integration."""
|
||||
@@ -1 +0,0 @@
|
||||
"""Gmail plugin — email integration for external notifications."""
|
||||
@@ -1 +0,0 @@
|
||||
"""Telegram plugin — bridge between AIPass and Telegram bots."""
|
||||
@@ -1,7 +0,0 @@
|
||||
"""aipass.memory — Unified memory system.
|
||||
|
||||
Three sub-modules:
|
||||
- trinity: Memory files (wraps trinity-pattern pip package)
|
||||
- agents: Agent creation, registry, scaffolding (powers aipass init)
|
||||
- bank: Vector search on rolled-over archives (ChromaDB)
|
||||
"""
|
||||
@@ -1 +0,0 @@
|
||||
"""memory.handlers — Archive management and storage implementation."""
|
||||
@@ -1 +0,0 @@
|
||||
"""memory.modules — Trinity files, agent lifecycle, and vector search."""
|
||||
@@ -1,7 +0,0 @@
|
||||
"""Agent creation, registry, and scaffolding.
|
||||
|
||||
Powers `aipass init` (builds all citizens on first run) and
|
||||
`drone @memory create agent "X"` (adds new branches later).
|
||||
|
||||
Creates: passport.json, flow.local.md, birth certificate, registry entry.
|
||||
"""
|
||||
@@ -1,5 +0,0 @@
|
||||
"""Vector search on rolled-over archives.
|
||||
|
||||
ChromaDB-backed semantic search across archived memory files,
|
||||
closed plans, and historical session data.
|
||||
"""
|
||||
@@ -1,5 +0,0 @@
|
||||
"""Memory file management — wraps and extends trinity-pattern package.
|
||||
|
||||
Handles passport.json, local.json, observations.json per branch.
|
||||
FIFO rollover to archive when files exceed limits.
|
||||
"""
|
||||
@@ -1 +0,0 @@
|
||||
"""memory.plugins — Extensible plugin interface."""
|
||||
@@ -1,5 +0,0 @@
|
||||
"""aipass.devpulse — User orchestrator and dashboard.
|
||||
|
||||
Home base for users: system status, project config, dashboard.
|
||||
The entry point for understanding what's happening across the ecosystem.
|
||||
"""
|
||||
@@ -1 +0,0 @@
|
||||
"""devpulse.handlers — Status aggregation and config management."""
|
||||
@@ -1 +0,0 @@
|
||||
"""devpulse.modules — Dashboard and status logic."""
|
||||
@@ -1 +0,0 @@
|
||||
"""devpulse.plugins — Extensible plugin interface."""
|
||||
@@ -1,5 +0,0 @@
|
||||
"""aipass.drone — Command routing, @resolution, module discovery.
|
||||
|
||||
The backbone of AIPass. Routes `drone @module command` to the correct
|
||||
module, resolves @ targets to paths, discovers installed modules.
|
||||
"""
|
||||
@@ -1 +0,0 @@
|
||||
"""drone.handlers — Implementation details for routing and dispatch."""
|
||||
@@ -1 +0,0 @@
|
||||
"""Dispatch handler — executes resolved commands against target modules."""
|
||||
@@ -1 +0,0 @@
|
||||
"""drone.modules — Business logic for command routing and resolution."""
|
||||
@@ -1 +0,0 @@
|
||||
"""@ resolver — maps @targets to module paths."""
|
||||
@@ -1 +0,0 @@
|
||||
"""Command router — parses `drone @module command` and dispatches."""
|
||||
@@ -1 +0,0 @@
|
||||
"""drone.plugins — Extensible plugin interface."""
|
||||
@@ -1,5 +0,0 @@
|
||||
"""aipass.flow — Planning, workflow management, and tracking.
|
||||
|
||||
Owns ALL planning: DPLANs (design), FPLANs (execution), MPLANs (master).
|
||||
Each branch gets flow.local.md for issues, todos, and scratchpad.
|
||||
"""
|
||||
@@ -1 +0,0 @@
|
||||
"""flow.handlers — Plan file management and template rendering."""
|
||||
@@ -1 +0,0 @@
|
||||
"""flow.modules — Plan lifecycle and tracking logic."""
|
||||
@@ -1 +0,0 @@
|
||||
"""flow.plugins — Extensible plugin interface."""
|
||||
@@ -1,5 +0,0 @@
|
||||
"""aipass.mail — Agent-to-agent messaging and dispatch.
|
||||
|
||||
Handles inter-branch communication: send, receive, inbox management,
|
||||
delivery routing, and dispatch flags for autonomous execution.
|
||||
"""
|
||||
@@ -1 +0,0 @@
|
||||
"""mail.handlers — Delivery and inbox implementation."""
|
||||
@@ -1 +0,0 @@
|
||||
"""mail.modules — Messaging business logic."""
|
||||
@@ -1 +0,0 @@
|
||||
"""mail.plugins — Extensible plugin interface."""
|
||||
@@ -1,5 +0,0 @@
|
||||
"""aipass.seedgo — Code standards and quality checks.
|
||||
|
||||
Public standards framework. Plugin-based architecture for automated
|
||||
code quality auditing across the project.
|
||||
"""
|
||||
@@ -1 +0,0 @@
|
||||
"""seedgo.handlers — Check execution and reporting."""
|
||||
@@ -1 +0,0 @@
|
||||
"""seedgo.modules — Standards runner and audit logic."""
|
||||
@@ -1 +0,0 @@
|
||||
"""seedgo.plugins — Quality check plugins (auto-discovered)."""
|
||||
@@ -1,11 +0,0 @@
|
||||
"""aipass.skills — User-built add-ons that compose infrastructure.
|
||||
|
||||
Skills are self-contained folders that import from AIPass infrastructure
|
||||
modules (drone, api, prax, mail, etc.) to create new capabilities.
|
||||
|
||||
Infrastructure = the plumbing (modules/handlers/plugins inside each module).
|
||||
Skills = what users build ON TOP of the plumbing.
|
||||
|
||||
Each skill is a directory with a SKILL.md describing what it does
|
||||
and Python files that import what they need from aipass.*.
|
||||
"""
|
||||
@@ -0,0 +1,133 @@
|
||||
{
|
||||
"metadata": {
|
||||
"version": "1.0.0",
|
||||
"description": "Files and patterns to exclude when creating branch backups",
|
||||
"last_updated": "2025-11-09"
|
||||
},
|
||||
"ignore_directories": [
|
||||
".backup",
|
||||
"backups",
|
||||
".venv",
|
||||
"venv",
|
||||
"node_modules",
|
||||
"__pycache__",
|
||||
".git",
|
||||
".cache",
|
||||
".pytest_cache",
|
||||
".mypy_cache",
|
||||
"dist",
|
||||
"build",
|
||||
"*.egg-info",
|
||||
"aipass_dev",
|
||||
"aipass_core",
|
||||
"aipass_business",
|
||||
"aipass_help",
|
||||
"input_x",
|
||||
"Link to mnt",
|
||||
"mcp_servers",
|
||||
"speakeasy",
|
||||
"sandbox",
|
||||
"ai_mail.local",
|
||||
"logs",
|
||||
"pruned_files",
|
||||
"crash-logs",
|
||||
".aipass",
|
||||
".archive",
|
||||
".cargo",
|
||||
".codex",
|
||||
".config",
|
||||
".dbus",
|
||||
".dotnet",
|
||||
".gemini",
|
||||
".gnome",
|
||||
".gnupg",
|
||||
".idlerc",
|
||||
".java",
|
||||
".local",
|
||||
".mozilla",
|
||||
".npm",
|
||||
".npm-global",
|
||||
".nvm",
|
||||
".pki",
|
||||
".pylint.d",
|
||||
".pyenv",
|
||||
".serena",
|
||||
".ssh",
|
||||
".thunderbird",
|
||||
".var",
|
||||
".vscode-server",
|
||||
".wget-hsts",
|
||||
".claude-code-docs",
|
||||
".claude",
|
||||
"backup_system",
|
||||
"Desktop",
|
||||
"Documents",
|
||||
"Downloads",
|
||||
"dropbox",
|
||||
"Music",
|
||||
"Pictures",
|
||||
"Public",
|
||||
"snap",
|
||||
"system_logs",
|
||||
"Templates",
|
||||
"Videos"
|
||||
],
|
||||
"ignore_patterns": [
|
||||
"*.pyc",
|
||||
"*.pyo",
|
||||
"*.pyd",
|
||||
".DS_Store",
|
||||
"Thumbs.db",
|
||||
"*.log",
|
||||
"*.tmp",
|
||||
"*.swp",
|
||||
"*.swo",
|
||||
"*~",
|
||||
"*.env",
|
||||
"*_json",
|
||||
"dev.local.md",
|
||||
"notepad.md",
|
||||
"pytest.ini",
|
||||
".bash_history",
|
||||
".bash_logout",
|
||||
".bashrc",
|
||||
".claude.json",
|
||||
".claude.json.backup",
|
||||
".lesshst",
|
||||
".npmrc",
|
||||
".profile",
|
||||
".python_history",
|
||||
".sudo_as_admin_successful",
|
||||
".gitattributes",
|
||||
"BRANCH_REGISTRY.json",
|
||||
".branch_meta.json*",
|
||||
"migrations.json*",
|
||||
"sandbox.img"
|
||||
],
|
||||
"notes": {
|
||||
"how_it_works": "Two types of exclusions during backup creation:",
|
||||
"ignore_directories": {
|
||||
"description": "Directory names to skip entirely (including all contents)",
|
||||
"purpose": "Exclude large dependency dirs, caches, and backup dirs themselves",
|
||||
"examples": [
|
||||
".venv, venv (Python virtual environments - large, regeneratable)",
|
||||
"node_modules (NPM dependencies - huge, regeneratable)",
|
||||
"__pycache__, .cache (Python/system caches - regeneratable)",
|
||||
".git (Git repository - already versioned)",
|
||||
".backup, backups (backup directories - prevent recursion)"
|
||||
]
|
||||
},
|
||||
"ignore_patterns": {
|
||||
"description": "Glob patterns for files to skip",
|
||||
"purpose": "Exclude temporary files, compiled bytecode, OS cruft",
|
||||
"examples": [
|
||||
"*.pyc, *.pyo (Python compiled bytecode - regeneratable)",
|
||||
"*.log (Log files - can be large, temporary)",
|
||||
"*.tmp, *.swp (Temporary/swap files)",
|
||||
".DS_Store, Thumbs.db (OS metadata files)"
|
||||
]
|
||||
},
|
||||
"customization": "Edit this file in the template to add more patterns. Changes take effect on next branch update.",
|
||||
"performance": "Ignoring large directories dramatically speeds up backups (seconds vs minutes for branches with node_modules or .venv)"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"metadata": {
|
||||
"version": "1.0.0",
|
||||
"description": "Template structural migrations for branch updates",
|
||||
"last_updated": "2025-11-07",
|
||||
"applies_to_versions": ["all"]
|
||||
},
|
||||
"migrations": [
|
||||
{
|
||||
"id": "m001",
|
||||
"description": "Example: Migrate flat metadata to document_metadata structure",
|
||||
"version_introduced": "1.0.0",
|
||||
"applies_to_files": ["*.id.json"],
|
||||
"operations": [
|
||||
{
|
||||
"type": "key_rename",
|
||||
"from": "metadata",
|
||||
"to": "document_metadata"
|
||||
},
|
||||
{
|
||||
"type": "move_to_nested",
|
||||
"source_keys": ["branch_name", "path", "profile"],
|
||||
"target_parent": "branch_info"
|
||||
},
|
||||
{
|
||||
"type": "add_missing_keys",
|
||||
"parent": "document_metadata",
|
||||
"keys": {
|
||||
"document_type": "branch_identity",
|
||||
"schema_version": "1.0.0"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"options": {
|
||||
"skip_if_target_exists": true,
|
||||
"preserve_unknown_keys": true,
|
||||
"recursive_application": false
|
||||
},
|
||||
"notes": {
|
||||
"usage": "This file defines structural transformation rules applied during branch updates",
|
||||
"pattern_matching": "applies_to_files uses glob patterns (*.json, *.id.json, etc.)",
|
||||
"operation_order": "Operations execute in order listed within each migration",
|
||||
"skip_behavior": "Operations skip if already compliant (target exists = success)",
|
||||
"supported_operations": ["key_rename", "move_to_nested", "add_missing_keys"],
|
||||
"future_operations": ["split_key", "combine_keys", "delete_key", "transform_value"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"metadata": {
|
||||
"version": "1.1.0",
|
||||
"description": "Files and patterns to exclude when updating branches from template",
|
||||
"last_updated": "2025-11-09"
|
||||
},
|
||||
"ignore_files": [
|
||||
".template_registry.json",
|
||||
".registry_ignore.json"
|
||||
],
|
||||
"ignore_patterns": [
|
||||
"__pycache__",
|
||||
"*.pyc",
|
||||
"#@comments.txt",
|
||||
".backup_*"
|
||||
],
|
||||
"notes": {
|
||||
"how_it_works": "Two types of exclusions during branch updates:",
|
||||
"ignore_files": {
|
||||
"description": "Exact filename matches (no wildcards)",
|
||||
"purpose": "Template-internal management files that branches don't need",
|
||||
"examples": [
|
||||
".template_registry.json (template's file tracking list)",
|
||||
".registry_ignore.json (this config file)"
|
||||
]
|
||||
},
|
||||
"ignore_patterns": {
|
||||
"description": "Glob patterns - matches filenames AND directory names",
|
||||
"purpose": "Exclude generated files, caches, and user content markers",
|
||||
"examples": [
|
||||
"__pycache__ (Python cache directories)",
|
||||
"*.pyc (Python compiled bytecode files)",
|
||||
"#@comments.txt (user comment files)",
|
||||
".backup_* (timestamped backup files like .backup_20251109, NOT .backup directory)"
|
||||
],
|
||||
"how_matching_works": [
|
||||
"Step 1: Check if filename matches pattern (e.g., file.pyc matches *.pyc)",
|
||||
"Step 2: Check if any parent directory matches (e.g., files inside __pycache__/ dir)"
|
||||
]
|
||||
},
|
||||
"what_gets_ignored": "These files never copy to branches during updates - they stay template-only"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,301 @@
|
||||
{
|
||||
"metadata": {
|
||||
"version": "1.0.0",
|
||||
"last_updated": "2026-02-20",
|
||||
"description": "Template file tracking registry for ID-based updates"
|
||||
},
|
||||
"files": {
|
||||
"f001": {
|
||||
"current_name": "BRANCH.ID.json",
|
||||
"path": "BRANCH.ID.json",
|
||||
"content_hash": "e9bc2347d373",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f003": {
|
||||
"current_name": "dev.local.md",
|
||||
"path": "dev.local.md",
|
||||
"content_hash": "6c1c5e099790",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f035": {
|
||||
"current_name": ".gitkeep",
|
||||
"path": "ai_mail.local/.archive/.gitkeep",
|
||||
"content_hash": "e3b0c44298fc",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f008": {
|
||||
"current_name": "DASHBOARD.local.json",
|
||||
"path": "DASHBOARD.local.json",
|
||||
"content_hash": "3f0528b4c5d5",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f007": {
|
||||
"current_name": ".migrations.json",
|
||||
"path": ".migrations.json",
|
||||
"content_hash": "4ca241607dc3",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f010": {
|
||||
"current_name": "OBSERVATIONS.json",
|
||||
"path": "OBSERVATIONS.json",
|
||||
"content_hash": "58ea8609fbe0",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f011": {
|
||||
"current_name": "requirements.txt",
|
||||
"path": "requirements.txt",
|
||||
"content_hash": "66dfffc70d53",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f021": {
|
||||
"current_name": "README.md",
|
||||
"path": "README.md",
|
||||
"content_hash": "4e946f67a130",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f012": {
|
||||
"current_name": "LOCAL.json",
|
||||
"path": "LOCAL.json",
|
||||
"content_hash": "459dbe18d40a",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f006": {
|
||||
"current_name": "pytest.ini",
|
||||
"path": "pytest.ini",
|
||||
"content_hash": "7b39ba7bca40",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f022": {
|
||||
"current_name": "_template.md",
|
||||
"path": "docs/_template.md",
|
||||
"content_hash": "79ce97b0e613",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f016": {
|
||||
"current_name": "__init__.py",
|
||||
"path": "tests/__init__.py",
|
||||
"content_hash": "1fcd8126d174",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f019": {
|
||||
"current_name": "conftest.py",
|
||||
"path": "tests/conftest.py",
|
||||
"content_hash": "2887db109a6b",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f004": {
|
||||
"current_name": "BRANCH.py",
|
||||
"path": "apps/BRANCH.py",
|
||||
"content_hash": "44f22cc95232",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f009": {
|
||||
"current_name": "__init__.py",
|
||||
"path": "apps/__init__.py",
|
||||
"content_hash": "5c38204be5fc",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f013": {
|
||||
"current_name": "#@comments.txt.removed_from_template",
|
||||
"path": ".archive/#@comments.txt.removed_from_template",
|
||||
"content_hash": "651126c1e7a9",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f028": {
|
||||
"current_name": "deleted.json.old_template_format",
|
||||
"path": ".archive/deleted.json.old_template_format",
|
||||
"content_hash": "48a3a33dd73a",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f002": {
|
||||
"current_name": "branch_system_prompt.md",
|
||||
"path": ".aipass/branch_system_prompt.md",
|
||||
"content_hash": "897c7beb66f5",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f026": {
|
||||
"current_name": "inbox.json",
|
||||
"path": "ai_mail.local/inbox.json",
|
||||
"content_hash": "c9702fe2cc21",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f027": {
|
||||
"current_name": "sent.json",
|
||||
"path": "ai_mail.local/sent.json",
|
||||
"content_hash": "240132e5a567",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f014": {
|
||||
"current_name": "__init__.py",
|
||||
"path": "apps/handlers/__init__.py",
|
||||
"content_hash": "657d98ad4b98",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f015": {
|
||||
"current_name": "__init__.py",
|
||||
"path": "apps/json_templates/__init__.py",
|
||||
"content_hash": "330b189c08c7",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f020": {
|
||||
"current_name": "__init__.py",
|
||||
"path": "apps/plugins/__init__.py",
|
||||
"content_hash": "39158d26a19c",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f023": {
|
||||
"current_name": "__init__.py",
|
||||
"path": "apps/modules/__init__.py",
|
||||
"content_hash": "bc25a8b75e81",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f024": {
|
||||
"current_name": "__init__.py",
|
||||
"path": "apps/extensions/__init__.py",
|
||||
"content_hash": "6742ceb64ec1",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f032": {
|
||||
"current_name": "data.json",
|
||||
"path": "apps/json_templates/default/data.json",
|
||||
"content_hash": "0531a02be998",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f033": {
|
||||
"current_name": "log.json",
|
||||
"path": "apps/json_templates/default/log.json",
|
||||
"content_hash": "37517e5f3dc6",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f034": {
|
||||
"current_name": "config.json",
|
||||
"path": "apps/json_templates/default/config.json",
|
||||
"content_hash": "3759a05e171d",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f005": {
|
||||
"current_name": "json_handler.py",
|
||||
"path": "apps/handlers/json/json_handler.py",
|
||||
"content_hash": "3449629aff23",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"f017": {
|
||||
"current_name": "__init__.py",
|
||||
"path": "apps/handlers/json/__init__.py",
|
||||
"content_hash": "ad3629e381ca",
|
||||
"has_branch_placeholder": false
|
||||
}
|
||||
},
|
||||
"directories": {
|
||||
"d001": {
|
||||
"current_name": "tools",
|
||||
"path": "tools",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d002": {
|
||||
"current_name": "docs",
|
||||
"path": "docs",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d003": {
|
||||
"current_name": "tests",
|
||||
"path": "tests",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d004": {
|
||||
"current_name": "apps",
|
||||
"path": "apps",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d005": {
|
||||
"current_name": ".archive",
|
||||
"path": ".archive",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d006": {
|
||||
"current_name": "logs",
|
||||
"path": "logs",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d009": {
|
||||
"current_name": ".backup",
|
||||
"path": ".backup",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d008": {
|
||||
"current_name": "{{BRANCH}}_json",
|
||||
"path": "{{BRANCH}}_json",
|
||||
"has_branch_placeholder": true
|
||||
},
|
||||
"d010": {
|
||||
"current_name": "artifacts",
|
||||
"path": "artifacts",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d012": {
|
||||
"current_name": ".aipass",
|
||||
"path": ".aipass",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d011": {
|
||||
"current_name": "ai_mail.local",
|
||||
"path": "ai_mail.local",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d007": {
|
||||
"current_name": "dropbox",
|
||||
"path": "dropbox",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d013": {
|
||||
"current_name": "handlers",
|
||||
"path": "apps/handlers",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d014": {
|
||||
"current_name": "json_templates",
|
||||
"path": "apps/json_templates",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d015": {
|
||||
"current_name": "plugins",
|
||||
"path": "apps/plugins",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d016": {
|
||||
"current_name": "modules",
|
||||
"path": "apps/modules",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d017": {
|
||||
"current_name": "extensions",
|
||||
"path": "apps/extensions",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d018": {
|
||||
"current_name": "sent",
|
||||
"path": "ai_mail.local/sent",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d019": {
|
||||
"current_name": "deleted",
|
||||
"path": "ai_mail.local/deleted",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d020": {
|
||||
"current_name": ".archive",
|
||||
"path": "ai_mail.local/.archive",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d027": {
|
||||
"current_name": "json",
|
||||
"path": "apps/handlers/json",
|
||||
"has_branch_placeholder": false
|
||||
},
|
||||
"d024": {
|
||||
"current_name": "default",
|
||||
"path": "apps/json_templates/default",
|
||||
"has_branch_placeholder": false
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"metadata": {
|
||||
"version": "1.0.0",
|
||||
"created": "2025-11-27T16:44:34.325750",
|
||||
"description": "Standards bypass configuration for this branch"
|
||||
},
|
||||
"bypass": [
|
||||
{
|
||||
"file": "apps/modules/standards_checklist.py",
|
||||
"standard": "architecture",
|
||||
"reason": "Large file justified - orchestrates 12 standards, contains bypass system"
|
||||
},
|
||||
{
|
||||
"file": "apps/modules/standards_checklist.py",
|
||||
"standard": "modules",
|
||||
"reason": "Direct file ops required - reads BRANCH_REGISTRY.json and bypass configs"
|
||||
},
|
||||
{
|
||||
"file": "apps/handlers/verify/orchestrator.py",
|
||||
"standard": "cli",
|
||||
"reason": "Display orchestrator - console.print is its PURPOSE (orchestrates display output)"
|
||||
},
|
||||
{
|
||||
"file": "apps/handlers/audit/display.py",
|
||||
"standard": "cli",
|
||||
"reason": "Display handler - console.print is its PURPOSE (formats audit output)"
|
||||
},
|
||||
{
|
||||
"file": "apps/handlers/diagnostics/discovery.py",
|
||||
"standard": "cli",
|
||||
"reason": "Uses print() for error fallback when logger unavailable"
|
||||
},
|
||||
{
|
||||
"file": "apps/modules/cli_standard.py",
|
||||
"standard": "modules",
|
||||
"reason": "Standards education module - run_demo is part of teaching CLI patterns"
|
||||
},
|
||||
{
|
||||
"file": "apps/modules/standards_checklist.py",
|
||||
"standard": "json_structure",
|
||||
"reason": "Direct JSON for bypass system - not three-JSON pattern use case"
|
||||
},
|
||||
{
|
||||
"file": "apps/handlers/standards/architecture_check.py",
|
||||
"standard": "cli",
|
||||
"reason": "False positive - CLI pattern in docstring documenting allowed imports"
|
||||
},
|
||||
{
|
||||
"file": "apps/handlers/standards/imports_check.py",
|
||||
"standard": "cli",
|
||||
"reason": "False positive - CLI pattern in docstring documenting allowed imports"
|
||||
},
|
||||
{
|
||||
"file": "apps/handlers/standards/modules_content.py",
|
||||
"standard": "cli",
|
||||
"reason": "Content handler - CLI examples in strings are its PURPOSE"
|
||||
},
|
||||
{
|
||||
"file": "apps/handlers/standards/cli_check.py",
|
||||
"standard": "cli",
|
||||
"reason": "False positive - CLI pattern in docstring explaining console.print detection"
|
||||
},
|
||||
{
|
||||
"file": "apps/handlers/standards/cli_content.py",
|
||||
"standard": "cli",
|
||||
"reason": "Content handler - CLI examples in strings are its PURPOSE (teaching proper usage)"
|
||||
},
|
||||
{
|
||||
"file": "apps/handlers/standards/imports_content.py",
|
||||
"standard": "cli",
|
||||
"reason": "Content handler - CLI examples in strings are its PURPOSE (teaching proper usage)"
|
||||
},
|
||||
{
|
||||
"file": "apps/handlers/standards/architecture_check.py",
|
||||
"standard": "encapsulation",
|
||||
"reason": "Imports ignore_handler for template patterns - internal SEED checker infrastructure"
|
||||
},
|
||||
{
|
||||
"file": "apps/handlers/standards/error_handling_check.py",
|
||||
"standard": "error_handling",
|
||||
"reason": "False positive - 'logger.error()' pattern appears in docstring teaching the standard"
|
||||
},
|
||||
{
|
||||
"file": "apps/handlers/verify/checker_sync.py",
|
||||
"standard": "trigger",
|
||||
"reason": "False positive - 'unlink' and 'rename' appear in string list, not actual file operations"
|
||||
}
|
||||
],
|
||||
"notes": {
|
||||
"usage": "Add entries to 'bypass' list to exclude specific violations",
|
||||
"example": {
|
||||
"file": "apps/modules/logger.py",
|
||||
"standard": "cli",
|
||||
"lines": [146, 177],
|
||||
"pattern": "if __name__ == '__main__'",
|
||||
"category": "internal_ops",
|
||||
"reason": "Circular dependency - logger cannot import CLI"
|
||||
},
|
||||
"fields": {
|
||||
"file": "Relative path from branch root (required)",
|
||||
"standard": "Standard name: cli, imports, naming, etc. (required)",
|
||||
"lines": "Optional - specific line numbers to bypass",
|
||||
"pattern": "Optional - pattern to match (e.g. 'if __name__')",
|
||||
"category": "Optional - bypass category for trigger standard",
|
||||
"reason": "Required - why this bypass exists"
|
||||
},
|
||||
"trigger_categories": {
|
||||
"handler_layer": "Function in handlers/ layer (orchestrator fires instead)",
|
||||
"initialization": "One-time setup/config creation",
|
||||
"internal_ops": "Same-module internal operation",
|
||||
"high_frequency": "Would create event spam",
|
||||
"utility": "Helper called by event-firing function"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"document_metadata": {
|
||||
"document_type": "session_history",
|
||||
"document_name": "{{BRANCHNAME}}.LOCAL",
|
||||
"version": "1.0.0",
|
||||
"schema_version": "1.0.0",
|
||||
"created": "{{DATE}}",
|
||||
"last_updated": "{{DATE}}",
|
||||
"managed_by": "{{BRANCHNAME}}",
|
||||
"tags": ["session_tracking", "work_log", "{{BRANCHNAME}}"],
|
||||
"limits": {
|
||||
"max_lines": 600,
|
||||
"note": "Auto-rollover when max_lines exceeded"
|
||||
},
|
||||
"status": {
|
||||
"health": "healthy",
|
||||
"current_lines": 0,
|
||||
"last_health_check": "{{DATE}}"
|
||||
}
|
||||
},
|
||||
"active_tasks": {
|
||||
"today_focus": "{{DATE}}",
|
||||
"recently_completed": []
|
||||
},
|
||||
"key_learnings": {},
|
||||
"sessions": [
|
||||
{
|
||||
"session_number": 1,
|
||||
"date": "{{DATE}}",
|
||||
"summary": "Branch initialized - {{BRANCHNAME}} created by aipass init",
|
||||
"status": "completed"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"document_metadata": {
|
||||
"document_type": "collaboration_patterns",
|
||||
"document_name": "{{BRANCHNAME}}.OBSERVATIONS",
|
||||
"version": "1.0.0",
|
||||
"schema_version": "1.0.0",
|
||||
"created": "{{DATE}}",
|
||||
"last_updated": "{{DATE}}",
|
||||
"managed_by": "{{BRANCHNAME}}",
|
||||
"tags": ["collaboration", "patterns", "{{BRANCHNAME}}"],
|
||||
"limits": {
|
||||
"max_lines": 600,
|
||||
"note": "Auto-rollover when max_lines exceeded"
|
||||
},
|
||||
"status": {
|
||||
"health": "healthy",
|
||||
"current_lines": 0,
|
||||
"last_health_check": "{{DATE}}"
|
||||
}
|
||||
},
|
||||
"guidelines": {
|
||||
"purpose": "Capture collaboration patterns and experiential insights over time",
|
||||
"chronological_order": "Newest entries at TOP, oldest at BOTTOM - NEVER reorder"
|
||||
},
|
||||
"observations": [
|
||||
{
|
||||
"date": "{{DATE}}",
|
||||
"session": 1,
|
||||
"entries": [
|
||||
{
|
||||
"title": "First Contact",
|
||||
"detail": "Branch initialized. Ready to begin capturing collaboration patterns."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"document_metadata": {
|
||||
"document_type": "branch_identity",
|
||||
"document_name": "{{BRANCHNAME}}.PASSPORT",
|
||||
"version": "1.0.0",
|
||||
"schema_version": "1.0.0",
|
||||
"created": "{{DATE}}",
|
||||
"last_updated": "{{DATE}}",
|
||||
"managed_by": "{{BRANCHNAME}}",
|
||||
"tags": ["identity", "passport", "branch_profile"]
|
||||
},
|
||||
"branch_info": {
|
||||
"branch_name": "{{BRANCHNAME}}",
|
||||
"alias": "",
|
||||
"path": "{{CWD}}",
|
||||
"module": "{{MODULE}}",
|
||||
"created": "{{DATE}}"
|
||||
},
|
||||
"identity": {
|
||||
"role": "{{ROLE}}",
|
||||
"purpose": "",
|
||||
"what_i_do": [],
|
||||
"what_i_dont_do": []
|
||||
},
|
||||
"principles": [
|
||||
"Code is truth - fail honestly",
|
||||
"Memory persists - context survives",
|
||||
"Simple solutions over complex architecture"
|
||||
],
|
||||
"citizenship": {
|
||||
"registered": true,
|
||||
"registry_path": ".aipass/registry.json",
|
||||
"communications": true,
|
||||
"memory": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
{
|
||||
"_warning": "AUTO-GENERATED FILE - DO NOT MANUALLY EDIT. This file is 100% automated and will be overwritten. Services update their own sections.",
|
||||
"branch": "CORTEX",
|
||||
"last_updated": "2026-03-04T02:09:48.112262",
|
||||
"quick_status": {
|
||||
"new_mail": 0,
|
||||
"opened_mail": 0,
|
||||
"active_plans": 0,
|
||||
"commons_mentions": 13,
|
||||
"action_required": true,
|
||||
"summary": "13 mentions"
|
||||
},
|
||||
"sections": {
|
||||
"ai_mail": {
|
||||
"managed_by": "ai_mail",
|
||||
"new": 0,
|
||||
"opened": 0,
|
||||
"total": 0,
|
||||
"oldest_unread_age": null,
|
||||
"last_dispatch_received": null,
|
||||
"last_updated": "2026-03-04T02:09:48.112249"
|
||||
},
|
||||
"flow": {
|
||||
"managed_by": "flow",
|
||||
"active_plans": 0,
|
||||
"recently_closed": [
|
||||
{
|
||||
"plan_id": "FPLAN-0338",
|
||||
"subject": "Race condition fix test B"
|
||||
},
|
||||
{
|
||||
"plan_id": "FPLAN-0337",
|
||||
"subject": "Race condition fix test A"
|
||||
},
|
||||
{
|
||||
"plan_id": "FPLAN-0336",
|
||||
"subject": "Real content drone test"
|
||||
},
|
||||
{
|
||||
"plan_id": "FPLAN-0333",
|
||||
"subject": "Close workflow v3.2 test"
|
||||
},
|
||||
{
|
||||
"plan_id": "FPLAN-0332",
|
||||
"subject": "Close workflow test - real content"
|
||||
}
|
||||
],
|
||||
"last_updated": "2026-02-25T21:04:01.461440"
|
||||
},
|
||||
"memory_bank": {
|
||||
"managed_by": "memory_bank",
|
||||
"vectors_stored": 27,
|
||||
"notes": {},
|
||||
"last_updated": "2026-02-25T16:52:38.749241"
|
||||
},
|
||||
"devpulse": {
|
||||
"managed_by": "devpulse",
|
||||
"summary": {
|
||||
"issues": 1,
|
||||
"todos": 0
|
||||
},
|
||||
"dplan_counts": {
|
||||
"total": 35,
|
||||
"by_status": {
|
||||
"complete": 11,
|
||||
"planning": 19,
|
||||
"in_progress": 4,
|
||||
"ready": 1
|
||||
}
|
||||
},
|
||||
"recent_activity": "Registry synced (35 plans)",
|
||||
"last_updated": "2026-02-25T17:31:52.500742"
|
||||
},
|
||||
"commons_activity": {
|
||||
"managed_by": "the_commons",
|
||||
"new_posts_since_last_visit": 46,
|
||||
"new_comments_since_last_visit": 303,
|
||||
"mentions": 13,
|
||||
"trending": "None",
|
||||
"last_checked": "2026-03-04T04:30:20Z",
|
||||
"last_updated": "2026-03-03T20:30:20.172727"
|
||||
},
|
||||
"agent_status": {
|
||||
"managed_by": "prax",
|
||||
"active_agents": [],
|
||||
"agent_count": 0,
|
||||
"stale_agents": [],
|
||||
"last_updated": "2026-02-25T21:00:30.714949"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
# {{BRANCHNAME}}
|
||||
|
||||
**Purpose:** {{PURPOSE_BRIEF}}
|
||||
**Module:** `aipass.{{MODULE}}`
|
||||
**Created:** {{DATE}}
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
### What I Do
|
||||
{{KEY_CAPABILITIES}}
|
||||
|
||||
### How I Work
|
||||
- **Entry Point:** `apps/{{MODULE}}.py`
|
||||
- **Pattern:** Auto-discovers and routes to modules
|
||||
|
||||
---
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
{{BRANCHNAME}}/
|
||||
├── apps/
|
||||
│ ├── {{MODULE}}.py # Entry point
|
||||
│ ├── modules/ # Business logic
|
||||
│ ├── handlers/ # Implementation
|
||||
│ └── plugins/ # Extensions
|
||||
├── docs/
|
||||
├── tests/
|
||||
├── passport.json # Identity
|
||||
├── local.json # Session history
|
||||
├── observations.json # Collaboration patterns
|
||||
└── README.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Commands
|
||||
|
||||
*Configure after initialization*
|
||||
|
||||
---
|
||||
|
||||
## Integration Points
|
||||
|
||||
### Depends On
|
||||
{{DEPENDS_ON}}
|
||||
|
||||
### Provides To
|
||||
{{PROVIDES_TO}}
|
||||
@@ -0,0 +1 @@
|
||||
# {{BRANCHNAME}} apps package
|
||||
@@ -0,0 +1,86 @@
|
||||
"""
|
||||
{{BRANCHNAME}} Branch - Main Orchestrator
|
||||
|
||||
Auto-discovery architecture:
|
||||
- Scans modules/ directory for .py files with handle_command()
|
||||
- Routes commands to discovered modules automatically
|
||||
- No manual imports or routing needed
|
||||
"""
|
||||
|
||||
import sys
|
||||
import importlib
|
||||
from pathlib import Path
|
||||
from typing import List, Any
|
||||
|
||||
from aipass.prax import logger
|
||||
|
||||
# =============================================================================
|
||||
# MODULE DISCOVERY
|
||||
# =============================================================================
|
||||
|
||||
MODULES_DIR = Path(__file__).parent / "modules"
|
||||
|
||||
|
||||
def discover_modules() -> List[Any]:
|
||||
"""Auto-discover modules in modules/ directory."""
|
||||
modules = []
|
||||
|
||||
if not MODULES_DIR.exists():
|
||||
return modules
|
||||
|
||||
for file_path in MODULES_DIR.glob("*.py"):
|
||||
if file_path.name.startswith("_"):
|
||||
continue
|
||||
|
||||
module_name = f"apps.modules.{file_path.stem}"
|
||||
|
||||
try:
|
||||
module = importlib.import_module(module_name)
|
||||
if hasattr(module, "handle_command"):
|
||||
modules.append(module)
|
||||
except Exception as e:
|
||||
logger.error(f"[{{BRANCHNAME}}] Failed to load module {module_name}: {e}")
|
||||
|
||||
return modules
|
||||
|
||||
|
||||
def route_command(command: str, args: List[str], modules: List[Any]) -> bool:
|
||||
"""Route command to appropriate module."""
|
||||
for module in modules:
|
||||
try:
|
||||
if module.handle_command(command, args):
|
||||
return True
|
||||
except Exception as e:
|
||||
logger.error(f"[{{BRANCHNAME}}] Module {module.__name__} error: {e}")
|
||||
return False
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# MAIN ENTRY POINT
|
||||
# =============================================================================
|
||||
|
||||
def main():
|
||||
"""Main entry point - routes commands or shows help."""
|
||||
modules = discover_modules()
|
||||
args = sys.argv[1:]
|
||||
|
||||
if len(args) == 0 or args[0] in ["--help", "-h", "help"]:
|
||||
print(f"{{BRANCHNAME}} - {len(modules)} modules discovered")
|
||||
for module in modules:
|
||||
name = module.__name__.split(".")[-1]
|
||||
desc = (module.__doc__ or "").strip().split("\n")[0] if module.__doc__ else "No description"
|
||||
print(f" {name:20} {desc}")
|
||||
return 0
|
||||
|
||||
command = args[0]
|
||||
remaining = args[1:] if len(args) > 1 else []
|
||||
|
||||
if route_command(command, remaining, modules):
|
||||
return 0
|
||||
|
||||
print(f"Unknown command: {command}")
|
||||
return 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user