CONTRIBUTING.md
Contributing to pudu-lang-validator
Read the vault, the validation design, and the Pudu grammar before changing code. Write and resolve a source file's mirrored wiki page before its implementation.
Branches
mainholds released versions.devintegrates reviewed changes.- Feature work uses
feature/<issue>-<slug>fromdev, then targetsdevin a pull request.
The first local commit establishes the repository before a remote issue tracker exists. Later behavior commits name their issue: feat(rules): add collection filters refs #12.
Code
Package modules live under PuduLangValidator. Keep every source file below 500 lines. Public types and modules use a /** @Namespace.Entity.Role — intent */ anchor; public functions have short /// comments useful in LSP hover. Explain behavior and boundaries in the wiki, not in long source comments.
Checks
pudu check $(rg --files src test tools -g '*.pudu')
pudu fmt --check src test tools
pudu lint src test tools
pudu test test
pudu build src/Main.pudu -o /tmp/pudu-lang-validatorReview success, failure, edge, and output cases for the changed behavior. Check the implementation against its mirror and record the logic change in wiki/CHANGELOG.md.
Changes to predicates also run mutation testing on the files they touch, and no new mutant may survive without a written reason:
pudu run tools/Mutate.pudu --file src/PuduLangValidator/Rules/Text.puduPull requests
Target dev, link the ready issue, report focused and full check results, and obtain a reviewer who did not implement the change. The reviewer checks both public behavior and wiki parity.
