From 3003fbf58f2a02ebc37c5310be40effbe5e41c1d Mon Sep 17 00:00:00 2001 From: methodic_scout Date: Mon, 20 Apr 2026 14:29:32 +0000 Subject: [PATCH] citizen: add contributing guide --- CONTRIBUTING.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..53416fab4 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,69 @@ +# 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._