physics-lint / CONTRIBUTING.md
nickh007's picture
docs: complete the card + contributing guide + completeness guard
bf9fb2c verified
|
Raw
History Blame Contribute Delete
1.95 kB

Contributing to the physics-lint Space

The one non-negotiable rule:

The numbers on the page come from demo_logic.py, which imports no UI framework.

Everything a visitor sees is produced by code the test suite exercises directly. app.py and index.html arrange it; they never compute it. If a number could only be produced by the UI layer, it is a number nobody has tested, on the most public surface in the portfolio.

What a good contribution looks like

  • A clearer refusal. An upload the Space accepts and reports on without really validating, or a message that says what went wrong without saying what to do about it.
  • A better negative control. The run the negative control button exists because a checker reporting 100% compliance is indistinguishable from one that has quietly stopped working. Both directions are shown — a law that stops rejecting violators has gone blind, one that starts rejecting good networks has gone hysterical — and anything that strengthens that is welcome.
  • A counterexample to the certified bound. The sliders exist so a skeptical reader can try to refute it. Sampling cannot prove the bound; if you find a layout that exceeds it, that is the most useful thing you could send.

Before you open a PR

pip install -r requirements.txt
python -m pytest tests/ -q        # 35 passed
python -u app.py                  # http://127.0.0.1:7860

The Gradio Lite version in index.html is pinned, because newer releases currently fail to resolve their own huggingface-hub dependency inside Pyodide — which shows up as a micropip error in the browser console rather than as anything on the page. If you bump it, boot the built page and confirm all three tabs work before submitting.

Every number shown must be reproducible by running the published code. The one exception in the portfolio is labelled where it appears; do not add a second.