Open Source Signal logo
Open Source SignalСигнал відкритих джерел
Issue #125 6 October 2026 Daily Signal EN + UKR

Open Source Signal

Сигнал відкритих джерел

Bilingual OSINT radar for denominator discipline, claim separation, service-state timelines, detention-access evidence, versioned casualty counts and local web extraction.

Daily issue #125: Ukraine says long-range strikes have disabled more than half of Russia's oil-refining capacity, but assessed capacity loss is not the same metric as actual throughput or product output; a fatal fire aboard Royad Mammadov is confirmed while the cause remains a separately attributed claim; the Palanca border incident shows why incident, closure and reopening need separate timestamps; reporting from the Toronto conference separates Ukrainian claims about detention-site access from OHCHR testimony data; Kharkiv casualty figures changed as rescue work continued; and AgentCrawl 0.5.2 offers a fresh self-hosted extraction layer with explicit provenance and failure states.

Editorial frame

What this is: A bilingual editorial filter for public-interest OSINT. This issue focuses on evidence-state separation: assessed capacity is not observed output, a confirmed physical incident is not automatic confirmation of its cause, and a changing casualty count should be stored as a versioned observation rather than silently overwritten.

What this is not: A targeting aid, private-person deanonymization workflow, proof that official capacity estimates equal real-time production, permission to collapse attributed claims into confirmed facts, or a live operational picture of sensitive infrastructure.

Rubric map

📡 Signal One
⚓ Claim Verification
🛂 Infrastructure Signals
🧑‍⚖️ Captivity & Access
🏙️ War Crimes Verification
🧰 Tool Radar
📡Signal OneГоловний сигнал
#01

Ukraine says 51% of Russian refining capacity is disabled — but capacity loss is not the same as output loss

Source: Associated Press / Ministry of Defence of Ukraine · 6 October 2026

What happened

Ukraine's Defence Ministry said long-range strikes had disabled more than 51% of Russia's oil-refining capacity. AP reported that the figure could not be independently verified. The broader reporting context includes repeated strikes on refineries, fuel shortages and repair cycles, but those observations do not independently validate the exact 51% estimate.

Why it matters

Installed capacity, struck capacity, assessed disabled capacity, actual throughput and finished-product output are different variables. Treating one as a proxy for another can turn a defensible official estimate into an overstated headline.

How to use it

Track a refinery chain as nominal capacity → struck unit → assessed disabled share → repair state → observed throughput → product output. Attach a timestamp and source to every step, and preserve the denominator used for each percentage.

Limits

The 51% figure is an official Ukrainian assessment, not an independently measured real-time share of Russian fuel production. Public reporting also does not provide a uniform plant-by-plant methodology for calculating the aggregate percentage.

Україна заявляє про 51% виведених з ладу російських нафтопереробних потужностей — але втрата потужності не дорівнює втраті фактичного випуску

Джерело: Associated Press / Ministry of Defence of Ukraine · 6 жовтня 2026

Що сталося

Міністерство оборони України заявило, що далекобійні удари вивели з ладу понад 51% російських нафтопереробних потужностей. AP зазначило, що незалежно перевірити цю цифру не вдалося. Ширший контекст охоплює повторні удари по НПЗ, дефіцит пального та цикли ремонту, але ці спостереження самі по собі не підтверджують саме оцінку 51%.

Чому це важливо

Встановлена потужність, уражена потужність, оцінена виведена з ладу потужність, фактична переробка та випуск готового пального — різні змінні. Підміна одного показника іншим перетворює обережну офіційну оцінку на перебільшений заголовок.

Як це застосувати

Ведіть ланцюг НПЗ як номінальна потужність → уражений вузол → оцінена частка виведеної з ладу потужності → стан ремонту → спостережувана переробка → випуск продукту. Для кожного кроку зберігайте час, джерело й знаменник, від якого рахують відсоток.

Обмеження

51% — офіційна українська оцінка, а не незалежно виміряна в реальному часі частка російського виробництва пального. Публічні матеріали також не дають єдиної детальної методики розрахунку агрегованого показника по кожному НПЗ.

signal-oneenergyrefineriesdenominatorcapacitythroughputclaim-verification
⚓Claim VerificationПеревірка тверджень
#02

A fatal fire aboard Royad Mammadov is confirmed; the cause remains a separate attributed claim

Source: Reuters / Romanian authorities / Ukrainian authorities · 5 October 2026

What happened

Romanian authorities confirmed a fire aboard the St Kitts and Nevis-flagged cargo ship Royad Mammadov outside Romania's territorial waters, with two deaths and 11 crew rescued. Ukraine attributed the incident to two Russian drones. Reuters reported the vessel had called at Izmail and was sailing toward Ravenna; Russia did not specifically address this incident in the cited reporting.

Why it matters

A confirmed physical event does not automatically confirm its cause or perpetrator. Route data, casualties, fire and attribution should remain separate evidence fields until each is independently supported.

How to use it

Use a claim matrix: fire confirmed; casualties confirmed; route corroborated; drone-strike claim attributed to Ukraine; Russian responsibility not independently established in the cited evidence. Do not let confidence in one field propagate to the others.

Limits

Maritime investigations may later establish a cause using debris, sensor, communications or forensic evidence. This card reflects the public evidence state at publication time.

Смертельна пожежа на Royad Mammadov підтверджена; причина лишається окремо атрибутованим твердженням

Джерело: Reuters / Romanian authorities / Ukrainian authorities · 5 жовтня 2026

Що сталося

Румунська влада підтвердила пожежу на вантажному судні Royad Mammadov під прапором Сент-Кітс і Невіс поза територіальними водами Румунії, загибель двох людей і порятунок 11 членів екіпажу. Україна пов'язала інцидент з ударом двох російських дронів. Reuters повідомив, що судно заходило до Ізмаїла і прямувало до Равенни; Росія у наведеному матеріалі конкретно цей інцидент не коментувала.

Чому це важливо

Підтверджена фізична подія не означає автоматичного підтвердження її причини чи виконавця. Маршрут, жертви, пожежу й атрибуцію слід вести як окремі доказові поля, доки кожне з них не отримає власного підтвердження.

Як це застосувати

Використовуйте матрицю тверджень: пожежу підтверджено; жертви підтверджено; маршрут corroborated; твердження про удар дронами атрибутовано Україні; відповідальність Росії незалежно не встановлена в наведених доказах. Не переносіть рівень упевненості з одного поля на інші.

Обмеження

Морське розслідування згодом може встановити причину за уламками, сенсорними даними, зв'язком чи судово-технічними доказами. Картка відображає стан публічних доказів на момент публікації.

claim-verificationblack-seashippingattributionevidence-state
🛂Infrastructure SignalsСигнали інфраструктури
#03

Palanca shows why an incident and a service state need separate timestamps

Source: Border Police of the Republic of Moldova · 5 October 2026

What happened

Moldova's Border Police said a projectile fell near the Palanca–Maiaki–Udobnoe crossing at about 09:38, ricocheted after impact and struck a stationary route bus. The bus and a control booth were damaged and a border officer was lightly injured. The crossing was suspended and later the same day reopened; the officer's condition was reported stable.

Why it matters

A database field such as checkpoint=closed becomes wrong as soon as service resumes unless the closure is treated as a bounded interval rather than a permanent state. Incident time and service state are different timelines.

How to use it

Record incident_time, closure_start, update_time and reopening_time separately. Keep the authority's causal attribution in its own field rather than embedding it into the service-status value.

Limits

The Moldovan authority attributes the incident to the context of Russian attacks on Ukrainian infrastructure. This card does not independently reconstruct the projectile's origin or trajectory.

Паланка показує, чому інцидент і стан сервісу потребують окремих часових міток

Джерело: Border Police of the Republic of Moldova · 5 жовтня 2026

Що сталося

Прикордонна поліція Молдови повідомила, що близько 09:38 поблизу пункту Паланка–Маяки–Удобне впав боєприпас, після удару об землю зрикошетив і влучив у рейсовий автобус, що стояв біля шлагбаума. Автобус і контрольна кабіна були пошкоджені, прикордонник дістав легке поранення. Роботу пункту зупинили, а пізніше того самого дня відновили; стан пораненого назвали стабільним.

Чому це важливо

Поле на кшталт checkpoint=closed стає хибним одразу після відновлення роботи, якщо закриття не зберігається як обмежений у часі інтервал. Час інциденту і стан сервісу — різні часові лінії.

Як це застосувати

Окремо зберігайте incident_time, closure_start, update_time і reopening_time. Причинну атрибуцію органу влади тримайте в окремому полі, а не вбудовуйте її в значення стану сервісу.

Обмеження

Молдовський орган пов'язує інцидент із контекстом російських атак на українську інфраструктуру. Картка не здійснює незалежної реконструкції походження чи траєкторії боєприпасу.

infrastructure-signalsmoldovapalancaborderservice-statetimeline
🧑‍⚖️Captivity & AccessПолон і доступ
#04

Ukraine reports more than 300 detention sites without ICRC access; OHCHR testimony data remains a separate evidence stream

Source: Coordination Headquarters for the Treatment of Prisoners of War / OHCHR · Published 5 October 2026; conference held 28–29 September 2026

What happened

A report on the Toronto conference said Ukraine knows of more than 300 places where Ukrainian prisoners of war are held and to which the ICRC has no access. The same report separately cited OHCHR data saying more than 95% of interviewed Ukrainian POWs reported torture or ill-treatment after release. Representatives of 83 delegations took part in the conference.

Why it matters

The two headline numbers come from different evidence streams and should not be merged into a single dataset with a uniform confidence label. Access mapping and post-release testimony answer different questions.

How to use it

Store claim owner, source institution, collection method and denominator. For site-access claims, keep site identification and access status separate; for testimony statistics, preserve interview population, collection period and methodology whenever available.

Limits

The 300+ figure is presented by the Ukrainian side in an official report. The public page does not enumerate the facilities or provide a full site-by-site verification method, and this issue deliberately does not publish sensitive location details.

Україна повідомляє про понад 300 місць утримання без доступу МКЧХ; дані УВКПЛ ООН зі свідчень є окремим доказовим потоком

Джерело: Coordination Headquarters for the Treatment of Prisoners of War / OHCHR · Опубліковано 5 жовтня 2026; конференція відбулася 28–29 вересня 2026

Що сталося

У матеріалі про конференцію в Торонто зазначено, що Україні відомо про понад 300 місць утримання українських військовополонених, до яких МКЧХ не має доступу. Окремо в тому самому матеріалі наведено дані УВКПЛ ООН: понад 95% опитаних після звільнення українських військовополонених повідомили про катування або жорстоке поводження. У конференції взяли участь представники 83 делегацій.

Чому це важливо

Два ключові числа походять із різних доказових потоків і не повинні зливатися в один набір із однаковою позначкою впевненості. Карта доступу до місць утримання та свідчення після звільнення відповідають на різні питання.

Як це застосувати

Зберігайте власника твердження, установу-джерело, метод збору і знаменник. Для даних про доступ розділяйте ідентифікацію місця та статус доступу; для статистики свідчень зберігайте популяцію опитаних, період і методологію, коли вони доступні.

Обмеження

Показник 300+ представлений українською стороною в офіційному матеріалі. Публічна сторінка не перелічує установи і не подає повної методики перевірки кожного місця; цей випуск навмисно не публікує чутливі деталі розташування.

captivityicrcohchrhumanitarian-accesstestimonysource-separation
🏙️War Crimes VerificationВерифікація воєнних злочинів
#05

Kharkiv casualty figures changed as rescue work continued — preserve the versions, not only the final number

Source: Reuters / Ukrainian regional authorities · 5 October 2026

What happened

Reuters' updated reporting on Russian strikes in Kharkiv gave a later toll of six people killed and 59 injured, including three children, as rescue operations and searches of damaged residential buildings continued. Earlier versions of the incident carried lower casualty figures before additional bodies were recovered.

Why it matters

Changing casualty counts are often normal evidence accumulation, not source contradiction. Silently overwriting 5 killed with 6 killed destroys the history of what was known when.

How to use it

Store casualty observations as timestamped versions with source and status: preliminary, updated, confirmed or final where an authority explicitly uses those terms. Do not infer intent or legal classification from casualty totals alone.

Limits

Even a later toll can change again as rescue work, hospital reporting and identification continue. Reuters' article is an evolving news record, not a judicial finding.

Дані про жертви у Харкові змінювалися в міру рятувальних робіт — зберігайте версії, а не лише фінальне число

Джерело: Reuters / Ukrainian regional authorities · 5 жовтня 2026

Що сталося

Оновлений матеріал Reuters про російські удари по Харкову наводив пізніший підсумок: шестеро загиблих і 59 поранених, серед них троє дітей, тоді як рятувальні роботи та пошук у пошкоджених житлових будинках тривали. Ранні повідомлення про той самий інцидент містили нижчі цифри до виявлення нових загиблих.

Чому це важливо

Зміна кількості жертв часто є нормальною акумуляцією доказів, а не суперечністю джерел. Тихе перезаписування 5 загиблих на 6 знищує історію того, що саме було відомо в конкретний момент.

Як це застосувати

Зберігайте дані про жертви як версіоновані спостереження з часом, джерелом і статусом: preliminary, updated, confirmed або final лише тоді, коли так формулює компетентне джерело. Не виводьте намір чи юридичну кваліфікацію лише з кількості жертв.

Обмеження

Навіть пізніший підсумок може змінитися через подальші рятувальні роботи, лікарняні дані та ідентифікацію. Матеріал Reuters є новинним записом, що оновлюється, а не судовим висновком.

war-crimes-verificationkharkivcasualtiesversioningtimeline
🧰Tool RadarРадар інструментів
#06

AgentCrawl 0.5.2: a self-hosted extraction layer with explicit provenance and failure states

Source: PyPI / AgentCrawl · 6 October 2026

What happened

AgentCrawl 0.5.2 was released on PyPI on October 6. The project is a small self-hosted crawler that converts ordinary web pages and local documents into Markdown, text, links, metadata, JSON-LD and crawl results. It can run through CLI, Python, Docker/API or MCP and describes its design around local state and explicit failure modes rather than pretending every requested page was successfully extracted.

Why it matters

For OSINT ingestion, a crawler is more useful when it preserves provenance and distinguishes extraction failure from negative evidence. A blocked, challenged or JavaScript-only page should not silently become an empty record.

How to use it

Use it as an ingestion layer rather than an adjudication engine: store URL, retrieval time, extraction mode, response/failure state and extracted content separately. Prefer deterministic extraction for repeatable fields and keep any optional LLM extraction explicitly labelled.

Limits

PyPI classifies the project as Alpha. The package page includes operational security guidance, but this issue does not treat project documentation as an independent security audit. Version 0.5.2 was uploaded without PyPI Trusted Publishing.

AgentCrawl 0.5.2: self-hosted шар вилучення з явним provenance і станами помилок

Джерело: PyPI / AgentCrawl · 6 жовтня 2026

Що сталося

AgentCrawl 0.5.2 вийшов на PyPI 6 жовтня. Це невеликий self-hosted краулер, який перетворює звичайні веб-сторінки й локальні документи на Markdown, текст, посилання, metadata, JSON-LD і результати crawl. Він працює через CLI, Python, Docker/API або MCP і позиціонує дизайн навколо локального стану та явних режимів помилки замість удаваного успіху для кожної сторінки.

Чому це важливо

Для OSINT-ingestion краулер корисніший, коли зберігає provenance і відрізняє помилку вилучення від негативного доказу. Заблокована, challenge-сторінка або сторінка, що потребує JavaScript, не повинна тихо перетворюватися на порожній запис.

Як це застосувати

Використовуйте його як ingestion-шар, а не як механізм винесення висновків: окремо зберігайте URL, час отримання, режим вилучення, стан відповіді/помилки та витягнутий контент. Для повторюваних полів віддавайте перевагу детермінованому вилученню, а необов'язкове LLM-вилучення маркуйте явно.

Обмеження

PyPI класифікує проєкт як Alpha. Сторінка пакета містить рекомендації з безпечної експлуатації, але цей випуск не прирівнює документацію проєкту до незалежного аудиту безпеки. Версію 0.5.2 завантажено без PyPI Trusted Publishing.

tool-radaragentcrawlcrawlerprovenanceingestionmcpalpha