The dataset you prepared is used in layers.

Think of it like this:

Layer 1: Historical source data
Layer 2: Normalized observations
Layer 3: Memory writer
Layer 4: WorkflowMemory DB records
Layer 5: Memory retriever
Layer 6: Safe agent context
Layer 7: Feedback/update loop

Layer 1: Historical source data

These files are the raw-but-safe history:

historical-claims.json
human-corrections.json
prior-review-decisions.json
agent-action-history.json

They summarize past workflow events. For example, historical-claims.json stores old claim outcomes and explicitly says memory is not future claim evidence.

Layer 2: Normalized observations

memory-observations.json converts all different history types into one common format:

sourceType
entityType
entityId
fieldPath
riskLevel
recommendedMemoryKind
summary
safeUse
mustNotDo
evidenceJson

This is the clean input for the memory writer. Your file already has 10 observations with this shape.

Layer 3: Memory writer

Day 3 should build something like:

createWorkflowMemoryFromObservation(observation)

It reads:

history/memory-observations.json

Then creates DB memory records.

Pseudo-flow:

for each observation:
  if shouldCreateMemory is false:
    skip

  create WorkflowMemory:
    kind = recommendedMemoryKind
    status = ACTIVE
    riskLevel = observation.riskLevel
    summary = observation.summary
    safeUse = observation.safeUse
    mustNotDo = observation.mustNotDo
    entityType = observation.entityType
    entityId = observation.entityId
    fieldPath = observation.fieldPath
    tags = observation.tags
    evidenceJson = observation.evidenceJson

This maps directly to your Prisma WorkflowMemory model, which already has fields like kind, status, riskLevel, summary, safeUse, mustNotDo, entityType, entityId, fieldPath, tags, and evidenceJson.