This project uses the specsmith AEE governance model.
AGENTS.md— agent governance rules (read before starting any task)LEDGER.md— append-only change log (record every session)docs/REQUIREMENTS.md— all changes must map to a requirementdocs/TESTS.md— all requirements must have a test
- Read
AGENTS.mdand recentLEDGER.md. - Propose changes (see
docs/governance/SESSION-PROTOCOL.md). - Implement against the relevant slice in
docs/FEATURE-PLAN.md. - Run
pytest tests/andruff check west_env/ west_commands/ tests/. - Run
specsmith auditto confirm 28/28 checks pass. - Record in
LEDGER.md.
- Python 3.10+, no type annotations required but welcomed.
rufffor linting and formatting (line-length = 120,E402ignored).- All subprocess calls must be isolated in testable functions so they can be mocked.
- New modules go in
west_env/; the command entry point iswest_commands/env.py.
pip install -e ".[dev]"
pytest tests/test_config.py tests/test_backend.py tests/test_sync.py tests/test_new_modules.py -v
ruff check west_env/ west_commands/ tests/ --select=E,F,WTests that require Docker are gated with @unittest.skipUnless(docker_available(), ...).
Tests that require hardware (J-Link) are marked TODO (manual) in docs/TESTS.md.
The CI matrix covers Windows, Linux, and macOS × Python 3.10/3.11/3.12. Please verify your change passes on all three platforms before opening a PR. Docker integration tests run on ubuntu-latest only.
Every code change must map to one or more requirements in docs/REQUIREMENTS.md.
If your change introduces a new capability, add the requirement first, then implement.
If it retires a requirement, update docs/REALIGNMENT-REPORT.md and mark it retired.