Bug reports, security findings, ideas, code — all of it welcome, and all of it credited.
Contributions are genuinely welcome — bug reports, security findings, fixes, and features. If your contribution ships, you get credited by name in the contributors list and in the changelog entry for the release it lands in. That's a binding commitment, written into §5.6 of the LICENSE, not just a nice intention.
Before you start, please read this whole file. It's short, and the legal part at the end matters.
Dioreo is source-available, not open source. You can read it, study it, audit it, and run it locally by yourself. You cannot deploy it anywhere other people can use it, redistribute it, or build a competing bot from it. Full terms: LICENSE.
This means contributing here is a bit different from contributing to an MIT project: your contribution becomes part of software that only the maintainer operates and distributes. The Contributor Licence Agreement below is what makes that work legally. Please make sure you're comfortable with it.
Open an issue and describe the problem you want solved rather than the implementation you have in mind. The roadmap shows what's already planned — worth a look first, so you don't duplicate something in flight.
Open an issue before writing anything substantial. It saves you from building something that doesn't fit the architecture or is already half-done on a branch.
⚠️ dotenv.config() runs after --env-file and backfills anything you omit. Leaving a key out of .env.dev doesn't unset it — it silently inherits whatever is in .env. To disable something in dev, set it explicitly blank.
Deployment notes and the fuller dev-bot setup: docs/reference/deployment-and-ops.md.
The repo has detailed, path-scoped conventions in .claude/rules/*.md and architectural invariants in CLAUDE.md. The essentials:
Commit messages follow Conventional Commits v1.0.0 — <type>(<scope>): <description>, colon and one space, imperative, lowercase, no trailing period. Only the 11 standard types.
Branch names are <type>/<kebab-description>.
Keep the "why" comments. This codebase explains why code is written a certain way — especially around fixed bugs and Discord platform quirks. If your change makes a comment stale, update it. If you fix a bug or work around a platform limitation, add one in the same style.
New schema fields must be added to the Mongoose schema in models/ in the same change. Mongoose silently drops undeclared fields — they work in memory and vanish on the next fetch. This has caused real bugs more than once.
Test on a dev bot before opening the PR. Boot it, run the affected command, confirm it actually works.
By submitting a contribution, you agree to the terms in §5 of the LICENSE. That section is the operative legal text; this is a plain-English explanation of it, not a replacement.
You give the maintainer a perpetual, worldwide, irrevocable, royalty-free licence to use your contribution — to modify it, ship it, deploy it, commercialise it, and to license or relicense it under any terms, including proprietary ones.
This is necessary because the project is source-available and may change licensing later. Without it, every contributor would effectively hold a veto over the project's future.
That you actually have the right to give this — specifically:
The contribution is your own work, or you have the rights to submit it
Any third-party code in it is clearly identified with its licence when you submit it
It doesn't knowingly infringe anyone's copyright, patent, trademark, or trade secret
If your employer has rights to what you create, you've either got their permission or they've waived those rights — please check this properly if you write code professionally
It contains no malicious code, backdoors, or hidden functionality
No payment, no co-ownership of the project, no approval right over how your contribution is later modified or used, and no ownership stake in Dioreo as a whole.
Include this line in your pull request description:
I have read and agree to the Contributor Licence Agreement in §5 of the LICENSE.
If you'd rather not agree to the CLA, you can still help enormously — file issues, report bugs, report security findings, and suggest ideas. Those don't require it.
Dioreo is an unofficial fan project and is not affiliated with Activision Publishing, Inc., TiMi Studio Group, Tencent, Discord Inc., or with the rights holders of any content the game features under licence.