@aegis-scan/skills 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/ATTRIBUTION.md +93 -0
  2. package/package.json +1 -1
  3. package/sbom.cdx.json +1 -0
  4. package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
  5. package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +878 -0
  6. package/skills/compliance/aegis-native/brutaler-anwalt/README.md +9 -3
  7. package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +93 -14
  8. package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
  9. package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
  10. package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
  11. package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
  12. package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
  13. package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
  14. package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
  15. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
  16. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
  17. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
  18. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
  19. package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
  20. package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
  21. package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +60 -5
  22. package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +745 -11
  23. package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
  24. package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +106 -30
  25. package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +247 -2
  26. package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +75 -2
  27. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
  28. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
  29. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
  30. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
  31. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
  32. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
  33. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
  34. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
  35. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
  36. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
  37. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
  38. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
  39. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
  40. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
  41. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
  42. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
  43. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
  44. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
  45. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
  46. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
  47. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
  48. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
  49. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
  50. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
  51. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
  52. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
  53. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
  54. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
  55. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
  56. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
  57. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
  58. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
  59. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
  60. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
  61. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
  62. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
  63. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
  64. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
  65. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
  66. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
  67. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
  68. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
  69. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
  70. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
  71. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
  72. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
  73. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
  74. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
  75. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
  76. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
  77. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
  78. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
  79. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
  80. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
  81. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
  82. package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +55 -8
  83. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
  84. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
  85. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
  86. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
  87. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
  88. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
  89. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
  90. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +4 -1
  91. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
  92. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
  93. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
  94. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
  95. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
  96. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
  97. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
  98. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
  99. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
  100. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
  101. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
  102. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
  103. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
  104. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
  105. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +3 -0
  106. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
  107. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
  108. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
  109. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
  110. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
  111. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
  112. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
  113. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
  114. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
  115. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
  116. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
  117. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
  118. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
  119. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
  120. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
  121. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
  122. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
  123. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
  124. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
  125. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
  126. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
  127. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
  128. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
  129. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
  130. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
  131. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
  132. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
  133. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +3 -2
  134. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
  135. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
  136. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +71 -3
  137. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
  138. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
  139. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
  140. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
  141. package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +115 -9
  142. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +1 -1
  143. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
  144. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
  145. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
  146. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
  147. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
  148. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
  149. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
  150. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
  151. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
  152. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
  153. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
  154. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
  155. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
  156. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
  157. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
  158. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
  159. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
  160. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
  161. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
  162. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
  163. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
  164. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
  165. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
  166. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
  167. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
  168. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
  169. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
  170. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
  171. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
  172. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
  173. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
  174. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
  175. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
  176. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
  177. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
  178. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
  179. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
  180. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
  181. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
  182. package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
  183. package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
  184. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +80 -0
  185. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
  186. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
  187. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
  188. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
  189. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
  190. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
  191. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
  192. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
  193. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
  194. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
  195. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
  196. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +190 -48
  197. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
  198. package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
  199. package/skills/defensive/permoon-fork/README.md +40 -0
  200. package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
  201. package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
  202. package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
  203. package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
  204. package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +1 -1
  205. package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
  206. package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
  207. package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
  208. package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
  209. package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
  210. package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
  211. package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
  212. package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
  213. package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
  214. package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
  215. package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
  216. package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
  217. package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
  218. package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
  219. package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
  220. package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
  221. package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
  222. package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
  223. package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
  224. package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
  225. package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
  226. package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
  227. package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
  228. package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
  229. package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
  230. package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
  231. package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
  232. package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
  233. package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
  234. package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
  235. package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
  236. package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
  237. package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
  238. package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
  239. package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
  240. package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
  241. package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
  242. package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
  243. package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
  244. package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
  245. package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
  246. package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
  247. package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
  248. package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
  249. package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
  250. package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
  251. package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
  252. package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
  253. package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
  254. package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
  255. package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
  256. package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
  257. package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
  258. package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
  259. package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
  260. package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
  261. package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
  262. package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
  263. package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
  264. package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
  265. package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
  266. package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
  267. package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
  268. package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
  269. package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
  270. package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
  271. package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
  272. package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
  273. package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
  274. package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
  275. package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
  276. package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
  277. package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
  278. package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
  279. package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
  280. package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
  281. package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
  282. package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
  283. package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
  284. package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
  285. package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
  286. package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
  287. package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
  288. package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
  289. package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
  290. package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
  291. package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
  292. package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
  293. package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
  294. package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
  295. package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
  296. package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
  297. package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
  298. package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
  299. package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
  300. package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
  301. package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
  302. package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
  303. package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
  304. package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
  305. package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
  306. package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
  307. package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
  308. package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
  309. package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
  310. package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
  311. package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
  312. package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
  313. package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
  314. package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
  315. package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
  316. package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
  317. package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
  318. package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
  319. package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
  320. package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
  321. package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
  322. package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
  323. package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
  324. package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
  325. package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
  326. package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
  327. package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
  328. package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
  329. package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
  330. package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
  331. package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
  332. package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
  333. package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
  334. package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
  335. package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
  336. package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
  337. package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
  338. package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
  339. package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
  340. package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
  341. package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
  342. package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
  343. package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
  344. package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
  345. package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
@@ -0,0 +1,197 @@
1
+ ---
2
+ license: MIT (snippet)
3
+ provider: Nuxt 3 / Vue 3 (Open-Source)
4
+ last-checked: 2026-05-05
5
+ purpose: Nuxt 3 SSR vs Vue-only SPA Hydration-Pattern fuer DSGVO-konforme Tracker-Initialisierung.
6
+ ---
7
+
8
+ # Nuxt vs Vue-only — Hydration-Pattern (Tracker-Lazy-Init)
9
+
10
+ ## Trigger / Detection
11
+
12
+ Nuxt 3 Repo:
13
+ - `nuxt.config.ts` mit `ssr: true` (Default)
14
+ - `package.json` enthaelt `nuxt`
15
+ - `composables/`, `plugins/`, `server/` Top-Level Folders
16
+ - `useFetch`, `useState`, `useNuxtApp` in Components
17
+
18
+ Vue-only Repo:
19
+ - `vite.config.ts` + `vue` Dependency (kein nuxt)
20
+ - `index.html` als Entry mit `<div id="app">`
21
+ - `main.ts` mit `createApp`
22
+
23
+ Hydration-Issue: Nuxt rendered HTML serverseitig + hydratiert clientseitig. Tracker-Calls in `setup()` feuern auf BEIDEN Seiten = Daten doppelt + Tracker fuer NICHT-eingewilligte Users serverseitig geladen.
24
+
25
+ ## Default-Verhalten (was passiert ohne Konfiguration)
26
+
27
+ Nuxt-Default:
28
+ - `setup()` laeuft auf Server UND Client → fetch-Aufrufe doppelt
29
+ - `process.client` / `import.meta.client` Check fehlt oft → SSR-Crash bei `localStorage`-Access
30
+ - Tracker im Default-Layout `app.vue` laed ueber `<Head>` → vor jeder Banner-Logik
31
+ - Cookies werden vom Server ausgelesen ohne Consent-Check
32
+
33
+ Vue-only:
34
+ - Kein SSR, daher kein Hydration-Problem, ABER kein SEO ohne Pre-Rendering
35
+ - Tracker in `main.ts` startet bevor Banner-Komponente mounted
36
+
37
+ ## Compliance-Risiken
38
+
39
+ | Risiko | Norm | Severity | Fix |
40
+ |---|---|---|---|
41
+ | Tracker in Nuxt-Layout `<Head>` | § 25 TDDDG | KRITISCH | `useHead` nur nach `consent:granted` Event |
42
+ | `localStorage` in `setup()` ohne Client-Check | DSGVO Art. 25 | HOCH | `if (import.meta.client)` Guard |
43
+ | Server-Side Cookie-Read ohne Consent | § 25 TDDDG | KRITISCH | `useCookie` mit Consent-Pruefung |
44
+ | Hydration-Mismatch zeigt Banner kurz | UX / Vertrauen | MITTEL | `v-if="mounted"` + `useState('mounted', () => false)` |
45
+ | Drittland-CDN fuer Vue-Vendor-Bundle | Art. 44 DSGVO | HOCH | Self-host Bundle, EU-CDN |
46
+
47
+ ## Code-Pattern (sanitized)
48
+
49
+ ### Nuxt 3 Pattern
50
+
51
+ ```typescript
52
+ // File: plugins/consent.client.ts (Pflicht: .client.ts Suffix → nur Client)
53
+ import { defineNuxtPlugin } from '#app';
54
+
55
+ export default defineNuxtPlugin(() => {
56
+ const STORAGE_KEY = 'cookie-consent';
57
+ const raw = localStorage.getItem(STORAGE_KEY);
58
+ if (!raw) return;
59
+ try {
60
+ const consent = JSON.parse(raw);
61
+ if (consent.analytics) {
62
+ // Lazy-Load Tracker-Modul erst hier
63
+ import('~/utils/analytics').then(m => m.init());
64
+ }
65
+ } catch {
66
+ /* ignore */
67
+ }
68
+ });
69
+ ```
70
+
71
+ ```vue
72
+ <!-- File: components/CookieBanner.vue -->
73
+ <script setup lang="ts">
74
+ const mounted = useState('cookie-banner-mounted', () => false);
75
+ const visible = useState('cookie-banner-visible', () => false);
76
+
77
+ onMounted(() => {
78
+ mounted.value = true;
79
+ if (!localStorage.getItem('cookie-consent')) {
80
+ visible.value = true;
81
+ }
82
+ });
83
+
84
+ function persist(consent: { analytics: boolean; marketing: boolean }) {
85
+ const final = { necessary: true, ...consent, version: '1.0', timestamp: new Date().toISOString() };
86
+ localStorage.setItem('cookie-consent', JSON.stringify(final));
87
+ visible.value = false;
88
+ if (consent.analytics) import('~/utils/analytics').then(m => m.init());
89
+ }
90
+ </script>
91
+
92
+ <template>
93
+ <ClientOnly>
94
+ <Teleport to="body">
95
+ <aside v-if="mounted && visible" role="dialog" class="cookie-banner">
96
+ <p>Cookie-Hinweis-Text. <NuxtLink to="/datenschutz">Datenschutz</NuxtLink></p>
97
+ <button @click="persist({ analytics: false, marketing: false })">Nur Notwendige</button>
98
+ <button @click="persist({ analytics: true, marketing: true })">Alle akzeptieren</button>
99
+ </aside>
100
+ </Teleport>
101
+ </ClientOnly>
102
+ </template>
103
+ ```
104
+
105
+ ```typescript
106
+ // File: nuxt.config.ts
107
+ export default defineNuxtConfig({
108
+ ssr: true,
109
+ app: {
110
+ head: {
111
+ htmlAttrs: { lang: 'de' },
112
+ // KEINE Tracker-Scripts hier — bleiben aussen
113
+ },
114
+ },
115
+ routeRules: {
116
+ '/api/track/**': { cors: false }, // Same-Origin enforced
117
+ },
118
+ });
119
+ ```
120
+
121
+ ### Vue-only Pattern (kein SSR)
122
+
123
+ ```typescript
124
+ // File: src/main.ts
125
+ import { createApp } from 'vue';
126
+ import App from './App.vue';
127
+
128
+ // KEIN Tracker-Init hier
129
+ const app = createApp(App);
130
+
131
+ window.addEventListener('consent:granted', async (e: any) => {
132
+ if (e.detail?.analytics) {
133
+ const m = await import('./trackers/analytics');
134
+ m.init();
135
+ }
136
+ });
137
+
138
+ app.mount('#app');
139
+ ```
140
+
141
+ ## AVV / DPA
142
+
143
+ Nuxt SSR + Vercel/Netlify Edge:
144
+ - SSR-Function-Region MUSS auf EU gepinnt sein (`vercel.json` `regions: ['fra1']`)
145
+ - AVV mit Hosting-Provider Pflicht
146
+ - Bei Nitro-Self-Host: keine zusaetzliche AVV, aber Hosting-AVV bleibt
147
+
148
+ Vue-only Static:
149
+ - Hosting-AVV
150
+ - Optional: Form-Service / Backend-API (separate AVV)
151
+
152
+ ## DSE-Wording-Vorlage
153
+
154
+ ```markdown
155
+ ### Server-Side Rendering und Hosting
156
+
157
+ Diese Webseite verwendet Server-Side Rendering (SSR) bei Nuxt 3. Initiale
158
+ HTML-Generierung findet auf <placeholder-hosting-provider>-Servern in der
159
+ Region <placeholder-eu-region> statt.
160
+
161
+ **Verarbeitete Daten beim Initial-Render:**
162
+ - IP-Adresse (anonymisiert auf /24 in Server-Logs)
163
+ - User-Agent
164
+ - Sprach-Header (`Accept-Language`)
165
+ - Referrer (ohne Query-String)
166
+
167
+ **Rechtsgrundlage:** Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an
168
+ sicherem Webseitenbetrieb).
169
+ **Speicherdauer Logs:** 14 Tage, danach Loeschung.
170
+ ```
171
+
172
+ ## Verify-Commands (Live-Probe)
173
+
174
+ ```bash
175
+ # 1. SSR-HTML enthaelt KEINEN Tracker-Script
176
+ curl -sS https://<placeholder-domain>/ | grep -ic "<script[^>]*analytics\|gtag\|fbq"
177
+ # Erwartung: 0
178
+
179
+ # 2. Banner nicht im initial SSR-HTML (vermeidet Flash)
180
+ curl -sS https://<placeholder-domain>/ | grep -ic "cookie-banner"
181
+ # Erwartung: 0 (wird via ClientOnly nachgeladen)
182
+
183
+ # 3. Region-Check (Nuxt SSR Edge)
184
+ curl -sI https://<placeholder-domain>/ | grep -i "x-vercel-id\|server"
185
+ # Erwartung: fra1 / cdg1 / ams1 etc. (EU-Region)
186
+
187
+ # 4. Hydration ohne Mismatch
188
+ # Browser-Console: kein Vue-Warning "[Vue warn]: Hydration mismatch"
189
+ ```
190
+
191
+ ## Cross-References
192
+
193
+ - AEGIS-Scanner: `ssr-data-leak-checker.ts`, `tracking-scan.ts`, `region-pinning-checker.ts`
194
+ - Skill-Reference: `references/dsgvo.md` Art. 44 (Drittland), § 25 TDDDG
195
+ - BGH-Rechtsprechung: `references/bgh-urteile.md`
196
+ - EDPB: `references/eu-edpb-guidelines.md` (Schrems II Folgen)
197
+ - Audit-Pattern: `references/audit-patterns.md` Phase 3 (Drittland-Audit)
@@ -0,0 +1,211 @@
1
+ ---
2
+ license: MIT (snippet)
3
+ provider: Vue 3 + Pinia (Open-Source)
4
+ last-checked: 2026-05-05
5
+ purpose: Pinia-Store fuer Consent-State + Tracker-Gate Pattern mit Subscriber-Watch.
6
+ ---
7
+
8
+ # Vue/Pinia — Tracking-Store (Pattern)
9
+
10
+ ## Trigger / Detection
11
+
12
+ Repo enthaelt:
13
+ - `pinia` in `package.json`
14
+ - `src/stores/*.ts` Pinia-Stores
15
+ - `defineStore('consent', ...)` oder vergleichbar
16
+ - Optional: `pinia-plugin-persistedstate` fuer localStorage-Sync
17
+
18
+ Pattern: zentraler Store fuer Consent + Tracker-Aktivierung. Komponenten subscriben statt direktem `useConsent`-Composable.
19
+
20
+ ## Default-Verhalten (was passiert ohne Konfiguration)
21
+
22
+ - Pinia-State liegt im Memory → kein Persist ohne Plugin
23
+ - Tracker-SDKs in Components separat initialisiert → mehrfach-Init bei Re-Mount
24
+ - Persist-Plugin schreibt Consent-State, aber auch UI-State unkontrolliert in localStorage
25
+ - `$subscribe` lauscht auf alle Mutations → Tracker triggert bei UI-Klicks (FP)
26
+
27
+ ## Compliance-Risiken
28
+
29
+ | Risiko | Norm | Severity | Fix |
30
+ |---|---|---|---|
31
+ | Tracker mehrfach initialisiert | Performance / DSGVO Daten-Min | MITTEL | Singleton-Init im Plugin |
32
+ | Persist-Plugin speichert PII unverschluesselt | Art. 32 DSGVO | HOCH | Whitelist `paths: ['consent']` |
33
+ | Subscriber feuert Tracker bei UI-State-Change | DSGVO Art. 5 lit. b Zweckbindung | HOCH | Watcher auf `consent.analytics` only |
34
+ | Missing Tracker-Teardown bei Widerruf | Art. 7 Abs. 3 DSGVO | HOCH | `$reset` + `unloadAnalytics()` |
35
+ | Drittland-Provider unverhandelt | Art. 44 DSGVO | KRITISCH | EU-Provider + AVV |
36
+
37
+ ## Code-Pattern (sanitized)
38
+
39
+ ```typescript
40
+ // File: src/stores/consent.ts
41
+ import { defineStore } from 'pinia';
42
+
43
+ export type Consent = {
44
+ necessary: true;
45
+ analytics: boolean;
46
+ marketing: boolean;
47
+ timestamp: string | null;
48
+ version: '1.0';
49
+ };
50
+
51
+ const defaultConsent: Consent = {
52
+ necessary: true,
53
+ analytics: false,
54
+ marketing: false,
55
+ timestamp: null,
56
+ version: '1.0',
57
+ };
58
+
59
+ export const useConsentStore = defineStore('consent', {
60
+ state: (): Consent => ({ ...defaultConsent }),
61
+
62
+ getters: {
63
+ hasDecided: (s) => s.timestamp !== null,
64
+ },
65
+
66
+ actions: {
67
+ grant(partial: Partial<Pick<Consent, 'analytics' | 'marketing'>>) {
68
+ this.$patch({
69
+ ...partial,
70
+ timestamp: new Date().toISOString(),
71
+ });
72
+ // Server-side log fuer Nachweispflicht
73
+ fetch('/api/consent-log', {
74
+ method: 'POST',
75
+ headers: { 'Content-Type': 'application/json' },
76
+ body: JSON.stringify(this.$state),
77
+ });
78
+ },
79
+ revoke() {
80
+ this.$reset();
81
+ this.timestamp = new Date().toISOString();
82
+ // Tracker-Teardown
83
+ window.dispatchEvent(new CustomEvent('consent:revoked'));
84
+ },
85
+ },
86
+
87
+ persist: {
88
+ key: 'cookie-consent',
89
+ paths: ['necessary', 'analytics', 'marketing', 'timestamp', 'version'], // Whitelist!
90
+ },
91
+ });
92
+ ```
93
+
94
+ ```typescript
95
+ // File: src/plugins/tracking.ts
96
+ import { useConsentStore } from '@/stores/consent';
97
+ import { watch } from 'vue';
98
+
99
+ let analyticsLoaded = false;
100
+
101
+ export function setupTrackingWatchers() {
102
+ const store = useConsentStore();
103
+
104
+ // Watcher feuert NUR bei aenderung von analytics-Flag
105
+ watch(
106
+ () => store.analytics,
107
+ (next) => {
108
+ if (next && !analyticsLoaded) {
109
+ loadAnalytics();
110
+ analyticsLoaded = true;
111
+ }
112
+ if (!next && analyticsLoaded) {
113
+ unloadAnalytics();
114
+ analyticsLoaded = false;
115
+ }
116
+ },
117
+ { immediate: true }
118
+ );
119
+ }
120
+
121
+ function loadAnalytics() {
122
+ const s = document.createElement('script');
123
+ s.src = 'https://<placeholder-eu-analytics-host>/script.js';
124
+ s.async = true;
125
+ s.dataset.domain = '<placeholder-domain>';
126
+ document.head.appendChild(s);
127
+ console.log('[tracking] analytics loaded');
128
+ }
129
+
130
+ function unloadAnalytics() {
131
+ document.querySelectorAll('script[data-domain]').forEach(s => s.remove());
132
+ // Cookies invalidieren
133
+ document.cookie.split(';').forEach(c => {
134
+ const name = c.split('=')[0]?.trim();
135
+ if (name?.startsWith('_pa_') || name?.startsWith('_ga')) {
136
+ document.cookie = `${name}=; max-age=0; path=/`;
137
+ }
138
+ });
139
+ }
140
+ ```
141
+
142
+ ```typescript
143
+ // File: src/main.ts
144
+ import { createApp } from 'vue';
145
+ import { createPinia } from 'pinia';
146
+ import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
147
+ import App from './App.vue';
148
+ import { setupTrackingWatchers } from './plugins/tracking';
149
+
150
+ const pinia = createPinia();
151
+ pinia.use(piniaPluginPersistedstate);
152
+
153
+ const app = createApp(App);
154
+ app.use(pinia);
155
+ app.mount('#app');
156
+
157
+ // Tracking-Watchers nach Mount aufsetzen
158
+ setupTrackingWatchers();
159
+ ```
160
+
161
+ ## AVV / DPA
162
+
163
+ - Hosting-Provider — Art. 28 DSGVO
164
+ - Analytics-Provider (EU-Region) — AVV Pflicht
165
+ - pinia-plugin-persistedstate: schreibt nur in localStorage = kein AVV (Browser-Storage = First-Party)
166
+
167
+ ## DSE-Wording-Vorlage
168
+
169
+ ```markdown
170
+ ### Speicherung Ihrer Consent-Entscheidung
171
+
172
+ Wir speichern Ihre Cookie-Einwilligung in Ihrem Browser-Speicher
173
+ (`localStorage`) unter dem Schluessel `cookie-consent`. Die Speicherung dient
174
+ ausschliesslich der Nachweispflicht (Art. 7 Abs. 1 DSGVO).
175
+
176
+ **Gespeicherte Daten:**
177
+ - Zeitstempel Ihrer Entscheidung
178
+ - Welche Cookie-Kategorien Sie aktiviert haben
179
+ - Version der Einwilligungs-Vereinbarung
180
+
181
+ Es findet keine Uebertragung an Dritte statt. Die Daten verbleiben in Ihrem
182
+ Browser. Sie koennen die Speicherung jederzeit ueber die Browser-Einstellungen
183
+ loeschen oder ueber den [Cookie-Einstellungen](#cookie-settings)-Link im Footer.
184
+ ```
185
+
186
+ ## Verify-Commands (Live-Probe)
187
+
188
+ ```bash
189
+ # 1. localStorage-Key korrekt
190
+ echo "JS in DevTools:"
191
+ echo " JSON.parse(localStorage.getItem('cookie-consent'))"
192
+ # Erwartung: { necessary: true, analytics: bool, marketing: bool, timestamp: ..., version: "1.0" }
193
+
194
+ # 2. Tracker-Script erst nach Accept
195
+ # DevTools-Network-Tab vor + nach Accept-Button-Click pruefen
196
+
197
+ # 3. Revoke-Action entfernt Tracker-Cookies
198
+ # DevTools: localStorage.removeItem('cookie-consent') + reload
199
+ # document.cookie sollte keine _pa_/_ga-Eintraege mehr enthalten
200
+
201
+ # 4. Pinia Persist nur whitelisted paths
202
+ # DevTools: localStorage.getItem('cookie-consent')
203
+ # Erwartung: nur consent-Felder, keine UI-State-Reste
204
+ ```
205
+
206
+ ## Cross-References
207
+
208
+ - AEGIS-Scanner: `state-leak-checker.ts`, `tracking-scan.ts`, `consent-flow-checker.ts`
209
+ - Skill-Reference: `references/dsgvo.md` § 25 TDDDG, Art. 7 (Nachweispflicht)
210
+ - BGH-Rechtsprechung: `references/bgh-urteile.md` BGH I ZR 7/16
211
+ - Audit-Pattern: `references/audit-patterns.md` Phase 2 (Cookie-Audit), Phase 4 (Widerrufs-Test)
@@ -178,7 +178,7 @@ Wenn die Site Mitarbeiter-Login enthaelt + keine separate Beschaeftigten-Datensc
178
178
  ```
179
179
  Finding: Datenpanne nicht innerhalb 72 h gemeldet
180
180
  - §: Art. 33 DSGVO + § 130 OWiG (Aufsichtspflicht)
181
- - Az.: OLG Hamm 4 U 75/23 (auch versehentliche Mails sind Datenpannen)
181
+ - Az.: OLG Hamm 11 U 88/22 (20.01.2023) — auch versehentliche Mails sind Datenpannen, 100 EUR Schadensersatz pro Betroffenem
182
182
  - Strafrechtlich: § 263 StGB falls vorsaetzliche Verschleierung erkennbar
183
183
  - Bussgeld DSGVO: Stufe 1 (Art. 83 Abs. 4)
184
184
  - Risiko-Vektor:
@@ -0,0 +1,176 @@
1
+ {
2
+ "_comment": "Strukturierte Streitwert-DB fuer brutaler-anwalt v4.4.0+ Abmahn-Simulation. Jede Verstoss-Klasse hat (a) Base-Range, (b) Az.-Anker mit Source-URL, (c) Aktor-Multiplikatoren, (d) Branchen-Multiplikatoren. Werte basieren auf publizierten BGH/OLG/LG-Urteilen, BfDI/LDI-Bussgeldbescheiden 2020-2025. Disclaimer: indikativ, KEINE Rechtsberatung i.S.d. RDG §2.",
3
+ "_schema": {
4
+ "verstoss_klassen": "Objekt mit Verstoss-Slug als Key",
5
+ "fields_pro_klasse": {
6
+ "name": "Lesbarer Verstoss-Name (de)",
7
+ "rechtsgrundlage": "§ / Art. Pflicht-Norm",
8
+ "streitwert_eur_min": "Untere Schadens-Range-Grenze EUR",
9
+ "streitwert_eur_max": "Obere Schadens-Range-Grenze EUR",
10
+ "az_anker": "BGH/EuGH/OLG/LG-Az. als Source-Anker",
11
+ "az_source_url": "Volltext-Link zur Quelle",
12
+ "aktor_multiplikatoren": "Faktor je nach Anwalts-Akteur (Standard 1.0, VZB 1.5, WBZ 2.0, Bekannt-Abmahn-RAK 2.5)",
13
+ "branchen_multiplikatoren": "Faktor je nach Branche (Standard 1.0, Heilberuf/MedTech 1.5)",
14
+ "schwere_faktoren": "Faktor je nach Severity (LOW 0.5, MED 1.0, HIGH 2.0, CRIT 4.0)",
15
+ "anwalts_kosten_geschaeftsgebuehr": "1.3 Geschaeftsgebuehr nach RVG bei Standard-Streitwert",
16
+ "notes": "Kontext / Anwendungsgrenzen / Vorsicht"
17
+ },
18
+ "version": "0.1.0 — initial, Stand 2026-05-15"
19
+ },
20
+
21
+ "verstoss_klassen": {
22
+ "google_fonts_ohne_consent": {
23
+ "name": "Google Fonts via Google-CDN ohne Consent",
24
+ "rechtsgrundlage": "Art. 6(1) DSGVO + § 25 TDDDG + Art. 13 DSGVO",
25
+ "streitwert_eur_min": 100,
26
+ "streitwert_eur_max": 500,
27
+ "az_anker": "LG Muenchen 3 O 17493/20",
28
+ "az_source_url": "https://medien-internet-und-recht.de/volltext.php?mir_dok_id=3119",
29
+ "aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.5, "wettbewerbszentrale": 2.0, "abmahn_anwalt_bekannt": 2.5},
30
+ "branchen_multiplikatoren": {"standard": 1.0, "heilberuf": 1.5, "spa_med": 1.3, "finance": 1.4},
31
+ "schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
32
+ "anwalts_kosten_geschaeftsgebuehr": 215,
33
+ "notes": "LG Muenchen 2022. Schadensersatz pro betroffener Person 100 EUR. Abmahn-Welle 2022-2023, Pop-In gegen Wallow/RAK Lenard."
34
+ },
35
+
36
+ "cookie_banner_fehlt": {
37
+ "name": "Cookie-Banner fehlt / pre-Consent-Tracking",
38
+ "rechtsgrundlage": "§ 25 TDDDG + EuGH C-673/17 Planet49",
39
+ "streitwert_eur_min": 1000,
40
+ "streitwert_eur_max": 15000,
41
+ "az_anker": "EuGH C-673/17 Planet49",
42
+ "az_source_url": "https://curia.europa.eu/juris/liste.jsf?num=C-673/17",
43
+ "aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.5, "wettbewerbszentrale": 2.0, "abmahn_anwalt_bekannt": 2.5},
44
+ "branchen_multiplikatoren": {"standard": 1.0, "heilberuf": 1.5, "spa_med": 1.3, "finance": 1.4, "ecommerce": 1.2},
45
+ "schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
46
+ "anwalts_kosten_geschaeftsgebuehr": 887,
47
+ "notes": "Aktive Welle 2023-2025. BfDI-Konsultations-Bescheide variieren stark."
48
+ },
49
+
50
+ "impressum_unvollstaendig": {
51
+ "name": "Impressum unvollstaendig oder verdeckt platziert",
52
+ "rechtsgrundlage": "§ 5 DDG (ehemals § 5 TMG)",
53
+ "streitwert_eur_min": 1500,
54
+ "streitwert_eur_max": 5000,
55
+ "az_anker": "BGH I ZR 218/07 Fehlendes Impressum",
56
+ "az_source_url": "https://juris.bundesgerichtshof.de/cgi-bin/rechtsprechung/document.py?Gericht=bgh&Art=en&sid=&nr=46651",
57
+ "aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.5, "wettbewerbszentrale": 2.0, "abmahn_anwalt_bekannt": 2.5},
58
+ "branchen_multiplikatoren": {"standard": 1.0, "heilberuf": 1.5},
59
+ "schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
60
+ "anwalts_kosten_geschaeftsgebuehr": 627,
61
+ "notes": "Klassischer Wettbewerbszentrale-Abmahn-Vektor. 2-Klick-Regel BGH 2007."
62
+ },
63
+
64
+ "newsletter_ohne_doi": {
65
+ "name": "Newsletter ohne Double-Opt-In",
66
+ "rechtsgrundlage": "§ 7 Abs. 2 Nr. 2 UWG + Art. 6 DSGVO",
67
+ "streitwert_eur_min": 3000,
68
+ "streitwert_eur_max": 10000,
69
+ "az_anker": "BGH I ZR 218/07 (Single-Opt-In unzureichend)",
70
+ "az_source_url": "https://juris.bundesgerichtshof.de/cgi-bin/rechtsprechung/document.py?Gericht=bgh&Art=en&sid=&nr=46651",
71
+ "aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.5, "wettbewerbszentrale": 2.0, "abmahn_anwalt_bekannt": 2.5},
72
+ "branchen_multiplikatoren": {"standard": 1.0, "ecommerce": 1.2, "saas": 1.1},
73
+ "schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
74
+ "anwalts_kosten_geschaeftsgebuehr": 745,
75
+ "notes": "BGH 11.03.2004. DOI ist Pflicht (selbst bei Bestandskunden teils unklar). Aktive Welle 2024-2025 (Gravenreuth)."
76
+ },
77
+
78
+ "agb_b2c_unwirksame_klausel": {
79
+ "name": "AGB B2C mit unwirksamer Klausel (§§ 305-310 BGB)",
80
+ "rechtsgrundlage": "§§ 305 ff. BGB + UWG § 3a iVm § 1 UKlaG",
81
+ "streitwert_eur_min": 2500,
82
+ "streitwert_eur_max": 15000,
83
+ "az_anker": "BGH XI ZR 26/20 (Genehmigungsfiktion AGB-Aenderung) + BGH VIII ZR 70/08 (Widerrufsbelehrung)",
84
+ "az_source_url": "https://juris.bundesgerichtshof.de/cgi-bin/rechtsprechung/document.py?Gericht=bgh&Art=en&nr=59258",
85
+ "aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.8, "wettbewerbszentrale": 2.2, "abmahn_anwalt_bekannt": 2.5},
86
+ "branchen_multiplikatoren": {"standard": 1.0, "ecommerce": 1.3, "saas": 1.2, "finance": 1.5},
87
+ "schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
88
+ "anwalts_kosten_geschaeftsgebuehr": 887,
89
+ "notes": "Verbraucherzentralen-Hauptvektor. Mehrere unwirksame Klauseln = additive Streitwerte."
90
+ },
91
+
92
+ "drittland_us_ohne_scc": {
93
+ "name": "Drittland-Transfer USA ohne SCC / TIA",
94
+ "rechtsgrundlage": "Art. 44 ff. DSGVO + EuGH Schrems II",
95
+ "streitwert_eur_min": 10000,
96
+ "streitwert_eur_max": 100000,
97
+ "az_anker": "EuGH C-311/18 Schrems II",
98
+ "az_source_url": "https://curia.europa.eu/juris/liste.jsf?num=C-311/18",
99
+ "aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.5, "wettbewerbszentrale": 2.0, "datenschutzbehoerde": 3.0, "abmahn_anwalt_bekannt": 2.5},
100
+ "branchen_multiplikatoren": {"standard": 1.0, "heilberuf": 2.0, "finance": 2.0, "medtech": 2.5},
101
+ "schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
102
+ "anwalts_kosten_geschaeftsgebuehr": 1953,
103
+ "notes": "BfDI-Bescheide bis 35M EUR (H&M 2020). Schrems-II-Risiko bei jedem US-Provider ohne DPF + zusaetzliche TIA."
104
+ },
105
+
106
+ "art13_datenschutzerklaerung_unvollstaendig": {
107
+ "name": "Datenschutzerklaerung unvollstaendig (Art. 13/14 DSGVO)",
108
+ "rechtsgrundlage": "Art. 13/14 DSGVO + Art. 83 Abs. 5(b)",
109
+ "streitwert_eur_min": 2000,
110
+ "streitwert_eur_max": 25000,
111
+ "az_anker": "BfDI/LDI-Bescheide 2021-2025 (§-Norm-Anker — Art. 83(5)(b) DSGVO; einzelne Bescheide siehe references/bgh-urteile.md fuer EuGH C-300/21 + C-340/21 + C-687/21)",
112
+ "az_source_url": "https://www.bfdi.bund.de/DE/Service/Taetigkeitsberichte/Taetigkeitsberichte_node.html",
113
+ "aktor_multiplikatoren": {"standard": 1.0, "datenschutzbehoerde": 3.0, "verbraucherzentrale": 1.5, "wettbewerbszentrale": 1.8},
114
+ "branchen_multiplikatoren": {"standard": 1.0, "heilberuf": 2.0, "finance": 1.5, "ecommerce": 1.2},
115
+ "schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
116
+ "anwalts_kosten_geschaeftsgebuehr": 887,
117
+ "notes": "Art. 83(5)(b) DSGVO erlaubt bis 20M EUR / 4%. Realistic 5-25k bei mittelstaendischen Verstoessen."
118
+ },
119
+
120
+ "datenpanne_keine_meldung_72h": {
121
+ "name": "Datenpanne keine Meldung an Behoerde binnen 72h",
122
+ "rechtsgrundlage": "Art. 33 DSGVO + EuGH C-340/21",
123
+ "streitwert_eur_min": 25000,
124
+ "streitwert_eur_max": 500000,
125
+ "az_anker": "EuGH C-340/21 Bulgarische Steuerbehoerde",
126
+ "az_source_url": "https://curia.europa.eu/juris/liste.jsf?num=C-340/21",
127
+ "aktor_multiplikatoren": {"standard": 1.0, "datenschutzbehoerde": 3.0, "betroffener_individuell": 1.5},
128
+ "branchen_multiplikatoren": {"standard": 1.0, "heilberuf": 2.5, "finance": 2.5, "medtech": 2.5},
129
+ "schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
130
+ "anwalts_kosten_geschaeftsgebuehr": 4127,
131
+ "notes": "Art. 83(4) DSGVO bis 10M EUR / 2%. Skalliert mit Anzahl betroffener Personen + Datenkategorie (Art-9 4x)."
132
+ },
133
+
134
+ "eudr_geolocation_fehlt": {
135
+ "name": "EUDR Geolocation pro Plot fehlt",
136
+ "rechtsgrundlage": "Art. 9 EUDR (VO 2023/1115)",
137
+ "streitwert_eur_min": 50000,
138
+ "streitwert_eur_max": 2000000,
139
+ "az_anker": "EUDR Art. 25 (§-Norm-Anker, keine Case-Law — Erstanwendung 30.12.2025 erwartet)",
140
+ "az_source_url": "https://eur-lex.europa.eu/eli/reg/2023/1115/oj",
141
+ "aktor_multiplikatoren": {"standard": 1.0, "nationale_behoerde": 3.0},
142
+ "branchen_multiplikatoren": {"standard": 1.0, "kaffee_importer": 1.5, "kakao_importer": 1.5, "soja_importer": 1.5, "palmoel_importer": 2.0},
143
+ "schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
144
+ "anwalts_kosten_geschaeftsgebuehr": 12000,
145
+ "notes": "Art. 25(2) EUDR: bis 4% des Unionsweiten Jahresumsatzes. Konfiskation der Ware (Art. 25(3)). Marktausschluss bis 12 Monate (Art. 25(4))."
146
+ },
147
+
148
+ "ai_act_verbotene_praktik": {
149
+ "name": "AI-Act verbotene Praktik (Art. 5)",
150
+ "rechtsgrundlage": "Art. 5 AI Act (VO 2024/1689) — seit 02.02.2025",
151
+ "streitwert_eur_min": 1000000,
152
+ "streitwert_eur_max": 35000000,
153
+ "az_anker": "Art. 99 Abs. 3 AI Act (§-Norm-Anker, keine Case-Law — Erstanwendung Q2/2025 erwartet)",
154
+ "az_source_url": "https://eur-lex.europa.eu/eli/reg/2024/1689/oj",
155
+ "aktor_multiplikatoren": {"standard": 1.0, "nationale_behoerde": 3.0, "eu_ai_office": 3.5},
156
+ "branchen_multiplikatoren": {"standard": 1.0, "hr": 2.0, "finance": 2.0, "edtech": 1.8, "behoerde": 2.5},
157
+ "schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
158
+ "anwalts_kosten_geschaeftsgebuehr": 36000,
159
+ "notes": "Art. 99(3): bis 35M EUR oder 7% weltweiter Jahresumsatz. Inkraft seit 02.02.2025."
160
+ },
161
+
162
+ "bfsg_barrierefreiheit_fehlt": {
163
+ "name": "BFSG Barrierefreiheit fehlt (B2C E-Commerce)",
164
+ "rechtsgrundlage": "BFSG + EN 301 549 / WCAG 2.1 AA",
165
+ "streitwert_eur_min": 5000,
166
+ "streitwert_eur_max": 100000,
167
+ "az_anker": "§ 22 BFSG iVm § 16 BFSGV (§-Norm-Anker, keine Case-Law — Stichtag 28.06.2025)",
168
+ "az_source_url": "https://www.gesetze-im-internet.de/bfsg/",
169
+ "aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.5, "behoerde": 2.5, "verband_blindeb_behind": 2.0},
170
+ "branchen_multiplikatoren": {"standard": 1.0, "ecommerce": 1.3, "banking": 1.5},
171
+ "schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
172
+ "anwalts_kosten_geschaeftsgebuehr": 1100,
173
+ "notes": "Stichtag 28.06.2025 fuer alle B2C-E-Commerce ab Schwellenwerten. § 22 BFSG: bis 100k EUR Bussgeld."
174
+ }
175
+ }
176
+ }