Building with AI¶
AI-assisted contributions are welcome here. The repository is built to be worked on with an assistant: the conventions one needs to get a change right live as skills, so an assistant that reads them writes code that fits.
Where the conventions live¶
Domain knowledge lives in .agents/skills/, one folder per area, each with a plain-Markdown SKILL.md that captures how that part of the codebase works and why. There is a skill for handlers, one for the view layer, one for user-facing text, one for tests, one for these docs, and more.
To feed them to your assistant:
- Claude Code picks them up on its own.
CLAUDE.mdandAGENTS.mdat the repo root wire the skills in, so it loads the right one for the area you are changing. - Any other assistant can be pointed at the
SKILL.mdfor the area being changed. A few to start with:handler-conventionsfor bot logic underapps/bot/mitup_bot/handlers/.viewsfor screens and keyboards underlibs/telegram/mitup_bot/views/.user-facing-textfor message and button copy.test-conventionsfor the test suite.
The skills directory is the full list. It grows over time, so browse it rather than trusting a fixed set of names. These same skills are what the repository's own agents load, which is why they stay current.
You own what you submit¶
You own every line you submit, however it was produced. Review the diff as if you had typed it, run the validation gate, and be ready to explain any change in review. Maintainers close merge requests that read as generated and unreviewed.
There is no disclosure requirement. The bar is ownership, not where the code came from.