feat(cra): 'Projekt anlegen' triggert IACE-Auto-Ableitung (/initialize)
Nach dem Setzen der limits_form ruft createProject jetzt POST /iace/projects/ :id/initialize — IACE liest die limits_form als Narrative → Komponenten → Gefährdungen → Maßnahmen → Verifikation → Normen (idempotent, best-effort). Navigiert danach auf die Projekt-Übersicht (Risiko-Summary). Interview-Felder bleiben editierbar, Ableitung im IACE re-triggerbar. Schliesst die Kette Datenblatt → Grenzen → Gefährdungen/Maßnahmen. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -76,7 +76,15 @@ export function DatasheetExtract() {
|
|||||||
method: 'PUT', headers: { 'Content-Type': 'application/json' },
|
method: 'PUT', headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify({ metadata: { limits_form: limits } }),
|
body: JSON.stringify({ metadata: { limits_form: limits } }),
|
||||||
})
|
})
|
||||||
router.push(`/sdk/iace/${pid}/interview`)
|
// Auto-derive: IACE reads the limits_form as narrative → components →
|
||||||
|
// hazards → measures → norms. Idempotent + best-effort; can be (re-)run
|
||||||
|
// in the IACE module. The interview limits stay fully editable.
|
||||||
|
try {
|
||||||
|
await fetch(`/api/sdk/v1/iace/projects/${pid}/initialize`, {
|
||||||
|
method: 'POST', headers: { 'Content-Type': 'application/json' },
|
||||||
|
})
|
||||||
|
} catch { /* idempotent — re-runnable in IACE */ }
|
||||||
|
router.push(`/sdk/iace/${pid}`)
|
||||||
} finally { setCreating(false) }
|
} finally { setCreating(false) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,16 +176,17 @@ export function DatasheetExtract() {
|
|||||||
<div className="flex flex-wrap items-center gap-3">
|
<div className="flex flex-wrap items-center gap-3">
|
||||||
<button onClick={createProject} disabled={creating}
|
<button onClick={createProject} disabled={creating}
|
||||||
className="rounded bg-indigo-600 hover:bg-indigo-700 disabled:opacity-50 text-white text-sm px-4 py-2">
|
className="rounded bg-indigo-600 hover:bg-indigo-700 disabled:opacity-50 text-white text-sm px-4 py-2">
|
||||||
{creating ? 'Lege an …' : 'IACE-Projekt anlegen (Grenzen übernehmen)'}
|
{creating ? 'Lege an & leite ab …' : 'IACE-Projekt anlegen → Gefährdungen ableiten'}
|
||||||
</button>
|
</button>
|
||||||
<span className="text-xs text-gray-500">
|
<span className="text-xs text-gray-500">
|
||||||
Übernimmt Grenzen + Antworten als <span className="font-medium">editierbaren Entwurf</span> ins
|
Übernimmt Grenzen + Antworten als <span className="font-medium">editierbaren Entwurf</span> und leitet
|
||||||
IACE-Interview — jedes Feld bleibt änderbar. Manuelles Anlegen weiterhin über{' '}
|
daraus automatisch Komponenten, Gefährdungen und Maßnahmen ab — jedes Feld bleibt im Interview änderbar.
|
||||||
<a href="/sdk/iace" className="text-indigo-600 hover:underline">iACE</a>.
|
Manuelles Anlegen weiterhin über <a href="/sdk/iace" className="text-indigo-600 hover:underline">iACE</a>.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<p className="text-xs text-gray-400 italic">
|
<p className="text-xs text-gray-400 italic">
|
||||||
Aus den Grenzen leitet IACE anschließend Gefährdungen und Maßnahmen ab (Entwurf — Bestätigung mit Sicherheitsingenieur).
|
Entwurf zur Bestätigung mit Sicherheitsingenieur; im IACE-Interview kann jedes Feld geändert und die
|
||||||
|
Ableitung neu ausgelöst werden.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user