Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
7b38d1a
feat(event-intelligence): add dossier validator CLI entrypoint
seonghobae Aug 19, 2026
0355701
fix(event-intelligence): require structured orchestrator adjudication
seonghobae Aug 19, 2026
12a6913
feat(event-intelligence): add evidence-bound dossier validator
seonghobae Aug 19, 2026
e024109
feat(event-intelligence): add dossier validation CLI
seonghobae Aug 19, 2026
cf333ab
docs(event-intelligence): add 2.18.3 changelog fragment
seonghobae Aug 19, 2026
f986c5c
feat(event-intelligence): add Dossier v1 JSON Schema
seonghobae Aug 19, 2026
98a3cbf
docs(event-intelligence): add canonical Dossier v1 example
seonghobae Aug 19, 2026
8065b6f
docs(event-intelligence): add OWL-Time and PROV-O profile
seonghobae Aug 19, 2026
dabd05d
test(event-intelligence): lock structured adjudication contract
seonghobae Aug 20, 2026
d3f8939
test(event-intelligence): cover dossier authority and cutoff invariants
seonghobae Aug 20, 2026
8fa15fb
test(event-intelligence): cover validator CLI
seonghobae Aug 20, 2026
61714ac
test(event-intelligence): lock published schema and example
seonghobae Aug 20, 2026
0e620ff
test(event-intelligence): validate OWL-Time and PROV-O profile
seonghobae Aug 20, 2026
7dab1b0
docs(event-intelligence): record authority-preserving ADR 0093
seonghobae Aug 20, 2026
aef1f88
docs(event-intelligence): document buyer dossier workflow
seonghobae Aug 20, 2026
d852538
docs(event-intelligence): add APA 7 research traceability
seonghobae Aug 20, 2026
526469b
Merge commit '55eb8385de2877ce7ba38b0ba4fbfa798aa21c51' of https://gi…
seonghobae Aug 20, 2026
1c01ed0
Merge commit '733c6978929ad45b9ce9407a83d0a1c940d2acaf' of https://gi…
seonghobae Aug 20, 2026
1c0e2f5
fix: tighten event intelligence evidence contracts
seonghobae Aug 20, 2026
b8f9304
Merge current authenticated MCP base into Event Intelligence
seonghobae Aug 20, 2026
3ca701b
merge: propagate current MCP base
seonghobae Aug 20, 2026
b1c92d6
Merge remote-tracking branch 'origin/agent/authenticated-mcp-global-a…
seonghobae Aug 20, 2026
3503578
fix: make dossier digests interoperable
seonghobae Aug 20, 2026
384b5f1
merge: restack evidence-bound event intelligence
seonghobae Aug 20, 2026
749346c
fix: preserve missing adjudication semantics
seonghobae Aug 20, 2026
d1bf211
Merge remote-tracking branch 'origin/agent/authenticated-mcp-global-a…
seonghobae Aug 20, 2026
35d33c7
Merge remote-tracking branch 'origin/agent/authenticated-mcp-global-a…
seonghobae Aug 20, 2026
99bd29f
test: expose event intelligence ontology role conflicts
seonghobae Aug 21, 2026
3d9223c
test: require SHACL boundaries for event intelligence
seonghobae Aug 21, 2026
3a93d53
fix: separate PROV activities from event evidence entities
seonghobae Aug 21, 2026
4afd003
feat: publish Event Intelligence SHACL constraints
seonghobae Aug 21, 2026
8626267
docs: amend ADR 0120 for PROV and SHACL boundaries
seonghobae Aug 21, 2026
e0ce966
docs: trace PROV activity and SHACL decisions
seonghobae Aug 21, 2026
e58bb24
docs: note corrected Event Intelligence semantic profile
seonghobae Aug 21, 2026
68974f5
Merge remote-tracking branch 'origin/agent/authenticated-mcp-global-a…
seonghobae Aug 21, 2026
42f7088
Merge remote-tracking branch 'origin/agent/authenticated-mcp-global-a…
seonghobae Aug 21, 2026
6770e30
Merge remote-tracking branch 'origin/agent/authenticated-mcp-global-a…
seonghobae Aug 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions CHANGELOG.d/2.18.3-event-intelligence-dossier.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# 2.18.3 Event Intelligence Dossier

LineageWeave can now compose a strict, digest-bound Event Intelligence Dossier
from source evidence, multi-clock temporal context, its knowledge graph and
ontology, TEPP temporal/topic artifacts, fast-mlsirm psychometric artifacts,
and a structured contextual-orchestrator verdict. The channels keep separate
methods, versions, uncertainty, and authority; unavailable channels are
explicit and no blended event score is invented. A JSON Schema, versioned
OWL-Time/PROV-O profile, SHACL shapes, canonical example, and validator CLI are
included.

The semantic profile separates the generated dossier entity from the
`prov:Activity` that used evidence and generated it. Source posts now support a
first-class EventAssertion instead of being classified as influences on the
real-world event, while the compact Buyer `evidencesEvent` edge remains a
non-causal read-model projection. Event intervals and assertion, document,
availability, and cutoff instants are explicitly grounded in OWL-Time.

The legacy contextual-orchestrator lineage adjudication path now requests one
strict JSON verdict, treats record labels as untrusted JSON evidence, requests
the orchestration trace, and fails closed on malformed, duplicated, non-finite,
or free-form output instead of regex-extracting an arbitrary number.
5 changes: 4 additions & 1 deletion docs/adr/0015-adaptive-contextual-orchestrator-default.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ Ordinary LineageWeave LLM consumers request `mode="auto"`.

The orchestration plane owns provider/model selection, test-time compute, workflow depth, verification, fallback, and known-price optimization. Quality sufficiency is the first constraint; cost is minimized among execution paths that satisfy it. Unpriced models are not treated as free.

Explicit `verify` remains for the citation-bearing post-chat and lineage adjudication paths because those are deliberate checked-judgment contracts, not product defaults. Explicit route or conduct modes may be used only for documented ablation, incident response, or a bounded domain requirement.
Checked post-chat and lineage-adjudication paths retain strict evidence and
output contracts while using `mode="auto"` under ADR 0079 and their
consumer-specific ADRs. Explicit route or conduct modes may be used only for
documented ablation, incident response, or a bounded domain requirement.

LineageWeave continues to own strict output parsing, evidence identifiers, IRT projection, and fail-closed domain validation.

Expand Down
4 changes: 3 additions & 1 deletion docs/adr/0064-lineage-evidence-and-tree-assembly.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ or promoting an inferred relation to fact.
- Fuse independent temporal, secondary-key, text/embedding, and optional LLM
channels through the RankWeave weighted convex fusion contract. A missing
channel is dropped and weights are renormalized; it is never replaced with a
fabricated negative or score.
fabricated negative or score. A structured `refuted` verdict remains a real
negative score; `insufficient_evidence` drops the LLM channel for that whole
candidate comparison so every candidate is ranked with the same weights.
- Keep the channel-score breakdown and provenance on every candidate decision.
Candidates below the minimum fused-score floor remain roots rather than being
force-attached.
Expand Down
263 changes: 263 additions & 0 deletions docs/adr/0120-event-intelligence-dossier.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,263 @@
# ADR 0120: Compose Event Intelligence without collapsing scientific or provenance authorities

- **Status:** Accepted; amended 2026-08-21
- **Date:** 2026-08-20
- **Decision owners:** LineageWeave product and scientific integration maintainers
- **Related:** ADR 0003, ADR 0004, ADR 0016, ADR 0034, ADR 0065, ADR 0074, ADR 0079, TEPP ADR 0011

## Context

The Buyer-surface stack ending at PR #264 makes LineageWeave evidence easier to
reach, but the product still exposes its event-intelligence inputs as separate
features:

- the LineageWeave knowledge graph computes an evidence-backed neighborhood;
- the LineageWeave ontology provides semantic identifiers and labels;
- TEPP owns temporal-event and topic-model scientific artifacts;
- fast-mlsirm owns calibrated psychometric estimates and their uncertainty;
- contextual-orchestrator supplies bounded model routing and LLM judgment; and
- source posts and model artifacts carry independent provenance.

No versioned object required all of these channels to share the same immutable
snapshot, knowledge cutoff, evidence identities, ontology references, method
versions, uncertainty, and content digests. A UI or downstream integrator could
therefore join unrelated clocks, show an LLM verdict as though it were a
psychometric score, or omit an unavailable scientific channel without saying
that it was unavailable.

The first ontology profile correctly treated the dossier as a `prov:Entity`,
but also made `usesEvidenceBundle` a subproperty of `prov:used` with the dossier
as its domain. Because PROV-O defines `prov:used` for an activity using an
entity, ordinary RDFS reasoning would infer that the dossier entity was also a
`prov:Activity`. The same profile made the direct Post-to-EventEpisode
`evidencesEvent` edge a subproperty of `prov:influenced`, which could be read as
the later source document influencing the real-world event rather than
supporting an assertion about it.

Those are semantic-model defects, not cosmetic vocabulary choices. They would
make standards-aware consumers infer roles the product does not intend.

## Decision

LineageWeave publishes **Event Intelligence Dossier v1** as an evidence-bound,
deterministic composition contract. The wire contract remains version 1 because
this correction occurs before the profile is released on protected `main`.

### Dossier entity and generation activity

The dossier is a buyer-facing read artifact and a `prov:Entity`; it is not an
estimator or an activity. A separate `DossierGenerationActivity`, subclassed
from `prov:Activity`, represents deterministic composition.

```text
DossierGenerationActivity
-- usesEvidenceBundle / prov:used --> EvidenceBundle
-- usesEventAssertion / prov:used --> EventAssertion
-- generatesDossier / prov:generated --> EventIntelligenceDossier
```

This preserves the PROV-O domain and range contract instead of relying on a
single resource to be both the process and its output.

### Event, assertion, and source separation

A source post is not the event and is not asserted to have caused the event.
The profile therefore introduces `EventAssertion` as a first-class
`prov:Entity`:

```text
EventAssertion
-- supportedBySource / prov:wasDerivedFrom --> LineageWeave Post
-- assertsEvent --> EventEpisode
```

The existing `evidencesEvent` Post-to-EventEpisode relation remains available
as a bounded Buyer read-model convenience edge. It is deliberately **not** a
subproperty of `prov:influenced`, does not transfer source authority to an
inference, and has no causal meaning. Producers that publish full RDF should
retain the mediating assertion; bounded Buyer graph projections may publish the
convenience edge together with the same evidence identifiers.

### Multi-clock temporal semantics

The dossier keeps six distinct clocks: event start/end, assertion, document,
availability, and knowledge cutoff. Exact RFC 3339 values remain in the JSON
contract and corresponding RDF datatype properties. The profile additionally
uses OWL-Time resources:

- an `EventEpisode` has exactly one temporal extent represented as a
`time:Interval` in the published SHACL profile;
- assertion, document, availability, and cutoff clocks may be represented as
`time:Instant` resources; and
- forward transitions remain distinct from retrospective reporting.

A later document may describe an earlier event, but that reporting relation
must never become a reverse state transition.

### Versioning and imports

`docs/ontology/event-intelligence-profile.ttl` declares a stable ontology IRI,
`owl:versionIRI` for profile 1.0.0, and metadata imports for the LineageWeave
base ontology, PROV-O, and OWL-Time. Runtime code and tests parse committed
artifacts only and do not dereference imports over the network.

### SHACL interchange constraints

`docs/ontology/event-intelligence-profile.shacl.ttl` publishes closed-world
constraints for the semantic boundaries that OWL/RDFS alone should not be
expected to reject:

- one evidence bundle and one generated dossier per generation activity;
- one asserted event and at least one source per event assertion;
- one OWL-Time interval per event episode;
- required assertion, document, event-start, and knowledge-cutoff values; and
- class constraints for PROV entities/activities and OWL-Time instants/intervals.

The repository tests parse and inspect both the ontology and the SHACL graph.
The production JSON validator remains authoritative for the current JSON wire
artifact; the SHACL document is the standards-based RDF validation contract for
external graph consumers.

## Dossier contents

The dossier contains:

1. a source snapshot identity and the six distinct clocks;
2. versioned ontology references for event and graph assertions;
3. immutable evidence references with source authority, URI, digest,
availability time, and recorded time;
4. an evidence-backed LineageWeave graph neighborhood and method-labelled
relevance with uncertainty;
5. an optional TEPP artifact that uses the same snapshot and cutoff and retains
TEPP model, engine, and digest identity;
6. an optional fast-mlsirm artifact that retains its construct scale, estimate,
standard error, model, engine, and digest identity;
7. an optional contextual-orchestrator verdict that cites evidence and records
trace, operation, policy, prompt digest, verdict, confidence, and rationale;
8. buyer-facing claims whose complete supporting evidence IDs are explicit;
and
9. a SHA-256 over the RFC 8785 JCS canonical dossier payload after removing
`dossier_sha256`.

The JSON Schema is `schemas/event_intelligence_dossier_v1.schema.json`. The
runtime implementation is `lineageweave.event_intelligence`; the validator CLI
is `lineageweave-validate-event-intelligence`.

## Authority rules

| Channel | What it may assert | What it may not replace |
|---|---|---|
| LineageWeave knowledge graph | Graph neighborhood and graph relevance | TEPP topic inference or psychometric calibration |
| LineageWeave ontology | Semantic identifiers and relation meaning | Observed source evidence |
| TEPP | Temporal/topic artifact under its own model contract | LineageWeave authorization or source-of-record data |
| fast-mlsirm | Calibrated estimate and uncertainty on a named scale | TEPP temporal/topic truth |
| contextual-orchestrator | Evidence-bounded supported/refuted/insufficient verdict | Numerical relevance or psychometric measurement |
| source evidence | What was available and recorded | Model-derived inference or real-world causation |

The composer never averages these outputs into one number. A missing TEPP,
fast-mlsirm, or orchestrator channel is serialized as exactly
`{"status_code":"unavailable"}` rather than a zero, null score, or fabricated
fallback.

## Temporal and validation rules

Every evidence item must satisfy:

```text
available_time <= knowledge_cutoff
```

The TEPP artifact must match both `source_snapshot_id` and
`knowledge_cutoff`. Event time may precede assertion, document, or availability
time; those clocks remain separate so retrospective reports do not leak into a
historical model.

Runtime reconstruction rejects:

- unknown or missing fields;
- non-UTF-8 or invalid JSON in the CLI;
- future evidence relative to the cutoff;
- unknown evidence IDs;
- graph edges whose endpoints are absent;
- mismatched TEPP snapshot or cutoff;
- orchestrator attempts to add a psychometric score;
- free-form, duplicated-field, non-finite, out-of-range, or malformed lineage
adjudication output;
- unsupported channel states; and
- altered payloads whose dossier digest no longer matches.

The ontology tests additionally reject a return to a dossier-domain
`prov:used`, a Post-to-Event PROV influence, a generic temporal-entity range,
or an unversioned/unimported profile.

## Consequences

### Positive

- Standards-aware consumers no longer infer that a dossier entity is also its
generation activity.
- A source document supports an assertion about an event instead of being
represented as an influence on that real-world event.
- Buyers receive one inspectable event-intelligence artifact rather than a set
of unrelated widgets.
- Disagreement between graph, topic, psychometric, and judge channels remains
visible and auditable.
- TEPP and fast-mlsirm can evolve behind their own versioned contracts without
LineageWeave reimplementing their mathematics.
- JSON consumers retain the strict existing contract while RDF consumers gain
versioned imports and SHACL constraints.

### Costs and limitations

- Full RDF exchange contains an additional assertion node and generation
activity that compact Buyer graph projections may omit.
- Publishing SHACL shapes does not turn the current JSON runtime into a generic
RDF store or SPARQL service.
- This ADR defines composition and validation, not a live TEPP HTTP service or
a new fast-mlsirm estimator.
- A backend projection and Buyer UI still need to select authorized artifacts
and render the dossier.
- Causal claims remain out of scope unless a separately validated model and
claim type support them.
- An LLM verdict remains a fallible judgment channel and must be calibrated and
compared with human or statistical evidence for high-stakes use.

## Rejected alternatives

### Treat the dossier as both Entity and Activity

Rejected because `prov:used` and `prov:generated` describe activity behavior.
Using them directly from the dossier makes reasoners infer an unintended
activity type and conflates a process with its output.

### Make the source post influence the event episode

Rejected because a report can be created after the event and may only support
an assertion about it. A generic PROV influence edge is too broad and invites a
causal reading the product cannot justify.

### One blended event-relevance score

Rejected because the component scales and authorities are not interchangeable,
and a weighted average would obscure uncertainty and disagreement.

### Copy TEPP topic or fast-mlsirm estimation into LineageWeave

Rejected because production numerical authority belongs in those repositories,
and duplicated implementations would drift.

### Let contextual-orchestrator synthesize the complete artifact without a
strict schema

Rejected because source text is untrusted, free-form output is not a durable
contract, and an LLM must not decide the scientific acceptance boundary.

### Store only prose with citations

Rejected because buyers and downstream systems need machine-checkable clocks,
method versions, uncertainty, ontology identifiers, and content digests.

## References

See `docs/doctoring/EVENT_INTELLIGENCE_REFERENCES.md` for APA 7th references
and requirement traceability, including PROV-O, OWL-Time, and SHACL.
Loading
Loading