@aegis-scan/skills 0.4.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 (386) hide show
  1. package/ATTRIBUTION.md +204 -0
  2. package/CHANGELOG.md +48 -3
  3. package/package.json +1 -1
  4. package/sbom.cdx.json +1 -1
  5. package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
  6. package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +1080 -0
  7. package/skills/compliance/aegis-native/brutaler-anwalt/HANDOVER-LO-LIVE-VERIFICATION-2026-05-15.md +187 -0
  8. package/skills/compliance/aegis-native/brutaler-anwalt/LICENSE +43 -0
  9. package/skills/compliance/aegis-native/brutaler-anwalt/README.md +242 -0
  10. package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +427 -14
  11. package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
  12. package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
  13. package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
  14. package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
  15. package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
  16. package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
  17. package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
  18. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
  19. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
  20. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
  21. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
  22. package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
  23. package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
  24. package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +63 -9
  25. package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +1581 -10
  26. package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
  27. package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +323 -31
  28. package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +610 -1
  29. package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +107 -1
  30. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
  31. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
  32. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
  33. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
  34. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
  35. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
  36. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
  37. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
  38. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
  39. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
  40. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
  41. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
  42. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
  43. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
  44. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
  45. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
  46. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
  47. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
  48. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
  49. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
  50. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
  51. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
  52. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
  53. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
  54. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
  55. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
  56. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
  57. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
  58. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
  59. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
  60. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
  61. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
  62. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
  63. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
  64. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
  65. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
  66. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
  67. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
  68. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
  69. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
  70. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
  71. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
  72. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
  73. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
  74. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
  75. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
  76. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
  77. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
  78. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
  79. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
  80. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
  81. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
  82. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
  83. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
  84. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
  85. package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +81 -8
  86. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
  87. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
  88. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
  89. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/paragraphs.md +62 -0
  90. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
  91. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/paragraphs.md +85 -0
  92. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
  93. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/paragraphs.md +112 -0
  94. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
  95. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/paragraphs.md +71 -0
  96. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/articles.md +182 -0
  97. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
  98. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +111 -0
  99. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
  100. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
  101. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
  102. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
  103. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
  104. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
  105. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
  106. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
  107. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
  108. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
  109. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
  110. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
  111. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
  112. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
  113. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +134 -0
  114. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
  115. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
  116. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
  117. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
  118. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
  119. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
  120. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
  121. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
  122. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
  123. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
  124. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
  125. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
  126. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
  127. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
  128. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
  129. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
  130. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
  131. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/paragraphs.md +61 -0
  132. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
  133. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/INDEX.md +93 -0
  134. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
  135. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
  136. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
  137. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
  138. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
  139. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
  140. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
  141. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
  142. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
  143. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +68 -0
  144. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
  145. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
  146. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +185 -0
  147. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
  148. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
  149. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/paragraphs.md +57 -0
  150. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
  151. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
  152. package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +137 -9
  153. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +122 -0
  154. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
  155. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/mistral-eu.md +123 -0
  156. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/openai-dpa.md +120 -0
  157. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
  158. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
  159. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
  160. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
  161. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
  162. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/nextauth-tom.md +120 -0
  163. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/supabase-auth-tom.md +104 -0
  164. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
  165. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
  166. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
  167. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
  168. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
  169. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
  170. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
  171. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
  172. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
  173. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
  174. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
  175. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
  176. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
  177. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
  178. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
  179. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
  180. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
  181. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/proxy-csp-pattern.md +93 -0
  182. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/payment/stripe-pci-tom.md +121 -0
  183. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
  184. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
  185. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
  186. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
  187. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
  188. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
  189. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
  190. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
  191. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
  192. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
  193. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
  194. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/plausible-pattern.md +107 -0
  195. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
  196. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
  197. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
  198. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
  199. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
  200. package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
  201. package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
  202. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/AffiliateDisclaimer.tsx.example +54 -0
  203. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/COMPLIANCE-AUDIT-TRAIL-template.md +95 -0
  204. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSE-Section-UGC.md.example +77 -0
  205. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +156 -0
  206. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/LostFoundReportForm-consent.tsx.example +126 -0
  207. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/README.md +33 -0
  208. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/UmamiScript.tsx.example +64 -0
  209. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
  210. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template.md +60 -0
  211. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-cron.ts.example +52 -0
  212. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-workflow.yml.example +47 -0
  213. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/proxy-strict-dynamic.ts.example +80 -0
  214. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/security.txt.example +26 -0
  215. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
  216. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
  217. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
  218. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
  219. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
  220. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
  221. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
  222. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
  223. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
  224. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
  225. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +262 -0
  226. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
  227. package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
  228. package/skills/defensive/aegis-native/rls-defense/SKILL.md +85 -0
  229. package/skills/defensive/permoon-fork/README.md +40 -0
  230. package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
  231. package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
  232. package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
  233. package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
  234. package/skills/foundation/aegis-native/aegis-module-builder/SKILL.md +5 -1
  235. package/skills/foundation/aegis-native/aegis-orchestrator/SKILL.md +87 -4
  236. package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +69 -9
  237. package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
  238. package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
  239. package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
  240. package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
  241. package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
  242. package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
  243. package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
  244. package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
  245. package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
  246. package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
  247. package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
  248. package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
  249. package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
  250. package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
  251. package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
  252. package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
  253. package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
  254. package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
  255. package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
  256. package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
  257. package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
  258. package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
  259. package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
  260. package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
  261. package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
  262. package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
  263. package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
  264. package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
  265. package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
  266. package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
  267. package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
  268. package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
  269. package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
  270. package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
  271. package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
  272. package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
  273. package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
  274. package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
  275. package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
  276. package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
  277. package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
  278. package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
  279. package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
  280. package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
  281. package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
  282. package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
  283. package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
  284. package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
  285. package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
  286. package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
  287. package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
  288. package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
  289. package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
  290. package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
  291. package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
  292. package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
  293. package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
  294. package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
  295. package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
  296. package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
  297. package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
  298. package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
  299. package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
  300. package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
  301. package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
  302. package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
  303. package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
  304. package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
  305. package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
  306. package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
  307. package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
  308. package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
  309. package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
  310. package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
  311. package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
  312. package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
  313. package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
  314. package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
  315. package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
  316. package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
  317. package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
  318. package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
  319. package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
  320. package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
  321. package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
  322. package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
  323. package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
  324. package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
  325. package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
  326. package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
  327. package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
  328. package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
  329. package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
  330. package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
  331. package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
  332. package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
  333. package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
  334. package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
  335. package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
  336. package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
  337. package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
  338. package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
  339. package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
  340. package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
  341. package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
  342. package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
  343. package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
  344. package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
  345. package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
  346. package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
  347. package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
  348. package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
  349. package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
  350. package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
  351. package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
  352. package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
  353. package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
  354. package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
  355. package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
  356. package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
  357. package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
  358. package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
  359. package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
  360. package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
  361. package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
  362. package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
  363. package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
  364. package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
  365. package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
  366. package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
  367. package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
  368. package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
  369. package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
  370. package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
  371. package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
  372. package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
  373. package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
  374. package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
  375. package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
  376. package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
  377. package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
  378. package/skills/offensive/matty-fork/cicd-redteam/SKILL.md +531 -0
  379. package/skills/offensive/matty-fork/cloud-security/SKILL.md +106 -0
  380. package/skills/offensive/matty-fork/container-escape/SKILL.md +174 -0
  381. package/skills/offensive/matty-fork/mobile-pentester/SKILL.md +357 -0
  382. package/skills/offensive/matty-fork/subdomain-takeover/SKILL.md +154 -0
  383. package/skills/osint/elementalsouls-fork/offensive-osint/README.md +92 -0
  384. package/skills/osint/elementalsouls-fork/offensive-osint/SKILL.md +4177 -0
  385. package/skills/osint/elementalsouls-fork/osint-methodology/README.md +66 -0
  386. package/skills/osint/elementalsouls-fork/osint-methodology/SKILL.md +1695 -0
@@ -0,0 +1,231 @@
1
+ ---
2
+ license: MIT (snippet)
3
+ provider: SvelteKit + mdsvex (Open-Source)
4
+ last-checked: 2026-05-05
5
+ purpose: SvelteKit DSE-Pattern mit mdsvex-Markdown + Frontmatter-Versionierung.
6
+ ---
7
+
8
+ # SvelteKit — DSE-Section Pattern (mdsvex)
9
+
10
+ ## Trigger / Detection
11
+
12
+ Repo enthaelt:
13
+ - `mdsvex` oder `@sveltejs/enhanced-img` in Dependencies
14
+ - `svelte.config.js` mit `extensions: ['.svelte', '.md']`
15
+ - `src/content/legal/*.md` oder `src/routes/**/+page.md` mit Frontmatter
16
+ - Routes wie `/datenschutz`, `/impressum`, `/agb`
17
+
18
+ ## Default-Verhalten (was passiert ohne Konfiguration)
19
+
20
+ - DSE in `+page.svelte` inline → kein Frontmatter, keine Versionierung
21
+ - Kein zentrales Auftragsverarbeiter-Register → DSE-Drift gegenueber Realitaet
22
+ - `last-updated` fehlt → User kann Aktualitaet nicht beurteilen
23
+ - Anchor-Links auf Sub-Sektionen funktionieren nicht (keine auto-IDs)
24
+ - DSE-Header-Level inkonsistent zwischen Pages
25
+
26
+ ## Compliance-Risiken
27
+
28
+ | Risiko | Norm | Severity | Fix |
29
+ |---|---|---|---|
30
+ | DSE outdated (kein Datum) | Art. 13 DSGVO | HOCH | Frontmatter `lastUpdated` rendern |
31
+ | Auftragsverarbeiter-Section fehlt | Art. 28 DSGVO | KRITISCH | Pflicht-Tabelle in DSE |
32
+ | Missing Loeschungs-Hinweis | Art. 17 DSGVO | HOCH | Section "Ihre Rechte" Pflicht |
33
+ | Sprache nicht deklariert | BITV 2.0 | MITTEL | `<html lang="de">` + `lang`-Attribut |
34
+ | Heading-Hierarchie kaputt (h1 dann h3) | A11y / Klarheit | MITTEL | mdsvex `rehype-slug` + lint |
35
+
36
+ ## Code-Pattern (sanitized)
37
+
38
+ ```javascript
39
+ // File: svelte.config.js
40
+ import adapter from '@sveltejs/adapter-vercel';
41
+ import { mdsvex } from 'mdsvex';
42
+ import rehypeSlug from 'rehype-slug';
43
+ import rehypeAutolinkHeadings from 'rehype-autolink-headings';
44
+
45
+ const config = {
46
+ extensions: ['.svelte', '.md'],
47
+ preprocess: [
48
+ mdsvex({
49
+ extensions: ['.md'],
50
+ rehypePlugins: [
51
+ rehypeSlug,
52
+ [rehypeAutolinkHeadings, { behavior: 'wrap' }],
53
+ ],
54
+ layout: {
55
+ legal: 'src/lib/layouts/Legal.svelte',
56
+ },
57
+ }),
58
+ ],
59
+ kit: {
60
+ adapter: adapter({ regions: ['fra1'] }),
61
+ },
62
+ };
63
+
64
+ export default config;
65
+ ```
66
+
67
+ ```markdown
68
+ <!-- File: src/routes/datenschutz/+page.md -->
69
+ ---
70
+ title: Datenschutzerklaerung
71
+ layout: legal
72
+ lastUpdated: 2026-05-05
73
+ version: "2.3"
74
+ section: datenschutz
75
+ author: "<placeholder-legal-counsel>"
76
+ ---
77
+
78
+ # Datenschutzerklaerung
79
+
80
+ ## 1. Verantwortliche Stelle
81
+
82
+ <placeholder-company-name>
83
+ <placeholder-street>
84
+ <placeholder-postal-code> <placeholder-city>
85
+
86
+ E-Mail: <placeholder-email>
87
+
88
+ ## 2. Erhobene Daten und Zwecke
89
+
90
+ | Datum | Zweck | Rechtsgrundlage | Speicherdauer |
91
+ |---|---|---|---|
92
+ | Server-Logs (Hash) | Sicherheit | Art. 6 Abs. 1 lit. f | 14 Tage |
93
+ | Cookie-Consent | Nachweis | Art. 7 DSGVO | 12 Monate |
94
+ | Analytics (Opt-In) | Optimierung | Art. 6 Abs. 1 lit. a | <placeholder-days> Tage |
95
+
96
+ ## 3. Auftragsverarbeiter
97
+
98
+ | Anbieter | Sitz | Zweck | Drittland | AVV |
99
+ |---|---|---|---|---|
100
+ | <placeholder-hosting-provider> | <placeholder-eu-country> | Hosting | Nein | Ja |
101
+ | <placeholder-analytics-provider> | <placeholder-eu-country> | Webanalyse | Nein | Ja |
102
+ | <placeholder-error-tracking-provider> | <placeholder-eu-country> | Error-Tracking | Nein | Ja |
103
+
104
+ ## 4. Cookies und vergleichbare Technologien
105
+
106
+ Siehe [Cookie-Einstellungen](#cookie-settings) — Sie koennen Ihre Einwilligung
107
+ jederzeit widerrufen.
108
+
109
+ ## 5. Ihre Rechte
110
+
111
+ Sie haben gegen uns folgende Rechte:
112
+ - Auskunft (Art. 15 DSGVO)
113
+ - Berichtigung (Art. 16 DSGVO)
114
+ - Loeschung (Art. 17 DSGVO)
115
+ - Einschraenkung (Art. 18 DSGVO)
116
+ - Datenuebertragbarkeit (Art. 20 DSGVO)
117
+ - Widerspruch (Art. 21 DSGVO)
118
+ - Beschwerde bei Aufsichtsbehoerde (Art. 77 DSGVO)
119
+
120
+ Kontakt: <placeholder-email>
121
+
122
+ ## 6. Aenderungen
123
+
124
+ Die jeweils aktuelle Version dieser Datenschutzerklaerung ist unter dieser
125
+ URL abrufbar. aenderungen werden mit aktualisiertem `Stand`-Datum publiziert.
126
+ ```
127
+
128
+ ```svelte
129
+ <!-- File: src/lib/layouts/Legal.svelte -->
130
+ <script lang="ts">
131
+ export let title: string;
132
+ export let lastUpdated: string;
133
+ export let version: string;
134
+ export let section: string;
135
+
136
+ const formattedDate = new Date(lastUpdated).toLocaleDateString('de-DE', {
137
+ day: '2-digit',
138
+ month: 'long',
139
+ year: 'numeric',
140
+ });
141
+ </script>
142
+
143
+ <svelte:head>
144
+ <title>{title}</title>
145
+ <meta name="robots" content="index,follow" />
146
+ </svelte:head>
147
+
148
+ <article class="legal" lang="de" data-section={section}>
149
+ <header>
150
+ <h1>{title}</h1>
151
+ <p class="meta">
152
+ Version {version} —
153
+ Stand: <time datetime={lastUpdated}>{formattedDate}</time>
154
+ </p>
155
+ </header>
156
+
157
+ <slot />
158
+
159
+ <footer class="legal-footer">
160
+ <p>
161
+ Bei Fragen zur Verarbeitung wenden Sie sich an:
162
+ <a href="mailto:<placeholder-email>"><placeholder-email></a>
163
+ </p>
164
+ </footer>
165
+ </article>
166
+
167
+ <style>
168
+ .legal { max-width: 65ch; margin: 0 auto; padding: 2rem 1rem; }
169
+ .meta { color: #666; font-size: 0.9rem; }
170
+ .legal-footer { margin-top: 4rem; padding-top: 2rem; border-top: 1px solid #ddd; }
171
+ </style>
172
+ ```
173
+
174
+ ## AVV / DPA
175
+
176
+ DSE selbst keine AVV. Aber:
177
+ - Hosting-Provider liefert DSE → AVV
178
+ - DSE listet ALLE anderen Auftragsverarbeiter (siehe Tabelle in Section 3)
179
+ - Bei Aenderungen am Tech-Stack MUSS DSE versioniert werden (Frontmatter `version` bumpen)
180
+
181
+ ## DSE-Wording-Vorlage
182
+
183
+ ```markdown
184
+ ### Versionierung dieser Datenschutzerklaerung
185
+
186
+ Diese Datenschutzerklaerung wird kontinuierlich gepflegt. Aktuelle Version:
187
+ **2.3** vom **5. Mai 2026**.
188
+
189
+ **Aenderungs-Historie verfuegbar via:**
190
+ - Git-Repository: <placeholder-repo-url>/commits/main/src/routes/datenschutz
191
+ - Tags fuer Major-Versionen: `legal-v2.0`, `legal-v2.3`
192
+
193
+ **Bei wesentlichen Aenderungen** (neue Datenkategorien, neue
194
+ Auftragsverarbeiter, geaenderte Speicherdauern) informieren wir Sie
195
+ zusaetzlich per E-Mail (sofern Sie Newsletter abonniert haben) oder via
196
+ Banner-Hinweis bei naechstem Webseitenbesuch.
197
+ ```
198
+
199
+ ## Verify-Commands (Live-Probe)
200
+
201
+ ```bash
202
+ # 1. DSE erreichbar
203
+ curl -sI https://<placeholder-domain>/datenschutz | head -1
204
+ # Erwartung: HTTP/2 200
205
+
206
+ # 2. Frontmatter-Daten gerendered
207
+ curl -sS https://<placeholder-domain>/datenschutz | grep -ic "stand:\|version"
208
+
209
+ # 3. Auftragsverarbeiter-Tabelle vorhanden
210
+ curl -sS https://<placeholder-domain>/datenschutz | grep -ic "auftragsverarbeit\|hosting\|analytics"
211
+
212
+ # 4. Anker-Links generiert
213
+ curl -sS https://<placeholder-domain>/datenschutz | grep -oE 'id="[^"]+"' | head -10
214
+ # Erwartung: id="verantwortliche-stelle", id="ihre-rechte", etc.
215
+
216
+ # 5. lang-Attribut
217
+ curl -sS https://<placeholder-domain>/datenschutz | grep -oE 'lang="[a-z]+"' | head -1
218
+ # Erwartung: lang="de"
219
+
220
+ # 6. Heading-Hierarchie ohne Sprung
221
+ curl -sS https://<placeholder-domain>/datenschutz | grep -oE '<h[1-6]' | sort -u
222
+ # Erwartung: <h1, <h2, <h3 — kein Skip
223
+ ```
224
+
225
+ ## Cross-References
226
+
227
+ - AEGIS-Scanner: `dse-completeness-checker.ts`, `legal-pages-checker.ts`, `heading-hierarchy-checker.ts`
228
+ - Skill-Reference: `references/dsgvo.md` Art. 13, 14, 28
229
+ - BGH-Rechtsprechung: `references/bgh-urteile.md`
230
+ - DSK-Beschluesse: `references/de-dsk-beschluesse.md` (Auftragsverarbeitung)
231
+ - Audit-Pattern: `references/audit-patterns.md` Phase 1 (DSE-Vollstaendigkeit)
@@ -0,0 +1,217 @@
1
+ ---
2
+ license: MIT (snippet)
3
+ provider: SvelteKit (Open-Source)
4
+ last-checked: 2026-05-05
5
+ purpose: SvelteKit Server-Hooks Pattern fuer Tracker-Authorization + Consent-Cookie-Forwarding.
6
+ ---
7
+
8
+ # SvelteKit — Server-Hooks Pattern (Tracker-Auth + Consent-Forward)
9
+
10
+ ## Trigger / Detection
11
+
12
+ Repo enthaelt:
13
+ - `src/hooks.server.ts` oder `src/hooks.server.js`
14
+ - `handle`/`handleFetch` Export
15
+ - `event.cookies` / `event.locals` Usage
16
+ - Optional: `/api/track` oder `/api/consent-log` Server-Endpoints
17
+
18
+ Pattern: Server-Hooks pruefen den Consent-Cookie BEVOR sie Tracker-Server-Calls (intern oder als Reverse-Proxy) durchfuehren. Bei fehlendem Consent wird der Tracker-Forward unterdrueckt.
19
+
20
+ ## Default-Verhalten (was passiert ohne Konfiguration)
21
+
22
+ - Default-`hooks.server.ts` ist meistens leer (kein Handle-Export) → keine Cookie-Validierung
23
+ - `handleFetch` wird nicht ueberschrieben → SvelteKit forwarded Server-Side-Fetch ohne Consent-Pruefung
24
+ - Tracker-Calls werden in `+page.server.ts` blind ausgefuehrt
25
+ - Set-Cookie-Header werden vom Server gesetzt ohne `Secure;HttpOnly;SameSite=Lax`-Flags
26
+
27
+ ## Compliance-Risiken
28
+
29
+ | Risiko | Norm | Severity | Fix |
30
+ |---|---|---|---|
31
+ | Server-Tracker-Call ohne Consent | § 25 TDDDG | KRITISCH | Hook prueft `cookie-consent` vor Forward |
32
+ | Tracker-Cookie ohne `Secure` Flag | Art. 32 DSGVO | HOCH | `cookies.set(..., { secure, sameSite: 'lax' })` |
33
+ | Drittland-Forward in `handleFetch` | Art. 44 DSGVO | KRITISCH | Allowlist EU-Hosts |
34
+ | Klartext-IP in Server-Logs | Art. 5 Abs. 1 lit. f | HOCH | IP-Hash in Hook |
35
+ | Consent-Cookie nicht `HttpOnly` (wenn nur Server liest) | Art. 32 DSGVO | MITTEL | Trennung: Read-Cookie HttpOnly, Banner-Cookie nicht |
36
+
37
+ ## Code-Pattern (sanitized)
38
+
39
+ ```typescript
40
+ // File: src/hooks.server.ts
41
+ import type { Handle, HandleFetch } from '@sveltejs/kit';
42
+ import { sequence } from '@sveltejs/kit/hooks';
43
+ import crypto from 'node:crypto';
44
+
45
+ const ANALYTICS_ALLOWLIST = new Set([
46
+ '<placeholder-eu-analytics-host>',
47
+ '<placeholder-eu-error-tracking-host>',
48
+ ]);
49
+
50
+ const consentHandle: Handle = async ({ event, resolve }) => {
51
+ // 1. Lese Consent-Cookie (kein HttpOnly, weil Banner-Komponente liest)
52
+ const raw = event.cookies.get('cookie-consent');
53
+ let consent = { necessary: true, analytics: false, marketing: false };
54
+ if (raw) {
55
+ try {
56
+ consent = { ...consent, ...JSON.parse(raw) };
57
+ } catch {
58
+ /* ignore malformed */
59
+ }
60
+ }
61
+
62
+ // 2. In locals fuer Page-Server-Code verfuegbar
63
+ event.locals.consent = consent;
64
+
65
+ // 3. IP-Hash fuer Logs (anonymisiert)
66
+ const rawIp = event.getClientAddress();
67
+ event.locals.ipHash = crypto
68
+ .createHash('sha256')
69
+ .update(rawIp + (process.env.IP_HASH_SALT ?? ''))
70
+ .digest('hex')
71
+ .slice(0, 16);
72
+
73
+ // 4. Resolve Request
74
+ const response = await resolve(event);
75
+
76
+ // 5. Security-Headers
77
+ response.headers.set('X-Content-Type-Options', 'nosniff');
78
+ response.headers.set('Referrer-Policy', 'strict-origin-when-cross-origin');
79
+ response.headers.set('Permissions-Policy', 'geolocation=(), camera=(), microphone=()');
80
+
81
+ return response;
82
+ };
83
+
84
+ const fetchHandle: HandleFetch = async ({ event, request, fetch }) => {
85
+ const url = new URL(request.url);
86
+
87
+ // Allowlist-Check fuer Drittland-Calls
88
+ if (!ANALYTICS_ALLOWLIST.has(url.host) && url.host !== event.url.host) {
89
+ // Pruefe Consent vor externem Fetch
90
+ if (!event.locals.consent?.analytics) {
91
+ return new Response(JSON.stringify({ blocked: 'consent-required' }), {
92
+ status: 403,
93
+ headers: { 'Content-Type': 'application/json' },
94
+ });
95
+ }
96
+ }
97
+
98
+ return fetch(request);
99
+ };
100
+
101
+ export const handle = sequence(consentHandle);
102
+ export const handleFetch = fetchHandle;
103
+ ```
104
+
105
+ ```typescript
106
+ // File: src/app.d.ts (Type-Augmentation)
107
+ declare global {
108
+ namespace App {
109
+ interface Locals {
110
+ consent: {
111
+ necessary: true;
112
+ analytics: boolean;
113
+ marketing: boolean;
114
+ };
115
+ ipHash: string;
116
+ }
117
+ }
118
+ }
119
+
120
+ export {};
121
+ ```
122
+
123
+ ```typescript
124
+ // File: src/routes/api/track/+server.ts
125
+ import type { RequestHandler } from './$types';
126
+ import { json } from '@sveltejs/kit';
127
+
128
+ export const POST: RequestHandler = async ({ request, locals }) => {
129
+ // Hook hat consent + ipHash gesetzt
130
+ if (!locals.consent.analytics) {
131
+ return json({ blocked: 'analytics-opt-out' }, { status: 204 });
132
+ }
133
+
134
+ const payload = await request.json();
135
+ const safe = {
136
+ path: typeof payload.path === 'string' ? payload.path.slice(0, 200) : '/',
137
+ visitorHash: locals.ipHash,
138
+ timestamp: new Date().toISOString(),
139
+ };
140
+
141
+ // Forward an EU-Provider (im Allowlist)
142
+ await fetch('https://<placeholder-eu-analytics-host>/api/event', {
143
+ method: 'POST',
144
+ headers: {
145
+ 'Content-Type': 'application/json',
146
+ Authorization: `Bearer ${process.env.ANALYTICS_TOKEN}`,
147
+ },
148
+ body: JSON.stringify(safe),
149
+ });
150
+
151
+ return new Response(null, { status: 204 });
152
+ };
153
+ ```
154
+
155
+ ```typescript
156
+ // File: src/routes/+layout.server.ts
157
+ import type { LayoutServerLoad } from './$types';
158
+
159
+ export const load: LayoutServerLoad = ({ locals }) => {
160
+ return {
161
+ // Niemals ipHash an Client leaken
162
+ consent: locals.consent,
163
+ };
164
+ };
165
+ ```
166
+
167
+ ## AVV / DPA
168
+
169
+ - Hosting-Adapter mit EU-Region (Vercel `regions: ['fra1']` / Cloudflare Workers EU) — Art. 28 DSGVO
170
+ - Analytics-Provider (im Allowlist) — AVV mit EU-Hosting
171
+ - Logging-Provider (Sentry / Datadog EU) — AVV; Logs muessen IP-Hashed sein
172
+
173
+ ## DSE-Wording-Vorlage
174
+
175
+ ```markdown
176
+ ### Server-Side-Verarbeitung
177
+
178
+ Diese Webseite verwendet SvelteKit mit Server-Side Rendering. Beim
179
+ initialen Aufruf werden serverseitig folgende Daten kurzzeitig verarbeitet:
180
+
181
+ - IP-Adresse: nur als SHA-256-Hash (mit Salt) gespeichert, niemals im Klartext
182
+ - User-Agent (anonymisiert auf Browser-Familie)
183
+ - Sprach-Header (`Accept-Language`)
184
+
185
+ **Rechtsgrundlage:** Art. 6 Abs. 1 lit. f DSGVO (Sicherheit, Stabilitaet)
186
+ i.V.m. § 25 Abs. 2 Nr. 2 TDDDG.
187
+ **Speicherdauer:** Server-Logs 14 Tage, Hashes 30 Tage zur Missbrauchs-Erkennung.
188
+ **Externe Forwards:** nur an Auftragsverarbeiter im EU-Wirtschaftsraum
189
+ ([Liste in Auftragsverarbeiter-Section](#auftragsverarbeiter)).
190
+ ```
191
+
192
+ ## Verify-Commands (Live-Probe)
193
+
194
+ ```bash
195
+ # 1. Security-Headers gesetzt
196
+ curl -sI https://<placeholder-domain>/ | grep -iE "x-content-type-options|referrer-policy|permissions-policy"
197
+ # Erwartung: 3 Treffer
198
+
199
+ # 2. Tracker-Endpoint blockt ohne Consent-Cookie
200
+ curl -X POST https://<placeholder-domain>/api/track \
201
+ -H "Content-Type: application/json" -d '{"path":"/test"}' -i
202
+ # Erwartung: 204 mit "analytics-opt-out"
203
+
204
+ # 3. handleFetch blockiert Drittland-Forward
205
+ # (manueller Test: setze Server-Code-Stelle die nicht-allowlisted Host fetcht)
206
+
207
+ # 4. IP-Hash niemals im Client-State
208
+ curl -sS https://<placeholder-domain>/ | grep -ic "ipHash"
209
+ # Erwartung: 0
210
+ ```
211
+
212
+ ## Cross-References
213
+
214
+ - AEGIS-Scanner: `server-hook-checker.ts`, `cors-allowlist-checker.ts`, `pii-flow-tracker.ts`
215
+ - Skill-Reference: `references/dsgvo.md` Art. 32 (Sicherheit), Art. 44 (Drittland)
216
+ - BGH-Rechtsprechung: `references/bgh-urteile.md`
217
+ - Audit-Pattern: `references/audit-patterns.md` Phase 3 (Drittland-Audit), Phase 6 (Server-Side-Logs)
@@ -0,0 +1,129 @@
1
+ ---
2
+ license: MIT (snippet) / Vendor-Doc separat
3
+ provider: Google (Google LLC, USA)
4
+ provider-AVV-status: GA4-DPA + EU-Server-Standort verfuegbar (Consent Mode v2)
5
+ last-checked: 2026-05-02
6
+ purpose: Google Analytics 4 mit Consent Mode v2 + EU-Standort + IP-Anonymisierung.
7
+ ---
8
+
9
+ # Google Analytics 4 — TOMs + Consent Mode v2
10
+
11
+ ## 1. Default-Verhalten
12
+
13
+ - Datenstandort: konfigurierbar (EU oder US-Server, Default haengt von GA-Property-Setup ab)
14
+ - **Cookies**: `_ga`, `_ga_*`, `_gid` — Pflicht Consent
15
+ - IP-Anonymisierung: in GA4 standardmaessig aktiv (von Google)
16
+ - Consent Mode v2: ab Maerz 2024 EEA-Pflicht (EU + UK + CH)
17
+
18
+ ## 2. Compliance-Risiken
19
+
20
+ | Risiko | Wirkung | Fix |
21
+ |---|---|---|
22
+ | Tracker laedt vor Consent | § 25 TDDDG-Verstoss + Massen-Abmahn-Welle | ConsentGate Pflicht |
23
+ | US-Server-Standort | Schrems II / DPF-Risiko | Server-Side-Tagging mit EU-Endpoint |
24
+ | GA-Cookies in Consent-Banner als „necessary" deklariert | Tatsachen-Verschleierung + UWG | Marketing-Kategorie |
25
+ | Cross-Site-Tracking via _ga | Aufgewertete-Profile-Bildung | Server-Side-Tagging + sgtm.io |
26
+
27
+ ## 3. Code-Pattern (Next.js + Consent Mode v2)
28
+
29
+ ```tsx
30
+ // File: src/components/analytics/GoogleAnalytics.tsx
31
+ 'use client';
32
+
33
+ import Script from 'next/script';
34
+ import { useConsent } from '@/lib/consent';
35
+
36
+ const GA_MEASUREMENT_ID = process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID;
37
+
38
+ export default function GoogleAnalytics() {
39
+ const { consent } = useConsent();
40
+
41
+ if (!GA_MEASUREMENT_ID) return null;
42
+
43
+ return (
44
+ <>
45
+ <Script
46
+ strategy="afterInteractive"
47
+ src={`https://www.googletagmanager.com/gtag/js?id=${GA_MEASUREMENT_ID}`}
48
+ />
49
+ <Script id="ga-config" strategy="afterInteractive">
50
+ {`
51
+ window.dataLayer = window.dataLayer || [];
52
+ function gtag(){dataLayer.push(arguments);}
53
+ gtag('js', new Date());
54
+
55
+ // Consent Mode v2 — Pflicht-Default vor User-Choice
56
+ gtag('consent', 'default', {
57
+ 'ad_storage': 'denied',
58
+ 'analytics_storage': '${consent.analytics ? 'granted' : 'denied'}',
59
+ 'ad_user_data': '${consent.marketing ? 'granted' : 'denied'}',
60
+ 'ad_personalization': '${consent.marketing ? 'granted' : 'denied'}',
61
+ 'wait_for_update': 500
62
+ });
63
+
64
+ gtag('config', '${GA_MEASUREMENT_ID}', {
65
+ anonymize_ip: true,
66
+ cookie_flags: 'SameSite=None;Secure'
67
+ });
68
+ `}
69
+ </Script>
70
+ </>
71
+ );
72
+ }
73
+ ```
74
+
75
+ ## 4. Update bei Consent-Aenderung
76
+
77
+ ```tsx
78
+ // In useConsent-Hook:
79
+ useEffect(() => {
80
+ if (typeof window !== 'undefined' && (window as any).gtag) {
81
+ (window as any).gtag('consent', 'update', {
82
+ analytics_storage: consent.analytics ? 'granted' : 'denied',
83
+ ad_user_data: consent.marketing ? 'granted' : 'denied',
84
+ ad_personalization: consent.marketing ? 'granted' : 'denied',
85
+ });
86
+ }
87
+ }, [consent]);
88
+ ```
89
+
90
+ ## 5. Server-Side-Tagging (besser, optional)
91
+
92
+ EU-Endpoint via sgtm.io oder Self-Hosting:
93
+ ```ts
94
+ // Frontend posted Events an EU-Endpoint
95
+ fetch('https://gtm.example.com/g/collect', { /* ... */ });
96
+ ```
97
+
98
+ ## 6. AVV / DPA
99
+
100
+ - **DPA-Link**: https://business.safety.google/adsprocessorterms/
101
+ - **SCC-Modul**: Module 2 + 3
102
+ - **DPF**: Google ist DPF-zertifiziert (Sep 2023)
103
+
104
+ ## 7. DSE-Wording-Vorlage
105
+
106
+ > Wir nutzen Google Analytics 4 (Google LLC, 1600 Amphitheatre Pkwy, Mountain View, USA)
107
+ > mit Consent Mode v2. Daten werden nur mit Ihrer ausdruecklichen Einwilligung erhoben
108
+ > (Art. 6 Abs. 1 lit. a DSGVO + § 25 Abs. 1 TDDDG). IP-Anonymisierung ist aktiv.
109
+ > EU-SCC Modul 2 + 3 abgeschlossen. Datenschutzhinweise von Google:
110
+ > https://policies.google.com/privacy.
111
+
112
+ ## 8. Az.-Anker
113
+
114
+ - EuGH C-673/17 Planet49 (Cookie-Einwilligung)
115
+ - BGH I ZR 7/16 (DSGVO als UWG-Schutzgesetz)
116
+ - LG Berlin 16 O 252/22 (Reject-All-Pflicht)
117
+ - LG Duesseldorf 12 O 33/24 (TCF-Banner ohne lokale Wirksamkeit unzureichend)
118
+
119
+ ## 9. Verify
120
+
121
+ ```bash
122
+ # 1. Pre-Consent-Loading-Pruefung
123
+ curl -s https://example.com -H "Cookie: " | grep -ic "googletagmanager"
124
+ # Erwartung: 0 Hits
125
+
126
+ # 2. Mit gesetztem Consent-Cookie
127
+ curl -s -b "cookie-consent=$(echo '{\"analytics\":true}' | base64)" https://example.com | grep -ic "googletagmanager"
128
+ # Erwartung: 1+ Hits
129
+ ```
@@ -0,0 +1,107 @@
1
+ ---
2
+ license: MIT (snippet)
3
+ provider: Plausible Insights OÜ (Estland) — EU-Anbieter
4
+ provider-AVV-status: Standardvertrag verfügbar (DPA)
5
+ last-checked: 2026-05-01
6
+ ---
7
+
8
+ # Plausible Analytics — Cookieless Tracking + DSE-Wording
9
+
10
+ ## 1. Default-Verhalten
11
+
12
+ - **Cookieless** by default — keine Tracking-Cookies, kein LocalStorage
13
+ - **EU-Hosting**: Server in Deutschland (Hetzner Falkenstein)
14
+ - **IP-Anonymisierung**: serverseitig, keine vollständige IP gespeichert
15
+ - **DNT-Respektierung**: Plausible respektiert Do-Not-Track auf Server-Seite
16
+ - **GDPR-konform** by design: keine personenbezogenen Daten gespeichert (anonyme Aggregate)
17
+
18
+ ## 2. Compliance-Risiken
19
+
20
+ | Risiko | Wirkung | Fix |
21
+ |--------|---------|-----|
22
+ | Trotz cookieless: Skript-Aufruf von externer Domain | minimaler Drittland-Risk | Selbst-Hosting via Subdomain (siehe Code-Pattern) |
23
+ | Outbound-Link-Tracking | Browser-Telemetrie | per Skript-Variante optional |
24
+ | Custom-Events mit personenbezogenen Daten | Risiko Re-Identifizierung | Events ohne PII (nur Page-Path / Action-Type) |
25
+
26
+ ## 3. Code-Pattern: env-driven, self-hostable
27
+
28
+ ```tsx
29
+ // File: src/components/analytics/Plausible.tsx
30
+ 'use client';
31
+ import Script from 'next/script';
32
+
33
+ export function PlausibleAnalytics() {
34
+ // env-driven: Default = own-subdomain für ZUSÄTZLICHE Hardenings
35
+ const host = (
36
+ process.env.NEXT_PUBLIC_PLAUSIBLE_HOST ?? 'https://plausible.io'
37
+ ).replace(/\/+$/, '');
38
+ const domain = process.env.NEXT_PUBLIC_PLAUSIBLE_DOMAIN;
39
+
40
+ if (!domain) return null; // fail-soft
41
+
42
+ return (
43
+ <Script
44
+ strategy="afterInteractive"
45
+ defer
46
+ data-domain={domain}
47
+ data-api={`${host}/api/event`}
48
+ src={`${host}/js/script.js`}
49
+ />
50
+ );
51
+ }
52
+ ```
53
+
54
+ ```typescript
55
+ // Custom-Events ohne PII
56
+ const trackPlausibleEvent = (name: string, props?: Record<string, string | number>) => {
57
+ if (typeof window === 'undefined') return;
58
+ const w = window as any;
59
+ if (typeof w.plausible === 'function') {
60
+ w.plausible(name, { props });
61
+ }
62
+ };
63
+
64
+ // OK: trackPlausibleEvent('signup_clicked', { plan: 'pro' });
65
+ // NICHT OK: trackPlausibleEvent('user_login', { email: 'a@b.de' }); // PII-Verbot
66
+ ```
67
+
68
+ ## 4. AVV / DPA
69
+
70
+ - **DPA-Link**: https://plausible.io/dpa.pdf
71
+ - **GDPR-konform-Statement**: https://plausible.io/data-policy
72
+ - **Sub-Processors**: Hetzner (Hosting, DE), Mailgun EU (E-Mail-Versand für Reports)
73
+
74
+ ## 5. DSE-Wording-Vorlage
75
+
76
+ > **Reichweitenmessung mit Plausible Analytics.** Wir nutzen Plausible
77
+ > Analytics (Anbieter: Plausible Insights OÜ, Tallinn, Estland) als
78
+ > Werkzeug zur anonymen Reichweitenmessung. Plausible setzt **keine
79
+ > Cookies** und speichert **keine personenbezogenen Daten** — IP-Adressen
80
+ > werden serverseitig nicht gespeichert, sondern über einen Hash anonym
81
+ > aggregiert. Die Daten verbleiben in der EU (Hetzner-Server in
82
+ > Deutschland). Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes
83
+ > Interesse an aggregierter Reichweitenmessung). Wegen der vollständigen
84
+ > Anonymisierung ist eine Einwilligung nach § 25 TDDDG **nicht
85
+ > erforderlich** (kein Speichern von Informationen in der Endeinrichtung).
86
+ > Datenschutz Plausible: https://plausible.io/privacy.
87
+
88
+ **Wichtig:** Diese Wording-Variante gilt nur bei Default-Plausible (cookieless + ohne Custom-Events mit PII). Bei Outbound-Link-Tracking + zusätzlichen Skript-Features erweitern.
89
+
90
+ ## 6. Verify-Commands
91
+
92
+ ```bash
93
+ # Cookies-Check (sollte KEINE plausible-Cookies setzen)
94
+ curl -s -c /tmp/cookies.txt https://<your-domain> > /dev/null
95
+ grep -i plausible /tmp/cookies.txt
96
+ # erwarte: kein Treffer
97
+
98
+ # Skript-Source
99
+ curl -s https://<your-domain> | grep -oE 'data-domain="[^"]+"'
100
+ # erwarte: deine Domain
101
+ ```
102
+
103
+ ## 7. Az.-Anker (Cookies allgemein, nicht plausible-spezifisch)
104
+
105
+ Keine spezifische Az. zu Plausible (zu jung). Allgemein: § 25 TDDDG-Befreiung gilt für Reichweitenmessung mit echter Anonymisierung — kommt aus EDPB Guidelines 2/2023 zur „Audience Measurement"-Ausnahme.
106
+
107
+ Source: https://www.edpb.europa.eu/our-work-tools/our-documents/guidelines/guidelines-22023-technical-scope-art-53-eprivacy_en