fix(cra): IACE-Create id-Wrapper + MaschinenVO eigene Sektion
CI / detect-changes (push) Successful in 16s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / secret-scan (push) Has been skipped
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / build-sha-integrity (push) Successful in 12s
CI / validate-canonical-controls (push) Successful in 11s
CI / loc-budget (push) Successful in 24s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Successful in 3m10s
CI / test-go (push) Has been skipped
CI / iace-gt-coverage (push) Has been skipped
CI / test-python-backend (push) Successful in 32s
CI / test-python-document-crawler (push) Has been skipped
CI / test-python-dsms-gateway (push) Has been skipped

1) createProject las proj.id, der Create-Response ist aber {project:{id}} →
   'Projekt anlegen' war kaputt. Jetzt proj.project?.id. E2E verifiziert
   (create→put limits_form→get→delete = 200).
2) MaschinenVO-Sicherheitspflichten wurden in die CRA-Cyber-Buckets
   (Code/Prozess/Doku) gemischt → fehl-kategorisiert (Maschinen-Safety ≠
   CRA-Annex-I-Cyber). Jetzt eigene Response-Liste machinery_guideline +
   eigener Frontend-Abschnitt 'Maschinensicherheit (MaschinenVO 2023/1230)';
   geklebtes 'MaschVO'-Badge entfaellt damit.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-06-17 00:12:52 +02:00
parent 72117c447f
commit 9e2655bfef
3 changed files with 27 additions and 8 deletions
@@ -15,6 +15,7 @@ export interface ReadinessResult {
conformity_path_hint: string
regulations: string[]
guideline: { code: GuidelineItem[]; process: GuidelineItem[]; document: GuidelineItem[] }
machinery_guideline?: GuidelineItem[]
counts: { code: number; process: number; document: number }
total_effort_days: number
deadlines: { date: string; label: string }[]
@@ -172,9 +173,6 @@ export function ReadinessResultView({ result, onCreateProject }: { result: Readi
<ul className="mt-2 space-y-1.5">
{result.guideline[b.key].map((it) => (
<li key={it.req_id} className="text-[11px] text-gray-600 dark:text-gray-300">
{it.source === 'Maschinen-VO' && (
<span className="inline-block rounded bg-indigo-100 text-indigo-700 dark:bg-indigo-900/40 dark:text-indigo-300 px-1 py-0.5 text-[9px] font-medium mr-1">MaschVO</span>
)}
<span className="font-medium text-gray-800 dark:text-gray-200">{it.title}</span>
<span className="text-gray-400"> · {it.annex_anchor}</span>
</li>
@@ -183,6 +181,25 @@ export function ReadinessResultView({ result, onCreateProject }: { result: Readi
</div>
))}
</div>
{result.machinery_guideline && result.machinery_guideline.length > 0 && (
<div className="rounded-lg border border-indigo-200 dark:border-indigo-800 bg-indigo-50/40 dark:bg-indigo-900/10 p-3">
<h3 className="text-sm font-semibold text-indigo-900 dark:text-indigo-200">
Maschinensicherheit Maschinenverordnung (EU) 2023/1230
</h3>
<p className="text-[11px] text-indigo-800/70 dark:text-indigo-300/70 mb-1">
Eigene Pflichten zur Personensicherheit getrennt von den CRA-Cyber-Anforderungen.
</p>
<ul className="space-y-1">
{result.machinery_guideline.map((it) => (
<li key={it.req_id} className="text-[11px] text-gray-700 dark:text-gray-200">
<span className="font-medium">{it.title}</span>
<span className="text-gray-400"> · {it.annex_anchor}</span>
</li>
))}
</ul>
</div>
)}
<div className="flex flex-wrap gap-3 text-[11px] text-gray-500">
<span className="font-medium text-gray-600 dark:text-gray-300">CRA-Fristen:</span>
{result.deadlines.map((d) => (