Project
Contributing & project
This page is deliberately short: the canonical project documents live in the repository, next to the code they govern, and this site links to them rather than duplicating them. (They are repo files, not site pages — open them in your checkout or on the repo host.)
| Document | Path in the repo | What it covers |
|---|---|---|
| Contributing guide | CONTRIBUTING.md |
Development setup, repository conventions (tests in __tests__/, zod at every boundary, no credentials anywhere, the eval gate), commit style, and the pre-PR verification checklist |
| Security policy | SECURITY.md |
How to report a vulnerability, scope, supported versions |
| Changelog | CHANGELOG.md |
Keep-a-Changelog format, one entry per release |
| License | LICENSE |
Proprietary — exclusive to First Abu Dhabi Bank PJSC, AI Innovation Hub |
Releases and versioning
Argus follows semantic versioning (pre-1.0: interfaces and schemas may
still change between minor versions). A release is one immutable container
image carrying two tags — the semver and the short git sha — so a
deployment is pinned by release while incidents are traced by exact commit.
Never deploy :latest.
Cutting a release is automated — the version and changelog entry are derived from the conventional-commit history:
- Preview —
npm run release:dryshows the version bump and changelog entry without touching anything. - Release —
npm run releasebumps + writes the changelog + commits + tags; a pre-gate refuses if typecheck, tests, or evals are red. - Push —
git push --follow-tags; the tag triggers the image build with both tags baked.
Roll back by redeploying the previous image tag — never by editing an applied DB migration, which would diverge from the checksummed migration history. Add a new forward migration instead.
Filing issues
Bug reports and feature requests go to the project's work items board:
dev.azure.com/FABAIInnovationHUB/AI Commons → Boards.
For anything security-sensitive, follow SECURITY.md instead of opening a
public work item.
The quality gate
No model, prompt, or rules change ships without a recorded eval run — see
Evals & quality — and every PR runs the same gates CI runs:
npx tsc -b --force, npx vitest run, npm run evals, and
npm run docs:build (CONTRIBUTING.md has the full checklist).
