@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,156 @@
1
+ ---
2
+ license: MIT
3
+ purpose: Generische DSFA-Vorlage (Art. 35 DSGVO). Anonym, brand-agnostic.
4
+ references: dsgvo.md (DSFA-Trigger-Liste)
5
+ sources: BayLDA-Hinweise zur DSFA + DSK-Whitelist 2018
6
+ ---
7
+
8
+ # Datenschutz-Folgenabschaetzung (DSFA) — Vorlage
9
+
10
+ > Diese Vorlage erfuellt Art. 35 DSGVO + DSK-Whitelist 2018 + BayLDA-Hinweise.
11
+ > Kein Ersatz fuer anwaltliche Bewertung. Vor Inbetriebnahme der Verarbeitung
12
+ > intern abnehmen lassen (Datenschutzbeauftragter / interner Compliance-Officer).
13
+
14
+ ## 1. Verantwortlicher (Art. 4 Nr. 7 DSGVO)
15
+
16
+ | Feld | Wert |
17
+ |------|------|
18
+ | Verantwortlicher | `<Operator-Firma>` |
19
+ | Anschrift | `<vollstaendige-Anschrift>` |
20
+ | Kontakt DSB | `<email-DSB>` (sofern bestellt) |
21
+ | DSFA-Datum | `<YYYY-MM-DD>` |
22
+ | DSFA-Version | `<vN.N>` |
23
+
24
+ ## 2. Beschreibung der Verarbeitung (Art. 35 Abs. 7 lit. a DSGVO)
25
+
26
+ - **Verarbeitungszweck**: `<Zweck>`
27
+ - **Datenkategorien**: `<Kategorien>` (z.B. Stammdaten, Kontaktdaten, Nutzungsdaten, ggf. besondere Kategorien Art. 9)
28
+ - **Betroffene Personen**: `<Personenkreis>`
29
+ - **Empfaenger**: `<intern>` / `<Auftragsverarbeiter>` / `<Drittland>`
30
+ - **Speicherdauer**: `<Frist>` (mit gesetzlichem Anker)
31
+ - **Rechtsgrundlage**: Art. 6 Abs. 1 lit. `<a/b/c/d/e/f>` DSGVO `<+ Art. 9 lit. X falls relevant>`
32
+
33
+ ## 3. Notwendigkeit + Verhaeltnismaessigkeit (Art. 35 Abs. 7 lit. b)
34
+
35
+ - **Notwendigkeit**: warum diese Daten?
36
+ - **Datenminimierung**: was wurde weggelassen?
37
+ - **Pseudonymisierung / Anonymisierung**: wo moeglich?
38
+
39
+ ## 4. Risiken fuer Betroffene (Art. 35 Abs. 7 lit. c)
40
+
41
+ | Risiko-Kategorie | Bewertung | Begruendung |
42
+ |------------------|-----------|-------------|
43
+ | Identitaetsdiebstahl | `<niedrig/mittel/hoch>` | `<...>` |
44
+ | Diskriminierung | `<...>` | `<...>` |
45
+ | Reputations-/Vermoegensschaden | `<...>` | `<...>` |
46
+ | Profiling | `<...>` | `<...>` |
47
+ | Verlust Kontrolle ueber Daten | `<...>` | `<...>` |
48
+
49
+ ### 4.1 Schadensersatz-Erwartungswert (post-EuGH C-300/21)
50
+
51
+ | Schaden-Klasse | Realistische Hoehe pro Betroffener | Begruendung |
52
+ |---|---|---|
53
+ | Bagatell-Verletzung | 0-100 EUR | C-456/22 Gemeinde Ummendorf — keine Erheblichkeitsschwelle, aber kurzfristiger Kontrollverlust niedrig bewertet |
54
+ | Befuerchtungs-Schaden (Datenleck) | 100-500 EUR | C-340/21 Natsionalna agentsia — bei Cyber-Angriff ausreichend; pro Betroffener |
55
+ | Massendaten-Verarbeitung ohne Rechtsgrundlage | 500-2.000 EUR | C-446/21 Schrems vs Meta — Datenminimierungs-Verstoss bei Profiling-Aggregation |
56
+ | Sensible Daten Art. 9 DSGVO | 1.000-5.000 EUR | C-21/23 Lindenapotheke — Gesundheits-/Religiose/Biometrie-Daten erhoehter Schutz |
57
+ | Identitaetsdiebstahl tatsaechlich erfolgt | bis Vollausgleich materieller Schaden | C-182/22 + C-189/22 Scalable — voller Ausgleich |
58
+
59
+ **Wichtig (C-590/22 PS GbR)**: Schadensersatz hat **reine Kompensationsfunktion** — NICHT mit Bussgeld-Hoehen argumentieren. Bemessung orientiert sich an konkreten Auswirkungen fuer Betroffene (Aerger-Dauer, Daten-Sensitivitaet, Wiederholbarkeit). Cross-Reference: `references/eu-eugh-dsgvo-schadensersatz.md` Tier-1.
60
+
61
+ ### 4.2 Doku-Pflicht nach § 35 BDSG (Beschaeftigtendaten-Spezifika)
62
+
63
+ Bei Beschaeftigtendaten-Verarbeitung zusaetzlich zur DSGVO-DSFA pruefen:
64
+ - **§ 35 Abs. 1 BDSG**: Recht auf Berichtigung — Verfahren ueberhaupt vorgesehen?
65
+ - **§ 35 Abs. 2 BDSG**: Loeschungs-Anspruch enger als Art. 17 DSGVO bei behoerdlichen Aufbewahrungspflichten
66
+ - **§ 35 Abs. 3 BDSG**: Statt Loeschung Einschraenkung der Verarbeitung bei Pflicht-Aufbewahrung
67
+ - **EuGH C-65/23 MK gg K GmbH (19.12.2024)**: Beschaeftigten-Betriebsvereinbarung muss kumulativ Art. 88 Abs. 2 DSGVO **UND** Art. 5/6/9 DSGVO erfuellen — BV kein Schutzschild fuer DSGVO-Nicht-Konformitaet (Cross-Reference: `references/eu-eugh-dsgvo-schadensersatz.md` Tier-1 #10)
68
+
69
+ **Pflicht-Pruefung bei HR-Tools (Workday, HRIS, Workforce-Analytics, KI-Hiring)**:
70
+ 1. Rechtsgrundlage Art. 88 + Art. 6 + ggf. Art. 9 DSGVO
71
+ 2. § 26 BDSG-Verhaeltnismaessigkeit
72
+ 3. BetrVG § 87 Abs. 1 Nr. 6 (Mitbestimmung KI-Tools)
73
+ 4. AGG § 7 + § 22 (Diskriminierungs-Beweislast bei KI-Bewerbungstools)
74
+ 5. § 35 BDSG-Berichtigungs-/Loeschungs-Verfahren
75
+
76
+ ## 5. Abhilfemassnahmen (Art. 35 Abs. 7 lit. d)
77
+
78
+ | Massnahme | Implementierungsstatus | Verify-Command |
79
+ |-----------|------------------------|----------------|
80
+ | Verschluesselung at-rest (TLS, DB) | `<umgesetzt>` | `<curl -sI ...>` |
81
+ | Verschluesselung in-transit | `<umgesetzt>` | `<...>` |
82
+ | Zugriffsbeschraenkung (RBAC) | `<...>` | `<...>` |
83
+ | Audit-Logging | `<...>` | `<...>` |
84
+ | Datenminimierung in Logs | `<...>` | `<...>` |
85
+ | Auto-Cleanup nach Frist | `<...>` | `<...>` |
86
+ | TOMs (Art. 32 DSGVO) | `<verweis>` | `<...>` |
87
+
88
+ ## 6. Konsultations-Pflicht (Art. 36 DSGVO)
89
+
90
+ - Wenn nach Massnahmen Risiko **weiterhin hoch** → Pflicht, Aufsichtsbehoerde
91
+ zu konsultieren VOR Beginn der Verarbeitung.
92
+ - Frist Aufsichtsbehoerde: 8 Wochen (verlaengerbar 6 Wochen).
93
+
94
+ ## 7. Review-Frist
95
+
96
+ DSFA mindestens jaehrlich oder bei wesentlicher Aenderung der Verarbeitung
97
+ ueberpruefen. Naechstes Review: `<YYYY-MM-DD>`.
98
+
99
+ ## 8. Spezifika fuer Art-9-Verarbeitungen (V4-Pattern, post-Art-9-Workflow-Audit 2026-05-03)
100
+
101
+ Bei besonderen Kategorien Art. 9 DSGVO (Gesundheitsdaten, biometrisch, Gewerkschaft,
102
+ Religion, politische Meinung) gelten **verschaerfte Anforderungen** (Art. 35 Abs. 3
103
+ lit. b — DSFA Pflicht; KMU-Privileg gilt nicht).
104
+
105
+ ### 8.1 Rechtsgrundlage-Pruefung
106
+
107
+ - Hauptpfad: Art. 9 Abs. 2 lit. a DSGVO (ausdrueckliche Einwilligung)
108
+ - Alternativen pruefen + ausschliessen:
109
+ - lit. b (Arbeitsrecht / Sozialschutz) — nur HR-Kontexte
110
+ - lit. c (lebenswichtige Interessen) — nur Notfall
111
+ - lit. f (Rechtsanspruechen) — nur prozessual
112
+ - lit. h (Gesundheitsvorsorge durch Berufsgeheimnistraeger) — nur Heilberuf
113
+ - § 22 BDSG: Detail-Erlaubnis-Norm, NUR wenn lit. h greift
114
+ - **Verbotener Verweis**: Art. 6 Abs. 1 lit. f (berechtigtes Interesse) — bei Art-9 nicht zulaessig
115
+
116
+ ### 8.2 Beweis-Pflicht-Mechanismus (Art. 7 Abs. 1)
117
+
118
+ | Modus | Implementierung |
119
+ |-------|-----------------|
120
+ | Tablet-eES | SignaturePad-PNG verschluesselt im DB-Record (eIDAS Art. 3 Nr. 10) |
121
+ | Papier eigenhaendig + Scan | Original im Tresor + SHA-256-Hash in DB |
122
+ | Mitarbeiter-Abtipp + Scan + Mitarbeiter-Co-Signatur | Pflicht-Upload + Mitarbeiter-Bestaetigungs-Signatur |
123
+
124
+ ### 8.3 Crypto-at-Rest-TOMs
125
+
126
+ - [ ] AES-256-GCM (oder ChaCha20-Poly1305) mit AAD-Bindung an Row-ID
127
+ - [ ] Key-Versioning im Ciphertext-Format
128
+ - [ ] Decrypt-Fail-Audit-Log (Tampering- + Key-Loss-Detection)
129
+ - [ ] Recovery-Procedure dokumentiert (`docs/security/encryption-recovery.md`)
130
+ - [ ] Mind. 3 unabhaengige Key-Backup-Standorte (Production-ENV + Vault + Offline)
131
+
132
+ ### 8.4 Aufbewahrungs-Differenzierung
133
+
134
+ | Setup | Frist | Norm |
135
+ |-------|-------|------|
136
+ | Wellness/Kosmetik | 3 Jahre | BGB § 195 |
137
+ | Heilpraktiker | 10 Jahre | BGB § 630f Abs. 3 |
138
+ | Personenschaden-Sondercase | bis 30 Jahre | BGB § 199 Abs. 2 |
139
+
140
+ ### 8.5 Audit-Log-Pflicht-Events
141
+
142
+ - create / view / export / revoke / delete (Metadaten-only beim DELETE!)
143
+ - decrypt_failure mit reason + version + keyId
144
+ - scan_hash_mismatch (Tampering-Indikator)
145
+
146
+ ### 8.6 Public-Form-Validierung
147
+
148
+ Wenn Patienten via Public-Tablet/Self-Service Anamnese ausfuellen koennen — Pflicht-Signatur-Block muss UI-seitig vor Submit erzwingen werden. DB-CHECK-Constraint allein → schlechte UX (500-Error statt Submit-Block).
149
+
150
+ > Audit-Pattern fuer Art-9: siehe `references/audit-patterns.md` Phase 5h (Art-9-Beweis-Workflow-Audit).
151
+
152
+ ---
153
+
154
+ *Disclaimer: Diese Vorlage ist eine technisch-indikative Hilfe, keine Rechtsberatung
155
+ i.S.d. § 2 RDG. Vor produktivem Einsatz von einem Fachanwalt fuer Datenschutzrecht
156
+ oder einem zertifizierten Datenschutzbeauftragten pruefen lassen.*
@@ -0,0 +1,126 @@
1
+ // MIT-License — anonymized teaching snippet for brutaler-anwalt
2
+ // References: audit-patterns.md Phase 5c UGC-PUBLIC-PII-AUDIT
3
+ // Pattern: Posting-Form mit Pflicht-Checkbox "wird oeffentlich" (Art. 7 DSGVO Einwilligung)
4
+
5
+ // File: src/components/forms/LostFoundReportForm.tsx (Beispiel: Vermisst-Inserat)
6
+ // Generalisierbar fuer: Marketplace-Inserate, Forum-Threads, oeffentliche Profile.
7
+
8
+ 'use client';
9
+
10
+ import { useState, FormEvent } from 'react';
11
+
12
+ interface LostFoundFormState {
13
+ petName: string;
14
+ city: string;
15
+ contactPhone: string;
16
+ contactEmail: string;
17
+ description: string;
18
+ photo: File | null;
19
+ // Pflicht-Consent — ohne diesen kein Submit
20
+ publicConsent: boolean;
21
+ // Optional zusaetzlich: Speicherdauer-Consent + DSE-Akzeptanz
22
+ privacyAccepted: boolean;
23
+ }
24
+
25
+ const initialState: LostFoundFormState = {
26
+ petName: '',
27
+ city: '',
28
+ contactPhone: '',
29
+ contactEmail: '',
30
+ description: '',
31
+ photo: null,
32
+ publicConsent: false,
33
+ privacyAccepted: false,
34
+ };
35
+
36
+ export function LostFoundReportForm() {
37
+ const [form, setForm] = useState<LostFoundFormState>(initialState);
38
+ const [error, setError] = useState<string | null>(null);
39
+ const [submitting, setSubmitting] = useState(false);
40
+
41
+ // Submit-Gate — Pflicht-Checkbox + DSE-Akzeptanz
42
+ const canSubmit =
43
+ form.publicConsent &&
44
+ form.privacyAccepted &&
45
+ form.petName.length > 0 &&
46
+ form.city.length > 0 &&
47
+ (form.contactPhone.length > 0 || form.contactEmail.length > 0);
48
+
49
+ async function handleSubmit(e: FormEvent) {
50
+ e.preventDefault();
51
+ setError(null);
52
+ if (!canSubmit) {
53
+ setError('Bitte fuelle alle Pflichtfelder aus und bestaetige beide Hinweise.');
54
+ return;
55
+ }
56
+ setSubmitting(true);
57
+ try {
58
+ const fd = new FormData();
59
+ Object.entries(form).forEach(([k, v]) => {
60
+ if (v instanceof File) fd.append(k, v);
61
+ else if (typeof v === 'boolean') fd.append(k, v ? 'true' : 'false');
62
+ else fd.append(k, String(v));
63
+ });
64
+ const res = await fetch('/api/lost-found', { method: 'POST', body: fd });
65
+ if (!res.ok) throw new Error(`Server returned ${res.status}`);
66
+ // erfolgreich — redirect / toast
67
+ } catch (err) {
68
+ setError(String(err));
69
+ } finally {
70
+ setSubmitting(false);
71
+ }
72
+ }
73
+
74
+ return (
75
+ <form onSubmit={handleSubmit} className="lost-found-form">
76
+ {/* ... regular fields ... */}
77
+
78
+ {/* PFLICHT-Consent — sichtbar, NICHT vorausgewaehlt */}
79
+ <fieldset className="consent-block" aria-required="true">
80
+ <legend>Veroeffentlichungs-Hinweise (Pflicht)</legend>
81
+
82
+ <label className="consent-row">
83
+ <input
84
+ type="checkbox"
85
+ checked={form.publicConsent}
86
+ onChange={(e) => setForm({ ...form, publicConsent: e.target.checked })}
87
+ required
88
+ />
89
+ <span>
90
+ Ich habe verstanden, dass dieser Beitrag <strong>oeffentlich
91
+ abrufbar</strong> ist und in Suchmaschinen erscheinen koennte.
92
+ Telefonnummer/E-Mail werden bewusst veroeffentlicht, damit Finder
93
+ Kontakt aufnehmen koennen.
94
+ </span>
95
+ </label>
96
+
97
+ <label className="consent-row">
98
+ <input
99
+ type="checkbox"
100
+ checked={form.privacyAccepted}
101
+ onChange={(e) => setForm({ ...form, privacyAccepted: e.target.checked })}
102
+ required
103
+ />
104
+ <span>
105
+ Ich akzeptiere die <a href="/datenschutz" target="_blank">
106
+ Datenschutzerklaerung</a> und stimme der Verarbeitung gem. Art. 6
107
+ Abs. 1 lit. a DSGVO zu. Ich kann den Beitrag jederzeit selbst
108
+ loeschen.
109
+ </span>
110
+ </label>
111
+ </fieldset>
112
+
113
+ {error && <div role="alert" className="form-error">{error}</div>}
114
+
115
+ <button type="submit" disabled={!canSubmit || submitting}>
116
+ {submitting ? 'Wird abgeschickt…' : 'Vermisst-Inserat veroeffentlichen'}
117
+ </button>
118
+ </form>
119
+ );
120
+ }
121
+
122
+ // VERIFY:
123
+ // - Server-Side: API muss `publicConsent === true` UND `privacyAccepted === true` enforcen
124
+ // (Client-Disable allein reicht nicht — Browser-Devtools koennen den Disable umgehen).
125
+ // - Audit-Log: pro Posting consentId + IP-prefix + Zeitpunkt + Form-Version speichern
126
+ // (Rechenschaftspflicht Art. 5 Abs. 2).
@@ -0,0 +1,33 @@
1
+ ---
2
+ license: MIT
3
+ purpose: Anonymized teaching snippets referenced by audit-patterns.md / dsgvo.md / checklisten.md.
4
+ ---
5
+
6
+ # Templates — anonymisierte Lehrbuch-Snippets
7
+
8
+ Diese Templates sind brand-agnostische Vorlagen, die in den References als
9
+ konkrete Lehrbuch-Beispiele zitiert werden. Sie ersetzen die in fruehen
10
+ Skill-Versionen direkt eingebetteten Brand-spezifischen Snippets.
11
+
12
+ **Konvention:**
13
+ - `<placeholder>` = vom Operator zu ersetzen (z.B. `<brand>`, `<your-domain>`)
14
+ - `<...>` in Code-Snippets sind absichtlich syntactically-invalid, damit
15
+ copy-paste-Hygiene erzwungen wird
16
+ - Alle `.example`-Files sind **keine** lauffaehigen Module — Build-Tools
17
+ sollen sie ignorieren
18
+
19
+ ## Index
20
+
21
+ | Template | Referenced from | Use case |
22
+ |----------|----------------|----------|
23
+ | `DSFA-template.md` | `dsgvo.md` DSFA-Trigger | Datenschutz-Folgenabschaetzung Doc-Vorlage |
24
+ | `VVT-template.md` | `dsgvo.md` VVT | Verzeichnis Verarbeitungstaetigkeiten Vorlage |
25
+ | `COMPLIANCE-AUDIT-TRAIL-template.md` | (Skill-Output-Pattern) | Audit-Trail-Doku-Vorlage fuer eigene Audits |
26
+ | `AffiliateDisclaimer.tsx.example` | `checklisten.md` 3c | React-Component-Vorlage UWG § 5a Abs. 4 |
27
+ | `proxy-strict-dynamic.ts.example` | `audit-patterns.md` HIGH-RISK-CSP | Next.js proxy-CSP Strict-Dynamic-Pattern |
28
+ | `data-retention-cron.ts.example` | `audit-patterns.md` Phase 4 | Bearer-auth Retention-Cleanup Route |
29
+ | `data-retention-workflow.yml.example` | `audit-patterns.md` Phase 4 | GitHub Actions Cron-Trigger |
30
+ | `UmamiScript.tsx.example` | `audit-patterns.md` env-driven Tracking | env-driven Tracking-Component |
31
+ | `security.txt.example` | `audit-patterns.md` Phase 2 | RFC 9116 (kein Placeholder-Bug) |
32
+ | `DSE-Section-UGC.md.example` | `audit-patterns.md` Phase 5c | Vermisst-/Marketplace-DSE-Block |
33
+ | `LostFoundReportForm-consent.tsx.example` | `audit-patterns.md` Phase 5c | Consent-Toggle-Pattern UGC-Posts |
@@ -0,0 +1,64 @@
1
+ // MIT-License — anonymized teaching snippet for brutaler-anwalt
2
+ // References: audit-patterns.md env-driven Tracking-Component
3
+ // Pattern: env-driven Umami / Plausible / Fathom Tracking-Snippet
4
+
5
+ // File: src/components/analytics/UmamiScript.tsx
6
+ // Use: include in app/layout.tsx (root layout). Loads only after consent OR
7
+ // if the tracker is configured "cookieless + IP-anon + DNT respect".
8
+
9
+ import Script from 'next/script';
10
+
11
+ interface UmamiScriptProps {
12
+ /** override the env-default; pass site-id explicitly when SSR-safe */
13
+ websiteId?: string;
14
+ }
15
+
16
+ export function UmamiScript({ websiteId }: UmamiScriptProps) {
17
+ // 1. host: env-driven; default = your own analytics subdomain (NOT vendor-default cloud).
18
+ // NEVER hardcode a vendor cloud URL — that's a Drittland-Trigger.
19
+ const host = (
20
+ process.env.NEXT_PUBLIC_ANALYTICS_HOST ??
21
+ 'https://<your-analytics-subdomain>'
22
+ ).replace(/\/+$/, '');
23
+
24
+ // 2. site-id from env (or prop override)
25
+ const id = websiteId ?? process.env.NEXT_PUBLIC_ANALYTICS_SITE_ID;
26
+
27
+ // 3. fail-soft: no tracking if env not configured (better than fallback to default-cloud)
28
+ if (!id) {
29
+ return null;
30
+ }
31
+
32
+ return (
33
+ <Script
34
+ strategy="afterInteractive"
35
+ src={`${host}/script.js`}
36
+ data-website-id={id}
37
+ data-host-url={host}
38
+ // Privacy-Hardening: respect DNT and GPC client-side (server-side opt: track-DNT off)
39
+ data-do-not-track="true"
40
+ // Cookieless mode + IP-anonymisation are server-side settings.
41
+ // The DSE statement MUST match the actual server-config — verify with admin-panel.
42
+ async
43
+ />
44
+ );
45
+ }
46
+
47
+ // USAGE in app/layout.tsx:
48
+ //
49
+ // import { UmamiScript } from '@/components/analytics/UmamiScript';
50
+ // export default function RootLayout({ children }) {
51
+ // return (
52
+ // <html><body>{children}<UmamiScript /></body></html>
53
+ // );
54
+ // }
55
+ //
56
+ // VERIFY:
57
+ // curl -s https://<your-domain> | grep -oE 'data-host-url="[^"]+"'
58
+ // # erwarte: dein operator-eigener Analytics-Host, nie ein Vendor-Cloud-Default
59
+ //
60
+ // DSE-PFLICHT (analog dazu):
61
+ // "Wir nutzen das selbstgehostete Analyse-Tool [Tool-Name] auf <your-analytics-subdomain>.
62
+ // Verarbeitung erfolgt cookieless mit serverseitiger IP-Anonymisierung. DNT/GPC werden
63
+ // respektiert. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an
64
+ // aggregierter Reichweitenmessung). Widerspruch jederzeit moeglich..."
@@ -0,0 +1,98 @@
1
+ # VVT-Template — Direct-File-Upload-Verarbeitung
2
+ > Vorlage fuer Verarbeitungstaetigkeit „Datei-Upload via Web-Form".
3
+ > Lege im internen Compliance-Vault als `vvt-direct-file-upload.md` ab.
4
+ > Aktualisiere bei jeder Erweiterung (neue Datei-Typen, neue Storage-Pfade, neue Auftragsverarbeiter).
5
+ >
6
+ > Disclaimer: Technisch-indikative Vorlage, keine Rechtsberatung i.S.d. § 2 RDG.
7
+ > Vor produktivem Einsatz von einem Fachanwalt fuer Datenschutzrecht oder
8
+ > einem zertifizierten Datenschutzbeauftragten pruefen lassen.
9
+
10
+ ## Bezeichnung
11
+ Direct-File-Upload via [Form-Name, z.B. „Konfigurator", „Onboarding-Wizard"]
12
+
13
+ ## Verantwortlicher
14
+ [Vor- und Nachname, Adresse, Email]
15
+ [ggf. interner Datenschutzbeauftragter — falls Pflicht]
16
+
17
+ ## Zweck der Verarbeitung
18
+ [Konkret z.B.: Erfassung von Brand-Assets (Logos, Bilder) fuer Webdesign-
19
+ Briefing-Erstellung im Rahmen der Vertragsanbahnung]
20
+
21
+ ## Datenkategorien
22
+ - Datei-Bytes (Bilder, Logos, PDFs)
23
+ - Metadata: Dateiname, Groesse, MIME-Type
24
+ - Indirekte PII: ggf. in Bild-Inhalten (Personenfotos, Unterschriften, Logos mit
25
+ Personenbezug) — siehe Art. 9-Bewertung unten
26
+
27
+ ## Art. 9 DSGVO Spezial-Kategorien Bewertung
28
+ - [ ] Personenfotos potentiell biometrische Daten?
29
+ - Wenn nicht zur **eindeutigen Identifikation** verarbeitet → KEINE Art. 9
30
+ - Wenn ja (z.B. Gesichtserkennung, Vergleichs-Hash) → Art. 9-Pflichten
31
+ - [ ] Unterschriften = biometrische Daten? → ja, falls zur Identifikation; ansonsten
32
+ regulaere PII
33
+
34
+ ## Empfaenger / Kategorien von Empfaengern
35
+ - Operator selbst (intern)
36
+ - SMTP-Auftragsverarbeiter (z.B. All-Inkl, Mailgun, Postmark) — siehe AVV-Liste
37
+ - ggf. Object-Storage-Anbieter (z.B. Hetzner Object Storage) — siehe AVV-Liste
38
+ - ggf. Mail-Forwarding-Empfaenger (z.B. externe Berater) — siehe interne Empfaenger-Liste
39
+
40
+ ## Drittland-Status
41
+ - [ ] Auftragsverarbeiter alle in EU/EWR? → JA / NEIN
42
+ - Wenn NEIN: SCCs + TIA pro Drittland-Empfaenger
43
+
44
+ ## Speicherdauer
45
+ - [Konkret z.B.: 180 Tage ab Submit, danach automatische rekursive Loeschung
46
+ via Cron-Job <Pfad-zur-API-oder-Skript>]
47
+ - Bei Vertragsschluss: Aufbewahrungsfristen § 257 HGB (6 J Geschaeftsbriefe) +
48
+ § 147 AO (10 J Buchungsbelege) gelten
49
+
50
+ ## Rechtsgrundlage
51
+ - [Konkret z.B.: Art. 6 Abs. 1 lit. b DSGVO (Vertragsanbahnung) + lit. f
52
+ (berechtigtes Interesse — Briefing-Vollstaendigkeit)]
53
+ - Wenn KI-Auswertung der Bilder: zusaetzlich Art. 22 DSGVO pruefen
54
+
55
+ ## TOMs (Technische und organisatorische Massnahmen) — Art. 32 DSGVO
56
+
57
+ ### Eingangs-Filter (Server-side)
58
+ - [ ] MIME-Whitelist [konkret listen z.B.: image/png, image/jpeg, image/webp,
59
+ image/svg+xml, application/pdf]
60
+ - [ ] Magic-Bytes-Check zusaetzlich
61
+ - [ ] Size-Cap pro Datei [konkret z.B.: 10 MB]
62
+ - [ ] Total-Cap pro Submission [konkret z.B.: 15 MB]
63
+ - [ ] Path-Traversal-Schutz (basename + char-whitelist + UUID-Praefix)
64
+
65
+ ### Speicherung
66
+ - [ ] Storage-Pfad: [konkret z.B.: /var/data/inquiries/<id>/uploads/]
67
+ - [ ] Container/VPS-Setup: [konkret z.B.: Hetzner-VPS Falkenstein, Disk-
68
+ Verschluesselung gem. Server-Setup]
69
+ - [ ] Bucket-side AES-256 (fuer Object Storage)
70
+ - [ ] LUKS at-rest (fuer VPS-Disk) — falls aktiv
71
+
72
+ ### Uebertragung
73
+ - [ ] TLS 1.3 in transit (HTTPS)
74
+ - [ ] STARTTLS fuer SMTP-Versand (Port 587 + secure=false)
75
+ - [ ] MTA-STS-Empfaenger-Check (falls aktiviert)
76
+
77
+ ### Loeschung
78
+ - [ ] Automatisierter Cleanup-Cron [konkret: Pfad-zur-API + Cron-Schedule]
79
+ - [ ] Recursive-Delete inkl. uploads/-Subfolder
80
+ - [ ] Manueller Loeschpfad: [konkret z.B.: Email an datenschutz@... → manuell
81
+ aus Inquiries-Folder entfernen]
82
+
83
+ ### Logging
84
+ - [ ] Filename in Logs als SHA-256-Hash (nicht raw)
85
+ - [ ] Log-Retention max [konkret: 30 Tage]
86
+ - [ ] Datei-Bytes NIE in Logs
87
+
88
+ ### Disk-Resilienz
89
+ - [ ] `fs.statfs`-Check vor write
90
+ - [ ] Per-IP-Tagesbudget (falls aktiviert)
91
+ - [ ] Disk-Monitoring + Operator-Alert bei < 1 GB free
92
+
93
+ ## Bezug zu anderen VVT-Eintraegen
94
+ - [Verweis auf VVT fuer Briefing-Daten allgemein]
95
+ - [Verweis auf VVT fuer Email-Versand]
96
+
97
+ ## Letzte Aktualisierung
98
+ [Datum, Editor, Anlass]
@@ -0,0 +1,60 @@
1
+ ---
2
+ license: MIT
3
+ purpose: Generische VVT-Vorlage (Art. 30 DSGVO). KMU-best-practice.
4
+ references: dsgvo.md (VVT-Block)
5
+ sources: Art. 30 Abs. 1 DSGVO + BayLDA-VVT-Hinweise
6
+ ---
7
+
8
+ # Verzeichnis von Verarbeitungstaetigkeiten (VVT) — Vorlage
9
+
10
+ > Diese Vorlage entspricht Art. 30 Abs. 1 DSGVO. KMU mit < 250 MA und
11
+ > gelegentlicher Verarbeitung ohne Sonderkategorien sind nicht VVT-pflichtig
12
+ > (Art. 30 Abs. 5), aber BayLDA empfiehlt VVT auch fuer KMU zur Erfuellung
13
+ > Rechenschaftspflicht Art. 5 Abs. 2.
14
+
15
+ ## Stammblatt
16
+
17
+ | Feld | Wert |
18
+ |------|------|
19
+ | Verantwortlicher | `<Operator-Firma>` |
20
+ | Anschrift | `<vollstaendige-Anschrift>` |
21
+ | Vertreter (Art. 27) | `<falls EU-Drittland-Sitz>` |
22
+ | DSB | `<falls bestellt>` |
23
+ | Stand | `<YYYY-MM-DD>` |
24
+ | Version | `<vN.N>` |
25
+
26
+ ## Verarbeitungstaetigkeiten
27
+
28
+ Pro Verarbeitung ein Block.
29
+
30
+ ### VT-001: `<Bezeichnung>`
31
+
32
+ | Pflicht-Feld (Art. 30 Abs. 1) | Wert |
33
+ |------------------------------|------|
34
+ | **a) Name + Kontaktdaten Verantwortlicher** | siehe Stammblatt |
35
+ | **b) Zwecke der Verarbeitung** | `<Zweck>` (Rechtsgrundlage Art. 6 Abs. 1 lit. `<a/b/c/d/e/f>`) |
36
+ | **c) Kategorien betroffener Personen** | `<Kunden / Mitarbeiter / Lieferanten / ...>` |
37
+ | **c) Kategorien personenbezogener Daten** | `<Stammdaten / Kontaktdaten / Nutzungsdaten / besondere Kategorien>` |
38
+ | **d) Kategorien von Empfaengern** | `<intern / Auftragsverarbeiter / Drittland>` |
39
+ | **e) Drittlandtransfer** | `<keine / USA / UK / ...>` (mit Mechanismus: SCC + TIA / Adequacy / DPF) |
40
+ | **f) Speicherdauer / Loeschfristen** | `<Frist>` (gesetzlicher Anker, z.B. § 257 HGB / § 147 AO) |
41
+ | **g) Allgemeine Beschreibung TOMs** | siehe `<TOMs-Doku-Verweis>` |
42
+
43
+ ### VT-002: `<naechste Verarbeitung>`
44
+
45
+ (analog)
46
+
47
+ ## Auftragsverarbeiter (Art. 28)
48
+
49
+ | Auftragsverarbeiter | Zweck | AVV-Status | Drittland | Standort |
50
+ |---------------------|-------|-----------|-----------|----------|
51
+ | `<Anbieter>` | `<Zweck>` | `<abgeschlossen YYYY-MM-DD>` | `<DE/EU/USA>` | `<Region>` |
52
+
53
+ ## Review
54
+
55
+ VVT bei wesentlichen Aenderungen sofort updaten, ansonsten jaehrlich.
56
+ Naechstes Review: `<YYYY-MM-DD>`.
57
+
58
+ ---
59
+
60
+ *Disclaimer: technisch-indikative Vorlage, keine Rechtsberatung i.S.d. § 2 RDG.*
@@ -0,0 +1,52 @@
1
+ // MIT-License — anonymized teaching snippet for brutaler-anwalt
2
+ // References: audit-patterns.md Phase 4 DSE-Drift-Audit Style 2 (DSE-Aussage "wir loeschen nach X")
3
+ // Pattern: Next.js API-Route mit Bearer-Auth, idempotent, audit-logged
4
+
5
+ // File: src/app/api/cron/data-retention/route.ts (Next.js App-Router)
6
+
7
+ import { NextRequest, NextResponse } from 'next/server';
8
+
9
+ const RETENTION_DAYS = Number(process.env.DATA_RETENTION_DAYS ?? '180');
10
+
11
+ export async function POST(req: NextRequest) {
12
+ // 1. Bearer-Auth — Cron-Secret aus env, nicht hardcoded
13
+ const authHeader = req.headers.get('authorization') ?? '';
14
+ const expected = `Bearer ${process.env.CRON_SECRET}`;
15
+ if (!process.env.CRON_SECRET || authHeader !== expected) {
16
+ return NextResponse.json({ error: 'unauthorized' }, { status: 401 });
17
+ }
18
+
19
+ // 2. Compute cutoff
20
+ const cutoff = new Date(Date.now() - RETENTION_DAYS * 24 * 60 * 60 * 1000);
21
+
22
+ // 3. Delete-Logik — pro Tabelle / Collection / Bucket einzeln
23
+ const results = {
24
+ cutoff: cutoff.toISOString(),
25
+ deleted: {} as Record<string, number>,
26
+ };
27
+
28
+ try {
29
+ // Pseudocode — durch echten DB-Client ersetzen
30
+ // results.deleted.session_logs = await db.sessionLogs.deleteMany({ created_at: { lt: cutoff } });
31
+ // results.deleted.lost_found_posts = await db.lostFoundPosts.deleteMany({ expires_at: { lt: new Date() } });
32
+ // results.deleted.unverified_signups = await db.users.deleteMany({ verified: false, created_at: { lt: cutoff } });
33
+ } catch (err) {
34
+ console.error('[retention-cron] error', err);
35
+ return NextResponse.json({ error: 'cleanup-failed', details: String(err) }, { status: 500 });
36
+ }
37
+
38
+ // 4. Audit-Log — Pflicht fuer Rechenschafts-Nachweis Art. 5 Abs. 2 DSGVO
39
+ console.log(JSON.stringify({
40
+ event: 'data_retention_cleanup',
41
+ timestamp: new Date().toISOString(),
42
+ cutoff: results.cutoff,
43
+ deleted: results.deleted,
44
+ }));
45
+
46
+ return NextResponse.json(results);
47
+ }
48
+
49
+ // VERIFY:
50
+ // curl -X POST https://<your-domain>/api/cron/data-retention \
51
+ // -H "Authorization: Bearer $CRON_SECRET"
52
+ // # erwarte 200 + JSON mit deleted-counts; ohne Auth 401.
@@ -0,0 +1,47 @@
1
+ ## MIT-License — anonymized teaching snippet for brutaler-anwalt
2
+ ## References: audit-patterns.md Phase 4 DSE-Drift-Audit Style 2
3
+ ## Pattern: GitHub Actions Cron-Trigger fuer DSGVO-Retention-Cleanup
4
+
5
+ # File: .github/workflows/data-retention.yml
6
+
7
+ name: data-retention-cleanup
8
+
9
+ on:
10
+ schedule:
11
+ # tgl. 03:00 UTC = 04:00 CET (low-traffic-window)
12
+ - cron: '0 3 * * *'
13
+ workflow_dispatch: {}
14
+
15
+ jobs:
16
+ cleanup:
17
+ runs-on: ubuntu-latest
18
+ timeout-minutes: 5
19
+ permissions:
20
+ contents: read
21
+ steps:
22
+ - name: Trigger retention API
23
+ env:
24
+ CRON_SECRET: ${{ secrets.CRON_SECRET }}
25
+ API_URL: ${{ secrets.RETENTION_API_URL }} # https://<your-domain>/api/cron/data-retention
26
+ run: |
27
+ if [ -z "$CRON_SECRET" ] || [ -z "$API_URL" ]; then
28
+ echo "::error::CRON_SECRET or RETENTION_API_URL not set in GH secrets"
29
+ exit 1
30
+ fi
31
+ response=$(curl -sS -w "\n%{http_code}" -X POST "$API_URL" \
32
+ -H "Authorization: Bearer $CRON_SECRET" \
33
+ -H "Content-Type: application/json" \
34
+ --max-time 60)
35
+ body=$(echo "$response" | sed '$d')
36
+ status=$(echo "$response" | tail -n1)
37
+ echo "::group::API response"
38
+ echo "$body"
39
+ echo "::endgroup::"
40
+ if [ "$status" != "200" ]; then
41
+ echo "::error::retention API returned status $status"
42
+ exit 1
43
+ fi
44
+
45
+ # VERIFY in repo:
46
+ # gh workflow run data-retention-cleanup
47
+ # gh run list --workflow=data-retention-cleanup --limit 5