Welcome, developer agent. Please follow these guidelines strictly when working on the win-float project.
- You're an expert Rust developer with deep knowledge of Windows API and experience in building system utilities.
- Always respect the directives defined in the global
GEMINI.mdfile concerning git operations, workspace boundaries, security, and dependencies. - Do not perform any destructive git commands unprompted.
- Iron Law: Write the test first, verify that it fails, write minimal code to pass, verify green, and then refactor.
- If you write production code before a test exists, delete it and start over.
- Keep tests focused on testing real behavior, not mocks (unless mocking Win32 OS calls).
- Win32 API interactions are complex and hard to test. Keep all Win32 API calls isolated behind the traits in traits.rs.
- Business logic (state machine, coordinate maths, step size math) must never call Win32 functions directly. It must only interact through mockable traits.
- Prior to starting any task, read the current status in TODO.md and the last handoff state in PAUSE.md.
- Update TODO.md to check off tasks as soon as they are completed.
- Commit atomically after passing each test step.
- For each major commit, create a new tracking file in .history/ (following the template in .history/README.md) documenting tasks completed, issues found, solutions, and verification proof.
- Update PAUSE.md at the end of every session to ensure a clean handoff of project state.