- Use
developfor normal feature, fix, and documentation work. - Only target
mainwhen a maintainer explicitly asks for a release or hotfix PR.
- Node.js 22+
- Corepack or pnpm
10.14.0 - Git
- PostgreSQL, Redis, and MinIO if you want to run the full stack locally
git clone https://github.com/iflabx/agentifui.git
cd agentifui
corepack enable
corepack prepare pnpm@10.14.0 --activate
pnpm install --frozen-lockfilecp .env.example .env.dev
# edit .env.dev for your local PostgreSQL / Redis / MinIO / auth settingsgit switch develop
git pull
git switch -c feat/your-changepnpm dev:all # Next.js + Fastify together
pnpm dev:web # Next.js only
pnpm dev:api # Fastify only
pnpm type-check
pnpm lint
pnpm test
pnpm build:all
pnpm gate:quality:verifyIf you change translations, also run:
pnpm i18n:checkRun the relevant checks locally:
pnpm format:check
pnpm gate:quality:verify
pnpm test
pnpm build:allNotes:
pnpm buildonly covers the Next.js app. Usepnpm build:allbefore a PR so shared and Fastify packages are checked too.- If you only run targeted tests, explain that in the PR description.
- If you change runtime behavior, public routes, configuration, or deployment flow, update
README.mdand the relevant files underdocs/in the same PR.
- Keep each PR focused on one change set.
- Link the issue or explain why the PR is needed.
- Call out database, environment-variable, deployment, or CI impact.
- Include screenshots for visible UI changes.
- Prefer follow-up PRs over mixing refactors and behavior changes into one large submission.
Use Conventional Commits where practical:
feat:fix:docs:refactor:test:chore:
- Use
pnpm, notnpmoryarn. - Keep TypeScript and ESLint warnings under control; do not bypass quality gates without a clear reason.
- Update
.env*.examplewhen adding or renaming public runtime configuration. - Do not leave dead route paths or outdated docs behind after a cutover.
- Start with
README.mdanddocs/. - Use GitHub Issues for bugs and feature requests.
- External contributors must complete the CLA flow if the repository requests it.