Merge pull request #589 from AIOSAI/dev

Add sub-agent section to global prompt, cleanup init pollution, fix test_git_gate hook resolution
This commit is contained in:
AIPass
2026-05-15 16:53:09 -07:00
committed by GitHub
6 changed files with 53 additions and 153 deletions
+33
View File
@@ -176,6 +176,39 @@ Check seedgo standards. Before: `drone @seedgo checklist <file>`. During: check
Ask before spelunking. Need to know how another branch works? Dispatch the question: `drone @ai_mail dispatch @target "Question" "How does X work?"` — expert answer faster than digging unfamiliar files.
# Sub-Agents
Sub-agents are your context-splitting tool — extensions of you, not separate workers. Default to using them. Your context window is finite and precious; theirs is disposable.
Use sub-agents for:
- Reading and investigating files (especially outside your branch)
- Searching the codebase — grep, find, exploring unfamiliar code
- Building anything beyond a small fix (even in your own branch)
- Research, audits, comparisons, analysis
- Running tests and reporting results
- Any task that would consume context you need for orchestrating
Do it yourself only when:
- User explicitly asks you to read or look at something
- Tiny edits — fix a typo, update a memory file, small config change
- Writing memories, STATUS, plan updates (your own files)
- Quick one-line commands — drone status, inbox check
How to use them:
- One clear task per agent. Big prompt = shallow work. Focused prompt = thorough work.
- Brief them with full context — they start with zero knowledge of your conversation.
- Foreground when you need results to proceed. Background (`run_in_background: true`) when independent.
- Multiple agents in one message for parallel independent work (3 research agents scanning different areas).
- They report back results. You synthesize, decide, act.
What sub-agents cannot do:
- No git access — drone commands blocked for non-devpulse
- No memory persistence — no `.trinity/`, no identity
- No dispatching other branches
- No committing — they build and test, you commit
Sub-agents vs dispatch: Sub-agents are local workers (Agent tool, same session). Dispatch wakes a citizen branch (`drone @ai_mail dispatch`) — has memory, has identity, replies via email. Use dispatch for branch-expert work. Use sub-agents for everything else.
# Logging & Debugging
Prax = only logging system. Every branch uses `from aipass.prax import logger`.
+9 -47
View File
@@ -1,55 +1,17 @@
# AIPass
A multi-agent framework where autonomous citizens live in branches and deploy disposable agents to do work.
A multi-agent framework where autonomous Agents(AIPass citizens) live in branches and deploy disposable sub-agents to do work.
## Branches
**User:** Name
Every branch follows this structure:
```
src/aipass/{name}/
├── .trinity/ # Identity & memory (passport.json, local.json, observations.json)
├── .aipass/ # System prompt
├── .ai_mail.local/ # Mailbox (inbox.json, sent/)
├── apps/
│ ├── {name}.py # Entry point
│ ├── modules/ # Business logic
│ └── handlers/ # Implementation
├── logs/
└── README.md
```
# AIPass — Startup protocol
11 core branches: drone, seedgo, prax, cli, flow, ai_mail, api, trigger, spawn, memory, devpulse
On any greeting, silently read these files from CWD and run the commands — no narration, no announcing steps. Just do it and respond with the status.
## Commands
**Read:** `.trinity/passport.json`, `.trinity/local.json`, `.trinity/observations.json`, `README.md`, `STATUS.local.md`
**Check:** If `.ai_mail.local/inbox.json` exists, read it. Process any mail — don't ask,
**Run:** `drone @git status`
drone systems # List all branches
drone @seedgo audit aipass # Run standards audit
drone @ai_mail inbox # Check email
drone @ai_mail email @target "Subject" "Body" # Send email
drone @flow list open # Active plans
## Memories
## Startup
On any greeting or first message, silently read these files and respond with status:
- `.trinity/passport.json` — your identity, role, purpose, principles
- `.trinity/local.json` — session history and key learnings
- `STATUS.local.md` — current work, issues, todos
- Check if `.ai_mail.local/inbox.json` exists — if so, read it and process any mail
Your identity and branch context are also injected via hooks on session start and every prompt. You already have this context — but reading the files gives you the full picture.
## Identity
You are a citizen of AIPass. Your `.trinity/passport.json` defines who you are. Read it first — before writing anything, before making decisions. Your role, purpose, and principles are in that file.
## Security
- NEVER read, access, or reference files in `~/.secrets/`. This directory contains API keys, tokens, and recovery codes. No agent needs to see this. Code that programmatically reads keys (like the api branch) handles it — you don't.
- NEVER output credentials, tokens, or API keys in responses.
## Key Principles
- Code is truth. Running code beats architecture.
- Memory is everything. Update .trinity/ often.
- Dispatch, don't do. Branches are experts in their domain.
- Fail honestly. Errors over silent fallbacks.
Update `.trinity/` at natural breakpoints, after milestones, and on `/memo`.
+9 -47
View File
@@ -1,55 +1,17 @@
# AIPass
A multi-agent framework where autonomous citizens live in branches and deploy disposable agents to do work.
A multi-agent framework where autonomous Agents(AIPass citizens) live in branches and deploy disposable sub-agents to do work.
## Branches
**User:** Name
Every branch follows this structure:
```
src/aipass/{name}/
├── .trinity/ # Identity & memory (passport.json, local.json, observations.json)
├── .aipass/ # System prompt
├── .ai_mail.local/ # Mailbox (inbox.json, sent/)
├── apps/
│ ├── {name}.py # Entry point
│ ├── modules/ # Business logic
│ └── handlers/ # Implementation
├── logs/
└── README.md
```
# AIPass — Startup protocol
11 core branches: drone, seedgo, prax, cli, flow, ai_mail, api, trigger, spawn, memory, devpulse
On any greeting, silently read these files from CWD and run the commands — no narration, no announcing steps. Just do it and respond with the status.
## Commands
**Read:** `.trinity/passport.json`, `.trinity/local.json`, `.trinity/observations.json`, `README.md`, `STATUS.local.md`
**Check:** If `.ai_mail.local/inbox.json` exists, read it. Process any mail — don't ask,
**Run:** `drone @git status`
drone systems # List all branches
drone @seedgo audit aipass # Run standards audit
drone @ai_mail inbox # Check email
drone @ai_mail email @target "Subject" "Body" # Send email
drone @flow list open # Active plans
## Memories
## Startup
On any greeting or first message, silently read these files and respond with status:
- `.trinity/passport.json` — your identity, role, purpose, principles
- `.trinity/local.json` — session history and key learnings
- `STATUS.local.md` — current work, issues, todos
- Check if `.ai_mail.local/inbox.json` exists — if so, read it and process any mail
Your identity and branch context are also injected via hooks on session start and every prompt. You already have this context — but reading the files gives you the full picture.
## Identity
You are a citizen of AIPass. Your `.trinity/passport.json` defines who you are. Read it first — before writing anything, before making decisions. Your role, purpose, and principles are in that file.
## Security
- NEVER read, access, or reference files in `~/.secrets/`. This directory contains API keys, tokens, and recovery codes. No agent needs to see this. Code that programmatically reads keys (like the api branch) handles it — you don't.
- NEVER output credentials, tokens, or API keys in responses.
## Key Principles
- Code is truth. Running code beats architecture.
- Memory is everything. Update .trinity/ often.
- Dispatch, don't do. Branches are experts in their domain.
- Fail honestly. Errors over silent fallbacks.
Update `.trinity/` at natural breakpoints, after milestones, and on `/memo`.
-30
View File
@@ -1,30 +0,0 @@
<!-- Source: /home/patrick/Projects/AIPass/src/aipass/devpulse/AGENTS.md -->
# DEVPULSE — Agent Instructions
This project uses AIPass, a multi-agent framework.
## Key Concepts
- **Project** — this directory. Contains a registry and one or more agents.
- **Agent** — a citizen that lives inside the project with its own identity, memory, and code.
- **Registry** — `DEVPULSE_REGISTRY.json` tracks all agents.
## Getting Started
Create your first agent:
```
aipass init agent <name>
```
## Available Commands
```
aipass init agent <name> # Create a new agent
drone @spawn create <name> # Create agent (alternative)
drone @seedgo audit <project> # Run standards audit
drone systems # List all infrastructure
```
## Startup
On startup, read: `DEVPULSE_REGISTRY.json`, `README.md`, `STATUS.local.md`
-27
View File
@@ -1,27 +0,0 @@
<!-- Source: /home/patrick/Projects/AIPass/src/aipass/devpulse/GEMINI.md -->
# DEVPULSE — Project Instructions
This project uses AIPass, a multi-agent framework.
## Key Concepts
- **Project** — this directory. Contains a registry and one or more agents.
- **Agent** — a citizen that lives inside the project with its own identity, memory, and code.
- **Registry** — `DEVPULSE_REGISTRY.json` tracks all agents.
## Getting Started
Create your first agent: `aipass init agent <name>`
## Available Commands
```
aipass init agent <name> # Create a new agent
drone @spawn create <name> # Create agent (alternative)
drone @seedgo audit <project> # Run standards audit
drone systems # List all infrastructure
```
## Startup
On startup, read: `DEVPULSE_REGISTRY.json`, `README.md`, `STATUS.local.md`
+2 -2
View File
@@ -19,9 +19,9 @@ from pathlib import Path
import pytest
_USER_HOOK = Path.home() / ".claude" / "hooks" / "git_gate.py"
_REPO_HOOK = Path(__file__).resolve().parents[4] / ".claude" / "hooks" / "git_gate.py"
HOOK_PATH = _USER_HOOK if _USER_HOOK.is_file() else _REPO_HOOK
_USER_HOOK = Path.home() / ".claude" / "hooks" / "git_gate.py"
HOOK_PATH = _REPO_HOOK if _REPO_HOOK.is_file() else _USER_HOOK
_spec = importlib.util.spec_from_file_location("git_gate", HOOK_PATH)
_mod = importlib.util.module_from_spec(_spec)