Evidence → Assertions → SEA-DSL Pipeline Audit (Repository-Based)

Method: code/config audit only. Deterministic, compiler-style logic preferred. LLMs treated as optional and absent unless wired. All claims cite file paths and symbols.

SEA-DSL is treated as the canonical semantic code for SEA-Forge; projections and compiler outputs must be derived from SEA-DSL rather than the other way around.

1) Executive Summary

2) Pipeline Step Mapping Table

Step Existing Code (paths + symbols) Readiness Notes
1) Evidence ingestion connectors (Okta, GitHub, CI/CD; Jira optional) None found. Only generic HTTP + GitHub PR automation unrelated to evidence ingestion: services/workbench-bff/src/adapters/pr_creator.py:GitHubPRCreator Missing No source connectors. A new ingestion service/adapter layer required.
2) Append-only Evidence Ledger (metadata DB + raw payload object store) Partial patterns: JSONL append-only audit logs in services/workbench-bff/src/adapters/ops_runner.py:_get_audit_log_path, services/workbench-bff/src/adapters/remediation_engine.py:_log_audit; EvidenceArtifact entity + command port exists in governance-runtime: libs/governance-runtime/domain/src/gen/entities/evidence_artifact.py:EvidenceArtifact, libs/governance-runtime/application/src/gen/commands/collect_evidence_command.py:EvidenceArtifactRepositoryPort Partial EvidenceArtifact repository adapter file referenced by tests but missing: libs/governance-runtime/adapters/src/gen/evidence_artifact_repository.py (imported in libs/governance-runtime/adapters/tests/integration/test_evidence_artifact_repository_integration.py). No object store.
3) Deterministic parsing of evidence → typed features OTLP normalization: services/workbench-bff/src/adapters/behavior_normalizer.py:BehaviorNormalizer and parsing helpers (OTLP trace/log/metric parsing). Partial Works for telemetry evidence; does not cover GitHub/Okta/CI payloads.
4) Deterministic semantic compiler/inference → ObservedAssertions Correlation & drift rules: services/workbench-bff/src/adapters/behavior_correlator.py:BehaviorCorrelator, services/workbench-bff/src/adapters/behavior_drift_classifier.py Partial Outputs correlation/drift, not ObservedAssertion schema. Can be mapped deterministically to ObservedAssertion.
5) Declared intent ingestion (deterministic parsing; optional LLM extraction) None found for document parsing or LLM-assisted extraction. LLM runtime exists but not wired to intent ingestion: services/llm-provider/src/main.py, services/llm-provider/src/adapters/litellm_adapter.py Missing No doc/PDF parser or declared-intent pipeline.
6) Deterministic SEA-DSL emitter (.evidence_observed.sea, .declared_intent.sea, .spec.sea) Compiler pipeline exists in reverse: .sea → AST → IR → manifest (just/62-compiler.just, tools/ast_to_ir.py, tools/ir_to_manifest.py). Template writer example: tools/sea_new_context.py Missing Need deterministic emitter to write .sea from assertions.
7) SEA-DSL projections (Protobuf + RDF/Turtle/XML) RDF/Turtle from IR: tools/ir_to_kgs.py (emits RDF triples, supports SHACL). Protobuf: SEA CLI sea project --format protobuf (Domainforge). Knowledge Graph service: services/knowledge-graph/src/api/routes.py Partial RDF export achievable via IR pipeline; protobuf export available from .sea via SEA CLI.

3) Capability Inventory (by step)

Step 1: Evidence ingestion connectors

Step 2: Evidence ledger

Step 3: Deterministic parsing to typed features

Step 4: Deterministic inference to ObservedAssertions

Step 5: Declared intent ingestion

Step 6: SEA-DSL emission

Step 7: Projections (protobuf, RDF)

4) Gap Analysis (what’s missing or incomplete)

5) Minimal-Change Implementation Plan (ordered checklist)

1) Define append-only evidence ledger models in a new handwritten module (avoid src/gen/**):

2) Implement EvidenceArtifact repository adapter (handwritten)

3) Wire CollectEvidence handler with deterministic logic

4) Add connector adapters (deterministic)

5) Reuse BehaviorNormalizer for telemetry evidence

6) Define ObservedAssertion & DeclaredAssertion schemas

7) Implement deterministic SEA-DSL emitter

8) RDF projection via existing pipeline

9) Use SEA CLI for protobuf projection

6) Garage Object Storage Plan (config + code touchpoints)

No existing S3/Garage integration found. Add a generic ObjectStore port + GarageS3 adapter.

7) Canonical Schemas (reuse or propose)

Reuse (existing):

Propose (new, minimal):

8) SEA-DSL Emission Strategy

Goal: deterministic .sea emission from Observed/Declared assertions with stable ordering.

9) Test & Verification Plan

Minimal tests to prove the pipeline:

1) Connector ingests sample payload → EvidenceEvent written

2) Compiler produces stable ObservedAssertions

3) SEA emitter produces deterministic .sea files

4) SEA validation passes


Assumptions