# Contributing to Open Mercato We’re excited to collaborate with folks building on top of Open Mercato. This guide explains how we organize releases, structure branches, and prepare pull requests so changes land smoothly. ## Branch Model - `main` – release-ready code. Every commit is tagged and deployable. Keep PRs targeting `main` limited to hotfixes or release prep approved by maintainers. - `develop` – nightly builds and upcoming release work. Base regular feature work off `develop` so it can soak in automation and shared testing. - Topic branches – create a dedicated branch per change using the format `feat/` (for example `feat/customer-export`). Use other prefixes when appropriate (`fix/`, `chore/`, `docs/`). ## Working on Features - Branch from `develop`, keeping it up to date via `git pull --rebase origin develop`. - Keep commits scoped and descriptive. Squash locally if it clarifies the story. - Follow module conventions from [`AGENTS.md`](AGENTS.md) and prefer the `packages/` workspace for new code. - Document user-facing copy in the locale dictionaries and keep translations in sync. ### Spec Driven Development Before implementing new features or making significant changes, check for an existing spec in `.ai/specs/`: 1. **Check for a spec**: Look for specs named `SPEC-###-YYYY-MM-DD-{title}.md` related to your feature 2. **Create or update**: If no spec exists, create one following the naming convention `SPEC-{next-number}-{YYYY-MM-DD}-{title}.md`; if it does, update it with your changes 3. **Maintain the changelog**: Add a dated entry summarizing your changes 4. **Update the directory**: Add new specs to the table in [`.ai/specs/README.md`](.ai/specs/README.md) This ensures design decisions are documented and the codebase remains well-understood by both humans and AI agents. See [`.ai/specs/README.md`](.ai/specs/README.md) for the full specification directory and [`.ai/specs/AGENTS.md`](.ai/specs/AGENTS.md) for detailed guidelines. ## Pull Requests - Open PRs against `develop` unless you are coordinating a release hotfix. - Describe the user impact, architectural notes, and testing performed (lint, unit, integration, CLI). - Ensure the branch merges cleanly and CI is green before requesting review. - Reference related issues or discussions; add screenshots or recordings for UI tweaks. - Tag maintainers early if you need design or architectural guidance. ## Helpful Resources - πŸ“š Documentation: [docs.openmercato.com](https://docs.openmercato.com/) - 🧠 Agents & architecture guide: [`AGENTS.md`](AGENTS.md) - πŸ’¬ Community discussions and issues: [GitHub issues](https://github.com/open-mercato/open-mercato/issues) Thanks for helping us build a more extensible, AI-ready operations platform!