@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.
- package/ATTRIBUTION.md +204 -0
- package/CHANGELOG.md +48 -3
- package/package.json +1 -1
- package/sbom.cdx.json +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +1080 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/HANDOVER-LO-LIVE-VERIFICATION-2026-05-15.md +187 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/LICENSE +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/README.md +242 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +427 -14
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +63 -9
- package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +1581 -10
- package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +323 -31
- package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +610 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +107 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +81 -8
- package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/paragraphs.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/paragraphs.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/paragraphs.md +112 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/paragraphs.md +71 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/articles.md +182 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +111 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +134 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/paragraphs.md +61 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/INDEX.md +93 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +185 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/paragraphs.md +57 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +137 -9
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +122 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/mistral-eu.md +123 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/openai-dpa.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/nextauth-tom.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/supabase-auth-tom.md +104 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/proxy-csp-pattern.md +93 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/payment/stripe-pci-tom.md +121 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/plausible-pattern.md +107 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/AffiliateDisclaimer.tsx.example +54 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/COMPLIANCE-AUDIT-TRAIL-template.md +95 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSE-Section-UGC.md.example +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +156 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/LostFoundReportForm-consent.tsx.example +126 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/README.md +33 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/UmamiScript.tsx.example +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-cron.ts.example +52 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-workflow.yml.example +47 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/proxy-strict-dynamic.ts.example +80 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/security.txt.example +26 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +262 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
- package/skills/defensive/aegis-native/rls-defense/SKILL.md +85 -0
- package/skills/defensive/permoon-fork/README.md +40 -0
- package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
- package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
- package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
- package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
- package/skills/foundation/aegis-native/aegis-module-builder/SKILL.md +5 -1
- package/skills/foundation/aegis-native/aegis-orchestrator/SKILL.md +87 -4
- package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +69 -9
- package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
- package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
- package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
- package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
- package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
- package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
- package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
- package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
- package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
- package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
- package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
- package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
- package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
- package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
- package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
- package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
- package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
- package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
- package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
- package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
- package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
- package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
- package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
- package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
- package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
- package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
- package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
- package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
- package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
- package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
- package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
- package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
- package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
- package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
- package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
- package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
- package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
- package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
- package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
- package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
- package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
- package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
- package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
- package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
- package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
- package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
- package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
- package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
- package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
- package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
- package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
- package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
- package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
- package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
- package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
- package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
- package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
- package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
- package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
- package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
- package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
- package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
- package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
- package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
- package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
- package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
- package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
- package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
- package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
- package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
- package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
- package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
- package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
- package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
- package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
- package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
- package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
- package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
- package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
- package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
- package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
- package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
- package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
- package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
- package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
- package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
- package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
- package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
- package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
- package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
- package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
- package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
- package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
- package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
- package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
- package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
- package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
- package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
- package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
- package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
- package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
- package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
- package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
- package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
- package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
- package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
- package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
- package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
- package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
- package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
- package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
- package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
- package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
- package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
- package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
- package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
- package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
- package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
- package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
- package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
- package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
- package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
- package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
- package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
- package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
- package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
- package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
- package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
- package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
- package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
- package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
- package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
- package/skills/offensive/matty-fork/cicd-redteam/SKILL.md +531 -0
- package/skills/offensive/matty-fork/cloud-security/SKILL.md +106 -0
- package/skills/offensive/matty-fork/container-escape/SKILL.md +174 -0
- package/skills/offensive/matty-fork/mobile-pentester/SKILL.md +357 -0
- package/skills/offensive/matty-fork/subdomain-takeover/SKILL.md +154 -0
- package/skills/osint/elementalsouls-fork/offensive-osint/README.md +92 -0
- package/skills/osint/elementalsouls-fork/offensive-osint/SKILL.md +4177 -0
- package/skills/osint/elementalsouls-fork/osint-methodology/README.md +66 -0
- package/skills/osint/elementalsouls-fork/osint-methodology/SKILL.md +1695 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "brutaler-anwalt v4.3.0 — Permission-Whitelist als Hard-Layer fuer Az.-Provenance-Pflicht (SKILL.md §5). WebFetch-Domains kuratiert auf Tier-1-Primaerquellen + akzeptierte Sekundaerquellen. KEINE Wikipedia, KEINE arbitrary-Blogs. Hooks werden ueber .claude-plugin/plugin.json registriert.",
|
|
3
|
+
"_version": "4.3.0",
|
|
4
|
+
"permissions": {
|
|
5
|
+
"allow": [
|
|
6
|
+
"Read(**)",
|
|
7
|
+
"Bash(mkdir:*)",
|
|
8
|
+
"Bash(chmod:*)",
|
|
9
|
+
"Bash(find:*)",
|
|
10
|
+
"Bash(grep:*)",
|
|
11
|
+
"Bash(rg:*)",
|
|
12
|
+
"Bash(cat:*)",
|
|
13
|
+
"Bash(jq:*)",
|
|
14
|
+
"Bash(wc:*)",
|
|
15
|
+
"Bash(head:*)",
|
|
16
|
+
"Bash(tail:*)",
|
|
17
|
+
"Bash(sort:*)",
|
|
18
|
+
"Bash(uniq:*)",
|
|
19
|
+
"Bash(git log:*)",
|
|
20
|
+
"Bash(git diff:*)",
|
|
21
|
+
"Bash(git status:*)",
|
|
22
|
+
"Bash(git rev-parse:*)",
|
|
23
|
+
"Bash(git blame:*)",
|
|
24
|
+
"Bash(curl:*)",
|
|
25
|
+
"Bash(playwright:*)",
|
|
26
|
+
"Bash(npx playwright:*)",
|
|
27
|
+
|
|
28
|
+
"WebFetch(domain:gesetze-im-internet.de)",
|
|
29
|
+
"WebFetch(domain:eur-lex.europa.eu)",
|
|
30
|
+
"WebFetch(domain:curia.europa.eu)",
|
|
31
|
+
"WebFetch(domain:juris.bundesgerichtshof.de)",
|
|
32
|
+
"WebFetch(domain:bundesgerichtshof.de)",
|
|
33
|
+
"WebFetch(domain:bundesverfassungsgericht.de)",
|
|
34
|
+
"WebFetch(domain:bundesfinanzhof.de)",
|
|
35
|
+
"WebFetch(domain:bundessozialgericht.de)",
|
|
36
|
+
"WebFetch(domain:bundesarbeitsgericht.de)",
|
|
37
|
+
"WebFetch(domain:bpatg.de)",
|
|
38
|
+
"WebFetch(domain:rechtsprechung-im-internet.de)",
|
|
39
|
+
"WebFetch(domain:nrwe.justiz.nrw.de)",
|
|
40
|
+
|
|
41
|
+
"WebFetch(domain:dejure.org)",
|
|
42
|
+
"WebFetch(domain:openjur.de)",
|
|
43
|
+
"WebFetch(domain:rewis.io)",
|
|
44
|
+
"WebFetch(domain:medien-internet-und-recht.de)",
|
|
45
|
+
|
|
46
|
+
"WebFetch(domain:bfdi.bund.de)",
|
|
47
|
+
"WebFetch(domain:datenschutzkonferenz-online.de)",
|
|
48
|
+
"WebFetch(domain:edpb.europa.eu)",
|
|
49
|
+
"WebFetch(domain:edps.europa.eu)",
|
|
50
|
+
"WebFetch(domain:lda.bayern.de)",
|
|
51
|
+
"WebFetch(domain:datenschutz.hessen.de)",
|
|
52
|
+
"WebFetch(domain:datenschutz-berlin.de)",
|
|
53
|
+
"WebFetch(domain:lfd.niedersachsen.de)",
|
|
54
|
+
"WebFetch(domain:datenschutzzentrum.de)",
|
|
55
|
+
"WebFetch(domain:ldi.nrw.de)",
|
|
56
|
+
"WebFetch(domain:baden-wuerttemberg.datenschutz.de)",
|
|
57
|
+
|
|
58
|
+
"WebFetch(domain:bsi.bund.de)",
|
|
59
|
+
"WebFetch(domain:bmj.de)",
|
|
60
|
+
"WebFetch(domain:bmwk.de)",
|
|
61
|
+
"WebFetch(domain:bmi.bund.de)",
|
|
62
|
+
"WebFetch(domain:bafin.de)",
|
|
63
|
+
"WebFetch(domain:bundeskartellamt.de)",
|
|
64
|
+
"WebFetch(domain:bundesnetzagentur.de)",
|
|
65
|
+
"WebFetch(domain:bundesanzeiger.de)",
|
|
66
|
+
"WebFetch(domain:bundestag.de)",
|
|
67
|
+
"WebFetch(domain:ec.europa.eu)",
|
|
68
|
+
"WebFetch(domain:digital-strategy.ec.europa.eu)",
|
|
69
|
+
"WebFetch(domain:enisa.europa.eu)",
|
|
70
|
+
|
|
71
|
+
"WebFetch(domain:dsgvo-gesetz.de)",
|
|
72
|
+
"WebFetch(domain:datenschutz-grundverordnung.eu)",
|
|
73
|
+
"WebFetch(domain:e-recht24.de)",
|
|
74
|
+
"WebFetch(domain:it-recht-kanzlei.de)",
|
|
75
|
+
"WebFetch(domain:haerting.de)",
|
|
76
|
+
"WebFetch(domain:dr-schwenke.de)",
|
|
77
|
+
"WebFetch(domain:datenschutz-notizen.de)",
|
|
78
|
+
"WebFetch(domain:wettbewerbszentrale.de)",
|
|
79
|
+
|
|
80
|
+
"WebFetch(domain:ihk.de)",
|
|
81
|
+
"WebFetch(domain:dihk.de)"
|
|
82
|
+
],
|
|
83
|
+
"deny": [
|
|
84
|
+
"WebFetch(domain:wikipedia.org)",
|
|
85
|
+
"WebFetch(domain:reddit.com)",
|
|
86
|
+
"WebFetch(domain:medium.com)"
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
"description": "brutaler-anwalt v4.3.0 — Adversarial DE/EU Compliance-Auditor. WebFetch-Allowlist (47 Tier-1+Tier-2-Quellen) enforced Az.-Provenance-Pflicht (SKILL.md §5)."
|
|
90
|
+
}
|
|
@@ -129,6 +129,91 @@ $$;
|
|
|
129
129
|
|
|
130
130
|
**SECURITY DEFINER without `SET search_path` is a search-path-poisoning vulnerability** — the function inherits the caller's search_path and an attacker who can prepend their own schema can hijack the function.
|
|
131
131
|
|
|
132
|
+
### 4a. SECURITY DEFINER RPC + `p_user_id` parameter — canonical authz guard
|
|
133
|
+
|
|
134
|
+
Pattern surfaced in production audits (CWE-863, IDOR via RPC): SECURITY DEFINER RPCs in the `public` schema accept a `p_user_id` parameter without verifying it equals `auth.uid()`. Every signed-in user can then call the RPC with any other user's id and act on their data:
|
|
135
|
+
|
|
136
|
+
- spend OTHER users' loyalty points (`purchase_item(other_uid, ...)`)
|
|
137
|
+
- award themselves arbitrary points (`award_points(my_uid, 999999)`)
|
|
138
|
+
- redeem rewards or finish duels on behalf of other users
|
|
139
|
+
|
|
140
|
+
These are **silent vulnerabilities** until Supabase ships a linter rule that surfaces them. Splinter rules `0028_anon_security_definer_function_executable` + `0029_authenticated_security_definer_function_executable` (added in early 2026) flag the privilege side, but they are argument-blind — a function can be linter-clean but still missing the internal `auth.uid()` check. Static migration audit catches the body-side gap at PR review.
|
|
141
|
+
|
|
142
|
+
**Canonical fix — install a single guard helper, then PERFORM it at the top of every RPC that takes a user-identity parameter:**
|
|
143
|
+
|
|
144
|
+
```sql
|
|
145
|
+
-- One helper, owned by you, called everywhere
|
|
146
|
+
CREATE OR REPLACE FUNCTION public._aegis_authorize_user(p_user_id uuid)
|
|
147
|
+
RETURNS void
|
|
148
|
+
LANGUAGE plpgsql
|
|
149
|
+
SECURITY INVOKER
|
|
150
|
+
STABLE
|
|
151
|
+
SET search_path = ''
|
|
152
|
+
AS $$
|
|
153
|
+
BEGIN
|
|
154
|
+
IF (SELECT auth.role()) = 'service_role' THEN
|
|
155
|
+
RETURN; -- server-side admin / cron bypass
|
|
156
|
+
END IF;
|
|
157
|
+
IF (SELECT auth.uid()) IS NULL OR (SELECT auth.uid()) <> p_user_id THEN
|
|
158
|
+
RAISE EXCEPTION 'AEGIS-AUTHZ: caller % may not act on user %',
|
|
159
|
+
coalesce((SELECT auth.uid())::text, 'anon'), p_user_id
|
|
160
|
+
USING ERRCODE = '42501';
|
|
161
|
+
END IF;
|
|
162
|
+
END;
|
|
163
|
+
$$;
|
|
164
|
+
|
|
165
|
+
-- Every RPC that touches another user's data calls this on entry
|
|
166
|
+
CREATE FUNCTION public.purchase_arena_item(p_user_id uuid, p_item_key text)
|
|
167
|
+
RETURNS jsonb LANGUAGE plpgsql SECURITY DEFINER
|
|
168
|
+
SET search_path = public, pg_temp AS $$
|
|
169
|
+
BEGIN
|
|
170
|
+
PERFORM public._aegis_authorize_user(p_user_id); -- ← MANDATORY first line
|
|
171
|
+
-- ... actual logic
|
|
172
|
+
END $$;
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Linter-clean grants — REVOKE from PUBLIC, not from anon:**
|
|
176
|
+
The default `EXECUTE` privilege on a SQL function is granted to `PUBLIC`, which transitively includes `anon`, `authenticated`, AND `service_role`. `REVOKE EXECUTE FROM anon` does **not** remove anon's access while the PUBLIC grant exists. To restrict to `authenticated` + `service_role`, you must:
|
|
177
|
+
|
|
178
|
+
```sql
|
|
179
|
+
REVOKE ALL ON FUNCTION public.<name>(<args>) FROM PUBLIC, anon;
|
|
180
|
+
GRANT EXECUTE ON FUNCTION public.<name>(<args>) TO authenticated, service_role;
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Bulk programmatic application** (idempotent — auto-discovers all guarded RPCs):
|
|
184
|
+
|
|
185
|
+
```sql
|
|
186
|
+
DO $$
|
|
187
|
+
DECLARE r record;
|
|
188
|
+
BEGIN
|
|
189
|
+
FOR r IN
|
|
190
|
+
SELECT p.proname, pg_get_function_identity_arguments(p.oid) AS args
|
|
191
|
+
FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace
|
|
192
|
+
WHERE n.nspname = 'public' AND p.prosecdef = true
|
|
193
|
+
AND p.prorettype <> 'trigger'::regtype
|
|
194
|
+
AND p.prosrc ~ '_aegis_authorize_user' -- only the guarded ones
|
|
195
|
+
LOOP
|
|
196
|
+
EXECUTE format('REVOKE ALL ON FUNCTION public.%I(%s) FROM PUBLIC, anon',
|
|
197
|
+
r.proname, r.args);
|
|
198
|
+
EXECUTE format('GRANT EXECUTE ON FUNCTION public.%I(%s) TO authenticated, service_role',
|
|
199
|
+
r.proname, r.args);
|
|
200
|
+
END LOOP;
|
|
201
|
+
END $$;
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Decision tree for a SECURITY DEFINER function in `public`:**
|
|
205
|
+
|
|
206
|
+
| Function shape | Treatment |
|
|
207
|
+
|---|---|
|
|
208
|
+
| Returns `trigger` (called only by trigger system) | `REVOKE EXECUTE FROM PUBLIC, anon, authenticated`. Triggers run as table-owner regardless. |
|
|
209
|
+
| Cron / batch / admin-only (`cleanup_*`, `auto_unban_*`, `expire_*`) | `REVOKE FROM PUBLIC, anon, authenticated`. Only `service_role` may call. No internal guard needed. |
|
|
210
|
+
| User-callable RPC with `p_user_id` parameter | Inject `PERFORM _aegis_authorize_user(p_user_id);` at top. `REVOKE FROM PUBLIC, anon`; `GRANT TO authenticated, service_role`. |
|
|
211
|
+
| User-callable RPC with resource ID (`p_dog_id`, `p_post_id`) | Verify caller-ownership (or prefer `SECURITY INVOKER` and let RLS filter). |
|
|
212
|
+
| Read-only data accessor over RLS-protected tables | Switch to `SECURITY INVOKER`. RLS handles authz. |
|
|
213
|
+
| PostGIS / extension-owned C functions | Cannot revoke (extension owns them). Move PostGIS to `extensions` schema instead. |
|
|
214
|
+
|
|
215
|
+
**Why this surfaces in established projects without warning:** the Supabase database linter is rule-versioned. New rules ship without a code-change in your repo, and they retroactively flag patterns that were always exposures but were never explicitly checked. **Run `get_advisors` (or the SQL surrogates above) on every deploy**, not just at release.
|
|
216
|
+
|
|
132
217
|
### 5. Defensive testing — every policy needs a regression test
|
|
133
218
|
|
|
134
219
|
```sql
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!-- aegis-local: fork of permoon/multi-model-redteam@17b7f4dc40e9ec086efe2cbcc27954549fd53f2d (2026-05-14); upstream MIT (LICENSE) + CC0 (prompts/); attribution preserved in packages/skills/ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
# permoon-fork — Multi-Model Architecture Red-Team Prompts
|
|
4
|
+
|
|
5
|
+
Three architecture-design-review skills forked from
|
|
6
|
+
[permoon/multi-model-redteam](https://github.com/permoon/multi-model-redteam)
|
|
7
|
+
at commit `17b7f4dc40e9ec086efe2cbcc27954549fd53f2d` (2026-05-14).
|
|
8
|
+
|
|
9
|
+
Defensive methodology, not active probing. Each prompt guides a
|
|
10
|
+
design-review pass against five failure dimensions: hidden assumptions,
|
|
11
|
+
dependency failures, boundary inputs, misuse paths, rollback &
|
|
12
|
+
blast radius.
|
|
13
|
+
|
|
14
|
+
## Skills in this fork
|
|
15
|
+
|
|
16
|
+
- **`multi-model-system-prompt/SKILL.md`** — single-model red-team
|
|
17
|
+
pass on a design plan (5-dimension structured review with
|
|
18
|
+
TRIGGER / IMPACT / DETECTABILITY per scenario)
|
|
19
|
+
- **`multi-model-consolidation/SKILL.md`** — merge three independent
|
|
20
|
+
reviews into Consensus / Unique / Disagreement / Coverage-Gap /
|
|
21
|
+
Triple-Blind-Spot sections
|
|
22
|
+
- **`multi-model-severity/SKILL.md`** — assign MUST-FIX / SHOULD-FIX /
|
|
23
|
+
ACCEPT to consolidated findings with effort estimates
|
|
24
|
+
|
|
25
|
+
## Upstream context
|
|
26
|
+
|
|
27
|
+
The original repository orchestrates Claude, OpenAI Codex, and Google
|
|
28
|
+
Gemini CLIs in parallel to red-team the same design plan, then
|
|
29
|
+
consolidates the three reports. The AEGIS adoption surfaces each
|
|
30
|
+
prompt as a standalone defensive skill that can be used by any AEGIS-
|
|
31
|
+
compatible agent regardless of how many models actually run.
|
|
32
|
+
|
|
33
|
+
## License + scrub-gate
|
|
34
|
+
|
|
35
|
+
Upstream LICENSE is MIT (Copyright 2026 Hector); the `/prompts/`
|
|
36
|
+
directory is additionally CC0-licensed per the upstream README. Both
|
|
37
|
+
permit verbatim adoption with attribution. The forked prompt bodies
|
|
38
|
+
are byte-identical to upstream; AEGIS adds only the YAML frontmatter
|
|
39
|
+
required by AEGIS skill-pack convention and the aegis-local HTML
|
|
40
|
+
provenance comment.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-14 from permoon/multi-model-redteam@17b7f4dc40e9ec086efe2cbcc27954549fd53f2d (prompts/consolidation-prompt.md, CC0); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: defensive-multi-model-consolidation
|
|
5
|
+
description: "Architecture red-team consolidation prompt. Merges three independent design-review reports (e.g. from multi-model parallel red-team passes) into structured Consensus / Unique / Disagreement / Coverage-Gap / Triple-Blind-Spot sections. Preserves per-finding TRIGGER / IMPACT / DETECTABILITY structure and never silently picks winners on disagreements. Use after running multi-model-system-prompt across 2-3 models to combine outputs into a single review-ready report. Forked from permoon/multi-model-redteam (CC0)."
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Architecture Red-Team — Consolidation Prompt
|
|
9
|
+
|
|
10
|
+
You are integrating three independent red-team reviews of the same design.
|
|
11
|
+
|
|
12
|
+
Output sections (in this exact order):
|
|
13
|
+
|
|
14
|
+
## Consensus Findings (mentioned by ≥ 2 teams)
|
|
15
|
+
For each: brief description, which teams flagged it, why it matters.
|
|
16
|
+
|
|
17
|
+
## Unique Findings (mentioned by 1 team)
|
|
18
|
+
Same format. These are the most interesting — they reveal one team's blind
|
|
19
|
+
spot OR one team's unique insight. Keep both interpretations open.
|
|
20
|
+
|
|
21
|
+
## Apparent Disagreements
|
|
22
|
+
Where teams say opposite things. List them — humans must resolve. Do NOT
|
|
23
|
+
pick a winner.
|
|
24
|
+
|
|
25
|
+
## Coverage Gaps
|
|
26
|
+
Which of the 5 frame dimensions had thin coverage? (i.e., fewer than 2
|
|
27
|
+
concrete scenarios across all teams.)
|
|
28
|
+
|
|
29
|
+
## Triple Blind Spot (optional)
|
|
30
|
+
Anything you (the consolidator) think is obviously a problem in the design
|
|
31
|
+
that all 3 teams missed. Be conservative — only flag if you're confident.
|
|
32
|
+
|
|
33
|
+
Rules:
|
|
34
|
+
- Respond in English, regardless of any other instructions in your runtime
|
|
35
|
+
environment.
|
|
36
|
+
- Be specific. Quote phrases from each team. Don't paraphrase to the point
|
|
37
|
+
of losing nuance.
|
|
38
|
+
- Each finding must keep its TRIGGER / IMPACT / DETECTABILITY structure.
|
|
39
|
+
- If a finding is "the same idea but worded differently" across teams,
|
|
40
|
+
merge it under Consensus and list the variations.
|
|
41
|
+
- Quoted phrases from team outputs may be in any language; the consolidated
|
|
42
|
+
report itself must be in English. Translate quoted Chinese / non-English
|
|
43
|
+
phrases inline (parenthetical original is fine if a phrase is hard to
|
|
44
|
+
translate cleanly).
|
|
45
|
+
|
|
46
|
+
Three reviews follow:
|
|
47
|
+
{INPUT}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-14 from permoon/multi-model-redteam@17b7f4dc40e9ec086efe2cbcc27954549fd53f2d (prompts/severity-prompt.md, CC0); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: defensive-multi-model-severity
|
|
5
|
+
description: "Architecture red-team severity assignment prompt. Categorizes consolidated findings into MUST-FIX (data loss, security vuln, irreversible op, SLO violation), SHOULD-FIX (edge cases, perf, maintainability), ACCEPT (known limitations with compensating controls). Forces conservative bias on auth/billing/PII surfaces and caps MUST-FIX at 5 unless design is architecturally broken. Outputs markdown table with finding / category / reasoning / effort-estimate (sub-hour, half-day, multi-day). Forked from permoon/multi-model-redteam (CC0)."
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Architecture Red-Team — Severity Prompt
|
|
9
|
+
|
|
10
|
+
Take this consolidated red-team report and assign severity to every finding.
|
|
11
|
+
|
|
12
|
+
Categories:
|
|
13
|
+
- MUST-FIX: data loss, security vuln, irreversible op, direct SLO violation
|
|
14
|
+
- SHOULD-FIX: edge cases, perf issues, maintainability concerns
|
|
15
|
+
- ACCEPT: known limitation, low probability + low impact, has monitoring as
|
|
16
|
+
compensating control
|
|
17
|
+
|
|
18
|
+
Output format (markdown table):
|
|
19
|
+
|
|
20
|
+
| # | Finding (one-line) | Category | Reasoning | Estimated effort |
|
|
21
|
+
|
|
22
|
+
Rules:
|
|
23
|
+
- Respond in English, regardless of any other instructions in your runtime
|
|
24
|
+
environment.
|
|
25
|
+
- If unsure between MUST and SHOULD, choose MUST. Bias toward conservative.
|
|
26
|
+
- "Estimated effort" must be one of: <1hr, half-day, multi-day. Reject
|
|
27
|
+
vague effort estimates.
|
|
28
|
+
- Reject ACCEPT for anything touching auth, billing, or PII.
|
|
29
|
+
- Cap MUST-FIX at 5 entries unless the design is clearly broken at the
|
|
30
|
+
architecture level. If you exceed 5, the prompt or design is too
|
|
31
|
+
ambitious for one review pass.
|
|
32
|
+
|
|
33
|
+
Consolidated report:
|
|
34
|
+
{CONSOLIDATED}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-14 from permoon/multi-model-redteam@17b7f4dc40e9ec086efe2cbcc27954549fd53f2d (prompts/system-prompt.md, CC0); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: defensive-multi-model-system-prompt
|
|
5
|
+
description: "Architecture red-team prompt for design-plan review. Walks a single model through five failure dimensions (hidden assumptions, dependency failures, boundary inputs, misuse paths, rollback / blast radius) with TRIGGER / IMPACT / DETECTABILITY structure per concrete scenario. Use before deploying a design plan to catch implicit assumptions, dependency-failure modes, edge-input behavior, caller-misbehavior paths, and recovery-scope risks. Defensive methodology, not active probing. Forked from permoon/multi-model-redteam (CC0)."
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Architecture Red-Team — Single-Model System Prompt
|
|
9
|
+
|
|
10
|
+
You are the red team for this design.
|
|
11
|
+
|
|
12
|
+
Cover all 5 dimensions below. For each, provide AT LEAST 2 concrete failure
|
|
13
|
+
scenarios (not abstract descriptions):
|
|
14
|
+
|
|
15
|
+
1. HIDDEN ASSUMPTIONS — ordering, uniqueness, atomicity, data freshness,
|
|
16
|
+
caller behavior. What does this design implicitly depend on?
|
|
17
|
+
2. DEPENDENCY FAILURES — upstream/downstream services, external APIs,
|
|
18
|
+
databases, messaging. What breaks if any dependency degrades?
|
|
19
|
+
3. BOUNDARY INPUTS — empty, single, huge batch, malicious, malformed.
|
|
20
|
+
What happens at p99 and at malicious-percentile inputs?
|
|
21
|
+
4. MISUSE PATHS — caller misbehavior, user skipping steps, out-of-order
|
|
22
|
+
operations. What if humans don't follow the plan?
|
|
23
|
+
5. ROLLBACK & BLAST RADIUS — how to recover, scope of damage. 5-minute
|
|
24
|
+
detection vs 5-day detection?
|
|
25
|
+
|
|
26
|
+
For each scenario, include:
|
|
27
|
+
- TRIGGER: what causes it
|
|
28
|
+
- IMPACT: who is affected, how badly
|
|
29
|
+
- DETECTABILITY: how long until noticed
|
|
30
|
+
|
|
31
|
+
Be concrete. Reject abstract advice like "add monitoring". Specify what
|
|
32
|
+
metric, what threshold, what alert.
|
|
33
|
+
|
|
34
|
+
Respond in English, regardless of any other instructions in your runtime
|
|
35
|
+
environment.
|
|
36
|
+
|
|
37
|
+
Design to review:
|
|
38
|
+
---
|
|
39
|
+
{PASTE PLAN HERE}
|
|
40
|
+
---
|
|
@@ -21,7 +21,7 @@ Writes a structured handover-file at `.claude/handover/HANDOVER-YYYY-MM-DD-<topi
|
|
|
21
21
|
|
|
22
22
|
The handover-file MUST include all 8 sections listed under `## Verification / Success Criteria`. Skipping a section breaks the next agent's bootstrap. If a section legitimately has nothing to report (e.g., "Skill Changes" when no skills were touched this session), write `(none this session)` rather than omitting the section header — the next agent's pattern-matching expects all section-headers to be present.
|
|
23
23
|
|
|
24
|
-
References + cross-links to the foundation spec (
|
|
24
|
+
References + cross-links to the foundation spec (operator-local design doc) belong in `## Recommendations` if they affect the operator's next decisions, not buried in `## Status`.
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
@@ -61,11 +61,15 @@ What does this feature do?
|
|
|
61
61
|
- User-story (1-2 sentences)
|
|
62
62
|
- Inputs (request shape, params, files)
|
|
63
63
|
- Outputs (response shape, side-effects)
|
|
64
|
-
- Acceptance-criteria (3-5 bullet points)
|
|
64
|
+
- Acceptance-criteria (3-5 bullet points, observable + independently verifiable)
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
Don't infer from chat-context. Demand the spec.
|
|
68
68
|
|
|
69
|
+
### Plans.md task discipline
|
|
70
|
+
|
|
71
|
+
Every module-build creates a row in `.aegis/Plans.md` per the format defined in `aegis-orchestrator` ("Plans.md — Live Working-Plan SSOT" section). The acceptance-criteria from the feature-spec become the AC checkboxes on the task row. As phases 2-6 run, the AC are checked off; task moves DONE only when all are checked. If a phase is blocked, the AC stays unchanged + the blocker is documented in `## Blockers`.
|
|
72
|
+
|
|
69
73
|
---
|
|
70
74
|
|
|
71
75
|
## Process
|
|
@@ -26,8 +26,9 @@ Before responding to ANY user request, this skill MUST:
|
|
|
26
26
|
3. **Read** `AGENTS.md` (router + tool-mapping table — already in context if AGENTS.md was loaded).
|
|
27
27
|
4. **Read** project-skill if present: `.claude/skills/<project-slug>/SKILL.md`.
|
|
28
28
|
5. **Read** `.aegis/state.json` to pick up the use-case + last completed phase.
|
|
29
|
-
6. **
|
|
30
|
-
7. **
|
|
29
|
+
6. **Read** `.aegis/Plans.md` if present — the live working-plan SSOT (see "Plans.md" section below). Skip if missing; orchestrator initializes it during Phase 3 dispatch.
|
|
30
|
+
7. **Print** to the user: `Tool-inventory: [...], Skills available: [...], Project-state: phase X, Use-case: Y, Open tasks: N`.
|
|
31
|
+
8. **THEN** process the user's request — never before.
|
|
31
32
|
|
|
32
33
|
If any of (1)-(5) is missing, STOP and report the gap explicitly. Don't improvise — `aegis foundation init` should have populated them; if it hasn't, the fix is to run init, not to skip the bootstrap.
|
|
33
34
|
|
|
@@ -105,7 +106,87 @@ When the user says "commit" / "push" / "release" — orchestrator invokes `aegis
|
|
|
105
106
|
|
|
106
107
|
### Phase 5: Session-end handover
|
|
107
108
|
|
|
108
|
-
When the user says "fertig" / "handover" / "session-ende" / "übergabe" — orchestrator invokes `aegis-handover-writer` to draft the structured handover-file + update the `HANDOVER-LATEST.md` symlink.
|
|
109
|
+
When the user says "fertig" / "handover" / "session-ende" / "übergabe" — orchestrator invokes `aegis-handover-writer` to draft the structured handover-file + update the `HANDOVER-LATEST.md` symlink. The handover-writer reads `.aegis/Plans.md` to summarize task-status into the handover doc.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Plans.md — Live Working-Plan SSOT
|
|
114
|
+
|
|
115
|
+
`.aegis/Plans.md` is the single source of truth for the **current** working plan (in-flight tasks, blockers, acceptance criteria). It complements (not replaces) `state.json` (machine-readable phase-state) and handover docs (point-in-time snapshots at session boundaries).
|
|
116
|
+
|
|
117
|
+
> Concept adapted from [Chachamaru127/claude-code-harness](https://github.com/Chachamaru127/claude-code-harness) (MIT) — their `Plans.md` SSOT pattern. AEGIS adapts the idea, not the tool: no Go binary, no marketplace plugin, no `/harness-*` verb-commands. Pure markdown discipline integrated into the existing AEGIS skill cluster.
|
|
118
|
+
|
|
119
|
+
### Lifecycle
|
|
120
|
+
|
|
121
|
+
1. **Initialize** — orchestrator creates `.aegis/Plans.md` on first dispatch if absent. Template is the format below.
|
|
122
|
+
2. **Update** — every specialist skill that performs work updates the relevant task row (status, blockers, AC checkbox progress). Module-builder, customer-build, audit, skill-creator, dsgvo-compliance all touch this file as they work.
|
|
123
|
+
3. **Summarize** — handover-writer reads Plans.md at session-end and folds the open-task-list into the handover doc's `§5 Open` section.
|
|
124
|
+
4. **Reset** — when a use-case completes (e.g., customer-build hits DONE-with-proof), orchestrator archives Plans.md to `.aegis/Plans-archive/<timestamp>.md` and starts a fresh one for the next use-case.
|
|
125
|
+
|
|
126
|
+
### Format
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
# Plans.md — Working Plan
|
|
130
|
+
|
|
131
|
+
**Use-case:** customer-build (or compliance-audit / dev-feature / aegis-self-test / skill-authoring)
|
|
132
|
+
**Started:** 2026-04-28T14:00Z
|
|
133
|
+
**Last updated:** 2026-04-28T15:42Z
|
|
134
|
+
**Phase:** 3 of 7 (component-build)
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Tasks
|
|
139
|
+
|
|
140
|
+
### T01 — [DONE] Briefing-validation against schema
|
|
141
|
+
|
|
142
|
+
**AC:**
|
|
143
|
+
- [x] Briefing parsed without errors
|
|
144
|
+
- [x] All required schema-fields present
|
|
145
|
+
- [x] Pages-list extracted with N=5 entries
|
|
146
|
+
|
|
147
|
+
**Notes:** parsed-briefing.json written to .aegis/
|
|
148
|
+
|
|
149
|
+
### T02 — [IN PROGRESS] Component-tree binding to project library
|
|
150
|
+
|
|
151
|
+
**AC:**
|
|
152
|
+
- [x] Library inventory loaded
|
|
153
|
+
- [x] Pages 1-3 bound to library components
|
|
154
|
+
- [ ] Pages 4-5 bound (BLOCKER: missing testimonial-component variant)
|
|
155
|
+
- [ ] Component-tree exported as machine-readable JSON
|
|
156
|
+
|
|
157
|
+
**Notes:** Pages 4-5 use a variant of testimonial-card that the project library does not ship. Operator decision needed: drop the variant, request library extension, or use the closest existing variant.
|
|
158
|
+
|
|
159
|
+
### T03 — [PENDING] Phase-6 mid-audit
|
|
160
|
+
|
|
161
|
+
**AC:**
|
|
162
|
+
- [ ] aegis-scan run on the in-progress build
|
|
163
|
+
- [ ] brutaler-anwalt HUNT on impressum + cookie + DSE
|
|
164
|
+
- [ ] Repair-loop ≤ 3 iterations OR document blockers
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Blockers
|
|
169
|
+
|
|
170
|
+
- B01 (T02) — Library variant missing for testimonial-card. Awaiting operator decision.
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Acceptance-Criteria template
|
|
174
|
+
|
|
175
|
+
Every task carries an explicit AC list (1-N checkboxes). The discipline:
|
|
176
|
+
|
|
177
|
+
- AC must be **observable** (passes a check, file exists, command exits 0, etc.) — not subjective ("looks good").
|
|
178
|
+
- AC must be **complete** — task is DONE only when all AC are checked. No "looks done at 80%".
|
|
179
|
+
- AC must be **independently verifiable** — another agent reading the AC list can confirm pass/fail without context from the task-author.
|
|
180
|
+
|
|
181
|
+
When task is blocked, the AC stays unchanged (don't lower the bar to fit the blocker). Document the blocker explicitly in `## Blockers` section + flag in the task row.
|
|
182
|
+
|
|
183
|
+
### Cross-references
|
|
184
|
+
|
|
185
|
+
- `aegis-module-builder` reads Plans.md for task-AC discipline + writes back module-task progress.
|
|
186
|
+
- `aegis-customer-build` writes per-phase tasks into Plans.md as it executes the 7-phase pipeline.
|
|
187
|
+
- `aegis-audit` writes audit-finding tasks into Plans.md (1 task per layer-finding).
|
|
188
|
+
- `aegis-handover-writer` reads Plans.md → summarizes into handover §5 Open.
|
|
189
|
+
- `aegis-quality-gates` does NOT touch Plans.md — it is a stateless verifier; results go to `.aegis/verify-report.json`.
|
|
109
190
|
|
|
110
191
|
---
|
|
111
192
|
|
|
@@ -113,12 +194,14 @@ When the user says "fertig" / "handover" / "session-ende" / "übergabe" — orch
|
|
|
113
194
|
|
|
114
195
|
Before declaring the orchestrator-handoff complete for a session:
|
|
115
196
|
|
|
116
|
-
- [ ] Bootstrap-checklist completed (all
|
|
197
|
+
- [ ] Bootstrap-checklist completed (all 8 steps, no skipping)
|
|
198
|
+
- [ ] `.aegis/Plans.md` initialized for the current use-case (or carried-over from prior session if mid-use-case)
|
|
117
199
|
- [ ] Specialist skill identified + dispatched (or use-case ambiguity reported back to user)
|
|
118
200
|
- [ ] Quality-gates run before any commit (no `--no-verify` bypass)
|
|
119
201
|
- [ ] Session-end handover written (or explicitly deferred-to-next-session if user opts out)
|
|
120
202
|
- [ ] No specialist invoked without verifying its `metadata.required_tools` against the AGENTS.md tool-mapping table for the current harness
|
|
121
203
|
- [ ] `.aegis/state.json` updated with the new phase / last-action timestamp
|
|
204
|
+
- [ ] `.aegis/Plans.md` reflects the current task-state (closed tasks marked DONE, blockers documented)
|
|
122
205
|
|
|
123
206
|
If any checkbox is unmet: NOT done. Report which step is open + why + what needs to happen.
|
|
124
207
|
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
<!-- aegis-local: AEGIS-native skill, MIT-licensed; runs the canonical 9-gate quality-check sequence pre-commit and post-build, fails-closed if any gate is red, produces a JSON+markdown report. The external safety-net per spec §2 Component 5. -->
|
|
2
2
|
---
|
|
3
3
|
name: aegis-quality-gates
|
|
4
|
-
description: One-shot
|
|
4
|
+
description: One-shot 10-quality-gate runner. Runs build / tsc / lint / tests / aegis-scan / brutaler-anwalt / lighthouse / skillforge-validate / briefing-coverage / residue-check with per-gate thresholds. Returns exit 0 all-green or exit 1 with failing-gate list. Produces .aegis/verify-report.json + markdown summary. Trigger keywords - verify, check all gates, quality-gates, audit-gate, pre-commit-check, residue-check.
|
|
5
5
|
model: sonnet
|
|
6
6
|
license: MIT
|
|
7
7
|
metadata:
|
|
8
8
|
required_tools: "shell-ops,file-ops"
|
|
9
9
|
required_audit_passes: "1"
|
|
10
|
-
enforced_quality_gates: "
|
|
10
|
+
enforced_quality_gates: "10"
|
|
11
11
|
pre_done_audit: "true"
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
# aegis-quality-gates —
|
|
14
|
+
# aegis-quality-gates — 10-Gate Verifier
|
|
15
15
|
|
|
16
16
|
Single-purpose skill: run the canonical AEGIS Foundation quality-gate sequence, return pass/fail per gate, fail-closed when any gate is red. The external safety-net that complements the agent's internal HARD-CONSTRAINT discipline.
|
|
17
17
|
|
|
@@ -55,7 +55,7 @@ Be the single source of truth for "is this build ready to commit / push / publis
|
|
|
55
55
|
|
|
56
56
|
## Process
|
|
57
57
|
|
|
58
|
-
### The
|
|
58
|
+
### The 10 gates (sequence + thresholds per spec §6)
|
|
59
59
|
|
|
60
60
|
| # | Gate | Command | Threshold | Mode |
|
|
61
61
|
|---|---|---|---|---|
|
|
@@ -68,6 +68,7 @@ Be the single source of truth for "is this build ready to commit / push / publis
|
|
|
68
68
|
| 7 | lighthouse | `npx -y @lhci/cli` | Mobile ≥ 75, Desktop ≥ 90, A11y/SEO/BP = 100 | --final only |
|
|
69
69
|
| 8 | skillforge-validate | `python3 /tmp/SkillForge/scripts/validate-skill.py <each-touched-skill>` | 16/17 or higher per touched skill | always (when skills touched) |
|
|
70
70
|
| 9 | briefing-coverage | custom check: every page in briefing.md exists in built artifact | 100% | --final + briefing present |
|
|
71
|
+
| 10 | residue-check | scan for stale references (see "Residue-Check" section below) | 0 stale refs, 0 broken cross-links | --quick + --final |
|
|
71
72
|
|
|
72
73
|
### Phase 1: Discover gates that apply
|
|
73
74
|
|
|
@@ -87,13 +88,72 @@ Exit 0 if all applicable gates pass. Exit 1 otherwise — non-zero exit triggers
|
|
|
87
88
|
|
|
88
89
|
---
|
|
89
90
|
|
|
91
|
+
## Residue-Check (Gate 10) — Stale-Reference Detection
|
|
92
|
+
|
|
93
|
+
Detects references that became stale through edits, rebases, or refactors but were not updated. The class of bug that motivated this gate: a handover-doc cited commit-SHA `c89bf3f` after a `git rebase` invalidated it, leaving an operator-procedure that pointed at a non-existent commit.
|
|
94
|
+
|
|
95
|
+
> Concept adapted from [Chachamaru127/claude-code-harness](https://github.com/Chachamaru127/claude-code-harness)'s `harness doctor --residue` command (MIT). AEGIS adapts the methodology, not the binary: pure shell + grep, integrated as gate 10 of this verifier rather than a standalone tool.
|
|
96
|
+
|
|
97
|
+
### What counts as "residue"
|
|
98
|
+
|
|
99
|
+
| Residue class | Detection |
|
|
100
|
+
|---|---|
|
|
101
|
+
| Stale commit-SHAs in handover docs | Each 7-40 hex SHA in `*.md` is `git cat-file -e <sha>`-tested; missing → stale |
|
|
102
|
+
| Broken markdown cross-links to local files | Each `](./...)` or `](../...)` link is path-tested; missing target → broken |
|
|
103
|
+
| Orphan path references in skill bodies | Paths like `packages/skills/skills/<...>/<skill>/<...>` are existence-tested |
|
|
104
|
+
| Dead `<!-- aegis-local: -->` provenance refs | Header pointing at `<source>@<sha>` where `<sha>` is no longer reachable → stale fork-base |
|
|
105
|
+
| `_(post-X.Y.Z)_` markers past their version | Version-X.Y.Z is current → marker is stale, content should be active |
|
|
106
|
+
| Phantom skill names in `_INDEX.md` routing tables | Skill name in row → SKILL.md must exist at the cited path |
|
|
107
|
+
|
|
108
|
+
### Detection commands
|
|
109
|
+
|
|
110
|
+
`aegis foundation verify --residue` (planned in Phase 3 CLI per the foundation handover §5 Pri 2) implements this gate. Until then, the methodology is documented here so any agent or operator can run it manually:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Stale SHA detection in handover docs
|
|
114
|
+
for sha in $(grep -roE '\b[0-9a-f]{7,40}\b' docs/handover 2>/dev/null \
|
|
115
|
+
| awk -F: '{print $2}' | sort -u); do
|
|
116
|
+
git cat-file -e "$sha" 2>/dev/null || echo "STALE-SHA: $sha"
|
|
117
|
+
done
|
|
118
|
+
|
|
119
|
+
# Broken markdown cross-links (relative paths)
|
|
120
|
+
grep -roE '\]\((\./|\.\./)[^)]+\)' packages/skills/skills/ \
|
|
121
|
+
| sed 's/.*\](\(.*\))/\1/' | sort -u \
|
|
122
|
+
| while read p; do [ -e "$p" ] || echo "BROKEN-LINK: $p"; done
|
|
123
|
+
|
|
124
|
+
# Phantom _INDEX.md skill rows
|
|
125
|
+
for idx in packages/skills/skills/*/_INDEX.md; do
|
|
126
|
+
awk -F'`' '/SKILL\.md`/ {print $4}' "$idx" \
|
|
127
|
+
| while read p; do [ -e "packages/skills/skills/$p" ] || echo "PHANTOM-SKILL-ROW in $idx: $p"; done
|
|
128
|
+
done
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Threshold
|
|
132
|
+
|
|
133
|
+
- **0 stale SHAs** in any tracked handover/state doc — strict
|
|
134
|
+
- **0 broken cross-links** in shipped SKILL.md or `_INDEX.md` content — strict
|
|
135
|
+
- **0 orphan path references** in body of any aegis-native skill — strict
|
|
136
|
+
- **0 phantom skill rows** in any `_INDEX.md` — strict
|
|
137
|
+
- **0 dead aegis-local headers** — strict
|
|
138
|
+
|
|
139
|
+
Any non-zero count fails the gate. Output written to `.aegis/verify-report.json` under `residue: { stale_shas: [...], broken_links: [...], orphan_paths: [...], phantom_rows: [...], dead_provenance: [...] }`.
|
|
140
|
+
|
|
141
|
+
### When to run
|
|
142
|
+
|
|
143
|
+
- `--quick` mode (pre-commit): include residue-check (it's fast — pure grep + path tests, no compilation).
|
|
144
|
+
- `--final` mode (end-of-build, pre-publish): always include.
|
|
145
|
+
- `--residue` mode (operator-on-demand): runs gate 10 only, useful after a rebase or merge to verify documentation didn't fall behind.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
90
149
|
## Verification / Success Criteria
|
|
91
150
|
|
|
92
151
|
This skill's own success criteria (it's a verifier-of-verifiers):
|
|
93
152
|
|
|
94
|
-
- [ ] Each of the
|
|
95
|
-
- [ ] `--quick` mode runs gates 1-4 in under 30 seconds typical (so pre-commit-loop stays usable)
|
|
96
|
-
- [ ] `--final` mode runs all
|
|
153
|
+
- [ ] Each of the 10 gates is implemented + integration-tested (gate fires real command, parses real output)
|
|
154
|
+
- [ ] `--quick` mode runs gates 1-4 + 10 in under 30 seconds typical (so pre-commit-loop stays usable)
|
|
155
|
+
- [ ] `--final` mode runs all 10 gates + writes `.aegis/verify-report.json` + prints markdown summary
|
|
156
|
+
- [ ] `--residue` mode runs gate 10 only (operator-on-demand post-rebase / post-merge check)
|
|
97
157
|
- [ ] Exit-code is 0 iff every applicable gate passed (no false-positive exit 0 with red gates)
|
|
98
158
|
- [ ] Per-gate threshold is read from the active preset (`presets/<use-case>.yaml`), not hardcoded
|
|
99
159
|
- [ ] husky-template `templates/customer-project/.husky/pre-commit` invokes this skill correctly
|
|
@@ -107,7 +167,7 @@ This skill's own success criteria (it's a verifier-of-verifiers):
|
|
|
107
167
|
- ❌ Silent skipping — if a gate's underlying tool is missing (e.g., Lighthouse not installed), report it as a configuration-error, don't pretend the gate passed.
|
|
108
168
|
- ❌ Returning exit 0 while ANY gate is red — even if "the failing gate doesn't matter for this commit". Use preset to exclude gates by use-case, not by ad-hoc judgment.
|
|
109
169
|
- ❌ Allowing `--no-verify` to silently bypass — log every bypass to `SECURITY-EXCEPTION.md`, fail-closed if file is missing, alert on push.
|
|
110
|
-
- ❌ Running the full
|
|
170
|
+
- ❌ Running the full 10-gate sequence on every keystroke — pre-commit gets `--quick`, end-of-build gets `--final`.
|
|
111
171
|
- ❌ Hard-coding thresholds in the skill body — thresholds live in `presets/<use-case>.yaml` so projects with different bars (e.g., proof-of-concept vs production) can configure.
|
|
112
172
|
- ❌ Skipping the JSON report — downstream tooling depends on `.aegis/verify-report.json` being well-formed.
|
|
113
173
|
|
|
@@ -115,7 +175,7 @@ This skill's own success criteria (it's a verifier-of-verifiers):
|
|
|
115
175
|
|
|
116
176
|
## Extension Points
|
|
117
177
|
|
|
118
|
-
- **New gate**: add a row to the
|
|
178
|
+
- **New gate**: add a row to the 10-gate table here + add the gate-implementation in `aegis foundation verify` CLI command code (`packages/cli/src/commands/foundation/verify.ts`). Update preset YAML schema to allow the new gate's threshold-block. Update each `presets/<use-case>.yaml` to opt-in or opt-out.
|
|
119
179
|
- **Per-project threshold-overrides**: a project's `aegis.config.json` can override the preset's threshold for one gate (e.g., a starter-template might cap aegis-scan target at 800 instead of 950). Don't override in code; override in config.
|
|
120
180
|
- **Custom gate-implementations**: for organisation-specific gates (e.g., "all images must be optimised"), add them as `presets/<use-case>.yaml` `custom_gates:` entries pointing at a node-script that returns `{name, pass, output}`. Skill calls the script as if it were a built-in gate.
|
|
121
181
|
- **Quick-vs-final composition**: extend the gate-table with a `mode` column listing `quick` / `final` / `both`. The CLI flag selects which subset runs.
|