Ctrl K
ComunidadGuías…

CONTRIBUTING.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Contributing to Bad Decisions

Small, focused improvements are welcome. Open an issue before a broad feature or
architecture change so nobody independently productionizes the same joke twice.

## Development setup

Bad Decisions requires Python 3.12; the dependency-free Regret client supports
Python 3.10+. Work in the repository virtual environment:

```bash
python3.12 -m venv .venv
.venv/bin/pip install -r requirements-dev.lock
.venv/bin/pip install --no-deps -e .
.venv/bin/python -m pytest
PYTHONPATH=client/src .venv/bin/python -m pytest client/tests
bash -n deploy.sh
bash -n deploy/rollback.sh
```

Build checks:

```bash
.venv/bin/python -m build .
.venv/bin/python -m build client
```

See `AGENTS.md` for invariants around archive validation, atomic imports,
immutable runtime packs, deployment boundaries, release metadata, and tests.

## Scope

- Add a regression test with every bug fix.
- Keep one-shot CLI output clean and machine-friendly.
- Preserve stable JSON errors and strict validation.
- Do not add runtime pack-upload or mutation endpoints.
- Avoid unrelated refactors in focused changes.
- Update relevant docs, manual pages, and `patchnotes.md`.

## Card packs

Pack submissions must include source/provenance, creator attribution, a clear
license identifier and notice, and evidence that redistribution is allowed.
Never submit private message corpora, personal data, or third-party content
whose redistribution terms are unknown. Start with
[`examples/minimal-pack`](examples/minimal-pack/) and read
[`docs/CARDDECK.md`](docs/CARDDECK.md).

## Bugs and ideas

Use the issue templates. Include the version, installation method, platform,
exact command, expected behavior, and sanitized output. Never post bearer
tokens, environment files, room capabilities, or service credentials.

Pull requests should explain the user-visible result, identify security or
licensing implications, and list the checks run.