@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,290 @@
1
+ ---
2
+ license: MIT (snippet)
3
+ provider: Laravel + Eloquent (Open-Source)
4
+ last-checked: 2026-05-05
5
+ purpose: Laravel Soft-Deletes + Anonymization-Trait fuer DSGVO-Loeschpflicht.
6
+ ---
7
+
8
+ # Laravel — GDPR-Models Pattern (Soft-Deletes + Anonymization)
9
+
10
+ ## Trigger / Detection
11
+
12
+ Repo enthaelt:
13
+ - `Illuminate\Database\Eloquent\SoftDeletes` Trait in Models
14
+ - `deleted_at` Spalte in Migrations
15
+ - User-Model mit PII (email, name, phone, address)
16
+ - Optional: `App\Traits\Anonymizable` Trait
17
+
18
+ ## Default-Verhalten (was passiert ohne Konfiguration)
19
+
20
+ - Eloquent `delete()` → soft-delete, ABER PII bleibt unverschleiert
21
+ - `restore()` macht Geloeschtes wieder verfuegbar → DSGVO-Konflikt
22
+ - Cascade-Delete vergisst Logs / Activity-Streams
23
+ - `forceDelete()` umgeht Anonymisierung → harter Drop ohne Audit
24
+ - Kein Hard-Delete-Cron → Soft-Deletes haeufen sich
25
+
26
+ ## Compliance-Risiken
27
+
28
+ | Risiko | Norm | Severity | Fix |
29
+ |---|---|---|---|
30
+ | Soft-Deleted PII bleibt klartext-lesbar | Art. 17 DSGVO | KRITISCH | Anonymisierung im `delete()`-Hook |
31
+ | Cascade-Delete vergisst Logs | Art. 17 DSGVO | HOCH | Observer + verwandte Modelle |
32
+ | `restore()` reaktiviert geloeschten User | Art. 17 DSGVO | HOCH | `restore()` ueberschreiben, nur Admin |
33
+ | Kein Hard-Delete-Cron | Art. 5 lit. e DSGVO | KRITISCH | Cron mit 30T-Frist |
34
+ | Anonymisierung umgehbar | Art. 32 DSGVO | HOCH | Trait erzwingt PII-Override |
35
+
36
+ ## Code-Pattern (sanitized)
37
+
38
+ ```php
39
+ // File: app/Traits/Anonymizable.php
40
+ <?php
41
+
42
+ namespace App\Traits;
43
+
44
+ use Illuminate\Support\Str;
45
+
46
+ trait Anonymizable
47
+ {
48
+ /**
49
+ * Subclasses MUSS $anonymizableFields definieren.
50
+ * @return array<string, string|callable> // field => Wert oder Closure
51
+ */
52
+ abstract protected function anonymizableFields(): array;
53
+
54
+ public function anonymize(): void
55
+ {
56
+ foreach ($this->anonymizableFields() as $field => $value) {
57
+ $this->{$field} = is_callable($value) ? $value($this) : $value;
58
+ }
59
+ $this->save();
60
+ }
61
+ }
62
+ ```
63
+
64
+ ```php
65
+ // File: app/Models/User.php
66
+ <?php
67
+
68
+ namespace App\Models;
69
+
70
+ use Illuminate\Foundation\Auth\User as Authenticatable;
71
+ use Illuminate\Database\Eloquent\SoftDeletes;
72
+ use App\Traits\Anonymizable;
73
+
74
+ class User extends Authenticatable
75
+ {
76
+ use SoftDeletes, Anonymizable;
77
+
78
+ protected $fillable = ['email', 'name', 'phone', 'address'];
79
+
80
+ protected $hidden = ['password', 'remember_token'];
81
+
82
+ protected $casts = [
83
+ 'deleted_at' => 'datetime',
84
+ 'last_login_at' => 'datetime',
85
+ ];
86
+
87
+ protected function anonymizableFields(): array
88
+ {
89
+ return [
90
+ 'email' => fn(self $u) => "deleted-{$u->id}@<placeholder-domain>",
91
+ 'name' => 'GELOESCHT',
92
+ 'phone' => null,
93
+ 'address' => null,
94
+ 'avatar_url' => null,
95
+ // Pflicht: ID muss erhalten bleiben fuer Audit-Trail
96
+ ];
97
+ }
98
+
99
+ public function softDeleteWithAnonymization(?string $reason = null): void
100
+ {
101
+ $this->anonymize();
102
+ $this->deletion_reason = $reason;
103
+ $this->delete(); // Soft-Delete (deleted_at gesetzt)
104
+ }
105
+
106
+ /**
107
+ * Hard-Delete nur durch Cron (siehe gdpr-cleanup-cron.md)
108
+ */
109
+ public function forceDeleteAllowed(): bool
110
+ {
111
+ return $this->deleted_at !== null
112
+ && $this->deleted_at->lt(now()->subDays(30));
113
+ }
114
+
115
+ public function restore(): bool
116
+ {
117
+ // Verhindere unbedachten Restore
118
+ throw new \RuntimeException(
119
+ 'User-Restore ist DSGVO-relevant — nur via Admin-Workflow erlaubt'
120
+ );
121
+ }
122
+ }
123
+ ```
124
+
125
+ ```php
126
+ // File: database/migrations/2026_05_05_add_deletion_columns.php
127
+ <?php
128
+
129
+ use Illuminate\Database\Migrations\Migration;
130
+ use Illuminate\Database\Schema\Blueprint;
131
+ use Illuminate\Support\Facades\Schema;
132
+
133
+ return new class extends Migration {
134
+ public function up(): void
135
+ {
136
+ Schema::table('users', function (Blueprint $table) {
137
+ $table->softDeletes();
138
+ $table->timestamp('last_login_at')->nullable();
139
+ $table->string('deletion_reason', 500)->nullable();
140
+ $table->index('deleted_at');
141
+ });
142
+ }
143
+
144
+ public function down(): void
145
+ {
146
+ Schema::table('users', function (Blueprint $table) {
147
+ $table->dropSoftDeletes();
148
+ $table->dropColumn(['last_login_at', 'deletion_reason']);
149
+ });
150
+ }
151
+ };
152
+ ```
153
+
154
+ ```php
155
+ // File: app/Observers/UserObserver.php
156
+ <?php
157
+
158
+ namespace App\Observers;
159
+
160
+ use App\Models\User;
161
+ use App\Models\ActivityLog;
162
+ use App\Models\PaymentMethod;
163
+
164
+ class UserObserver
165
+ {
166
+ public function deleting(User $user): void
167
+ {
168
+ if ($user->isForceDeleting()) {
169
+ // Hard-Delete: Cascade auf abhaengige Tabellen
170
+ ActivityLog::where('user_id', $user->id)->delete();
171
+ PaymentMethod::where('user_id', $user->id)->delete();
172
+ // Search-Index entfernen
173
+ $user->unsearchable();
174
+ // S3-Avatare loeschen
175
+ \Storage::disk('s3')->delete("avatars/{$user->id}.jpg");
176
+ }
177
+ }
178
+ }
179
+ ```
180
+
181
+ ```php
182
+ // File: app/Providers/AppServiceProvider.php
183
+ <?php
184
+
185
+ namespace App\Providers;
186
+
187
+ use App\Models\User;
188
+ use App\Observers\UserObserver;
189
+ use Illuminate\Support\ServiceProvider;
190
+
191
+ class AppServiceProvider extends ServiceProvider
192
+ {
193
+ public function boot(): void
194
+ {
195
+ User::observe(UserObserver::class);
196
+ }
197
+ }
198
+ ```
199
+
200
+ ```php
201
+ // File: app/Http/Controllers/Gdpr/DeleteAccountController.php
202
+ <?php
203
+
204
+ namespace App\Http\Controllers\Gdpr;
205
+
206
+ use Illuminate\Http\Request;
207
+ use App\Http\Controllers\Controller;
208
+
209
+ class DeleteAccountController extends Controller
210
+ {
211
+ public function destroy(Request $request)
212
+ {
213
+ $user = $request->user();
214
+ $reason = $request->input('reason');
215
+
216
+ $user->softDeleteWithAnonymization($reason);
217
+
218
+ // Logout
219
+ auth()->logout();
220
+ $request->session()->invalidate();
221
+ $request->session()->regenerateToken();
222
+
223
+ return response()->json([
224
+ 'status' => 'PENDING_HARD_DELETE',
225
+ 'soft_deleted_at' => now()->toIso8601String(),
226
+ 'hard_delete_scheduled' => 'in 30 Tagen',
227
+ ], 202);
228
+ }
229
+ }
230
+ ```
231
+
232
+ ## AVV / DPA
233
+
234
+ - Datenbank — Hard-Delete-Wirksamkeit garantiert
235
+ - Search-Provider (Algolia / Meilisearch) — Index-Sync-Garantie via Observer
236
+ - File-Storage (S3 / Bunny) — Cascade-Delete via Observer
237
+
238
+ ## DSE-Wording-Vorlage
239
+
240
+ ```markdown
241
+ ### Loeschverfahren bei Account-Loeschung
242
+
243
+ Bei Beantragung Ihrer Loeschung erfolgt ein zwei-stufiger Prozess:
244
+
245
+ **Stufe 1 — Sofortige Anonymisierung (Soft-Delete):**
246
+ - E-Mail wird zu `deleted-{ID}@<placeholder-domain>` ueberschrieben
247
+ - Name wird zu "GELOESCHT" gesetzt
248
+ - Telefon, Adresse, Avatar werden geloescht
249
+ - Account wird deaktiviert
250
+ - Sie werden ausgeloggt
251
+
252
+ **Stufe 2 — Endgueltige Loeschung (Hard-Delete) nach 30 Tagen:**
253
+ - Account-Datensatz wird komplett aus der Datenbank entfernt
254
+ - Verbundene Aktivitaets-Logs, Bezahl-Methoden, Avatare werden geloescht
255
+ - Eintraege in Such-Indexen werden entfernt
256
+ - Backup-Dateien werden via Standard-Rotation automatisch ueberschrieben
257
+
258
+ **30-Tage-Frist:** Dient dem Schutz vor versehentlicher Loeschung
259
+ (Widerruf moeglich bis zum Hard-Delete).
260
+
261
+ **Rechtsgrundlage:** Art. 17 DSGVO (Recht auf Loeschung).
262
+ ```
263
+
264
+ ## Verify-Commands (Live-Probe)
265
+
266
+ ```bash
267
+ # 1. Soft-Delete anonymisiert PII sofort
268
+ # DB-Query nach Test-Loeschung:
269
+ # SELECT email, name, deleted_at FROM users WHERE id = '<test-id>';
270
+ # Erwartung: email = "deleted-{id}@..." , name = "GELOESCHT", deleted_at != NULL
271
+
272
+ # 2. restore() blockt
273
+ # php artisan tinker → User::onlyTrashed()->first()->restore();
274
+ # Erwartung: RuntimeException
275
+
276
+ # 3. Hard-Delete via Cron-Test
277
+ # php artisan gdpr:hard-delete --dry-run
278
+ # Erwartung: Liste der Soft-Deleted-User > 30 Tage
279
+
280
+ # 4. Cascade-Delete via Observer
281
+ # Hard-Delete Test-User; pruefe activity_logs.user_id = test-id COUNT(*) = 0
282
+ ```
283
+
284
+ ## Cross-References
285
+
286
+ - AEGIS-Scanner: `soft-delete-checker.ts`, `cascade-delete-checker.ts`, `pii-anonymization-checker.ts`
287
+ - Skill-Reference: `references/dsgvo.md` Art. 17 (Loeschung), Art. 5 lit. e (Speicherbegrenzung)
288
+ - BGH-Rechtsprechung: `references/bgh-urteile.md`
289
+ - EuGH: `references/eu-eugh-dsgvo-schadensersatz.md` (Loeschanspruch)
290
+ - Audit-Pattern: `references/audit-patterns.md` Phase 8 (Betroffenenrechte), Phase 4 (DSE-Drift)
@@ -0,0 +1,263 @@
1
+ ---
2
+ license: MIT (snippet)
3
+ provider: Laravel + Spatie/Analytics (Open-Source)
4
+ last-checked: 2026-05-05
5
+ purpose: Laravel-Tracking-Config mit Spatie/Analytics + Consent-aware Tracker-Initialisierung.
6
+ ---
7
+
8
+ # Laravel — Tracking-Config Pattern
9
+
10
+ ## Trigger / Detection
11
+
12
+ Repo enthaelt:
13
+ - `spatie/laravel-analytics` oder vergleichbares Package
14
+ - `config/services.php` mit Tracker-Endpoints
15
+ - `App\Services\AnalyticsService` o.ae.
16
+ - Optional: `App\Listeners\TrackEvent` Event-Listener
17
+
18
+ ## Default-Verhalten (was passiert ohne Konfiguration)
19
+
20
+ - Spatie/Analytics laedt Daten direkt in Controller-Code → Server-Server-Calls ohne Consent
21
+ - Default-Endpoint nicht auf EU gepinnt (z.B. Google-Analytics Service-Account)
22
+ - `dd($result)` in Debug-Code leakt Tracker-Daten in Browser
23
+ - Logs enthalten Tracker-Roh-Responses inkl. PII
24
+ - Fehlende Auftragsverarbeiter-Doku → § 28 DSGVO-Verstoss
25
+
26
+ ## Compliance-Risiken
27
+
28
+ | Risiko | Norm | Severity | Fix |
29
+ |---|---|---|---|
30
+ | Server-Side Tracker-Init ohne Consent | § 25 TDDDG | KRITISCH | Consent-Check vor `AnalyticsService::record(...)` |
31
+ | Drittland-Provider (Google Analytics) | Art. 44 DSGVO | KRITISCH | Migrate zu Plausible EU / Matomo / Umami |
32
+ | PII (User-Email) als `cid` an Tracker | Art. 5 lit. c | HOCH | Pseudonymous-ID via Hash |
33
+ | Service-Account-Credentials in `config/services.php` | Art. 32 DSGVO | KRITISCH | Move zu `.env` + Vault |
34
+ | `Log::info($tracker_response)` mit PII | Art. 5 lit. f | HOCH | Pino-Redact / Monolog Processor |
35
+
36
+ ## Code-Pattern (sanitized)
37
+
38
+ ```php
39
+ // File: config/analytics.php
40
+ <?php
41
+
42
+ return [
43
+ 'enabled' => env('ANALYTICS_ENABLED', false),
44
+ 'endpoint' => env('ANALYTICS_ENDPOINT', 'https://<placeholder-eu-analytics-host>/api/event'),
45
+ 'token' => env('ANALYTICS_TOKEN'),
46
+ 'allowed_hosts' => [
47
+ '<placeholder-eu-analytics-host>',
48
+ '<placeholder-eu-error-tracking-host>',
49
+ ],
50
+ 'ip_hash_salt' => env('IP_HASH_SALT'),
51
+ ];
52
+ ```
53
+
54
+ ```php
55
+ // File: app/Services/AnalyticsService.php
56
+ <?php
57
+
58
+ namespace App\Services;
59
+
60
+ use Illuminate\Support\Facades\Http;
61
+ use Illuminate\Support\Facades\Log;
62
+
63
+ class AnalyticsService
64
+ {
65
+ public function record(string $event, array $payload, ?string $consentRaw = null): void
66
+ {
67
+ // 1. Feature-Flag-Check
68
+ if (! config('analytics.enabled')) {
69
+ return;
70
+ }
71
+
72
+ // 2. Consent-Check
73
+ $consent = $this->parseConsent($consentRaw);
74
+ if (! $consent['analytics']) {
75
+ return;
76
+ }
77
+
78
+ // 3. Allowed-Host-Pruefung
79
+ $endpoint = config('analytics.endpoint');
80
+ $host = parse_url($endpoint, PHP_URL_HOST);
81
+ if (! in_array($host, config('analytics.allowed_hosts'), true)) {
82
+ Log::warning('Analytics-Host nicht in Allowlist', ['host' => $host]);
83
+ return;
84
+ }
85
+
86
+ // 4. PII-Filter
87
+ $safe = $this->sanitize($payload);
88
+
89
+ // 5. Forward (Fire-and-Forget mit Timeout)
90
+ try {
91
+ Http::withToken(config('analytics.token'))
92
+ ->timeout(2)
93
+ ->post($endpoint, [
94
+ 'event' => $event,
95
+ 'data' => $safe,
96
+ 'timestamp' => now()->toIso8601String(),
97
+ ]);
98
+ } catch (\Throwable $e) {
99
+ // Silent — Tracker-Fehler darf Hauptrequest nicht crashen
100
+ Log::warning('Analytics-Forward fehlgeschlagen', [
101
+ 'event' => $event,
102
+ 'error' => $e->getMessage(),
103
+ ]);
104
+ }
105
+ }
106
+
107
+ private function parseConsent(?string $raw): array
108
+ {
109
+ $default = ['necessary' => true, 'analytics' => false, 'marketing' => false];
110
+ if (! $raw) return $default;
111
+ $parsed = json_decode($raw, true);
112
+ return is_array($parsed) ? array_merge($default, $parsed) : $default;
113
+ }
114
+
115
+ private function sanitize(array $payload): array
116
+ {
117
+ $allowed = ['path', 'referrer', 'screen', 'language', 'event_type'];
118
+ $out = [];
119
+ foreach ($payload as $k => $v) {
120
+ if (in_array($k, $allowed, true) && (is_string($v) || is_numeric($v))) {
121
+ $out[$k] = is_string($v) ? substr($v, 0, 500) : $v;
122
+ }
123
+ }
124
+ return $out;
125
+ }
126
+
127
+ public function visitorHash(string $ip): string
128
+ {
129
+ return substr(
130
+ hash('sha256', $ip . config('analytics.ip_hash_salt')),
131
+ 0,
132
+ 16
133
+ );
134
+ }
135
+ }
136
+ ```
137
+
138
+ ```php
139
+ // File: app/Http/Controllers/TrackController.php
140
+ <?php
141
+
142
+ namespace App\Http\Controllers;
143
+
144
+ use Illuminate\Http\Request;
145
+ use App\Services\AnalyticsService;
146
+
147
+ class TrackController extends Controller
148
+ {
149
+ public function __construct(private AnalyticsService $analytics) {}
150
+
151
+ public function pageview(Request $request)
152
+ {
153
+ $request->validate([
154
+ 'path' => 'required|string|max:200',
155
+ 'referrer' => 'nullable|string|max:500',
156
+ ]);
157
+
158
+ $consentRaw = $request->cookie('cookie_consent');
159
+
160
+ $this->analytics->record('pageview', [
161
+ 'path' => $request->input('path'),
162
+ 'referrer' => $request->input('referrer', ''),
163
+ 'visitor_hash' => $this->analytics->visitorHash($request->ip()),
164
+ ], $consentRaw);
165
+
166
+ return response()->noContent();
167
+ }
168
+ }
169
+ ```
170
+
171
+ ```php
172
+ // File: app/Providers/AnalyticsServiceProvider.php
173
+ <?php
174
+
175
+ namespace App\Providers;
176
+
177
+ use Illuminate\Support\ServiceProvider;
178
+ use Illuminate\Support\Facades\Log;
179
+
180
+ class AnalyticsServiceProvider extends ServiceProvider
181
+ {
182
+ public function boot(): void
183
+ {
184
+ // Monolog-Processor: redact PII aus Logs
185
+ Log::pushProcessor(function ($record) {
186
+ $patterns = [
187
+ '/[\w.+-]+@[\w-]+\.[\w-]+/' => '[EMAIL_REDACTED]',
188
+ '/\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b/' => '[CC_REDACTED]',
189
+ '/\bDE\d{2}[\d\s]{18,22}\b/' => '[IBAN_REDACTED]',
190
+ ];
191
+
192
+ $msg = $record->message;
193
+ foreach ($patterns as $pattern => $replacement) {
194
+ $msg = preg_replace($pattern, $replacement, $msg);
195
+ }
196
+
197
+ return $record->with(message: $msg);
198
+ });
199
+ }
200
+ }
201
+ ```
202
+
203
+ ```bash
204
+ # File: .env (Beispiel)
205
+ ANALYTICS_ENABLED=true
206
+ ANALYTICS_ENDPOINT=https://<placeholder-eu-analytics-host>/api/event
207
+ ANALYTICS_TOKEN=<placeholder-secret-min-32-bytes>
208
+ IP_HASH_SALT=<placeholder-salt-min-32-bytes>
209
+ ```
210
+
211
+ ## AVV / DPA
212
+
213
+ - Analytics-Provider — AVV mit EU-Hosting Pflicht
214
+ - Hosting-Provider — Art. 28 DSGVO
215
+ - Logging-Service (sofern extern: Sentry EU / Bugsnag) — AVV mit IP-Anonymisierung-Garantie
216
+
217
+ ## DSE-Wording-Vorlage
218
+
219
+ ```markdown
220
+ ### Server-Side Tracking
221
+
222
+ Wir verwenden serverseitige Tracker-Forwards anstelle direkter
223
+ Client-Scripts. Vor jedem Forward erfolgt:
224
+
225
+ 1. **Consent-Check:** Forward nur wenn Sie Analytics-Cookies aktiviert haben
226
+ 2. **PII-Filter:** Nur erlaubte Felder (Pfad, Referrer-Domain, Bildschirm-Aufloesung)
227
+ 3. **Allowlist-Pruefung:** Nur EU-Provider in unserer Allowlist erhalten Daten
228
+ 4. **IP-Anonymisierung:** SHA-256-Hash mit Salt, gekuerzt auf 16 Zeichen
229
+
230
+ **Anbieter:** <placeholder-analytics-provider>, EU-Hosting.
231
+ **Rechtsgrundlage:** Art. 6 Abs. 1 lit. a DSGVO i.V.m. § 25 TDDDG.
232
+ **Speicherdauer:** <placeholder-days> Tage.
233
+ ```
234
+
235
+ ## Verify-Commands (Live-Probe)
236
+
237
+ ```bash
238
+ # 1. Tracker blockt ohne Consent
239
+ curl -X POST https://<placeholder-domain>/track/pageview \
240
+ -H "Content-Type: application/json" \
241
+ -d '{"path":"/test"}' -i
242
+ # Erwartung: 204, aber serverseitig kein Forward (Logs pruefen)
243
+
244
+ # 2. Mit Consent: Forward erfolgreich
245
+ curl -X POST https://<placeholder-domain>/track/pageview \
246
+ -H "Content-Type: application/json" \
247
+ -H 'Cookie: cookie_consent=%7B%22analytics%22%3Atrue%7D' \
248
+ -d '{"path":"/test"}' -i
249
+ # Erwartung: 204
250
+
251
+ # 3. Allowed-Host-Enforcement (Unit-Test mit gefakter Endpoint-Config)
252
+
253
+ # 4. Logs enthalten keine E-Mails
254
+ tail -100 storage/logs/laravel.log | grep -E '[\w.+-]+@[\w-]+\.[\w-]+' | head -5
255
+ # Erwartung: 0 oder ausschliesslich [EMAIL_REDACTED]
256
+ ```
257
+
258
+ ## Cross-References
259
+
260
+ - AEGIS-Scanner: `tracking-scan.ts`, `pii-flow-tracker.ts`, `data-transfer-checker.ts`
261
+ - Skill-Reference: `references/dsgvo.md` Art. 5 (Min), Art. 44 (Drittland)
262
+ - BGH-Rechtsprechung: `references/bgh-urteile.md` BGH I ZR 7/16
263
+ - Audit-Pattern: `references/audit-patterns.md` Phase 3 (Drittland), Phase 6 (Server-Logs)