@aegis-scan/skills 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/ATTRIBUTION.md +93 -0
  2. package/package.json +1 -1
  3. package/sbom.cdx.json +1 -0
  4. package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
  5. package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +878 -0
  6. package/skills/compliance/aegis-native/brutaler-anwalt/README.md +9 -3
  7. package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +93 -14
  8. package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
  9. package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
  10. package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
  11. package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
  12. package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
  13. package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
  14. package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
  15. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
  16. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
  17. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
  18. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
  19. package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
  20. package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
  21. package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +60 -5
  22. package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +745 -11
  23. package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
  24. package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +106 -30
  25. package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +247 -2
  26. package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +75 -2
  27. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
  28. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
  29. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
  30. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
  31. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
  32. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
  33. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
  34. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
  35. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
  36. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
  37. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
  38. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
  39. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
  40. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
  41. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
  42. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
  43. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
  44. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
  45. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
  46. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
  47. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
  48. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
  49. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
  50. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
  51. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
  52. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
  53. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
  54. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
  55. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
  56. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
  57. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
  58. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
  59. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
  60. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
  61. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
  62. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
  63. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
  64. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
  65. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
  66. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
  67. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
  68. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
  69. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
  70. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
  71. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
  72. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
  73. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
  74. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
  75. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
  76. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
  77. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
  78. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
  79. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
  80. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
  81. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
  82. package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +55 -8
  83. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
  84. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
  85. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
  86. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
  87. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
  88. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
  89. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
  90. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +4 -1
  91. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
  92. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
  93. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
  94. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
  95. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
  96. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
  97. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
  98. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
  99. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
  100. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
  101. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
  102. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
  103. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
  104. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
  105. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +3 -0
  106. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
  107. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
  108. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
  109. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
  110. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
  111. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
  112. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
  113. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
  114. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
  115. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
  116. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
  117. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
  118. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
  119. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
  120. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
  121. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
  122. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
  123. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
  124. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
  125. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
  126. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
  127. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
  128. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
  129. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
  130. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
  131. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
  132. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
  133. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +3 -2
  134. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
  135. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
  136. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +71 -3
  137. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
  138. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
  139. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
  140. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
  141. package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +115 -9
  142. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +1 -1
  143. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
  144. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
  145. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
  146. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
  147. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
  148. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
  149. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
  150. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
  151. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
  152. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
  153. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
  154. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
  155. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
  156. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
  157. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
  158. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
  159. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
  160. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
  161. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
  162. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
  163. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
  164. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
  165. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
  166. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
  167. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
  168. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
  169. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
  170. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
  171. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
  172. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
  173. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
  174. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
  175. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
  176. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
  177. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
  178. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
  179. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
  180. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
  181. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
  182. package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
  183. package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
  184. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +80 -0
  185. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
  186. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
  187. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
  188. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
  189. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
  190. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
  191. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
  192. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
  193. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
  194. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
  195. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
  196. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +190 -48
  197. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
  198. package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
  199. package/skills/defensive/permoon-fork/README.md +40 -0
  200. package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
  201. package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
  202. package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
  203. package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
  204. package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +1 -1
  205. package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
  206. package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
  207. package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
  208. package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
  209. package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
  210. package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
  211. package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
  212. package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
  213. package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
  214. package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
  215. package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
  216. package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
  217. package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
  218. package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
  219. package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
  220. package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
  221. package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
  222. package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
  223. package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
  224. package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
  225. package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
  226. package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
  227. package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
  228. package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
  229. package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
  230. package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
  231. package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
  232. package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
  233. package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
  234. package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
  235. package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
  236. package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
  237. package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
  238. package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
  239. package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
  240. package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
  241. package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
  242. package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
  243. package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
  244. package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
  245. package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
  246. package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
  247. package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
  248. package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
  249. package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
  250. package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
  251. package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
  252. package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
  253. package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
  254. package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
  255. package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
  256. package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
  257. package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
  258. package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
  259. package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
  260. package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
  261. package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
  262. package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
  263. package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
  264. package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
  265. package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
  266. package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
  267. package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
  268. package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
  269. package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
  270. package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
  271. package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
  272. package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
  273. package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
  274. package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
  275. package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
  276. package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
  277. package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
  278. package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
  279. package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
  280. package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
  281. package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
  282. package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
  283. package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
  284. package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
  285. package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
  286. package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
  287. package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
  288. package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
  289. package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
  290. package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
  291. package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
  292. package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
  293. package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
  294. package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
  295. package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
  296. package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
  297. package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
  298. package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
  299. package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
  300. package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
  301. package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
  302. package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
  303. package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
  304. package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
  305. package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
  306. package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
  307. package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
  308. package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
  309. package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
  310. package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
  311. package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
  312. package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
  313. package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
  314. package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
  315. package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
  316. package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
  317. package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
  318. package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
  319. package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
  320. package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
  321. package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
  322. package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
  323. package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
  324. package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
  325. package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
  326. package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
  327. package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
  328. package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
  329. package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
  330. package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
  331. package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
  332. package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
  333. package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
  334. package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
  335. package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
  336. package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
  337. package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
  338. package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
  339. package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
  340. package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
  341. package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
  342. package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
  343. package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
  344. package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
  345. package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
@@ -0,0 +1,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,79 @@
1
+ ---
2
+ license: MIT (snippet) / Vendor-Doc separat
3
+ provider: PostHog (PostHog Inc., USA — EU-Cloud verfuegbar)
4
+ provider-AVV-status: DPA verfuegbar + EU-Cloud-Region
5
+ last-checked: 2026-05-02
6
+ purpose: PostHog Consent + EU-Cloud-Region.
7
+ ---
8
+
9
+ # PostHog — Consent + EU-Cloud
10
+
11
+ ## 1. Default-Verhalten
12
+
13
+ - US-Cloud (default) ODER EU-Cloud (eu.posthog.com)
14
+ - Cookies: `ph_*`, `ph_phc_*`
15
+ - Self-Hosting moeglich (Open-Source)
16
+
17
+ ## 2. Compliance-Risiken
18
+
19
+ | Risiko | Wirkung | Fix |
20
+ |---|---|---|
21
+ | Default US-Cloud | Drittland | EU-Cloud (eu.posthog.com) waehlen |
22
+ | Auto-Capture aller Events | DSGVO-Datenminimierung | Selective Capture |
23
+ | Pre-Consent-Loading | § 25 TDDDG | ConsentGate |
24
+
25
+ ## 3. Code-Pattern (Next.js)
26
+
27
+ ```tsx
28
+ // File: src/components/analytics/PostHog.tsx
29
+ 'use client';
30
+
31
+ import { useEffect } from 'react';
32
+ import posthog from 'posthog-js';
33
+ import { useConsent } from '@/lib/consent';
34
+
35
+ const POSTHOG_KEY = process.env.NEXT_PUBLIC_POSTHOG_KEY;
36
+ const POSTHOG_HOST = process.env.NEXT_PUBLIC_POSTHOG_HOST || 'https://eu.posthog.com'; // EU
37
+
38
+ export default function PostHogProvider() {
39
+ const { hasConsented } = useConsent();
40
+
41
+ useEffect(() => {
42
+ if (!POSTHOG_KEY) return;
43
+ if (!hasConsented('analytics')) {
44
+ posthog.opt_out_capturing();
45
+ return;
46
+ }
47
+
48
+ posthog.init(POSTHOG_KEY, {
49
+ api_host: POSTHOG_HOST,
50
+ capture_pageview: true,
51
+ autocapture: false, // Selective Capture (Datenminimierung)
52
+ disable_session_recording: true, // Privacy-friendly default
53
+ mask_all_text: true, // Mask Inputs by default
54
+ person_profiles: 'identified_only', // Nur eingeloggte User profilieren
55
+ });
56
+ posthog.opt_in_capturing();
57
+ }, [hasConsented]);
58
+
59
+ return null;
60
+ }
61
+ ```
62
+
63
+ ## 4. AVV / DPA
64
+
65
+ - **DPA-Link**: https://posthog.com/dpa
66
+ - **EU-Cloud**: eu.posthog.com (Frankfurt)
67
+
68
+ ## 5. DSE-Wording-Vorlage
69
+
70
+ > Wir nutzen PostHog (PostHog Inc., 2261 Market St, San Francisco, USA — EU-Cloud Frankfurt)
71
+ > als Auftragsverarbeiter im Sinne von Art. 28 DSGVO. Datenstandort: EU. EU-SCC Modul 2.
72
+ > Datenschutzhinweise: https://posthog.com/privacy.
73
+
74
+ ## 6. Verify
75
+
76
+ ```bash
77
+ # EU-Cloud-Pruefung
78
+ curl -sI https://eu.posthog.com/decide | grep -i "X-Region"
79
+ ```
@@ -0,0 +1,208 @@
1
+ ---
2
+ license: MIT (snippet)
3
+ provider: Vue.js (Open-Source)
4
+ last-checked: 2026-05-05
5
+ purpose: Vue 3 Cookie-Banner Pattern mit Composition-API + useConsent Composable + Teleport.
6
+ ---
7
+
8
+ # Vue — Cookie-Banner (Pattern)
9
+
10
+ ## Trigger / Detection
11
+
12
+ Repo enthaelt:
13
+ - `vue` in `package.json` Dependencies (Version >= 3.x)
14
+ - `src/main.ts` mit `createApp(App).mount('#app')`
15
+ - `<script setup>`-Komponenten in `src/**/*.vue`
16
+ - Optional: `pinia` / `vuex` State-Management
17
+ - Optional: `vue-router` mit Navigation-Guards
18
+
19
+ ## Default-Verhalten (was passiert ohne Konfiguration)
20
+
21
+ - SPA-Default: Banner-State im Memory → reload zeigt Banner erneut
22
+ - Tracker-SDKs in `main.ts` initialisiert vor Banner-Mount
23
+ - Reactive State leakt zwischen Visitors (bei SSR)
24
+ - `localStorage` Access vor Mount kann hydration-mismatch ausloesen (bei Nuxt)
25
+
26
+ ## Compliance-Risiken
27
+
28
+ | Risiko | Norm | Severity | Fix |
29
+ |---|---|---|---|
30
+ | Tracker in `main.ts` vor Consent | § 25 TDDDG | KRITISCH | Lazy-Init nach Consent-Event |
31
+ | LocalStorage-Read in `setup()` SSR | DSGVO Art. 25 | HOCH | `onMounted` + `useStorage` (VueUse) |
32
+ | Banner als Komponente ohne `<Teleport>` | A11y / DSGVO Klarheit | MITTEL | `<Teleport to="body">` fuer Modal-Style |
33
+ | Drittland-Tracker via CDN | Art. 44 DSGVO | KRITISCH | EU-Provider + AVV |
34
+ | Pre-Tick im Settings | EuGH C-673/17 | KRITISCH | Default `false` fuer Opt-In |
35
+
36
+ ## Code-Pattern (sanitized)
37
+
38
+ ```typescript
39
+ // File: src/composables/useConsent.ts
40
+ import { ref, computed, watch, readonly } from 'vue';
41
+
42
+ export type Consent = {
43
+ necessary: true;
44
+ analytics: boolean;
45
+ marketing: boolean;
46
+ timestamp?: string;
47
+ version: '1.0';
48
+ };
49
+
50
+ const STORAGE_KEY = 'cookie-consent';
51
+
52
+ const defaultConsent: Consent = {
53
+ necessary: true,
54
+ analytics: false,
55
+ marketing: false,
56
+ version: '1.0',
57
+ };
58
+
59
+ const consent = ref<Consent>({ ...defaultConsent });
60
+ const hasDecided = ref(false);
61
+
62
+ function loadFromStorage() {
63
+ if (typeof window === 'undefined') return;
64
+ const raw = localStorage.getItem(STORAGE_KEY);
65
+ if (!raw) return;
66
+ try {
67
+ consent.value = JSON.parse(raw);
68
+ hasDecided.value = true;
69
+ } catch {
70
+ /* ignore malformed */
71
+ }
72
+ }
73
+
74
+ function persist(next: Partial<Consent>) {
75
+ consent.value = { ...consent.value, ...next, timestamp: new Date().toISOString() };
76
+ localStorage.setItem(STORAGE_KEY, JSON.stringify(consent.value));
77
+ hasDecided.value = true;
78
+ fetch('/api/consent-log', {
79
+ method: 'POST',
80
+ headers: { 'Content-Type': 'application/json' },
81
+ body: JSON.stringify(consent.value),
82
+ });
83
+ }
84
+
85
+ function reset() {
86
+ localStorage.removeItem(STORAGE_KEY);
87
+ consent.value = { ...defaultConsent };
88
+ hasDecided.value = false;
89
+ }
90
+
91
+ export function useConsent() {
92
+ return {
93
+ consent: readonly(consent),
94
+ hasDecided: readonly(hasDecided),
95
+ loadFromStorage,
96
+ persist,
97
+ acceptAll: () => persist({ analytics: true, marketing: true }),
98
+ rejectAll: () => persist({ analytics: false, marketing: false }),
99
+ reset,
100
+ };
101
+ }
102
+ ```
103
+
104
+ ```vue
105
+ <!-- File: src/components/CookieBanner.vue -->
106
+ <script setup lang="ts">
107
+ import { onMounted, computed } from 'vue';
108
+ import { useConsent } from '@/composables/useConsent';
109
+
110
+ const { consent, hasDecided, loadFromStorage, acceptAll, rejectAll, persist } = useConsent();
111
+
112
+ onMounted(() => {
113
+ loadFromStorage();
114
+ });
115
+
116
+ const visible = computed(() => !hasDecided.value);
117
+ </script>
118
+
119
+ <template>
120
+ <Teleport to="body">
121
+ <aside
122
+ v-if="visible"
123
+ role="dialog"
124
+ aria-label="Cookie-Einwilligung"
125
+ class="cookie-banner"
126
+ >
127
+ <p>
128
+ Wir nutzen Cookies fuer notwendige Funktionen.
129
+ Mit Ihrer Einwilligung zusaetzlich fuer Webanalyse.
130
+ Details:
131
+ <RouterLink to="/datenschutz">Datenschutzerklaerung</RouterLink>.
132
+ </p>
133
+ <div class="cookie-actions">
134
+ <!-- Buttons gleichwertig (OLG Koeln 6 U 80/23) -->
135
+ <button @click="rejectAll" class="btn-secondary">Nur Notwendige</button>
136
+ <button @click="acceptAll" class="btn-primary">Alle akzeptieren</button>
137
+ </div>
138
+ </aside>
139
+ </Teleport>
140
+ </template>
141
+ ```
142
+
143
+ ```typescript
144
+ // File: src/main.ts
145
+ import { createApp } from 'vue';
146
+ import { createPinia } from 'pinia';
147
+ import App from './App.vue';
148
+ import router from './router';
149
+
150
+ const app = createApp(App);
151
+ app.use(createPinia());
152
+ app.use(router);
153
+
154
+ // KEIN Tracker-Init hier — erst nach Consent-Event
155
+ window.addEventListener('consent:granted', (event: any) => {
156
+ if (event.detail?.analytics) {
157
+ import('./trackers/analytics').then(m => m.init());
158
+ }
159
+ });
160
+
161
+ app.mount('#app');
162
+ ```
163
+
164
+ ## AVV / DPA
165
+
166
+ - Hosting (Vite-Build static / Nuxt SSR auf Vercel/Netlify) — Art. 28 DSGVO
167
+ - Optional Pinia-Persisted-Store-Provider (z.B. localStorage = kein AVV; backend-sync = AVV)
168
+ - Tracker-Provider (Plausible EU / Matomo Cloud EU / self-hosted Umami) — AVV
169
+ - Form-Backends (Formspree / FormBricks) — AVV bei Drittland: SCC + TIA
170
+
171
+ ## DSE-Wording-Vorlage
172
+
173
+ ```markdown
174
+ ### Webanalyse (mit Einwilligung)
175
+
176
+ Sofern Sie Ihre Einwilligung erteilen, verwenden wir <placeholder-analytics-provider>
177
+ zur statistischen Auswertung der Webseiten-Nutzung. Verarbeitete Daten:
178
+ - Anonymisierte Besuchsdauer
179
+ - Referrer (ohne Query)
180
+ - Geraet-Typ (Desktop/Mobile)
181
+
182
+ **Anbieter:** <placeholder-analytics-provider>, Sitz <placeholder-eu-country>
183
+ **Rechtsgrundlage:** Art. 6 Abs. 1 lit. a DSGVO i.V.m. § 25 Abs. 1 TDDDG
184
+ **Speicherdauer:** <placeholder-days> Tage
185
+ **Widerruf:** [Cookie-Einstellungen](#cookie-settings) im Footer
186
+ ```
187
+
188
+ ## Verify-Commands (Live-Probe)
189
+
190
+ ```bash
191
+ # 1. Banner visible bei Erstbesuch
192
+ curl -sS https://<placeholder-domain>/ | grep -ic "cookie-banner\|cookie-einwilligung"
193
+
194
+ # 2. Tracker-Bundle nicht im initial-load
195
+ curl -sS https://<placeholder-domain>/ | grep -oE 'src="[^"]*\.js"' | grep -i "analytics\|tracker"
196
+ # Erwartung: leer oder nur lazy-chunk-Hashes
197
+
198
+ # 3. Playwright: Tracker-Request erst nach Accept
199
+ npx playwright test e2e/consent.spec.ts
200
+ ```
201
+
202
+ ## Cross-References
203
+
204
+ - AEGIS-Scanner: `cookie-audit.ts`, `consent-flow-checker.ts`, `tracking-scan.ts`
205
+ - Skill-Reference: `references/dsgvo.md` § 25 TDDDG, Art. 7 DSGVO
206
+ - BGH-Rechtsprechung: `references/bgh-urteile.md` BGH I ZR 7/16
207
+ - OLG-Rechtsprechung: OLG Koeln 6 U 80/23 (Button-Gleichwertigkeit)
208
+ - Audit-Pattern: `references/audit-patterns.md` Phase 2 (Cookie-Audit)
@@ -0,0 +1,204 @@
1
+ ---
2
+ license: MIT (snippet)
3
+ provider: Nuxt 3 + @nuxtjs/i18n (Open-Source)
4
+ last-checked: 2026-05-05
5
+ purpose: Nuxt-i18n DSE-Pattern fuer mehrsprachige Datenschutzerklaerung mit Locale-Routing.
6
+ ---
7
+
8
+ # Nuxt-i18n — DSE-Pattern (mehrsprachig)
9
+
10
+ ## Trigger / Detection
11
+
12
+ Repo enthaelt:
13
+ - `@nuxtjs/i18n` in Dependencies
14
+ - `nuxt.config.ts` mit `modules: ['@nuxtjs/i18n']`
15
+ - `i18n/locales/*.json` oder `i18n/locales/*.ts` Locale-Files
16
+ - `useI18n` / `$t` in Components
17
+ - Routes wie `/de/datenschutz`, `/en/privacy`
18
+
19
+ Pattern: DSE existiert in mehreren Sprachen — DE-Version ist rechtlich-verbindlich, EN-Version erklaerend. Locale-Detection bestimmt Default-View, Banner-Text und DSE-Inhalt.
20
+
21
+ ## Default-Verhalten (was passiert ohne Konfiguration)
22
+
23
+ - Default-Locale-Detection via `Accept-Language`-Header → kann Drittland-IP triggern
24
+ - Cookie `i18n_redirected` gesetzt ohne § 25 TDDDG-Check
25
+ - DSE-Versionen koennen drift (DE updated, EN nicht)
26
+ - Cookie-Banner-Text aus EN-Locale falls IP nicht-DE → User versteht Banner nicht
27
+ - Fehlende `hreflang`-Tags → SEO + Transparenz
28
+
29
+ ## Compliance-Risiken
30
+
31
+ | Risiko | Norm | Severity | Fix |
32
+ |---|---|---|---|
33
+ | `i18n_redirected`-Cookie ohne Consent | § 25 TDDDG | HOCH | als notwendiger Cookie deklarieren oder als Session entfernen |
34
+ | DSE-Versionen drift zwischen Sprachen | Art. 12 DSGVO Klarheit | KRITISCH | CI-Check `last-updated` synchron |
35
+ | Banner-Text in falscher Sprache | EuGH C-673/17 (Klarheit) | HOCH | DE-Default fuer DE-Visitors via IP-Geolocation |
36
+ | Locale-Detection mit IP-Geo | Art. 6 Abs. 1 DSGVO | MITTEL | nur Accept-Language, kein IP-Lookup |
37
+ | Fehlende `hreflang`-Tags | SEO / DSGVO Transparenz | NIEDRIG | `<link hreflang="de">` setzen |
38
+
39
+ ## Code-Pattern (sanitized)
40
+
41
+ ```typescript
42
+ // File: nuxt.config.ts
43
+ export default defineNuxtConfig({
44
+ modules: ['@nuxtjs/i18n'],
45
+ i18n: {
46
+ defaultLocale: 'de',
47
+ locales: [
48
+ { code: 'de', iso: 'de-DE', file: 'de.json', name: 'Deutsch' },
49
+ { code: 'en', iso: 'en-US', file: 'en.json', name: 'English' },
50
+ ],
51
+ strategy: 'prefix_except_default', // / = de, /en = en
52
+ detectBrowserLanguage: {
53
+ useCookie: true,
54
+ cookieKey: 'i18n_redirected',
55
+ cookieSecure: true,
56
+ cookieCrossOrigin: false,
57
+ redirectOn: 'root',
58
+ // KEIN IP-Geo-Lookup
59
+ },
60
+ },
61
+ });
62
+ ```
63
+
64
+ ```json
65
+ // File: i18n/locales/de.json (Auszug)
66
+ {
67
+ "cookie": {
68
+ "title": "Cookie-Einwilligung",
69
+ "intro": "Wir nutzen Cookies fuer notwendige Funktionen. Mit Ihrer Einwilligung zusaetzlich fuer Webanalyse.",
70
+ "moreInfo": "Details in der",
71
+ "privacyLink": "Datenschutzerklaerung",
72
+ "rejectAll": "Nur Notwendige",
73
+ "acceptAll": "Alle akzeptieren",
74
+ "settings": "Einstellungen"
75
+ },
76
+ "privacy": {
77
+ "title": "Datenschutzerklaerung",
78
+ "lastUpdated": "Stand: {date}",
79
+ "version": "Version {version}"
80
+ }
81
+ }
82
+ ```
83
+
84
+ ```json
85
+ // File: i18n/locales/en.json (Auszug — informational, NICHT rechtsverbindlich)
86
+ {
87
+ "cookie": {
88
+ "title": "Cookie Consent",
89
+ "intro": "We use cookies for essential functions. With your consent additionally for analytics.",
90
+ "moreInfo": "Details in our",
91
+ "privacyLink": "Privacy Policy",
92
+ "rejectAll": "Only Essential",
93
+ "acceptAll": "Accept All",
94
+ "settings": "Settings"
95
+ },
96
+ "privacy": {
97
+ "title": "Privacy Policy",
98
+ "lastUpdated": "Last updated: {date}",
99
+ "version": "Version {version}",
100
+ "legalNote": "This is a translation. The German version is legally binding."
101
+ }
102
+ }
103
+ ```
104
+
105
+ ```vue
106
+ <!-- File: pages/datenschutz.vue / pages/privacy.vue -->
107
+ <script setup lang="ts">
108
+ const { locale, t } = useI18n();
109
+ const localePath = useLocalePath();
110
+
111
+ useHead(() => ({
112
+ htmlAttrs: { lang: locale.value },
113
+ title: t('privacy.title'),
114
+ link: [
115
+ { rel: 'alternate', hreflang: 'de', href: '<placeholder-domain>/datenschutz' },
116
+ { rel: 'alternate', hreflang: 'en', href: '<placeholder-domain>/en/privacy' },
117
+ { rel: 'alternate', hreflang: 'x-default', href: '<placeholder-domain>/datenschutz' },
118
+ ],
119
+ }));
120
+
121
+ // Last-updated wird aus Frontmatter eines lokalen Content-Files gelesen
122
+ const { data: legal } = await useAsyncData('privacy', () =>
123
+ queryContent(`/legal/${locale.value}/privacy`).findOne()
124
+ );
125
+ </script>
126
+
127
+ <template>
128
+ <article class="legal">
129
+ <header>
130
+ <h1>{{ t('privacy.title') }}</h1>
131
+ <p class="meta">
132
+ {{ t('privacy.lastUpdated', { date: legal?.lastUpdated }) }}
133
+ — {{ t('privacy.version', { version: legal?.version }) }}
134
+ </p>
135
+ <p v-if="locale !== 'de'" class="legal-note">
136
+ <strong>{{ t('privacy.legalNote') }}</strong>
137
+ <RouterLink :to="localePath('/datenschutz', 'de')">DE</RouterLink>
138
+ </p>
139
+ </header>
140
+ <ContentDoc :path="`/legal/${locale}/privacy`" />
141
+ </article>
142
+ </template>
143
+ ```
144
+
145
+ ## AVV / DPA
146
+
147
+ - Hosting-Provider mit EU-SSR-Region — Art. 28 DSGVO
148
+ - Cookie `i18n_redirected` = First-Party, kein AVV
149
+ - Translation-Service (falls extern, z.B. DeepL Pro) — AVV erforderlich
150
+ - Content-Lieferant fuer DSE-Texte (Anwalt/Lawyer) — Werkvertrag, kein AVV (kein Daten-Verarbeiter)
151
+
152
+ ## DSE-Wording-Vorlage
153
+
154
+ ```markdown
155
+ ### Sprachversionen
156
+
157
+ Diese Datenschutzerklaerung ist in mehreren Sprachversionen verfuegbar.
158
+ Rechtsverbindlich ist ausschliesslich die **deutsche Version**. Andere
159
+ Sprachversionen dienen lediglich dem Verstaendnis.
160
+
161
+ **Verfuegbare Sprachen:**
162
+ - Deutsch (verbindlich): `<placeholder-domain>/datenschutz`
163
+ - English (informational): `<placeholder-domain>/en/privacy`
164
+
165
+ ### Sprach-Praeferenz-Cookie
166
+
167
+ Wir setzen einen Cookie `i18n_redirected` zur Speicherung Ihrer
168
+ Sprach-Praeferenz. Dieser Cookie ist technisch notwendig (Art. 6 Abs. 1
169
+ lit. f DSGVO i.V.m. § 25 Abs. 2 Nr. 2 TDDDG) und erfordert keine
170
+ Einwilligung.
171
+
172
+ **Speicherdauer:** 365 Tage. **Inhalt:** ausschliesslich der gewaehlte
173
+ Locale-Code (z.B. `de` oder `en`).
174
+ ```
175
+
176
+ ## Verify-Commands (Live-Probe)
177
+
178
+ ```bash
179
+ # 1. hreflang-Tags vorhanden
180
+ curl -sS https://<placeholder-domain>/datenschutz | grep -oE 'hreflang="[^"]+"' | sort -u
181
+ # Erwartung: hreflang="de", hreflang="en", hreflang="x-default"
182
+
183
+ # 2. lang-Attribut korrekt pro Locale
184
+ curl -sS https://<placeholder-domain>/datenschutz | grep -oE 'lang="[a-z]+"' | head -1
185
+ # Erwartung: lang="de"
186
+ curl -sS https://<placeholder-domain>/en/privacy | grep -oE 'lang="[a-z]+"' | head -1
187
+ # Erwartung: lang="en"
188
+
189
+ # 3. last-updated synchron zwischen Locales (CI-Check)
190
+ DE_DATE=$(grep -oE 'lastUpdated: [0-9-]+' content/legal/de/privacy.md | head -1)
191
+ EN_DATE=$(grep -oE 'lastUpdated: [0-9-]+' content/legal/en/privacy.md | head -1)
192
+ [ "$DE_DATE" = "$EN_DATE" ] && echo "OK" || echo "DRIFT: DE=$DE_DATE EN=$EN_DATE"
193
+
194
+ # 4. legalNote in EN-Version sichtbar
195
+ curl -sS https://<placeholder-domain>/en/privacy | grep -ic "legally binding\|german version"
196
+ # Erwartung: >=1
197
+ ```
198
+
199
+ ## Cross-References
200
+
201
+ - AEGIS-Scanner: `i18n-drift-checker.ts`, `dse-completeness-checker.ts`
202
+ - Skill-Reference: `references/dsgvo.md` Art. 12 (Klarheit), Art. 13 (Informationspflichten)
203
+ - BGH-Rechtsprechung: `references/bgh-urteile.md`
204
+ - Audit-Pattern: `references/audit-patterns.md` Phase 1 (DSE-Vollstaendigkeit), Phase 5 (Multi-Locale-Drift)