From 82572eeef8857328e4f4cf37a8bad6878c9d8cc2 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 17:49:41 +0000 Subject: [PATCH 1/3] docs: add AGENTS.md and GEMINI.md symlink Added a concise, specific AGENTS.md file based on the latest GitHub Copilot best practices, detailing the project's persona, tech stack, dependencies, build/test commands, and strict operational boundaries. Included a GEMINI.md symlink pointing to the new agent instructions. Co-authored-by: jac3km4 <11986158+jac3km4@users.noreply.github.com> --- AGENTS.md | 33 +++++++++++++++++++++++++++++++++ GEMINI.md | 1 + 2 files changed, 34 insertions(+) create mode 100644 AGENTS.md create mode 120000 GEMINI.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..d268cb9 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,33 @@ +--- +name: vakfu-agent +description: Expert Rust software engineer for the vakfu project +--- + +You are an expert Rust software engineer working on the vakfu project, a Wakfu map renderer. + +## Persona +- You specialize in Rust development, game engines (bevy), binary parsing, and egui for UIs. +- You understand the project's goal of parsing game assets (Wakfu `.jar` files, `.tgam` files) and rendering them on a map using an RTree structure. + +## Project knowledge +- **Tech Stack:** Rust, Bevy engine, bevy_egui, byte crate for parsing. +- **Dependencies:** The development environment and Ubuntu CI runners require `libwayland-dev`, `pkg-config`, `libxkbcommon-dev`, `libasound2-dev`, and `libudev-dev`. +- **File Structure:** + - `src/main.rs` - Application entry point, CLI argument parsing, Bevy App setup. + - `src/assets.rs` - Asset loaders, handling `Tgam` (texture images), `Map` chunks and elements, and sprites. + - `src/render.rs` - `MapRenderer` resource, responsible for efficiently querying and rendering elements using an `RTree` to filter by screen bounds. + - `src/camera.rs` - Camera controls. + - `src/settings.rs` - Map View Settings and UI logic. + +## Tools you can use +- **Build:** `cargo build` +- **Lint:** `cargo clippy -- -D warnings` (The project's CI workflow enforces zero clippy warnings on pull requests. Always ensure new code passes this before submitting). +- **Run:** `vakfu --path /path/to/Wakfu --map ` (Requires Ankama Games' Wakfu assets; look for `contents/maps/gfx.jar` in the target directory). +- **Test:** `cargo test` + +## Boundaries +- ✅ **Always:** Ensure your code passes `cargo clippy -- -D warnings`. +- ✅ **Always:** Install required system dependencies (`libwayland-dev`, etc.) before building or running tests in a fresh environment. +- 🚫 **Never:** Explicitly link or refer to the reference files or class names in the documentation when documenting code based on a reference implementation. +- 🚫 **Never:** Prefer third-party actions like `dtolnay/rust-toolchain` over `rustup toolchain install stable --profile minimal --component clippy --no-self-update` for GitHub Actions workflows. +- 🚫 **Never:** Include any authored assets in this repository. diff --git a/GEMINI.md b/GEMINI.md new file mode 120000 index 0000000..47dc3e3 --- /dev/null +++ b/GEMINI.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file From cbad3ad1fa1ce5b3f17f6b4535751192b70f34dc Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 17:54:45 +0000 Subject: [PATCH 2/3] docs: add AGENTS.md per Atlan guide and symlink GEMINI.md Added a concise AGENTS.md document containing project-specific, non-generic instructions for LLM agents, following the structure detailed in the Atlan guide (Commands, Boundaries, Project Structure, Code Style, Testing, Git Workflow). Also created a GEMINI.md symlink pointing to the newly created AGENTS.md. Co-authored-by: jac3km4 <11986158+jac3km4@users.noreply.github.com> --- AGENTS.md | 83 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 52 insertions(+), 31 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index d268cb9..0bc68ff 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,33 +1,54 @@ ---- -name: vakfu-agent -description: Expert Rust software engineer for the vakfu project ---- - -You are an expert Rust software engineer working on the vakfu project, a Wakfu map renderer. - -## Persona -- You specialize in Rust development, game engines (bevy), binary parsing, and egui for UIs. -- You understand the project's goal of parsing game assets (Wakfu `.jar` files, `.tgam` files) and rendering them on a map using an RTree structure. - -## Project knowledge -- **Tech Stack:** Rust, Bevy engine, bevy_egui, byte crate for parsing. -- **Dependencies:** The development environment and Ubuntu CI runners require `libwayland-dev`, `pkg-config`, `libxkbcommon-dev`, `libasound2-dev`, and `libudev-dev`. -- **File Structure:** - - `src/main.rs` - Application entry point, CLI argument parsing, Bevy App setup. - - `src/assets.rs` - Asset loaders, handling `Tgam` (texture images), `Map` chunks and elements, and sprites. - - `src/render.rs` - `MapRenderer` resource, responsible for efficiently querying and rendering elements using an `RTree` to filter by screen bounds. - - `src/camera.rs` - Camera controls. - - `src/settings.rs` - Map View Settings and UI logic. - -## Tools you can use -- **Build:** `cargo build` -- **Lint:** `cargo clippy -- -D warnings` (The project's CI workflow enforces zero clippy warnings on pull requests. Always ensure new code passes this before submitting). -- **Run:** `vakfu --path /path/to/Wakfu --map ` (Requires Ankama Games' Wakfu assets; look for `contents/maps/gfx.jar` in the target directory). -- **Test:** `cargo test` +## Commands +```bash +# Build the project +cargo build + +# Run linting with warnings treated as errors (required by CI) +cargo clippy -- -D warnings + +# Run all tests +cargo test + +# Run the application (requires Ankama Games' Wakfu assets) +vakfu --path /path/to/Wakfu --map +``` ## Boundaries -- ✅ **Always:** Ensure your code passes `cargo clippy -- -D warnings`. -- ✅ **Always:** Install required system dependencies (`libwayland-dev`, etc.) before building or running tests in a fresh environment. -- 🚫 **Never:** Explicitly link or refer to the reference files or class names in the documentation when documenting code based on a reference implementation. -- 🚫 **Never:** Prefer third-party actions like `dtolnay/rust-toolchain` over `rustup toolchain install stable --profile minimal --component clippy --no-self-update` for GitHub Actions workflows. -- 🚫 **Never:** Include any authored assets in this repository. +### Always do +- Run `cargo clippy -- -D warnings` and `cargo test` before submitting a PR. +- Install required system dependencies (`libwayland-dev`, `pkg-config`, `libxkbcommon-dev`, `libasound2-dev`, `libudev-dev`) before building in a fresh environment. + +### Ask first +- Any change to the core rendering loop (`src/render.rs`). +- Modifying `Cargo.toml` dependencies. + +### Never do +- Explicitly link or refer to the reference files or class names in the documentation when documenting code based on a reference implementation. +- Include any authored game assets in this repository. +- Prefer third-party actions like `dtolnay/rust-toolchain` over `rustup toolchain install stable --profile minimal --component clippy --no-self-update` for GitHub Actions workflows. + +## Project Structure +```text +src/main.rs # Application entry point, CLI argument parsing, Bevy App setup +src/assets.rs # Asset loaders, handling Tgam (textures), Map chunks and elements, sprites +src/render.rs # MapRenderer resource, responsible for efficiently querying/rendering elements via RTree +src/camera.rs # Camera controls +src/settings.rs # Map View Settings and UI logic +``` + +## Code Style +```rust +# Preferred: Use standard formatting and descriptive errors +fn parse_map(path: &Path) -> anyhow::Result { + let mut file = File::open(path)?; + // ... +} +``` + +## Testing +- **Framework:** `cargo test` +- **Focus:** Ensure binary parsing logic in `src/assets.rs` handles valid and invalid formats gracefully. + +## Git Workflow +- Branch naming: `feat/[description]`, `fix/[description]`, `chore/[description]` +- PR conventions: Ensure zero clippy warnings before merge. From ea0b232ddcefed5d200485d5f61a58cc0e095705 Mon Sep 17 00:00:00 2001 From: jekky Date: Thu, 30 Apr 2026 18:03:51 +0000 Subject: [PATCH 3/3] chore: cleanup --- AGENTS.md | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 0bc68ff..c163f75 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,10 +1,7 @@ ## Commands ```bash -# Build the project -cargo build - # Run linting with warnings treated as errors (required by CI) -cargo clippy -- -D warnings +cargo clippy --all-targets --all-features -- -D warnings # Run all tests cargo test @@ -15,17 +12,14 @@ vakfu --path /path/to/Wakfu --map ## Boundaries ### Always do -- Run `cargo clippy -- -D warnings` and `cargo test` before submitting a PR. +- Run `cargo clippy --all-targets --all-features -- -D warnings` and `cargo test` before submitting a PR. - Install required system dependencies (`libwayland-dev`, `pkg-config`, `libxkbcommon-dev`, `libasound2-dev`, `libudev-dev`) before building in a fresh environment. ### Ask first -- Any change to the core rendering loop (`src/render.rs`). - Modifying `Cargo.toml` dependencies. ### Never do -- Explicitly link or refer to the reference files or class names in the documentation when documenting code based on a reference implementation. -- Include any authored game assets in this repository. -- Prefer third-party actions like `dtolnay/rust-toolchain` over `rustup toolchain install stable --profile minimal --component clippy --no-self-update` for GitHub Actions workflows. +- Prefer third-party actions like `dtolnay/rust-toolchain` over just invoking builtin commands like `rustup toolchain install stable --profile minimal --component clippy --no-self-update` for GitHub Actions workflows. ## Project Structure ```text @@ -36,19 +30,14 @@ src/camera.rs # Camera controls src/settings.rs # Map View Settings and UI logic ``` -## Code Style -```rust -# Preferred: Use standard formatting and descriptive errors -fn parse_map(path: &Path) -> anyhow::Result { - let mut file = File::open(path)?; - // ... -} -``` - ## Testing - **Framework:** `cargo test` -- **Focus:** Ensure binary parsing logic in `src/assets.rs` handles valid and invalid formats gracefully. ## Git Workflow -- Branch naming: `feat/[description]`, `fix/[description]`, `chore/[description]` -- PR conventions: Ensure zero clippy warnings before merge. +Branch naming: + feat/[short-description] + fix/[short-description] + chore/[short-description] + +Commit format: [prefix]: [what changed in imperative mood] + Example: feat: add DWARF v5 support for symbols