Contributing
Screeps Lab is currently in architectural scaffolding. Keep changes small, documented, and honest about what is implemented.
Setup Expectations
Use a normal local checkout of this repository. Keep subject repositories external, commonly as siblings:
~/projects/
├── screeps/
└── screeps-lab/
Do not commit local subject checkouts, generated server state, secrets, or run artifacts.
Development
- Use branch-based development.
- Keep each change focused.
- Update documentation when changing architecture, boundaries, or planned behavior.
- Record consequential architecture choices in DECISIONS.md.
- Prefer explicit adapters and contracts over assumptions about one subject bot.
Testing and Validation
Run available validation before committing. If no validation command exists yet, state that clearly in the change notes.
Package-level unit tests should live near their packages. Repository-wide
integration and end-to-end tests belong under tests/.
Generated Files and Secrets
Generated reports, logs, screenshots, replays, private-server databases, temporary clones, local subjects, and context exports are ignored by default.
Never commit credentials or machine-specific .env files. Use .env.example
for safe placeholder names only.
Commits
Use clear commit messages that describe the change. Do not claim planned features are complete unless they are implemented and validated.