From 6d2de9b897365b184d67a2740f859fc290b95a81 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Mon, 16 Mar 2026 12:50:53 +0100 Subject: [PATCH] =?UTF-8?q?feat(iace):=20complete=20CE=20risk=20assessment?= =?UTF-8?q?=20=E2=80=94=20LLM=20tech-file=20generation,=20multi-format=20e?= =?UTF-8?q?xport,=20TipTap=20editor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 1: Fix completeness gates G23 (require verified/rejected mitigations) and G09 (audit trail check) Phase 2: LLM-based tech-file section generation with 19 German prompts and RAG enrichment Phase 3: Multi-format document export (PDF/Excel/DOCX/Markdown/JSON) Phase 4: Company profile → IACE data flow with auto component/classification creation Phase 5: TipTap WYSIWYG editor replacing textarea for tech-file sections Phase 6: User journey tests, developer portal API reference, updated documentation Co-Authored-By: Claude Opus 4.6 --- .../sdk/iace/[projectId]/tech-file/page.tsx | 130 +- .../components/sdk/iace/TechFileEditor.tsx | 272 ++++ admin-compliance/package-lock.json | 875 ++++++++++++- admin-compliance/package.json | 8 + ai-compliance-sdk/cmd/server/main.go | 3 +- .../internal/api/handlers/iace_handler.go | 351 +++++- .../internal/iace/completeness.go | 35 +- .../internal/iace/completeness_test.go | 61 +- .../internal/iace/document_export.go | 1101 +++++++++++++++++ .../internal/iace/document_export_test.go | 305 +++++ ai-compliance-sdk/internal/iace/store.go | 15 + .../internal/iace/tech_file_generator.go | 679 ++++++++++ .../internal/iace/tech_file_generator_test.go | 521 ++++++++ .../internal/iace/user_journey_test.go | 487 ++++++++ developer-portal/app/api/iace/page.tsx | 1008 +++++++++++++++ docs-src/services/sdk-modules/iace.md | 138 ++- 16 files changed, 5828 insertions(+), 161 deletions(-) create mode 100644 admin-compliance/components/sdk/iace/TechFileEditor.tsx create mode 100644 ai-compliance-sdk/internal/iace/document_export.go create mode 100644 ai-compliance-sdk/internal/iace/document_export_test.go create mode 100644 ai-compliance-sdk/internal/iace/tech_file_generator.go create mode 100644 ai-compliance-sdk/internal/iace/tech_file_generator_test.go create mode 100644 ai-compliance-sdk/internal/iace/user_journey_test.go create mode 100644 developer-portal/app/api/iace/page.tsx diff --git a/admin-compliance/app/sdk/iace/[projectId]/tech-file/page.tsx b/admin-compliance/app/sdk/iace/[projectId]/tech-file/page.tsx index f32b923..9aa8ad8 100644 --- a/admin-compliance/app/sdk/iace/[projectId]/tech-file/page.tsx +++ b/admin-compliance/app/sdk/iace/[projectId]/tech-file/page.tsx @@ -1,7 +1,8 @@ 'use client' -import React, { useState, useEffect } from 'react' +import React, { useState, useEffect, useRef } from 'react' import { useParams } from 'next/navigation' +import { TechFileEditor } from '@/components/sdk/iace/TechFileEditor' interface TechFileSection { id: string @@ -67,6 +68,14 @@ const STATUS_CONFIG: Record void onSave: (id: string, content: string) => void }) { - const [editedContent, setEditedContent] = useState(section.content || '') const [editing, setEditing] = useState(false) return ( @@ -111,13 +119,10 @@ function SectionViewer({ )} {editing && ( )} {section.status !== 'approved' && section.content && !editing && ( @@ -136,19 +141,19 @@ function SectionViewer({
- {editing ? ( -