- ai-service/convert.py: converts Office/PDF files to markdown with frontmatter - database/seeders/data/: folder structure for themas, projects, documents, etc. - database/seeders/data/raw/: drop zone for Office/PDF files to convert - wiki/: project architecture, concepts, and knowledge graph documentation - Remove unused Laravel example tests Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.9 KiB
2.9 KiB
title, created, updated, status, tags, sources
| title | created | updated | status | tags | sources | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Innovation Lifecycle | 2026-04-08 | 2026-04-08 | evolving |
|
|
Innovation Lifecycle
Every innovation project at the R&D lab follows a 9-phase lifecycle, from initial signal to final evaluation. The platform enforces this via FaseType and ProjectStatus enums with transactional phase transitions.
Phases
signaal → verkenning → concept → experiment → pilot → besluitvorming → overdracht_bouwen → overdracht_beheer → evaluatie
| # | Phase | Dutch | Purpose |
|---|---|---|---|
| 1 | Signal | Signaal | Initial idea or observation captured |
| 2 | Exploration | Verkenning | Research and feasibility assessment |
| 3 | Concept | Concept | Design a proposed solution |
| 4 | Experiment | Experiment | Small-scale test of the concept |
| 5 | Pilot | Pilot | Larger-scale test in production environment |
| 6 | Decision | Besluitvorming | Go/no-go decision by governance |
| 7 | Handover to Build | Overdracht bouwen | Transfer to development/implementation team |
| 8 | Handover to Operations | Overdracht beheer | Transfer to operational team for maintenance |
| 9 | Evaluation | Evaluatie | Post-handover review and lessons learned |
Special Statuses
These are Project-only statuses (not lifecycle phases):
| Status | Purpose |
|---|---|
| Geparkeerd | Temporarily halted — can resume later |
| Gestopt | Permanently stopped — documented why |
| Afgerond | Successfully completed the full lifecycle |
Phase Transition Logic
Phase transitions go through ProjectService::transitionPhase() in a database transaction:
- Close current active phase (set status →
afgerond, seteinddatum) - Create new phase record (via
FaseType::tryFrom()mapping) - Update project status
- Write audit log entry with
fromandtostates
Key constraint: FaseType::tryFrom($newStatus->value) — the first 9 ProjectStatus values map 1:1 to FaseType. Special statuses (geparkeerd, gestopt, afgerond) do not create new Fase records.
Park and Stop
- Park (
ProjectService::park()): closes active phase with reason inopmerkingen, sets status togeparkeerd - Stop (
ProjectService::stop()): same mechanics, sets status togestopt - Both log the transition reason in the audit trail
Audit Trail
Every phase transition, park, or stop creates an AuditLog record:
AuditLog::create([
'user_id' => Auth::id(),
'action' => "project.phase_transition",
'entity_type' => 'project',
'entity_id' => $project->id,
'payload' => ['from' => 'signaal', 'to' => 'verkenning'],
]);
Metro Map Representation
- Level 1: Project status shown as station dot color (green=completed, cyan=active, yellow=parked, red=stopped)
- Level 2: Each lifecycle phase is a station on the project's "lifecycle" line, with active phase highlighted