reclaim/app/lib/pages/about_page.dart
flemming-it 90b7500aaf docs: drop 'vormals F∆I-Plattform' legacy clarification
The Ch∆In rename is months old and the AG audience never knew
the previous name. Calling out 'vormals …' in three places —
the study header, the glossary, and the About page — added
noise without informing anyone. Ch∆In stands on its own.

Signed-off-by: flemming-it <sf@flemming.it>
2026-06-18 13:18:30 +02:00

129 lines
5 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'package:flutter/material.dart';
import '../theme/lawheatmap_tokens.dart';
import '../widgets/lawheatmap_card.dart';
class AboutPage extends StatelessWidget {
const AboutPage({super.key});
@override
Widget build(BuildContext context) {
final t = Theme.of(context).textTheme;
return SingleChildScrollView(
padding: const EdgeInsets.all(LawHeatmapSpace.xl),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('Methodik & Quellen', style: t.displaySmall),
const SizedBox(height: LawHeatmapSpace.xs),
Text(
'Wie das System bewertet, woran es sich messen lässt.',
style: t.bodyLarge?.copyWith(color: LawHeatmapColors.mute),
),
const SizedBox(height: LawHeatmapSpace.lg),
LawHeatmapCard(
accent: true,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('Drei nicht verhandelbare Sätze',
style: t.headlineSmall),
const SizedBox(height: LawHeatmapSpace.md),
Text(
'1. Wir bewerten Pflichten, nicht Gesetze.\n'
'2. Jede Zahl trägt die Tier-Stufe ihres schwächsten '
'Bestandteils. Kein figürlich-runder Wert ohne Quelle.\n'
'3. Kein Output verlässt das System ohne Juristen-Gate '
'(`system.approval@^0`).',
style: t.bodyLarge?.copyWith(height: 1.7),
),
],
),
),
const SizedBox(height: LawHeatmapSpace.lg),
LawHeatmapCard(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('Methodische Vorbilder', style: t.headlineSmall),
const SizedBox(height: LawHeatmapSpace.sm),
_bullet(t,
'Standardkostenmodell (SKM) — Nationaler Normenkontrollrat. P × F × T × h.'),
_bullet(t,
'Coupette / Katz / Bommarito 2021 — Netzwerkanalyse deutsches Bundesrecht (Graph-Schema).'),
_bullet(t,
'Mercatus QuantGov / RegData — NLP-basierte Pflicht-Klassifikation (must/shall/may).'),
_bullet(t,
'EU Better Regulation Toolbox + REFIT — Cost-Benefit + Evaluations-Methodik.'),
_bullet(t,
'Akoma Ntoso 1.0 (OASIS) + LegalRuleML — XML-Format und Deontik-Datenmodell.'),
_bullet(t,
'UK Better Regulation Framework — Regulatory Policy Committee als unabhängige Letzt-Validierung.'),
],
),
),
const SizedBox(height: LawHeatmapSpace.lg),
LawHeatmapCard(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('4-Tier-Evidenz-Modell', style: t.headlineSmall),
const SizedBox(height: LawHeatmapSpace.sm),
_bullet(t,
'T1 — amtlich/peer-reviewed: NKR, DESTATIS, ifo, ZEW, BMWK, SVR, IfM Bonn.'),
_bullet(t,
'T2 — Verbands-Erhebung: DIHK, IHK Berlin, ZDH, BDI Mittelstand, BVMW, HDE.'),
_bullet(t,
'T3 — eigene strukturierte Erhebung (Phase 2/3, DSGVO-anonymisiert).'),
_bullet(t,
'T4 — qualitatives Signal: Petitionen, openPetition, mein.berlin.de, Foren — nur Pain-Indikator.'),
],
),
),
const SizedBox(height: LawHeatmapSpace.lg),
LawHeatmapCard(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('Plattform', style: t.headlineSmall),
const SizedBox(height: LawHeatmapSpace.sm),
Text(
'Ch∆In v0.16.0 — Vendor: F∆I = Flemming.AI. '
'Hub. Module. Flow. Deterministisch, WASM-sandboxed, '
'tamper-evident Audit-Log (CHAIN-EVENT-V3), '
'Apache 2.0, CRA-ready.',
style: t.bodyLarge?.copyWith(height: 1.6),
),
],
),
),
],
),
);
}
Widget _bullet(TextTheme t, String text) {
return Padding(
padding: const EdgeInsets.only(bottom: LawHeatmapSpace.sm),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(top: 6, right: 10),
child: Container(
width: 5,
height: 5,
decoration: const BoxDecoration(
color: LawHeatmapColors.signal,
shape: BoxShape.circle,
),
),
),
Expanded(
child: Text(text, style: t.bodyLarge?.copyWith(height: 1.6)),
),
],
),
);
}
}