imgui-frontend-engineer: update docs and plans
This commit is contained in:
43
docs/plans/MCP_UNIFICATION.md
Normal file
43
docs/plans/MCP_UNIFICATION.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Yaze MCP Unification Plan
|
||||
|
||||
**Status:** Draft
|
||||
**Goal:** Create a high-quality, unified toolset for AI-assisted debugging in Zelda3 ROM hacking.
|
||||
|
||||
## 1. Backend Consolidation (C++)
|
||||
|
||||
### A. Move `EmulatorServiceImpl` to `yaze_grpc_support`
|
||||
- Relocate `src/cli/service/agent/emulator_service_impl.{cc,h}` to `src/app/service/`.
|
||||
- Update `src/app/service/grpc_support.cmake` to include these files.
|
||||
- This allows the GUI application to link against the emulator control logic.
|
||||
|
||||
### B. Update `YazeGRPCServer`
|
||||
- Modify `YazeGRPCServer::Initialize` to accept a `yaze::emu::Emulator*`.
|
||||
- In `BuildServer()`, register the `EmulatorServiceImpl`.
|
||||
- Result: A single gRPC port (default 50052) handles ROM I/O, GUI automation, AND Emulator control.
|
||||
|
||||
## 2. MCP Server Enhancements (Python)
|
||||
|
||||
### A. Semantic Translation (Knowledge Graph)
|
||||
- Integrate `hafs` knowledge base.
|
||||
- Add a lookup layer: if a tool returns an address (e.g., `$028000`), the MCP server should look up the label in `symbols.json` and append it: `$02:8000 [Module07_Underworld]`.
|
||||
- Allow tools to accept labels directly: `read_memory("Link_X_Coord")` -> `read_memory("$7EF36D")`.
|
||||
|
||||
### B. Visualization Support
|
||||
- Implement `capture_screenshot` using the `CanvasAutomationService`.
|
||||
- Return high-resolution PNGs to the AI agent for visual debugging of sprite positions and menu states.
|
||||
|
||||
### C. Watchpoint History Analysis
|
||||
- Improve `get_watchpoint_history` to provide a summary of *why* memory changed (e.g., "Address $7EF36D changed from $00 to $01 during `Link_MoveX`").
|
||||
|
||||
## 3. Sandboxed Test Suites
|
||||
|
||||
### A. Headless Validation
|
||||
- Use `z3ed` (the CLI) to run the unified gRPC server in a headless mode.
|
||||
- Create a suite of Python scripts that use the MCP tools to verify common scenarios:
|
||||
- Can I set a breakpoint and have it hit?
|
||||
- Can I read Link's health and modify it?
|
||||
- Can I step through a routine and verify the CPU flags change?
|
||||
|
||||
### B. Integration with ALTTP ROMs
|
||||
- Provide a set of "Golden State" snapshots for vanilla ALTTP.
|
||||
- Test routines against these snapshots to ensure the MCP tools provide consistent and accurate data across different game regions.
|
||||
Reference in New Issue
Block a user