hopefully done refining

This commit is contained in:
2026-03-06 16:14:31 -05:00
parent 88e27ae414
commit 1294104f7f
20 changed files with 1736 additions and 734 deletions

View File

@@ -1,27 +1,107 @@
# Implementation Plan: Native Orchestrator (native_orchestrator_20260306)
> **Reference:** [Spec](./spec.md) | [Architecture Guide](../../../docs/guide_architecture.md)
## Phase 1: Plan File Operations
- [ ] Task: Initialize MMA Environment
- [ ] Task: Implement plan.md read/write
- WHERE: src/orchestrator_pm.py or new module
- WHAT: Parse and write plan.md
- HOW: toml/tomllib for parsing
- SAFETY: Preserve formatting
Focus: Native plan.md read/write
## Phase 2: Metadata Management
- [ ] Task: Implement metadata.json operations
- WHERE: src/orchestrator_pm.py
- WHAT: Read/write track metadata
- HOW: json load/dump
- SAFETY: Atomic writes
- [ ] Task 1.1: Initialize MMA Environment
- [ ] Task 1.2: Implement read_plan function
- WHERE: `src/orchestrator_pm.py` or new `src/native_orchestrator.py`
- WHAT: Parse plan.md content
- HOW:
```python
def read_plan(track_id: str, base_dir: str = ".") -> str:
plan_path = Path(base_dir) / "conductor" / "tracks" / track_id / "plan.md"
if not plan_path.exists():
return ""
return plan_path.read_text(encoding="utf-8")
```
## Phase 3: Tier Delegation
- [ ] Task: Implement in-process delegation
- WHERE: src/multi_agent_conductor.py
- WHAT: Replace subprocess calls with direct function calls
- HOW: Import and call tier functions directly
- SAFETY: Proper error propagation
- [ ] Task 1.3: Implement write_plan function
- WHERE: Same as above
- WHAT: Write plan.md content
- HOW:
```python
def write_plan(track_id: str, content: str, base_dir: str = ".") -> None:
plan_path = Path(base_dir) / "conductor" / "tracks" / track_id / "plan.md"
plan_path.parent.mkdir(parents=True, exist_ok=True)
plan_path.write_text(content, encoding="utf-8")
```
## Phase 4: Verification
- [ ] Task: Test plan operations
- [ ] Task: Conductor - Phase Verification
- [ ] Task 1.4: Parse task checkboxes
- WHERE: Same as above
- WHAT: Extract task status from plan
- HOW:
```python
def parse_plan_tasks(content: str) -> list[dict]:
tasks = []
for line in content.split("\n"):
if line.strip().startswith("- ["):
checked = "[x]" in line
tasks.append({"text": line, "completed": checked})
return tasks
```
## Phase 2: Metadata Operations
Focus: Native metadata.json management
- [ ] Task 2.1: Implement read_metadata
- WHERE: Same as above
- HOW:
```python
def read_metadata(track_id: str, base_dir: str = ".") -> dict:
meta_path = Path(base_dir) / "conductor" / "tracks" / track_id / "metadata.json"
if not meta_path.exists():
return {}
return json.loads(meta_path.read_text(encoding="utf-8"))
```
- [ ] Task 2.2: Implement write_metadata
- WHERE: Same as above
- HOW:
```python
def write_metadata(track_id: str, data: dict, base_dir: str = ".") -> None:
meta_path = Path(base_dir) / "conductor" / "tracks" / track_id / "metadata.json"
meta_path.parent.mkdir(parents=True, exist_ok=True)
meta_path.write_text(json.dumps(data, indent=2), encoding="utf-8")
```
## Phase 3: In-Process Tier Delegation
Focus: Replace subprocess calls with direct function calls
- [ ] Task 3.1: Create NativeOrchestrator class
- WHERE: `src/native_orchestrator.py` (new file)
- WHAT: Class with tier methods
- HOW:
```python
class NativeOrchestrator:
def __init__(self, base_dir: str = "."):
self.base_dir = Path(base_dir)
def generate_tickets(self, brief: str) -> list[Ticket]:
return conductor_tech_lead.generate_tickets(brief, ...)
def execute_ticket(self, ticket: Ticket, context: str) -> str:
return ai_client.send(context, ticket.description, ...)
def analyze_error(self, error: str) -> str:
return ai_client.run_tier4_analysis(error)
```
- [ ] Task 3.2: Integrate with ConductorEngine
- WHERE: `src/multi_agent_conductor.py`
- WHAT: Use NativeOrchestrator instead of subprocess
- HOW: Import and call methods directly
## Phase 4: CLI Fallback
Focus: Maintain mma_exec.py compatibility
- [ ] Task 4.1: Update mma_exec.py to use NativeOrchestrator
- WHERE: `scripts/mma_exec.py`
- WHAT: Thin wrapper around native module
- HOW: Import NativeOrchestrator and call methods
## Phase 5: Testing
- [ ] Task 5.1: Write unit tests
- [ ] Task 5.2: Conductor - Phase Verification