Skip to content

Design Status

Tracks what has been specified, partially specified, or not yet designed. Update this file as work progresses.

Legend: ✅ Specified  ·  ⚠️ Partially specified  ·  ❌ Not yet designed  ·  🔵 Built


Summary

Count
✅ Specified 71
⚠️ Partially specified 0
❌ Not yet designed 0
Total 71

Planning

Item Status Location
Architecture design document planning/architecture.md
Project plan (sprints, risks) planning/project-plan.md
Phase 0 walkthrough planning/phase-0.md
Module dependency map Documented in session

Foundation — API

Item Status Location
Local dev environment (Docker, .env) foundation.md Layer 1
Database setup (SQLAlchemy, NullPool, PgBouncer session mode) foundation.md Layer 2
Tenant migration runner + expand/contract discipline foundation.md Layer 2
DB triggers (updated_at, unified audit_log) foundation.md Layer 2
Public schema tables (tenants, identities, memberships, user_project_access, tenant_migrations) foundation.md Layer 3
Tenant schema tables (labels, field_definitions) foundation.md Layer 3
Tenant provisioning (schema + per-tenant Postgres role + DEK) foundation.md Layer 3
Tenant context (contextvar + schema validator + assertion middleware) foundation.md Layer 4
Background job tenant context (run_with_tenant, run_as_system) foundation.md Layer 4
Cognito JWT validation foundation.md Layer 5
Cognito Lambda trigger (tenant_id, identity_id, platform_roles list) foundation.md Layer 5
RBAC roles + permission dependency foundation.md Layer 5
Project access service (core/access.py, Redis-cached) foundation.md Layer 5
Auth session endpoints (exchange, refresh, logout, offline-session) foundation.md Layer 5
Per-tenant field encryption (KMS DEK, version-tagged ciphertext) foundation.md Layer 5a
FastAPI app factory + middleware stack foundation.md Layer 6
Exception hierarchy + error envelope foundation.md Layer 6
Cursor-based pagination utilities foundation.md Layer 6
Structured logging (structlog) + Sentry foundation.md Layer 7
Test harness (conftest, fixtures, factories, assert_tenant) foundation.md Layer 8

Foundation — Frontend

Item Status Location
React project structure + Vite config foundation.md Layer 9
Cognito auth flow (hosted UI, token in memory) foundation.md Layer 9
API client wrapper (headers, error handling) foundation.md Layer 9
PowerSync initialisation foundation.md Layer 9
Base layout (AppShell, Sidebar) foundation.md Layer 9
OpenAPI → TypeScript type generation foundation.md Layer 9

Foundation — Infrastructure

Item Status Location
Terraform modules (VPC, RDS, Redis, ECS, ALB) foundation.md Layer 10
Terraform modules (CloudFront, WAF, Cognito, S3) foundation.md Layer 10
Secrets Manager injection into ECS tasks foundation.md Layer 10
GitHub Actions CI/CD pipeline foundation.md Layer 10
Security group rules foundation.md Layer 10

Cross-cutting Decisions

Item Status Location
Error response format CLAUDE.md
API versioning (header-based) CLAUDE.md
Response envelope + cursor pagination CLAUDE.md
Datetime handling (TIMESTAMPTZ, ISO 8601) CLAUDE.md
Soft delete pattern (explicit filter) CLAUDE.md
File attachment pattern (presigned S3) CLAUDE.md
Tenant labels (field + role + UI strings) CLAUDE.md
Custom fields (field_definitions + JSONB) CLAUDE.md
Seed data conventions for tests foundation.md — Seed data conventions
Notification / email pattern architecture/notifications.md
Right to Work fields (Personnel) modules/personnel.md

UI Layout and Navigation

Item Status Location
App shell (top bar, sidebar, content area) architecture/ui-layout.md
Navigation model (dashboard-first, project expansion) architecture/ui-layout.md
Route structure architecture/ui-layout.md
Settings area structure architecture/ui-layout.md
Role-differentiated visibility architecture/ui-layout.md
Alert surfacing (bell + dashboard strip) architecture/ui-layout.md
Mobile responsive behaviour architecture/ui-layout.md
Component conventions (shadcn/ui patterns) architecture/ui-layout.md

Modules

Item Status Location
Projects & Sites modules/projects-sites.md
Personnel modules/personnel.md
Inductions modules/inductions.md
Attendance / Sign-In modules/personnel.md
Site Diary modules/site-diary.md
Plant & Equipment modules/plant.md
Incidents & Near Misses modules/incidents.md
Documents modules/documents.md
Deliveries modules/deliveries.md
Subcontractors modules/subcontractors.md
Briefings & Toolbox Talks modules/briefings.md
Appointed Roles modules/appointed-roles.md
COSHH Substances modules/coshh.md

Marketing & Docs

Item Status Location
Marketing website (construo.build) marketing/
Developer docs site (Zensical) construo-docs/
CLAUDE.md (Cowork context) CLAUDE.md