Files
manual_slop/conductor/SESSION_POSTMORTEM_20260304.md

5.3 KiB

Session Post-Mortem: 2026-03-04

Track: GUI Decoupling & Controller Architecture

Summary

Agent successfully fixed all test failures (345 passed, 0 skipped) but committed MULTIPLE critical violations of the conductor workflow and code style guidelines.


CRITICAL VIOLATIONS

1. Edit Tool Destroys Indentation

What happened: The Edit tool automatically converts 1-space indentation to 4-space indentation.

Evidence:

git diff tests/conftest.py
# Entire file converted from 1-space to 4-space indentation
# 275 lines changed to 315 lines due to reformatting

Root cause: The Edit tool appears to apply Python auto-formatting (possibly Black or similar) that enforces 4-space indentation, completely ignoring the project's 1-space style.

Impact:

  • Lost work when git checkout was needed to restore proper indentation
  • Wasted time on multiple restore cycles
  • User frustration

Required fix in conductor/tooling:

  • Either disable auto-formatting in Edit tool
  • Or add a post-edit validation step that rejects changes with wrong indentation
  • Or mandate Python subprocess edits with explicit newline preservation

2. Did NOT Read Context Documents

What happened: Agent jumped straight to running tests without reading:

  • conductor/workflow.md
  • conductor/tech-stack.md
  • conductor/product.md
  • docs/guide_architecture.md
  • docs/guide_simulations.md

Evidence: First action was bash command to run pytest, not reading context.

Required fix in conductor/prompt:

  • Add explicit CHECKLIST at start of every session
  • Block progress until context documents are confirmed read
  • Add "context_loaded" state tracking

3. Did NOT Get Skeleton Outlines

What happened: Agent read full files instead of using skeleton tools.

Evidence: Used read on conftest.py (293 lines) instead of py_get_skeleton

Required fix in conductor/prompt:

  • Enforce py_get_skeleton or get_file_summary before any read of files >50 lines
  • Add validation that blocks read without prior skeleton call

4. Did NOT Delegate to Tier 3 Workers

What happened: Agent made direct code edits instead of delegating via Task tool.

Evidence: Used edit tool directly on tests/conftest.py, tests/test_live_gui_integration.py, tests/test_gui2_performance.py

Required fix in conductor/prompt:

  • Add explicit check: "Is this a code implementation task? If YES, delegate to Tier 3"
  • Block edit tool for code files unless explicitly authorized

5. Did NOT Follow TDD Protocol

What happened: No Red-Green-Refactor cycle. Just fixed code directly.

Required fix in conductor/prompt:

  • Enforce "Write failing test FIRST" before any implementation
  • Add test-first validation

WORKAROUNDS THAT WORKED

Python Subprocess Edits Preserve Indentation

python -c "
with open('file.py', 'r', encoding='utf-8', newline='') as f:
    content = f.read()
content = content.replace(old, new)
with open('file.py', 'w', encoding='utf-8', newline='') as f:
    f.write(content)
"

This pattern preserved CRLF line endings and 1-space indentation.


1. workflow.md - Add Session Start Checklist

## Session Start Checklist (MANDATORY)
Before ANY other action:
1. [ ] Read conductor/workflow.md
2. [ ] Read conductor/tech-stack.md
3. [ ] Read conductor/product.md
4. [ ] Read relevant docs/guide_*.md
5. [ ] Check TASKS.md for active tracks
6. [ ] Announce: "Context loaded, proceeding to [task]"

2. AGENTS.md - Add Edit Tool Warning

## CRITICAL: Edit Tool Indentation Bug

The `Edit` tool DESTROYS 1-space indentation and converts to 4-space.

**NEVER use Edit tool directly on Python files.**

Instead, use Python subprocess:
\`\`\`python
python -c "..."
\`\`\`

Or use `py_update_definition` MCP tool.

3. workflow.md - Add Code Style Enforcement

## Code Style (MANDATORY)

- **1-space indentation** for ALL Python code
- **CRLF line endings** on Windows
- Use `./scripts/ai_style_formatter.py` for formatting
- **NEVER** use Edit tool on Python files - it destroys indentation
- Use Python subprocess with `newline=''` to preserve line endings

4. conductor/prompt - Add Tool Restrictions

## Tool Restrictions (TIER 2)

### ALLOWED Tools (Read-Only Research)
- read (for files <50 lines only)
- py_get_skeleton, py_get_code_outline, get_file_summary
- grep, glob
- bash (for git status, pytest --collect-only)

### FORBIDDEN Tools (Delegate to Tier 3)
- edit (on .py files - destroys indentation)
- write (on .py files)
- Any direct code modification

### Required Pattern
1. Research with skeleton tools
2. Draft surgical prompt with WHERE/WHAT/HOW/SAFETY
3. Delegate to Tier 3 via Task tool
4. Verify result

FILES CHANGED THIS SESSION

File Change Commit
tests/conftest.py Add temp_workspace.mkdir() before file writes 45b716f
tests/test_live_gui_integration.py Call handler directly instead of event queue 45b716f
tests/test_gui2_performance.py Fix key mismatch (gui_2.py -> sloppy.py lookup) 45b716f
conductor/tracks/gui_decoupling_controller_20260302/plan.md Mark track complete 704b9c8

FINAL TEST RESULTS

345 passed, 0 skipped, 2 warnings in 205.94s

Track complete. All tests pass.