Contributing to AI Software Factory
Thank you for contributing! This project is built (in large part) by AI coding
agents working through docs/tasks/ — human contributors follow the same rules.
Ground Rules
- Read
AGENTS.mdfirst — it applies to every contributor, human or AI. - Never implement features outside the approved specification
(
PRODUCT-SPEC.md,docs/tasks/). - Work phase by phase per
ROADMAP.md. Do not jump between unrelated features. - Every PR must pass CI: install → lint → typecheck → unit → integration → build → security scan → E2E.
Development Setup
# Prerequisites: Node >= 20, pnpm >= 9, Docker
git clone <repo> && cd ai-software-factory
cp .env.example .env
pnpm install
pnpm docker:up # postgres, redis, minio, opensearch
pnpm db:migrate && pnpm db:seed
pnpm dev
- Web app: http://localhost:3000
- API: http://localhost:4000 (health:
/health) - Realtime: ws://localhost:4001
- MinIO console: http://localhost:9001
- OpenSearch: http://localhost:9200
Branching & Commits
Branches: main (releasable), develop (integration), feature/*, fix/*,
refactor/*.
Conventional Commits:
feat(editor): add draggable blocks
feat(database): add board view
fix(auth): refresh token rotation
test(database): add filter tests
docs(api): document page endpoints
Definition of Done
A feature is NOT complete until every item in the Definition of Done checklist
in AGENTS.md is checked — including tests, docs, accessibility,
mobile behavior, logging, and audit events.
Code Style
- TypeScript strict mode everywhere; no
anywithout justification. - Domain logic is independent of UI and of PostgreSQL (repository pattern).
- Shared types/DTOs live in
packages/shared(Zod schemas). - Prefer deterministic behavior; document architectural decisions in
docs/architecture/(or as ADRs). - Never introduce a dependency without justifying it in the PR description.
PR Checklist
- [ ] Scope matches an approved task in
docs/tasks/ - [ ] Tests added (unit + integration; E2E for user-facing flows)
- [ ]
pnpm lint && pnpm typecheck && pnpm testall green locally - [ ] Migrations added if the schema changed
- [ ] Docs updated (
docs/, README, API docs) - [ ] Security-sensitive changes include audit events
- [ ] No secrets in code, no new unreviewed dependencies