Development Workflow
This page describes the expected workflow for product work, CI maintenance, and dependency updates in the PrimeCal monorepo.
Branching
- Start from
main. - Use a task-focused branch such as
codex/<topic>orrelease/<topic>. - Keep unrelated work out of the branch. If the repo is already dirty, scope your changes carefully instead of reverting someone else’s work.
Local verification before PR
Run the full local acceptance stack for application changes:
npm run ci:quality
npm run ci:i18n
npm --prefix backend-nestjs run test:unit
npm --prefix backend-nestjs run test:security
npm --prefix backend-nestjs run test:integration
npm --prefix backend-nestjs run test:e2e
npm --prefix backend-nestjs run test:mcp:integration
npm --prefix backend-nestjs run test:mcp:security
npm --prefix frontend run lint
npm --prefix frontend run test:unit
npm --prefix frontend run test:integration
npm --prefix frontend run build:typecheck
npm run docs:check
npm run docs:portal:build
If you changed manifests or lockfiles, also run:
npm run ci:dependency-audit
Pull request expectations
Every PR should:
- keep tests aligned with the current supported behavior
- update docs when workflow, release, security, or user-visible behavior changes
- avoid duplicate utilities, workflows, or deployment paths
- preserve KISS and DRY over clever abstractions
Dependabot pull requests
Dependabot PRs are not auto-approved by default. Review them like product code:
- Check the dependency scope and changelog.
- Run the relevant local suites for that scope.
- Run the full local stack for major or cross-cutting updates.
- Merge only when the dependency upgrade and the behavior changes are both understood.
If an alert cannot be fixed immediately, document the mitigation in the security docs and PR.
Release model
Current release policy:
- backend deploys automatically from
main - docs portal deploys automatically from
main - frontend app releases are manual
- root-site releases are manual
Do not introduce a second deploy path for the same target unless the old one is retired in the same change.
Hosted CI blocker
As of July 10, 2026, GitHub-hosted Actions are blocked by billing and spending-limit issues. That means:
- local verification is the current acceptance path
- workflow files still need to stay runnable
- after billing is restored, the owner must re-run CI and deploy checks before final sign-off
Safe merge checklist
- Local verification passed for the touched scope.
- Docs match the real workflow and release policy.
- Dependency alerts are fixed or explicitly mitigated.
- No legacy workflow or duplicate release path was left active by accident.