{"owner":"aptos-labs","repo":"aptos-core","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"skills":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n**Aptos CLI releases:** See `.cursor/skills/aptos-cli-release/SKILL.md` for version bumps and `crates/aptos/CHANGELOG.md` updates.\n\n## Project Overview\n\nAptos Core is a layer 1 blockchain written primarily in Rust with Move smart contracts. It's a production-grade system with 200+ workspace crates organized into major subsystems: consensus, execution, storage, network, mempool, API, and Move VM.\n\n## Essential Commands\n\n### Build & Check\n```bash\ncargo build -p <package>           # Build a single package\ncargo check -p <package>           # Quick compile check (faster than build)\ncargo build --profile performance  # Optimized build with LTO\n```\n\n### Testing\n```bash\ncargo test -p <package>                    # Test a single package\ncargo test -p <package> -- <test_name>     # Run a specific test\ncargo test -p aptos-framework              # Framework tests\ncargo test -p smoke-test                   # E2E smoke tests\ncargo test -p e2e-move-tests               # Move e2e tests\n```\n\n### Linting & Formatting\n```bash\n./scripts/rust_lint.sh              # Full lint (clippy + fmt + sort + machete)\n./scripts/rust_lint.sh --check      # Check-only mode for CI\ncargo xclippy                       # Just clippy\ncargo +nightly fmt                  # Just formatting\n```\n\n### Move Framework Changes\n\n**RULE: If ANY `.move` file under `aptos-move/framework/` is changed (added, modified, or deleted), you MUST rebuild the cached packages before committing or testing.**\n\n```bash\ncargo build -p aptos-cached-packages   # REQUIRED after any Move framework change\n```\n\nThis regenerates `aptos-move/framework/cached-packages/src/head.mrb`, the binary bundle loaded at genesis/runtime. Skipping this step means node binaries and tests will silently run the OLD framework even though source changed. Always `git status aptos-move/framework/cached-packages/` after rebuilding and commit the regenerated `.mrb`.\n\n### Development Setup\n```bash\n./scripts/dev_setup.sh              # Install all build dependencies\n./scripts/dev_setup.sh -y           # Include Move Prover tools (z3, boogie)\n```\n\n## Architecture Overview\n\n### Core Transaction Flow\n1. **API Layer** (`api/`) - REST endpoints receive transactions\n2. **Mempool** (`mempool/`) - Transaction validation and ordering\n3. **Consensus** (`consensus/`) - Byzantine fault-tolerant ordering\n4. **Execution** (`execution/`) - Orchestrates VM execution\n5. **Block Executor** (`aptos-move/block-executor/`) - Parallel execution via Block-STM\n6. **Move** (`third_party/move/`) - Executes Move bytecode, Compiles Move, Verifies Move\n7. **Storage** (`storage/`) - Persistent state (JellyfishMerkleTree)\n8. **State Sync** (`state-sync/`) - Blockchain synchronization\n\n### Move Framework Stack\n- `aptos-move/framework/move-stdlib/` - Core Move stdlib\n- `aptos-move/framework/aptos-stdlib/` - Aptos-specific stdlib\n- `aptos-move/framework/aptos-framework/` - Core chain modules (coin, account, staking)\n- `aptos-move/framework/aptos-token-objects/` - NFT standards\n\n### Key Crates\n- `aptos-types` - Core type definitions used everywhere\n- `aptos-vm` - VM integration and transaction execution\n- `aptos-crypto` - Cryptographic primitives (security-critical)\n- `aptos-api-types` - API request/response types\n\n## Safety-Critical Code\n\nThese directories require extra care and should not be modified without explicit approval:\n- `consensus/safety-rules/` - Byzantine fault tolerance\n- `crates/aptos-crypto/` - Cryptographic implementations\n- `secure/` - Security-critical modules\n- `keyless/` - Keyless authentication\n\n## Commit Message Format\n\n```\n[area] Brief description (50 char max)\n\nDetailed explanation of why, not what.\n\nAreas: consensus, mempool, network, storage, execution, vm, framework, api, cli, crypto, types\n```\n\n## Common Patterns\n\n### Test Organization\n- Unit tests: `#[cfg(test)] mod tests { ... }` in source files\n- Integration tests: `<crate>/tests/` directories\n- Move tests: `#[test]` attributes in `.move` files\n\n### Error Handling\n- Prefer thiserror / anyhow `Result` for error handling\n- Use `expect()` over `unwrap()` with descriptive messages\n- Use checked arithmetic (`checked_add`, `saturating_sub`, etc.)\n- Infallible locks via `aptos-infallible` crate\n\n### Pattern Matching\n- Always use exhaustive `match` — never use a wildcard `_` arm to silence new enum variants\n\n### Conditional Test Code\n```rust\n#[cfg(any(test, feature = \"fuzzing\"))]\nfn test_helper() { ... }\n```\n\n## Move Coding Conventions\n\n- Struct names: CamlCase (`OrderedMap`)\n- Module names: snake_case (`ordered_map`)\n- Function names: snake_case (`register_currency`)\n- Constants: UPPER_SNAKE_CASE (`TREASURY_ADDRESS`)\n- Import types at top-level, use functions qualified by module\n"},"files":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n**Aptos CLI releases:** See `.cursor/skills/aptos-cli-release/SKILL.md` for version bumps and `crates/aptos/CHANGELOG.md` updates.\n\n## Project Overview\n\nAptos Core is a layer 1 blockchain written primarily in Rust with Move smart contracts. It's a production-grade system with 200+ workspace crates organized into major subsystems: consensus, execution, storage, network, mempool, API, and Move VM.\n\n## Essential Commands\n\n### Build & Check\n```bash\ncargo build -p <package>           # Build a single package\ncargo check -p <package>           # Quick compile check (faster than build)\ncargo build --profile performance  # Optimized build with LTO\n```\n\n### Testing\n```bash\ncargo test -p <package>                    # Test a single package\ncargo test -p <package> -- <test_name>     # Run a specific test\ncargo test -p aptos-framework              # Framework tests\ncargo test -p smoke-test                   # E2E smoke tests\ncargo test -p e2e-move-tests               # Move e2e tests\n```\n\n### Linting & Formatting\n```bash\n./scripts/rust_lint.sh              # Full lint (clippy + fmt + sort + machete)\n./scripts/rust_lint.sh --check      # Check-only mode for CI\ncargo xclippy                       # Just clippy\ncargo +nightly fmt                  # Just formatting\n```\n\n### Move Framework Changes\n\n**RULE: If ANY `.move` file under `aptos-move/framework/` is changed (added, modified, or deleted), you MUST rebuild the cached packages before committing or testing.**\n\n```bash\ncargo build -p aptos-cached-packages   # REQUIRED after any Move framework change\n```\n\nThis regenerates `aptos-move/framework/cached-packages/src/head.mrb`, the binary bundle loaded at genesis/runtime. Skipping this step means node binaries and tests will silently run the OLD framework even though source changed. Always `git status aptos-move/framework/cached-packages/` after rebuilding and commit the regenerated `.mrb`.\n\n### Development Setup\n```bash\n./scripts/dev_setup.sh              # Install all build dependencies\n./scripts/dev_setup.sh -y           # Include Move Prover tools (z3, boogie)\n```\n\n## Architecture Overview\n\n### Core Transaction Flow\n1. **API Layer** (`api/`) - REST endpoints receive transactions\n2. **Mempool** (`mempool/`) - Transaction validation and ordering\n3. **Consensus** (`consensus/`) - Byzantine fault-tolerant ordering\n4. **Execution** (`execution/`) - Orchestrates VM execution\n5. **Block Executor** (`aptos-move/block-executor/`) - Parallel execution via Block-STM\n6. **Move** (`third_party/move/`) - Executes Move bytecode, Compiles Move, Verifies Move\n7. **Storage** (`storage/`) - Persistent state (JellyfishMerkleTree)\n8. **State Sync** (`state-sync/`) - Blockchain synchronization\n\n### Move Framework Stack\n- `aptos-move/framework/move-stdlib/` - Core Move stdlib\n- `aptos-move/framework/aptos-stdlib/` - Aptos-specific stdlib\n- `aptos-move/framework/aptos-framework/` - Core chain modules (coin, account, staking)\n- `aptos-move/framework/aptos-token-objects/` - NFT standards\n\n### Key Crates\n- `aptos-types` - Core type definitions used everywhere\n- `aptos-vm` - VM integration and transaction execution\n- `aptos-crypto` - Cryptographic primitives (security-critical)\n- `aptos-api-types` - API request/response types\n\n## Safety-Critical Code\n\nThese directories require extra care and should not be modified without explicit approval:\n- `consensus/safety-rules/` - Byzantine fault tolerance\n- `crates/aptos-crypto/` - Cryptographic implementations\n- `secure/` - Security-critical modules\n- `keyless/` - Keyless authentication\n\n## Commit Message Format\n\n```\n[area] Brief description (50 char max)\n\nDetailed explanation of why, not what.\n\nAreas: consensus, mempool, network, storage, execution, vm, framework, api, cli, crypto, types\n```\n\n## Common Patterns\n\n### Test Organization\n- Unit tests: `#[cfg(test)] mod tests { ... }` in source files\n- Integration tests: `<crate>/tests/` directories\n- Move tests: `#[test]` attributes in `.move` files\n\n### Error Handling\n- Prefer thiserror / anyhow `Result` for error handling\n- Use `expect()` over `unwrap()` with descriptive messages\n- Use checked arithmetic (`checked_add`, `saturating_sub`, etc.)\n- Infallible locks via `aptos-infallible` crate\n\n### Pattern Matching\n- Always use exhaustive `match` — never use a wildcard `_` arm to silence new enum variants\n\n### Conditional Test Code\n```rust\n#[cfg(any(test, feature = \"fuzzing\"))]\nfn test_helper() { ... }\n```\n\n## Move Coding Conventions\n\n- Struct names: CamlCase (`OrderedMap`)\n- Module names: snake_case (`ordered_map`)\n- Function names: snake_case (`register_currency`)\n- Constants: UPPER_SNAKE_CASE (`TREASURY_ADDRESS`)\n- Import types at top-level, use functions qualified by module\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n**Aptos CLI releases:** See `.cursor/skills/aptos-cli-release/SKILL.md` for version bumps and `crates/aptos/CHANGELOG.md` updates.\n\n## Project Overview\n\nAptos Core is a layer 1 blockchain written primarily in Rust with Move smart contracts. It's a production-grade system with 200+ workspace crates organized into major subsystems: consensus, execution, storage, network, mempool, API, and Move VM.\n\n## Essential Commands\n\n### Build & Check\n```bash\ncargo build -p <package>           # Build a single package\ncargo check -p <package>           # Quick compile check (faster than build)\ncargo build --profile performance  # Optimized build with LTO\n```\n\n### Testing\n```bash\ncargo test -p <package>                    # Test a single package\ncargo test -p <package> -- <test_name>     # Run a specific test\ncargo test -p aptos-framework              # Framework tests\ncargo test -p smoke-test                   # E2E smoke tests\ncargo test -p e2e-move-tests               # Move e2e tests\n```\n\n### Linting & Formatting\n```bash\n./scripts/rust_lint.sh              # Full lint (clippy + fmt + sort + machete)\n./scripts/rust_lint.sh --check      # Check-only mode for CI\ncargo xclippy                       # Just clippy\ncargo +nightly fmt                  # Just formatting\n```\n\n### Move Framework Changes\n\n**RULE: If ANY `.move` file under `aptos-move/framework/` is changed (added, modified, or deleted), you MUST rebuild the cached packages before committing or testing.**\n\n```bash\ncargo build -p aptos-cached-packages   # REQUIRED after any Move framework change\n```\n\nThis regenerates `aptos-move/framework/cached-packages/src/head.mrb`, the binary bundle loaded at genesis/runtime. Skipping this step means node binaries and tests will silently run the OLD framework even though source changed. Always `git status aptos-move/framework/cached-packages/` after rebuilding and commit the regenerated `.mrb`.\n\n### Development Setup\n```bash\n./scripts/dev_setup.sh              # Install all build dependencies\n./scripts/dev_setup.sh -y           # Include Move Prover tools (z3, boogie)\n```\n\n## Architecture Overview\n\n### Core Transaction Flow\n1. **API Layer** (`api/`) - REST endpoints receive transactions\n2. **Mempool** (`mempool/`) - Transaction validation and ordering\n3. **Consensus** (`consensus/`) - Byzantine fault-tolerant ordering\n4. **Execution** (`execution/`) - Orchestrates VM execution\n5. **Block Executor** (`aptos-move/block-executor/`) - Parallel execution via Block-STM\n6. **Move** (`third_party/move/`) - Executes Move bytecode, Compiles Move, Verifies Move\n7. **Storage** (`storage/`) - Persistent state (JellyfishMerkleTree)\n8. **State Sync** (`state-sync/`) - Blockchain synchronization\n\n### Move Framework Stack\n- `aptos-move/framework/move-stdlib/` - Core Move stdlib\n- `aptos-move/framework/aptos-stdlib/` - Aptos-specific stdlib\n- `aptos-move/framework/aptos-framework/` - Core chain modules (coin, account, staking)\n- `aptos-move/framework/aptos-token-objects/` - NFT standards\n\n### Key Crates\n- `aptos-types` - Core type definitions used everywhere\n- `aptos-vm` - VM integration and transaction execution\n- `aptos-crypto` - Cryptographic primitives (security-critical)\n- `aptos-api-types` - API request/response types\n\n## Safety-Critical Code\n\nThese directories require extra care and should not be modified without explicit approval:\n- `consensus/safety-rules/` - Byzantine fault tolerance\n- `crates/aptos-crypto/` - Cryptographic implementations\n- `secure/` - Security-critical modules\n- `keyless/` - Keyless authentication\n\n## Commit Message Format\n\n```\n[area] Brief description (50 char max)\n\nDetailed explanation of why, not what.\n\nAreas: consensus, mempool, network, storage, execution, vm, framework, api, cli, crypto, types\n```\n\n## Common Patterns\n\n### Test Organization\n- Unit tests: `#[cfg(test)] mod tests { ... }` in source files\n- Integration tests: `<crate>/tests/` directories\n- Move tests: `#[test]` attributes in `.move` files\n\n### Error Handling\n- Prefer thiserror / anyhow `Result` for error handling\n- Use `expect()` over `unwrap()` with descriptive messages\n- Use checked arithmetic (`checked_add`, `saturating_sub`, etc.)\n- Infallible locks via `aptos-infallible` crate\n\n### Pattern Matching\n- Always use exhaustive `match` — never use a wildcard `_` arm to silence new enum variants\n\n### Conditional Test Code\n```rust\n#[cfg(any(test, feature = \"fuzzing\"))]\nfn test_helper() { ... }\n```\n\n## Move Coding Conventions\n\n- Struct names: CamlCase (`OrderedMap`)\n- Module names: snake_case (`ordered_map`)\n- Function names: snake_case (`register_currency`)\n- Constants: UPPER_SNAKE_CASE (`TREASURY_ADDRESS`)\n- Import types at top-level, use functions qualified by module\n","category":"root","tokens":1208}]}