Skip to content

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.