WP Manifestindependent plugin directory
manifest / ai / ai-faq-generator

AI FAQ Generator WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA

Lekka wtyczka WordPress: generowanie sekcji FAQ przez AI (Gemini) + dane strukturalne JSON-LD FAQPage (Schema.org)

★ 0stars
7release downloads
ai-news-portal-v1.2.0latest · 1mo ago

Install

Download ai-news-portal.zip From the ai-news-portal-v1.2.0 release on GitHub, Sep 13, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/mtsle/ai-faq-generator/releases/download/ai-news-portal-v1.2.0/ai-news-portal.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

AI FAQ Generator + AI News Portal

Dwie niezależne wtyczki WordPress w jednym repozytorium. Pierwsza odpowiada gościom na pytania wyłącznie treścią ich własnej strony. Druga prowadzi portal wiedzy, który zasila się sam z kanałów RSS. Obie korzystają z modeli Gemini na kluczu właściciela witryny (BYOK) i obie da się z witryny usunąć bez śladu.

Ten plik jest jednocześnie README całego repozytorium i dokumentacją wtyczki 1.

[!IMPORTANT] Korzeń repozytorium jest katalogiem wtyczki 1, a wtyczka 2 leży w podfolderze. To nie jest bałagan, tylko wymuszenie WordPressa: skaner wtyczek schodzi tylko dwa poziomy w głąb wp-content/plugins/, więc plik główny musi leżeć najwyżej jeden katalog niżej. Na żywą instalację celują junctiony dokładnie w te ścieżki, dlatego przenoszenie katalogów wtyczek albo zmiana ich nazw psuje żywą stronę i testy.

Spis treści

Stan

Wtyczka Folder Wersja WordPress PHP Tagi wydań README
AI FAQ Generator korzeń repo 1.1.0 ≥ 6.4 ≥ 8.0 v0.1.0–v1.0.0 (historyczne, bez prefiksu); od 1.1.0 prefiks aifaq-, czyli aifaq-v1.1.0 ten dokument (od sekcji „Dokumentacja wtyczki 1")
AI News Portal ai-news-portal/ 1.1.0 ≥ 6.5 ≥ 8.1 ai-news-portal-v0.1.0–ai-news-portal-v1.1.0 ai-news-portal/README.md

Obie wtyczki są testowane do WordPressa 7.0.2. Obie są na licencji GPLv2 — wyłącznie wersja druga, bez klauzuli „or later"; pełny tekst w LICENSE.

Wersja 1.1.0 to wydanie po audycie całości obu wtyczek. Co audyt znalazł i co z tego naprawiono, opisuje katalog audyt/.

Co robi każda wtyczka

AI FAQ Generator (wtyczka 1)

Indeksuje treść witryny, dzieli ją na fragmenty i liczy dla nich embeddingi. Gość pyta, wtyczka szuka pasujących fragmentów i odpowiada tylko wtedy, gdy pokrycie w treści jest wystarczające — poza tematem odmawia zamiast zmyślać. Do tego narzędzie dla właściciela, które układa gotowe zestawy pytań i odpowiedzi.

Element Konkret
Podstrona dla gościa /faqgenerator
Przestrzeń REST aifaq/v1 — 15 tras
Tabele w bazie 5: knowledge, qa_log, cache, faq, generations (z przedrostkiem witryny)
Dane strukturalne jeden węzeł JSON-LD WebApplication
Model Gemini, klucz właściciela witryny

AI News Portal (wtyczka 2)

Pobiera wpisy z kanałów RSS, odsiewa je słowami wykluczającymi, sprawdza duplikaty, przepisuje materiał modelem i publikuje w Centrum Wiedzy. Przebieg chodzi sam, pod atomowym zamkiem, żeby dwa równoległe uruchomienia nie opublikowały tego samego dwa razy.

Element Konkret
Front /centrum-wiedzy/
Zadanie cykliczne ainp_tick
Tabele w bazie 1: ainp_items (z przedrostkiem witryny)
Kokpit własny ekran z akcjami pod nonce i uprawnieniem
Model Gemini, klucz właściciela witryny

Gdzie co leży

.                              wtyczka 1 — korzeń repo
  ai-faq-generator.php         plik główny, stałe AIFAQ_*
  uninstall.php                sprzątanie bez śladu (cała sieć witryn)
  readme.txt                   readme w formacie WordPressa
  src/                         83 pliki — kod wtyczki 1
    Admin/     18              kokpit, ustawienia, metabox
    Index/     11              indeksowanie: chunker, batcher, crawl
    Rest/       9              trasy aifaq/v1
    Data/       8              schemat i repozytoria
    PublicUi/   7              front gościa, nagłówki bezpieczeństwa
    Core/       6              cykl życia, ustawienia, router
    Rag/        6              potok pytania gościa
    App/        5              powłoka aplikacji
    Providers/  4              warstwa modelu (BYOK)
    Faq/        3              publikacja par FAQ
    Http/       3              transport HTTP
    Seo/        2              JSON-LD
  tests/                       63 zestawy + tests/load/ (14 skryptów obciążeniowych)
  assets/                      15 plików — JS, CSS i puste index.php blokujące listowanie
  instrukcje/                  47 plików — 5 PDF-ów, źródła HTML, schematy, zrzuty
  audyt/                       14 plików — opis audytu, raport, dokumentacja zderzana z kodem
  .github/                     workflow „Testy" + CI-owe kopie obu runnerów

ai-news-portal/                wtyczka 2 — 135 plików
  ai-news-portal.php           plik główny, stałe AINP_*
  uninstall.php                własne sprzątanie
  src/         19              15 klas + 4 szablony frontu
  tests/       30              29 zestawów
  instrukcje/  60              5 PDF-ów i ich źródła
  assets/      21

Rozdzielność wtyczek

Wtyczki są w pełni rozdzielne: osobne przestrzenie stałych (AIFAQ_* i AINP_*), osobne uninstall.php, LICENSE, readme.txt i tests/, zero wspólnego kodu. AI News Portal „nie ma żadnej zależności od drugiej wtyczki z tej samej paczki, nie dzieli z nią kodu, opcji ani tabel" (jego README).

[!NOTE] Ta rozdzielność nie jest deklaracją, tylko warunkiem przebiegu testów. Zestaw tests/uninstall-guard-test.php zderza każdy literał z uninstall.php wtyczki 1 z prawdziwymi kluczami wtyczki 2 własnym matcherem LIKE. Napis ainp nie musiałby się w kodzie pojawić, żeby dane drugiej wtyczki zniknęły — strażnik szuka skutku, nie słowa.

Instalacja — każda wtyczka osobno

Wtyczka 1 — AI FAQ Generator. Do wp-content/plugins/ai-faq-generator/ trafia zawartość korzenia repo. Czystą paczkę bez wtyczki 2 daje git archive z tagu wydania wtyczki 1 — drzewo tagu v1.0.0 nie zawiera folderu ai-news-portal/:

git archive v1.0.0 --prefix=ai-faq-generator/ -o ai-faq-generator.zip

Wtyczka 2 — AI News Portal. Do wp-content/plugins/ai-news-portal/ trafia sam folder ai-news-portal/ z repo. Archiwum zachowuje prefiks ścieżki, więc ZIP rozpakowuje się od razu we właściwy katalog:

git archive ai-news-portal-v1.0.0 ai-news-portal -o ai-news-portal.zip

[!TIP] Sklonowanie całego repo prosto do plugins/ uaktywni tylko wtyczkę 1 — ai-news-portal/ai-news-portal.php leży wtedy trzeci poziom pod plugins/, poza zasięgiem skanera WordPressa. Wtyczka 2 wymaga własnego katalogu albo junctiona wskazującego na ai-news-portal/.

Gotowe paczki ZIP wiszą przy wydaniach: https://github.com/mtsle/ai-faq-generator/releases. Katalogi instrukcje/ nie wchodzą do paczek instalacyjnych — klient dostaje PDF-y osobno, obok pliku .zip.

Praca w repozytorium

Potrzebny jest tylko PHP CLI z rozszerzeniem mbstring. Testy nie wymagają bazy danych, sieci ani zainstalowanego WordPressa — zamiast nich chodzą atrapy.

bash .github/ci/testy-wtyczka1.sh
bash .github/ci/testy-wtyczka2.sh

Oba runnery biorą interpreter ze zmiennej PHP i domyślnie wołają php z PATH:

PHP=/sciezka/do/php bash .github/ci/testy-wtyczka1.sh

Zasady pracy, konwencje commitów, wersjonowanie i wymagania wobec nowych testów opisuje osobny dokument: CONTRIBUTING.md.

Testy i strażnicy

Wtyczka 1 Wtyczka 2
Zestawy 63 w 57 segmentach 29 w 15 segmentach
Asercje nieliczone globalnie 2306, liczone co do jednej
Kryterium zaliczenia kod wyjścia zestawu kod wyjścia oraz dokładna liczba asercji

Różnica w kryteriach jest historyczna i celowa. Runner wtyczki 2 nie zalicza segmentu, jeśli liczba wykonanych asercji nie zgadza się z zadeklarowaną — test, który po cichu przestał cokolwiek sprawdzać, dalej świeciłby na zielono, a tak przewraca przebieg.

Segmenty wtyczki 2 są ułożone według architektury, więc czyta się je jak mapę kodu:

Segment Czego dotyczy
S1 Cykl życia instalacji Plugin.php, plik główny
S2 Wejście sieciowe Http.php
S3 Kanały i parsowanie Feed.php
S4 Tożsamość pozycji i duplikaty Dedup.php
S5 Bramki treści Filter.php, Article.php
S6 Model i kontrakt odpowiedzi Gemini.php, Validator.php
S7 Publikacja idempotentna Publisher.php
S8 Orkiestracja przebiegu i zamek Runner.php
S9 Automatyzacja czasowa cron ainp_tick
S10 Kokpit: akcje, nonce, uprawnienia Admin.php, Admin_Screen.php
S11 Ustawienia i klucz API Settings.php
S12 Front Centrum Wiedzy Portal.php, szablony
S13 Nagłówki bezpieczeństwa Security.php
S14 Usuwanie bez śladu uninstall.php
S15 Zgodność dokumentacji z kodem README.md + readme.txt

Segmenty wtyczki 1 są ułożone według kroków budowy (K3–K23), bo powstawały razem z produktem. Pełna lista jest w .github/ci/testy-wtyczka1.sh.

Strażnicy strukturalni

Osobna kategoria zestawów nie sprawdza zachowania, tylko pilnuje własności całego kodu — tego, co łatwo cofnąć jedną porządkującą zmianą i czego zwykły test nie zauważy.

Strażnik Czego pilnuje
uninstall-guard-test.php Kompletności sprzątania: każdy klucz, który kod zapisuje, musi być kasowany. Najdłuższy czas życia danych tymczasowych jest wyliczany ze źródeł, a nie przepisany z komentarza. Osobne ramię pilnuje, że wtyczka 1 nie rusza danych wtyczki 2.
wersja-spojnosc-test.php Numer wersji ma cztery źródła (nagłówek, stała, Stable tag, changelog) i wszystkie muszą podawać to samo. Do tego: źródła instrukcji nie mogą zawierać numeru wersji wpisanego w treść — ma go podstawiać builder z nagłówka.
krok21-csp-inline-guard-test.php Zero atrybutów onclick= i style= w plikach panelu właściciela. Polityka CSP nie ma unsafe-inline, a nonce chroni tylko znaczniki `

This README is longer than the copy stored here. Read the rest on GitHub →

Releases

Newest 25 of 49 recorded releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
Sep 13, 2026 1mo ago
ai-news-portal.zip
2
Sep 13, 2026 1mo ago
ai-faq-generator.zip
0
Sep 9, 2026 1mo ago
ai-news-portal.zip
5
Sep 9, 2026 1mo ago
ai-faq-generator.zip
0
Aug 23, 2026 2mo ago
ai-news-portal.zip
0
Aug 16, 2026 2mo ago
tag only
—
Aug 9, 2026 2mo ago
tag only
—
Aug 9, 2026 2mo ago
tag only
—
Aug 7, 2026 2mo ago
tag only
—
Aug 6, 2026 2mo ago
tag only
—
Aug 6, 2026 2mo ago
tag only
—
Aug 5, 2026 2mo ago
tag only
—
Aug 4, 2026 2mo ago
tag only
—
Aug 3, 2026 2mo ago
tag only
—
Jul 28, 2026 2mo ago
tag only
—
Jul 28, 2026 2mo ago
tag only
—
Jul 28, 2026 2mo ago
tag only
—
Jul 28, 2026 2mo ago
tag only
—
Jul 26, 2026 3mo ago
tag only
—
Jul 26, 2026 3mo ago
tag only
—
Jul 26, 2026 3mo ago
tag only
—
Jul 26, 2026 3mo ago
tag only
—
Jul 26, 2026 3mo ago
tag only
—
Jul 25, 2026 3mo ago
tag only
—
Jul 22, 2026 3mo ago
tag only
—
All releases on GitHub →
A grade

Security

AI FAQ Generator 1.2.0 · audited by WP Registry

No security issues found.

Audited release
1.2.0
Findings
none
Worst severity
—
Content hash
f05b87f0b904a0522895aec5…

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.