Версія: 1.0
Статус: нормативна специфікація
Мова цієї редакції: українська
Проєкт: Noetrail
Тип документа: Open Technical Standard
Дата редакції: 2026
Цей документ визначає нормативну технічну специфікацію Noetrail v1.0.
Noetrail є відкритим science-specific стандартом для машинозчитуваного представлення:
епістемічних станів;
епістемічних політик;
профілів перевірки політик;
записів методологічних рішень.
Специфікація визначає:
основні поняття;
core data model;
нормативні поля;
правила ідентичності та версіонування;
семантику prospectivity та challenge;
базовий vocabulary epistemic actions;
правила conformance;
interoperability boundaries;
validation requirements;
governance constraints v1.0.
Ця специфікація не визначає універсально найкращу наукову методологію.
Вона визначає спосіб представлення різних методологічних policy у спільному форматі.
У документі використовуються нормативні слова:
Абсолютна вимога стандарту.
Якщо implementation її порушує, implementation не може вважатися повністю conformant відповідному рівню Noetrail.
Абсолютна заборона.
Сильна рекомендація.
Відхилення допускається лише тоді, коли implementation має обґрунтовану причину.
Дію слід уникати, якщо немає обґрунтованої причини.
Опційна можливість.
Implementation може підтримувати або не підтримувати відповідну функцію.
Noetrail має забезпечити спільну machine-readable representation для правила виду:
«За поточного стану знання яку епістемічну дію слід запропонувати наступною?»
Таке правило в Noetrail називається:
У наукових системах methodological decision rules часто існують як:
prose;
prompt;
hidden agent logic;
software code;
workflow branching;
researcher intuition;
institutional procedure.
Через це важко однозначно встановити:
яке правило використовувалося;
яка його версія;
для якого scope воно призначене;
яка implementation його реалізувала;
чи було воно змінено;
чи пройшло воно prospective challenge;
який evidence підтримує його status.
Noetrail стандартизує ці аспекти.
Noetrail v1.0 визначає чотири core object types:
EpistemicState
EpistemicPolicy
ChallengeProfile
DecisionRecord
Їх концептуальний зв’язок:
EpistemicState
↓
EpistemicPolicy
↓
EpistemicAction
↓
Evidence
↓
Updated EpistemicState
Окремо:
Incumbent Policy
+
Challenger Policy
↓
ChallengeProfile
↓
Evaluation
↓
DecisionRecord
Noetrail v1.0 не визначає:
універсальну theory of truth;
один scientific method;
один reward function;
один benchmark;
одну statistical framework;
одну AI architecture;
одну ontology всіх scientific claims;
один central global registry;
один agent transport protocol;
один provenance protocol.
Noetrail також не замінює:
A2A;
MCP;
RO-Crate;
DOI infrastructure;
preregistration systems;
workflow systems;
scholarly repositories.
Core стандарту ПОВИНЕН залишатися невеликим.
Noetrail не повинен перетворюватися на повну ontology науки.
Domain-specific requirements СЛІД реалізовувати через profiles та extensions.
Кожна EpistemicPolicy ПОВИННА мати:
id
version
Комбінація:
(policy_id, version)
ПОВИННА однозначно визначати конкретну semantic version policy.
Semantic contents опублікованої policy version НЕ ПОВИННІ змінюватися непомітно.
Якщо behavior або normative semantics policy змінюються, version ПОВИННА бути змінена.
Наприклад:
risk-directed:1.0
та
risk-directed:1.1
є різними policy objects.
EpistemicState — це machine-readable representation релевантного стану знання, uncertainty, evidence та constraints, у якому відбувається methodological decision.
EpistemicState не повинен розглядатися як повна model of reality.
Він містить лише information, необхідну для відповідного policy context.
EpistemicState МОЖЕ містити:
id
version
objective
claims
evidence
uncertainty
dependencies
constraints
active_policy
challengers
provenance
EpistemicState ПОВИНЕН мати:
type
id
version
Приклад:
{
"type": "EpistemicState",
"id": "state-001",
"version": "1.0"
}
Поле objective описує epistemic objective.
Наприклад:
{
"objective": "Evaluate whether the observed effect generalizes across populations"
}
Objective МОЖЕ бути:
текстовим;
структурованим;
reference на external object.
Поле claims МОЖЕ містити:
hypotheses;
research questions;
causal claims;
measurement claims;
model claims;
theory claims.
Noetrail v1.0 не визначає універсальну formal language для claims.
Це свідоме design-рішення.
Evidence МОЖЕ бути представлене:
inline metadata;
DOI reference;
dataset identifier;
research object;
URL;
RO-Crate reference;
repository artifact.
Наприклад:
{
"evidence": [
{
"id": "doi:10.xxxx/example",
"type": "article"
}
]
}
EpistemicState МОЖЕ представляти декілька типів uncertainty.
Наприклад:
{
"uncertainty": {
"parameter": "low",
"model": "high",
"measurement": "moderate",
"external_validity": "high"
}
}
Noetrail не вимагає єдиної numerical scale.
Domain profile МОЖЕ вимагати конкретну representation.
Evidence objects можуть бути статистично або процедурно залежними.
Наприклад:
той самий dataset;
та сама laboratory;
та сама measurement instrument;
common software pipeline;
common funding source;
overlapping samples.
Тому EpistemicState МОЖЕ містити dependencies.
Приклад:
{
"dependencies": [
{
"type": "shared_dataset",
"members": ["study-1", "study-2"]
}
]
}
Noetrail не визначає universal dependency graph semantics у v1.0.
Policy selection МОЖЕ залежати не лише від information value.
Constraints можуть включати:
cost
time
ethics
safety
legal
computational
sample_availability
resource_availability
Наприклад:
{
"constraints": {
"budget": "low",
"time": "30 days",
"human_subject_risk": "minimal"
}
}
EpistemicPolicy — це версійоване правило, procedure, software component або agent policy, що відображає EpistemicState в одну або кілька proposed EpistemicActions.
Формально:
π: E → Δ(A)
де:
E = EpistemicState
A = set of EpistemicActions
π = EpistemicPolicy
EpistemicPolicy ПОВИННА містити:
type
id
version
title
scope
input_profile
output_contract
actions
artifact_hash
Рекомендовано також:
implementation
license
provenance
authors
created_at
id ПОВИНЕН бути стабільним.
Наприклад:
risk-directed
або URI-like identifier:
https://example.org/policies/risk-directed
Після public release змінювати policy ID без необхідності НЕ СЛІД.
Version ПОВИННА бути machine-readable string.
Рекомендований формат:
MAJOR.MINOR.PATCH
Наприклад:
1.0.0
Semantic meaning:
MAJOR — incompatible semantic change;
MINOR — backward-compatible extension;
PATCH — correction без зміни intended behavior.
Policy ПОВИННА явно описувати scope.
Наприклад:
{
"scope": {
"domain": "model inadequacy detection",
"data_type": "one-dimensional synthetic observations"
}
}
Policy НЕ ПОВИННА автоматично трактуватися як universal лише тому, що її schema valid.
input_profile описує, які EpistemicState properties policy очікує.
Наприклад:
{
"input_profile": {
"requires": [
"uncertainty",
"evidence",
"constraints"
]
}
}
Implementation ПОВИННА або:
отримати required fields;
або повідомити, що policy cannot be applied.
Policy ПОВИННА визначити, що вона повертає.
Мінімально:
recommended_action
Policy МОЖЕ також повертати:
confidence
rationale
alternatives
expected_value
cost_estimate
uncertainty
provenance
EpistemicAction є machine-readable representation запропонованої knowledge-producing action.
У v1.0 визначаються 13 core action classes.
Отримання нових evidence через intervention або planned observation.
Максимально близьке повторення попереднього study design.
Перевірка того самого theoretical claim через іншу operationalization.
Спеціально створений test, спрямований на пошук failure conditions або discrimination між explanations.
Перевірка:
reliability;
validity;
calibration;
measurement invariance;
instrumentation.
Дія, спрямована на покращення causal identification.
Повторний analysis existing evidence із використанням іншої defensible analytical procedure.
Пошук conditions, за яких claim або model перестає працювати.
Пошук systematic inadequacy current model family.
Створення new candidate model або model family.
Об’єднання evidence із multiple sources.
Epistemic action, selection якої частково або повністю незалежний від current greedy optimization objective.
Зупинка або відкладення research action.
Це ПОВИННО вважатися legitimate epistemic action.
Система НЕ ПОВИННА бути змушена завжди рекомендувати new experiment.
EpistemicPolicy МОЖЕ визначати мінімальну exploration allocation.
Наприклад:
{
"exploration": {
"protected": true,
"minimum_probability": 0.30
}
}
Protected exploration означає, що greedy/adaptive component НЕ МОЖЕ повністю усунути exploration нижче заданої межі.
Noetrail v1.0 не встановлює universal exploration floor.
Поле implementation МОЖЕ містити reference на:
source repository;
package;
container;
API;
executable;
human procedure;
agent endpoint.
Наприклад:
{
"implementation": {
"type": "python",
"repository": "https://github.com/example/policy"
}
}
Policy identity ПОВИННА бути логічно відокремлена від конкретної software implementation.
Це дозволяє:
multiple implementations;
cross-language implementations;
clean-room reproduction;
conformance testing.
Наприклад:
Policy:
risk-directed:1.0
Implementation A:
Python
Implementation B:
R
Implementation C:
AI Agent Service
можуть представляти ту саму policy semantics.
Policy artifact СЛІД ідентифікувати cryptographic hash.
Рекомендований algorithm v1.0:
SHA-256
Приклад:
{
"artifact_hash": {
"algorithm": "sha256",
"value": "b6e49e..."
}
}
Hash забезпечує identity.
Hash не гарантує scientific validity.
ChallengeProfile описує machine-readable evaluation contract для comparison однієї або кількох EpistemicPolicies.
ChallengeProfile ПОВИНЕН містити:
id
incumbent
challenger
metrics
prospective
locked
Рекомендовано:
benchmark
gates
development_exclusions
seed_protocol
artifacts
created_at
incumbent — policy, яка має active status у конкретному evaluation context.
Incumbent status НЕ ОЗНАЧАЄ:
universally best
challenger — policy, яка оцінюється відносно incumbent або іншої reference policy.
Challenger МОЖЕ програти без втрати registry identity.
Negative challenge result ПОВИНЕН зберігатися як evidence, якщо registry підтримує evaluation history.
ChallengeProfile ПОВИНЕН явно містити:
prospective: true
або:
prospective: false
Це нормативно важливе поле.
prospective = true МОЖНА встановлювати лише тоді, коли evaluation criteria були визначені до availability relevant outcomes.
Якщо criteria були сформульовані після того, як relevant outcomes стали відомими:
prospective = false
ПОВИННО бути використано.
Implementation НЕ ПОВИННА представляти retrospective challenge як prospective promotion evidence.
Наприклад:
prospective = false
decision = promote
НЕ МОЖЕ трактуватися як prospectively validated promotion.
Це один із core semantic invariants Noetrail v1.0.
locked = true означає, що relevant evaluation specification було зафіксовано до evaluation.
Lock МОЖЕ підтримуватися:
repository commit;
hash;
timestamp;
preregistration;
DOI;
transparency log;
signed artifact.
Noetrail v1.0 не вимагає єдиного locking service.
ChallengeProfile ПОВИНЕН явно визначити evaluation metrics.
Наприклад:
{
"metrics": [
"mean_detection",
"false_alarm_rate",
"worst_family_detection"
]
}
ChallengeProfile МОЖЕ визначати gates.
Наприклад:
{
"metric": "mean_detection_advantage",
"operator": ">=",
"threshold": 0.05
}
Gates ПОВИННІ бути machine-readable, якщо використовуються для automated DecisionRecord.
ChallengeProfile СЛІД дозволяти вказати data/worlds/tasks, використані для development.
Наприклад:
{
"development_exclusions": [
"LocalBump",
"Step",
"Wave"
]
}
Це допомагає відокремити:
development
від:
confirmatory evaluation
DecisionRecord — це persistent machine-readable record evaluation outcome.
DecisionRecord ПОВИНЕН містити:
id
challenge_profile_id
decision
timestamp
Рекомендовано:
metrics
gate_results
selected_policy
failures
artifact_hashes
evaluator
provenance
Noetrail v1.0 визначає базові decision values:
promote
retain
demote
inconclusive
inconclusive є повноцінним normative outcome.
Implementation НЕ ПОВИННА примушувати кожне evaluation до визначення winner.
{
"type": "DecisionRecord",
"id": "decision-risk-vs-anneal",
"challenge_profile_id": "challenge-002",
"decision": "inconclusive",
"reason": "Direct promotion criterion was not prospectively locked"
}
Це дозволяє зберегти:
RiskDirected мав вищу observed performance,
без неправдивого твердження:
RiskDirected prospectively пройшов promotion gate.
Noetrail v1.0 встановлює:
Observed superiority НЕ Є автоматично тотожною prospectively validated policy promotion.
Це одне з центральних правил стандарту.
Noetrail реалізація може мати декілька рівнів conformance.
Попередньо:
Implementation правильно читає та створює core objects.
Implementation виконує core semantic invariants.
Implementation може передавати objects іншій implementation без втрати core semantics.
Implementation зберігає version identity, challenge history і decision provenance.
Повні normative requirements ми сформулюємо в наступній частині Technical Specification.
Noetrail object ПОВИНЕН бути:
machine-readable
і СЛІД, щоб він залишався:
human-inspectable.
Тобто:
не потрібно створювати binary proprietary format, якщо та сама функція може бути реалізована відкритим structured text format.
Для v1.0 normative reference serialization:
JSON
Сумісна schema system:
JSON Schema Draft 2020-12
Future versions МОЖУТЬ підтримувати:
JSON-LD;
YAML representation;
RDF mapping;
CBOR;
protocol-native representations.
Але canonical semantics мають залишатися незалежними від serialization.
Noetrail повинен бути:
transport-agnostic.
Тобто той самий EpistemicPolicy object МОЖЕ бути переданий через:
HTTP;
file;
A2A;
MCP;
message queue;
repository;
local process.
Noetrail не визначає transport protocol.
Noetrail v1.0 уже можна звести до восьми фундаментальних правил:
N1. EpistemicPolicy ПОВИННА мати explicit identity та version.
N2. Опублікована policy version НЕ ПОВИННА silently change semantics.
N3. Policy ПОВИННА описувати scope.
N4. ChallengeProfile ПОВИНЕН зберігати prospective/retrospective status.
N5. Retrospective evaluation НЕ ПОВИННА masquerade as prospective promotion.
N6. DecisionRecord ПОВИНЕН дозволяти inconclusive.
N7. Schema validity НЕ ПОВИННА інтерпретуватися як scientific validity.
N8. Noetrail ПОВИНЕН залишатися незалежним від конкретного agent/tool transport.
Кожен core object Noetrail v1.0 ПОВИНЕН бути JSON object.
Canonical top-level structure:
{
"type": "EpistemicPolicy",
"id": "risk-directed",
"version": "1.0.0",
"created_at": "2026-09-26T12:00:00Z",
"provenance": {},
"extensions": {}
}
Усі core object types ПОВИННІ використовувати однакові базові принципи identity, versioning та extension handling.
Noetrail v1.0 визначає рівно чотири normative core object types:
EpistemicState
EpistemicPolicy
ChallengeProfile
DecisionRecord
Registry та vocabulary objects є supporting objects, але не входять до мінімального чотириоб’єктного semantic core.
Кожен core object ПОВИНЕН містити поле:
"type": "EpistemicPolicy"
Допустимі значення v1.0:
EpistemicState
EpistemicPolicy
ChallengeProfile
DecisionRecord
Значення type є case-sensitive.
Отже:
EpistemicPolicy
і
epistemicpolicy
НЕ є еквівалентними.
id визначає logical identity object.
Приклад:
"id": "risk-directed"
або:
"id": "https://noetrail.org/policies/risk-directed"
ID ПОВИНЕН:
бути непорожнім;
бути стабільним для тієї самої logical entity;
не містити semantic version;
не змінюватися лише через зміну implementation language.
Наприклад:
risk-directed
може мати версії:
1.0.0
1.1.0
2.0.0
але ID залишається:
risk-directed
Для публічних глобальних objects СЛІД використовувати globally resolvable identifier.
Рекомендований формат:
https://domain.example/policies/risk-directed
або persistent identifier:
doi:10.xxxx/xxxxx
Noetrail v1.0 не вимагає DOI для кожної policy.
Повна machine identity versioned object визначається парою:
(id, version)
Наприклад:
risk-directed + 1.0.0
це інший object, ніж:
risk-directed + 1.1.0
Noetrail v1.0 рекомендує Semantic Versioning-подібну структуру:
MAJOR.MINOR.PATCH
Наприклад:
1.0.0
MAJOR ПОВИНЕН збільшуватися, якщо змінюється:
core semantic behavior;
interpretation fields;
compatibility expectations;
decision logic у спосіб, що може змінити output для того самого input.
Наприклад:
1.4.2 → 2.0.0
MINOR МОЖЕ збільшуватися, якщо додається:
backward-compatible metadata;
новий optional field;
підтримка нового action subtype;
additional implementation, яка не змінює intended semantics.
PATCH використовується для:
typo correction;
documentation fix;
metadata repair;
non-semantic packaging changes.
PATCH НЕ ПОВИНЕН змінювати intended policy behavior.
Object СЛІД містити:
"created_at": "2026-09-26T12:00:00Z"
Рекомендований формат:
ISO 8601 / RFC 3339-compatible timestamp
Час СЛІД зберігати в UTC, якщо немає сильної причини використовувати локальний offset.
Mutable registry metadata МОЖЕ мати:
"updated_at": "2026-09-27T10:30:00Z"
Але immutable versioned policy artifact НЕ ПОВИНЕН silently змінювати content із оновленням лише updated_at.
Для hashing та reproducibility однаковий semantic JSON object повинен мати reproducible serialization.
Noetrail v1.0 визначає reference canonicalization rules.
Перед hashing implementation ПОВИННА:
використовувати UTF-8;
сортувати object keys lexicographically;
не включати insignificant whitespace;
зберігати array order;
використовувати JSON null, true, false у стандартній формі;
не змінювати numbers без semantic necessity.
Reference conceptual form:
canonical_json(object)
Reference hash v1.0:
SHA-256
Процес:
Object
↓
Canonical JSON
↓
UTF-8 bytes
↓
SHA-256
↓
artifact_hash
Рекомендована representation:
"artifact_hash": {
"algorithm": "sha256",
"value": "..."
}
Поле algorithm ПОВИННО бути explicit.
Object НЕ ПОВИНЕН включати власне поле artifact_hash.value у content, яке саме використовується для розрахунку того ж hash.
Тому canonical hashing profile ПОВИНЕН або:
варіант A
виключати top-level artifact_hash;
або:
варіант B
hash зберігається поза hashed payload.
Reference Noetrail v1.0 використовує:
artifact_hash не входить у hashed payload самого object.
Object МОЖЕ окремо містити hashes:
policy hash
implementation hash
benchmark hash
result hash
dataset hash
Їх НЕ СЛІД змішувати в одне значення без explicit manifest.
Для compound artifact СЛІД використовувати manifest.
Наприклад:
{
"files": [
{
"path": "policy.json",
"sha256": "abc..."
},
{
"path": "implementation.py",
"sha256": "def..."
}
]
}
Reference structure:
{
"type": "EpistemicState",
"id": "state-001",
"version": "1.0.0",
"objective": "...",
"claims": [],
"evidence": [],
"uncertainty": {},
"dependencies": [],
"constraints": {},
"active_policy": null,
"challengers": [],
"provenance": {},
"extensions": {}
}
У Noetrail v1.0 ПОВИННІ бути:
type
id
version
objective
Інші поля є optional core fields.
objective ПОВИНЕН бути або:
string;
structured object;
reference object.
Приклад:
"objective": {
"text": "Evaluate whether the observed effect replicates",
"class": "replication_assessment"
}
claims ПОВИНЕН бути array, якщо використовується.
Приклад:
"claims": [
{
"id": "claim-1",
"text": "Treatment A reduces outcome Y"
}
]
Evidence entry МОЖЕ бути:
{
"id": "doi:10.xxxx/example",
"type": "article"
}
або:
{
"id": "dataset-01",
"type": "dataset",
"uri": "https://..."
}
Noetrail v1.0 НЕ ПОВИНЕН вимагати копіювання entire evidence content inline.
Uncertainty object МОЖЕ бути open dictionary.
Приклад:
{
"parameter": 0.2,
"model": "high",
"measurement": "moderate"
}
Domain profile МОЖЕ обмежити допустиму representation.
Dependency entry МОЖЕ містити:
type
members
strength
evidence
Приклад:
{
"type": "shared_dataset",
"members": ["study-a", "study-b"]
}
Constraints СЛІД представляти окремо від uncertainty.
Наприклад:
{
"budget": {
"currency": "USD",
"maximum": 5000
},
"time_days": 30,
"ethics": {
"human_subjects": true
}
}
EpistemicState МОЖЕ містити reference:
"active_policy": {
"id": "anneal30",
"version": "0.3.0"
}
Це НЕ означає, що policy universal incumbent.
Вона active лише для цього context.
Може містити:
"challengers": [
{
"id": "risk-directed",
"version": "1.0.0"
}
]
Reference structure:
{
"type": "EpistemicPolicy",
"id": "risk-directed",
"version": "1.0.0",
"title": "RiskDirected",
"scope": {},
"input_profile": {},
"output_contract": {},
"actions": [],
"exploration": {},
"implementation": {},
"artifact_hash": {},
"license": "Apache-2.0",
"provenance": {},
"extensions": {}
}
v1.0 вимагає:
type
id
version
title
scope
input_profile
output_contract
actions
artifact_hash
Title призначений для human readability.
Наприклад:
"title": "Risk-Directed Audit Policy"
Title МОЖЕ змінюватися лише в PATCH/MINOR update, якщо semantic identity не змінена.
Scope МОЖЕ включати:
domain
task
population
data_types
assumptions
limitations
exclusions
Наприклад:
{
"domain": "model inadequacy detection",
"task": "audit location selection",
"limitations": [
"not validated for temporal dependence"
]
}
Policy із невизначеним scope НЕ СЛІД публікувати як production-grade Noetrail policy.
Reference validator МОЖЕ дозволити broad textual scope, але governance layer СЛІД позначати його низькою specificity.
Input profile описує minimum state features.
Наприклад:
{
"required_fields": [
"evidence",
"uncertainty"
]
}
Якщо required field відсутній, conformant implementation ПОВИННА:
повернути structured error;
або повернути not_applicable.
Implementation НЕ ПОВИННА silently invent missing scientific data.
Minimum output contract:
{
"required": [
"recommended_action"
]
}
Можливе розширення:
{
"required": [
"recommended_action"
],
"optional": [
"confidence",
"rationale",
"alternatives"
]
}
Рекомендована representation:
{
"recommended_action": "measurement_audit",
"confidence": 0.74,
"rationale": "Measurement uncertainty exceeds model uncertainty"
}
Якщо policy повертає confidence, вона ПОВИННА документувати meaning.
Наприклад:
posterior probability;
calibrated score;
heuristic score;
ordinal level.
Число 0.9 без semantics НЕ СЛІД інтерпретувати як probability.
Поле:
"actions": [
"measurement_audit",
"model_criticism"
]
визначає action classes, які policy МОЖЕ рекомендувати.
Output НЕ ПОВИНЕН містити action поза declared action set, якщо extension mechanism явно цього не дозволяє.
Custom action ПОВИНЕН мати namespace.
Наприклад:
org.example:construct_validation
а не:
construct_validation
якщо action не входить у core vocabulary.
Core Noetrail actions мають implicit namespace:
noetrail:
Отже conceptual full form:
noetrail:experiment
noetrail:measurement_audit
Short form МОЖНА використовувати в canonical v1.0 JSON.
Reference structure:
{
"protected": true,
"minimum_probability": 0.30
}
minimum_probability ПОВИННА бути числом:
0 <= p <= 1
Якщо:
protected = true
і:
minimum_probability = p
implementation НЕ ПОВИННА в declared policy context зменшувати exploration probability нижче p, якщо немає explicit exception condition.
Policy МОЖЕ визначити:
"exploration": {
"protected": true,
"minimum_probability": 0.30,
"exceptions": [
"safety_constraint"
]
}
Safety constraints МОЖУТЬ override exploration floor.
Reference:
{
"type": "ChallengeProfile",
"id": "challenge-001",
"version": "1.0.0",
"incumbent": {},
"challengers": [],
"benchmark": {},
"metrics": [],
"gates": [],
"development_exclusions": [],
"prospective": true,
"locked": true,
"lock_reference": {},
"seed_protocol": {},
"artifact_hash": {}
}
v1.0 ПОВИНЕН підтримувати:
one challenger;
multiple challengers.
Тому canonical field:
challengers
є array.
incumbent МОЖЕ бути null, якщо challenge не є incumbent-vs-challenger comparison.
Наприклад:
benchmark tournament
може оцінювати кілька policies без incumbent.
Benchmark МОЖЕ бути:
embedded;
URI;
DOI;
repository artifact;
manifest;
challenge service.
Приклад:
"benchmark": {
"id": "noetrail-bench-2026-01",
"version": "1.0.0",
"sha256": "..."
}
Recommended:
{
"name": "mean_detection",
"direction": "maximize",
"unit": "proportion"
}
Direction МОЖЕ бути:
maximize
minimize
target
Normative example:
{
"metric": "mean_detection_advantage",
"operator": ">=",
"threshold": 0.05
}
Supported core operators v1.0:
>
>=
<
<=
==
Multiple gates за замовчуванням інтерпретуються:
AND
якщо ChallengeProfile явно не визначає іншу logical aggregation.
Optional:
"gate_logic": "all"
Core values:
all
any
custom
Якщо custom, profile ПОВИНЕН документувати logic.
Boolean:
"prospective": true
або:
"prospective": false
Поле ПОВИННО бути present.
Boolean:
"locked": true
або:
"locked": false
Поле ПОВИННО бути present.
Якщо:
locked = true
ChallengeProfile СЛІД містити:
lock_reference
Наприклад:
{
"type": "git_commit",
"value": "abc123..."
}
або:
{
"type": "sha256",
"value": "..."
}
locked = true означає:
relevant evaluation definition was fixed before execution according to the declared lock mechanism.
Це НЕ означає automatically:
trusted third-party preregistration.
Noetrail v1.0 визначає states:
draft
locked
running
completed
void
Conceptual lifecycle:
draft
↓
locked
↓
running
↓
completed
Alternative:
draft
↓
void
або:
locked
↓
void
якщо evaluation скасовано.
У draft:
fields МОЖНА змінювати;
gates МОЖНА змінювати;
benchmark МОЖНА змінювати.
Draft НЕ ПОВИНЕН використовуватися як confirmatory evidence.
Після transition:
draft → locked
normative fields challenge НЕ ПОВИННІ змінюватися.
Якщо змінюються:
потрібно створити нову version ChallengeProfile.
У running evaluation уже почалась.
Normative parameters НЕ ПОВИННІ змінюватися.
completed означає, що challenge має result artifact і DecisionRecord або explicit no-decision result.
void означає:
technical invalidation;
protocol violation;
corrupted run;
invalid benchmark;
evaluation cancelled.
Void НЕ дорівнює failure challenger.
Reference:
{
"type": "DecisionRecord",
"id": "decision-001",
"version": "1.0.0",
"challenge_profile_id": "challenge-001",
"decision": "promote",
"metrics": {},
"gate_results": [],
"selected_policy": {},
"failures": [],
"evaluator": {},
"artifact_hashes": {},
"timestamp": "...",
"provenance": {}
}
Normative core:
promote
retain
demote
inconclusive
Domain profile МОЖЕ додати additional statuses.
promote означає:
challenger набуває declared active/incumbent status у конкретному governance context.
Це НЕ означає global scientific superiority.
retain означає:
incumbent зберігає active status.
Це НЕ означає, що challenger «спростовано» у загальному сенсі.
demote означає:
policy втрачає active status без обов’язкового automatic promotion іншої policy.
inconclusive ПОВИНЕН використовуватися, коли:
evidence insufficient;
gates mixed;
challenge retrospective;
protocol incomplete;
uncertainty too high.
Reference:
{
"metric": "mean_detection_advantage",
"observed": 0.0706,
"operator": ">=",
"threshold": 0.05,
"passed": true
}
Якщо DecisionRecord має:
decision = promote
і ChallengeProfile має:
prospective = false
implementation ПОВИННА або:
reject record;
або mark record as non-conformant.
Для normative prospective promotion v1.0 СЛІД вимагати:
prospective = true
locked = true
challenge status = completed
all required promotion gates = passed
Retrospective result МОЖЕ бути збережений.
Він МОЖЕ:
motivate future challenge;
change confidence;
generate challenger;
support research discussion.
Він НЕ ПОВИНЕН masquerade as prospective confirmation.
Noetrail v1.0 рекомендує такі registry statuses:
draft
experimental
challenger
incumbent
deprecated
retired
superseded
Policy ще не stable.
НЕ СЛІД використовувати як production reference without warning.
Implementation stable enough for testing, але evidence limited.
Policy активно розглядається як candidate relative to defined context.
Policy має active status у конкретному context.
Registry ПОВИНЕН вказувати context, якщо статус може бути ambiguous.
Policy ще може використовуватися, але нове використання НЕ РЕКОМЕНДУЄТЬСЯ.
Policy більше не повинна використовуватися для нових decisions.
Policy має explicit replacement.
Наприклад:
{
"status": "superseded",
"superseded_by": {
"id": "risk-directed",
"version": "2.0.0"
}
}
Noetrail registry — це index policy metadata.
Minimum entry:
{
"policy_id": "anneal30",
"version": "0.3.0",
"title": "Anneal30",
"status": "incumbent",
"artifact": "https://..."
}
Registry НЕ ПОВИНЕН містити дві різні semantic artifacts з однаковою парою:
(policy_id, version)
Registry entry НЕ ОЗНАЧАЄ:
endorsement;
truth;
universal validity.
Registry лише забезпечує:
discovery;
identity;
metadata;
evidence links.
Noetrail v1.0 дозволяє multiple registries.
Наприклад:
registry.noetrail.org
psychology.example.edu/noetrail
lab.example.org/policies
No single registry є normative global authority.
Federated registry МОЖЕ посилатися на external registry entries.
Reference:
{
"external_registry": "https://example.org/registry",
"policy_id": "policy-x",
"version": "1.0.0"
}
Noetrail v1.0 передбачає:
"extensions": {}
Custom fields СЛІД розміщувати всередині extensions.
Extension key ПОВИНЕН бути namespaced.
Наприклад:
"extensions": {
"org.example.psychology": {
"construct_validity": "high"
}
}
НЕ СЛІД:
"extensions": {
"validity": "high"
}
через collision risk.
Extension НЕ ПОВИНЕН переозначувати semantics core field.
Наприклад extension не може змінити meaning:
prospective
або:
version
Domain Profile — це додатковий specification layer поверх core Noetrail.
Приклад:
Noetrail Psychology Profile 1.0
МОЖЕ визначати:
required fields;
extra actions;
domain-specific vocabulary;
validation constraints.
Object МОЖЕ містити:
"profiles": [
"https://example.org/noetrail/psychology/1.0"
]
Profile НЕ ПОВИНЕН порушувати core Noetrail semantics.
Наприклад profile НЕ МОЖЕ дозволити:
retrospective challenge = prospective confirmed promotion.
Reference validator v1.0 МОЖЕ повертати:
VALID
VALID_WITH_WARNINGS
INVALID
Object ПОВИНЕН бути INVALID, якщо:
required field missing;
type invalid;
version malformed under declared profile;
duplicate immutable identity;
semantic invariant violated.
Може використовуватися, якщо:
scope занадто broad;
provenance missing;
optional implementation unavailable;
no lock_reference despite locked=true, якщо profile не робить це hard error.
Validator СЛІД повертати machine-readable errors.
Наприклад:
{
"code": "NTRL-E102",
"field": "artifact_hash",
"message": "Required field missing"
}
Recommended v1.0 classes:
NTRL-E1xx — structural errors
NTRL-E2xx — identity/version errors
NTRL-E3xx — semantic errors
NTRL-E4xx — challenge lifecycle errors
NTRL-E5xx — registry errors
NTRL-E6xx — extension/profile errors
NTRL-E101
Missing required field
NTRL-E201
Duplicate policy identity
NTRL-E301
Retrospective promotion violation
NTRL-E401
Locked challenge modified
NTRL-E501
Registry duplicate entry
NTRL-E601
Extension namespace collision
Noetrail v1.0 визначає чотири reference conformance levels.
Implementation ПОВИННА:
parse JSON;
validate core schemas;
preserve unknown permitted extensions;
reject invalid required fields.
Implementation additionally ПОВИННА:
enforce identity/version semantics;
enforce prospective/retrospective distinction;
reject false post-hoc promotion;
preserve inconclusive;
enforce protected exploration semantics when declared.
Implementation additionally ПОВИННА:
export canonical Noetrail objects;
import another conformant implementation’s objects;
preserve core semantics;
preserve IDs, versions and hashes;
not silently discard unknown extensions.
Implementation additionally ПОВИННА:
maintain immutable version history;
maintain ChallengeProfile lifecycle;
maintain DecisionRecords;
preserve negative results;
preserve provenance links;
support policy status transitions.
System НЕ ПОВИННА просто писати:
Noetrail compatible
без level.
Рекомендована форма:
Noetrail v1.0 — Level 2 Semantic Conformant
або:
Noetrail v1.0 — Level 3 Interoperability Conformant
System МОЖЕ заявити:
Noetrail Schema Compatible
якщо вона лише читає JSON schemas.
Але НЕ ПОВИННА називати себе:
Fully Noetrail Conformant
без semantic requirements.
Будь-яка Level 2+ implementation ПОВИННА виконувати такі invariants:
I1. (id, version) визначає immutable semantic identity.
I2. Retrospective evaluation не стає prospective через пізніший metadata edit.
I3. promote не може бути valid prospective decision за prospective=false.
I4. inconclusive є допустимим outcome.
I5. Policy scope не дорівнює universal applicability.
I6. Schema validity не дорівнює scientific validity.
I7. Custom extensions не змінюють semantics core fields.
I8. Unknown valid extensions не повинні silently знищуватися під час round-trip.
Для Level 3 implementation:
import(object)
↓
export(object)
ПОВИННО зберігати:
core values;
IDs;
version;
extension data;
artifact references.
Formatting МОЖЕ змінитися.
Semantics НЕ ПОВИННІ.
Unknown top-level field outside extensions:
validator МОЖЕ:
reject;
warn;
залежно від declared strictness profile.
Reference strict profile:
custom fields СЛІД розміщувати тільки в extensions.
Implementation МОЖЕ мати:
strict
permissive
mode.
Strict:
unknown fields rejected.
Permissive:
unknown fields preserved з warning.
Для registries та signed releases СЛІД використовувати:
strict
Для exploratory development:
permissive
може бути зручнішим.
Implementation ПОВИННА мати механізм відрізнити:
policy applicable
від:
policy not applicable
Не кожна valid policy підходить до every EpistemicState.
{
"applicable": false,
"reason": "Required field measurement_uncertainty missing"
}
Noetrail validator НЕ ПОВИНЕН видавати:
scientifically valid
лише на основі schema conformance.
Допустимо:
structurally valid
semantic conformance passed
DecisionRecord НЕ ПОВИНЕН трактуватися як:
certificate of truth.
Він є:
record of policy evaluation under declared conditions.
Metric result ПОВИНЕН бути interpreted within challenge scope.
Наприклад:
RiskDirected > Anneal30
у конкретному benchmark НЕ ПОВИННО автоматично трансформуватися в:
RiskDirected > Anneal30 everywhere
ChallengeProfile СЛІД дозволяти:
{
"benchmark_exposure": {
"used_in_development": false,
"known_to_policy_author": false,
"known_to_implementation_author": true
}
}
Це optional v1.0 metadata, але рекомендується для serious evaluation.
Для AI-agent evaluations profile МОЖЕ містити:
possible_training_contamination
або:
unknown_training_exposure
Noetrail v1.0 не може технічно перевірити model training history, але може дозволити declaration.
Governance-conformant registry НЕ ПОВИНЕН видаляти failed challenge лише через negative result.
Допустимі причини видалення:
legal requirement;
sensitive data;
corruption;
invalid artifact.
У такому випадку SHOULD залишитися tombstone/metadata record.
Приклад:
{
"id": "challenge-017",
"status": "withdrawn",
"reason": "corrupted benchmark artifact",
"superseded_by": "challenge-018"
}
Після v1.0 release core schemas НЕ ПОВИННІ змінюватися без version increment.
Noetrail v1.0 означає стабільний semantic contract.
Patch release:
1.0.0 → 1.0.1
НЕ ПОВИНЕН ламати valid v1.0.0 objects.
Minor:
1.0 → 1.1
СЛІД зберігати compatibility, якщо можливо.
Major:
1.x → 2.0
МОЖЕ бути incompatible.
Core field СЛІД спочатку:
deprecated
і лише в наступному MAJOR release може бути removed.
Documentation СЛІД вказувати:
deprecated_since
replacement
removal_target
У technical terms Noetrail v1.0 можна звести до такого принципу:
Policies evolve; identities, evidence status and decision history must remain auditable.
Українською:
Політики можуть змінюватися; їхня ідентичність, доказовий статус та історія рішень повинні залишатися простежуваними.
Після цієї частини Noetrail v1.0 уже визначає:
Identity
id + version
Integrity
canonicalization + hash
Scientific context
EpistemicState
Decision rule
EpistemicPolicy
Evaluation contract
ChallengeProfile
Evaluation result
DecisionRecord
Discovery
Registry
Extensibility
Extensions + Profiles
Validation
Schemas + semantic invariants
Conformance
Levels 1–4
Тепер маємо вже не 8, а 16 core rules:
N1. Policy має explicit ID.
N2. Policy має explicit version.
N3. (id, version) є immutable semantic identity.
N4. Policy має scope.
N5. Missing required state data не можна silently invent.
N6. Policy output має відповідати declared action set.
N7. Protected exploration не можна silently optimize away.
N8. ChallengeProfile має explicit prospective status.
N9. ChallengeProfile має explicit lock status.
N10. Retrospective comparison не є prospective promotion.
N11. DecisionRecord може бути inconclusive.
N12. Failed challenges повинні зберігатися.
N13. Schema validity не є scientific validity.
N14. Extension не може змінити core semantics.
N15. Registry не є authority of truth.
N16. Transport та implementation не визначають policy identity.
Noetrail v1.0 ПОВИНЕН залишатися:
transport-agnostic
agent-framework-agnostic
programming-language-agnostic
repository-agnostic
Це означає, що один і той самий EpistemicPolicy object МОЖЕ передаватися через різні transport layers без зміни core semantics.
Наприклад:
Noetrail Object
|
+--> local file
|
+--> HTTP API
|
+--> A2A
|
+--> MCP resource/tool
|
+--> repository
|
+--> message queue
Policy:
risk-directed:1.0.0
залишається тією самою policy незалежно від того, чи вона передана:
як JSON file;
через REST API;
через A2A;
через MCP;
із repository.
Transport НЕ ПОВИНЕН змінювати:
id
version
scope
semantic meaning
artifact identity
Noetrail МОЖЕ інтегруватися з Agent-to-Agent protocol через reference на policy у agent metadata.
Conceptual mapping:
A2A Agent
|
+--> identity
+--> capabilities
+--> skills
+--> endpoints
+--> Noetrail EpistemicPolicy reference
Agent Card МОЖЕ містити extension на кшталт:
{
"extensions": {
"noetrail": {
"policies": [
{
"id": "risk-directed",
"version": "1.0.0",
"uri": "https://example.org/policies/risk-directed/1.0.0"
}
]
}
}
}
Це лише reference pattern.
Noetrail v1.0 НЕ ПОВИНЕН вимагати modification core A2A specification.
Agent capability:
run_experiment
не є EpistemicPolicy.
Capability означає:
агент уміє це виконати.
EpistemicPolicy означає:
правило визначає, коли це слід виконувати.
Це фундаментальна distinction.
Noetrail МОЖЕ використовувати MCP як tool/resource layer.
Наприклад:
EpistemicState
↓
EpistemicPolicy
↓
recommended action:
evidence_synthesis
↓
MCP tool:
systematic-review-server
Reference implementation МОЖЕ expose functions:
validate_policy
validate_state
validate_challenge
validate_decision
lookup_policy
list_registry
run_conformance
Приклад conceptual tool:
{
"name": "validate_policy",
"input": {
"policy": {}
}
}
Noetrail standard НЕ ПОВИНЕН вимагати MCP.
MCP integration є OPTIONAL interoperability profile.
Те саме стосується A2A.
Noetrail рекомендує використовувати зовнішню provenance infrastructure замість створення duplicate provenance ontology.
RO-Crate МОЖЕ використовуватися як container для:
policy artifact;
implementation;
benchmark;
dataset;
authorship;
software;
DecisionRecord;
challenge results
Conceptual mapping:
RO-Crate
|
+-- EpistemicPolicy.json
|
+-- implementation.py
|
+-- ChallengeProfile.json
|
+-- DecisionRecord.json
|
+-- benchmark.csv
|
+-- README
|
+-- authors / licenses / provenance
Core object МОЖЕ містити:
{
"provenance": {
"type": "ro-crate",
"uri": "https://example.org/ro-crate-metadata.json"
}
}
Noetrail provenance ПОВИНЕН відповідати принаймні на питання:
хто створив object?
коли?
яка version?
з якого source artifact?
які implementations використовувалися?
які evaluation artifacts пов’язані?
Навіть повний provenance НЕ означає:
scientific result is correct.
Provenance описує origin та lineage.
Scientific validity потребує окремого evidence.
Публічні stable artifacts СЛІД пов’язувати з persistent identifier, якщо це практично можливо.
Допустимі приклади:
DOI
ARK
Handle
stable URI
repository release URL
Noetrail v1.0 НЕ вимагає DOI для кожного object.
Наприклад:
{
"identifiers": [
{
"type": "doi",
"value": "10.xxxx/noetrail.policy.001"
}
]
}
DOI МОЖЕ посилатися не лише на policy, а на весь release package.
Public implementation СЛІД мати stable release.
Наприклад:
repository:
https://github.com/example/noetrail
release:
v1.0.0
commit:
abc123...
Branch name:
main
НЕ СЛІД використовувати як immutable scientific identifier.
Для scientific citation краще посилатися на:
release tag
commit hash
DOI
artifact hash
а не лише:
latest
main
master
Noetrail v1.0 не є security protocol.
Але implementation ПОВИННА враховувати integrity threats.
Основні threat classes:
T1 — artifact substitution
T2 — version spoofing
T3 — retrospective relabeling
T4 — benchmark leakage
T5 — registry poisoning
T6 — malicious policy behavior
T7 — provenance forgery
T8 — extension collision
T9 — replay of obsolete policy
T10 — unauthorized mutation
Threat:
файл policy змінено, але ID/version залишено тими самими.
Mitigation:
artifact hash
signed release
immutable repository release
Level 4 systems СЛІД verify hash before execution.
Threat:
risk-directed:1.0.0
публікується з різним behavior у різних місцях.
Registry СЛІД зберігати:
id
version
artifact hash
canonical URI
Threat:
після позитивного результату:
prospective = false
змінюється на:
prospective = true
Mitigation:
hash;
timestamp;
repository commit;
preregistration;
transparency log.
Threat:
policy tuned на benchmark, який подається як unseen.
ChallengeProfile СЛІД дозволяти declaration:
{
"benchmark_exposure": {
"policy_author": "unknown",
"implementation_author": "known",
"used_in_development": false
}
}
High-stakes evaluation МОЖЕ використовувати hidden benchmark service.
Policy receives task input, але:
benchmark generation code;
labels;
future challenge cases
можуть бути withheld до завершення evaluation.
Для AI models неможливо завжди довести, що benchmark ніколи не був у training data.
Тому ChallengeProfile МОЖЕ мати:
training_exposure:
unknown
unlikely
known
Не слід видавати unknown за none.
Threat:
malicious actor реєструє policy із misleading metadata.
Registry МОЖЕ використовувати:
signed publisher identity;
verified domain;
moderation;
trust labels;
reputation metadata.
Але schema validity сама по собі НЕ гарантує trust.
Conformant policy theoretically може рекомендувати harmful або unethical action.
Тому execution layer ПОВИНЕН застосовувати:
ethics
safety
legal
resource constraints
незалежно від policy recommendation.
Це фундаментальне правило:
EpistemicPolicy proposes; execution environment authorizes.
Тобто:
Policy recommends experiment
НЕ означає:
experiment automatically executes
Domain profile МОЖЕ вимагати:
human_approval_required = true
для:
clinical interventions;
human subjects;
hazardous experiments;
irreversible actions;
expensive resource allocation.
Якщо policy recommendation суперечить hard ethical/safety constraint:
constraint wins.
Implementation ПОВИННА або:
reject execution;
request approval;
produce alternative action.
Extension payload МОЖЕ містити malicious content.
Implementation НЕ ПОВИННА automatically execute:
code;
scripts;
URLs;
commands
лише тому, що вони присутні в extensions.
External URI ПОВИНЕН розглядатися як reference, а не trusted executable content.
Noetrail v1.0 НЕ вимагає mandatory digital signatures.
Проте high-assurance profiles МОЖУТЬ вимагати:
publisher signature
artifact signature
evaluation authority signature
Future-compatible representation:
{
"signature": {
"scheme": "external",
"uri": "https://example.org/signatures/policy.sig"
}
}
Core v1.0 не стандартизує cryptographic signature scheme.
Для prospective challenges СЛІД використовувати external timestamp mechanism, якщо evaluation має високе доказове значення.
Можливі mechanisms:
Git commit
repository release
DOI deposit
preregistration record
transparency log
timestamp authority
Append-only JSONL log сам по собі НЕ ПОВИНЕН називатися cryptographically immutable.
Точний термін:
application-level append-only history
якщо немає cryptographic chaining/signatures.
Future governance profile МОЖЕ додати:
hash chaining
Merkle trees
signed attestations
external transparency service
Але це не mandatory v1.0 requirement.
EpistemicState МОЖЕ містити sensitive data.
Public registry НЕ ПОВИНЕН вимагати публікації:
personal health data;
identifiable participant data;
confidential research data;
secret industrial information.
Core principle:
зберігати minimum information necessary для policy interoperability.
Замість sensitive evidence content МОЖНА використовувати:
reference
hash
access-controlled URI
summary metadata
Noetrail semantics сумісні як із public, так і private registries.
Object МОЖЕ бути:
public
restricted
private
embargoed
якщо domain profile це підтримує.
Noetrail v1.0 НЕ створює central scientific authority.
Reference governance model:
open specification
+
versioned releases
+
public change proposals
+
independent implementations
+
federated registries
Author або project maintainer МОЖЕ керувати reference repository.
Але:
control of repository НЕ означає epistemic authority над усіма implementations.
Open implementations МОЖУТЬ fork specification.
Але incompatible fork НЕ ПОВИНЕН називати себе:
Noetrail v1.0
якщо core semantics змінено.
Future standard changes СЛІД оформлювати як structured proposal.
Recommended fields:
proposal_id
title
motivation
affected_sections
backward_compatibility
security_implications
examples
status
Recommended:
draft
↓
discussion
↓
accepted / rejected
↓
scheduled
↓
released
Minor improvement НЕ ПОВИНЕН порушувати old valid objects без суттєвої причини.
Breaking semantic changes потребують:
major version increment
Documentation edit МОЖЕ бути PATCH.
Зміна meaning:
prospective
НЕ МОЖЕ бути PATCH.
Це MAJOR-level semantic change.
Registry operator ПОВИНЕН опублікувати:
inclusion rules;
update policy;
removal policy;
conflict policy;
moderation policy.
Якщо policy entry removed, registry СЛІД залишити:
tombstone
із reason, якщо це не суперечить legal/privacy requirements.
Noetrail допускає:
global registry
domain registry
institutional registry
private registry
без requirement одного центрального authority.
Якщо два registries мають:
same id + same version
але різний artifact hash:
це identity conflict.
Implementation ПОВИННА:
warn;
reject automatic merge;
require resolution.
Recommended fields:
{
"policy_id": "risk-directed",
"version": "1.0.0",
"artifact_hash": {
"algorithm": "sha256",
"value": "..."
},
"canonical_uri": "https://...",
"status": "challenger"
}
Registry status:
incumbent
ПОВИНЕН мати context reference, якщо можливі multiple contexts.
Наприклад:
{
"status": "incumbent",
"context": "benchmark-model-inadequacy-v1"
}
Benchmark release ПОВИНЕН мати:
id
version
scope
artifact hash
known limitations
development exposure
Якщо challenge cases змінені:
benchmark version ПОВИННА змінитися.
Silent replacement НЕ ДОПУСКАЄТЬСЯ.
DecisionRecord ПОВИНЕН посилатися на benchmark scope.
Наприклад:
Passed benchmark X v1.0
НЕ означає:
best scientific policy
High-value benchmark ecosystem СЛІД використовувати:
multiple benchmark families;
hidden cases;
rotating challenge sets;
adversarial generation;
external evaluation;
contamination declarations.
ChallengeProfile МОЖЕ містити:
{
"evaluation_authority": {
"id": "lab-xyz",
"role": "independent evaluator"
}
}
Noetrail НЕ ПОВИНЕН автоматично infer independence лише з поля:
role = independent
Це descriptive metadata.
Actual independence потребує external evidence.
Reference implementation НЕ має special scientific authority.
Conformant alternate implementation має право реалізовувати ту саму standard semantics.
Official/reference conformance suite ПОВИНЕН перевіряти щонайменше:
core required fields;
valid types;
unique identities.
retrospective promotion rejection;
lifecycle rules;
version immutability;
extension isolation.
import/export preservation;
unknown extension preservation.
immutable historical versions;
DecisionRecord retention.
Level 1 implementation ПОВИННА пройти:
C1 — valid EpistemicState accepted
C2 — valid EpistemicPolicy accepted
C3 — valid ChallengeProfile accepted
C4 — valid DecisionRecord accepted
C5 — missing required fields rejected
Додатково:
C6 — duplicate identity rejected
C7 — retrospective promotion rejected
C8 — inconclusive accepted
C9 — protected exploration invariant enforced
C10 — invalid lifecycle transition rejected
Додатково:
C11 — cross-implementation round-trip
C12 — ID preserved
C13 — version preserved
C14 — extension preserved
C15 — artifact hash preserved
Додатково:
C16 — historical version retained
C17 — negative challenge retained
C18 — DecisionRecord append-only history
C19 — provenance link retained
C20 — registry status transition recorded
Implementation має право заявити:
Noetrail v1.0 Level 4 Governance Conformant
лише якщо:
усі Level 1 tests passed;
усі Level 2 tests passed;
усі Level 3 tests passed;
усі Level 4 tests passed.
Recommended:
Standard:
Noetrail v1.0
Implementation:
Example Engine 2.1
Conformance Level:
Level 3 — Interoperability
Test Suite Version:
1.0.0
Result:
PASS
Date:
2026-XX-XX
Artifact Hash:
sha256:...
Conformance claim СЛІД супроводжувати:
test output;
implementation version;
test suite version;
artifact hash;
date;
environment metadata.
Implementation self-test:
self-conformance
Інша implementation:
cross-implementation conformance
Зовнішня institution:
external conformance evaluation
Ці три категорії НЕ СЛІД змішувати.
Reference Noetrail implementation має:
schemas;
validator;
registry;
examples;
clean-room secondary implementation;
conformance artifacts.
Це ПОВИННО описуватися як:
reference implementation with secondary clean-room conformance evidence
а не:
externally certified standard.
{
"type": "EpistemicPolicy",
"id": "example-risk-policy",
"version": "1.0.0",
"title": "Example Risk-Directed Policy",
"scope": {
"domain": "model inadequacy detection"
},
"input_profile": {
"required_fields": [
"evidence",
"uncertainty"
]
},
"output_contract": {
"required": [
"recommended_action"
]
},
"actions": [
"model_criticism",
"random_exploration"
],
"exploration": {
"protected": true,
"minimum_probability": 0.20
},
"artifact_hash": {
"algorithm": "sha256",
"value": "EXAMPLE_HASH"
}
}
{
"type": "ChallengeProfile",
"id": "challenge-example-001",
"version": "1.0.0",
"incumbent": {
"id": "policy-a",
"version": "1.0.0"
},
"challengers": [
{
"id": "policy-b",
"version": "1.0.0"
}
],
"metrics": [
{
"name": "mean_detection",
"direction": "maximize"
}
],
"gates": [
{
"metric": "mean_detection_advantage",
"operator": ">=",
"threshold": 0.05
}
],
"prospective": true,
"locked": true
}
prospective = true
locked = true
all required gates = passed
challenge status = completed
Тоді:
decision = promote
МОЖЕ бути conformant.
prospective = false
decision = promote
Це:
NTRL-E301 — retrospective promotion violation
і має бути rejected або marked non-conformant.
{
"type": "DecisionRecord",
"id": "decision-002",
"version": "1.0.0",
"challenge_profile_id": "challenge-002",
"decision": "inconclusive",
"timestamp": "2026-09-26T12:00:00Z"
}
Це повністю valid outcome.
Було:
policy-x:1.0.0
hash = AAA
Пізніше той самий:
policy-x:1.0.0
hash = BBB
Registry ПОВИНЕН виявити conflict.
Correct action:
new version
наприклад:
policy-x:1.0.1
або:
policy-x:2.0.0
залежно від nature change.
{
"extensions": {
"org.example.psychology": {
"construct_validity": "moderate",
"measurement_invariance": "unknown"
}
}
}
Core validator ПОВИНЕН preserve extension навіть якщо не розуміє domain semantics.
Reference standard release СЛІД мати metadata:
{
"standard": "Noetrail",
"version": "1.0.0",
"status": "stable",
"serialization": "JSON",
"schema": "JSON Schema Draft 2020-12"
}
Noetrail v1.0 може вважатися stable, якщо:
S1. core object model frozen;
S2. required fields frozen;
S3. semantic invariants frozen;
S4. core action vocabulary frozen;
S5. conformance levels frozen;
S6. reference schemas published;
S7. test suite published;
S8. versioned release archived.
Після release усі incompatible core changes ПОВИННІ йти в:
Noetrail 2.x
Не можна silently переписати v1.0.
Backward-compatible future additions можуть включати:
additional optional provenance fields;
new registry metadata;
additional error codes;
optional signature metadata;
additional standard profiles.
Major future version може розглядати:
policy composition;
multi-policy negotiation;
causal policy semantics;
trust/reputation;
formal utility models;
federated challenge protocols;
signed transparency logs.
Machine-readable representation релевантного стану знання, uncertainty, evidence та constraints.
Versioned rule/system, що maps EpistemicState to one or more EpistemicActions.
Knowledge-producing, knowledge-testing, knowledge-limiting або stop/defer action.
Machine-readable evaluation contract для one or more EpistemicPolicies.
Persistent representation evaluation result і epistemic status.
Policy, що currently active у specified context.
Policy, що оцінюється відносно incumbent або benchmark.
Criteria defined before relevant outcomes became available.
Criteria formulated after relevant outcomes were available.
Evaluation specification fixed under declared locking mechanism.
Cryptographic digest конкретного artifact.
Discovery/index system для policy metadata.
Domain-specific additional constraints поверх Noetrail Core.
Namespaced custom metadata, яка не змінює core semantics.
Ступінь відповідності implementation normative requirements Noetrail.
Implementation ПОВИННА відповісти YES на відповідні пункти її claimed level.
Objects мають stable IDs.
Version explicit.
(id, version) immutable.
Duplicate identity conflict detected.
EpistemicState parsed.
Required state fields enforced.
Missing scientific data not fabricated.
Scope explicit.
Input requirements explicit.
Output contract enforced.
Action set enforced.
Protected exploration enforced if declared.
Prospective flag mandatory.
Locked flag mandatory.
Lifecycle enforced.
Locked challenge cannot mutate silently.
inconclusive supported.
Retrospective promotion rejected.
Gate results retained.
Context preserved.
Duplicate identities rejected.
Historical versions preserved.
Status context preserved.
Negative evidence retained.
Unknown extensions preserved.
Round-trip semantics preserved.
Transport does not change identity.
External references preserved.
Version history retained.
Deprecated/retired states supported.
Decision history auditable.
Provenance links retained.
Найменша meaningful implementation v1.0 повинна вміти:
1. read EpistemicPolicy
2. validate EpistemicPolicy
3. read ChallengeProfile
4. enforce prospective/retrospective semantics
5. create DecisionRecord
6. preserve id/version/hash
Це приблизно відповідає:
Level 2 Semantic Conformance.
Production-grade scientific system СЛІД прагнути до:
Level 3 або Level 4.
Тобто:
interoperable import/export;
registry;
lifecycle;
provenance;
historical decisions.
Повна ecosystem architecture може виглядати:
Researcher / AI Agent
|
v
EpistemicState
|
v
EpistemicPolicy Registry
|
v
Policy Selection
|
v
EpistemicAction
|
v
A2A / MCP / Human / Workflow
|
v
New Evidence
|
v
Updated EpistemicState
І паралельно:
Incumbent Policy
+
Challenger Policy
|
v
ChallengeProfile
|
v
Evaluation
|
v
DecisionRecord
|
v
Registry Status Update
Жодна policy recommendation не повинна сама по собі створювати необмежене право на execution.
Execution control залишається окремим рівнем.
No policy has permanent epistemic privilege merely because it is current, complex, automated or previously successful.
Українською:
Жодна policy не має постійного епістемічного привілею лише тому, що вона чинна, складна, автоматизована або раніше була успішною.
Evidence status must not be upgraded retrospectively by metadata editing.
Тобто:
доказовий статус не можна підвищити заднім числом простим редагуванням metadata.
Standardize semantics; reuse transport.
Українською:
Стандартизувати слід семантику, а не дублювати транспортні протоколи.
Minimal core, extensible profiles.
Це означає:
Noetrail Core залишається малим.
Domain complexity переходить у:
profiles
extensions
registries
implementations
Conformance is not scientific truth.
Implementation може бути:
100% Noetrail conformant
і водночас реалізовувати слабку scientific policy.
Noetrail стандартизує representation та governance semantics, не істину.
Implementation може використовувати label:
“Noetrail v1.0 Conformant”
лише якщо:
вказано conformance level;
пройдена відповідна test suite;
implementation version зафіксована;
test result доступний;
немає known violation core semantic invariants.
Не слід писати:
“Certified by Noetrail”
якщо не існує formal certification authority.
Краще:
“Tested against Noetrail v1.0 Level 3 Conformance Suite.”
На момент цієї специфікації Noetrail v1.0 слід описувати як:
open project-defined technical specification and reference implementation
а не як:
ISO standard
government standard
internationally adopted standard.
Таке формулювання зберігає точність.
Noetrail v1.0 можна звести до одного formal statement:
A scientific epistemic policy should be representable as an explicitly identified, versioned, scoped and auditable object whose evaluation context and decision history preserve the distinction between prospective evidence, retrospective evidence and implementation metadata.
Українською:
Наукова епістемічна policy повинна бути представлена як явно ідентифікований, версійований, обмежений сферою застосування та аудитовний об’єкт, чий evaluation context і decision history зберігають різницю між проспективними доказами, ретроспективними доказами та metadata реалізації.
NOETRAIL v1.0
|
+-- Core Objects
| |
| +-- EpistemicState
| +-- EpistemicPolicy
| +-- ChallengeProfile
| +-- DecisionRecord
|
+-- Core Vocabulary
| |
| +-- 13 Epistemic Actions
|
+-- Identity
| |
| +-- ID
| +-- Version
| +-- Hash
|
+-- Evaluation
| |
| +-- Metrics
| +-- Gates
| +-- Prospectivity
| +-- Locking
|
+-- Governance
| |
| +-- Registry
| +-- Lifecycle
| +-- History
| +-- Deprecation
|
+-- Extensibility
| |
| +-- Extensions
| +-- Domain Profiles
|
+-- Interoperability
| |
| +-- A2A
| +-- MCP
| +-- RO-Crate
| +-- HTTP / files / repositories
|
+-- Conformance
|
+-- Level 1 Structural
+-- Level 2 Semantic
+-- Level 3 Interoperability
+-- Level 4 Governance
Noetrail v1.0 встановлює такі фундаментальні норми:
1. Policy повинна мати explicit identity.
2. Policy повинна мати immutable version semantics.
3. Policy повинна мати scope.
4. Missing scientific evidence не можна вигадувати.
5. Policy outputs повинні відповідати declared action set.
6. Protected exploration не можна silently eliminate.
7. Challenge має explicit prospective status.
8. Challenge має explicit lock status.
9. Retrospective comparison не може masquerade as prospective confirmation.
10. inconclusive є допустимим decision.
11. Failed challenge є evidence і не повинен зникати.
12. Registry не є authority of truth.
13. Schema validity не є scientific validity.
14. Transport не визначає policy identity.
15. Extensions не можуть переписувати core semantics.
16. Domain profiles повинні залишатися core-compatible.
17. Version history повинна бути auditable.
18. Artifact identity слід захищати hashes.
19. Execution authorization має бути окремим від policy recommendation.
20. No policy має permanent epistemic privilege.
Noetrail v1.0 не визначає, яка методологія науки є правильною. Він визначає мінімальний відкритий формат, у якому методологічні policy можуть бути представлені, версійовані, перевірені, порівняні, оскаржені, замінені та передані між людськими й машинними системами без втрати їхнього доказового статусу.