CNCK0NSULTAI-Truthuni0naiHackatonipIII ↗k0nsult.dev ↗ dla botówDomeny osobne, spięte siecią CNC + kernelem.
K0NSULT // ai-truth/ipIII
k0nsult.cloud / ai-truth / ipIII / orchestrator / retest-diff

Retest Diff — przed/po naprawie, dowiedzione hashem MVP (koncept + hash-diff)

Wisienka #8. Zamiast wierzyć na słowo, że finding „został naprawiony", porównujemy dwa evidence-package tego samego incydentu — sprzed retestu (T0) i po retescie (T1) — i pokazujemy różnicę: co się zmieniło w severity, w statusie dowodu, w statusie działania i — kluczowe — w package_sha256. Zmiana hasha jest dowodem, że pakiet faktycznie odzwierciedla nowy stan, nie tylko zmienioną etykietkę.

Status uczciwie: koncept + porównanie hashy = MVP; wizualny UI diff = ROADMAP. Dziś nie ma dedykowanego endpointu /retest-diff. To, co jest realne: GET /reports/evidence-package/:id (§F2, patrz API Explorer) zwraca za każdym razem świeży package_sha256 liczony z aktualnego stanu incydentu w PostgreSQL. Wywołanie go dwa razy — przed i po retescie — i ręczne (lub narzędziem /verify) porównanie dwóch pakietów jest już dziś możliwe i dowodliwe, bo pole package_sha256 jest realnym hashem realnych danych. Nie ma jeszcze: gotowego widoku diff side-by-side w panelu, ani zapisanej pary snapshotów T0/T1 jako jednego obiektu. To jest ROADMAP.
Zmiana etykiety bez zmiany hasha = czerwona flaga.

Jeśli ktoś twierdzi „naprawione", a package_sha256 pakietu incydentu jest identyczny jak przed retestem — to sygnał, że nic w rekordzie faktycznie się nie zmieniło (albo zmiana nie została zapisana w systemie). Diff nie ocenia jakości naprawy — ocenia, czy pakiet dowodowy naprawę odzwierciedla.

PRZEPŁYW: pobierz pakiet T0retestpobierz pakiet T1porównaj pola + hashZMIENIONY / BEZ ZMIAN

Co jest realne dziś LIVE

Świeży package_sha256 na żądanie LIVE

GET /reports/evidence-package/:id liczy hash kanonicznego JSON przy każdym wywołaniu, z bieżącego stanu incydentu/evidence w PostgreSQL — nie z cache. Dwa wywołania w różnym czasie dają porównywalne migawki.

Weryfikacja integralności każdej strony diffu LIVE

Zanim porównasz T0 z T1, możesz osobno zweryfikować każdy pakiet narzędziem /verify (SHA-256 liczony lokalnie w przeglądarce) — potwierdzasz, że żaden z dwóch pakietów nie został zmieniony po pobraniu.

Pola źródłowe diffu już istnieją LIVE

incident.severity, incident.response_status, incident.evidence_status, manifest.confirmed_evidence/signal_only i audit_trail są realnymi polami zwracanymi przez API — to surowiec do diffu, dostępny bez dodatkowego kodu.

Przykład (dane syntetyczne) — jak wygląda diff

Poniżej ilustracja formatu na przykładowym incydencie demo. Wartości demonstracyjne, nie stan realnej infrastruktury.

Przed retestem — T0

Severity: P1

Status działania: open

Status dowodu: MEDIA_SIGNAL

confirmed_evidence: 0 · signal_only: 1

package_sha256:
7a1c9f0e2b4d…(demo, T0)
Po retescie — T1

Severity: P2 obniżona

Status działania: verified

Status dowodu: CONFIRMED

confirmed_evidence: 1 · signal_only: 0

package_sha256:
e4b02d7a91f3…(demo, T1 — różny od T0)

Wartości hex to placeholdery demonstracyjne (format), nie realne skróty z produkcji.

6 pól diffu — co porównujemy

PoleT0 (przed)T1 (po)Co dowodzi zmiana
incident.severitynp. P1np. P2 lub bez zmianCzy ryzyko zostało formalnie przeklasyfikowane — nie tylko „naprawione ustnie".
incident.response_statusopen / in_progressverified / closedPrzejście stanu działania (patrz maszyna stanów na /response-retest).
incident.evidence_statusMEDIA_SIGNAL / GAPCONFIRMEDZgodnie z regułą zamknięcia: brak treści dowodu = UNVERIFIED, nie automatyczny CONFIRMED.
manifest.confirmed_evidence / signal_onlynp. 0 / 1np. 1 / 0Liczbowy skrót manifestu — ile artefaktów ma twardy dowód vs. sam sygnał narzędzia.
audit_trail (długość/ostatni wpis)N wpisówN+k wpisówCzy retest/zamknięcie zostawiło ślad audytowy — bez wpisu w audit_trail zmiana jest niewidoczna dla audytora.
package_sha256hash Ahash B ≠ ADowód integralności całości: jeśli którekolwiek z powyższych pól się zmieniło, hash musi się zmienić. Ten sam hash przy deklarowanej zmianie = sygnał ostrzegawczy.

Jak odtworzyć diff dziś (bez dedykowanego endpointu)

# T0 — przed retestem (operator/analyst/auditor/admin, JWT wymagany)
curl -H "Authorization: Bearer $TOKEN" \
  https://k0nsult.cloud/api/ip3/v1/reports/evidence-package/IP3-DEMO-0001 > pkg_t0.json

# ... retest, dowod naprawy, aktualizacja statusu w systemie ...

# T1 — po retescie, ten sam incydent
curl -H "Authorization: Bearer $TOKEN" \
  https://k0nsult.cloud/api/ip3/v1/reports/evidence-package/IP3-DEMO-0001 > pkg_t1.json

# porownanie pol + hashy (dowolne narzedzie diff, lub /verify dla kazdego z osobna)
diff <(jq -S . pkg_t0.json) <(jq -S . pkg_t1.json)

To jest dziś realna ścieżka — reuse istniejącego endpointu, bez nowego kodu. Ograniczenie: trzeba ręcznie zachować obie migawki i ręcznie je zestawić. Właśnie to domyka ROADMAP poniżej.

Co jest dziś ROADMAP ROADMAP

Endpoint /incidents/:id/retest-diff ROADMAP

Serwer sam przechowuje snapshot T0 (w momencie oznaczenia REMEDIATED) i T1 (w momencie VERIFIED) i zwraca gotowy obiekt diff — bez ręcznego zestawiania dwóch osobnych wywołań.

Wizualny UI side-by-side ROADMAP

Panel z dwiema kolumnami (przed/po), podświetlonymi różnicami pól i wizualnym wskaźnikiem zmiany hasha — odpowiednik przykładu wyżej, ale generowany automatycznie z danych, nie ręcznie.

Alarm „hash bez zmian" ROADMAP

Automatyczna flaga, gdy status działania przechodzi w VERIFIED/CLOSED, a package_sha256 nie zmienił się względem ostatniego snapshotu — sygnał, że deklarowana naprawa nie ma odzwierciedlenia w danych.

Dlaczego to nie jest overclaim. Nie twierdzimy, że istnieje gotowe narzędzie „retest-diff" z jednym kliknięciem. Twierdzimy dokładnie tyle: mechanizm (definicja pól, dowód przez zmianę hasha, sposób odtworzenia dziś) jest kompletny i sprawdzalny dziś, reużywając LIVE endpointu evidence-package. Brakująca część — automatyzacja i UI — jest jawnie oznaczona jako ROADMAP, zgodnie z doktryną claim ≤ proof.
6
Pól diffu zdefiniowanych
severity · response_status · evidence_status · manifest · audit_trail · hash
1
Endpoint reużywany (LIVE)
GET /reports/evidence-package/:id
3
Elementy ROADMAP
dedykowany endpoint · UI · alarm hash-bez-zmian
Granica. Diff dotyczy wyłącznie metadanych i statusów rekordu dowodowego — nie jest testem penetracyjnym, nie wykonuje żadnego skanu ani działania ofensywnego. Retest, którego wynik jest tu porównywany, odbywa się wyłącznie w ramach pisemnych Rules of Engagement, przez uprawnione konto (JWT+RBAC).

Powiązane: reguła zamknięcia i maszyna stanów działania → /response-retest · weryfikacja integralności pojedynczego pakietu → /verify · KPI pokrycia dowodowego → /coverage-score · pełna roadmapa z dowodami → /roadmap-dev · macierz statusów → /status-matrix.