# Usklađivanje s predmetnim kurikulumom KS

Portal je statički HTML/CSS/JS. Alati u `tools/` služe uredničkoj provjeri;
nisu build korak niti zavisnost za otvaranje portala.

## Službena osnova

- Primjena: školska 2026/27, odluka od 26. 8. 2026.
- `sources.json`: službene adrese, datumi, veličine i SHA-256 referentnih PDF-ova,
  odluka koja se primjenjuje za svaki razred i raspon označenih stranica.
- `sources/`: referentne kopije dokumenata koji su bili povezani na stranici
  Ministarstva prilikom prvobitne provjere 17. 10. 2026; udaljeni dokumenti i službeni linkovi ponovo su provjereni 19. 10. 2026.
- Predmetni PDF matematike nalazi se u službenom direktoriju `2025-09`.
  To nije tvrdnja da su svi razredi dobili novu verziju 2025. Odluka za 2026/27.
  izričito navodi starije odluke za razrede 5–8. Noviji poseban predmetni PDF
  za matematiku osnovne škole nije pronađen u pregledanim službenim objavama.
- Radna verzija na platformi kurikuluma iz 2021. nije korištena kao važeća osnova.
- Broj fizičke stranice PDF-a veći je za jedan od označenog broja.

## Dokaz pokrivenosti

`official-indicators.json` je nezavisan inventar 142 indikatora iz desnog stupca
predmetnog dokumenta: 29 za 5, 31 za 6, 30 za 7, 25 za 8, 27 za 9. razred.
Prepis je iz referentnog PDF-a, uključujući izvorne jezičke omaške. Oznaka
`KS-<razred>-p<stranica>-<redni broj>` je urednička, nije službena šifra.
U samim lekcijama koriste se vlastita objašnjenja i zadaci.

`coverage-5.json` do `coverage-9.json` povezuju svaki indikator s konkretnim
lekcijama i anchorima. Polje `source_indicator_id` povezuje red s nezavisnim
inventarom. `covered` znači da su pronađeni objašnjenje i zadatak; `partial`
označava preostalu sadržajnu dopunu. Dodatni redovi mogu pratiti ključne sadržaje
ili metodičke preporuke; ne smiju biti predstavljeni kao dodatni službeni indikatori.

Službene oznake u PDF-u nisu svuda jednoznačne: ponegdje je odštampano samo
`.5.1`, a u 8. razredu postoje dva različita bloka `B.8.1`. Zato uvijek pratiti
i stranicu/domenu. Ne popravljati oznake nagađanjem.

`inventory-before.json` čuva početnih 149 HTML adresa iz Git HEAD-a,
uključujući 110 lekcija. `inventory-after.json` opisuje završno stanje razreda.
Završno stanje: 159 različitih lekcija (49 novih autorskih), dostupnih na 172
adrese lekcija. Trinaest starih adresa ima canonical prema odgovarajućem razredu;
one ostaju otvorive, ali se u pretrazi i ukupnom broju različitih lekcija ne broje dvaput.
Svaki zapis inventara čuva `canonical_path` i `alias`. Pregledi pojedinih razreda
mogu navesti i stare dodatne lekcije; javna mapa broji premještenu lekciju u njenom
odgovarajućem razredu. Indeks pretrage označava ponavljanje/dodatno gradivo.
`audit-*.md` dokumentuju konkretne izmjene i sadržajne provjere po razredima.
`coverage-summary.json` i javni `../kurikulum.html` prikazuju objedinjenu mapu.

## Postupak budućeg ažuriranja

1. Prije školske godine i nakon službene objave pregledati Ministarstvo:
   https://mo.ks.gov.ba/nastavni-planovi . Provjeriti i samu odluku i predmetni prilog.
2. Pokrenuti `python3 tools/check_sources.py`. Promijenjeni hash traži pregled
   dokumenta; datum direktorija ili promijenjeni hash sami ne dokazuju promjenu ishoda.
3. Sačuvati novu referencu, datum i hash te uporediti indikatore i ključne sadržaje.
4. Dopuniti matrice, ciljeve, tekst, primjere, vizuale i samostalne zadatke. Ako
   vještina nije uvježbana, ne označavati je pokrivenom samo zato što je pojam spomenut.
5. Očuvati stare URL-ove. U pregledima jasno odvojiti osnovni put, ponavljanje i
   dodatno gradivo; ažurirati pagere i breadcrumb. Ne umnožavati identične lekcije.
6. Dvaput provjeriti račun, jedinice, domenu/rubne slučajeve i jednoznačnost kviza.
   Pregled jezika raditi prema uzrastu: 10–11 do 14–15 godina za razrede 5–9.
7. Osvježiti izvještaje i indeks pretrage:

   ```sh
   python3 tools/update_curriculum_report.py
   node tools/generate-search-index.js
   python3 tools/check_portal.py
   ```

8. Otvoriti statički server iz roota i provjeriti stvarni browser:

   ```sh
   python3 -m http.server 8000
   python3 tools/browser_check.py
   ```

   Browser alat koristi već dostupan razvojni Playwright i Chromium. Ne uvodi
   biblioteku u portal. Ako nisu dostupni, iste provjere obaviti ručno i tako
   zabilježiti opseg provjere, bez tvrdnje da je automatizacija prošla.

## Granice automatske provjere

`validation-static.json` provjerava lokalne adrese, anchore, obaveznu strukturu,
očuvanje starih stranica i oznake odgovora. `validation-browser.json` provjerava
stvarne interakcije, JavaScript greške i širine 390/1280 px. Nijedan alat sam
ne dokazuje računsku tačnost, uzrasnu prilagođenost ili pedagošku potpunost.
Za to služe sadržajna recenzija, pregled primjera i evidencija u auditima.

Poslije provjera ponovo pročitati `feedback.txt`; stare stavke ostaju kao historija.

## Dubinski pregled 19. 10. 2026.

Izvještaj `DEEP-REVIEW-2026-10-19.md` povezuje sadržajne nalaze i primijenjene ispravke. `deep-review-5.md`, `deep-review-67.md` i `deep-review-89.md` prate pojedinačne lekcije; matrice dopunjuju dokaze objašnjenja, postupka i samostalne provjere kroz polja `depth_review` (5), `evidence_by_component` (6/7) i `review` (8/9). Praktično mjerenje, konstrukcije i prikupljanje stvarnih podataka ostaju učeničke aktivnosti izvan browsera.

Sintaksa trenutnih inline skripti provjerava se bez izvršavanja pomoću `python3 tools/check_inline_scripts.py` (V8). Dodatni razvojni alati: `python3 tools/audit_numeric_content.py` provjerava ograničen podskup numeričkih jednakosti i dijeljenja s ostatkom; ekvivalentni odgovori kviza su kandidati za pregled jer pitanje može izričito tražiti skraćen ili naučni zapis. `python3 tools/audit_visual_boundaries.py` ispituje deklarisane rubne vrijednosti kontrola na 390/1280 px. Geometrijsko upozorenje samo po sebi ne dokazuje grešku: graf namjerno može izlaziti iz prozora prikaza, pa je potreban pregled konteksta. Ovi alati ne potvrđuju simboličke dokaze, kvalitet nastave ili savladanost gradiva.
