Files
OpenQode/bin/goose-ultra-final/implementation_plan.md

43 lines
2.5 KiB
Markdown

# Implementation Plan: Goose Ultra Architecture Refinement
## 1. Mem0 Source Map & Architecture Reuse
**Goal**: Map Goose Ultra's local memory features to Mem0 concepts.
| Feature | Mem0 Concept | Goose Ultra Implementation (Local) |
| :--- | :--- | :--- |
| **Project-Scoped Memory** | `Multi-Level Memory` (User/Session/Agent) | `apps/mem0/memory.jsonl` (Project Level) |
| **Memory Extraction** | `Fact Extraction` (LLM-based) | `extractMemoriesFromText` (Qwen Code Prompt) |
| **Top-K Retrieval** | `Vector Retrieval` / `Hybrid Search` | `retrieveRelevantMemories` (Keyword + Recency Scoring) |
| **Deduplication** | `Adaptive Learning` / `Dynamic Updates` | `addMemory` with existing key check & confidence update |
| **Storage** | `Vector DB` (Chroma/Qdrant) + `SQL/NoSQL` | `JSONL` file (Simpler, local-only constraint) |
**Mem0 Source Locations (Inferred)**:
- Memory Logic: `mem0/memory/main.py`
- Utils/Formatting: `mem0/memory/utils.py`
- Prompts: `mem0/configs/prompts.py`
- Vector Store Interfaces: `mem0/vector_stores/*`
## 2. Quality Gates (UI Enhancements)
**Goal**: Prevent "Plan Text" or "Unstyled" apps from reaching the user.
**Current Status**: Partially implemented in `automationService.ts`.
**Refinements Needed**:
- Ensure `compilePlanToCode` calls `runQualityGates`. (It does)
- Ensure `writeArtifacts` (or equivalent) respects the gate result. (It does in `generateMockFiles`).
- **Missing**: We need to ensure `compilePlanToCode` actually *uses* the repair loop properly. Currently `compilePlanToCode` calls `runQualityGates` but seemingly just warns related to retries (logic at line 191-203). It needs to use `generateRepairPrompt`.
## 3. Patch-Based Modification (P0 Bugfix)
**Goal**: Stop full-file rewrites. Use deterministic JSON patches.
**Current Status**: `applyPlanToExistingHtml` requests full HTML.
**Plan**:
1. **Create `applyPatchToHtml`**: A function that takes JSON patches and applies them.
2. **Update `applyPlanToExistingHtml`**:
- Change prompt to `PATCH_PROMPT`.
- Expect JSON output.
- Call `applyPatchToHtml`.
- Fallback to Full Rewrite only if Redesign is requested/approved.
## Execution Steps
1. **Refine Quality Gates**: Fix the retry loop in `compilePlanToCode` to use `generateRepairPrompt` instead of just re-running with a slightly stricter prompt.
2. **Implement Patch Engine**: Add `applyPatches` and the new `PATCH_PROMPT`.
3. **Wire Memory**: Inject memory into `compilePlanToCode` and `applyPlanToExistingHtml` prompts. Hook up extraction.