feedback-page
NewGeneruje interaktywną stronę HTML do zbierania feedbacku na treści: artykuł, wpis blogowy, newsletter, landing page albo dowolną stronę wygenerowaną przez AI. Użytkownik zaznacza fragmenty myszką, dopisuje komentarze w dymkach i klika "Wyślij", a feedback wraca prosto do Claude (przez lokalny serwer) gotowy do naniesienia poprawek. Użyj ZAWSZE, gdy użytkownik chce "nanieść uwagi", "dać feedback do tekstu/strony", "zaznaczyć i skomentować fragmenty", "podejrzeć jak markdown wygląda na blogu i go poprawić", "zrobić stronę do recenzji treści", albo poprosi o interaktywny podgląd artykułu/strony do komentowania - nawet jeśli nie powie wprost "feedback-page". Działa na plikach .md (renderuje jak na blogu) i .html (wstrzykuje warstwę komentarzy do istniejącej strony).
Overview
Feedback Page
Zamienia dowolną treść w interaktywną stronę do zbierania uwag. Użytkownik zaznacza tekst, komentuje w dymku, a komplet uwag wraca do Ciebie gotowy do wdrożenia. Eliminuje rundy "w trzecim akapicie zmień X, a w tabeli Y" - widzisz dokładnie który fragment i jaką ma mieć poprawkę.
Kiedy używać
- •Użytkownik napisał/wygenerował treść (artykuł, mail, wpis, landing, stronę z AI) i chce ją zrecenzować zaznaczając fragmenty.
- •Chce zobaczyć, jak markdown wyrenderuje się na blogu, i przy okazji nanieść poprawki.
- •Mówi "daj mi nanieść uwagi", "chcę skomentować fragmenty", "zrób podgląd do feedbacku".
Jak to działa (architektura)
Dwa kawałki:
scripts/build_feedback_page.py- bierze plik wejściowy i produkuje samodzielną stronę HTML
z wbudowaną warstwą komentarzy (assets/feedback_layer.html). - Wejście .md → renderuje markdown przez marked.js w neutralnym szablonie blogowym (jasne tło, GitHub-style code blocki — bez branding-u, działa na każdej treści). - Wejście .html → wstrzykuje warstwę komentarzy przed </body> istniejącej strony, nie ruszając jej wyglądu. Tak komentuje się strony wygenerowane przez AI.
scripts/feedback_server.py- serwuje stronę podhttp://localhost:PORT/i nasłuchuje na
POST /__fp_submit__. Gdy użytkownik klika "Wyślij", zapisuje feedback do pliku JSON i kończy pracę. Zakończenie procesu w tle automatycznie wznawia Claude Code - czytasz JSON i nanosisz poprawki. Bez kopiuj-wklej.
Strona ma fallback: jeśli serwer nie działa (np. ktoś otworzył sam plik file://), "Wyślij" pobiera feedback.json do Pobranych i kopiuje do schowka. Wtedy czytasz plik z ~/Downloads albo użytkownik wkleja treść.
Procedura
Krok 1: zbuduj stronę
python ~/.claude/skills/feedback-page/scripts/build_feedback_page.py \
--input /ścieżka/do/tresci.md \
--title "Tytuł (opcjonalnie, tryb md)"Skrypt wypisuje ścieżkę wygenerowanej strony (domyślnie <nazwa>_feedback.html obok wejścia).
Krok 2: uruchom serwer w tle i otwórz przeglądarkę
Uruchom serwer przez Bash z run_in_background: true. Plik wyjściowy feedback.json umieść obok treści (łatwo go potem znaleźć):
python ~/.claude/skills/feedback-page/scripts/feedback_server.py \
--page /ścieżka/do/tresci_feedback.html \
--out /ścieżka/do/feedback.json \
--openSerwer wypisze FEEDBACK_URL http://localhost:PORT/ i otworzy przeglądarkę. Powiedz użytkownikowi krótko jak korzystać: zaznacz tekst → "💬 Skomentuj" → wpisz uwagę → na końcu "Wyślij feedback". Zakończ swoją turę - gdy użytkownik kliknie "Wyślij", proces serwera zakończy się i zostaniesz automatycznie wznowiony.
Krok 3: odczytaj feedback i nanieś poprawki do nowej wersji
Po wznowieniu (proces serwera wypisał FEEDBACK_RECEIVED ... i zakończył się) przeczytaj feedback.json:
{
"source": "tresci.md",
"created": "2026-...",
"comments": [
{"id": 1, "quote": "zaznaczony fragment", "comment": "co zmienić"},
{"id": 2, "quote": "inny fragment", "comment": "uwaga"}
],
"general": "uwaga ogólna do całości"
}Każdy quote to dokładny fragment, którego dotyczy comment. general to uwaga do całości.
WAŻNE — DOMYŚLNE WERSJONOWANIE (nie nadpisuj oryginału):
Każda runda feedbacku produkuje nową wersję pliku, oryginał zostaje nietknięty. To pozwala porównywać iteracje, cofnąć się o jedną wersję i mieć czysty audit trail rund poprawek.
Konwencja nazw (auto-bump):
| Plik wejściowy | Nowa wersja |
|---|---|
scenariusz.md | scenariusz-v2.md (przyjmujemy że bazowy to v1) |
scenariusz-v2.md | scenariusz-v3.md |
scenariusz-v3.md | scenariusz-v4.md |
tresc.html | tresc-v2.html |
Procedura:
- Sprawdź nazwę pliku źródłowego — jeśli kończy się na
-vN.<ext>, nowa wersja to-v(N+1).<ext>.
Jeśli nie ma sufiksu wersji, nowa to -v2.<ext> (zakładamy że oryginał to v1).
- Skopiuj plik źródłowy do nowej nazwy, dopiero potem nanieś wszystkie poprawki z
feedback.json
na kopię. Oryginał zostaje bez zmian.
- Jeśli plik docelowy już istnieje (np.
-v2.mdjest już zajęty), bumpuj dalej (-v3.mditd.). - Na końcu powiedz krótko użytkownikowi co powstało:
scenariusz.md → scenariusz-v2.md (12 zmian).
Nadpisz oryginał TYLKO gdy użytkownik wprost o to poprosi („nadpisz", „bez wersji", „zmodyfikuj plik źródłowy"). W przeciwnym razie zawsze nowa wersja.
Jeśli serwer zakończył się z TIMEOUT albo użytkownik mówi, że użył fallbacku, poszukaj ~/Downloads/feedback.json (lub poproś o wklejenie).
Wskazówki
- •Strona jest samodzielna (CSS i JS w środku). Jedyna zależność zewnętrzna to marked.js z CDN
w trybie markdown - wymaga internetu do renderowania. Tryb HTML nie potrzebuje CDN.
- •Warstwa komentarzy ma prefiks
fp-na klasach/id, żeby nie kolidować ze stylami strony.
Selekcja jest ograniczona do treści ([data-feedback-root], #fp-content, albo body przy stronach HTML) i pomija własne UI feedbacku.
- •Highlight działa też dla zaznaczeń przez wiele elementów. Gdyby gdzieś "nie chwycił" wizualnie,
cytat i tak trafia do panelu - feedback nigdy nie przepada.
- •Po naniesieniu poprawek warto wygenerować stronę ponownie, żeby użytkownik zrobił kolejną rundę.
- •Nie czytaj pliku transkryptu serwera przez shell jeśli działa w tle; czekaj na notyfikację o
zakończeniu procesu, a wtedy czytaj feedback.json.
Install & Usage
mkdir -p .claude/skillsmkdir -p .claude/skills && curl -o .claude/skills/feedback-page.md https://raw.githubusercontent.com/simplybychris/feedback-page/main/SKILL.md/feedback-pageFrequently Asked Questions
What is feedback-page?
Generuje interaktywną stronę HTML do zbierania feedbacku na treści: artykuł, wpis blogowy, newsletter, landing page albo dowolną stronę wygenerowaną przez AI. Użytkownik zaznacza fragmenty myszką, dopisuje komentarze w dymkach i klika "Wyślij", a feedback wraca prosto do Claude (przez lokalny serwer) gotowy do naniesienia poprawek. Użyj ZAWSZE, gdy użytkownik chce "nanieść uwagi", "dać feedback do tekstu/strony", "zaznaczyć i skomentować fragmenty", "podejrzeć jak markdown wygląda na blogu i go poprawić", "zrobić stronę do recenzji treści", albo poprosi o interaktywny podgląd artykułu/strony do komentowania - nawet jeśli nie powie wprost "feedback-page". Działa na plikach .md (renderuje jak na blogu) i .html (wstrzykuje warstwę komentarzy do istniejącej strony).
How to install feedback-page?
To install feedback-page, create the .claude/skills directory in your project, then run the curl command to download the skill file. Once installed, invoke it in Claude Code with /feedback-page.
What is feedback-page best for?
feedback-page is a community categorized under Documentation. Created by simplybychris.