# Contributing

GerberGuard-MBT welcomes focused fixes and improvements within the documented
Gerber 0.1.0 supported subset.

## Scope

- Keep scanner, parser, checker, reporters, CLI parsing, and native IO layered.
- Do not add rendering, PCB DRC, geometry verification, Excellon, GUI, server,
  or full-Gerber-conformance claims.
- Unsupported commands must remain recoverable warnings unless a documented
  structural rule is violated.
- Do not commit private or commercial PCB manufacturing files. Reduce bugs to
  small synthetic fixtures.

## Development workflow

1. Add a regression test for every bug fix.
2. Add or update parser tests for every syntax change.
3. Keep README, supported syntax, and error-code documentation synchronized.
4. Run the complete local gate:

   ```bash
   moon update
   moon fmt --check
   moon check --target all --deny-warn
   moon test --target all --deny-warn
   moon build --release --target native
   moon info
   git diff --exit-code
   ```

Commits should be small, meaningful, and describe the behavior changed. Do not
use empty, duplicate, or mechanically split commits.
