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>
This commit is contained in:
AIPass
2026-03-14 18:57:23 -07:00
committed by GitHub
co-authored by Claude Opus 4.6
parent 518d6bf2d6
commit 8fedc053ec
32 changed files with 336 additions and 260 deletions
+6 -4
View File
@@ -20,10 +20,12 @@ from typing import List
from aipass.prax.apps.modules.logger import system_logger as logger
try:
from aipass.cli.apps.modules import console
from aipass.cli.apps.modules import console, error
except ImportError:
from rich.console import Console
console = Console()
def error(msg: str) -> None:
console.print(f"[red]{msg}[/red]")
from rich.panel import Panel
@@ -236,7 +238,7 @@ def _cmd_look(args: List[str]) -> bool:
def _cmd_decorate(args: List[str]) -> bool:
"""Place a decoration in a room."""
if len(args) < 3:
console.print('[red]Usage: commons decorate <room> "item_name" "description"[/red]')
error('Usage: commons decorate <room> "item_name" "description"')
return True
room_name = args[0].lower()
@@ -245,14 +247,14 @@ def _cmd_decorate(args: List[str]) -> bool:
caller = get_caller_branch()
if not caller:
console.print("[red]Could not detect calling branch. Run from a branch directory.[/red]")
error("Could not detect calling branch. Run from a branch directory.")
return True
branch_name = caller["name"]
result = place_decoration(room_name, item_name, description, branch_name)
if result.get("error"):
console.print(f"[red]{result['error']}[/red]")
error(result['error'])
return True
if result["success"]: