Contributing to Overseer Kit
Overseer Kit v1 is deliberately small: a trusted-host local Git/Muse utility for
repository identity, status, and one canonical NEXT handoff. Read README.md,
docs/decisions/V1-SCOPE-RESET.md, and tests/README.md before changing it.
Supported scope
The public commands are status, init, sync, adopt, next, and next-write.
Keep repository/root/UUID binding, canonical docs/NEXT.md, explicit context
checks, stale-state refusal, deterministic source imports, confined atomic writes,
and living-document preservation intact.
The owner's scope correction requires a per-repository choice of Git/GitHub only or MuseHub authority with controlled GitHub mirroring. Preserve standalone Git-only operation without a Muse dependency. R1 local authority/adoption is implemented; mirror repair and combined validation remain pending. Use the validation audit and R1 results as the baseline rather than reactivating the entire legacy CLI.
Former hosted, desktop, governance-sync, freeze-review, publishing, registry, receipt, transaction, and orchestration implementations remain historical source. Do not expose them through the v1 entrypoint or treat their old documentation and tests as current requirements.
Development setup
Use Python 3.11 or newer:
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements-v1-dev.txt
.venv/bin/python -m pytest -q
The default pytest collection is the supported matrix in tests/v1 and
tests/retained. Do not delete or rewrite historical tests to obtain a green run.
Changes to Muse integration also require the real tests/muse matrix with
--muse-python /absolute/muse-venv/bin/python, in addition to the default suite.
The pinned Muse environment is separate and requires Python >=3.14. See
tests/README.md; no skip may conceal an unavailable supported integration check.
Making a change
- Start from current
mainon a feature branch. - Keep the change within bounded-v1 scope.
- Add meaningful supported tests when behavior changes.
- Run the complete supported suite and
git diff --check. - Update
docs/ROADMAP.mdanddocs/OVERSEER-HANDOVER.mdtogether when status changes. Onlydocs/NEXT.md, published throughnext-write, carries an action. - Push the feature branch and open a pull request. Never push directly to
main.
Do not commit checkout-local bindings: .overseer/config.yaml, .overseer/bin/,
.overseer/local/, docs/NEXT.md, or .cursor/. They contain physical paths and are generated for
each initialized checkout. Do not commit secrets, .env*, private keys, consumer
content, or machine-specific run logs.
Pull request checklist
- The supported suite passes with exact counts reported.
- No supported requirement is skipped or marked expected-failure.
- Runtime files,
VERSION, andpyproject.tomlagree when the version changes. - README and CHANGELOG describe the behavior users actually receive.
gitleaksor an equivalent secret scan finds no new secret.- The branch contains no checkout-local paths or bindings.
- No consumer, hook, network operation, release, or deployment occurred without explicit authorization.
Security reports follow SECURITY.md. The MIT license remains in LICENSE.