# Innovatieplatform — R&D Lab Waterschap Brabantse Delta

## Project
Innovation governance platform supporting the full lifecycle of innovation trajectories — from signal to handover — with built-in AI support.

**Wiki (source of truth):** https://gitea.wbd-rd.nl/vps1_gitea_admin/innovatieplatform/wiki/
**Repo:** https://gitea.wbd-rd.nl/vps1_gitea_admin/innovatieplatform

## Tech Stack
- **Backend:** Laravel (latest LTS) — service-oriented, event-driven, API-first
- **Frontend:** Vue 3 + Composition API + Vite + Inertia.js
- **Database:** PostgreSQL 16+ with pgvector extension
- **AI Service:** Python (FastAPI + LangGraph + RAG pipeline)
- **Queue:** Redis + Laravel Horizon
- **Infrastructure:** Docker Compose (nginx, php-fpm, queue worker, scheduler, ai-service, postgresql, redis)

## Architecture Principles
- Service-oriented: domain logic in service classes, not controllers
- Event-driven: status transitions via events → listeners
- API-first: all functionality available via API
- Audit trail: all mutations logged (append-only)
- AI content labeled: never auto-published without human confirmation

## Build Agents
All agent definitions are in `.claude/agents/`:
1. **orchestrator** — coordination, planning, task distribution
2. **domain-architect** — domain model, functional design, acceptance criteria
3. **solution-architect** — technical architecture, integration, technology
4. **backend-engineer** — Laravel development, APIs, services, tests
5. **frontend-engineer** — Vue 3 components, Inertia pages, UX
6. **data-modeler** — database schema, migrations, pgvector, seeds
7. **ai-engineer** — Python AI service, RAG, LangGraph, prompts
8. **devops-engineer** — Docker, deployment, infrastructure
9. **security-specialist** — RBAC, audit, compliance, review
10. **doc-designer** — documentation structure, handover, knowledge design

## MVP Scope (8 weeks)
- Project CRUD with innovation lifecycle phases
- Commitments & actions with owner/deadline
- Basic documentation (upload, link, search)
- Simple roadmap visualization
- RBAC (admin, project_owner, team_member, viewer)
- Basic AI chat + project summaries + semantic search
- Dashboard with personal overview

## Wiki (Knowledge Base)

The project wiki lives in `wiki/` and follows the wiki-template schema. It is the canonical knowledge base for agents.

**Quick access:**
- `python wiki/tools/query.py health` — project health overview
- `python wiki/tools/query.py entity "project"` — everything about an entity
- `python wiki/tools/query.py test "phpunit"` — test results
- `python wiki/tools/query.py status "proven"` — all pages with status
- `bash wiki/tools/search.sh "keyword"` — full-text search
- `bash wiki/tools/lint.sh` — check wiki health (orphans, missing frontmatter)

**Source of truth hierarchy:** test results > code > knowledge-graph.yaml > wiki pages > chat

**After making significant changes:** update relevant wiki pages, `knowledge-graph.yaml`, and `wiki/log.md`.

## Metro Map Data Rules

The metro map is the primary navigation and knowledge structure. These rules govern how content maps to the visual metro metaphor.

### Thema = Metro Line (Dim 1)
Each thema is a horizontal metro line at the strategy level. Keep themas to major organizational concerns:
- **R&D Planning 2026** themes (Architectuur, Productiewaardig, Lab, Governance)
- **Onderzoek** — all research work (R&D-driven and student)

### Project = Station (Dim 1)
Each project is a station on its thema's line. Stations are zoomable into Dim 2.

### Student Work Rules
Student projects live under the **Onderzoek** thema. Structure:
1. **Each student gets their own track (metro line) within the Onderzoek thema** — unless they build on another student's work
2. **Students who build on each other share a track** — chronological stations on the same line, earlier work first
3. **Cross-references determine track grouping**, not topic similarity. Evidence: explicit mentions of another student's work, reuse of their system/data, or continuation of their project
4. **Identified chains** (from cross-reference analysis of source documents):
   - **Gemalen & CRC track**: Grace van Geel (pump curves) → Kevin Haest (CRC/IOT2050, references Grace) → Robin van Weelie (D.R.A.I.N., references CRC) → Adriaan Sol (pilot 3, references D.R.A.I.N.)
   - **Monitoring branch** (forks from Kevin): Kevin Haest → Yamai van Rooij (CRC 78x, MCSA, references Kevin)
   - **Zuivering track**: Noa de Groot (beluchting) ‖ Elise Nouws (algen, parallel approach to same problem)
   - **EVOLV Reactor**: Pieter van der Wilt (standalone — EVOLV ASM model, no student cross-refs)
   - **IoT & Infra track**: Bart van Gool (IoT-hub) → Fontys ICT (Docker/CI-CD/SOC) → Fontys TOGAF (security)
5. **Dependencies to 2026 projects** are tracked as `Afhankelijkheid` records (type: technisch/data/infrastructuur)

### Kennis Artikelen
Standalone knowledge articles extracted from research. Not tied to a project lifecycle. Used by the AI/search engine for semantic retrieval.

### Grid Alignment
All node positions must be multiples of GRID=50. Server-side: `MapDataService::snapToGrid()`. Client-side: `gridConstants.js`.

## What Requires Human Validation
- Architecture decisions
- Domain model changes
- UX/design choices
- Scope changes
- AI behavior and prompt templates
- Security findings
- Handover process definitions
