Historical document. This plan is preserved from source revision
61e75e9; it is not current implementation guidance. Original source.
Add version-aware base/strict policy for OKF v0.1 and v0.2 without expanding hard conformance beyond §11.
Dependencies: task09.md, task10.md.
| Target | Base | Strict |
|---|---|---|
0.1 |
existing contract | legacy timestamp/# Citations |
0.2 |
§11 | v0.2 field families/computation guidance |
| absent | v0.2 + §13 fallbacks | validate present field families |
| future | best-effort | only the safe, known subset |
Version resolution must be a shared domain API, not a validator-local heuristic.
ERROR:
type;WARNING, strict/policy only:
Missing optional families, unknown types/keys/runtimes, and broken resources/paths are not conformance errors.
Each new diagnostic receives a stable Code, a file, and an exact field path
such as sources[2].resource.
sources is a sequence of mappings.resource is required and is a non-empty scalar in every entry.id, title, and author when present.usage_count is a non-negative integer under the toolkit profile.usage_window has from/to, valid dates, and from <= to.usage_count requires an effective window.sources[].resource may be a scope descriptor.sources[].author only as a non-empty string because of the upstream
team:* ambiguity.generated is a mapping; by is required inside a present mapping;
at, when present, is RFC3339.generated.by/verified.by.verified accepts a mapping or a sequence.by/at; normalize a bare mapping.generated is entirely absent.draft|stable|deprecated, absent → stable.stale_after: valid YYYY-MM-DD.today == stale_after means stale.Support absolute URLs, bundle-relative paths, and relative paths for:
resource;computation;executor.resource;attester.resource.Do not check the network/target existence as a conformance requirement.
For the exact type:
runtime is non-empty; unknown values are allowed;{name,type,required}, with unique names and boolean
required;# Computation;Missing runtime/computation/executor/attester remain strict warnings, not base errors. Do not validate the deferred ABI.
[1] in explicit v0.2 does not automatically enable legacy policy.Add groups v02/positive, v02/strict, v02/compat,
v02/adversarial.
Cover:
ErrorCount == 0.All tests use AAA; output is deterministic.
timestamp in v0.2.go test ./validator ./bundle and go test ./... pass.Execution, receipt/verdict ABI, attester runtime/sandbox/cache, runtime-specific binding, network checks, and migration.