Thanks for your interest in helping make code iron-clad.
GOVERNANCE.md is the canonical guide for how contributions are reviewed, what's in-scope, and what gets rejected. This file is the fast path — read it first, then go to GOVERNANCE.md for the details that govern merge decisions.
- Read
GOVERNANCE.md§4 (Contributor Policy). Sections 4.1 (welcome contributions), 4.2 (out-of-scope), and 4.3 (PR contract) are non-negotiable. - Pick an open issue — preferably one tagged
good-first-issue. If you have a fresh idea, open an issue first to confirm scope before writing code. - Branch off
develop, notmain. Naming convention:feature/<short-slug>orfix/<short-slug>. - Run the four-check loop locally before pushing:
When you change a stage, a detector, or the conformance contract, also run
npm test npm run typecheck npm run lint node bin/clad.mjs check # 15-stage gate, green on a clean treenpm run conformanceto re-verify the 26 fixtures. The runner is a contributor self-audit tool — it depends on dev-only toolchain binaries (tsc/eslint/madge/secretlint/vitest), so it works after a contributor install (npm install), not after the end-user install (npm install -g cladding). - Add a CHANGELOG entry under the next-release heading, in the right Keep a Changelog section (
Added/Changed/Deprecated/Removed/Fixed/Security). - Open the PR against
develop. Releases use adevelop → mainmerge-commit PR followed by a mandatorymain → developback-merge; seeGOVERNANCE.md§3.
- Bug fixes with a reproducer test.
- New conformance fixtures (especially fail-cases that catch drift the current suite misses).
- New language entries in
src/stages/toolchain/detect.ts. - Documentation clarity passes — typos, broken links, confusing examples.
- README translations.
For larger ideas (new detector, new stage, new agent persona, breaking change), open an issue first — GOVERNANCE.md §2 explains the versioning bump that's involved.
Do not open a public issue for a security report. See SECURITY.md for the private reporting channel.
This project follows the Contributor Covenant v2.1. Be kind, be specific, assume good faith.