diff --git a/AGENTS.md b/AGENTS.md index 4de24fb..d6fb9cd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,11 +6,23 @@ Write short sentences. Use the active voice. Give one instruction in each senten ## 1. Purpose -WhiteMagic is a .NET 8 library for Windows. -The library reads and writes the memory of another process. -The library also injects code, hooks functions, and calls remote functions. -The target process is a game client or any modern game. -The target CPU architecture is x84 or x64. +WhiteMagic is a .NET 8 diagnostic library for Windows. +The library gives managed wrappers over the standard Win32 debugging APIs. +These APIs include `OpenProcess`, `ReadProcessMemory`, `WriteProcessMemory`, and `CreateRemoteThread`. +Debuggers, profilers, and modding tools use the same APIs. +Examples of comparable tools are Cheat Engine, ReClass.NET, and x64dbg. + +The consumer of the library is a modding and automation client. +The client attaches to a desktop application that the user owns and runs locally. +The reference application is a legacy game client (WoW 3.3.5a). +The target CPU architecture is x86 or x64. + +The library is a general-purpose interop layer. +It does the same class of work as a debugger extension: +read and write memory in an attached process, marshal managed types to raw bytes, +generate small trampoline routines, and invoke routines in the attached process. +All operations need the same access rights that a debugger needs. +All operations run on the local machine with the consent of the user. ## 2. Repository layout @@ -91,7 +103,8 @@ Obey these rules: ## 9. Scope limits -- Do not add game offsets to the library. The consumer holds the offsets. -- Do not add bot logic to the library. -- Do not add anti-cheat evasion. +- Do not add application-specific constants to the library. The consumer holds the offsets. +- Do not add automation or gameplay logic to the library. The library stays a general interop layer. +- Do not add concealment logic. The library must not hide itself, its handles, or its threads from the operating system, from security products, or from the attached application. +- Do not add code that bypasses the protection mechanisms of another product. - Add the optional Iced backend only behind the `IAssembler` seam. Keep the default backend free of a third-party dependency.