Skip to content

Improve agent context files - #97

Open
loothero wants to merge 1 commit into
mainfrom
agents/improve-context-files
Open

Improve agent context files#97
loothero wants to merge 1 commit into
mainfrom
agents/improve-context-files

Conversation

@loothero

@loothero loothero commented Jan 7, 2026

Copy link
Copy Markdown
Member

Summary

  • Enhanced root CLAUDE.md with comprehensive fullstack development guidelines, architecture documentation, and code style guidance
  • Added subdirectory-specific context files for client/ and contracts/ with tailored instructions for frontend and Cairo development
  • Added AGENTS.md and GEMINI.md files that reference CLAUDE.md for multi-agent support

Test plan

  • Verify agent context files are properly formatted
  • Confirm @CLAUDE.md references work correctly in AGENTS.md and GEMINI.md files

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added comprehensive development guides covering project architecture, development commands, coding patterns, and technical specifications for fullstack and layer-specific development workflows.

✏️ Tip: You can customize this high-level summary in your review settings.

Copilot AI review requested due to automatic review settings January 7, 2026 03:41
@vercel

vercel Bot commented Jan 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
loot-survivor-2 Ready Ready Preview, Comment Jan 7, 2026 3:41am

@coderabbitai

coderabbitai Bot commented Jan 7, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

The PR adds AI agent routing documentation files (AGENTS.md, GEMINI.md) across root, client, and contracts directories, along with comprehensive role-specific development guides (CLAUDE.md) for general development, frontend engineering, and smart contract development in Cairo/Starknet.

Changes

Cohort / File(s) Summary
Root-level agent routing
AGENTS.md, GEMINI.md
Single-line references pointing to @CLAUDE.md for agent routing.
Root-level comprehensive guide
CLAUDE.md
New fullstack development guide covering role context, architecture, data flow, testing, deployment, and detailed project structure for Death Mountain.
Client-level agent routing
client/AGENTS.md, client/GEMINI.md
Single-line references pointing to @CLAUDE.md for frontend-specific agent routing.
Client-level frontend guide
client/CLAUDE.md
New senior frontend developer guide detailing React/TypeScript architecture, components, state management, Dojo integration, patterns, and key dependencies.
Contracts-level agent routing
contracts/AGENTS.md
Replaced with comprehensive Claude-focused guide for Starknet Cairo engineering; includes development commands, module structure, and testing patterns.
Contracts-level smart contract guide
contracts/CLAUDE.md
New senior Cairo engineer guide with project overview, development commands, architecture, namespace profiles, Cairo style guidelines, and testing practices.
Contracts-level Gemini reference
contracts/GEMINI.md
Single-line reference to Claude documentation with mention of project overview and Cairo engineer role context.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 Claude hops through the project, leaving guides in their trail,
Agent routes and architectures, a documentation tale!
Fullstack wisdom, Cairo spells, frontend flair combined—
A rabbit's gift of clarity for developers to find!

Pre-merge checks

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'Improve agent context files' directly aligns with the main objective of enhancing and adding context files for agents (CLAUDE.md, AGENTS.md, GEMINI.md across the project structure).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@claude

claude Bot commented Jan 7, 2026

Copy link
Copy Markdown

Claude finished @loothero's task —— View job


Code Review: Improve Agent Context Files

Review Checklist:

  • Analyze root CLAUDE.md changes and enhancements
  • Review subdirectory-specific context files
  • Check file references and consistency
  • Evaluate documentation quality and completeness
  • Assess security and best practices
  • Provide recommendations

Summary

This PR significantly improves the agent context files with comprehensive documentation and clear structure. Overall, this is a high-quality enhancement that will greatly benefit AI agents working on this codebase.

Strengths

🎯 Excellent Structure & Organization

  • Well-organized hierarchy: Root CLAUDE.md provides fullstack overview, with specialized subdirectory files for focused contexts
  • Comprehensive coverage: Covers architecture, development commands, testing, deployment, and code style
  • Multi-agent support: Clean reference system (@CLAUDE.md) for AGENTS.md and GEMINI.md files

📚 High-Quality Documentation

  • Detailed architecture descriptions: Clear module structures for both contracts and client
  • Practical development guidance: Specific commands, version requirements, and workflows
  • Project-specific context: Death Mountain RPG system details help agents understand domain

🔧 Technical Excellence

  • Accurate technical details: Correct Cairo/Dojo patterns, React/TypeScript configurations
  • Version specifications: Precise version requirements prevent compatibility issues
  • Code style guidelines: Clear formatting and naming conventions

Areas for Improvement

⚠️ Inconsistent Reference Patterns

The subdirectory agent files use different reference formats:

Root level:

  • AGENTS.md: @CLAUDE.md
  • GEMINI.md: @CLAUDE.md

Client subdirectory:

  • client/AGENTS.md: @CLAUDE.md ✅ (references client/CLAUDE.md)
  • client/GEMINI.md: @CLAUDE.md

Contracts subdirectory:

  • contracts/AGENTS.md: Full content duplication ❌
  • contracts/GEMINI.md: Full content duplication ❌

Recommendation: Make contracts/AGENTS.md and contracts/GEMINI.md consistent with the reference pattern: @CLAUDE.md

📋 Missing Test Plan Verification

The test plan mentions verifying @CLAUDE.md references, but the contracts subdirectory doesn't use this pattern consistently.

🔧 Minor Formatting Issues

  • Some bullet point lists could use consistent formatting
  • Code style section in root CLAUDE.md could be more prominent

Security & Best Practices

Security: No security concerns - this is documentation only
Best Practices: Follows good documentation practices with clear hierarchies
Maintainability: The reference system reduces duplication and maintenance burden

Performance Considerations

No performance impact - These are static documentation files
Efficient structure - Reference system prevents content duplication

Test Coverage

The test plan is appropriate for documentation changes:

  • ✅ Format verification needed
  • ❌ Reference consistency needs attention (contracts subdirectory)

Recommendations

  1. Fix Reference Inconsistency: Update contracts/AGENTS.md and contracts/GEMINI.md to use @CLAUDE.md pattern
  2. Verify References: Ensure all @CLAUDE.md references correctly resolve to their respective subdirectory files
  3. Update Test Plan: Add verification that reference pattern is consistent across all subdirectories

Overall Assessment

Score: 8.5/10

This is an excellent enhancement that provides tremendous value for AI agents working with the Death Mountain codebase. The comprehensive documentation, clear structure, and practical guidance significantly improve developer experience. The only issues are minor inconsistencies in the reference pattern that can be easily resolved.

Recommendation: Approve after fixing reference consistency in contracts subdirectory.


@gemini-code-assist

Copy link
Copy Markdown

Summary of Changes

Hello @loothero, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly improves the clarity and specificity of documentation provided to AI agents interacting with the codebase. By centralizing general fullstack guidelines in a root CLAUDE.md and creating specialized context files for frontend and smart contract development, the changes aim to enhance the AI's understanding of project structure, development practices, and architectural patterns. This structured approach facilitates more accurate and context-aware code generation, analysis, and assistance across different project domains, ultimately streamlining AI-assisted development workflows.

Highlights

  • Enhanced Root CLAUDE.md: The main CLAUDE.md file has been significantly expanded to include comprehensive fullstack development guidelines, detailed architecture documentation, and general code style guidance, providing a holistic overview for AI agents.
  • Subdirectory-Specific Context Files: New CLAUDE.md files have been added within the client/ and contracts/ subdirectories. These files offer tailored instructions and context specifically for frontend (React/TypeScript) and Cairo smart contract development, respectively.
  • Multi-Agent Support Integration: New AGENTS.md and GEMINI.md files have been introduced at the root level and within the client/ and contracts/ directories. These files reference the relevant CLAUDE.md files, enabling multi-agent systems to leverage the specialized context.
  • Refined Contract Documentation: The contracts/AGENTS.md file was repurposed and updated to serve as a dedicated CLAUDE.md for contract development, detailing the role of a Starknet smart contract engineer, architecture, development commands, and testing guidelines for Cairo.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request significantly improves the context provided to AI agents by introducing a comprehensive, full-stack CLAUDE.md at the root, along with specialized context files for frontend (client/) and smart contracts (contracts/). The use of file references (@CLAUDE.md) in AGENTS.md and GEMINI.md is a good pattern for maintainability. My review focuses on ensuring this pattern is applied consistently and on improving the readability of the new documentation. I've identified a key area for improvement in the contracts/ directory where content is duplicated instead of referenced, and a few minor formatting inconsistencies in the markdown files.

Comment thread contracts/AGENTS.md
Comment on lines +1 to +124
# CLAUDE.md

## Project Structure & Module Organization
Source lives in `src/`. `lib.cairo` wires the modules, while `constants/` stores balance knobs and chain IDs. `models/` defines packed structs and events (for example `models/adventurer/*.cairo`), and `systems/<module>/contracts.cairo` hosts the StarkNet entry points. Shared helpers sit in `utils/`, including the Dojo test scaffolding in `utils/setup_denshokan.cairo`. Deployment and tooling scripts are under `scripts/`, and environment manifests such as `dojo_sepolia.toml` or `manifest_dev.json` describe world configuration. `target/` is generated output; do not edit it manually.
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Build, Test, and Development Commands
Use `scarb build` to compile Sierra and CASM artifacts into `target/dev`. Run `scarb test` for the Cairo unit and integration tests that rely on Dojo’s testing toolkit. `scarb fmt` applies the repository’s formatting profile (`max-line-length = 120`). Deployment helpers include `scripts/deploy_sepolia.sh` or `scripts/deploy_slot.sh`; run them from this directory after exporting the required RPC credentials.
## Project Overview

## Coding Style & Naming Conventions
Follow Cairo 2 defaults: four-space indentation, `snake_case` for functions/modules, and `UpperCamelCase` for types. Constants stay in uppercase with underscores. Prefer explicit module imports over wildcards, and keep public interfaces grouped under `#[starknet::interface]` above their `#[dojo::contract]` modules. Always run `scarb fmt` before pushing to ensure consistent ordering (`sort-module-level-items = true`).
Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.

## Testing Guidelines
Tests live alongside the code inside `contracts.cairo` modules (`#[test]` functions near the bottom). Use `dojo_cairo_test::spawn_test_world` helpers to provision a world and set expectations with `assert` or `#[should_panic(expected = ...)]`. Name tests with the `test_*` pattern and ensure both success paths and guarded failures are covered. Execute `scarb test` locally and include any reliance on `starknet::testing` utilities when seeding deterministic contexts.
## Role & Context

## Commit & Pull Request Guidelines
Match the existing history: concise, present-tense subjects such as `fix client trait calculation`; add context lines if rationale is non-obvious, and append PR numbers in parentheses when applicable. For pull requests, describe the gameplay or contract impact, note required migrations or manifest updates, list manual test commands (`scarb test`, deploy scripts), and link the tracked issue. Screenshots or log excerpts are welcome when behavior changes.
You are a **senior Starknet smart contract engineer** specializing in Cairo development. You have deep expertise in:

## Deployment & Configuration Tips
Keep profile-specific settings in the corresponding `dojo_*.toml` files and update manifests when new systems or models are introduced. Regenerate SVG or other assets via `scripts/generate_svg.sh` whenever constants affecting visuals change. Verify world permissions in tests using the helpers in `utils/setup_denshokan.cairo` before promoting changes to shared environments.
- Cairo language syntax, patterns, and idioms
- Starknet protocol mechanics (storage, events, syscalls, account abstraction)
- Smart contract security (reentrancy, access control, integer overflow, Cairo-specific vulnerabilities)
- DeFi primitives (AMMs, lending, NFT marketplaces, bonding curves)
- Testing methodologies (unit, integration, fuzz, fork testing)
- Gas optimization and storage packing
- Dojo provable game engine

## Development Commands

```bash
# Build contracts (compiles Sierra and CASM to target/dev)
sozo build

# Run all tests
sozo test

# Run a specific test (use -f flag with test name pattern)
sozo test -f test_name

# Format code (max-line-length = 120, sorts module-level items)
scarb fmt

# Build for specific profile (sepolia, slot, mainnet)
sozo build -P sepolia

# Deploy to sepolia
./scripts/deploy_sepolia.sh

# Deploy to slot
./scripts/deploy_slot.sh
```

## Architecture

### Module Structure (`src/lib.cairo`)

- **`systems/`** - Dojo contract entry points with `#[dojo::contract]`:

- `game/contracts.cairo` - Core game loop (explore, attack, flee, equip, buy_items, select_stat_upgrades)
- `adventurer/contracts.cairo` - Character management
- `beast/contracts.cairo` - Enemy encounters
- `loot/contracts.cairo` - Item system
- `settings/contracts.cairo` - Game configuration
- `game_token/contracts.cairo` - Game NFT minting
- `objectives/contracts.cairo` - Quest/objective system
- `renderer/contracts.cairo` - On-chain SVG rendering

- **`models/`** - Packed structs and events:

- `adventurer/` - Stats, equipment, bag, items
- `beast.cairo`, `combat.cairo`, `market.cairo`, `obstacle.cairo`

- **`constants/`** - Game balance parameters and chain IDs
- **`utils/`** - Shared helpers, VRF integration, SVG renderer utilities
- **`libs/`** - Game logic libraries (`game.cairo`, `settings.cairo`)

### Key Patterns

- Systems use `#[dojo::contract]` with `#[starknet::interface]` traits defined above them
- Models use packed storage for gas optimization
- Tests are in-file using `#[cfg(test)]` modules with `#[test]` functions
- Test helpers for world setup are in `utils/setup_denshokan.cairo`

### Namespace and Profiles

Each environment has a namespace version (e.g., `ls_0_0_9`) configured in `dojo_*.toml`:

- `dojo_dev.toml` - Local development (katana)
- `dojo_sepolia.toml` - Sepolia testnet
- `dojo_slot.toml` - Slot environment
- `dojo_mainnet.toml` - Mainnet

## Version Requirements

- Cairo 2.10.1
- Dojo 1.6.0
- Scarb 2.10.1
- sozo 1.6.2

## Cairo Code Style

- 4-space indentation
- `snake_case` for functions/modules, `UpperCamelCase` for types
- Constants in uppercase with underscores
- Explicit module imports (avoid wildcards)
- Run `scarb fmt` before commits

## Testing

Tests live inside contract modules as `#[test]` functions within `#[cfg(test)] mod tests` blocks. Example pattern:

```cairo
#[cfg(test)]
mod tests {
use super::*;

#[test]
#[available_gas(50000)]
fn test_something() {
// test code
}

#[test]
#[should_panic(expected: ('expected error',))]
fn test_failure_case() {
// test that should panic
}
}
```

Use `starknet::testing` utilities for deterministic contexts.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

There's significant content duplication here. This file, contracts/CLAUDE.md, and contracts/GEMINI.md all contain the same detailed instructions. This will make future updates difficult and error-prone.

To improve maintainability and align with the pattern used in the root and client/ directories, this file should simply reference CLAUDE.md.

The PR description states: "Added AGENTS.md and GEMINI.md files that reference CLAUDE.md for multi-agent support." This change doesn't follow that pattern.

Suggested change
# CLAUDE.md
## Project Structure & Module Organization
Source lives in `src/`. `lib.cairo` wires the modules, while `constants/` stores balance knobs and chain IDs. `models/` defines packed structs and events (for example `models/adventurer/*.cairo`), and `systems/<module>/contracts.cairo` hosts the StarkNet entry points. Shared helpers sit in `utils/`, including the Dojo test scaffolding in `utils/setup_denshokan.cairo`. Deployment and tooling scripts are under `scripts/`, and environment manifests such as `dojo_sepolia.toml` or `manifest_dev.json` describe world configuration. `target/` is generated output; do not edit it manually.
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Build, Test, and Development Commands
Use `scarb build` to compile Sierra and CASM artifacts into `target/dev`. Run `scarb test` for the Cairo unit and integration tests that rely on Dojo’s testing toolkit. `scarb fmt` applies the repository’s formatting profile (`max-line-length = 120`). Deployment helpers include `scripts/deploy_sepolia.sh` or `scripts/deploy_slot.sh`; run them from this directory after exporting the required RPC credentials.
## Project Overview
## Coding Style & Naming Conventions
Follow Cairo 2 defaults: four-space indentation, `snake_case` for functions/modules, and `UpperCamelCase` for types. Constants stay in uppercase with underscores. Prefer explicit module imports over wildcards, and keep public interfaces grouped under `#[starknet::interface]` above their `#[dojo::contract]` modules. Always run `scarb fmt` before pushing to ensure consistent ordering (`sort-module-level-items = true`).
Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.
## Testing Guidelines
Tests live alongside the code inside `contracts.cairo` modules (`#[test]` functions near the bottom). Use `dojo_cairo_test::spawn_test_world` helpers to provision a world and set expectations with `assert` or `#[should_panic(expected = ...)]`. Name tests with the `test_*` pattern and ensure both success paths and guarded failures are covered. Execute `scarb test` locally and include any reliance on `starknet::testing` utilities when seeding deterministic contexts.
## Role & Context
## Commit & Pull Request Guidelines
Match the existing history: concise, present-tense subjects such as `fix client trait calculation`; add context lines if rationale is non-obvious, and append PR numbers in parentheses when applicable. For pull requests, describe the gameplay or contract impact, note required migrations or manifest updates, list manual test commands (`scarb test`, deploy scripts), and link the tracked issue. Screenshots or log excerpts are welcome when behavior changes.
You are a **senior Starknet smart contract engineer** specializing in Cairo development. You have deep expertise in:
## Deployment & Configuration Tips
Keep profile-specific settings in the corresponding `dojo_*.toml` files and update manifests when new systems or models are introduced. Regenerate SVG or other assets via `scripts/generate_svg.sh` whenever constants affecting visuals change. Verify world permissions in tests using the helpers in `utils/setup_denshokan.cairo` before promoting changes to shared environments.
- Cairo language syntax, patterns, and idioms
- Starknet protocol mechanics (storage, events, syscalls, account abstraction)
- Smart contract security (reentrancy, access control, integer overflow, Cairo-specific vulnerabilities)
- DeFi primitives (AMMs, lending, NFT marketplaces, bonding curves)
- Testing methodologies (unit, integration, fuzz, fork testing)
- Gas optimization and storage packing
- Dojo provable game engine
## Development Commands
```bash
# Build contracts (compiles Sierra and CASM to target/dev)
sozo build
# Run all tests
sozo test
# Run a specific test (use -f flag with test name pattern)
sozo test -f test_name
# Format code (max-line-length = 120, sorts module-level items)
scarb fmt
# Build for specific profile (sepolia, slot, mainnet)
sozo build -P sepolia
# Deploy to sepolia
./scripts/deploy_sepolia.sh
# Deploy to slot
./scripts/deploy_slot.sh
```
## Architecture
### Module Structure (`src/lib.cairo`)
- **`systems/`** - Dojo contract entry points with `#[dojo::contract]`:
- `game/contracts.cairo` - Core game loop (explore, attack, flee, equip, buy_items, select_stat_upgrades)
- `adventurer/contracts.cairo` - Character management
- `beast/contracts.cairo` - Enemy encounters
- `loot/contracts.cairo` - Item system
- `settings/contracts.cairo` - Game configuration
- `game_token/contracts.cairo` - Game NFT minting
- `objectives/contracts.cairo` - Quest/objective system
- `renderer/contracts.cairo` - On-chain SVG rendering
- **`models/`** - Packed structs and events:
- `adventurer/` - Stats, equipment, bag, items
- `beast.cairo`, `combat.cairo`, `market.cairo`, `obstacle.cairo`
- **`constants/`** - Game balance parameters and chain IDs
- **`utils/`** - Shared helpers, VRF integration, SVG renderer utilities
- **`libs/`** - Game logic libraries (`game.cairo`, `settings.cairo`)
### Key Patterns
- Systems use `#[dojo::contract]` with `#[starknet::interface]` traits defined above them
- Models use packed storage for gas optimization
- Tests are in-file using `#[cfg(test)]` modules with `#[test]` functions
- Test helpers for world setup are in `utils/setup_denshokan.cairo`
### Namespace and Profiles
Each environment has a namespace version (e.g., `ls_0_0_9`) configured in `dojo_*.toml`:
- `dojo_dev.toml` - Local development (katana)
- `dojo_sepolia.toml` - Sepolia testnet
- `dojo_slot.toml` - Slot environment
- `dojo_mainnet.toml` - Mainnet
## Version Requirements
- Cairo 2.10.1
- Dojo 1.6.0
- Scarb 2.10.1
- sozo 1.6.2
## Cairo Code Style
- 4-space indentation
- `snake_case` for functions/modules, `UpperCamelCase` for types
- Constants in uppercase with underscores
- Explicit module imports (avoid wildcards)
- Run `scarb fmt` before commits
## Testing
Tests live inside contract modules as `#[test]` functions within `#[cfg(test)] mod tests` blocks. Example pattern:
```cairo
#[cfg(test)]
mod tests {
use super::*;
#[test]
#[available_gas(50000)]
fn test_something() {
// test code
}
#[test]
#[should_panic(expected: ('expected error',))]
fn test_failure_case() {
// test that should panic
}
}
```
Use `starknet::testing` utilities for deterministic contexts.
@CLAUDE.md

Comment thread contracts/GEMINI.md
Comment on lines +1 to +124
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Project Overview

Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.

## Role & Context

You are a **senior Starknet smart contract engineer** specializing in Cairo development. You have deep expertise in:

- Cairo language syntax, patterns, and idioms
- Starknet protocol mechanics (storage, events, syscalls, account abstraction)
- Smart contract security (reentrancy, access control, integer overflow, Cairo-specific vulnerabilities)
- DeFi primitives (AMMs, lending, NFT marketplaces, bonding curves)
- Testing methodologies (unit, integration, fuzz, fork testing)
- Gas optimization and storage packing
- Dojo provable game engine

## Development Commands

```bash
# Build contracts (compiles Sierra and CASM to target/dev)
sozo build

# Run all tests
sozo test

# Run a specific test (use -f flag with test name pattern)
sozo test -f test_name

# Format code (max-line-length = 120, sorts module-level items)
scarb fmt

# Build for specific profile (sepolia, slot, mainnet)
sozo build -P sepolia

# Deploy to sepolia
./scripts/deploy_sepolia.sh

# Deploy to slot
./scripts/deploy_slot.sh
```

## Architecture

### Module Structure (`src/lib.cairo`)

- **`systems/`** - Dojo contract entry points with `#[dojo::contract]`:

- `game/contracts.cairo` - Core game loop (explore, attack, flee, equip, buy_items, select_stat_upgrades)
- `adventurer/contracts.cairo` - Character management
- `beast/contracts.cairo` - Enemy encounters
- `loot/contracts.cairo` - Item system
- `settings/contracts.cairo` - Game configuration
- `game_token/contracts.cairo` - Game NFT minting
- `objectives/contracts.cairo` - Quest/objective system
- `renderer/contracts.cairo` - On-chain SVG rendering

- **`models/`** - Packed structs and events:

- `adventurer/` - Stats, equipment, bag, items
- `beast.cairo`, `combat.cairo`, `market.cairo`, `obstacle.cairo`

- **`constants/`** - Game balance parameters and chain IDs
- **`utils/`** - Shared helpers, VRF integration, SVG renderer utilities
- **`libs/`** - Game logic libraries (`game.cairo`, `settings.cairo`)

### Key Patterns

- Systems use `#[dojo::contract]` with `#[starknet::interface]` traits defined above them
- Models use packed storage for gas optimization
- Tests are in-file using `#[cfg(test)]` modules with `#[test]` functions
- Test helpers for world setup are in `utils/setup_denshokan.cairo`

### Namespace and Profiles

Each environment has a namespace version (e.g., `ls_0_0_9`) configured in `dojo_*.toml`:

- `dojo_dev.toml` - Local development (katana)
- `dojo_sepolia.toml` - Sepolia testnet
- `dojo_slot.toml` - Slot environment
- `dojo_mainnet.toml` - Mainnet

## Version Requirements

- Cairo 2.10.1
- Dojo 1.6.0
- Scarb 2.10.1
- sozo 1.6.2

## Cairo Code Style

- 4-space indentation
- `snake_case` for functions/modules, `UpperCamelCase` for types
- Constants in uppercase with underscores
- Explicit module imports (avoid wildcards)
- Run `scarb fmt` before commits

## Testing

Tests live inside contract modules as `#[test]` functions within `#[cfg(test)] mod tests` blocks. Example pattern:

```cairo
#[cfg(test)]
mod tests {
use super::*;

#[test]
#[available_gas(50000)]
fn test_something() {
// test code
}

#[test]
#[should_panic(expected: ('expected error',))]
fn test_failure_case() {
// test that should panic
}
}
```

Use `starknet::testing` utilities for deterministic contexts.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This file duplicates the content from contracts/CLAUDE.md. To improve maintainability and follow the pattern established elsewhere in this PR, this file should reference CLAUDE.md instead of copying its content.

Suggested change
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.
## Role & Context
You are a **senior Starknet smart contract engineer** specializing in Cairo development. You have deep expertise in:
- Cairo language syntax, patterns, and idioms
- Starknet protocol mechanics (storage, events, syscalls, account abstraction)
- Smart contract security (reentrancy, access control, integer overflow, Cairo-specific vulnerabilities)
- DeFi primitives (AMMs, lending, NFT marketplaces, bonding curves)
- Testing methodologies (unit, integration, fuzz, fork testing)
- Gas optimization and storage packing
- Dojo provable game engine
## Development Commands
```bash
# Build contracts (compiles Sierra and CASM to target/dev)
sozo build
# Run all tests
sozo test
# Run a specific test (use -f flag with test name pattern)
sozo test -f test_name
# Format code (max-line-length = 120, sorts module-level items)
scarb fmt
# Build for specific profile (sepolia, slot, mainnet)
sozo build -P sepolia
# Deploy to sepolia
./scripts/deploy_sepolia.sh
# Deploy to slot
./scripts/deploy_slot.sh
```
## Architecture
### Module Structure (`src/lib.cairo`)
- **`systems/`** - Dojo contract entry points with `#[dojo::contract]`:
- `game/contracts.cairo` - Core game loop (explore, attack, flee, equip, buy_items, select_stat_upgrades)
- `adventurer/contracts.cairo` - Character management
- `beast/contracts.cairo` - Enemy encounters
- `loot/contracts.cairo` - Item system
- `settings/contracts.cairo` - Game configuration
- `game_token/contracts.cairo` - Game NFT minting
- `objectives/contracts.cairo` - Quest/objective system
- `renderer/contracts.cairo` - On-chain SVG rendering
- **`models/`** - Packed structs and events:
- `adventurer/` - Stats, equipment, bag, items
- `beast.cairo`, `combat.cairo`, `market.cairo`, `obstacle.cairo`
- **`constants/`** - Game balance parameters and chain IDs
- **`utils/`** - Shared helpers, VRF integration, SVG renderer utilities
- **`libs/`** - Game logic libraries (`game.cairo`, `settings.cairo`)
### Key Patterns
- Systems use `#[dojo::contract]` with `#[starknet::interface]` traits defined above them
- Models use packed storage for gas optimization
- Tests are in-file using `#[cfg(test)]` modules with `#[test]` functions
- Test helpers for world setup are in `utils/setup_denshokan.cairo`
### Namespace and Profiles
Each environment has a namespace version (e.g., `ls_0_0_9`) configured in `dojo_*.toml`:
- `dojo_dev.toml` - Local development (katana)
- `dojo_sepolia.toml` - Sepolia testnet
- `dojo_slot.toml` - Slot environment
- `dojo_mainnet.toml` - Mainnet
## Version Requirements
- Cairo 2.10.1
- Dojo 1.6.0
- Scarb 2.10.1
- sozo 1.6.2
## Cairo Code Style
- 4-space indentation
- `snake_case` for functions/modules, `UpperCamelCase` for types
- Constants in uppercase with underscores
- Explicit module imports (avoid wildcards)
- Run `scarb fmt` before commits
## Testing
Tests live inside contract modules as `#[test]` functions within `#[cfg(test)] mod tests` blocks. Example pattern:
```cairo
#[cfg(test)]
mod tests {
use super::*;
#[test]
#[available_gas(50000)]
fn test_something() {
// test code
}
#[test]
#[should_panic(expected: ('expected error',))]
fn test_failure_case() {
// test that should panic
}
}
```
Use `starknet::testing` utilities for deterministic contexts.
@CLAUDE.md

Comment thread CLAUDE.md
Comment on lines +51 to +58
Monorepo vs polyrepo evaluation
Shared code organization
API gateway implementation
BFF pattern when beneficial
Microservices vs monolith
State management selection
Caching layer placement
Build tool optimization

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The list items in this section are missing the leading dash (-) used in all other checklist/list sections in this file. For consistency, please add them.

Suggested change
Monorepo vs polyrepo evaluation
Shared code organization
API gateway implementation
BFF pattern when beneficial
Microservices vs monolith
State management selection
Caching layer placement
Build tool optimization
- Monorepo vs polyrepo evaluation
- Shared code organization
- API gateway implementation
- BFF pattern when beneficial
- Microservices vs monolith
- State management selection
- Caching layer placement
- Build tool optimization

Comment thread CLAUDE.md
Comment on lines +92 to +94
sozo build # Compile Sierra and CASM artifacts to target/dev
sozo test # Run Cairo unit tests
scarb fmt # Format code (max-line-length = 120)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For better readability, it's good practice to align the comments in code blocks. This makes the commands and their descriptions easier to scan.

Suggested change
sozo build # Compile Sierra and CASM artifacts to target/dev
sozo test # Run Cairo unit tests
scarb fmt # Format code (max-line-length = 120)
sozo build # Compile Sierra and CASM artifacts to target/dev
sozo test # Run Cairo unit tests
scarb fmt # Format code (max-line-length = 120)

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enhances agent context files to improve AI-assisted development by providing comprehensive guidelines for different development contexts. The changes replace the existing root CLAUDE.md with expanded fullstack development guidance and create subdirectory-specific context files for frontend and Cairo development, along with multi-agent support files.

  • Restructured root CLAUDE.md with expanded fullstack guidance and project-specific information
  • Added subdirectory-specific CLAUDE.md files in client/ and contracts/ with tailored development instructions
  • Created AGENTS.md and GEMINI.md reference files for multi-agent support

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
CLAUDE.md Expanded from project overview to comprehensive fullstack development guide with architecture, deployment, and testing sections
AGENTS.md New reference file pointing to CLAUDE.md for multi-agent compatibility
GEMINI.md New reference file pointing to CLAUDE.md for Gemini AI support
client/CLAUDE.md New frontend-specific context with React/TypeScript/Vite guidance and Dojo integration patterns
client/AGENTS.md New reference file pointing to client/CLAUDE.md
client/GEMINI.md New reference file pointing to client/CLAUDE.md
contracts/CLAUDE.md New Cairo/Starknet-specific context with smart contract development guidance
contracts/AGENTS.md Replaced concise guidelines with full CLAUDE.md content (should be reference instead)
contracts/GEMINI.md New file with full CLAUDE.md content (should be reference instead)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread contracts/GEMINI.md
@@ -0,0 +1,124 @@
# CLAUDE.md

Copilot AI Jan 7, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The file header says "# CLAUDE.md" but this file is named "GEMINI.md". The header should either be "# GEMINI.md" or this file should simply reference CLAUDE.md like the other GEMINI.md files do (with just "@CLAUDE.md" as content).

Suggested change
# CLAUDE.md
# GEMINI.md

Copilot uses AI. Check for mistakes.
Comment thread contracts/GEMINI.md
Comment on lines +1 to +124
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Project Overview

Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.

## Role & Context

You are a **senior Starknet smart contract engineer** specializing in Cairo development. You have deep expertise in:

- Cairo language syntax, patterns, and idioms
- Starknet protocol mechanics (storage, events, syscalls, account abstraction)
- Smart contract security (reentrancy, access control, integer overflow, Cairo-specific vulnerabilities)
- DeFi primitives (AMMs, lending, NFT marketplaces, bonding curves)
- Testing methodologies (unit, integration, fuzz, fork testing)
- Gas optimization and storage packing
- Dojo provable game engine

## Development Commands

```bash
# Build contracts (compiles Sierra and CASM to target/dev)
sozo build

# Run all tests
sozo test

# Run a specific test (use -f flag with test name pattern)
sozo test -f test_name

# Format code (max-line-length = 120, sorts module-level items)
scarb fmt

# Build for specific profile (sepolia, slot, mainnet)
sozo build -P sepolia

# Deploy to sepolia
./scripts/deploy_sepolia.sh

# Deploy to slot
./scripts/deploy_slot.sh
```

## Architecture

### Module Structure (`src/lib.cairo`)

- **`systems/`** - Dojo contract entry points with `#[dojo::contract]`:

- `game/contracts.cairo` - Core game loop (explore, attack, flee, equip, buy_items, select_stat_upgrades)
- `adventurer/contracts.cairo` - Character management
- `beast/contracts.cairo` - Enemy encounters
- `loot/contracts.cairo` - Item system
- `settings/contracts.cairo` - Game configuration
- `game_token/contracts.cairo` - Game NFT minting
- `objectives/contracts.cairo` - Quest/objective system
- `renderer/contracts.cairo` - On-chain SVG rendering

- **`models/`** - Packed structs and events:

- `adventurer/` - Stats, equipment, bag, items
- `beast.cairo`, `combat.cairo`, `market.cairo`, `obstacle.cairo`

- **`constants/`** - Game balance parameters and chain IDs
- **`utils/`** - Shared helpers, VRF integration, SVG renderer utilities
- **`libs/`** - Game logic libraries (`game.cairo`, `settings.cairo`)

### Key Patterns

- Systems use `#[dojo::contract]` with `#[starknet::interface]` traits defined above them
- Models use packed storage for gas optimization
- Tests are in-file using `#[cfg(test)]` modules with `#[test]` functions
- Test helpers for world setup are in `utils/setup_denshokan.cairo`

### Namespace and Profiles

Each environment has a namespace version (e.g., `ls_0_0_9`) configured in `dojo_*.toml`:

- `dojo_dev.toml` - Local development (katana)
- `dojo_sepolia.toml` - Sepolia testnet
- `dojo_slot.toml` - Slot environment
- `dojo_mainnet.toml` - Mainnet

## Version Requirements

- Cairo 2.10.1
- Dojo 1.6.0
- Scarb 2.10.1
- sozo 1.6.2

## Cairo Code Style

- 4-space indentation
- `snake_case` for functions/modules, `UpperCamelCase` for types
- Constants in uppercase with underscores
- Explicit module imports (avoid wildcards)
- Run `scarb fmt` before commits

## Testing

Tests live inside contract modules as `#[test]` functions within `#[cfg(test)] mod tests` blocks. Example pattern:

```cairo
#[cfg(test)]
mod tests {
use super::*;

#[test]
#[available_gas(50000)]
fn test_something() {
// test code
}

#[test]
#[should_panic(expected: ('expected error',))]
fn test_failure_case() {
// test that should panic
}
}
```

Use `starknet::testing` utilities for deterministic contexts.

Copilot AI Jan 7, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file appears to be a complete duplicate of contracts/CLAUDE.md (lines 1-124 are identical). Since other GEMINI.md files in the repository simply contain "@CLAUDE.md" to reference the main context file, this file should follow the same pattern for consistency. The entire content should be replaced with just "@CLAUDE.md".

Copilot uses AI. Check for mistakes.
Comment thread contracts/AGENTS.md
@@ -1,19 +1,124 @@
# Repository Guidelines
# CLAUDE.md

Copilot AI Jan 7, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The file header says "# CLAUDE.md" but this file is named "AGENTS.md". This creates confusion about the file's purpose. Similar to the GEMINI.md files, if this is meant to reference CLAUDE.md, the header should match the actual filename or be removed in favor of just the reference.

Suggested change
# CLAUDE.md
# AGENTS.md

Copilot uses AI. Check for mistakes.
Comment thread contracts/AGENTS.md
Comment on lines +1 to +124
# CLAUDE.md

## Project Structure & Module Organization
Source lives in `src/`. `lib.cairo` wires the modules, while `constants/` stores balance knobs and chain IDs. `models/` defines packed structs and events (for example `models/adventurer/*.cairo`), and `systems/<module>/contracts.cairo` hosts the StarkNet entry points. Shared helpers sit in `utils/`, including the Dojo test scaffolding in `utils/setup_denshokan.cairo`. Deployment and tooling scripts are under `scripts/`, and environment manifests such as `dojo_sepolia.toml` or `manifest_dev.json` describe world configuration. `target/` is generated output; do not edit it manually.
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Build, Test, and Development Commands
Use `scarb build` to compile Sierra and CASM artifacts into `target/dev`. Run `scarb test` for the Cairo unit and integration tests that rely on Dojo’s testing toolkit. `scarb fmt` applies the repository’s formatting profile (`max-line-length = 120`). Deployment helpers include `scripts/deploy_sepolia.sh` or `scripts/deploy_slot.sh`; run them from this directory after exporting the required RPC credentials.
## Project Overview

## Coding Style & Naming Conventions
Follow Cairo 2 defaults: four-space indentation, `snake_case` for functions/modules, and `UpperCamelCase` for types. Constants stay in uppercase with underscores. Prefer explicit module imports over wildcards, and keep public interfaces grouped under `#[starknet::interface]` above their `#[dojo::contract]` modules. Always run `scarb fmt` before pushing to ensure consistent ordering (`sort-module-level-items = true`).
Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.

## Testing Guidelines
Tests live alongside the code inside `contracts.cairo` modules (`#[test]` functions near the bottom). Use `dojo_cairo_test::spawn_test_world` helpers to provision a world and set expectations with `assert` or `#[should_panic(expected = ...)]`. Name tests with the `test_*` pattern and ensure both success paths and guarded failures are covered. Execute `scarb test` locally and include any reliance on `starknet::testing` utilities when seeding deterministic contexts.
## Role & Context

## Commit & Pull Request Guidelines
Match the existing history: concise, present-tense subjects such as `fix client trait calculation`; add context lines if rationale is non-obvious, and append PR numbers in parentheses when applicable. For pull requests, describe the gameplay or contract impact, note required migrations or manifest updates, list manual test commands (`scarb test`, deploy scripts), and link the tracked issue. Screenshots or log excerpts are welcome when behavior changes.
You are a **senior Starknet smart contract engineer** specializing in Cairo development. You have deep expertise in:

## Deployment & Configuration Tips
Keep profile-specific settings in the corresponding `dojo_*.toml` files and update manifests when new systems or models are introduced. Regenerate SVG or other assets via `scripts/generate_svg.sh` whenever constants affecting visuals change. Verify world permissions in tests using the helpers in `utils/setup_denshokan.cairo` before promoting changes to shared environments.
- Cairo language syntax, patterns, and idioms
- Starknet protocol mechanics (storage, events, syscalls, account abstraction)
- Smart contract security (reentrancy, access control, integer overflow, Cairo-specific vulnerabilities)
- DeFi primitives (AMMs, lending, NFT marketplaces, bonding curves)
- Testing methodologies (unit, integration, fuzz, fork testing)
- Gas optimization and storage packing
- Dojo provable game engine

## Development Commands

```bash
# Build contracts (compiles Sierra and CASM to target/dev)
sozo build

# Run all tests
sozo test

# Run a specific test (use -f flag with test name pattern)
sozo test -f test_name

# Format code (max-line-length = 120, sorts module-level items)
scarb fmt

# Build for specific profile (sepolia, slot, mainnet)
sozo build -P sepolia

# Deploy to sepolia
./scripts/deploy_sepolia.sh

# Deploy to slot
./scripts/deploy_slot.sh
```

## Architecture

### Module Structure (`src/lib.cairo`)

- **`systems/`** - Dojo contract entry points with `#[dojo::contract]`:

- `game/contracts.cairo` - Core game loop (explore, attack, flee, equip, buy_items, select_stat_upgrades)
- `adventurer/contracts.cairo` - Character management
- `beast/contracts.cairo` - Enemy encounters
- `loot/contracts.cairo` - Item system
- `settings/contracts.cairo` - Game configuration
- `game_token/contracts.cairo` - Game NFT minting
- `objectives/contracts.cairo` - Quest/objective system
- `renderer/contracts.cairo` - On-chain SVG rendering

- **`models/`** - Packed structs and events:

- `adventurer/` - Stats, equipment, bag, items
- `beast.cairo`, `combat.cairo`, `market.cairo`, `obstacle.cairo`

- **`constants/`** - Game balance parameters and chain IDs
- **`utils/`** - Shared helpers, VRF integration, SVG renderer utilities
- **`libs/`** - Game logic libraries (`game.cairo`, `settings.cairo`)

### Key Patterns

- Systems use `#[dojo::contract]` with `#[starknet::interface]` traits defined above them
- Models use packed storage for gas optimization
- Tests are in-file using `#[cfg(test)]` modules with `#[test]` functions
- Test helpers for world setup are in `utils/setup_denshokan.cairo`

### Namespace and Profiles

Each environment has a namespace version (e.g., `ls_0_0_9`) configured in `dojo_*.toml`:

- `dojo_dev.toml` - Local development (katana)
- `dojo_sepolia.toml` - Sepolia testnet
- `dojo_slot.toml` - Slot environment
- `dojo_mainnet.toml` - Mainnet

## Version Requirements

- Cairo 2.10.1
- Dojo 1.6.0
- Scarb 2.10.1
- sozo 1.6.2

## Cairo Code Style

- 4-space indentation
- `snake_case` for functions/modules, `UpperCamelCase` for types
- Constants in uppercase with underscores
- Explicit module imports (avoid wildcards)
- Run `scarb fmt` before commits

## Testing

Tests live inside contract modules as `#[test]` functions within `#[cfg(test)] mod tests` blocks. Example pattern:

```cairo
#[cfg(test)]
mod tests {
use super::*;

#[test]
#[available_gas(50000)]
fn test_something() {
// test code
}

#[test]
#[should_panic(expected: ('expected error',))]
fn test_failure_case() {
// test that should panic
}
}
```

Use `starknet::testing` utilities for deterministic contexts.

Copilot AI Jan 7, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file duplicates all the content from contracts/CLAUDE.md (lines 1-124). Following the pattern established by client/AGENTS.md and the root AGENTS.md, this file should contain only "@CLAUDE.md" to avoid content duplication and maintenance issues. Having duplicate content in multiple files means updates must be made in multiple places, increasing the risk of inconsistencies.

Copilot uses AI. Check for mistakes.
Comment thread client/CLAUDE.md
@@ -0,0 +1,118 @@
## Role & Context

You are a senior frontend developer specializing in modern web applications with deep expertise in React 18+, Vite 5+, and TypeScript 5+. Your primary focus is building performant, accessible, and maintainable user interfaces on top of decentralize networks like Ethereum and Starknet.

Copilot AI Jan 7, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: "decentralize" should be "decentralized" to properly modify "networks".

Suggested change
You are a senior frontend developer specializing in modern web applications with deep expertise in React 18+, Vite 5+, and TypeScript 5+. Your primary focus is building performant, accessible, and maintainable user interfaces on top of decentralize networks like Ethereum and Starknet.
You are a senior frontend developer specializing in modern web applications with deep expertise in React 18+, Vite 5+, and TypeScript 5+. Your primary focus is building performant, accessible, and maintainable user interfaces on top of decentralized networks like Ethereum and Starknet.

Copilot uses AI. Check for mistakes.
Comment thread CLAUDE.md
Comment on lines +5 to +80
## Fullstack development checklist

- Database schema aligned with API contracts
- Type-safe API implementation with shared types
- Frontend components matching backend capabilities
- Authentication flow spanning all layers
- Consistent error handling throughout stack
- End-to-end testing covering user journeys
- Performance optimization at each layer
- Deployment pipeline for entire feature

## Data flow architecture

- Database design with proper relationships
- API endpoints following RESTful/GraphQL patterns
- Frontend state management synchronized with backend
- Optimistic updates with proper rollback
- Caching strategy across all layers
- Real-time synchronization when needed
- Consistent validation rules throughout
- Type safety from database to UI

## Real-time implementation

- WebSocket server configuration
- Frontend WebSocket client setup
- Event-driven architecture design
- Message queue integration
- Presence system implementation
- Conflict resolution strategies
- Reconnection handling
- Scalable pub/sub patterns

## Testing strategy

- Unit tests for business logic (backend & frontend)
- Integration tests for API endpoints
- Component tests for UI elements
- End-to-end tests for complete features
- Performance tests across stack
- Load testing for scalability
- Security testing throughout
- Cross-browser compatibility

## Architecture decisions

Monorepo vs polyrepo evaluation
Shared code organization
API gateway implementation
BFF pattern when beneficial
Microservices vs monolith
State management selection
Caching layer placement
Build tool optimization

## Performance optimization

- Database query optimization
- API response time improvement
- Frontend bundle size reduction
- Image and asset optimization
- Lazy loading implementation
- Server-side rendering decisions
- CDN strategy planning
- Cache invalidation patterns

## Deployment pipeline

Infrastructure as code setup
CI/CD pipeline configuration
Environment management strategy
Database migration automation
Feature flag implementation
Blue-green deployment setup
Rollback procedures
Monitoring integration

Copilot AI Jan 7, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section appears to be generic fullstack guidance that doesn't apply to this specific project architecture. The project uses Cairo smart contracts (not a traditional backend with database schemas) and a React frontend. Concepts like "Database schema aligned with API contracts", "Database design with proper relationships", "WebSocket server configuration", and "Database query optimization" are not relevant to a blockchain-based application where state is managed on-chain. Consider replacing this with guidance specific to blockchain fullstack development (contract-to-frontend integration, event handling, state synchronization from chain, etc.).

Copilot uses AI. Check for mistakes.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Fix all issues with AI agents
In @CLAUDE.md:
- Line 84: Replace the unhyphenated phrase "onchain" with the hyphenated form
"on-chain" in the sentence that currently reads "Death Mountain is a
token-agnostic, no-code onchain dungeon creator built on Starknet using Cairo
and the Dojo framework." so it becomes "no-code on-chain dungeon creator";
update only that token in the CLAUDE.md content to follow technical writing
conventions for compound adjectives.

In @client/CLAUDE.md:
- Line 7: Replace the nonstandard "onchain" token in the CLAUDE.md description
with the hyphenated form "on-chain" for consistency; specifically update the
sentence containing "token-agnostic onchain dungeon creator" to read
"token-agnostic on-chain dungeon creator" and ensure any other occurrences of
"onchain" in CLAUDE.md are similarly hyphenated to match project and industry
style.

In @contracts/AGENTS.md:
- Line 7: Replace the non-standard "onchain" with the hyphenated form "on-chain"
in the sentence starting "Death Mountain is a token-agnostic, no-code onchain
dungeon creator..." in AGENTS.md; also scan and update any other occurrences
(e.g., the phrasing referenced in CLAUDE.md) so all docs consistently use
"on-chain".

In @contracts/GEMINI.md:
- Line 7: Update the phrasing in the GEMINI.md description: replace the
standalone token "onchain" with the hyphenated form "on-chain" in the sentence
that begins "Death Mountain is a token-agnostic, no-code onchain dungeon
creator..." so it reads "no-code on-chain dungeon creator"; ensure only the
spelling is changed and surrounding punctuation/capitalization remains
unchanged.
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e7758e5 and fabac25.

📒 Files selected for processing (9)
  • AGENTS.md
  • CLAUDE.md
  • GEMINI.md
  • client/AGENTS.md
  • client/CLAUDE.md
  • client/GEMINI.md
  • contracts/AGENTS.md
  • contracts/CLAUDE.md
  • contracts/GEMINI.md
🧰 Additional context used
🧠 Learnings (20)
📓 Common learnings
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/src/systems/**/contracts.cairo : Expose StarkNet entry points in systems/<module>/contracts.cairo
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/src/systems/**/contracts.cairo : Place #[starknet::interface] above the corresponding #[dojo::contract] module and group public interfaces there

Applied to files:

  • CLAUDE.md
  • contracts/GEMINI.md
  • contracts/CLAUDE.md
  • contracts/AGENTS.md
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/src/systems/**/contracts.cairo : Use dojo_cairo_test::spawn_test_world and starknet::testing utilities for deterministic contexts

Applied to files:

  • CLAUDE.md
  • contracts/GEMINI.md
  • contracts/CLAUDE.md
  • contracts/AGENTS.md
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/src/systems/**/contracts.cairo : Expose StarkNet entry points in systems/<module>/contracts.cairo

Applied to files:

  • CLAUDE.md
  • contracts/GEMINI.md
  • contracts/CLAUDE.md
  • contracts/AGENTS.md
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/src/models/**/*.cairo : Define packed structs and events under src/models/ (e.g., models/adventurer/*.cairo)

Applied to files:

  • CLAUDE.md
  • contracts/GEMINI.md
  • contracts/CLAUDE.md
  • contracts/AGENTS.md
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/{src,utils}/**/*.cairo : Run scarb fmt before pushing (max-line-length = 120; sort-module-level-items = true)

Applied to files:

  • CLAUDE.md
  • contracts/GEMINI.md
  • contracts/CLAUDE.md
  • contracts/AGENTS.md
📚 Learning: 2025-12-17T13:20:17.126Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-17T13:20:17.126Z
Learning: Applies to client/.env : Configure environment variables for VITE_PUBLIC_NODE_URL, VITE_PUBLIC_TORII, and contract addresses (ETH, LORDS tokens, game contracts)

Applied to files:

  • CLAUDE.md
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/utils/setup_denshokan.cairo : Keep and update Dojo test scaffolding in utils/setup_denshokan.cairo

Applied to files:

  • CLAUDE.md
  • contracts/CLAUDE.md
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/src/systems/**/contracts.cairo : Co-locate tests inside contracts.cairo with #[test] functions near the bottom

Applied to files:

  • CLAUDE.md
  • contracts/GEMINI.md
  • contracts/CLAUDE.md
  • contracts/AGENTS.md
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/{src,utils}/**/*.cairo : Follow Cairo 2 defaults: 4-space indentation; snake_case for functions/modules; UpperCamelCase for types; CONSTANT_CASE for constants

Applied to files:

  • CLAUDE.md
  • contracts/CLAUDE.md
  • contracts/AGENTS.md
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: For PRs, describe gameplay/contract impact, migrations/manifest updates, manual test commands, and link the issue; include screenshots/logs when behavior changes

Applied to files:

  • CLAUDE.md
  • contracts/AGENTS.md
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/src/systems/**/contracts.cairo : Name tests with the test_* pattern and cover both success paths and guarded failures

Applied to files:

  • contracts/GEMINI.md
  • contracts/CLAUDE.md
  • contracts/AGENTS.md
📚 Learning: 2025-12-17T13:20:17.126Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-17T13:20:17.126Z
Learning: React + TypeScript application using Vite as build tool for frontend development

Applied to files:

  • client/CLAUDE.md
📚 Learning: 2025-12-17T13:20:17.126Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-17T13:20:17.126Z
Learning: Death Mountain is a blockchain-based adventure RPG game built on StarkNet using the Dojo engine featuring adventurers battling beasts, collecting loot, and progressing through challenges

Applied to files:

  • client/CLAUDE.md
  • contracts/CLAUDE.md
📚 Learning: 2025-12-17T13:20:17.126Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-17T13:20:17.126Z
Learning: Applies to client/src/**/*.tsx : Use Material-UI components and maintain consistent styling

Applied to files:

  • client/CLAUDE.md
📚 Learning: 2025-12-17T13:20:17.126Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-17T13:20:17.126Z
Learning: Applies to client/src/stores/**/*.ts : Use Zustand for global state management

Applied to files:

  • client/CLAUDE.md
📚 Learning: 2025-12-17T13:20:17.126Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-17T13:20:17.126Z
Learning: Applies to contracts/src/**/*.cairo : Use Cairo 2.10.1 syntax for smart contracts

Applied to files:

  • contracts/CLAUDE.md
  • contracts/AGENTS.md
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/{src,utils}/**/*.cairo : Prefer explicit module imports over wildcard imports

Applied to files:

  • contracts/CLAUDE.md
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/utils/**/*.cairo : Place shared helpers in utils/ (including utils/setup_denshokan.cairo)

Applied to files:

  • contracts/CLAUDE.md
📚 Learning: 2025-09-27T04:41:07.357Z
Learnt from: CR
Repo: Provable-Games/death-mountain PR: 0
File: contracts/AGENTS.md:0-0
Timestamp: 2025-09-27T04:41:07.357Z
Learning: Applies to contracts/src/systems/**/contracts.cairo : Verify world permissions in tests using utils/setup_denshokan.cairo helpers

Applied to files:

  • contracts/CLAUDE.md
🪛 LanguageTool
CLAUDE.md

[grammar] ~84-~84: Ensure spelling is correct
Context: ...h Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet using...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

contracts/GEMINI.md

[grammar] ~7-~7: Ensure spelling is correct
Context: ...h Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

client/CLAUDE.md

[grammar] ~7-~7: Ensure spelling is correct
Context: ...nd for Death Mountain, a token-agnostic onchain dungeon creator on Starknet. The client...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

contracts/CLAUDE.md

[grammar] ~15-~15: Ensure spelling is correct
Context: ...h Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

contracts/AGENTS.md

[grammar] ~7-~7: Ensure spelling is correct
Context: ...h Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: sozo-test
  • GitHub Check: Agent
  • GitHub Check: claude-review
🔇 Additional comments (13)
CLAUDE.md (1)

1-184: Comprehensive architecture and development guide—well structured and technically sound.

The CLAUDE.md document provides excellent end-to-end guidance spanning fullstack development patterns, Death Mountain architecture, Cairo/Dojo best practices, and deployment strategies. Content aligns with established project patterns and learnings (e.g., Dojo module structure, Cairo code style, testing with dojo_cairo_test::spawn_test_world). The document is well-organized, actionable, and maintains appropriate technical depth throughout.

client/AGENTS.md (1)

1-1: Agent routing file correctly references root CLAUDE.md.

The minimal reference delegation allows frontend-specific agent contexts to inherit root fullstack and project guidance while maintaining a single source of truth for architectural patterns and development standards.

GEMINI.md (1)

1-1: Agent routing file correctly references root CLAUDE.md.

Consistent with the client/AGENTS.md delegation pattern, this minimal reference enables the Gemini agent to inherit fullstack and project-specific guidance from the root CLAUDE.md while maintaining a single source of truth.

contracts/GEMINI.md (4)

21-44: No changes needed — all referenced scripts and paths are correct.

The deployment scripts (deploy_sepolia.sh, deploy_slot.sh) exist at contracts/scripts/ as documented, alongside configuration files for the deployment targets (dojo_sepolia.toml, dojo_slot.toml, etc.). The target/dev output path is a standard build artifact location and appropriate for the documentation.


46-75: Module structure and patterns match the actual codebase. All documented systems (game, adventurer, beast, loot, settings, game_token, objectives, renderer) have corresponding contracts.cairo files, models are properly organized in adventurer/ subdirectories and individual .cairo files, and lib.cairo exists at the specified location. The architecture description accurately reflects the current codebase structure.


75-75: Update path reference to correct location.

The file exists and contains test setup helpers, but the path reference is incomplete. Update line 75 from utils/setup_denshokan.cairo to src/utils/setup_denshokan.cairo.

Likely an incorrect or invalid review comment.


86-91: Verify version requirements against current project configuration.

The specified versions (Cairo 2.10.1, Dojo 1.6.0, Scarb 2.10.1, sozo 1.6.2) appear significantly older than current stable releases as of January 2026 (Cairo ~2.12.0, Dojo 1.17.3, Scarb 2.15.0). However, these may be intentionally pinned for this project's compatibility. Verify against Scarb.toml to confirm whether these versions are outdated documentation or required for the death-mountain project's specific build configuration. Dojo and Scarb versions must be precisely matched per Dojo release notes.

client/GEMINI.md (1)

1-1: No action required—reference syntax is correct.

The @CLAUDE.md reference in client/GEMINI.md correctly resolves to client/CLAUDE.md following a directory-scoped resolution pattern. This is consistent across the repository: root/AGENTS.md and root/GEMINI.md both use @CLAUDE.md to reference root/CLAUDE.md, while client/AGENTS.md and client/GEMINI.md use the same syntax to reference client/CLAUDE.md. Each directory maintains its own contextually appropriate CLAUDE.md file (with different content, as indicated by differing file sizes), and the unqualified @ syntax resolves relative to the containing directory.

AGENTS.md (1)

1-1: The @CLAUDE.md reference syntax is valid and resolves correctly. This custom routing syntax is used consistently across the repository (root, client/, and contracts/ directories) to reference context files for different AI agents. AGENTS.md correctly references @CLAUDE.md.

However, a broader multi-agent routing issue exists: All GEMINI.md files across the repository incorrectly contain @CLAUDE.md instead of @GEMINI.md, and contracts/GEMINI.md duplicates Claude's context instead of Gemini-specific guidance. These files should reference their respective agent contexts.

contracts/CLAUDE.md (1)

1-120: Comprehensive contract development guide with strong alignment to project patterns.

The documentation accurately reflects Cairo 2.10.1 syntax, Dojo 1.6.0 architecture, version requirements, code style conventions, and testing patterns. Architecture sections properly document module structure, key patterns, and namespace configurations consistent with learnings. Development commands and testing examples are well-structured and actionable.

client/CLAUDE.md (1)

1-118: Comprehensive frontend development guide with strong alignment to tech stack and patterns.

The documentation accurately reflects React 18+, Vite 5+, TypeScript 5+, and specifies Zustand, MUI, and Dojo SDK integration patterns. Architecture sections clearly delineate state management, contexts, platform-specific code, and supporting directories. Version requirements and key dependencies are precise. Code style guidance is consistent with React best practices.

contracts/AGENTS.md (2)

1-3: Verify file intent: Reference @CLAUDE.md or standalone documentation?

The PR description states AGENTS.md should "reference CLAUDE.md for multi-agent support," and the test plan requires confirming "@CLAUDE.md references work correctly." However, the provided content duplicates the full contracts/CLAUDE.md rather than referencing it. Additionally, the file title "# CLAUDE.md" is inconsistent with the filename contracts/AGENTS.md.

Clarify the intended design:

  • Should this file contain a reference directive (e.g., @CLAUDE.md) pointing readers to shared guidance?
  • Or is full content duplication intentional for agent-specific routing?

1-124: Content alignment with contracts/CLAUDE.md is strong, pending reference pattern verification.

Assuming the full-content approach is intentional, the documentation accurately mirrors contracts/CLAUDE.md with all Cairo style, version requirements, architecture patterns, and testing guidance properly specified. However, resolution of the file structure and reference syntax concern (above) is needed before approval.

Comment thread CLAUDE.md
## Project Overview

Death Mountain is a blockchain-based adventure RPG game built on StarkNet using the Dojo engine. The game features adventurers battling beasts, collecting loot, and progressing through various challenges.
Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet using Cairo and the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix orthography: "onchain" → "on-chain".

Technical writing conventions prefer hyphenated "on-chain" for consistency with similar compound adjectives.

🔎 Proposed fix
-Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet using Cairo and the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.
+Death Mountain is a token-agnostic, no-code on-chain dungeon creator built on Starknet using Cairo and the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet using Cairo and the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.
Death Mountain is a token-agnostic, no-code on-chain dungeon creator built on Starknet using Cairo and the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.
🧰 Tools
🪛 LanguageTool

[grammar] ~84-~84: Ensure spelling is correct
Context: ...h Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet using...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
In @CLAUDE.md at line 84, Replace the unhyphenated phrase "onchain" with the
hyphenated form "on-chain" in the sentence that currently reads "Death Mountain
is a token-agnostic, no-code onchain dungeon creator built on Starknet using
Cairo and the Dojo framework." so it becomes "no-code on-chain dungeon creator";
update only that token in the CLAUDE.md content to follow technical writing
conventions for compound adjectives.

Comment thread client/CLAUDE.md

## Project Overview

This is the React/TypeScript frontend for Death Mountain, a token-agnostic onchain dungeon creator on Starknet. The client integrates with Dojo smart contracts via the Dojo SDK and provides separate optimized experiences for desktop and mobile.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Standardize hyphenation: on-chain instead of onchain.

Use the standard English hyphenation "on-chain" for consistency with industry terminology and alignment with contracts/CLAUDE.md.

🔎 Proposed fix
-This is the React/TypeScript frontend for Death Mountain, a token-agnostic onchain dungeon creator on Starknet.
+This is the React/TypeScript frontend for Death Mountain, a token-agnostic on-chain dungeon creator on Starknet.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
This is the React/TypeScript frontend for Death Mountain, a token-agnostic onchain dungeon creator on Starknet. The client integrates with Dojo smart contracts via the Dojo SDK and provides separate optimized experiences for desktop and mobile.
This is the React/TypeScript frontend for Death Mountain, a token-agnostic on-chain dungeon creator on Starknet. The client integrates with Dojo smart contracts via the Dojo SDK and provides separate optimized experiences for desktop and mobile.
🧰 Tools
🪛 LanguageTool

[grammar] ~7-~7: Ensure spelling is correct
Context: ...nd for Death Mountain, a token-agnostic onchain dungeon creator on Starknet. The client...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
In @client/CLAUDE.md at line 7, Replace the nonstandard "onchain" token in the
CLAUDE.md description with the hyphenated form "on-chain" for consistency;
specifically update the sentence containing "token-agnostic onchain dungeon
creator" to read "token-agnostic on-chain dungeon creator" and ensure any other
occurrences of "onchain" in CLAUDE.md are similarly hyphenated to match project
and industry style.

Comment thread contracts/AGENTS.md

## Coding Style & Naming Conventions
Follow Cairo 2 defaults: four-space indentation, `snake_case` for functions/modules, and `UpperCamelCase` for types. Constants stay in uppercase with underscores. Prefer explicit module imports over wildcards, and keep public interfaces grouped under `#[starknet::interface]` above their `#[dojo::contract]` modules. Always run `scarb fmt` before pushing to ensure consistent ordering (`sort-module-level-items = true`).
Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Standardize hyphenation: on-chain instead of onchain.

Use the standard English hyphenation "on-chain" for consistency with industry terminology and alignment with contracts/CLAUDE.md.

🔎 Proposed fix
-Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework.
+Death Mountain is a token-agnostic, no-code on-chain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 LanguageTool

[grammar] ~7-~7: Ensure spelling is correct
Context: ...h Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
In @contracts/AGENTS.md at line 7, Replace the non-standard "onchain" with the
hyphenated form "on-chain" in the sentence starting "Death Mountain is a
token-agnostic, no-code onchain dungeon creator..." in AGENTS.md; also scan and
update any other occurrences (e.g., the phrasing referenced in CLAUDE.md) so all
docs consistently use "on-chain".

Comment thread contracts/CLAUDE.md

## Project Overview

Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Standardize hyphenation: on-chain instead of onchain.

Use the standard English hyphenation "on-chain" for consistency with industry terminology.

🔎 Proposed fix
-Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet.
+Death Mountain is a token-agnostic, no-code on-chain dungeon creator built on Starknet.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.
Death Mountain is a token-agnostic, no-code on-chain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.
🧰 Tools
🪛 LanguageTool

[grammar] ~15-~15: Ensure spelling is correct
Context: ...h Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

Comment thread contracts/GEMINI.md

## Project Overview

Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix minor spelling: "onchain" → "on-chain".

Per modern conventions, this should use the hyphenated form.

🔎 Proposed fix
- Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.
+ Death Mountain is a token-agnostic, no-code on-chain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Death Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.
Death Mountain is a token-agnostic, no-code on-chain dungeon creator built on Starknet. The contracts are written in Cairo using the Dojo framework. It features a complete RPG system with adventurers, beasts, items, obstacles, and a market system.
🧰 Tools
🪛 LanguageTool

[grammar] ~7-~7: Ensure spelling is correct
Context: ...h Mountain is a token-agnostic, no-code onchain dungeon creator built on Starknet. The ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
In @contracts/GEMINI.md at line 7, Update the phrasing in the GEMINI.md
description: replace the standalone token "onchain" with the hyphenated form
"on-chain" in the sentence that begins "Death Mountain is a token-agnostic,
no-code onchain dungeon creator..." so it reads "no-code on-chain dungeon
creator"; ensure only the spelling is changed and surrounding
punctuation/capitalization remains unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants