Files
yaze/docs/internal/plans/oracle-yaze-integration.md

79 lines
3.2 KiB
Markdown

# Oracle of Secrets & YAZE Integration Plan
## Overview
This document outlines the roadmap for enhancing `yaze` to better support the `Oracle of Secrets` ROM hack development workflow, specifically focusing on Assembly editing, version control, and AI integration.
## 1. Enhanced Assembly Editor
### A. Symbol Navigation & Autocomplete
* **Goal:** Enable "Go to Definition" and autocomplete for labels and constants.
* **Implementation:**
* Parse `asar` symbol files (e.g., `*.sym` or `*.symbols` generated via `--symbols=wla`).
* Index labels, defines, and macros from the source code (`.asm` files).
* Integrate with the editor's text view to provide clickable links or hover information.
### B. Error Highlighting
* **Goal:** Map `asar` build errors directly to lines in the code editor.
* **Implementation:**
* Capture `stdout` and `stderr` from the `asar` build process.
* Parse standard `asar` error formats (e.g., `error: (file.asm:123) ...`).
* Visualize errors using squiggly lines or markers in the gutter.
* Populate a "Problems" or "Build Output" panel with clickable error entries.
### C. Macro & Snippet Library
* **Goal:** Speed up coding with common OOS/ASM patterns.
* **Implementation:**
* Add a snippet system to `AssemblyEditor`.
* Include built-in snippets for:
* `pushpc` / `pullpc` hooks.
* `%Set_Sprite_Properties` macros.
* Standard routine headers (preserve registers, `PHP`/`PLP`).
* Allow user-defined snippets in `Oracle-of-Secrets.yaze` project settings.
## 2. Lightweight Version Management
### A. Snapshot Feature
* **Goal:** Quick local commits without leaving the editor.
* **Implementation:**
* Add a "Snapshot" button to the main toolbar.
* Command: `git add . && git commit -m "Snapshot: <Timestamp>"`
* Display a success/failure notification.
### B. Diff View
* **Goal:** See what changed since the last commit.
* **Implementation:**
* Add "Compare with HEAD" context menu option for files.
* Render a side-by-side or inline diff using `git diff`.
## 3. AI-Driven Idea Management
### A. Context Injection
* **Goal:** Keep the AI aligned with the current task.
* **Implementation:**
* Utilize `.gemini/yaze_agent_prompt.md` (already created).
* Allow the agent to read `oracle.org` (ToDo list) to understand current priorities.
### B. Memory Map Awareness
* **Goal:** Prevent memory conflicts.
* **Implementation:**
* Grant the agent specific tool access to query `Docs/Core/MemoryMap.md`.
* Implement a "Check Free RAM" tool that parses the memory map.
## 4. Proposed Script Changes (Oracle of Secrets)
To support the features above, the `run.sh` script in `Oracle-of-Secrets` needs to be updated to generate symbols.
```bash
#!/bin/bash
cp "Roms/oos168_test2.sfc" "Roms/oos91x.sfc"
# Generate WLA symbols for yaze integration
asar --symbols=wla Oracle_main.asm Roms/oos91x.sfc
# Rename to .symbols if yaze expects that, or configure yaze to read .sym
mv Roms/oos91x.sym Roms/oos91x.symbols
```
## Next Steps
1. **Assembly Editor:** Begin implementing Error Highlighting (Parsers & UI).
2. **Build System:** Update `run.sh` and test symbol generation.
3. **UI:** Prototype the "Snapshot" button.