Files
boocode/openspec/changes/audit-harness-integration/tasks.md
indifferentketchup c935687725 chore(openspec): drop 9 superseded proposals + 11 stub archive files
Drop 9 batch proposals that are superseded by the boocode-lift-analysis
(boocontext-audit, conductor upgrades, self-healing/verify-gate skills):
add-3tier-memory, import-llm-evaluator, import-pregel-engine, plugin-platform,
conductor-evolution, code-intelligence-upgrade, dev-workflow, ui-overhaul,
agent-reliability.

Delete 11 stub archive files (49-66B each, 'Status: Shipped. Archived.' only)
that provide zero documentation value over the existing CHANGELOG.md + git tags.
2026-06-07 22:15:38 +00:00

3.5 KiB

1. Data Directory Convention (cross-cutting)

  • 1.1 Define .boo/runs/ directory structure — runs_dir/buffer/session dirs/.current_session/index.json
  • 1.2 Implement .boo/runs/ directory auto-creation with .gitignore
  • 1.3 Add AUDIT_DOT_DIR environment variable support for platform-specific directory naming
  • 1.4 Implement find_runs_dir() — walk up from CWD looking for {AUDIT_DOT_DIR}/runs

2. Buffer + Flush Pipeline (MCP middleware)

  • 2.1 Implement PostToolUse middleware: capture tool_name + summary → append to audit_buffer.jsonl
  • 2.2 Implement Stop middleware: read .current_session, flush buffer+pending to session trail
  • 2.3 Implement atomic session.json update preserving existing fields
  • 2.4 Implement .current_session handshake protocol (create/read/clear)
  • 2.5 Add safe input truncation (1MB cap) for large tool payloads
  • 2.6 Implement UserPromptSubmit middleware: inject session context + CRITICAL alerts
  • 2.7 Register all middleware with opt-in gate (audit.enabled: true)

3. Unified Index Schema

  • 3.1 Define INDEX_ENTRY_REQUIRED and INDEX_ENTRY_OPTIONAL field schemas
  • 3.2 Implement update_index_entry() with idempotent upsert and atomic .tmp + rename
  • 3.3 Implement schema_version=1.1 tracking in index.json
  • 3.4 Add CLI entry point for hooks to call update-index --runs-dir X --id Y ...

4. Graded Context Recovery

  • 4.1 Implement L0 recovery: read last 5 index.json entries (~200 tokens)
  • 4.2 Implement L1 recovery: read session.json + last 3 audit_trail entries (~500 tokens)
  • 4.3 Implement L2 recovery: scan all audit trails for user_correction records (~1000 tokens)
  • 4.4 Implement L3 recovery: full audit_trail + all pending records (~3000 tokens)
  • 4.5 Implement recovery report output format: current task, corrections, conclusions, open issues, recent activity
  • 4.6 Implement priority loading: user_correction records always loaded first

5. Session Lifecycle Commands

  • 5.1 Implement /start command: generate session ID, write session.json + .current_session, auto-recover L0+L2
  • 5.2 Implement /end command: flush buffers, run integrity checks, generate session_summary.md, update index
  • 5.3 Implement /recover command: graded context loading (L0-L3), support for specific session IDs
  • 5.4 Implement /report-daily command: aggregate index + audit trails, 7-section report with task overview, ops stats, changes, anomalies, feedback, backlog, integrity
  • 5.5 Implement /report-daily review mode: add morning self-review with trend analysis
  • 5.6 Implement unfinished session detection + continue prompt
  • 5.7 Register all commands behind audit.enabled gate

6. Ambient Context via AsyncLocalStorage

  • 6.1 Implement AmbientContext class wrapping Node.js AsyncLocalStorage with run()/get()/set()
  • 6.2 Define AmbientState interface: sessionId, sessionDir, runsDir, agentId, toolCall
  • 6.3 Wire context set at MCP handler/command entry point, clear on session end
  • 6.4 Replace explicit parameter threading in audit pipeline with ambient context reads

7. Testing & Verification

  • 7.1 Unit tests for buffer write, flush, index update
  • 7.2 Unit tests for context recovery at all 4 levels
  • 7.3 Integration test: full session lifecycle (/start → tool calls → /end)
  • 7.4 Integration test: context recovery after mid-session interruption
  • 7.5 Verify zero behavioral change when audit.enabled is false