AnnexProof CRA Readiness Index · runda 2

Metodyka i dane

Jak sprawdziliśmy, czy 1 691 producentów urządzeń i oprogramowania z 30 krajów Europy publikuje plik security.txt (RFC 9116). Stan na 30.09.2026.

Pomiar
30.09.2026
Wersja metodyki
2.0
Publikacja
3.10.2026
Licencja danych
CC BY 4.0

To przegląd, nie badanie reprezentatywne. Brak security.txt nie oznacza braku zgodności z CRA.

Producenci w próbie
1 69130 krajów
Ma security.txt
16,6%280 z 1 691
Plik kompletny
7,7%130 z 1 691
Problem z Expires
14,3%40 z 280 plików
Spis treści
  1. W skrócie
  2. 1. Co mierzymy i dlaczego
  3. 2. Skąd pochodzą firmy
  4. 3. Jak mierzymy
  5. 4. Wyłączenia i przypadki graniczne
  6. 5. Wyniki (stan na 30.09.2026)
  7. 6. Ograniczenia
  8. 7. Etyka
  9. 8. Wersje i korekty
  10. 9. Jak cytować
  11. 10. Kontakt i zgłaszanie błędów
  12. Źródła

W skrócie

Pytanie
Czy producent publikuje plik security.txt (RFC 9116)? To najprostszy publiczny sygnał, gdzie badacz może zgłosić podatność.
Kogo sprawdziliśmy
1 691 producentów urządzeń i oprogramowania z 30 krajów Europy. Wybraliśmy 1 752 firmy, a 61 wyłączyliśmy, bo ich strony nie odpowiadały.
Skąd firmy
Z publicznych list wystawców targów branżowych i członków stowarzyszeń. Firm nie dobieraliśmy pod kątem bezpieczeństwa.
Kiedy
Pomiar 30.09.2026. Pole Expires sprawdziliśmy ponownie 1.10.2026.
Jak
1–2 zapytania HTTPS GET na domenę: /.well-known/security.txt, potem /security.txt. Jeśli domena nie odpowiadała, próbowaliśmy też adresu z www..
Wynik
16,6% (280 z 1 691) ma security.txt. 7,7% ma plik kompletny, czyli z polem Policy i ważną datą Expires.
Zasada
Publikujemy tylko wyniki zbiorcze. Nie podajemy nazw firm ani wyników pojedynczych firm.

01Co mierzymy i dlaczego

Cyber Resilience Act (rozporządzenie (UE) 2024/2847) wymaga od producenta m.in. polityki skoordynowanego ujawniania podatności (CVD) oraz adresu kontaktowego do zgłaszania podatności (załącznik I, część II, pkt 5 i 6). Obowiązki zgłaszania z art. 14 stosuje się od 11.09.2026, a główne obowiązki od 11.12.2027.

security.txt nie jest wymogiem CRA. To standard IETF (RFC 9116): plik tekstowy pod adresem /.well-known/security.txt, który podaje trzy rzeczy.

example.com/.well-known/security.txtPrzykładowy plik
  • Contact: mailto:security@example.comwymaganegdzie zgłosić podatność
  • Expires: 2027-09-30T00:00:00Zwymaganedo kiedy plik jest aktualny
  • Policy: https://example.com/security-policyopcjonalnegdzie jest polityka przyjmowania zgłoszeń

Mierzymy właśnie ten plik, bo u każdej firmy da się go sprawdzić z zewnątrz w ten sam sposób.

Czego nie mierzymy: stron PSIRT lub CVD, do których nie prowadzi security.txt, adresów e-mail podanych w innych miejscach, programów bug bounty ani procesów wewnętrznych. Firma bez pliku może więc przyjmować zgłoszenia inną drogą. Dlatego brak security.txt nie oznacza braku procesu ani braku zgodności z CRA.

02Skąd pochodzą firmy

Próba łączy dwie listy. Obie zbudowaliśmy 30.09.2026 z publicznych źródeł. Na żadnym etapie wyboru firm nie sprawdzaliśmy security.txt ani innych sygnałów bezpieczeństwa.

Jak powstała próba

Lista rozszerzona (runda 2)

  1. 9 139 unikalnych firm z list targów i stowarzyszeń
  2. 6 654 profile ocenione po wstępnym filtrze słów kluczowych
  3. 2 195 firm zakwalifikowanych
  4. 2 053 po usunięciu duplikatów
  5. 1 500 po ograniczeniu do najmocniejszych profili
  1. 252firmy z listy rundy 1, z 13 krajów
  2. 1 752firmy wybrane do pomiaru
  3. 61wyłączonych: strona nie odpowiadała
  4. 1 691producentów zmierzonych

Lista rundy 1 (252 firmy, 13 krajów)

Źródła
Lista producentów KNX Association; listy wystawców SPS 2026, Light + Building 2026 i ISH (przez publiczny endpoint JSON wyszukiwarki wystawców Messe Frankfurt/Mesago; według notatek z rundy 2 endpoint ISH zwracał listę z 2025 roku); katalog AMPER 2026 (Brno); listy wystawców SECUREX 2026 i ITM Industry Europe 2026 (MTP Poznań); listy członków KIGEiT, PISA, PIIT, PSME i klastra Interizon.
Rama
Siedziba w PL, DE, AT, CH, LI, CZ, DK, SE, NO, FI, NL, BE lub LU. Firma wytwarza własny sprzęt lub oprogramowanie z elementami cyfrowymi.
Dobór
Polskie listy były małe, więc przejrzeliśmy je w całości. Dla pozostałych krajów połączyliśmy listy, usunęliśmy duplikaty i ułożyliśmy je w losowej kolejności (Python random, ziarno 20260930). Kwalifikowaliśmy firmy w tej kolejności, aż do wypełnienia kwoty dla kraju. 13 firm z siedzibą za granicą, które były na polskich listach, przypisaliśmy do kraju siedziby.
Kwalifikacja
Jedna osoba, na podstawie opisu w katalogu albo strony głównej.

Lista rozszerzona w rundzie 2 (1 500 firm, 30 krajów)

Źródła
  • API wystawców Messe Frankfurt/Mesago: SPS 2026, Light + Building 2026, ISH (lista 2025), Intersec 2026, PCIM Europe 2026.
  • Publiczny indeks firm NürnbergMesse: embedded world 2027, it-sa 2026, Chillventa 2026, Perimeter Protection 2027.
  • Hannover Messe 2026, The smarter E Europe 2026 i security essen 2026.
  • Katalog MTP Poznań: SECUREX 2026, Instalacje 2026, ITM 2026, INSECON 2026, NetZero Energy 2025, EnergyON 2026, EV Solutions 2025.
  • Lista producentów KNX dla 13 kolejnych krajów.

Pobieraliśmy tylko dane firm, nigdy osób kontaktowych.

Rama
Siedziba w UE, Szwajcarii, Norwegii, Wielkiej Brytanii, Islandii lub Liechtensteinie.
Przebieg
9 139 unikalnych firm, 6 654 profile ocenione po wstępnym filtrze słów kluczowych, 2 195 zakwalifikowanych, 2 053 po usunięciu duplikatów (m.in. firm z listy rundy 1).
Kwalifikacja
Model językowy według jednej pisemnej rubryki (partie po 250 rekordów) z ręczną kontrolą wyrywkową. Około 30 rekordów bez opisu oceniono na podstawie wiedzy ogólnej modelu.
Ograniczenie do 1 500
Usunęliśmy rekordy z najsłabszymi dowodami cyfrowych funkcji produktu w profilu:
  • najniższą kategorię w Niemczech i w krajach spoza naszej listy priorytetowej;
  • część kategorii środkowej z krajów spoza tej listy, najpierw rekordy z najmniejszą liczbą źródeł albo bez domeny.

W krajach priorytetowych (Polska, Austria, Czechy, Holandia, kraje nordyckie) zostawiliśmy wszystkie rekordy. To nie był wybór losowy.

Kryteria wspólne

Włączamy
Firmę, która produkuje lub sprzedaje pod własną marką sprzęt albo oprogramowanie instalowane u klienta, jeśli profil wskazuje elementy cyfrowe: firmware, sterownik, magistralę, łączność sieciową lub bezprzewodową, aplikację lub chmurę, oprogramowanie instalowane.
Wyłączamy
Dystrybutorów, instalatorów, integratorów, firmy usługowe, EMS i biura projektowe, przedstawicielstwa grup z siedzibą poza ramą, stowarzyszenia, instytuty i media, producentów wyrobów medycznych i części samochodowych, produkty wyłącznie wojskowe, studia gier, czyste SaaS, produkty mechaniczne i pasywne.
Jedna firma na grupę kapitałową
Biura lokalne przypisujemy do spółki matki i kraju jej siedziby.
Domena
Z katalogu, profilu na stronie targów albo sprawdzonej strony głównej. Jedna domena na firmę. Strony spółek zależnych w domenach krajowych nie były sprawdzane.
Skład próby (po wyłączeniach)
KrajFirmyUdział
Niemcy82348,7%
Polska1267,5%
Włochy1036,1%
Holandia895,3%
Austria754,4%
Pozostałe 25 krajów47528,1%
Razem1 691100%

03Jak mierzymy

  1. Wysyłamy zapytanie HTTPS GET na https://<domena>/.well-known/security.txt.
  2. Jeśli nie ma tam pliku, pytamy o https://<domena>/security.txt (stara lokalizacja).
  3. Jeśli domena nie odpowiada na poziomie sieci (DNS, TLS, połączenie), powtarzamy kroki 1–2 dla www.<domena>.

Parametry zapytań

  • Limit czasu: 12 s na zapytanie.
  • Czytamy pierwsze 64 KiB odpowiedzi.
  • Certyfikat TLS jest weryfikowany.
  • Przekierowania HTTP są wykonywane.
  • Nagłówek User-Agent: AnnexProof security.txt survey (contact@annexproof.com).

Definicje wskaźników

WskaźnikDefinicjaPodstawa
Ma security.txtOdpowiedź HTTP 200 i linia zaczynająca się od Contact:1 691 firm
Pole PolicyW pliku jest linia Policy:1 691 firm
Ważne ExpiresData w formacie RFC 3339 (w tym małe „t” i „z”), późniejsza niż chwila pomiaru1 691 firm
Plik kompletnyPole Policy i ważne Expires1 691 firm
Problem z ExpiresData z przeszłości, zły format albo brak pola280 plików
Podpis PGPPlik zawiera BEGIN PGP SIGNED MESSAGE1 691 firm
Wzmianka o CRAW pliku pada słowo „CRA” lub „Cyber Resilience” (całe słowo, poza blokiem podpisu PGP)1 691 firm

Sprawdzamy obecność pól, a nie ich jakość. Nie testujemy, czy adres z pola Contact działa, czy pod linkiem z pola Policy jest polityka ani czy podpis PGP jest ważny. Nie zapisujemy treści pól Contact.

04Wyłączenia i przypadki graniczne

Co zwróciło zapytanie: 1 752 wybrane firmy

Ma security.txt (280)

Plik z polem Contact
280

Liczone jako brak pliku (1 411)

404 (nie ma pliku)
1 160
200 bez pola Contact (np. strona HTML zamiast pliku)
162
403 (odmowa dostępu)
51
400 (błędne zapytanie)
22
5xx (błąd serwera)
8
429 (za dużo zapytań)
3
410 (usunięty)
3
301, którego nie dało się wykonać
2

Wyłączone z pomiaru (61)

Błąd połączenia, DNS lub TLS
56
Przekroczenie czasu
5
Wyłączone (61 domen)
Błąd połączenia, DNS lub TLS (56) albo przekroczenie czasu (5). Takich stron nie liczymy ani jako „ma”, ani jako „nie ma”.
Stara lokalizacja
15 plików znaleźliśmy tylko pod /security.txt. Liczymy je jako obecne. RFC 9116 wymaga lokalizacji /.well-known/.
Adres z www.
4 pliki znaleźliśmy dopiero pod www.<domena>.

Wrażliwość wyniku. Odpowiedzi 403, 429 i 5xx (62 domeny) mogą oznaczać blokadę automatów, a nie brak pliku. Bez nich udział wynosi 17,2% (280 z 1 629). Gdyby wszystkie te firmy miały plik, byłoby to 20,2%. Wynik główny 16,6% jest więc raczej dolną granicą.

Udział firm z security.txt w trzech wariantach
Wynik główny
16,6%280 / 1 691
Bez odpowiedzi 403, 429 i 5xx
17,2%280 / 1 629
Gdyby wszystkie 62 firmy miały plik
20,2%342 / 1 691

05Wyniki (stan na 30.09.2026)

Wskaźniki główne

WskaźnikLiczbaUdział
Ma security.txt28016,6%
Wskazuje politykę CVD (pole Policy)1508,9%
Ma ważne pole Expires24014,2%
Plik kompletny (Policy i ważne Expires)1307,7%
Plik podpisany PGP342,0%
Plik wspomina CRA100,6%

Wzmianka o CRA po korekcie z 2.10.2026 (sekcja 8). Pierwsza wersja automatu szukała ciągu „cra” bez granic słowa i oznaczyła 14 plików (0,8%). Ponowny odczyt tych 14 plików pokazał 4 fałszywe trafienia: 3 we fragmentach podpisu PGP i 1 w nazwie zawierającej „craft”. Poprawiony automat liczy tylko całe słowa „CRA” i „Cyber Resilience” poza blokiem podpisu PGP. Nowa reguła może tylko zmniejszyć liczbę trafień, więc pozostałych plików nie trzeba było sprawdzać ponownie.

Pole Expires w 280 znalezionych plikach

StanPlikiUdział
Ważne24085,7%
Wygasło (data z przeszłości)145,0%
Zły format (nie RFC 3339)72,5%
Brak wymaganego pola196,8%
Razem problem z Expires4014,3%

Według kraju (kraje z co najmniej 20 firmami)

Przedział 95% liczymy metodą Wilsona tak, jakby próba była losowa. Próba nie jest losowa, więc przedział pokazuje najmniejszą możliwą niepewność, a nie pełną.

Udział firm z security.txt i przedział 95%
KrajUdziałPrzedział 95%
Norwegia22,7%5 / 22Przedział 95%: 10,1–43,4%10,1–43,4%
Dania22,2%8 / 36Przedział 95%: 11,7–38,1%11,7–38,1%
Austria21,3%16 / 75Przedział 95%: 13,6–31,9%13,6–31,9%
Szwajcaria20,9%14 / 67Przedział 95%: 12,9–32,1%12,9–32,1%
Niemcy19,9%164 / 823Przedział 95%: 17,3–22,8%17,3–22,8%
Holandia19,1%17 / 89Przedział 95%: 12,3–28,5%12,3–28,5%
Czechy17,6%9 / 51Przedział 95%: 9,6–30,3%9,6–30,3%
Wielka Brytania17,4%8 / 46Przedział 95%: 9,1–30,7%9,1–30,7%
Szwecja16,0%8 / 50Przedział 95%: 8,3–28,5%8,3–28,5%
Francja14,6%7 / 48Przedział 95%: 7,2–27,2%7,2–27,2%
Hiszpania14,3%4 / 28Przedział 95%: 5,7–31,5%5,7–31,5%
Finlandia9,1%3 / 33Przedział 95%: 3,1–23,6%3,1–23,6%
Belgia6,5%2 / 31Przedział 95%: 1,8–20,7%1,8–20,7%
Polska4,0%5 / 126Przedział 95%: 1,7–9,0%1,7–9,0%
Włochy3,9%4 / 103Przedział 95%: 1,5–9,6%1,5–9,6%
Pozostałe 15 krajów (każdy poniżej 20 firm)9,5%6 / 63Przedział 95%: 4,4–19,3%4,4–19,3%

Jak czytać te wyniki

  • Różnica między Polską lub Włochami a Niemcami jest wyraźna (test dokładny Fishera, p < 0,001).
  • Różnice między Austrią, Szwajcarią, Niemcami i Holandią mieszczą się w niepewności pomiaru. To nie jest ranking.
  • Przedziały dla małych krajów są szerokie.

Kontrola źródła: te same listy targów międzynarodowych

Polskie firmy pochodzą częściowo z innych źródeł (pełny przegląd list stowarzyszeń i targów MTP) niż firmy z większości krajów. Dlatego porównaliśmy tylko firmy z list wystawców targów międzynarodowych (SPS, Light + Building, ISH, Intersec, PCIM, embedded world, it-sa, Chillventa, Perimeter Protection, Hannover Messe, The smarter E, security essen):

Kraj siedzibysecurity.txtUdział
Niemcy155 / 77819,9%
Polska2 / 424,8%
Włochy4 / 944,3%

Różnica między Polską a Niemcami utrzymuje się w tym samym źródle (p = 0,014), ale polska grupa jest mała. W pozostałych źródłach polskie firmy mają podobny wynik: 2 z 59 na listach stowarzyszeń i 1 z 28 na listach targów MTP Poznań.

Według segmentu

Udział firm z security.txt i przedział 95%
SegmentUdziałPrzedział 95%
Płytki i moduły embedded24,0%18 / 75Przedział 95%: 15,8–34,8%15,8–34,8%
Automatyka przemysłowa i OT23,3%67 / 287Przedział 95%: 18,8–28,6%18,8–28,6%
Oprogramowanie B2B instalowane u klienta20,5%43 / 210Przedział 95%: 15,6–26,4%15,6–26,4%
Sprzęt sieciowy i telekomunikacyjny18,8%9 / 48Przedział 95%: 10,2–31,9%10,2–31,9%
Produkty zabezpieczeń18,3%60 / 327Przedział 95%: 14,5–22,9%14,5–22,9%
IoT i smart home/budynek12,8%50 / 392Przedział 95%: 9,8–16,4%9,8–16,4%
Ładowanie EV i urządzenia energetyczne10,0%25 / 249Przedział 95%: 6,9–14,4%6,9–14,4%
Inne urządzenia podłączone (POS i kasy fiskalne, sprzęt IT, pomiary)7,8%8 / 103Przedział 95%: 4,0–14,6%4,0–14,6%

Przekroje pomocnicze

  • Bez Niemiec: 13,4% (116 z 868).
  • Firmy z siedzibą w UE: 16,3% (253 z 1 554). Szwajcaria, Norwegia, Wielka Brytania i Liechtenstein razem: 19,7% (27 z 137).

06Ograniczenia

  1. Rama nie jest pełna ani losowa. Wystawcy targów i członkowie stowarzyszeń to zwykle firmy większe, eksportujące i zorganizowane. Mikrofirmy i producenci bez własnej marki są niedoreprezentowani. Inny przegląd (CVD Portal, 2026) pokazał, że duzi producenci publikują security.txt około trzy razy częściej niż ogół, więc nasz wynik może być wyższy niż dla wszystkich producentów.
  2. Niemcy to 48,7% próby, bo tam odbywają się największe targi. Wynik dla całej próby jest zbliżony do niemieckiego.
  3. Kraje mają różne źródła. Polska część pochodzi głównie z pełnego przeglądu list stowarzyszeń i targów MTP, pozostałe kraje głównie z list targów międzynarodowych. Kontrola źródła (sekcja 5) częściowo to sprawdza.
  4. Kwalifikacja firm zależy od opisów w katalogach. W rundzie 1 oceniała jedna osoba, w rundzie 2 model językowy z kontrolą wyrywkową. Część producentów mogła zostać błędnie włączona albo pominięta.
  5. Jedna domena na firmę. Firma może mieć security.txt w innej domenie (np. osobny host PSIRT) albo przyjmować zgłoszenia inną drogą.
  6. Jeden pomiar z jednej lokalizacji sieciowej. Blokady automatów i ograniczenia geograficzne mogą zaniżać wynik (sekcja 4).
  7. Sprawdzamy obecność pól, nie ich jakość (sekcja 3).
  8. Listy wystawców to stan z jednego dnia. Rejestracja na część targów (np. SPS 2026, embedded world 2027) trwała.
  9. Rundy nie tworzą szeregu czasowego (sekcja 8).

07Etyka

  • Tylko pliki przeznaczone do automatycznego pobrania.

    security.txt istnieje po to, żeby można go było znaleźć w ten sposób. Bez logowania, bez testowania podatności, bez skanowania portów. Na domenę 1–2 zapytania (do 4 z rezerwą www.), z nagłówkiem User-Agent podającym nasz adres.

  • Bez danych osobowych.

    Z list wystawców pobieraliśmy tylko dane firm. Nie zapisujemy adresów z pól Contact.

  • Bez wyników imiennych.

    Nie publikujemy nazw firm, domen ani wyników pojedynczych firm: w raporcie, w danych, w mediach społecznościowych ani w rozmowach z dziennikarzami. Nie publikujemy przekrojów z mniej niż 20 firmami.

  • Wynik tylko dla zainteresowanej firmy.

    Firma może otrzymać swój wynik z indeksu wyłącznie dla siebie. Wysyłamy go na adres e-mail w domenie tej firmy. Nie używamy wyników indeksu w wiadomościach handlowych.

  • Sprawdzenie na żywo.

    Bezpłatny CRA Snapshot wykonuje nowy pomiar publicznych sygnałów dla wpisanej domeny. Nie pokazuje wyniku zapisanego w indeksie. Narzędzie nie sprawdza, kto pyta: każdy może wpisać dowolną domenę.

  • Co było publiczne przed raportem.

    Od 1.10.2026 CRA Snapshot pokazuje pod każdym wynikiem wybrane liczby zbiorcze tej rundy: 16,6% (security.txt), 7,7% (plik kompletny), 14,3% (problem z Expires), wyniki dla Polski, Niemiec i Austrii oraz dla 7 segmentów.

  • Konflikt interesów.

    AnnexProof sprzedaje narzędzie do obsługi wymagań CRA. Dlatego publikujemy pełną metodykę i dane zbiorcze, a wyniki pokazujemy razem z badaniami innych autorów.

08Wersje i korekty

WersjaData pomiaruFirmy (po wyłączeniach)KrajeUwagi
Runda 130.09.2026239 (z 252)13Lista z sekcji 2. Wynik: 17,6% (42 z 239).
Runda 230.09.20261 691 (z 1 752)30Runda 1 plus lista rozszerzona. Wynik: 16,6% (280 z 1 691).

Runda 2 nie jest kolejnym pomiarem w czasie. Obie rundy zmierzyliśmy tego samego dnia. Runda 2 to większa próba o innym składzie. Różnice między rundami (np. Niemcy: 32,4% z 68 firm w rundzie 1 i 19,9% z 823 firm w rundzie 2) wynikają ze składu próby, a nie ze zmian u producentów.

Rejestr korekt

  1. 1.10.2026

    Pierwsza wersja liczyła daty Expires z małą literą „z” (dozwoloną w RFC 3339) jako nieważne. Po ponownym sprawdzeniu: 9 z 30 plików oznaczonych jako wygasłe jest ważnych, 7 ma zły format, 14 naprawdę wygasło. Liczby na tej stronie są już poprawione.

  2. 2.10.2026

    Wskaźnik „wzmianka o CRA”: 14 → 10 plików (0,8% → 0,6%). Automat liczył ciąg „cra” także wewnątrz innych słów („craft”) i w blokach podpisu PGP. Poprawiony automat szuka całych słów poza blokiem podpisu (sekcja 5). Pozostałe liczby bez zmian.

Kolejne rundy. Tę samą listę firm mierzymy ponownie co kwartał, tą samą metodyką, żeby pokazywać zmianę w czasie. Każda runda dostanie nową wersję zbioru danych.

09Jak cytować

Pełne

AnnexProof (2026). AnnexProof CRA Readiness Index, runda 2 (stan na 30.09.2026) [zbiór danych], wersja 2.0. https://annexproof.com/indeks/metodyka. Licencja CC BY 4.0.

Krótkie (media)

Źródło: AnnexProof CRA Readiness Index, runda 2 (przegląd 1 691 producentów z 30 krajów, stan na 30.09.2026).

Przy cytowaniu prosimy o dopisek: „To przegląd, nie badanie reprezentatywne”.

10Kontakt i zgłaszanie błędów

Błędy w danych lub metodyce: kontakt@annexproof.com. Poprawki publikujemy w rejestrze korekt (sekcja 8) i jako nową wersję zbioru danych.

Źródła (dostęp 2.10.2026)

  1. RFC 9116, A File Format to Aid in Security Vulnerability Disclosure: rfc-editor.org/rfc/rfc9116
  2. Komisja Europejska, Cyber Resilience Act (daty stosowania: 11.09.2026 i 11.12.2027): digital-strategy.ec.europa.eu
  3. Rozporządzenie (UE) 2024/2847: eur-lex.europa.eu/eli/reg/2024/2847/oj. Brzmienie zał. I cz. II pkt 5 i 6 sprawdzone w nieoficjalnym tekście skonsolidowanym (EUR-Lex nie wpuścił pobrania automatycznego).
  4. CVD Portal, CRA Exposure Study 2026 (o częstszym security.txt u dużych producentów): cvdportal.com/research/cra-exposure-2026
  5. Dane wewnętrzne AnnexProof: research/index-sample-method.md, research/accounts-expanded-method.md, research/securitytxt_scan.py, research/expires_recheck.py.