Skip to content

Latest commit

 

History

History
101 lines (73 loc) · 2.76 KB

CONTRIBUTING.md

File metadata and controls

101 lines (73 loc) · 2.76 KB

Contributing

Thank you for contributing to SCOPE.

Development setup

git clone https://github.com/fraware/SCOPE.git
cd SCOPE
pip install -e "./scientific-authorization-contracts"
pip install -e ".[dev]"
pytest

SCOPE 2.2 pins scientific-authorization-contracts==2.2.0. Install contracts before SCOPE (CI does the same).

Architecture decisions

Behavioral and authorization semantics are governed by ADRs under docs/adr/. Read ADR-0000 before proposing schema or policy changes. Normative non-claims: ADR-0001.

Pre-push checklist

CI runs on Python 3.10, 3.11, and 3.12 (see .github/workflows/ci.yml). Before you push, run the same pipeline locally:

Linux / macOS / GitHub Actions:

bash scripts/ci.sh

Windows (PowerShell):

.\scripts\ci.ps1

Institutional offline gates (no live Postgres)

For AS-01..AS-08 adversarial suites plus full-stack reconstruction of examples/institutional_pilot_as/:

python scripts/run_institutional_offline_gates.py

Prefer this path for laptop/PR validation. Optional institutional CI with live Postgres remains bash scripts/ci.sh --institutional when SCOPE_LEDGER_DATABASE_URL is set. See docs/runbooks/.

Equivalent manual steps:

python -m pip install --upgrade pip setuptools wheel
pip install -e "./scientific-authorization-contracts"
pip install -e ".[dev]"
ruff check scope tests evals adapters
mypy scope
pytest
python evals/run_review_cases.py --extended
python scripts/verify_pilot_fixtures.py
python scripts/run_institutional_offline_gates.py

Ensure pyproject.toml is saved as UTF-8 without a BOM (a BOM breaks pip install -e).

Optional live ecosystem CI

When sibling repos are available locally, set repository variables or secrets:

  • AKTA_REPO_PATH
  • PF_CORE_REPO_PATH
  • PCS_CORE_REPO_PATH

The optional live-ecosystem CI job runs cross-repo contract validation. Default CI remains green without these paths.

Pull requests

  1. Fork and create a feature branch
  2. Add tests for behavior changes
  3. Run the pre-push checklist above
  4. Update docs (and ADRs when semantics change) if schemas or policy change
  5. Do not claim scientific certification, live IdP, WORM, or remote ledger readiness unless those external gates are actually met

Code style

  • Type hints on public APIs
  • Minimal, focused diffs
  • Match existing module structure
  • Fail closed on missing authority, independence, freeze, or mode evidence

See docs/limitations.md for scope boundaries and GOVERNANCE.md for release policy. Security reports go through SECURITY.md (private disclosure).