@aegis-scan/skills 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/ATTRIBUTION.md +204 -0
  2. package/CHANGELOG.md +48 -3
  3. package/package.json +1 -1
  4. package/sbom.cdx.json +1 -1
  5. package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
  6. package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +1080 -0
  7. package/skills/compliance/aegis-native/brutaler-anwalt/HANDOVER-LO-LIVE-VERIFICATION-2026-05-15.md +187 -0
  8. package/skills/compliance/aegis-native/brutaler-anwalt/LICENSE +43 -0
  9. package/skills/compliance/aegis-native/brutaler-anwalt/README.md +242 -0
  10. package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +427 -14
  11. package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
  12. package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
  13. package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
  14. package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
  15. package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
  16. package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
  17. package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
  18. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
  19. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
  20. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
  21. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
  22. package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
  23. package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
  24. package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +63 -9
  25. package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +1581 -10
  26. package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
  27. package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +323 -31
  28. package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +610 -1
  29. package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +107 -1
  30. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
  31. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
  32. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
  33. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
  34. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
  35. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
  36. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
  37. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
  38. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
  39. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
  40. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
  41. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
  42. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
  43. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
  44. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
  45. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
  46. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
  47. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
  48. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
  49. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
  50. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
  51. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
  52. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
  53. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
  54. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
  55. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
  56. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
  57. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
  58. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
  59. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
  60. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
  61. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
  62. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
  63. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
  64. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
  65. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
  66. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
  67. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
  68. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
  69. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
  70. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
  71. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
  72. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
  73. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
  74. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
  75. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
  76. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
  77. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
  78. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
  79. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
  80. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
  81. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
  82. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
  83. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
  84. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
  85. package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +81 -8
  86. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
  87. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
  88. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
  89. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/paragraphs.md +62 -0
  90. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
  91. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/paragraphs.md +85 -0
  92. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
  93. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/paragraphs.md +112 -0
  94. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
  95. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/paragraphs.md +71 -0
  96. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/articles.md +182 -0
  97. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
  98. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +111 -0
  99. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
  100. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
  101. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
  102. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
  103. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
  104. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
  105. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
  106. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
  107. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
  108. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
  109. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
  110. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
  111. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
  112. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
  113. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +134 -0
  114. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
  115. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
  116. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
  117. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
  118. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
  119. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
  120. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
  121. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
  122. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
  123. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
  124. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
  125. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
  126. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
  127. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
  128. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
  129. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
  130. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
  131. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/paragraphs.md +61 -0
  132. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
  133. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/INDEX.md +93 -0
  134. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
  135. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
  136. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
  137. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
  138. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
  139. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
  140. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
  141. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
  142. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
  143. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +68 -0
  144. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
  145. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
  146. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +185 -0
  147. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
  148. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
  149. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/paragraphs.md +57 -0
  150. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
  151. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
  152. package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +137 -9
  153. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +122 -0
  154. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
  155. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/mistral-eu.md +123 -0
  156. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/openai-dpa.md +120 -0
  157. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
  158. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
  159. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
  160. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
  161. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
  162. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/nextauth-tom.md +120 -0
  163. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/supabase-auth-tom.md +104 -0
  164. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
  165. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
  166. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
  167. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
  168. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
  169. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
  170. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
  171. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
  172. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
  173. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
  174. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
  175. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
  176. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
  177. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
  178. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
  179. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
  180. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
  181. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/proxy-csp-pattern.md +93 -0
  182. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/payment/stripe-pci-tom.md +121 -0
  183. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
  184. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
  185. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
  186. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
  187. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
  188. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
  189. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
  190. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
  191. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
  192. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
  193. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
  194. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/plausible-pattern.md +107 -0
  195. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
  196. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
  197. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
  198. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
  199. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
  200. package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
  201. package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
  202. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/AffiliateDisclaimer.tsx.example +54 -0
  203. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/COMPLIANCE-AUDIT-TRAIL-template.md +95 -0
  204. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSE-Section-UGC.md.example +77 -0
  205. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +156 -0
  206. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/LostFoundReportForm-consent.tsx.example +126 -0
  207. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/README.md +33 -0
  208. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/UmamiScript.tsx.example +64 -0
  209. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
  210. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template.md +60 -0
  211. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-cron.ts.example +52 -0
  212. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-workflow.yml.example +47 -0
  213. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/proxy-strict-dynamic.ts.example +80 -0
  214. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/security.txt.example +26 -0
  215. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
  216. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
  217. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
  218. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
  219. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
  220. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
  221. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
  222. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
  223. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
  224. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
  225. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +262 -0
  226. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
  227. package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
  228. package/skills/defensive/aegis-native/rls-defense/SKILL.md +85 -0
  229. package/skills/defensive/permoon-fork/README.md +40 -0
  230. package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
  231. package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
  232. package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
  233. package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
  234. package/skills/foundation/aegis-native/aegis-module-builder/SKILL.md +5 -1
  235. package/skills/foundation/aegis-native/aegis-orchestrator/SKILL.md +87 -4
  236. package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +69 -9
  237. package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
  238. package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
  239. package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
  240. package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
  241. package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
  242. package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
  243. package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
  244. package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
  245. package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
  246. package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
  247. package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
  248. package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
  249. package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
  250. package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
  251. package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
  252. package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
  253. package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
  254. package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
  255. package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
  256. package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
  257. package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
  258. package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
  259. package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
  260. package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
  261. package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
  262. package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
  263. package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
  264. package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
  265. package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
  266. package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
  267. package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
  268. package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
  269. package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
  270. package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
  271. package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
  272. package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
  273. package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
  274. package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
  275. package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
  276. package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
  277. package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
  278. package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
  279. package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
  280. package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
  281. package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
  282. package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
  283. package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
  284. package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
  285. package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
  286. package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
  287. package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
  288. package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
  289. package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
  290. package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
  291. package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
  292. package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
  293. package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
  294. package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
  295. package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
  296. package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
  297. package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
  298. package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
  299. package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
  300. package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
  301. package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
  302. package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
  303. package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
  304. package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
  305. package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
  306. package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
  307. package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
  308. package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
  309. package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
  310. package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
  311. package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
  312. package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
  313. package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
  314. package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
  315. package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
  316. package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
  317. package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
  318. package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
  319. package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
  320. package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
  321. package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
  322. package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
  323. package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
  324. package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
  325. package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
  326. package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
  327. package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
  328. package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
  329. package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
  330. package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
  331. package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
  332. package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
  333. package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
  334. package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
  335. package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
  336. package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
  337. package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
  338. package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
  339. package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
  340. package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
  341. package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
  342. package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
  343. package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
  344. package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
  345. package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
  346. package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
  347. package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
  348. package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
  349. package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
  350. package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
  351. package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
  352. package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
  353. package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
  354. package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
  355. package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
  356. package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
  357. package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
  358. package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
  359. package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
  360. package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
  361. package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
  362. package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
  363. package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
  364. package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
  365. package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
  366. package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
  367. package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
  368. package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
  369. package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
  370. package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
  371. package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
  372. package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
  373. package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
  374. package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
  375. package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
  376. package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
  377. package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
  378. package/skills/offensive/matty-fork/cicd-redteam/SKILL.md +531 -0
  379. package/skills/offensive/matty-fork/cloud-security/SKILL.md +106 -0
  380. package/skills/offensive/matty-fork/container-escape/SKILL.md +174 -0
  381. package/skills/offensive/matty-fork/mobile-pentester/SKILL.md +357 -0
  382. package/skills/offensive/matty-fork/subdomain-takeover/SKILL.md +154 -0
  383. package/skills/osint/elementalsouls-fork/offensive-osint/README.md +92 -0
  384. package/skills/osint/elementalsouls-fork/offensive-osint/SKILL.md +4177 -0
  385. package/skills/osint/elementalsouls-fork/osint-methodology/README.md +66 -0
  386. package/skills/osint/elementalsouls-fork/osint-methodology/SKILL.md +1695 -0
@@ -0,0 +1,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)