Rapport · Engineering case study
A better prompt should not break storage.
New extracted fields are useful only if the rest of the system can accept them. I extended extraction compatibly and proposed a storage boundary that can evolve with the model.
PythonExtraction pipeline
PostgreSQLProposed JSONB storage
The decisions
Three decisions, the reasoning behind each, and what changed as a result.
A new signal shouldn’t break an existing reader.
{
"summary": "Service visit",
"sentiment": "neutral",
"next_steps": [
"Call with an update"
],
"objections": [
"Previous delay"
],
"confidence": 0.87
}The summary, sentiment, and next_steps fields stay available as objections and confidence are added.
Compatible additionsSwitch prompt versions. Useful additions appear while the earlier contract remains.
How it works
A quick guide to the interactive flow on this page.
Dynamic contentClick each step to see a different part of the story.
The outcome
Compatible extraction now. A looser storage boundary proposed.
Prompt schemas were extended while preserving earlier readers. Versioned raw events, a canonical signal registry, and serving views form the separate architecture proposal.