Contributing
Thank you for your interest in contributing to acme-vue-encore. Because this repository serves as a strict reference architecture, contributions must adhere to specific governance rules.
The Golden Rule: Specs First
This repository uses a "born-with" spec spine. Every substantive change to the architecture, security model, or core features must begin as a specification.
If you submit a pull request that modifies code governed by a spec without updating the corresponding spec, the CI pipeline's coupling gate will reject the PR.
How to Propose a Change
- Open an Issue: Discuss the proposed change before writing code.
- Draft a Spec: If the change is significant, write or update a markdown specification in the
specs/directory. - Compile the Index: Run
npx spec-spine compileto updatespecs/spec-spine-index.json. - Implement the Code: Write the code that implements the specification.
- Run Local Validation: Ensure all tests and linting pass (
npm run test:unit,npm testinapps/api). - Submit a PR: Submit your pull request, ensuring the spec changes and code changes are in the same diff.
Code Style
- Frontend: Vue 3 Composition API (
<script setup>), TypeScript, PrimeVue. - Backend: Encore.ts, strict TypeScript, parameterized queries only.
- Formatting: The project uses Prettier. Run
npm run formatbefore committing.
Pull Request Process
- Ensure your PR targets the
mainbranch. - Ensure the CI pipeline passes (Encore CI and Spec-Spine checks).
- A repository maintainer will review your PR for architectural alignment and security invariants.