@aegis-scan/skills 0.5.0 → 0.5.1

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 (346) 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/HANDOVER-LO-LIVE-VERIFICATION-2026-05-15.md +187 -0
  7. package/skills/compliance/aegis-native/brutaler-anwalt/README.md +9 -3
  8. package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +93 -14
  9. package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
  10. package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
  11. package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
  12. package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
  13. package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
  14. package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
  15. package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
  16. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
  17. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
  18. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
  19. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
  20. package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
  21. package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
  22. package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +60 -5
  23. package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +745 -11
  24. package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
  25. package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +106 -30
  26. package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +247 -2
  27. package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +75 -2
  28. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
  29. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
  30. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
  31. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
  32. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
  33. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
  34. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
  35. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
  36. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
  37. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
  38. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
  39. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
  40. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
  41. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
  42. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
  43. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
  44. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
  45. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
  46. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
  47. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
  48. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
  49. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
  50. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
  51. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
  52. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
  53. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
  54. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
  55. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
  56. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
  57. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
  58. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
  59. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
  60. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
  61. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
  62. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
  63. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
  64. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
  65. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
  66. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
  67. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
  68. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
  69. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
  70. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
  71. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
  72. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
  73. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
  74. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
  75. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
  76. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
  77. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
  78. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
  79. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
  80. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
  81. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
  82. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
  83. package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +55 -8
  84. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
  85. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
  86. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
  87. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
  88. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
  89. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
  90. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
  91. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +4 -1
  92. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
  93. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
  94. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
  95. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
  96. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
  97. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
  98. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
  99. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
  100. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
  101. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
  102. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
  103. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
  104. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
  105. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
  106. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +3 -0
  107. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
  108. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
  109. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
  110. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
  111. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
  112. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
  113. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
  114. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
  115. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
  116. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
  117. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
  118. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
  119. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
  120. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
  121. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
  122. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
  123. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
  124. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
  125. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
  126. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
  127. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
  128. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
  129. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
  130. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
  131. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
  132. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
  133. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
  134. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +3 -2
  135. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
  136. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
  137. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +71 -3
  138. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
  139. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
  140. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
  141. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
  142. package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +115 -9
  143. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +1 -1
  144. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
  145. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
  146. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
  147. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
  148. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
  149. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
  150. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
  151. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
  152. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
  153. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
  154. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
  155. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
  156. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
  157. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
  158. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
  159. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
  160. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
  161. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
  162. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
  163. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
  164. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
  165. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
  166. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
  167. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
  168. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
  169. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
  170. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
  171. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
  172. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
  173. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
  174. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
  175. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
  176. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
  177. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
  178. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
  179. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
  180. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
  181. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
  182. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
  183. package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
  184. package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
  185. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +80 -0
  186. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
  187. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
  188. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
  189. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
  190. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
  191. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
  192. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
  193. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
  194. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
  195. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
  196. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
  197. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +190 -48
  198. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
  199. package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
  200. package/skills/defensive/permoon-fork/README.md +40 -0
  201. package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
  202. package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
  203. package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
  204. package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
  205. package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +1 -1
  206. package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
  207. package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
  208. package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
  209. package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
  210. package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
  211. package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
  212. package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
  213. package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
  214. package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
  215. package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
  216. package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
  217. package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
  218. package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
  219. package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
  220. package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
  221. package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
  222. package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
  223. package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
  224. package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
  225. package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
  226. package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
  227. package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
  228. package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
  229. package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
  230. package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
  231. package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
  232. package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
  233. package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
  234. package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
  235. package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
  236. package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
  237. package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
  238. package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
  239. package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
  240. package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
  241. package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
  242. package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
  243. package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
  244. package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
  245. package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
  246. package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
  247. package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
  248. package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
  249. package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
  250. package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
  251. package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
  252. package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
  253. package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
  254. package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
  255. package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
  256. package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
  257. package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
  258. package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
  259. package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
  260. package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
  261. package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
  262. package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
  263. package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
  264. package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
  265. package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
  266. package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
  267. package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
  268. package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
  269. package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
  270. package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
  271. package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
  272. package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
  273. package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
  274. package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
  275. package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
  276. package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
  277. package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
  278. package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
  279. package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
  280. package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
  281. package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
  282. package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
  283. package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
  284. package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
  285. package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
  286. package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
  287. package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
  288. package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
  289. package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
  290. package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
  291. package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
  292. package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
  293. package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
  294. package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
  295. package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
  296. package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
  297. package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
  298. package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
  299. package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
  300. package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
  301. package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
  302. package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
  303. package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
  304. package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
  305. package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
  306. package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
  307. package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
  308. package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
  309. package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
  310. package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
  311. package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
  312. package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
  313. package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
  314. package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
  315. package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
  316. package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
  317. package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
  318. package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
  319. package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
  320. package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
  321. package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
  322. package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
  323. package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
  324. package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
  325. package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
  326. package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
  327. package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
  328. package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
  329. package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
  330. package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
  331. package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
  332. package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
  333. package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
  334. package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
  335. package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
  336. package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
  337. package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
  338. package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
  339. package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
  340. package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
  341. package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
  342. package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
  343. package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
  344. package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
  345. package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
  346. package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
@@ -0,0 +1,87 @@
1
+ ---
2
+ license: MIT (snippet) / Vendor-Doc separat
3
+ provider: Anthropic, PBC (USA — Delaware-PBC)
4
+ provider-AVV-status: Standardvertrag verfuegbar (DPA + EU-SCC)
5
+ last-checked: 2026-05-02
6
+ purpose: Anthropic Claude API DPA + Compliance.
7
+ ---
8
+
9
+ # Anthropic Claude — TOMs + DPA + DSE-Wording
10
+
11
+ ## 1. Default-Verhalten
12
+
13
+ - Datenstandort: US (default)
14
+ - EU-Region: Beta verfuegbar (Stand 2026-05, Konto-Setting in Anthropic-Console)
15
+ - Trainings-Opt-Out fuer API-Daten Pflicht-Setting (Default = Opt-Out, kein Training auf API-Daten)
16
+ - Sub-Processor: AWS, GCP
17
+
18
+ ## 2. Compliance-Risiken
19
+
20
+ | Risiko | Wirkung | Fix |
21
+ |---|---|---|
22
+ | Default-Region US | Schrems II / DPF-Risiko | EU-Region waehlen wenn verfuegbar |
23
+ | Trainings-Opt-Out nicht aktiviert | Daten in Modell-Training | Opt-Out im Account-Setting (Default OK aber pruefen) |
24
+ | Prompt-Speicherung | Compliance-relevant | Zero-Retention-Vereinbarung anfragen |
25
+ | AVV ohne EU-SCC | Drittland-Pflichtverletzung | DPA mit SCC abschliessen |
26
+
27
+ ## 3. Code-Pattern (Next.js + Anthropic SDK)
28
+
29
+ ```ts
30
+ // File: src/lib/anthropic.ts
31
+ import Anthropic from '@anthropic-ai/sdk';
32
+
33
+ export const anthropic = new Anthropic({
34
+ apiKey: process.env.ANTHROPIC_API_KEY,
35
+ // Optional: EU-Region (wenn verfuegbar)
36
+ // baseURL: 'https://api.eu.anthropic.com',
37
+ });
38
+
39
+ export async function chat(messages: Anthropic.MessageParam[]) {
40
+ // PII-Pre-Filter (Datenminimierung)
41
+ const sanitized = messages.map(m => ({
42
+ ...m,
43
+ content: redactPII(typeof m.content === 'string' ? m.content : ''),
44
+ }));
45
+
46
+ const response = await anthropic.messages.create({
47
+ model: 'claude-opus-4-7',
48
+ max_tokens: 1024,
49
+ messages: sanitized,
50
+ });
51
+
52
+ return response;
53
+ }
54
+
55
+ function redactPII(text: string): string {
56
+ return text
57
+ .replace(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g, '[REDACTED_EMAIL]')
58
+ .replace(/\b(?:\+49|0)[0-9 \-/]+\d/g, '[REDACTED_PHONE]')
59
+ .replace(/\bDE\d{20}\b/gi, '[REDACTED_IBAN]');
60
+ }
61
+ ```
62
+
63
+ ## 4. AVV / DPA
64
+
65
+ - **DPA-Link**: https://www.anthropic.com/legal/dpa
66
+ - **Trust Center**: https://trust.anthropic.com/
67
+ - **EU-SCC**: Modul 2 + 3
68
+ - **Sub-Processors**: https://trust.anthropic.com/sub-processors
69
+
70
+ ## 5. DSE-Wording-Vorlage
71
+
72
+ > Wir nutzen Claude (Anthropic, PBC, 548 Market St PMB 90375, San Francisco, USA)
73
+ > als Auftragsverarbeiter im Sinne von Art. 28 DSGVO. Anthropic ist DPF-zertifiziert.
74
+ > EU-SCC Modul 2+3 abgeschlossen. Trainings-Opt-Out ist aktiviert. Datenschutzhinweise:
75
+ > https://www.anthropic.com/legal/privacy.
76
+
77
+ ## 6. AI-Act-Compliance
78
+
79
+ - Claude ist GPAI-Modell — Anbieter-Pflichten Art. 53 ist Anthropic-Pflicht
80
+ - Operator-seitig: Pflicht zum Art. 50-Hinweis im Chat-UI
81
+ - Bei Hochrisiko-Use-Case: vollstaendige Annex-III-Pflichten + FRIA
82
+
83
+ ## 7. Cross-Reference
84
+
85
+ - AI-Act GPAI: `gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md`
86
+ - AI-Act Art. 50: `gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md`
87
+ - Audit-Pattern Phase 5e (AI-Chatbot): `audit-patterns.md`
@@ -0,0 +1,202 @@
1
+ ---
2
+ license: MIT (snippet)
3
+ provider: Astro (Open-Source)
4
+ last-checked: 2026-05-05
5
+ purpose: Astro Cookie-Banner Pattern mit View-Transitions + Island-Hydration + client-seitiger Consent-Init.
6
+ ---
7
+
8
+ # Astro — Cookie-Banner (Pattern)
9
+
10
+ ## Trigger / Detection
11
+
12
+ Repo enthaelt:
13
+ - `astro.config.mjs` / `astro.config.ts` mit `integrations: [...]`
14
+ - `src/layouts/*.astro` Layout-Komponenten
15
+ - `client:load` / `client:idle` / `client:visible` Direktiven in `.astro` Files
16
+ - `<ClientRouter />` (View-Transitions) in Layout
17
+ - Optional: `@astrojs/react` / `@astrojs/vue` / `@astrojs/svelte` integration
18
+
19
+ Astro ist Static-First, das heisst Cookie-Banner muss als Island laufen (`client:load`) — sonst wird er statisch gepre-rendered und JavaScript-Logik feuert nicht.
20
+
21
+ ## Default-Verhalten (was passiert ohne Konfiguration)
22
+
23
+ - Astro pre-rendered `.astro` Files zu HTML — Banner-State (zeigen/nicht zeigen) ist NICHT pro Visitor differenziert
24
+ - Ohne `client:*`-Direktive feuert kein JS, also liest Banner kein localStorage
25
+ - Mit View-Transitions-Router muss Banner `transition:persist` haben sonst remount bei jeder Navigation
26
+ - Tracker-Scripts (Plausible, Umami, Google Analytics) werden via `<script>` in Layout typischerweise SOFORT geladen — vor jeder Consent-Pruefung
27
+
28
+ Resultat ohne Anpassung: Tracker laeuft trotz fehlendem Consent. § 25 TDDDG-Verstoss.
29
+
30
+ ## Compliance-Risiken
31
+
32
+ | Risiko | Norm | Severity | Fix |
33
+ |---|---|---|---|
34
+ | Tracker laedt vor Consent (Astro `<script>` im Head) | § 25 TDDDG | KRITISCH | Tracker als Island mit `client:idle` + Consent-Gate |
35
+ | Banner remountet pro View-Transition | DSGVO Art. 7 (Nachweisbarkeit) | MITTEL | `transition:persist` setzen |
36
+ | Static-Build cached Banner-State | DSGVO Art. 25 | HOCH | Banner ausschliesslich via `client:load` initialisieren |
37
+ | Drittland-Transfer durch CDN-Tracker | Art. 44-46 DSGVO | KRITISCH | EU-Region-Provider + AVV + TIA |
38
+ | Pre-Tick im Settings-Modal | EuGH C-673/17 Planet49 | KRITISCH | Default = false fuer alle Nicht-Notwendigen |
39
+
40
+ ## Code-Pattern (sanitized)
41
+
42
+ ```astro
43
+ ---
44
+ // File: src/layouts/BaseLayout.astro
45
+ import CookieBanner from '../components/CookieBanner.tsx';
46
+ import { ClientRouter } from 'astro:transitions';
47
+ ---
48
+ <!doctype html>
49
+ <html lang="de">
50
+ <head>
51
+ <meta charset="UTF-8" />
52
+ <title><slot name="title">{Astro.props.title ?? '<placeholder-site-name>'}</slot></title>
53
+ <ClientRouter />
54
+ {/* KEIN Tracker-Script hier — erst nach Consent via Island */}
55
+ </head>
56
+ <body>
57
+ <slot />
58
+ {/* transition:persist verhindert Remount bei View-Transitions */}
59
+ <CookieBanner client:load transition:persist="cookie-banner" />
60
+ </body>
61
+ </html>
62
+ ```
63
+
64
+ ```tsx
65
+ // File: src/components/CookieBanner.tsx (React-Island)
66
+ import { useEffect, useState } from 'react';
67
+
68
+ type Consent = {
69
+ necessary: true;
70
+ analytics: boolean;
71
+ marketing: boolean;
72
+ timestamp?: string;
73
+ version: '1.0';
74
+ };
75
+
76
+ const STORAGE_KEY = 'cookie-consent';
77
+
78
+ export default function CookieBanner() {
79
+ const [open, setOpen] = useState(false);
80
+ const [consent, setConsent] = useState<Consent>({
81
+ necessary: true,
82
+ analytics: false, // Default false — Opt-In Pflicht
83
+ marketing: false,
84
+ version: '1.0',
85
+ });
86
+
87
+ useEffect(() => {
88
+ const stored = localStorage.getItem(STORAGE_KEY);
89
+ if (!stored) setOpen(true);
90
+ else {
91
+ const parsed = JSON.parse(stored) as Consent;
92
+ if (parsed.analytics) loadAnalytics();
93
+ if (parsed.marketing) loadMarketing();
94
+ }
95
+ }, []);
96
+
97
+ const persist = (c: Consent) => {
98
+ const final = { ...c, timestamp: new Date().toISOString() };
99
+ localStorage.setItem(STORAGE_KEY, JSON.stringify(final));
100
+ fetch('/api/consent-log', {
101
+ method: 'POST',
102
+ headers: { 'Content-Type': 'application/json' },
103
+ body: JSON.stringify(final),
104
+ });
105
+ if (final.analytics) loadAnalytics();
106
+ if (final.marketing) loadMarketing();
107
+ setOpen(false);
108
+ };
109
+
110
+ if (!open) return null;
111
+
112
+ return (
113
+ <aside role="dialog" aria-label="Cookie-Einwilligung" className="cookie-banner">
114
+ <p>
115
+ Wir verwenden Cookies fuer notwendige Funktionen. Mit Ihrer Einwilligung
116
+ zusaetzlich fuer Analyse und Marketing. Details:{' '}
117
+ <a href="/datenschutz">Datenschutzerklaerung</a>.
118
+ </p>
119
+ <div className="cookie-actions">
120
+ {/* Buttons gleichwertig (OLG Koeln 6 U 80/23) */}
121
+ <button onClick={() => persist({ ...consent, analytics: false, marketing: false })}>
122
+ Nur Notwendige
123
+ </button>
124
+ <button onClick={() => persist({ ...consent, analytics: true, marketing: true })}>
125
+ Alle akzeptieren
126
+ </button>
127
+ </div>
128
+ </aside>
129
+ );
130
+ }
131
+
132
+ function loadAnalytics() {
133
+ const s = document.createElement('script');
134
+ s.src = 'https://<placeholder-eu-analytics-host>/script.js';
135
+ s.defer = true;
136
+ document.head.appendChild(s);
137
+ }
138
+
139
+ function loadMarketing() {
140
+ // Lade Marketing-Pixel erst nach Consent
141
+ }
142
+ ```
143
+
144
+ ## AVV / DPA
145
+
146
+ Pflicht-AVV-Partner bei Default-Astro-Stack:
147
+ - Hosting-Provider (Netlify / Vercel / Self-host) — Art. 28 DSGVO
148
+ - CDN (Cloudflare / Bunny.net) — bei Drittland: SCC + TIA
149
+ - Analytics-Provider (Plausible EU / Umami self-hosted) — AVV bei Plausible.io B.V.
150
+ - Optional: Image-CDN (Cloudinary / imgix) bei `<Image>` Component
151
+
152
+ Pflicht-Dokumentation: `/datenschutz` Section "Auftragsverarbeiter" mit Tabelle (Anbieter, Sitz, Zweck, Rechtsgrundlage).
153
+
154
+ ## DSE-Wording-Vorlage
155
+
156
+ ```markdown
157
+ ### Cookies und vergleichbare Technologien
158
+
159
+ Diese Website nutzt Cookies und browserseitigen Speicher (`localStorage`) fuer
160
+ folgende Zwecke:
161
+
162
+ **Notwendige Cookies (Rechtsgrundlage: § 25 Abs. 2 Nr. 2 TDDDG)**
163
+ - `cookie-consent` — speichert Ihre Einwilligungs-Entscheidung
164
+ (Speicherdauer: 12 Monate, kein Tracking)
165
+ - Session-Cookie fuer Login (falls vorhanden)
166
+
167
+ **Analyse-Cookies (Rechtsgrundlage: § 25 Abs. 1 TDDDG i.V.m. Art. 6 Abs. 1
168
+ lit. a DSGVO — Einwilligung)**
169
+ - `<placeholder-analytics-cookie>` — Webseiten-Statistiken
170
+ - Anbieter: <placeholder-analytics-provider>, EU-Hosting
171
+ - Speicherdauer: <placeholder-days> Tage
172
+
173
+ **Widerruf:** Sie koennen Ihre Einwilligung jederzeit widerrufen ueber
174
+ [Cookie-Einstellungen](#cookie-settings) im Footer.
175
+ ```
176
+
177
+ ## Verify-Commands (Live-Probe)
178
+
179
+ ```bash
180
+ # 1. Pre-Consent: kein Tracker-Script geladen
181
+ curl -sS https://<placeholder-domain>/ | grep -ic "<placeholder-analytics-host>"
182
+ # Erwartung: 0
183
+
184
+ # 2. Banner sichtbar fuer neue Visitors
185
+ curl -sS https://<placeholder-domain>/ | grep -ic "cookie-banner\|cookie-einwilligung"
186
+ # Erwartung: >=1
187
+
188
+ # 3. Playwright: Tracker erst nach Accept
189
+ npx playwright codegen https://<placeholder-domain>/
190
+ # Manuelle Pruefung: Network-Tab vor + nach Accept
191
+
192
+ # 4. View-Transition-persist
193
+ # Navigiere ueber 3 Pages mit aktivem Banner — Banner darf nicht doppelt rendern
194
+ ```
195
+
196
+ ## Cross-References
197
+
198
+ - AEGIS-Scanner: `cookie-audit.ts`, `tracking-scan.ts`, `consent-flow-checker.ts`
199
+ - Skill-Reference: `references/dsgvo.md` § 25 TDDDG, Art. 7 DSGVO
200
+ - BGH-Rechtsprechung: `references/bgh-urteile.md` BGH I ZR 7/16 (Planet49-Folgeentscheidung)
201
+ - EuGH: `references/eu-eugh-dsgvo-schadensersatz.md` C-673/17 Planet49
202
+ - Audit-Pattern: `references/audit-patterns.md` Phase 2 (Cookie-Audit)
@@ -0,0 +1,198 @@
1
+ ---
2
+ license: MIT (snippet)
3
+ provider: Astro (Open-Source)
4
+ last-checked: 2026-05-05
5
+ purpose: Astro Static-MD/MDX Datenschutzerklaerung-Rendering-Pattern mit Content-Collections.
6
+ ---
7
+
8
+ # Astro — DSE-Section Pattern (MD/MDX)
9
+
10
+ ## Trigger / Detection
11
+
12
+ Repo enthaelt:
13
+ - `src/content/legal/*.md` oder `*.mdx` Files
14
+ - `astro:content` Collections-API in `src/content/config.ts`
15
+ - Routes wie `/datenschutz`, `/impressum`, `/agb` als statische Pages
16
+ - Optional: `@astrojs/mdx` integration in `astro.config.mjs`
17
+
18
+ Pattern: DSE wird als Markdown geschrieben (versionierbar, diff-bar, durch Lawyer reviewbar) und via Astro Content-Collections gerendert. Static-Build = max. Performance, kein Server-Roundtrip.
19
+
20
+ ## Default-Verhalten (was passiert ohne Konfiguration)
21
+
22
+ - DSE-Inhalte oft inline in `.astro` Page-File → Versions-Diff schwer
23
+ - Keine `last-updated` Metadaten → Drift zur Realitaet nicht erkennbar
24
+ - Keine Anker-Links zu Sub-Sektionen → Footer-Links auf "#cookies" funktionieren nicht
25
+ - DSE wird statisch gepre-rendered ohne `lang`-Attribut → Screen-Reader Probleme
26
+
27
+ ## Compliance-Risiken
28
+
29
+ | Risiko | Norm | Severity | Fix |
30
+ |---|---|---|---|
31
+ | DSE outdated (kein Datum sichtbar) | Art. 13 DSGVO Transparenz | HOCH | Frontmatter `last-updated` rendern |
32
+ | Auftragsverarbeiter-Liste fehlt | Art. 28 DSGVO | HOCH | DSE-Section "Auftragsverarbeiter" Pflicht |
33
+ | Ankerlinks defekt | Art. 12 DSGVO Klarheit | MITTEL | Auto-generierte Heading-IDs |
34
+ | Sprache nicht ausgewiesen | BITV 2.0 Barrierefreiheit | MITTEL | `<html lang="de">` Pflicht |
35
+ | Versions-Historie fehlt | Art. 5 Abs. 2 Rechenschaft | MITTEL | Git-blame als Audit-Trail + DSE-Changelog |
36
+
37
+ ## Code-Pattern (sanitized)
38
+
39
+ ```typescript
40
+ // File: src/content/config.ts
41
+ import { defineCollection, z } from 'astro:content';
42
+
43
+ const legal = defineCollection({
44
+ type: 'content',
45
+ schema: z.object({
46
+ title: z.string(),
47
+ section: z.enum(['datenschutz', 'impressum', 'agb', 'widerrufsbelehrung']),
48
+ lastUpdated: z.coerce.date(),
49
+ version: z.string(),
50
+ author: z.string(), // z.B. "<placeholder-legal-counsel>"
51
+ }),
52
+ });
53
+
54
+ export const collections = { legal };
55
+ ```
56
+
57
+ ```markdown
58
+ <!-- File: src/content/legal/datenschutz.md -->
59
+ ---
60
+ title: Datenschutzerklaerung
61
+ section: datenschutz
62
+ lastUpdated: 2026-05-05
63
+ version: "2.3"
64
+ author: "<placeholder-legal-counsel>"
65
+ ---
66
+
67
+ ## 1. Verantwortliche Stelle
68
+
69
+ <placeholder-company-name>
70
+ <placeholder-street>
71
+ <placeholder-postal-code> <placeholder-city>
72
+ E-Mail: <placeholder-email>
73
+
74
+ ## 2. Erhobene Daten und Zwecke
75
+
76
+ | Datum | Zweck | Rechtsgrundlage | Speicherdauer |
77
+ |---|---|---|---|
78
+ | Server-Logs (anonymisiert) | Sicherheit, Stabilitaet | Art. 6 Abs. 1 lit. f | 14 Tage |
79
+ | Cookie-Consent | Nachweis Einwilligung | Art. 7 DSGVO | 12 Monate |
80
+ | Analytics (mit Consent) | Webseiten-Optimierung | Art. 6 Abs. 1 lit. a | <placeholder-days> Tage |
81
+
82
+ ## 3. Auftragsverarbeiter
83
+
84
+ | Anbieter | Sitz | Zweck | AVV |
85
+ |---|---|---|---|
86
+ | <placeholder-hosting-provider> | <placeholder-eu-country> | Hosting | Ja |
87
+ | <placeholder-analytics-provider> | <placeholder-eu-country> | Webanalyse | Ja |
88
+
89
+ ## 4. Ihre Rechte
90
+
91
+ Sie haben das Recht auf:
92
+ - Auskunft (Art. 15 DSGVO)
93
+ - Berichtigung (Art. 16 DSGVO)
94
+ - Loeschung (Art. 17 DSGVO)
95
+ - Einschraenkung (Art. 18 DSGVO)
96
+ - Datenuebertragbarkeit (Art. 20 DSGVO)
97
+ - Widerspruch (Art. 21 DSGVO)
98
+ - Beschwerde bei Aufsichtsbehoerde (Art. 77 DSGVO)
99
+
100
+ Kontakt: <placeholder-email>
101
+ ```
102
+
103
+ ```astro
104
+ ---
105
+ // File: src/pages/datenschutz.astro
106
+ import { getEntry } from 'astro:content';
107
+ import BaseLayout from '../layouts/BaseLayout.astro';
108
+
109
+ const entry = await getEntry('legal', 'datenschutz');
110
+ if (!entry) throw new Error('Datenschutz-Eintrag fehlt');
111
+
112
+ const { Content, headings } = await entry.render();
113
+ ---
114
+ <BaseLayout title={entry.data.title}>
115
+ <article class="legal">
116
+ <header>
117
+ <h1>{entry.data.title}</h1>
118
+ <p class="meta">
119
+ Version {entry.data.version} —
120
+ Stand: <time datetime={entry.data.lastUpdated.toISOString()}>
121
+ {entry.data.lastUpdated.toLocaleDateString('de-DE')}
122
+ </time>
123
+ </p>
124
+ </header>
125
+
126
+ <nav aria-label="Inhaltsverzeichnis">
127
+ <ol>
128
+ {headings.filter(h => h.depth === 2).map(h => (
129
+ <li><a href={`#${h.slug}`}>{h.text}</a></li>
130
+ ))}
131
+ </ol>
132
+ </nav>
133
+
134
+ <Content />
135
+
136
+ <footer class="legal-footer">
137
+ <p>
138
+ Bei Fragen zur Verarbeitung wenden Sie sich an:
139
+ <a href="mailto:<placeholder-email>"><placeholder-email></a>
140
+ </p>
141
+ </footer>
142
+ </article>
143
+ </BaseLayout>
144
+ ```
145
+
146
+ ## AVV / DPA
147
+
148
+ DSE selbst loest keine AVV aus (statischer Content). ABER:
149
+ - Hosting-Provider liefert die DSE aus → AVV mit Hoster Pflicht
150
+ - CDN cached die DSE → AVV mit CDN-Provider Pflicht
151
+ - DSE-Inhalt MUSS jeden externen Service aus dem Repo (Tracker, Forms, Embed) als Auftragsverarbeiter listen
152
+
153
+ ## DSE-Wording-Vorlage
154
+
155
+ ```markdown
156
+ ### Aenderungen dieser Datenschutzerklaerung
157
+
158
+ Wir behalten uns vor, diese Datenschutzerklaerung anzupassen, falls aenderungen
159
+ am Webseitenbetrieb oder gesetzliche Vorgaben dies erfordern.
160
+
161
+ Die jeweils aktuelle Version ist unter dieser URL abrufbar.
162
+
163
+ **Aktuelle Version:** 2.3
164
+ **Stand:** 5. Mai 2026
165
+ **Aeltere Versionen:** Verfuegbar via Repository-History (Git-Tags
166
+ `legal-vX.Y` unter <placeholder-repo-url>).
167
+ ```
168
+
169
+ ## Verify-Commands (Live-Probe)
170
+
171
+ ```bash
172
+ # 1. DSE erreichbar
173
+ curl -sI https://<placeholder-domain>/datenschutz | head -1
174
+ # Erwartung: HTTP/2 200
175
+
176
+ # 2. last-updated im HTML sichtbar
177
+ curl -sS https://<placeholder-domain>/datenschutz | grep -ic "stand:\|version"
178
+ # Erwartung: >=1
179
+
180
+ # 3. Auftragsverarbeiter-Section vorhanden
181
+ curl -sS https://<placeholder-domain>/datenschutz | grep -ic "auftragsverarbeit"
182
+ # Erwartung: >=1
183
+
184
+ # 4. Sprach-Attribut korrekt
185
+ curl -sS https://<placeholder-domain>/datenschutz | grep -oE 'lang="[a-z]+"' | head -1
186
+ # Erwartung: lang="de"
187
+
188
+ # 5. Anker-Links funktionieren
189
+ curl -sS https://<placeholder-domain>/datenschutz | grep -oE 'id="[^"]+"' | head -10
190
+ ```
191
+
192
+ ## Cross-References
193
+
194
+ - AEGIS-Scanner: `dse-completeness-checker.ts`, `legal-pages-checker.ts`
195
+ - Skill-Reference: `references/dsgvo.md` Art. 13, 14 (Informationspflichten)
196
+ - BGH-Rechtsprechung: `references/bgh-urteile.md` (Transparenz-Anforderungen)
197
+ - DSK-Beschluesse: `references/de-dsk-beschluesse.md` (Auftragsverarbeitung)
198
+ - Audit-Pattern: `references/audit-patterns.md` Phase 1 (DSE-Vollstaendigkeit)
@@ -0,0 +1,193 @@
1
+ ---
2
+ license: MIT (snippet)
3
+ provider: Astro (Open-Source)
4
+ last-checked: 2026-05-05
5
+ purpose: Astro Server-Endpoint Pattern fuer Static-Site-Tracking ohne Client-Fetches an Drittlaender.
6
+ ---
7
+
8
+ # Astro — Server-Endpoint Tracking (Pattern)
9
+
10
+ ## Trigger / Detection
11
+
12
+ Repo enthaelt:
13
+ - `astro.config.mjs` mit `output: 'hybrid'` oder `output: 'server'`
14
+ - `src/pages/api/*.ts` Server-Endpoints
15
+ - Adapter-Integration: `@astrojs/node` / `@astrojs/vercel` / `@astrojs/netlify`
16
+ - Static-Site mit Tracker-Bedarf, der NICHT direkt vom Client an Drittlaender geht
17
+
18
+ Zweck: Tracker-Calls laufen via eigener API-Route (Same-Origin) statt direkt an `<placeholder-tracking-domain>`. Vorteile: kein Drittland-Cookie, IP-Anonymisierung serverseitig, Proxy-Layer fuer DSGVO-Konformitaet.
19
+
20
+ ## Default-Verhalten (was passiert ohne Konfiguration)
21
+
22
+ - `output: 'static'` (Default) erlaubt KEINE Server-Endpoints — Tracker laeuft direkt vom Client
23
+ - Direkte Tracker-Calls senden IP, User-Agent, Referrer ungeschuetzt an Drittland
24
+ - Keine Moeglichkeit zur Daten-Minimierung vor Tracker-Provider
25
+ - Cookie-Sets vom Drittland-Tracker nicht via § 25 TDDDG-konformem Banner gefiltert
26
+
27
+ ## Compliance-Risiken
28
+
29
+ | Risiko | Norm | Severity | Fix |
30
+ |---|---|---|---|
31
+ | Direkter Drittland-Tracker-Call | Art. 44 DSGVO | KRITISCH | Server-Endpoint-Proxy + IP-Hashing |
32
+ | Kein Consent-Check serverseitig | § 25 TDDDG | HOCH | Consent-Cookie pruefen vor Forward |
33
+ | Volle IP an Provider | Art. 5 Abs. 1 lit. c | HOCH | IP-Truncate (letztes Octett /24) |
34
+ | Default-Logs Klartext-IP | Art. 5 Abs. 1 lit. f | MITTEL | Anonymisierung im Endpoint |
35
+ | Astro-SSR-Function in US-Region | Art. 44 DSGVO | KRITISCH | Adapter-Region auf EU pinnen |
36
+
37
+ ## Code-Pattern (sanitized)
38
+
39
+ ```typescript
40
+ // File: src/pages/api/track.ts
41
+ import type { APIRoute } from 'astro';
42
+ import crypto from 'node:crypto';
43
+
44
+ export const prerender = false; // Pflicht: Server-Route
45
+
46
+ const ANALYTICS_ENDPOINT = '<placeholder-eu-analytics-endpoint>';
47
+ const ANALYTICS_TOKEN = import.meta.env.ANALYTICS_TOKEN;
48
+
49
+ export const POST: APIRoute = async ({ request, clientAddress }) => {
50
+ // 1. Consent-Check (Cookie vom Banner)
51
+ const cookie = request.headers.get('cookie') ?? '';
52
+ const consentMatch = /cookie-consent=([^;]+)/.exec(cookie);
53
+ if (!consentMatch) {
54
+ return new Response(JSON.stringify({ blocked: 'no-consent' }), { status: 204 });
55
+ }
56
+ try {
57
+ const consent = JSON.parse(decodeURIComponent(consentMatch[1]));
58
+ if (!consent.analytics) {
59
+ return new Response(JSON.stringify({ blocked: 'analytics-opt-out' }), { status: 204 });
60
+ }
61
+ } catch {
62
+ return new Response(null, { status: 204 });
63
+ }
64
+
65
+ // 2. Body-Validation (kein PII durchlassen)
66
+ const payload = await request.json().catch(() => ({}));
67
+ const safe = {
68
+ path: typeof payload.path === 'string' ? payload.path.slice(0, 200) : '/',
69
+ referrer: typeof payload.referrer === 'string' ? truncateReferrer(payload.referrer) : '',
70
+ timestamp: new Date().toISOString(),
71
+ };
72
+
73
+ // 3. IP-Anonymisierung (letztes Octett auf 0)
74
+ const anonIp = anonymizeIp(clientAddress);
75
+ const ipHash = crypto.createHash('sha256').update(anonIp).digest('hex').slice(0, 16);
76
+
77
+ // 4. Forward an EU-Analytics-Provider
78
+ await fetch(ANALYTICS_ENDPOINT, {
79
+ method: 'POST',
80
+ headers: {
81
+ 'Content-Type': 'application/json',
82
+ Authorization: `Bearer ${ANALYTICS_TOKEN}`,
83
+ },
84
+ body: JSON.stringify({ ...safe, visitorHash: ipHash }),
85
+ });
86
+
87
+ return new Response(null, { status: 204 });
88
+ };
89
+
90
+ function anonymizeIp(ip: string): string {
91
+ if (ip.includes('.')) {
92
+ return ip.replace(/\.\d+$/, '.0'); // IPv4 /24
93
+ }
94
+ if (ip.includes(':')) {
95
+ return ip.split(':').slice(0, 4).join(':') + '::'; // IPv6 /64
96
+ }
97
+ return '0.0.0.0';
98
+ }
99
+
100
+ function truncateReferrer(ref: string): string {
101
+ try {
102
+ const url = new URL(ref);
103
+ return `${url.origin}${url.pathname}`; // Kein Query-String
104
+ } catch {
105
+ return '';
106
+ }
107
+ }
108
+ ```
109
+
110
+ ```astro
111
+ ---
112
+ // File: src/components/PageView.astro
113
+ ---
114
+ <script>
115
+ // Feuert nur nach Consent (siehe cookie-banner-pattern.md)
116
+ const consent = (() => {
117
+ try { return JSON.parse(localStorage.getItem('cookie-consent') ?? '{}'); }
118
+ catch { return {}; }
119
+ })();
120
+
121
+ if (consent.analytics) {
122
+ fetch('/api/track', {
123
+ method: 'POST',
124
+ headers: { 'Content-Type': 'application/json' },
125
+ body: JSON.stringify({
126
+ path: location.pathname,
127
+ referrer: document.referrer,
128
+ }),
129
+ keepalive: true,
130
+ });
131
+ }
132
+ </script>
133
+ ```
134
+
135
+ ## AVV / DPA
136
+
137
+ - Hosting-Adapter (Vercel / Netlify / Node-Self-Host) — Art. 28 DSGVO
138
+ - Analytics-Provider (gewaehlt fuer EU-Region) — AVV + TIA bei Drittland-Backup-Region
139
+ - Optional: Logging-Provider (Datadog / Sentry) — wenn Endpoint-Logs PII enthalten muessen Logs anonymisiert sein
140
+
141
+ DSE-Pflicht-Eintrag: "Daten-Verarbeitung im Auftrag" — Tracker-Provider mit Sitz, EU-Hosting-Region, Speicherdauer, Loeschvereinbarung.
142
+
143
+ ## DSE-Wording-Vorlage
144
+
145
+ ```markdown
146
+ ### Webanalyse via Server-Endpoint
147
+
148
+ Wir verarbeiten Webanalyse-Daten ueber unseren eigenen Server-Endpoint
149
+ (`/api/track`). Daten werden vor Weitergabe an unseren Analytics-Anbieter
150
+ anonymisiert:
151
+
152
+ - IP-Adresse: gekuerzt auf /24-Subnetz (z.B. 192.168.1.0)
153
+ - Referrer: ohne Query-String
154
+ - Visitor-Hash: SHA-256, nicht reversibel
155
+
156
+ **Anbieter:** <placeholder-analytics-provider>, Sitz: <placeholder-eu-country>,
157
+ EU-Hosting-Region: <placeholder-region>.
158
+ **Rechtsgrundlage:** § 25 Abs. 1 TDDDG i.V.m. Art. 6 Abs. 1 lit. a DSGVO
159
+ (Einwilligung).
160
+ **Speicherdauer:** <placeholder-days> Tage, danach automatische Loeschung.
161
+ **Widerruf:** [Cookie-Einstellungen](#cookie-settings) im Footer.
162
+ ```
163
+
164
+ ## Verify-Commands (Live-Probe)
165
+
166
+ ```bash
167
+ # 1. Endpoint blockt ohne Consent-Cookie
168
+ curl -X POST https://<placeholder-domain>/api/track \
169
+ -H "Content-Type: application/json" -d '{"path":"/test"}' -i
170
+ # Erwartung: 204 mit Body {"blocked":"no-consent"}
171
+
172
+ # 2. Endpoint forwarded mit Consent
173
+ curl -X POST https://<placeholder-domain>/api/track \
174
+ -H "Content-Type: application/json" \
175
+ -H 'Cookie: cookie-consent=%7B%22analytics%22%3Atrue%7D' \
176
+ -d '{"path":"/test"}' -i
177
+ # Erwartung: 204
178
+
179
+ # 3. Pruefe IP-Anonymisierung (Provider-Logs)
180
+ # Sollte 192.168.1.0 statt 192.168.1.42 zeigen
181
+
182
+ # 4. Region-Pruefung
183
+ dig <placeholder-domain> | grep -i "edge\|region"
184
+ # Erwartung: EU-Region
185
+ ```
186
+
187
+ ## Cross-References
188
+
189
+ - AEGIS-Scanner: `tracking-scan.ts`, `data-transfer-checker.ts`, `pii-flow-tracker.ts`
190
+ - Skill-Reference: `references/dsgvo.md` Art. 44-46 (Drittland-Transfer), § 25 TDDDG
191
+ - BGH-Rechtsprechung: `references/bgh-urteile.md` BGH I ZR 7/16
192
+ - EDPB: `references/eu-edpb-guidelines.md` Recommendations 01/2020 SCC
193
+ - Audit-Pattern: `references/audit-patterns.md` Phase 3 (Drittland-Audit)