Student tracks restructured based on document cross-reference analysis: - Track 1 "Gemalen & CRC Keten": Grace→Kevin→Robin→Adriaan (chain) - Track 2 "Condition Monitoring": Kevin→Yamai (fork from Track 1) - Track 3 "Zuivering & Beluchting": Noa‖Elise (parallel, same problem) - Track 4 "EVOLV Reactor Model": Pieter (standalone, no student cross-refs) - Track 5 "IoT & ICT Infra": Bart→Fontys ICT→Fontys TOGAF (chain) Inter-student dependencies added (7 new): - Grace→Kevin, Kevin→Robin, Robin→Adriaan (Track 1 chain) - Kevin→Yamai (Track 2 fork) - Bart→Fontys ICT→Fontys TOGAF (Track 5 chain) CLAUDE.md: Added "Metro Map Data Rules" section documenting: - Thema=line, Project=station, speerpunt=track grouping - Student work rules: cross-references determine track sharing - Identified chains with evidence (reference counts from source docs) - Grid alignment requirements MetroCanvas: Truncate long station labels to prevent overlap (max ~20 chars based on grid spacing, with ellipsis) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5.3 KiB
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/:
- orchestrator — coordination, planning, task distribution
- domain-architect — domain model, functional design, acceptance criteria
- solution-architect — technical architecture, integration, technology
- backend-engineer — Laravel development, APIs, services, tests
- frontend-engineer — Vue 3 components, Inertia pages, UX
- data-modeler — database schema, migrations, pgvector, seeds
- ai-engineer — Python AI service, RAG, LangGraph, prompts
- devops-engineer — Docker, deployment, infrastructure
- security-specialist — RBAC, audit, compliance, review
- 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 overviewpython wiki/tools/query.py entity "project"— everything about an entitypython wiki/tools/query.py test "phpunit"— test resultspython wiki/tools/query.py status "proven"— all pages with statusbash wiki/tools/search.sh "keyword"— full-text searchbash 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:
- Each student gets their own track (metro line) within the Onderzoek thema — unless they build on another student's work
- Students who build on each other share a track — chronological stations on the same line, earlier work first
- 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
- 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)
- Dependencies to 2026 projects are tracked as
Afhankelijkheidrecords (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