Files
AIPass/.gitignore
T
AIOSAI a06421a35d feat(seedgo+hooks): DPLAN-0139 Track H — hook probe suite + drone @seedgo hooks probe
Adds an observational probe harness for every Claude Code hook event type.
Used to verify hook wiring, scaffold new hooks, and answer Q12 (subagent
hook propagation / env-var matrix).

## What ships

**7 probe scripts** at `.claude/hooks/probes/`:
- probe_pre_tool_use.py, probe_post_tool_use.py, probe_user_prompt_submit.py
- probe_subagent_stop.py, probe_pre_compact.py, probe_stop.py, probe_notification.py

Each probe: reads stdin JSON, appends one entry to last_ping.jsonl
(APPEND mode, never overwrites), exits 0 always. Fields recorded:
event, tool, cwd, agent_id, timestamp, script_elapsed_ms, cli_version,
env_has_claude_project_dir, env_has_aipass_home.

Pure stdlib, no aipass imports. Silent fail on any exception.
OPT-IN — not auto-wired in settings.json (each probe docstring has
the settings.json snippet to enable it).

**drone @seedgo hooks probe** — new seedgo module (apps/modules/hooks.py):
- No flags: reads last_ping.jsonl, prints Rich [PROBE] table of recent entries
- --subagent: spawns claude -p headless, reads probe log, reports whether
  PostToolUse / SubagentStop fired (definitive Q12 data for headless mode)
- --matrix: analyzes last_ping.jsonl by event type, reports env var
  propagation patterns, writes Q12_findings_2026-04-20.md

**Tests**: 69 new tests in tests/test_hooks_probe.py covering stdin parse,
output shape, malformed input resilience, and module dispatch.
402 total tests pass.

**README.md** at .claude/hooks/probes/README.md — enable instructions,
example output, flag reference.

last_ping.jsonl added to .gitignore (live log, not source).
2026-04-20 23:44:58 -07:00

141 lines
3.9 KiB
Plaintext

# Virtual environment
.venv/
# Python
__pycache__/
*.pyc
*.egg-info/
dist/
build/-
.pytest_cache/
.ruff_cache/
# ChromaDB
.chroma/
# Secrets
.env
# API keys never leave ~/.secrets/ — gitleaks + pre-commit enforce this
# Plans (managed by flow, local to each installation)
FPLAN-*.md
DPLAN-*.md
RPLAN-*.md
TDPLAN-*.md
# AIPass runtime state (local to each installation)
AIPASS_REGISTRY.json
.trinity/
.ai_mail.local/
ai_mail.local/
.feedback.local/
DASHBOARD.local.json
dev.local.md
STATUS.local.md
CLOSED_PLANS.local.json
.ai_central/
system_logs/
# Branch local directories
logs/
artifacts/
dropbox/
tools/
docs.local/
.archive/
.backup/
.recovery/
.seed/
.spawn/
# Module runtime JSON (config/data/log per command)
**/*_json/
# Claude Code local state
.claude/hooks/__pycache__/
.claude/hooks/.last_diagnostics_file
.claude/worktrees/
# @aipass citizen — under construction, whole branch gitignored until ready.
# Nothing in the public system depends on aipass, so this can live invisibly
# while we build + test. Remove this block when ready to reveal (DPLAN-0136).
src/aipass/aipass/
# **/.claude/settings.local.json — UNIGNORED: deny rules are system config that must travel with PRs
# Disabled files (AIPass convention: rename with (disabled) instead of delete)
*(disabled)
# Spawn template exceptions (template files must be tracked for public repo)
!src/aipass/spawn/templates/builder/.trinity/
!src/aipass/spawn/templates/builder/.trinity/**
!src/aipass/spawn/templates/builder/.ai_mail.local/
!src/aipass/spawn/templates/builder/.ai_mail.local/**
!src/aipass/spawn/templates/builder/.archive/
!src/aipass/spawn/templates/builder/.archive/**
!src/aipass/spawn/templates/builder/.spawn/
!src/aipass/spawn/templates/builder/.spawn/**
!src/aipass/spawn/templates/builder/.claude/
!src/aipass/spawn/templates/builder/.claude/**
!src/aipass/spawn/templates/builder/*_json/
!src/aipass/spawn/templates/builder/*_json/**
!src/aipass/spawn/templates/builder/logs/
!src/aipass/spawn/templates/builder/logs/**
!src/aipass/spawn/templates/builder/artifacts/
!src/aipass/spawn/templates/builder/artifacts/**
!src/aipass/spawn/templates/builder/dropbox/
!src/aipass/spawn/templates/builder/dropbox/**
!src/aipass/spawn/templates/builder/tools/
!src/aipass/spawn/templates/builder/tools/**
!src/aipass/spawn/templates/builder/docs.local/
!src/aipass/spawn/templates/builder/docs.local/**
!src/aipass/spawn/templates/builder/DASHBOARD.local.json
!src/aipass/spawn/templates/builder/STATUS.local.md
# OS
.DS_Store
# Test artifacts
test/
src/aipass/seedgo/apps/standards/aipass/pack.json
backup_data/
backups
backup_system
src/aipass/flow/CLOSED_PLANS.local.json
src/aipass/memory/config/fragmented_memory_config.json
src/aipass/memory/config/fragmented_memory_state.json
.vscode
src/aipass/memory/config/memory_bank.config.json
src/aipass/spawn/templates/builder/.spawn/.template_registry.json
branch_audits _only
notepad.md
src/aipass/trigger/trigger_data.json
src/aipass/memory/config/.plans_processed.json
src/aipass/drone/drone_command_registry.json
src/aipass/spawn/templates/builder/.spawn/.template_registry.json
src/aipass/memory/config/.plans_processed.json
src/aipass/drone/apps/plugins/devpulse_ops/__pycache__/pr_plugin.cpython-312.pyc
whiteboard.md
README_ORIGINAL_DISABLED.md
readme_history/
src/aipass/trigger/trigger_data.lock
# STATUS files — auto-generated, contain developer session data.
# Gitignored until prax sync is fixed to produce clean public output (#298).
STATUS.md
STATUS.local.md
# Private integrations — driver layer (@api) and wrapper layer (all branches)
# Per DPLAN-0133. Contents are gitignored; only the scaffold README.md is tracked.
# Drop project-specific code into src/aipass/{branch}/apps/integrations/{project}/
# It stays local. Never appears in git.
src/aipass/*/apps/integrations/**
!src/aipass/*/apps/integrations/README.md
.coverage
claude_4_7_transition_notes.md
.claude/hooks/probes/last_ping.jsonl