Files
manual_slop/conductor/tracks/mma_implementation_20260224/migration_epics.md

3.6 KiB
Raw Blame History

MMA Migration: Epics and Detailed Tasks

Track 1: The Memory Foundations (AST Parser)

Goal: Build the engine that prevents token-bloat by turning massive source files into curated memory views.

1. TDD Approach for tree-sitter Integration

  • Create tests/test_file_cache_ast.py.
  • Define mock Python source files containing various structures (classes, functions, docstrings, @core_logic decorators, # [HOT] comments).
  • Write failing tests that instantiate ASTParser and assert that get_skeleton_view() and get_curated_view() return the precisely filtered strings.
  • Red Phase: Ensure tests fail because ASTParser does not exist.
  • Green Phase: Implement the tree-sitter logic iteratively until strings match exactly.

2. ASTParser Extraction Rules (Tasks)

  • Task 1.1: Dependency Setup
    • Add tree-sitter and tree-sitter-python to pyproject.toml / requirements.txt.
  • Task 1.2: Core Parser Class
    • Create ASTParser in file_cache.py that initializes the language parser.
  • Task 1.3: Skeleton View Extraction
    • Write query to extract function_definition and class_definition.
    • Keep signatures, parameters, and return type hints.
    • Replace all bodies with pass.
  • Task 1.4: Curated View Extraction
    • Write query to keep class structures and expression_statement docstrings.
    • Implement heuristic to preserve full bodies of functions decorated with @core_logic or containing # [HOT] comments.
    • Replace all other function bodies with ... # Hidden.

3. Acceptance Testing Criteria

  • Unit Tests: All AST parsing tests pass with >90% coverage for file_cache.py.
  • Integration Test: Execute the parser on a large, complex project file (e.g., ai_client.py). The output Skeleton View must be less than 15% of the original token count. The Curated View must correctly retain docstrings and marked functions while stripping standard bodies.

Track 2: State Machine & Data Structures

Goal: Define the rigid Python objects (Pydantic/Dataclasses) that AI agents will pass to each other, enforcing structured data over loose chat strings.

1. TDD Approach for \models.py\

  • Create \ ests/test_models.py.
  • Write failing tests that instantiate \Track, \Ticket, and \WorkerContext\ with various valid and invalid schemas.
  • Write tests that assert state transitions (e.g., from \pending\ to \locked, from \step_paused\ to \completed) correctly update internal flags and dependencies.
  • Red Phase: Tests fail because \models.py\ classes are undefined or lack transition methods.
  • Green Phase: Implement the dataclasses and state mutators.

2. State Machine Tasks

  • Task 2.1: The Dataclasses
    • Create \models.py. Define \Ticket\ (id, target_file, prompt, worker_archetype, status, dependencies).
    • Define \Track\ (id, title, description, status, tickets).
  • Task 2.2: Worker Context Definition
    • Define \WorkerContext\ holding a \Ticket\ ID, assigned model, configuration injection, and an ephemeral \messages\ array.
  • Task 2.3: State Mutator Methods
    • Implement methods like \ icket.mark_blocked(dependency_id), \ icket.mark_complete(), and \ rack.get_executable_tickets(). Ensure strict validation of valid state transitions.

3. Acceptance Testing Criteria

  • Unit Tests: \models.py\ has 100% test coverage for all state transitions.
  • Integration Test: Instantiate a \Track\ with 3 dependent \Tickets\ in Python. Programmatically mark tickets as complete and assert that the subsequent dependent tickets transition from \locked\ to \pending\ without any AI involvement.