Contributing to Prepcook#
Thanks for helping. Prepcook is small enough that one person reads every pull request, so keep changes focused and say what they are for.
Before you start#
- Open an issue for anything bigger than a bug fix, so the shape can be agreed before the code is written.
- Read docs/developing.md for the architecture, the repository layout and the build and test commands, and AGENTS.md for the coding conventions (the same file is what coding agents read).
- Write the name as Prepcook in prose and the UI, and
prepcookin code, binaries (prepcook,prepcook-mcp), packages (@prepcook/*), paths (.prepcook/scripts.toml) and skills (prepcook-*); environment variables take thePREPCOOK_prefix.
Pull requests#
- Branch from
main. - Keep the change to one topic. A refactor and a feature are two pull requests.
- Run
pnpm run format,pnpm run lintandpnpm run checkbefore you push; CI runs the same. - Add or update tests for behaviour you change. Rust tests live beside the code; frontend logic gets a Vitest file in the same directory.
- Write comments that read cold: document the current behaviour and the constraint behind it, never the change that produced it or the ticket it came from.
- Describe in the pull request what changed, why, and how you verified it.
Before a release, run docs/manual-testing.md: a cold start and every integration, by hand, on a real machine.
Adding a provider or a coding agent#
Every integration area (ticketing, incidents, notifications, evidence, reproduction) and the coding agents are extended the same way: a file, a few enum arms and a descriptor, with Settings and the configuration reference generated from it. docs/developing.md walks through each.
Playbooks and skills#
The stage playbooks and the toolkit skills generated from them are part of the product: a change to a playbook's text needs the same care as a code change, so say which stage it affects and what you observed before and after. docs/developing.md covers where they live and how to regenerate the skills.
License#
By contributing you agree that your contributions are licensed under the Apache License, Version 2.0, the license of this project.