11# SPDX-License-Identifier: PMPL-1.0-or-later
2- # Mustfile — Physical state contract
2+ # Mustfile — Physical state contract for chapeliser
33# Author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
44
55@abstract:
@@ -30,8 +30,8 @@ These are hard requirements — CI fails if any check fails.
3030- severity: critical
3131
3232### contributing
33- - description: CONTRIBUTING.md must exist (GitHub community health)
34- - run: test -f CONTRIBUTING.md
33+ - description: CONTRIBUTING guide must exist
34+ - run: test -f CONTRIBUTING.md || test -f CONTRIBUTING.adoc
3535- severity: warning
3636
3737### editorconfig
@@ -47,7 +47,7 @@ These are hard requirements — CI fails if any check fails.
4747- severity: warning
4848
4949### no-agpl
50- - description: No AGPL-3.0 references in dotfiles
50+ - description: No AGPL-3.0 references (replaced by PMPL)
5151- run: "! grep -r 'AGPL-3.0' .gitignore .gitattributes .editorconfig 2>/dev/null | head -1 | grep -q ."
5252- severity: critical
5353
@@ -67,3 +67,27 @@ These are hard requirements — CI fails if any check fails.
6767- description: No Admitted in Coq code
6868- run: "! grep -r 'Admitted' --include='*.v' . 2>/dev/null | grep -v node_modules | head -1 | grep -q ."
6969- severity: critical
70+
71+ ## Build Integrity
72+
73+ ### cargo-test-passes
74+ - description: All tests must pass
75+ - run: cargo test --quiet 2>&1 | tail -1 | grep -q 'ok'
76+ - severity: critical
77+
78+ ### cargo-clippy-clean
79+ - description: No clippy warnings
80+ - run: cargo clippy -- -D warnings 2>&1 | grep -qv 'error'
81+ - severity: warning
82+
83+ ## Project-Specific Constraints
84+
85+ ### chapel-codegen-compiles
86+ - description: Generated Chapel code must parse without syntax errors
87+ - run: "! find generated/ -name '*.chpl' -exec grep -l 'FIXME\|PLACEHOLDER' {} + 2>/dev/null | head -1 | grep -q ."
88+ - severity: critical
89+
90+ ### buffer-ffi-only
91+ - description: FFI must use buffer-based approach, never raw pointers across locales
92+ - run: "! grep -r 'unsafe.*pointer\|raw_ptr\|\*mut.*locale' src/ 2>/dev/null | head -1 | grep -q ."
93+ - severity: critical
0 commit comments