# Contributing to sourcekeeper_42-contract-lab ## Development Workflow ### Prerequisites - [Foundry](https://book.getfoundry.sh/getting-started/installation) (forge, cast, anvil) - Node.js 18+ (for OpenZeppelin dependencies) - Git ### Setup ```bash git clone cd forge install npm install # if using OpenZeppelin ``` ### Build ```bash forge build ``` ### Test ```bash forge test # run all tests forge test -vvv # verbose output forge test --gas-report # gas report forge coverage # coverage report ``` ### Format ```bash forge fmt ``` ## Branch Naming Use conventional branch names: - `feat/-` — new features - `fix/-` — bug fixes - `chore/-` — maintenance - `docs/` — documentation updates - `test/` — test additions/fixes ## Commit Messages Follow [Conventional Commits](https://www.conventionalcommits.org/): ``` feat: add staking mechanism fix: correct overflow in reward calculation test: add fuzz tests for transfer docs: update deployment instructions ``` ## Pull Requests 1. Create a feature branch from `main` 2. Write tests for new functionality 3. Ensure all tests pass: `forge test` 4. Ensure formatting: `forge fmt --check` 5. Open PR with clear description of changes 6. Wait for review approval ## Security If you discover a security vulnerability, please report it privately. Do NOT open a public issue for security bugs. _Generated by Chunk Citizen._