feat(managementsysteem): ISO 27001/9001/42001-voortgangsrapportage #1107

Merged
brenno merged 7 commits from worktree-iso-managementsysteem into main 2026-08-02 03:49:37 +00:00
Owner

Managementsysteem-module — ISO 27001/9001/42001-voortgangsrapportage

OciDeck kan nu de voortgang van een eigen ISO-managementsysteem rapporteren
(ISMS/QMS/AIMS), richting bestuur, directie of een certificerende instantie.
Ontwerp: docs/design/ISO_MANAGEMENTSYSTEEM.md.

Derde domeinmodule naast Informatieveiligheid (PENTEST_MIAUW) en Procesverbetering
(PROCESS_IMPROVEMENT); dezelfde stam, dezelfde principes.

Wat er in zit

  • Blok A — ISO-index-catalogi. De index van drie normen als const-data:
    ISO/IEC 27001:2022 (93 Annex A-controls), ISO 9001:2015 (28 sub-clausules) en
    ISO/IEC 42001:2023 (38 Annex A-controls). Geregistreerd in
    reference_standards.dart met een eerlijke isoEdition-verouderingsprobe
    (advisory; iso.org is betaald en blokkeert ophalen → "onbekend", geen valse
    groen). Alleen de index, geen normtekst (auteursrecht).
  • Blok B — controlStatus-slidetype. Per beheersmaatregel status /
    volwassenheid / eigenaar / streefdatum / bewijs, als platte Markdown-tabel
    (getypeerde view, verliesvrije round-trip, geen lock-in). Editor met een
    ISO-importer ("Beheersmaatregelen laden…"), preview op alle vier de oppervlakken.
  • Blok C — voortgang. Analyzer die het overzicht uit de dia's afleidt +
    "Genereer voortgangsoverzicht" (idempotente overzichtsdia).
  • Opt-in module. Standaard uit; schakelaar op Instellingen → Uitbreidingen.
    Onthuld = schakelaar aan óf het deck draagt al een controlStatus-dia, zodat
    uitzetten bestaand werk nooit strandt (gedeeld modulecontract).
  • l10n in 31 talen; docs (USER_GUIDE, FILE_FORMAT, SOURCE_MAP, GLOSSARY,
    API_DOCUMENTATION, CHANGELOG, LICENSE_COMPLIANCE) bijgewerkt.

Bewust uitgesteld (volgende horizon, in het design-doc gemarkeerd)

Managementreview-sjabloon (clausule 9.3), burn-up-grafiek via chart-derivation,
en de periode/trend-frontmatter (ocideck_ms_*). Losse toevoegingen op bestaande
canvas/chart-machinerie; geen blokkade voor een werkende, complete module.

Weging vóór de poort

  • Jurist (auteursrecht): houdbaar-mits → verhard. De index-only-lijn staat op
    gelijke voet met de bestaande WSTG/CWE-bundeling. Documentair aangescherpt:
    herkomst uit ISO's openbare catalogus (geen gekochte normkopie → geen
    gebruikscontract), sui-generis databankrecht gewogen (spin-off-leer, BHB
    C-203/02), build-brede levering, en "mist eigen oorspronkelijk karakter"
    (Infopaq C-5/08) i.p.v. "te kort". Titels blijven Engelse ISO-data, niet naar
    NEN-bewoording vertalen. Staand advies: laat een echte IP-specialist naar de
    contractuele ISO-laag kijken vóór je de functie breed uitdraagt.
  • Bewaker (kernwaarden): past — kan zo naar main. Geen lock-in (deck blijft
    gewone, uitwisselbare Markdown; voortgang afgeleid, niet opgeslagen), alles
    lokaal (geen netwerkuitgang vanuit de app), opt-in standaard uit, beloftes
    toetsbaar en niet te ruim.
  • Benoemde asymmetrie (bewaker + jurist). Dit is dezelfde vorm als de
    bestaande index-bundeling (WSTG/CWE), maar een ander soort juridisch fundament:
    WSTG/CWE dragen een affirmatieve open licentie (CC-BY-SA / MITRE-terms); de
    ISO-index draagt géén grant maar rust op een niet-beschermd-argument
    (Infopaq-originaliteit) + spin-off tegen het databankrecht. Verdedigbaar en
    houdbaar-mits, maar een zwakker soort fundament — hier expliciet genoemd i.p.v.
    "precies hetzelfde patroon". Een ISO-handelsmerk-/niet-affiliatienotitie staat
    in THIRD_PARTY_NOTICES.md.

Poort

make check groen (MAKE_EXIT=0, 8055 tests, 87,6% dekking, alle ratchets binnen
budget) op de gerebasede staat. make check-secrets schoon (gitleaks + trufflehog,
werkboom én historie). make sast schoon (semgrep, 0 findings). Gerebased op de
nieuwste main (parallelle videoCalls-module samengevoegd; l10n via merge=union).

🤖 Generated with Claude Code

## Managementsysteem-module — ISO 27001/9001/42001-voortgangsrapportage OciDeck kan nu de **voortgang van een eigen ISO-managementsysteem** rapporteren (ISMS/QMS/AIMS), richting bestuur, directie of een certificerende instantie. Ontwerp: [`docs/design/ISO_MANAGEMENTSYSTEEM.md`](docs/design/ISO_MANAGEMENTSYSTEEM.md). Derde domeinmodule naast Informatieveiligheid (PENTEST_MIAUW) en Procesverbetering (PROCESS_IMPROVEMENT); dezelfde stam, dezelfde principes. ### Wat er in zit - **Blok A — ISO-index-catalogi.** De index van drie normen als `const`-data: ISO/IEC 27001:2022 (93 Annex A-controls), ISO 9001:2015 (28 sub-clausules) en ISO/IEC 42001:2023 (38 Annex A-controls). Geregistreerd in `reference_standards.dart` met een eerlijke `isoEdition`-verouderingsprobe (advisory; iso.org is betaald en blokkeert ophalen → "onbekend", geen valse groen). **Alleen de index, geen normtekst** (auteursrecht). - **Blok B — `controlStatus`-slidetype.** Per beheersmaatregel status / volwassenheid / eigenaar / streefdatum / bewijs, als **platte Markdown-tabel** (getypeerde view, verliesvrije round-trip, geen lock-in). Editor met een ISO-importer ("Beheersmaatregelen laden…"), preview op alle vier de oppervlakken. - **Blok C — voortgang.** Analyzer die het overzicht uit de dia's afleidt + "Genereer voortgangsoverzicht" (idempotente overzichtsdia). - **Opt-in module.** Standaard uit; schakelaar op Instellingen → Uitbreidingen. Onthuld = schakelaar aan **óf** het deck draagt al een `controlStatus`-dia, zodat uitzetten bestaand werk nooit strandt (gedeeld modulecontract). - **l10n** in 31 talen; docs (USER_GUIDE, FILE_FORMAT, SOURCE_MAP, GLOSSARY, API_DOCUMENTATION, CHANGELOG, LICENSE_COMPLIANCE) bijgewerkt. ### Bewust uitgesteld (volgende horizon, in het design-doc gemarkeerd) Managementreview-sjabloon (clausule 9.3), burn-up-grafiek via chart-derivation, en de periode/trend-frontmatter (`ocideck_ms_*`). Losse toevoegingen op bestaande canvas/chart-machinerie; geen blokkade voor een werkende, complete module. ### Weging vóór de poort - **Jurist (auteursrecht): houdbaar-mits → verhard.** De index-only-lijn staat op gelijke voet met de bestaande WSTG/CWE-bundeling. Documentair aangescherpt: herkomst uit ISO's **openbare catalogus** (geen gekochte normkopie → geen gebruikscontract), sui-generis databankrecht gewogen (spin-off-leer, *BHB* C-203/02), build-brede levering, en "mist eigen oorspronkelijk karakter" (*Infopaq* C-5/08) i.p.v. "te kort". Titels blijven Engelse ISO-data, niet naar NEN-bewoording vertalen. **Staand advies:** laat een echte IP-specialist naar de contractuele ISO-laag kijken vóór je de functie breed uitdraagt. - **Bewaker (kernwaarden): past — kan zo naar main.** Geen lock-in (deck blijft gewone, uitwisselbare Markdown; voortgang afgeleid, niet opgeslagen), alles lokaal (geen netwerkuitgang vanuit de app), opt-in standaard uit, beloftes toetsbaar en niet te ruim. - **Benoemde asymmetrie (bewaker + jurist).** Dit is *dezelfde vorm* als de bestaande index-bundeling (WSTG/CWE), maar een *ander soort juridisch fundament*: WSTG/CWE dragen een affirmatieve open licentie (CC-BY-SA / MITRE-terms); de ISO-index draagt géén grant maar rust op een niet-beschermd-argument (Infopaq-originaliteit) + spin-off tegen het databankrecht. Verdedigbaar en houdbaar-mits, maar een zwakker soort fundament — hier expliciet genoemd i.p.v. "precies hetzelfde patroon". Een ISO-handelsmerk-/niet-affiliatienotitie staat in `THIRD_PARTY_NOTICES.md`. ### Poort `make check` groen (MAKE_EXIT=0, 8055 tests, 87,6% dekking, alle ratchets binnen budget) op de gerebasede staat. `make check-secrets` schoon (gitleaks + trufflehog, werkboom én historie). `make sast` schoon (semgrep, 0 findings). Gerebased op de nieuwste main (parallelle `videoCalls`-module samengevoegd; l10n via `merge=union`). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Fundament voor de managementsysteem-module: de gebundelde index van drie
ISO-normen als data, plus registratie in de referentiestandaarden.

- ManagementSystemStandard + ControlEntry/ControlSection (model, index-only)
- ManagementSystemCatalog: 93 (27001) + 28 (9001) + 38 (42001) controls,
  geverifieerd tegen publieke bronnen; alleen nummer + korte titel, geen
  normtekst (ISO-auteursrecht, zoals de OWASP-index-lijn)
- ReferenceStandard-entries + nieuwe UpstreamProbe.isoEdition (bron is betaald
  en blokkeert ophalen -> eerlijk 'onbekend', advisory)
- LICENSE_COMPLIANCE.md: eigen sectie voor de ISO-index (editie = bron van
  waarheid, guard tegen uiteenlopen)
- design-doc docs/design/ISO_MANAGEMENTSYSTEEM.md

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Per-beheersmaatregel implementatiestatus als nieuw slidetype, de volledige
nieuw-slidetype-ketting mee.

- ControlStatusSpec: getypeerde view over een platte Markdown-tabel
  (status/volwassenheid/eigenaar/streefdatum/bewijs/notitie), voortgang
  afgeleid (geïmplementeerd / van toepassing), verliesvrije round-trip
- SlideType.controlStatus + SlideCategory.managementsysteem; meta, serialize,
  validator-vocabulaire, quality-analyzer, management-summary
- ControlStatusEditor met een 'beheersmaatregelen laden'-importer die de
  ISO-index (norm + sectie) in rijen zet; eigen preview op alle oppervlakken
- editor-registry + toolbar-icoon + picker-tab + help
- tests: spec-round-trip, importer-flow, en de backedByTable-rondgang dekt
  het nieuwe type

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Het voortgangsoverzicht rolt automatisch uit de controlStatus-dia's, per
constructie kloppend met de details (zoals de MIAUW-overview).

- deckManagementSystemProgress: per sectie + totalen (geïmplementeerd /
  van toepassing), niet-van-toepassing telt niet mee in de noemer
- DeckNotifier.generateManagementSystemOverview: bouwt/vernieuwt een
  table-overzichtsdia (idempotent, in plaats ververst)
- knop 'Genereer voortgangsoverzicht' in de controlStatus-editor
- tests: roll-up + idempotente overzichtsactie

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- l10n: 28 nieuwe interfaceteksten in alle 31 niet-Nederlandse talen
  (make l10n-check groen); twee placeholder-hints als unchanged gemarkeerd
- docs: USER_GUIDE (nieuwe modulesectie), FILE_FORMAT (control-status-token +
  kolommen + statustokens), SOURCE_MAP (nieuwe bestanden), API_DOCUMENTATION
  (SlideType 29->30, UpstreamProbe +isoEdition), CHANGELOG, en de design-doc
  status (Blok A-C gebouwd; review-sjabloon/burn-up/periode-trend uitgesteld)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Maakt de module bereikbaar en de volledige kwaliteitspoort groen.

Bereikbaarheid — de module is nu een echte opt-in uitbreiding zoals de andere
domeinmodules (het controlStatus-type was anders niet toe te voegen):
- managementsysteem_provider.dart (persisted toggle, default uit) +
  ManagementsysteemModuleCard op Instellingen -> Uitbreidingen
- geregistreerd in module_registry.dart; onthuld = schakelaar aan OF het deck
  draagt al een controlStatus-dia (Deck.hasManagementSystemSlides), zodat
  uitzetten bestaand werk nooit strandt
- revealManagementsysteem door de add-slide- en retype-picker gedraad

Bugfixes die de volle poort blootlegde:
- preview-overflow bij rasteren/PDF (_progress: Flexible + ellipsis)
- ontbrekende picker-gating (module lekte met modules uit)

Poort groen (make check exit 0, 8017 tests, 87,6% dekking): ratchet-splitsingen
naar parts/top-level helpers (nooit een limiet verhoogd), l10n voor de
kaartteksten in 31 talen, en de gepinde module-lijsten + SOURCE_MAP/GLOSSARY
bijgewerkt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Naar aanleiding van de jurist-toets (oordeel: houdbaar-mits). Documentair, geen
codewijziging aan de data zelf:
- herkomst expliciet: de index komt uit ISO's openbare catalogus, niet uit een
  gekochte normkopie -> geen ISO/NEN-gebruikscontract gevormd
- sui-generis databankrecht op de verzameling gewogen (spin-off-leer, BHB C-203/02)
- pariteit met de infosec-sectie: data zit in élke build, module aan of uit
- "te kort" herformuleerd naar "mist eigen oorspronkelijk karakter" (Infopaq
  C-5/08: lengte is niet de toets, originaliteit wel)
- guard: titels blijven Engelse ISO-data, niet naar NEN-bewoording vertalen

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs(managementsysteem): benoem de fundament-asymmetrie (bewaker-bevinding)
All checks were successful
scans / scans (pull_request) Successful in 3m40s
a735762a14
Bewaker-oordeel: past — kan naar main. Eén punt weggewerkt: de ISO-index heeft
dezelfde vórm als de WSTG/CWE-bundeling maar een ander soort juridisch fundament
(niet-beschermd-argument i.p.v. affirmatieve open licentie). Benoemd i.p.v.
"exact hetzelfde patroon":
- design §9 herschreven om de asymmetrie expliciet te maken
- THIRD_PARTY_NOTICES.md: ISO-handelsmerkrij met niet-affiliatie/geen-certificering

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit 06e5ea170f into main 2026-08-02 03:49:37 +00:00
Sign in to join this conversation.
No description provided.