This repository is implemented and maintained using AI coding agents (Copilot Agent Mode). All agents must follow these instructions.
Before doing any work, read:
PROJECT_PLAN.mdSESSION_PRIMER.mdREADME.md
If any instructions conflict, follow PROJECT_PLAN.md.
meeting-action-extractor is a demo-ready, consulting-grade multi-tenant system that extracts action items from meeting notes into reviewable tasks.
It must support two modes:
- Local Mode: runnable with
docker compose up(no Azure required) - Azure Mode (reference): architecture docs + IaC skeleton using Key Vault + Managed Identity (not required to run locally)
- Never commit secrets (keys, tokens, connection strings, credentials).
- Azure Mode must use Key Vault + Managed Identity.
- Local Mode can use env vars for development only.
- Commit
.env.exampleonly (placeholders).
- Every persisted record includes
tenant_id. - Every DB query filters by
tenant_id. - Every API request must carry tenant context.
- Never allow cross-tenant reads/writes.
Roles:
adminmemberreader
Minimum permissions:
- Reader: read-only
- Member: submit notes + approve/reject/edit tasks
- Admin: manage tenant members + everything Member can do
- Work in small, reviewable changes.
- After each phase, run lint/typecheck/tests and fix until green.
- Avoid “big bang” refactors.
Use pnpm workspaces.
Recommended structure:
/apps
- web (React + TS + Vite)
- api (Node + TS)
- worker (Node + TS)
/packages
- shared (types, auth helpers, logger)
- db (migrations, DB client, repositories)
- extractor (provider interface + rules-based extractor)
/infra
- local (docker-compose, seed)
- azure (IaC skeleton + notes)
/docs
- architecture (local-vs-azure mapping)
- Strict mode everywhere
- Shared types in
/packages/shared
- Structured logging (include
requestId+tenantId) - No sensitive data in logs
pnpm install