Parent contract: #140
Program: #130
Depends on: #143 acceptance gate
Dependency
Start only after slice B (#143) supplies governed records and evidence refs.
Owned paths
backend/schemas/data_artifact.py
backend/models/data_artifact.py
backend/migrations/versions/m0n1o2p3q4r5_add_data_brief_artifacts.py
backend/plugins/data_analysis/manifest.py
backend/plugins/data_analysis/service.py
tests/unit/test_data_analysis_plugin.py
Required behavior
Implement analysis.brief.create as the reference-enabled but kernel-optional Data Analysis Plugin. Accept only the approved deterministic finite operations: schema/profile; completeness/duplicate/type quality; extraction/extractive summary; grouping/comparison/stable sorting; time trends; simple rule anomalies. Persist immutable Data Brief Artifact, Artifact Manifest and Claim Ledger with full Project/Run/Observation/Record/version/hash lineage. Unsupported claims are not findings.
Acceptance gate
Canonical input plus pinned operation/plugin versions reproduces the same Artifact hash. Missing plugin returns capability_unavailable without fallback. Tests cover idempotent replay, quality operations, bounded outputs, unsupported-claim exclusion, redaction, cross-Project denial and immutable hash integrity before slice D starts.
Parent contract: #140
Program: #130
Depends on: #143 acceptance gate
Dependency
Start only after slice B (#143) supplies governed records and evidence refs.
Owned paths
backend/schemas/data_artifact.pybackend/models/data_artifact.pybackend/migrations/versions/m0n1o2p3q4r5_add_data_brief_artifacts.pybackend/plugins/data_analysis/manifest.pybackend/plugins/data_analysis/service.pytests/unit/test_data_analysis_plugin.pyRequired behavior
Implement
analysis.brief.createas the reference-enabled but kernel-optional Data Analysis Plugin. Accept only the approved deterministic finite operations: schema/profile; completeness/duplicate/type quality; extraction/extractive summary; grouping/comparison/stable sorting; time trends; simple rule anomalies. Persist immutable Data Brief Artifact, Artifact Manifest and Claim Ledger with full Project/Run/Observation/Record/version/hash lineage. Unsupported claims are not findings.Acceptance gate
Canonical input plus pinned operation/plugin versions reproduces the same Artifact hash. Missing plugin returns
capability_unavailablewithout fallback. Tests cover idempotent replay, quality operations, bounded outputs, unsupported-claim exclusion, redaction, cross-Project denial and immutable hash integrity before slice D starts.