Contributing¶
Contributions are welcome - especially new challenges, scenarios, and documentation improvements.
Before you open a PR¶
- Open an issue with the learning objective and Kubernetes concept you want to teach.
- Install from source and run the game locally.
- Follow the guide that matches your change:
| Guide | Use when |
|---|---|
| Adding a Challenge | New challenge in an existing scenario (Oakwood Meadows or Signal Town) |
| Adding a Scenario | Entirely new story arc with its own namespace and prologue |
Quick reference¶
New challenge folder layout:
scenarios/<scenario>/challenge_<N>/
├── screen.py
├── challenge_text.py
├── validator.py
└── k8s_resources/
Register the challenge in utils/general_utils.py (CHALLENGE_SCENARIO_MAP) and add constants to challenge_files/challenge_constants.py when needed.
See Validation for how PsyQuack checks cluster state.
Code of conduct¶
Be respectful in issues and PRs. The project is a learning experiment - clarity and kindness help everyone.