SPECYFIKACJA WDROŻENIOWA
PROJEKT: CYTUJ.PODZIEL.PL
WERSJA: 1.0
JĘZYKI: POLSKI + ANGIELSKI
DATA: 13 lipca 2026
STATUS: specyfikacja do realizacji

======================================================================
0. INFORMACJE PODSTAWOWE
======================================================================

0.1. Nazwa projektu

Nazwa widoczna:
- PL: Cytuj
- EN: Cite

Nazwa opisowa:
- PL: Generator cytowań, przypisów i bibliografii
- EN: Citation, Footnote & Bibliography Generator

Nazwa techniczna repozytorium:
- cytuj-podziel
- citation-bibliography-builder

Domena główna:
- https://cytuj.podziel.pl/

Wersja polska:
- https://cytuj.podziel.pl/

Wersja angielska:
- https://cytuj.podziel.pl/en/

Przyszłe wersje językowe:
- /de/
- /es/
- /fr/
- kolejne bez przebudowy silnika

0.2. Hasła

Hasło główne PL:
„Twórz poprawne cytowania, przypisy i bibliografie bez logowania”

Hasło główne EN:
“Create citations, footnotes and bibliographies without signing up”

Hasło prywatności PL:
„Twoja bibliografia pozostaje na tym urządzeniu.”

Hasło prywatności EN:
“Your bibliography stays on this device.”

0.3. Typ projektu

- statyczna aplikacja internetowa;
- hosting: DreamHost Shared Unlimited;
- brak PHP;
- brak własnego backendu;
- brak serwerowej bazy danych;
- brak kont użytkowników;
- brak płatnego API;
- podstawowe działanie w pełni lokalne;
- opcjonalne pobieranie metadanych z zewnętrznych publicznych API;
- PWA;
- częściowe działanie offline;
- monetyzacja przez Google AdSense;
- pełna wersja PL i EN;
- wspólna stopka sieci Podziel.pl;
- brak strony kontaktowej;
- brak formularza kontaktowego;
- brak publicznego adresu e-mail.

0.4. Dane Google AdSense

Identyfikator:
ca-pub-7575402146396018

Kod do umieszczenia dokładnie raz w <head> każdej publicznej strony:

<script async
  src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7575402146396018"
  crossorigin="anonymous"></script>

Zawartość ads.txt:

google.com, pub-7575402146396018, DIRECT, f08c47fec0942fa0

0.5. Najważniejsza obietnica

Cytuj umożliwia:
- ręczne utworzenie źródła;
- import istniejącej bibliografii;
- wygenerowanie cytowania w tekście;
- wygenerowanie przypisu;
- wygenerowanie bibliografii;
- sprawdzenie brakujących informacji;
- zmianę stylu całego projektu;
- eksport danych i sformatowanego wyniku;
- zapis projektu lokalnie po świadomej decyzji użytkownika.

Podstawowe funkcje nie wymagają:
- konta;
- logowania;
- własnego serwera;
- przesyłania bibliografii do Podziel.pl;
- połączenia z internetem po wcześniejszym załadowaniu aplikacji.

0.6. Główne zastrzeżenie

Narzędzie nie może deklarować, że każde wygenerowane cytowanie jest
bezwarunkowo poprawne.

Poprawna komunikacja:
- „Wynik został wygenerowany na podstawie podanych danych i wybranego stylu.”
- „Sprawdź wymagania swojej uczelni, wydawcy lub prowadzącego.”
- „Automatycznie pobrane metadane mogą być niepełne lub błędne.”
- „Harvard nie jest jednym jednolitym stylem — wybierz konkretny wariant.”

Niedozwolone komunikaty:
- „Gwarantujemy 100% poprawności.”
- „Zgodne z każdą uczelnią.”
- „Oficjalnie zatwierdzone przez APA/MLA/Chicago/ISO.”
- „Jedyny poprawny zapis.”
- „Wynik nie wymaga sprawdzenia.”

======================================================================
1. CEL I POZYCJONOWANIE
======================================================================

1.1. Cel produktu

Celem jest stworzenie kompletnego, bezpłatnego i łatwego w użyciu
generatora cytowań i menedżera małych oraz średnich bibliografii.

Projekt ma łączyć:
- prostotę generatora pojedynczego cytowania;
- funkcje bibliografii projektowej;
- import i eksport standardowych formatów;
- wiarygodne formatowanie przez Citation Style Language;
- kontrolę kompletności danych;
- lokalne przechowywanie;
- pełną wersję polską i angielską;
- wartościowe poradniki.

1.2. Główne problemy użytkowników

Projekt rozwiązuje następujące problemy:
- nieznajomość kolejności elementów opisu;
- mylenie bibliografii z przypisem;
- różnice między stylami;
- brak danych autora lub daty;
- nieprawidłowe użycie DOI i URL;
- duplikaty źródeł;
- ręczna zmiana całej bibliografii na inny styl;
- brak prawidłowych kursyw, interpunkcji i kolejności autorów;
- tworzenie przypisów do mniej typowych źródeł;
- przenoszenie danych między Zotero, Mendeley, EndNote i BibTeX;
- błędne cytowanie materiałów internetowych i treści AI;
- brak możliwości wygenerowania wyniku bez zakładania konta.

1.3. Pozycjonowanie rynkowe

Cytuj nie ma być:
- pełnym systemem współpracy zespołowej;
- chmurową bazą publikacji;
- edytorem całej pracy dyplomowej;
- zamiennikiem Zotero dla kolekcji liczących dziesiątki tysięcy rekordów;
- wyszukiwarką pełnych tekstów;
- narzędziem do obchodzenia paywalli;
- wykrywaczem plagiatu;
- prawniczym systemem informacji prawnej.

Cytuj ma być:
- szybkim generatorem pojedynczego cytowania;
- lokalnym menedżerem bibliografii do pracy, artykułu lub projektu;
- konwerterem między formatami bibliograficznymi;
- narzędziem edukacyjnym pokazującym, z jakich pól powstał wynik;
- bezpiecznym i lekkim narzędziem statycznym.

1.4. Przewaga projektu

- ręczne działanie offline;
- brak wymaganego konta;
- lokalny projekt;
- PL i EN od pierwszego dnia;
- mocne wsparcie ISO 690;
- jasne rozróżnienie wariantów Harvard;
- widoczna kontrola jakości;
- eksport bez blokady płatnej;
- brak ukrytej subskrypcji;
- możliwość przejrzenia i poprawienia wszystkich pól;
- brak przesyłania całej bibliografii do serwera Podziel.pl;
- pełna dokumentacja ograniczeń.

======================================================================
2. GRUPY DOCELOWE
======================================================================

2.1. Użytkownicy podstawowi

- uczniowie szkół średnich;
- studenci;
- doktoranci;
- nauczyciele;
- wykładowcy;
- autorzy prac licencjackich;
- autorzy prac magisterskich;
- autorzy artykułów naukowych;
- redaktorzy;
- bibliotekarze;
- dziennikarze;
- twórcy raportów;
- pracownicy organizacji pozarządowych;
- analitycy;
- autorzy treści internetowych;
- osoby przygotowujące dokumentację techniczną;
- programiści cytujący oprogramowanie i repozytoria;
- badacze danych;
- użytkownicy migrujący bibliografię między programami.

2.2. Podstawowe scenariusze

A. Jedno cytowanie
- użytkownik wybiera styl;
- wybiera typ źródła;
- wpisuje dane;
- kopiuje cytowanie lub przypis.

B. Bibliografia pracy
- użytkownik tworzy projekt;
- dodaje kilkanaście lub kilkadziesiąt źródeł;
- sprawdza braki;
- usuwa duplikaty;
- ustawia styl;
- eksportuje bibliografię do DOCX lub kopiuje jako tekst sformatowany.

C. DOI
- użytkownik wkleja DOI;
- aplikacja po jego zgodzie odpytuje Crossref;
- w razie braku wyniku odpytuje DataCite;
- użytkownik sprawdza dane;
- zatwierdza rekord.

D. ISBN
- użytkownik wkleja ISBN;
- aplikacja po jego zgodzie odpytuje Open Library;
- użytkownik wybiera właściwe wydanie;
- uzupełnia brakujące informacje.

E. Import
- użytkownik importuje BibTeX, RIS lub CSL-JSON;
- aplikacja pokazuje ostrzeżenia;
- użytkownik scala duplikaty;
- wybiera styl;
- eksportuje wynik.

F. Przypisy
- użytkownik tworzy serię cytowań w kolejności wystąpienia;
- dodaje numery stron, rozdziały, paragrafy i komentarze;
- generuje kolejne przypisy;
- kopiuje całą listę lub eksportuje ją.

G. Bibliografia adnotowana
- użytkownik dodaje własne streszczenia i oceny źródeł;
- ustawia format adnotacji;
- eksportuje bibliografię z adnotacjami.

======================================================================
3. ZASADY MERYTORYCZNE
======================================================================

3.1. Źródło prawdy formatowania

Podstawą formatowania ma być:
- Citation Style Language;
- zwalidowane pliki CSL;
- lokalne pliki locale CSL;
- poprawnie znormalizowane dane CSL-JSON;
- testy porównawcze z przykładami oficjalnych przewodników.

Nie należy tworzyć wszystkich stylów ręcznie jako osobnych funkcji
JavaScript.

3.2. Style a standardy

Projekt musi wyraźnie rozróżniać:
- nazwę stylu;
- edycję;
- wariant;
- język lokalizacji;
- typ cytowania;
- datę aktualizacji pliku CSL.

Przykłady:
- APA 7;
- MLA 9;
- Chicago 18 — author-date;
- Chicago 18 — notes and bibliography;
- ISO 690:2021 — author-date;
- ISO 690:2021 — numeric;
- IEEE;
- Vancouver / NLM;
- Harvard — SAGE;
- Harvard — Cite Them Right, jeśli legalnie i technicznie dostępny;
- OSCOLA.

3.3. Harvard

„Harvard” nie może być pokazany jako jeden uniwersalny standard.

Interfejs:
- najpierw wyświetla „Harvard” jako grupę;
- następnie wymaga wyboru konkretnego wariantu;
- pokazuje krótki opis różnic;
- zapisuje dokładny identyfikator pliku CSL;
- eksport projektu zachowuje identyfikator wariantu.

3.4. ISO 690

Wersja docelowa:
- ISO 690:2021.

Nie używać ogólnej etykiety „ISO 690” bez podania:
- roku;
- wariantu cytowania;
- języka lokalizacji;
- źródła pliku CSL.

Dla polskiej wersji:
- stosować polską lokalizację terminów;
- nie nazywać wariantu „PN-ISO”, jeśli nie została potwierdzona zgodność
  z konkretnym polskim wydaniem normy;
- używać etykiety „ISO 690:2021 — polska lokalizacja”.

3.5. Vancouver

Wersja podstawowa:
- Vancouver / NLM.

Interfejs ma informować:
- poszczególne czasopisma mogą mieć własne odmiany;
- skróty tytułów czasopism wymagają poprawnych danych;
- użytkownik powinien sprawdzić instrukcje dla autorów.

3.6. Chicago

Wersja docelowa:
- Chicago Manual of Style, 18th edition.

Dwa oddzielne style:
- Author-Date;
- Notes and Bibliography.

3.7. Treści generowane przez AI

Projekt ma obsługiwać typ:
- AI tool;
- AI-generated text;
- AI-generated image;
- conversation with AI.

Pola:
- nazwa narzędzia;
- producent;
- model lub wersja;
- opis promptu;
- pełny prompt opcjonalny;
- data utworzenia;
- URL;
- data dostępu;
- typ wyniku;
- archiwalny link lub załącznik opisowy;
- własna notatka.

Ważne:
- zasady cytowania AI szybko się zmieniają;
- każda strona poradnika o AI ma podawać datę ostatniego przeglądu;
- wynik ma być opisany jako zgodny z aktualnie wybranym szablonem;
- aplikacja nie może przesyłać promptu do analityki;
- pełny prompt nie jest automatycznie dołączany do cytowania.

3.8. Odpowiedzialność użytkownika

Aplikacja zawsze pokazuje:
- dane wejściowe;
- wynik;
- ostrzeżenia;
- nazwę stylu;
- datę wersji stylu;
- pola brakujące;
- możliwość ręcznej korekty.

======================================================================
4. STYLE CYTOWAŃ W WERSJI 1.0
======================================================================

4.1. Style obowiązkowe

1. APA 7
- cytowanie w tekście;
- bibliografia;
- cytowanie narracyjne;
- cytowanie parentetyczne;
- lokatory;
- prace bez autora;
- prace bez daty.

2. MLA 9
- in-text citation;
- Works Cited;
- lokatory;
- źródła z kontenerami;
- drugi kontener;
- data dostępu jako opcja.

3. Chicago 18 Author-Date
- cytowanie w tekście;
- bibliografia;
- lokatory;
- zakresy stron.

4. Chicago 18 Notes and Bibliography
- pełny pierwszy przypis;
- skrócony kolejny przypis;
- bibliografia;
- numer przypisu;
- komentarz przed i po cytowaniu.

5. ISO 690:2021 Author-Date
- polska lokalizacja;
- angielska lokalizacja;
- cytowanie w tekście;
- bibliografia.

6. ISO 690:2021 Numeric
- numerowanie w kolejności cytowania;
- bibliografia numeryczna;
- ponowne cytowanie tego samego źródła;
- lokatory.

7. IEEE
- cytowania numeryczne;
- bibliografia w kolejności cytowania;
- zakresy numerów;
- lokatory.

8. Vancouver / NLM
- cytowania numeryczne;
- bibliografia;
- dane medyczne;
- czasopisma;
- DOI i PMID jako pola.

9. Harvard — SAGE
- dokładna nazwa wariantu;
- cytowanie autor-data;
- bibliografia.

10. OSCOLA
- przypisy;
- bibliografia lub tabele źródeł w obsługiwanym zakresie;
- akty prawne;
- orzeczenia;
- książki i artykuły.

11. AMA
- cytowania numeryczne;
- bibliografia medyczna.

12. Turabian
- tylko jeżeli aktualny zwalidowany plik CSL i licencja pozwalają;
- oddzielnie notes-bibliography i author-date, jeśli oba warianty są dostępne.

4.2. Style dodatkowe

Możliwość dołączenia w paczce:
- Nature;
- Science;
- ACS;
- DIN 1505;
- MHRA;
- Bluebook Law Review wyłącznie po ocenie licencji i jakości;
- wybrane style czasopism.

Style dodatkowe nie mogą zwiększyć podstawowego pakietu bez potrzeby.
Należy stosować dynamiczne ładowanie.

4.3. Zarządzanie stylem

Każdy styl ma rekord:
- id;
- title;
- shortTitle;
- edition;
- citationFormat;
- category;
- defaultLocale;
- supportedLocales;
- source;
- license;
- updatedAt;
- checksum;
- bundled;
- experimental;
- warnings.

4.4. Aktualizacja stylów

- style są pobierane i zatwierdzane podczas budowania projektu;
- produkcja nie pobiera samoczynnie najnowszych stylów przy każdym użyciu;
- wersje są zablokowane;
- aktualizacja wymaga testów regresji;
- plik manifestu zawiera datę i hash;
- aplikacja może pokazać „wersja stylu z dnia...”;
- brak automatycznej zmiany wyglądu istniejącej bibliografii bez aktualizacji
  wersji projektu.

======================================================================
5. TYPY ŹRÓDEŁ
======================================================================

5.1. Publikacje drukowane i elektroniczne

- książka;
- e-book;
- rozdział książki;
- część książki;
- książka redagowana;
- hasło encyklopedyczne;
- hasło słownikowe;
- artykuł naukowy;
- artykuł magazynowy;
- artykuł prasowy;
- numer czasopisma;
- recenzja;
- list do redakcji;
- editorial;
- preprint;
- working paper;
- materiały konferencyjne;
- referat konferencyjny;
- poster konferencyjny;
- abstrakt konferencyjny;
- praca licencjacka;
- praca magisterska;
- rozprawa doktorska;
- habilitacja;
- raport;
- raport techniczny;
- white paper;
- standard;
- norma;
- patent;
- broszura;
- katalog;
- instrukcja;
- dokument archiwalny;
- rękopis;
- list;
- wywiad.

5.2. Internet

- strona internetowa;
- podstrona;
- wpis blogowy;
- artykuł online;
- wiki;
- post w serwisie społecznościowym;
- wątek;
- komentarz;
- newsletter;
- forum;
- repozytorium;
- release oprogramowania;
- dokumentacja internetowa;
- kod źródłowy;
- gist lub snippet;
- archiwalna wersja strony;
- komunikat prasowy.

5.3. Multimedia

- film;
- film online;
- film z YouTube;
- transmisja;
- program telewizyjny;
- odcinek serialu;
- podcast;
- odcinek podcastu;
- nagranie audio;
- piosenka;
- album;
- fotografia;
- grafika;
- obraz;
- rzeźba;
- wystawa;
- mapa;
- infografika;
- prezentacja;
- slajdy;
- webinar;
- wykład;
- gra komputerowa.

5.4. Dane i oprogramowanie

- zbiór danych;
- część zbioru danych;
- baza danych;
- oprogramowanie;
- pakiet oprogramowania;
- wersja oprogramowania;
- model uczenia maszynowego;
- notebook;
- repozytorium kodu;
- specyfikacja;
- protokół badawczy;
- raport laboratoryjny.

5.5. Prawo i administracja

- akt prawny;
- ustawa;
- rozporządzenie;
- dyrektywa;
- decyzja;
- orzeczenie;
- sprawa sądowa;
- traktat;
- projekt ustawy;
- dokument parlamentarny;
- dokument rządowy;
- raport urzędu;
- komunikat publiczny;
- norma techniczna.

Pola i formatowanie prawne są zależne od jurysdykcji.
Wersja 1.0:
- obsługuje pola CSL;
- oferuje OSCOLA;
- nie deklaruje pełnej zgodności z polskimi zasadami prawniczymi;
- materiały prawne mają oznaczenie „sprawdź wymagania instytucji”.

5.6. Komunikacja i źródła nietrwałe

- e-mail;
- wiadomość prywatna;
- osobista rozmowa;
- wywiad niepublikowany;
- wykład niepublikowany;
- notatki osobiste;
- komunikacja AI.

Aplikacja musi wskazywać, że część stylów:
- nie umieszcza komunikacji osobistej w bibliografii;
- generuje tylko cytowanie w tekście;
- wymaga opisu w tekście głównym.

======================================================================
6. MODEL DANYCH
======================================================================

6.1. Format kanoniczny

Kanoniczny format bibliograficzny:
- CSL-JSON.

Dane projektu:
- wersjonowany JSON projektu Cytuj.

6.2. Rekord źródła

Minimalny model:

{
  "id": "uuid",
  "type": "article-journal",
  "title": "",
  "title-short": "",
  "author": [],
  "editor": [],
  "translator": [],
  "issued": {},
  "accessed": {},
  "container-title": "",
  "container-title-short": "",
  "publisher": "",
  "publisher-place": "",
  "volume": "",
  "issue": "",
  "page": "",
  "edition": "",
  "version": "",
  "DOI": "",
  "ISBN": "",
  "ISSN": "",
  "URL": "",
  "PMID": "",
  "PMCID": "",
  "abstract": "",
  "keyword": "",
  "language": "",
  "genre": "",
  "medium": "",
  "archive": "",
  "archive_location": "",
  "event": "",
  "event-place": "",
  "jurisdiction": "",
  "authority": "",
  "number": "",
  "collection-title": "",
  "collection-number": "",
  "note": "",
  "custom": {}
}

6.3. Osoby

Model osoby:
- given;
- family;
- literal;
- suffix;
- non-dropping-particle;
- dropping-particle;
- comma-suffix;
- parse-names;
- ORCID jako rozszerzenie;
- affiliation jako rozszerzenie.

Interfejs musi rozróżniać:
- osobę;
- autora instytucjonalnego;
- nazwę jednoczęściową;
- pseudonim;
- autora nieznanego.

6.4. Daty

Obsługiwane:
- pełna data;
- rok i miesiąc;
- sam rok;
- zakres;
- data przybliżona;
- brak daty;
- data sezonowa;
- data dostępu.

Dane CSL:
- date-parts;
- literal;
- circa;
- season;
- raw, jeśli import nie został jeszcze znormalizowany.

6.5. Rozszerzenia Cytuj

Pola projektowe nieprzekazywane bezpośrednio do procesora:
- createdAt;
- updatedAt;
- sourceOfMetadata;
- externalLookupAt;
- metadataConfidence;
- tags;
- colorLabel;
- userAnnotation;
- userRating;
- readingStatus;
- attachmentDescription;
- favorite;
- duplicateGroupId;
- validationOverrides;
- originalImport;
- originalImportFormat;
- importWarnings;
- customFields;
- aiPrompt;
- aiModel;
- aiOutputType.

6.6. Projekt

{
  "format": "cytuj-project",
  "version": 1,
  "id": "uuid",
  "title": "",
  "description": "",
  "createdAt": "",
  "updatedAt": "",
  "locale": "pl-PL",
  "citationLocale": "pl-PL",
  "styleId": "apa",
  "styleVersion": "",
  "sources": [],
  "citationClusters": [],
  "settings": {},
  "customStyles": [],
  "exportProfiles": []
}

6.7. Migracje

- każda wersja projektu ma numer;
- migracja działa na kopii;
- oryginał można pobrać;
- brak cichego usuwania nieznanych pól;
- po migracji generowany jest raport;
- nieobsługiwane pola trafiają do custom lub originalImport.

======================================================================
7. GŁÓWNE MODUŁY
======================================================================

7.1. Generator pojedynczego cytowania

Funkcje:
- wybór stylu;
- wybór typu źródła;
- formularz dynamiczny;
- podgląd na żywo;
- cytowanie w tekście;
- cytowanie narracyjne;
- przypis;
- wpis bibliograficzny;
- kopiowanie jako tekst;
- kopiowanie jako rich text;
- pobranie TXT;
- pobranie HTML;
- zapis do projektu.

7.2. Menedżer bibliografii

- wiele projektów;
- lista źródeł;
- widok tabeli;
- widok kart;
- wyszukiwarka;
- filtry;
- sortowanie;
- tagi;
- oznaczenia kolorystyczne;
- status przeczytania;
- ulubione;
- notatki;
- szybka edycja;
- masowa zmiana tagów;
- masowe usuwanie;
- cofanie operacji;
- historia operacji w bieżącej sesji.

7.3. Generator bibliografii

- automatyczne formatowanie całej listy;
- sortowanie zgodne ze stylem;
- kolejność cytowania dla stylów numerycznych;
- wcięcie wiszące;
- odstępy;
- nagłówek bibliografii;
- wybór, czy dołączać źródła niecytowane;
- eksport;
- podgląd stron A4.

7.4. Kompozytor cytowań

- wybór jednego lub wielu źródeł;
- lokator:
  - strona;
  - strony;
  - rozdział;
  - paragraf;
  - sekcja;
  - wiersz;
  - czas;
  - klatka;
  - tom;
  - numer;
  - figura;
  - tabela;
  - dodatek;
- prefix;
- suffix;
- suppress author;
- author only;
- cytowanie narracyjne;
- kolejność źródeł;
- sortowanie zgodne ze stylem;
- podgląd;
- kopiowanie.

7.5. Generator przypisów

- pełny pierwszy przypis;
- kolejne cytowanie skrócone;
- ibid tylko jeśli styl i procesor je wspiera;
- numeracja;
- lokator;
- komentarz użytkownika;
- wiele źródeł w jednym przypisie;
- eksport serii przypisów;
- podgląd listy końcowej;
- przypisy końcowe.

7.6. Kontrola bibliografii

- brak autora;
- brak daty;
- brak tytułu;
- brak źródła nadrzędnego;
- brak wydawcy;
- brak DOI;
- niepoprawny DOI;
- niepoprawny ISBN;
- niepoprawny ISSN;
- niepoprawny ORCID;
- niepoprawny URL;
- brak daty dostępu;
- brak stron;
- numer tomu bez czasopisma;
- numer wydania w nieprawidłowym polu;
- błędna kolejność imienia i nazwiska;
- tytuł zapisany samymi wielkimi literami;
- powtarzające się spacje;
- HTML w polach;
- niezamknięte znaczniki;
- podejrzane encje;
- brak języka;
- konflikt roku wydania;
- podejrzany zakres stron;
- DOI wpisany jako pełny URL i osobno URL;
- duplikaty.

Kontrola generuje:
- błędy;
- ostrzeżenia;
- sugestie;
- informacje.

7.7. Duplikaty

Porównywane cechy:
- DOI po normalizacji;
- ISBN po normalizacji;
- PMID;
- identyczny URL po normalizacji;
- tytuł;
- autorzy;
- rok;
- czasopismo;
- tom;
- strony.

Poziomy:
- pewny duplikat;
- prawdopodobny duplikat;
- możliwy duplikat.

Scalanie:
- podgląd dwóch rekordów;
- wybór wartości pole po polu;
- preferowanie danych ręcznych lub z API;
- zachowanie tagów i notatek;
- zapis rekordu źródłowego w historii;
- cofnięcie w bieżącej sesji.

7.8. Bibliografia adnotowana

- adnotacja opisowa;
- adnotacja oceniająca;
- adnotacja refleksyjna;
- własny szablon;
- limit lub licznik słów;
- wyświetlanie adnotacji pod wpisem;
- eksport DOCX, RTF, HTML i TXT;
- oddzielne style adnotacji niezależne od CSL.

7.9. Konwerter stylu

- wybór źródłowego stylu wyłącznie informacyjnie;
- wybór docelowego stylu;
- podgląd różnic;
- brak modyfikacji danych bibliograficznych;
- wygenerowanie nowego wyniku;
- zachowanie oryginalnego stylu w historii projektu;
- możliwość porównania dwóch lub trzech stylów obok siebie.

======================================================================
8. RĘCZNE DODAWANIE ŹRÓDEŁ
======================================================================

8.1. Formularz adaptacyjny

Formularz pokazuje tylko pola istotne dla typu źródła.

Sekcje:
- podstawowe;
- autorzy i współtwórcy;
- publikacja;
- identyfikatory;
- dostęp online;
- wydarzenie;
- archiwum;
- dane prawne;
- dane techniczne;
- notatki;
- pola zaawansowane.

8.2. Tryby formularza

- prosty;
- pełny;
- surowy CSL-JSON.

8.3. Autorzy

- dodawanie wielu osób;
- przeciąganie kolejności;
- osoba lub instytucja;
- wklejenie listy autorów;
- rozpoznawanie „Nazwisko, Imię”;
- rozpoznawanie „Imię Nazwisko”;
- brak automatycznej zmiany bez potwierdzenia;
- ORCID;
- zachowanie znaków diakrytycznych;
- wieloczłonowe nazwiska;
- particle;
- suffix.

8.4. Tytuły

- tytuł;
- podtytuł;
- krótki tytuł;
- tytuł kontenera;
- krótki tytuł czasopisma;
- oryginalny tytuł;
- tłumaczony tytuł;
- ochrona wielkich liter w BibTeX;
- walidacja podejrzanego ALL CAPS.

8.5. Identyfikatory

- DOI;
- ISBN-10;
- ISBN-13;
- ISSN;
- eISSN;
- PMID;
- PMCID;
- arXiv ID;
- patent number;
- standard number;
- report number;
- URL;
- URN;
- Handle;
- ORCID.

8.6. Podgląd zmian

Każda automatyczna korekta:
- pokazuje wartość przed;
- pokazuje wartość po;
- wymaga potwierdzenia dla zmian merytorycznych;
- pozwala cofnąć.

======================================================================
9. POBIERANIE METADANYCH
======================================================================

9.1. Zasada prywatności

Wyszukiwanie zewnętrzne jest opcjonalne.

Przed pierwszym użyciem wyświetlić:
- nazwa usługi;
- co zostanie wysłane;
- że zapytanie trafi do zewnętrznego dostawcy;
- link do polityki dostawcy;
- przycisk „Pobierz dane”;
- przycisk „Wpiszę ręcznie”.

Nie wysyłać:
- całej bibliografii;
- tytułu projektu;
- notatek użytkownika;
- adnotacji;
- tagów;
- danych z innych rekordów.

9.2. DOI

Kolejność:
1. normalizacja DOI;
2. Crossref REST API;
3. DataCite REST API jako fallback;
4. ręczne dane.

Crossref:
- pojedynczy request;
- public pool;
- bez udawania polite pool bez prawidłowego mailto;
- limit aplikacji niższy niż limit dostawcy;
- maksymalnie jedno równoległe żądanie;
- cache lokalny;
- exponential backoff dla 429 i 5xx;
- respektowanie Retry-After;
- timeout;
- anulowanie.

DataCite:
- fallback dla danych, oprogramowania, repozytoriów i rekordów nieobecnych
  w Crossref;
- mapowanie JSON:API do CSL-JSON;
- źródło danych pokazane użytkownikowi.

9.3. ISBN

Źródło:
- Open Library Search API lub Read API.

Zasady:
- wysłanie wyłącznie ISBN;
- pokazanie listy możliwych wydań;
- niewybieranie automatycznie wydania tylko na podstawie podobnego tytułu;
- informacja, że katalog jest otwarty i dane mogą wymagać korekty;
- brak automatycznego pobierania okładek, jeśli nie jest potrzebne;
- brak przechowywania okładek.

9.4. Wyszukiwanie po tytule

Opcjonalne:
- Crossref query bibliographic;
- maksymalnie 5 wyników;
- wymagane ręczne zatwierdzenie;
- pokazanie DOI, autorów, roku, czasopisma i dopasowania;
- brak automatycznego wyboru pierwszego wyniku.

9.5. URL

Wersja 1.0 nie może obiecywać uniwersalnego pobierania metadanych dowolnej
strony.

Powód:
- CORS;
- zabezpieczenia stron;
- treści generowane JavaScript;
- logowanie;
- paywalle;
- zmienny HTML;
- prywatność.

Dozwolony zakres:
- próba bezpośredniego pobrania tylko po kliknięciu;
- wyłącznie gdy serwer docelowy pozwala na CORS;
- odczyt standardowych meta i JSON-LD;
- szybki timeout;
- brak własnego proxy;
- ręczny formularz jako zawsze dostępny fallback;
- możliwość wklejenia tytułu, autora i daty.

9.6. PMID

Funkcja opcjonalna wersji 1.0:
- lookup przez oficjalne NCBI E-utilities;
- tylko jeśli CORS, limit i warunki użycia zostały potwierdzone;
- bez klucza przy niskim limicie;
- throttle;
- fallback ręczny.

Jeżeli nie zostanie przetestowane:
- pole PMID pozostaje;
- nie reklamować automatycznego pobierania.

9.7. Cache

- cache tylko po świadomym użyciu lookup;
- IndexedDB;
- klucz: typ identyfikatora + znormalizowana wartość;
- maksymalnie 30 dni;
- użytkownik może wyczyścić cache;
- cache nie zawiera notatek użytkownika;
- response jest mapowany i sanityzowany.

======================================================================
10. IMPORT
======================================================================

10.1. Format BibTeX

Obsługa:
- .bib;
- @article;
- @book;
- @inbook;
- @incollection;
- @inproceedings;
- @proceedings;
- @phdthesis;
- @mastersthesis;
- @techreport;
- @manual;
- @misc;
- @online;
- @software;
- @dataset;
- @patent;
- popularne wpisy BibLaTeX.

Zasady:
- zachować citekey;
- chronione wielkie litery;
- LaTeX accents;
- makra string w obsługiwanym zakresie;
- crossref;
- month;
- pages;
- DOI;
- URL;
- urldate;
- nieznane pola zachować w originalImport/custom;
- raport mapowania.

10.2. RIS

- .ris;
- wielowierszowe pola;
- wiele autorów;
- mapowanie typów;
- zachowanie nieznanych tagów;
- ostrzeżenie o utracie semantyki;
- raport.

10.3. CSL-JSON

- walidacja schematu;
- pojedynczy obiekt lub tablica;
- generowanie ID, jeśli brak;
- zachowanie ID importu jako legacyId;
- sanityzacja HTML;
- raport nieznanych pól.

10.4. CSV i TSV

- kreator mapowania kolumn;
- podgląd pierwszych wierszy;
- profile mapowania;
- autorzy rozdzielani wybranym separatorem;
- data;
- typ źródła;
- DOI;
- tytuł;
- czasopismo;
- eksport profilu mapowania.

10.5. EndNote XML

Opcjonalnie:
- import;
- tylko po testach;
- brak eksportu w wersji 1.0, jeśli mapowanie nie jest kompletne.

10.6. TXT

- wklejenie DOI po jednym w linii;
- wklejenie ISBN po jednym w linii;
- kolejka opcjonalnych lookupów;
- limit;
- ręczne potwierdzenie użycia zewnętrznego API.

10.7. Bezpieczeństwo importu

- limit rozmiaru;
- limit rekordów;
- limit długości pola;
- limit zagnieżdżenia JSON/XML;
- brak encji zewnętrznych;
- brak wykonywania kodu;
- parser w Workerze;
- możliwość anulowania;
- raport błędnych rekordów.

10.8. Limity

Domyślne:
- 20 MB pliku importu;
- 10 000 rekordów maksymalnie;
- 1000 rekordów zalecane w interfejsie;
- ostrzeżenie o wydajności powyżej 2000;
- długość pojedynczego pola tekstowego 100 000 znaków;
- adnotacja 200 000 znaków;
- liczba autorów 1000 na rekord, z ostrzeżeniem.

======================================================================
11. EKSPORT
======================================================================

11.1. Sformatowany wynik

- kopiuj tekst;
- kopiuj rich text HTML;
- TXT;
- HTML;
- RTF;
- DOCX;
- PDF przez zoptymalizowany wydruk;
- Markdown.

11.2. Dane bibliograficzne

- CSL-JSON;
- BibTeX;
- BibLaTeX w obsługiwanym zakresie;
- RIS;
- CSV;
- TSV;
- Cytuj Project JSON.

11.3. DOCX

Eksport:
- prawdziwy tekst;
- kursywy;
- pogrubienia;
- indeksy w obsługiwanym zakresie;
- wcięcie wiszące;
- rozmiar strony;
- marginesy;
- odstępy;
- nagłówek bibliografii;
- bibliografia adnotowana;
- seria przypisów jako lista, nie automatyczne osadzenie w cudzym dokumencie.

Wersja 1.0 nie obiecuje:
- wstawienia aktywnych pól cytowań do istniejącego DOCX;
- wtyczki Word;
- automatycznego śledzenia cytowań w tekście pracy.

11.4. RTF

- format kompatybilny z edytorami tekstu;
- prawidłowe Unicode;
- kursywa;
- wcięcia;
- testy w Word, LibreOffice i WordPad, jeśli dostępny.

11.5. HTML

- semantyczna lista;
- poprawne <cite>;
- brak skryptów;
- klasy CSS;
- opcja inline styles;
- sanityzacja;
- kopiowanie do Gmail/Word z ograniczeniami.

11.6. BibTeX i RIS

- raport pól, których nie można odwzorować;
- zachowanie kluczy;
- stabilne generowanie citekey;
- możliwość ustawienia wzoru citekey;
- wykrywanie kolizji;
- UTF-8;
- opcjonalne LaTeX escapes.

11.7. PDF

Preferowane:
- druk CSS;
- wektorowy tekst;
- A4 i Letter;
- nie generować obrazu bibliografii;
- nie ładować ciężkiej biblioteki PDF, jeśli druk przeglądarki wystarcza.

11.8. Nazwy plików

PL:
- bibliografia-[nazwa-projektu].docx;
- cytowania-[nazwa-projektu].txt;
- projekt-[nazwa].cytuj.json.

EN:
- bibliography-[project-name].docx;
- citations-[project-name].txt;
- project-[name].cytuj.json.

Sanityzacja:
- brak ścieżek;
- brak niebezpiecznych znaków;
- limit długości;
- stabilne rozszerzenie.

======================================================================
12. LOKALNY ZAPIS
======================================================================

12.1. Zasada

Aplikacja nie zapisuje prywatnej bibliografii trwale bez świadomego wyboru.

Tryby:
- sesja bez zapisu;
- zapisz projekt lokalnie;
- importuj projekt;
- pobierz kopię projektu.

12.2. IndexedDB

Przechowywane po zgodzie użytkownika:
- projekty;
- źródła;
- cytowania;
- ustawienia projektu;
- cache lookup;
- wersje migracji.

Nie przechowywać:
- danych w analityce;
- kopii cudzych stron;
- pełnych tekstów publikacji;
- załączników PDF;
- plików DOCX pracy użytkownika;
- reklam.

12.3. LocalStorage

Tylko:
- język;
- motyw;
- ostatni wybrany styl;
- preferencje interfejsu;
- zgoda na lokalny zapis;
- cache wspólnej stopki;
- ustawienia dostępności.

12.4. Kopie zapasowe

- przypomnienie o eksporcie;
- pobranie .cytuj.json;
- opcjonalna automatyczna lokalna kopia w IndexedDB tylko po włączeniu;
- brak chmury;
- brak synchronizacji między urządzeniami.

12.5. Usuwanie

- usuń projekt;
- usuń wszystkie projekty;
- wyczyść cache lookup;
- wyczyść ustawienia;
- pełne „Wyczyść dane Cytuj na tym urządzeniu”;
- potwierdzenie;
- raport operacji.

======================================================================
13. PODSTRONY NARZĘDZIOWE
======================================================================

13.1. Strona główna

PL:
/

EN:
/en/

Funkcje:
- szybki generator;
- wybór stylu;
- wybór źródła;
- rozpoczęcie projektu;
- import;
- popularne narzędzia;
- wyjaśnienie lokalnego działania;
- poradniki;
- FAQ;
- stopka sieci.

13.2. Narzędzia PL i EN

1.
PL: /generator-bibliografii/
EN: /en/bibliography-generator/

2.
PL: /generator-cytowan/
EN: /en/citation-generator/

3.
PL: /generator-przypisow/
EN: /en/footnote-generator/

4.
PL: /generator-cytowan-apa/
EN: /en/apa-citation-generator/

5.
PL: /generator-cytowan-mla/
EN: /en/mla-citation-generator/

6.
PL: /generator-cytowan-chicago/
EN: /en/chicago-citation-generator/

7.
PL: /generator-bibliografii-iso-690/
EN: /en/iso-690-bibliography-generator/

8.
PL: /generator-cytowan-ieee/
EN: /en/ieee-citation-generator/

9.
PL: /generator-cytowan-vancouver/
EN: /en/vancouver-citation-generator/

10.
PL: /generator-cytowan-harvard/
EN: /en/harvard-citation-generator/

11.
PL: /generator-przypisow-oscola/
EN: /en/oscola-footnote-generator/

12.
PL: /doi-na-cytowanie/
EN: /en/doi-to-citation/

13.
PL: /isbn-na-cytowanie/
EN: /en/isbn-to-citation/

14.
PL: /bibtex-na-bibliografie/
EN: /en/bibtex-to-bibliography/

15.
PL: /ris-na-bibliografie/
EN: /en/ris-to-bibliography/

16.
PL: /csl-json-na-bibliografie/
EN: /en/csl-json-to-bibliography/

17.
PL: /konwerter-bibliografii/
EN: /en/bibliography-converter/

18.
PL: /sprawdz-bibliografie/
EN: /en/bibliography-checker/

19.
PL: /usun-duplikaty-z-bibliografii/
EN: /en/remove-bibliography-duplicates/

20.
PL: /bibliografia-adnotowana/
EN: /en/annotated-bibliography-generator/

21.
PL: /cytowanie-ksiazki/
EN: /en/cite-a-book/

22.
PL: /cytowanie-rozdzialu-ksiazki/
EN: /en/cite-a-book-chapter/

23.
PL: /cytowanie-artykulu-naukowego/
EN: /en/cite-a-journal-article/

24.
PL: /cytowanie-strony-internetowej/
EN: /en/cite-a-website/

25.
PL: /cytowanie-filmu-youtube/
EN: /en/cite-a-youtube-video/

26.
PL: /cytowanie-podcastu/
EN: /en/cite-a-podcast/

27.
PL: /cytowanie-pracy-dyplomowej/
EN: /en/cite-a-thesis/

28.
PL: /cytowanie-raportu/
EN: /en/cite-a-report/

29.
PL: /cytowanie-zbioru-danych/
EN: /en/cite-a-dataset/

30.
PL: /cytowanie-oprogramowania/
EN: /en/cite-software/

31.
PL: /cytowanie-chatgpt-i-ai/
EN: /en/cite-chatgpt-and-ai/

32.
PL: /cytowanie-obrazu/
EN: /en/cite-an-image/

33.
PL: /cytowanie-filmu/
EN: /en/cite-a-film/

34.
PL: /cytowanie-aktu-prawnego/
EN: /en/cite-legislation/

35.
PL: /cytowanie-bez-autora/
EN: /en/cite-a-source-without-an-author/

36.
PL: /cytowanie-bez-daty/
EN: /en/cite-a-source-without-a-date/

37.
PL: /cytowanie-w-tekscie/
EN: /en/in-text-citation-generator/

38.
PL: /cytowanie-narracyjne/
EN: /en/narrative-citation-generator/

39.
PL: /porownaj-style-cytowan/
EN: /en/compare-citation-styles/

40.
PL: /menedzer-bibliografii/
EN: /en/bibliography-manager/

13.3. Zasada wartości podstron

Każda podstrona:
- uruchamia właściwy preset;
- ma odpowiedni formularz;
- ma podgląd wyniku;
- ma konkretne FAQ;
- ma konkretne ograniczenia;
- nie jest kopią z wymienionym tylko jednym słowem;
- ma przykład;
- linkuje do powiązanych funkcji.

======================================================================
14. ARCHITEKTURA INFORMACJI I INTERFEJS
======================================================================

14.1. Nawigacja główna

PL:
- Generator;
- Style;
- Typy źródeł;
- Bibliografia;
- Import i eksport;
- Poradniki;
- O projekcie;
- język;
- motyw.

EN:
- Generator;
- Styles;
- Source Types;
- Bibliography;
- Import & Export;
- Guides;
- About;
- language;
- theme.

14.2. Strona główna

Sekcje:
1. Header.
2. Hero.
3. Szybki generator.
4. Pasek zaufania.
5. Popularne style.
6. Popularne źródła.
7. Jak działa.
8. Menedżer bibliografii.
9. Import i eksport.
10. Kontrola jakości.
11. AdSense.
12. Poradniki.
13. FAQ.
14. Projekty Podziel.pl.
15. Stopka.

14.3. Układ aplikacji desktop

Lewy panel:
- projekty;
- źródła;
- filtry;
- tagi.

Środek:
- lista lub formularz;
- edycja;
- import;
- kontrola.

Prawy panel:
- podgląd cytowania;
- podgląd bibliografii;
- błędy i ostrzeżenia;
- akcje kopiowania.

14.4. Mobile

- dolna nawigacja;
- oddzielne widoki:
  - źródła;
  - edycja;
  - wynik;
  - projekt;
- brak trzech kolumn;
- sticky action bar bez zasłaniania reklamy;
- duże przyciski;
- formularz sekcjami;
- podgląd wyników w karcie.

14.5. Styl wizualny

Charakter:
- akademicki, ale nowoczesny;
- jasny;
- profesjonalny;
- bez przesadnie „szkolnej” estetyki;
- bez ikon czapki absolwenta jako motywu dominującego.

Proponowana kolorystyka:
- głęboki granat;
- jasny błękit;
- akcent fioletowy lub turkusowy;
- bursztyn dla ostrzeżeń;
- czerwony dla błędów;
- neutralne tła.

Tryby:
- jasny;
- ciemny;
- automatyczny.

14.6. Wynik

Wynik musi zachowywać:
- kursywę;
- znaki specjalne;
- cudzysłowy;
- indeksy;
- wcięcia;
- Unicode;
- linki DOI jako opcję;
- semantyczne HTML.

14.7. Dostępność

- WCAG 2.2 AA jako cel;
- pełna klawiatura;
- widoczny focus;
- poprawne label;
- fieldset i legend;
- aria-live;
- komunikaty nie tylko kolorem;
- min. 44 × 44 px;
- 200% zoom;
- reduced motion;
- screen reader;
- poprawna kolejność DOM;
- skip links;
- dialogi z zarządzaniem focusem.

======================================================================
15. ARCHITEKTURA TECHNICZNA
======================================================================

15.1. Stos

Rekomendowany:
- Astro;
- eksport statyczny;
- TypeScript strict;
- lekkie komponenty interaktywne;
- Web Workery;
- IndexedDB;
- Vite;
- Vitest;
- Playwright;
- ESLint;
- Prettier;
- własne audyty HTML.

15.2. Silnik cytowań

Wariant bazowy:
- CSL-JSON;
- citeproc-js lub inny zgodny procesor CSL po analizie licencji;
- lokalne pliki CSL;
- lokalne locale;
- Citation.js do importu i konwersji, jeżeli raport licencji to potwierdzi.

Ważna decyzja licencyjna:
- citeproc-js jest dostępny na warunkach CPAL/AGPL;
- przed użyciem należy przeprowadzić finalny audyt licencji;
- jeśli zostanie użyty, aplikacja musi zapewnić wymagane noty prawne
  i dostęp do odpowiadającego kodu źródłowego;
- strona „Licencje i kod źródłowy” ma być widoczna;
- paczka źródłowa ma być publicznie dostępna;
- modyfikacje procesora muszą być udostępnione zgodnie z licencją;
- alternatywa może zostać wybrana tylko po potwierdzeniu pełnej zgodności CSL.

Nie wolno ukrywać obowiązków licencyjnych.

15.3. Parsery

- BibTeX/BibLaTeX;
- RIS;
- CSL-JSON;
- CSV/TSV;
- opcjonalnie EndNote XML.

Parsery:
- nie zależą od DOM;
- działają w Workerze;
- zwracają dane i kody błędów;
- nie zwracają gotowych polskich komunikatów.

15.4. Wspólny kontrakt

interface BibliographyAdapter {
  id: string;
  formats: string[];
  detect(input): Promise<DetectionResult>;
  parse(input, options, signal): Promise<ImportResult>;
  serialize(records, options, signal): Promise<ExportResult>;
  validate(records): ValidationIssue[];
}

interface CitationEngine {
  loadStyle(styleId, locale): Promise<void>;
  formatBibliography(items, options): Promise<FormattedBibliography>;
  formatCitation(cluster, context): Promise<FormattedCitation>;
  formatNote(cluster, context): Promise<FormattedNote>;
}

15.5. Moduły

- project-store;
- source-store;
- style-registry;
- locale-registry;
- citation-engine;
- import-engine;
- export-engine;
- validation-engine;
- duplicate-engine;
- lookup-engine;
- normalization-engine;
- report-engine;
- clipboard-engine;
- document-export;
- history-engine;
- i18n;
- consent;
- analytics-events;
- footer-network.

15.6. Struktura repozytorium

/
├── astro.config.mjs
├── package.json
├── package-lock.json
├── tsconfig.json
├── eslint.config.js
├── public/
│   ├── ads.txt
│   ├── robots.txt
│   ├── sitemap.xml
│   ├── site.webmanifest
│   ├── service-worker.js
│   ├── offline.html
│   ├── 404.html
│   ├── .htaccess
│   ├── icons/
│   ├── styles-csl/
│   ├── locales-csl/
│   ├── licenses/
│   └── assets/data/projects-fallback.json
├── src/
│   ├── components/
│   ├── layouts/
│   ├── pages/
│   ├── app/
│   │   ├── project/
│   │   ├── sources/
│   │   ├── citations/
│   │   ├── bibliography/
│   │   ├── validation/
│   │   ├── duplicates/
│   │   ├── import/
│   │   ├── export/
│   │   └── lookup/
│   ├── core/
│   │   ├── csl/
│   │   ├── model/
│   │   ├── normalize/
│   │   ├── validate/
│   │   ├── identifiers/
│   │   ├── duplicate/
│   │   ├── storage/
│   │   ├── reports/
│   │   └── security/
│   ├── adapters/
│   │   ├── bibtex/
│   │   ├── ris/
│   │   ├── csl-json/
│   │   ├── csv/
│   │   └── endnote/
│   ├── services/
│   │   ├── crossref.ts
│   │   ├── datacite.ts
│   │   ├── openlibrary.ts
│   │   └── ncbi.ts
│   ├── workers/
│   ├── i18n/
│   │   ├── pl.json
│   │   ├── en.json
│   │   └── routes.ts
│   ├── content/
│   │   ├── tools/
│   │   ├── guides/
│   │   └── seo/
│   ├── data/
│   │   ├── language-map.json
│   │   ├── tool-routes.json
│   │   ├── source-types.json
│   │   ├── style-manifest.json
│   │   ├── field-definitions.json
│   │   └── projects-fallback.json
│   ├── styles/
│   └── utils/
├── tests/
│   ├── fixtures/
│   ├── unit/
│   ├── integration/
│   ├── browser/
│   ├── regression/
│   ├── accessibility/
│   └── audits/
└── scripts/
    ├── fetch-csl-styles.mjs
    ├── validate-csl.mjs
    ├── build-style-manifest.mjs
    ├── audit-html.mjs
    ├── audit-links.mjs
    ├── audit-i18n.mjs
    ├── audit-adsense.mjs
    ├── build-sitemap.mjs
    └── create-fixtures.mjs

15.7. Ładowanie

- generator podstawowy ładuje silnik;
- konkretne style dynamicznie;
- parser BibTeX po wyborze importu;
- DOCX po wyborze eksportu;
- lookup API po kliknięciu;
- poradniki bez ciężkiego JavaScriptu;
- strona główna nie ładuje wszystkich modułów.

15.8. Wydajność

Cele:
- LCP < 2,5 s na typowym 4G;
- CLS < 0,1;
- INP < 200 ms w zwykłych operacjach;
- brak blokady UI przy imporcie;
- przetwarzanie 1000 rekordów w Workerze;
- wirtualizacja listy powyżej 300 rekordów;
- debounce podglądu;
- cache stylów;
- indeks wyszukiwania lokalny.

======================================================================
16. LICENCJE
======================================================================

16.1. CSL styles i locales

- pliki CSL i locale mogą podlegać CC BY-SA 3.0;
- zachować autorów i contributorów w metadanych;
- dodać widoczną atrybucję CSL Project;
- zachować tekst licencji;
- raport licencji musi wymienić każdy bundlowany styl;
- modyfikowane style muszą być oznaczone;
- zmodyfikowane style udostępnić na właściwych warunkach.

16.2. Citation.js

- sprawdzić aktualną wersję;
- sprawdzić MIT;
- sprawdzić zależności runtime;
- nie polegać wyłącznie na etykiecie pakietu głównego;
- raportować plugin CSL i procesor.

16.3. citeproc-js

- audyt CPAL/AGPL;
- źródło;
- noty;
- link do kodu;
- obowiązki dla interfejsu sieciowego;
- brak zamkniętej dystrybucji bez zgodności.

16.4. Fonty

- lokalne;
- licencja pozwalająca na web embedding;
- nie udostępniać osobno użytkownikowi;
- raport licencji;
- fallback systemowy.

16.5. Dokument końcowy

Raport_Licencji_Cytuj.txt ma zawierać:
- nazwa;
- wersja;
- autor;
- licencja;
- źródło;
- użycie;
- modyfikacje;
- wymagania atrybucji;
- sposób spełnienia;
- pliki licencji.

======================================================================
17. WIELOJĘZYCZNOŚĆ
======================================================================

17.1. Języki

- PL bez prefiksu;
- EN w /en/.

17.2. Oddzielenie języka

Należy rozróżnić:
- język interfejsu;
- język cytowania;
- język źródła;
- locale stylu;
- język eksportowanego dokumentu.

17.3. Wymagania

- pl.json;
- en.json;
- language-map.json;
- naturalne tłumaczenia;
- osobne title;
- osobne descriptions;
- lang;
- canonical;
- hreflang pl;
- hreflang en;
- hreflang x-default;
- przełącznik do odpowiednika;
- osobne FAQ;
- osobne poradniki;
- osobne komunikaty błędów.

17.4. Nazwy pól

Nazwy pól są tłumaczone w UI.
Dane CSL zachowują standardowe angielskie klucze.

17.5. Locale CSL

- pl-PL;
- en-US;
- en-GB, jeśli styl wymaga;
- przyszłe locale ładowane dynamicznie;
- zachowanie oryginalnych plików locale;
- manifest wersji.

======================================================================
18. SEO
======================================================================

18.1. Każda publiczna strona

- unikalny title;
- unikalny meta description;
- canonical;
- Open Graph;
- Twitter Card;
- jeden H1;
- breadcrumbs;
- instrukcja;
- ograniczenia;
- FAQ;
- powiązane narzędzia;
- powiązane poradniki;
- dane strukturalne;
- sitemap;
- odpowiednik językowy.

18.2. Dane strukturalne

Narzędzia:
- WebApplication lub SoftwareApplication;
- BreadcrumbList.

Poradniki:
- Article;
- BreadcrumbList.

Strona główna:
- WebSite;
- ItemList dla widocznych narzędzi.

Nie dodawać:
- fikcyjnych ocen;
- fałszywych recenzji;
- nieprawdziwych statystyk;
- meta keywords;
- FAQ ukrytego przed użytkownikiem.

18.3. Title przykładowe PL

- Generator bibliografii online — APA, MLA, ISO 690 i więcej
- Generator cytowań APA 7 — cytowanie i bibliografia
- Generator przypisów — Chicago, ISO 690 i OSCOLA
- DOI na cytowanie — pobierz dane publikacji
- BibTeX na bibliografię — import i formatowanie lokalne
- Jak cytować ChatGPT i narzędzia AI?
- Cytowanie strony internetowej — generator i przykłady

18.4. Title przykładowe EN

- Free Bibliography Generator — APA, MLA, Chicago and More
- APA 7 Citation Generator — In-Text Citations and References
- Footnote Generator — Chicago, ISO 690 and OSCOLA
- DOI to Citation — Retrieve Publication Metadata
- BibTeX to Bibliography — Import and Format Locally
- How to Cite ChatGPT and AI Tools
- Website Citation Generator — Examples and Templates

18.5. Strony wyników

- brak indeksowalnych wyników użytkownika;
- brak danych w URL;
- brak publicznych linków do bibliografii;
- noindex dla technicznych podglądów;
- wyniki pozostają lokalne.

18.6. Sitemap

- wszystkie publiczne strony PL i EN;
- aktualne lastmod;
- bez offline;
- bez 404;
- bez danych użytkownika;
- bez parametrów.

======================================================================
19. PORADNIKI
======================================================================

19.1. Minimum

- co najmniej 35 poradników PL;
- co najmniej 35 poradników EN;
- naturalne odpowiedniki;
- 900–1800 słów zależnie od tematu;
- przykłady;
- typowe błędy;
- link do narzędzia;
- data ostatniego przeglądu przy zmiennych wytycznych.

19.2. Lista PL

1. Co to jest cytowanie?
2. Bibliografia, przypis i cytowanie w tekście — różnice.
3. Jak stworzyć bibliografię do pracy?
4. Jak cytować książkę?
5. Jak cytować rozdział książki?
6. Jak cytować artykuł naukowy?
7. Jak cytować stronę internetową?
8. Jak cytować stronę bez autora?
9. Jak cytować źródło bez daty?
10. Jak cytować film z YouTube?
11. Jak cytować podcast?
12. Jak cytować film?
13. Jak cytować obraz lub fotografię?
14. Jak cytować raport?
15. Jak cytować pracę dyplomową?
16. Jak cytować zbiór danych?
17. Jak cytować oprogramowanie?
18. Jak cytować repozytorium GitHub?
19. Jak cytować ChatGPT?
20. Jak cytować obraz wygenerowany przez AI?
21. APA 7 — najważniejsze zasady.
22. MLA 9 — najważniejsze zasady.
23. Chicago 18 Author-Date.
24. Chicago 18 Notes and Bibliography.
25. ISO 690:2021 — przewodnik.
26. IEEE — cytowania numeryczne.
27. Vancouver / NLM — przewodnik.
28. Harvard — dlaczego istnieje wiele wariantów?
29. OSCOLA — podstawy.
30. DOI — co to jest i jak go używać?
31. ISBN — co identyfikuje?
32. BibTeX — podstawy.
33. RIS — import i eksport bibliografii.
34. CSL-JSON — czym jest?
35. Jak przenieść bibliografię z Zotero?
36. Jak usunąć duplikaty z bibliografii?
37. Jak sprawdzić bibliografię przed oddaniem pracy?
38. Jak tworzyć bibliografię adnotowaną?
39. Kiedy potrzebna jest data dostępu?
40. DOI czy URL — co podać?
41. Jak cytować wielu autorów?
42. Autor instytucjonalny w bibliografii.
43. Cytowanie narracyjne i parentetyczne.
44. Jak podać numer strony w cytowaniu?
45. Jak cytować źródło wtórne?
46. Jak cytować kilka źródeł naraz?
47. Jak sortować bibliografię?
48. Jak zmienić styl całej bibliografii?
49. Najczęstsze błędy generatorów cytowań.
50. Dlaczego automatyczne metadane trzeba sprawdzić?

19.3. Lista EN

Naturalne odpowiedniki:
- What Is a Citation?
- Bibliography vs Reference List vs Footnote
- How to Cite a Book
- How to Cite a Journal Article
- How to Cite a Website
- How to Cite a Source with No Author
- How to Cite a Source with No Date
- How to Cite a YouTube Video
- How to Cite a Podcast
- How to Cite a Dataset
- How to Cite Software
- How to Cite ChatGPT
- APA 7 Guide
- MLA 9 Guide
- Chicago 18 Author-Date Guide
- Chicago 18 Notes and Bibliography Guide
- ISO 690:2021 Guide
- IEEE Citation Guide
- Vancouver / NLM Guide
- Harvard Citation Variants
- DOI vs URL
- BibTeX Guide
- RIS Guide
- CSL-JSON Guide
- How to Remove Duplicate References
- How to Check a Bibliography
- How to Write an Annotated Bibliography
- When to Include an Access Date
- How to Cite Multiple Authors
- Narrative vs Parenthetical Citations
- How to Add Page Numbers to Citations
- How to Cite Secondary Sources
- How to Change Citation Style
- Common Citation Generator Errors
- Why Imported Metadata Must Be Checked

======================================================================
20. PRYWATNOŚĆ I BEZPIECZEŃSTWO
======================================================================

20.1. Prywatność

Cytuj nie wysyła do własnego serwera:
- bibliografii;
- tytułów źródeł;
- nazw autorów;
- notatek;
- adnotacji;
- promptów AI;
- nazw projektów;
- importowanych plików.

20.2. Zewnętrzne API

Przy lookup wysyłany jest wyłącznie:
- DOI;
- ISBN;
- PMID;
- zapytanie bibliograficzne po wyraźnym kliknięciu;
- URL po wyraźnej próbie pobrania.

20.3. Analityka

Dozwolone:
- otwarcie strony;
- wybranie ogólnego stylu;
- wybranie ogólnego typu źródła;
- rozpoczęcie importu według formatu;
- kod sukcesu lub błędu bez danych;
- eksport według formatu.

Niedozwolone:
- tytuł;
- autor;
- DOI;
- ISBN;
- URL;
- nazwa pliku;
- treść notatek;
- prompt;
- citekey;
- wartość wyszukiwania;
- treść błędu zawierająca dane.

20.4. Sanityzacja

- textContent;
- whitelist bezpiecznych znaczników wyniku CSL;
- brak raw HTML z importu;
- blokada script;
- blokada event handlers;
- blokada javascript:;
- normalizacja URL;
- bezpieczny clipboard;
- bezpieczny DOCX/RTF.

20.5. CSP

- brak eval;
- brak unsafe-eval;
- minimalizacja unsafe-inline;
- własne skrypty;
- Worker;
- AdSense;
- Google CMP;
- connect-src tylko dla zatwierdzonych API;
- img-src self data blob i wymagane Google;
- font-src self;
- object-src none;
- base-uri self;
- form-action self;
- frame-ancestors zgodnie z potrzebą.

20.6. Import złośliwy

- limit JSON;
- brak prototypowego pollution;
- Object.create(null) tam, gdzie potrzebne;
- kontrola kluczy __proto__, constructor, prototype;
- brak XML external entities;
- limit zagnieżdżenia;
- Worker;
- timeout;
- anulowanie;
- brak renderowania HTML importu.

20.7. Strony prawne

PL:
- /polityka-prywatnosci/
- /polityka-cookies/
- /o-projekcie/
- /ustawienia-zgod/
- /licencje-i-kod-zrodlowy/

EN:
- /en/privacy-policy/
- /en/cookie-policy/
- /en/about/
- /en/consent-settings/
- /en/licenses-and-source-code/

Brak:
- kontaktu;
- formularza;
- publicznego e-maila.

======================================================================
21. PWA I OFFLINE
======================================================================

21.1. Offline

Po wcześniejszym otwarciu działają:
- ręczne źródła;
- import;
- formatowanie bundlowanymi stylami;
- bibliografia;
- przypisy;
- walidacja;
- duplikaty;
- eksport podstawowy;
- lokalne projekty;
- poradniki zapisane w cache.

Nie działają offline:
- DOI lookup;
- ISBN lookup;
- wyszukiwanie Crossref;
- inne zewnętrzne API;
- reklamy;
- CMP wymagający sieci.

21.2. Cache

- cache-first dla wersjonowanych assetów;
- style i locale po użyciu;
- offline.html;
- network-first dla projekty.json;
- brak cache danych API bez świadomego lookup;
- brak cache bibliografii w Service Workerze;
- wersjonowanie cache.

21.3. Aktualizacja

- komunikat o nowej wersji;
- użytkownik decyduje o odświeżeniu;
- nie przeładowywać podczas niezapisanej pracy;
- migracja IndexedDB przed zmianą;
- kopia projektu.

======================================================================
22. ADSENSE I CMP
======================================================================

22.1. Zasady

- skrypt raz w head;
- reklamy daleko od formularzy;
- brak reklamy między polem a przyciskiem kopiowania;
- brak reklamy w podglądzie bibliografii;
- brak reklamy przy przycisku eksportu;
- rezerwacja miejsca;
- brak reklamy na offline i 404;
- Google CMP dla EOG;
- własne ustawienia zgód nie udają certyfikowanego CMP.

22.2. Miejsca

Strona główna:
- po „Jak działa”;
- przed poradnikami.

Narzędzie:
- po całym panelu generatora;
- przed treścią instrukcji;
- boczny slot tylko na szerokim ekranie.

Poradnik:
- po wprowadzeniu;
- w połowie;
- przed narzędziami powiązanymi.

22.3. CLS

- min-height;
- responsywne sloty;
- brak przesuwania przycisków;
- test mobile i desktop.

======================================================================
23. WSPÓLNA STOPKA PODZIEL.PL
======================================================================

23.1. Wymagania

- statyczne linki bez JS;
- dynamiczne pobranie:
  https://podziel.pl/projekty.json
- timeout ok. 2 s;
- cache maksymalnie 24 h;
- fallback:
  /assets/data/projects-fallback.json
- wykluczenie Cytuj;
- link:
  https://podziel.pl/projekty/
- EN:
  https://podziel.pl/projekty/en/

23.2. Aktualizacja sieci

Przy realizacji:
- projekty.json;
- /projekty/;
- /projekty/en/;
- fallbacki;
- README;
- status ready_for_deployment;
- status live dopiero po wdrożeniu.

======================================================================
24. DOSTĘPNOŚĆ I UX BŁĘDÓW
======================================================================

24.1. Kody błędów

- IMPORT_FORMAT_UNKNOWN;
- IMPORT_TOO_LARGE;
- IMPORT_PARSE_FAILED;
- IMPORT_PARTIAL;
- RECORD_LIMIT;
- INVALID_CSL_JSON;
- STYLE_LOAD_FAILED;
- STYLE_INVALID;
- LOCALE_LOAD_FAILED;
- FORMAT_FAILED;
- EXPORT_FAILED;
- STORAGE_UNAVAILABLE;
- STORAGE_QUOTA;
- PROJECT_VERSION_NEWER;
- PROJECT_MIGRATION_FAILED;
- LOOKUP_OFFLINE;
- LOOKUP_TIMEOUT;
- LOOKUP_NOT_FOUND;
- LOOKUP_RATE_LIMITED;
- LOOKUP_PROVIDER_ERROR;
- LOOKUP_CANCELLED;
- CLIPBOARD_DENIED;
- DOCX_GENERATION_FAILED;
- DUPLICATE_MERGE_FAILED.

24.2. Komunikaty

- naturalne;
- PL i EN;
- kod techniczny w szczegółach;
- bez danych źródła w logu;
- jasne działanie naprawcze;
- ponów;
- wpisz ręcznie;
- pobierz kopię;
- zgłoś tylko lokalnie nie istnieje, ponieważ nie ma kontaktu.

24.3. Niezapisana praca

- wskaźnik;
- beforeunload;
- eksport projektu;
- lokalny zapis po decyzji;
- brak fałszywego komunikatu „zapisano”, jeśli IndexedDB zawiodło.

======================================================================
25. TESTY
======================================================================

25.1. Testy stylów

Dla każdego stylu:
- książka;
- rozdział;
- artykuł;
- strona;
- brak autora;
- brak daty;
- 1 autor;
- 2 autorów;
- 3+ autorów;
- autor instytucjonalny;
- DOI;
- URL;
- lokator;
- cytowanie wielokrotne;
- bibliografia;
- Unicode;
- PL i EN.

25.2. Złote wyniki

- fixtures z oczekiwanym HTML;
- fixtures z tekstem;
- porównania po aktualizacji stylu;
- świadoma akceptacja różnic;
- raport regresji.

25.3. Oficjalne przykłady

Testy reprezentatywne porównać z:
- APA Style examples;
- MLA Style Center;
- Chicago Citation Quick Guide;
- ISO 690 w zakresie legalnie dostępnych zasad;
- NLM Citing Medicine;
- dokumentacją stylów CSL.

Nie kopiować masowo chronionych treści do produktu.

25.4. Import

BibTeX:
- Unicode;
- LaTeX accents;
- makra;
- crossref;
- duplikaty;
- błędny rekord;
- nieznane pola;
- 10 000 rekordów.

RIS:
- wiele autorów;
- wielowierszowe;
- brak ER;
- nieznane tagi;
- Unicode.

CSL-JSON:
- obiekt;
- tablica;
- błędny JSON;
- proto pollution;
- zbyt głęboki;
- HTML.

CSV:
- separator;
- cudzysłowy;
- newline;
- BOM;
- UTF-8;
- mapowanie.

25.5. Eksport

- poprawny DOCX;
- poprawny RTF;
- HTML bez skryptów;
- BibTeX ponownie importowalny;
- RIS ponownie importowalny;
- JSON zgodny;
- Unicode;
- długie bibliografie;
- nazwy plików.

25.6. Lookup

Crossref:
- poprawny DOI;
- DOI z URL;
- brak;
- 404;
- 429;
- 500;
- timeout;
- anulowanie;
- mapowanie autorów;
- brak autora;
- online-first date;
- print date;
- title array.

DataCite:
- dataset;
- software;
- creator organization;
- related identifiers;
- publisher;
- dates.

Open Library:
- ISBN-10;
- ISBN-13;
- wiele wydań;
- brak;
- niepełne dane.

25.7. Duplikaty

- DOI;
- ISBN;
- różne wielkości liter;
- tytuł z interpunkcją;
- podobny, lecz inny artykuł;
- ten sam tytuł w innym roku;
- merge;
- undo.

25.8. Storage

- IndexedDB;
- quota;
- private mode;
- migracja;
- usunięcie;
- eksport przed migracją;
- nowsza wersja projektu;
- uszkodzony projekt.

25.9. Security

- XSS w tytule;
- XSS w autorze;
- javascript URL;
- złośliwy BibTeX;
- złośliwy RIS;
- proto pollution;
- XML entity;
- ogromne pole;
- ogromna liczba rekordów;
- import anulowany.

25.10. SEO

- title;
- description;
- H1;
- canonical;
- hreflang;
- lang;
- Open Graph;
- breadcrumbs;
- sitemap;
- schema;
- brak meta keywords;
- jeden AdSense;
- brak kontaktu;
- pary PL/EN;
- unikalność.

25.11. Przeglądarki

- Chrome;
- Edge;
- Firefox;
- Safari macOS;
- Safari iOS;
- Chrome Android.

Testy:
- IndexedDB;
- Worker;
- clipboard;
- download;
- print;
- DOCX;
- PWA;
- offline;
- responsive;
- dark mode.

25.12. Uczciwość raportu

Raport rozdziela:
- statyczne;
- jednostkowe;
- integracyjne;
- przeglądarkowe;
- ręczne;
- niewykonane;
- wymagane po HTTPS.

======================================================================
26. KRYTERIA AKCEPTACJI
======================================================================

1. Działa PL i EN.
2. 40 podstron narzędziowych ma rzeczywiste presety.
3. APA 7 działa.
4. MLA 9 działa.
5. Chicago 18 Author-Date działa.
6. Chicago 18 Notes and Bibliography działa.
7. ISO 690:2021 author-date działa.
8. ISO 690:2021 numeric działa.
9. IEEE działa.
10. Vancouver/NLM działa.
11. Co najmniej jeden nazwany wariant Harvard działa.
12. OSCOLA działa w deklarowanym zakresie.
13. Generator pojedynczego cytowania działa.
14. Menedżer bibliografii działa.
15. Cytowania z lokatorami działają.
16. Przypisy działają.
17. Bibliografia działa.
18. Import BibTeX działa.
19. Import RIS działa.
20. Import CSL-JSON działa.
21. Import CSV/TSV działa.
22. Eksport CSL-JSON działa.
23. Eksport BibTeX działa.
24. Eksport RIS działa.
25. Eksport DOCX działa.
26. Eksport HTML/TXT/RTF działa.
27. Kontrola jakości działa.
28. Duplikaty działają.
29. Bibliografia adnotowana działa.
30. Projekty lokalne działają po świadomym zapisie.
31. Projekt JSON działa.
32. DOI lookup działa lub jest uczciwie wyłączony, jeśli CORS/API blokuje.
33. ISBN lookup działa lub jest uczciwie wyłączony.
34. Offline działa dla funkcji lokalnych.
35. Nie ma własnego backendu.
36. Dane nie trafiają do analityki.
37. AdSense raz na publicznej stronie.
38. Nie ma kontaktu ani e-maila.
39. SEO kompletne.
40. Sitemap PL/EN.
41. Stopka sieci działa.
42. 35+ poradników na język.
43. Licencje są zgodne.
44. Kod źródłowy jest dostępny, jeśli wymaga tego procesor.
45. PWA działa.
46. Mobile jest użyteczne.
47. Brak krytycznych błędów konsoli.
48. Linki wewnętrzne działają.
49. ZIP nie ma katalogu nadrzędnego.
50. Raport testów jest uczciwy.

======================================================================
27. WDROŻENIE DREAMHOST
======================================================================

27.1. Subdomena

- utworzyć cytuj.podziel.pl;
- katalog domeny;
- HTTPS;
- wymusić HTTPS po certyfikacie;
- usunąć domyślne pliki;
- wgrać zawartość ZIP.

27.2. .htaccess

- HTTPS;
- UTF-8;
- MIME;
- cache;
- CSP;
- security headers;
- Permissions-Policy;
- Referrer-Policy;
- X-Content-Type-Options;
- 404;
- blokada listowania;
- krótszy cache HTML;
- długi cache fingerprinted assets.

27.3. CSP connect-src

Po testach:
- self;
- api.crossref.org;
- api.datacite.org;
- openlibrary.org;
- opcjonalnie eutils.ncbi.nlm.nih.gov;
- domeny Google wymagane przez Ads/CMP.

Nie dodawać *.

27.4. Test po wdrożeniu

- HTTPS;
- PL;
- EN;
- APA;
- ISO 690;
- przypis Chicago;
- import BibTeX;
- eksport DOCX;
- IndexedDB;
- DOI;
- ISBN;
- offline;
- PWA;
- reklama;
- CMP;
- sitemap;
- robots;
- canonical;
- hreflang;
- 404;
- stopka;
- konsola;
- mobile.

======================================================================
28. PLIKI KOŃCOWE
======================================================================

- Cytuj_podziel_PL_EN_AdSense.zip
- Specyfikacja_Cytuj_PL_EN.txt
- Raport_Testow_Cytuj_PL_EN.txt
- Raport_Licencji_Cytuj.txt
- Cytuj_Zrodla_i_Testy.zip
- Podziel_Siec_Projektow_PL_EN_z_Cytuj.zip
- README-WDROZENIE.md
- README-TESTY.md
- README-DODAWANIE-NARZEDZI.md
- README-DODAWANIE-JEZYKA.md
- README-DODAWANIE-STYLU-CSL.md
- README-DODAWANIE-TYPU-ZRODLA.md
- Podglad_Cytuj_Strona_Glowna.png
- Podglad_Cytuj_Generator.png
- Podglad_Cytuj_Menedzer.png
- Podglad_Cytuj_Mobile.png

ZIP produkcyjny bez katalogu nadrzędnego:
- index.html;
- en/index.html;
- assets/;
- ads.txt;
- robots.txt;
- sitemap.xml;
- site.webmanifest;
- service-worker.js;
- offline.html;
- 404.html;
- .htaccess;
- README.

======================================================================
29. ETAPY REALIZACJI
======================================================================

Etap 1 — audyt:
- style;
- API;
- licencje;
- procesor CSL;
- typy źródeł;
- mapa pól.

Etap 2 — fundament:
- Astro;
- TypeScript;
- PL/EN;
- layout;
- SEO;
- PWA;
- stopka;
- strony prawne;
- AdSense.

Etap 3 — model:
- CSL-JSON;
- projekt;
- storage;
- migracje;
- historia;
- formularze.

Etap 4 — silnik:
- style;
- locale;
- bibliografia;
- cytowania;
- przypisy;
- lokatory.

Etap 5 — import:
- BibTeX;
- RIS;
- CSL-JSON;
- CSV;
- raport.

Etap 6 — eksport:
- clipboard;
- HTML;
- TXT;
- RTF;
- DOCX;
- BibTeX;
- RIS;
- project.

Etap 7 — jakość:
- walidacja;
- identyfikatory;
- duplikaty;
- merge;
- adnotacje.

Etap 8 — API:
- Crossref;
- DataCite;
- Open Library;
- opcjonalne NCBI;
- cache;
- rate limit;
- consent.

Etap 9 — podstrony:
- 40 PL;
- 40 EN;
- realne presety;
- FAQ;
- treści.

Etap 10 — poradniki:
- 35–50 PL;
- 35–50 EN;
- linkowanie;
- schema;
- sitemap.

Etap 11 — testy:
- unit;
- integration;
- regression;
- browser;
- mobile;
- a11y;
- security;
- SEO;
- PWA.

Etap 12 — przekazanie:
- build;
- ZIP;
- raporty;
- README;
- źródła;
- podglądy;
- aktualizacja sieci.

======================================================================
30. RYZYKA I OGRANICZENIA
======================================================================

30.1. Niedokładne metadane

Ryzyko:
- API zwraca błędne lub niepełne dane.

Ograniczenie:
- podgląd;
- źródło danych;
- confidence;
- ręczne zatwierdzenie;
- kontrola braków.

30.2. Różnice instytucjonalne

Ryzyko:
- uczelnia stosuje własny wariant.

Ograniczenie:
- dokładna nazwa stylu;
- brak obietnicy uniwersalności;
- możliwość importu własnego CSL w przyszłości;
- poradnik sprawdzania wymagań.

30.3. Licencja procesora

Ryzyko:
- silny copyleft.

Ograniczenie:
- audyt;
- jawny kod źródłowy;
- noty;
- alternatywny procesor;
- brak realizacji bez decyzji licencyjnej.

30.4. API i CORS

Ryzyko:
- zewnętrzna usługa blokuje przeglądarkę.

Ograniczenie:
- funkcja opcjonalna;
- ręczny fallback;
- brak własnego proxy;
- timeout;
- komunikat.

30.5. Harvard

Ryzyko:
- użytkownik oczekuje jednego Harvard.

Ograniczenie:
- wybór wariantu;
- pełna nazwa;
- wyjaśnienie.

30.6. AI

Ryzyko:
- zasady szybko się zmieniają.

Ograniczenie:
- data przeglądu;
- aktualizowane presety;
- manualne pola;
- zastrzeżenie.

30.7. Duże bibliografie

Ryzyko:
- spadek wydajności.

Ograniczenie:
- Worker;
- wirtualizacja;
- limit;
- indeks;
- batch;
- debounce.

30.8. Utrata lokalnych danych

Ryzyko:
- przeglądarka czyści storage.

Ograniczenie:
- eksport;
- przypomnienie;
- brak obietnicy chmury;
- kopia projektu.

======================================================================
31. FUNKCJE POZA WERSJĄ 1.0
======================================================================

- wtyczka Word;
- Google Docs add-on;
- synchronizacja;
- konta;
- praca zespołowa;
- publiczne bibliografie;
- dzielenie linkiem;
- chmura;
- pełne teksty;
- OCR bibliografii;
- skanowanie PDF w poszukiwaniu DOI;
- integracja Zotero API z logowaniem;
- WebDAV;
- dedykowana baza czasopism;
- automatyczne skróty czasopism;
- edytor CSL;
- własne style użytkownika;
- setki stylów czasopism;
- plugin przeglądarkowy;
- bookmarklet;
- obsługa pełnych prac DOCX;
- automatyczne wstawianie aktywnych pól do dokumentu;
- wykrywanie plagiatu;
- prawna gwarancja poprawności;
- płatne API.

======================================================================
32. DECYZJE OBOWIĄZUJĄCE
======================================================================

1. Domena: cytuj.podziel.pl.
2. PL bez prefiksu.
3. EN w /en/.
4. Aplikacja statyczna.
5. Brak własnego backendu.
6. Brak kont.
7. Brak kontaktu.
8. Dane lokalnie.
9. Zewnętrzne API wyłącznie świadomie.
10. CSL-JSON jako model kanoniczny.
11. CSL jako źródło formatowania.
12. APA 7.
13. MLA 9.
14. Chicago 18.
15. ISO 690:2021.
16. IEEE.
17. Vancouver/NLM.
18. Nazwany Harvard.
19. OSCOLA.
20. Import BibTeX, RIS, CSL-JSON i CSV.
21. Eksport DOCX, RTF, HTML, TXT, BibTeX, RIS i JSON.
22. Lokalny projekt po świadomym zapisie.
23. Walidacja.
24. Duplikaty.
25. Bibliografia adnotowana.
26. 40 podstron narzędzi na język.
27. 35+ poradników na język.
28. PWA.
29. AdSense.
30. Google CMP.
31. Stopka Podziel.pl.
32. Pełny audyt licencji.
33. Kod źródłowy, jeśli wymaga tego licencja.
34. Testy regresji stylów.
35. Brak gwarancji 100% poprawności.
36. Status live dopiero po wdrożeniu.

======================================================================
33. ŹRÓDŁA TECHNICZNE DO WERYFIKACJI PRZY REALIZACJI
======================================================================

- APA Style:
  https://apastyle.apa.org/

- MLA Style Center:
  https://style.mla.org/

- Chicago Manual of Style:
  https://www.chicagomanualofstyle.org/

- ISO 690:2021:
  https://www.iso.org/standard/72642.html

- Citation Style Language:
  https://citationstyles.org/

- Oficjalne style CSL:
  https://github.com/citation-style-language/styles

- Oficjalne locale CSL:
  https://github.com/citation-style-language/locales

- CSL schema:
  https://github.com/citation-style-language/schema

- Citation.js:
  https://citation.js.org/
  https://github.com/citation-js/citation-js

- citeproc-js:
  https://github.com/Juris-M/citeproc-js

- Crossref REST API:
  https://www.crossref.org/documentation/retrieve-metadata/rest-api/

- DataCite REST API:
  https://support.datacite.org/docs/api

- Open Library APIs:
  https://openlibrary.org/developers/api

- NLM Citing Medicine:
  https://www.ncbi.nlm.nih.gov/books/NBK7256/

Przed realizacją należy ponownie sprawdzić:
- wersje;
- licencje;
- CORS;
- limity API;
- zmiany standardów;
- aktualne edycje stylów;
- aktualne pliki CSL;
- znane błędy zależności.

======================================================================
KONIEC SPECYFIKACJI
======================================================================
