Narrative Context Protocol (NCP)
The Narrative Context Protocol (NCP) is the portable story object behind Narrova's working notebook. In plain language, it is the format that lets you take your Storyform, authored notes, and evolving story development into other platforms, tools, and AI-enabled devices without losing the narrative meaning that holds the work together.
The public repository lives at github.com/narrative-first/narrative-context-protocol. Go there when you want to inspect the schema, validate payloads, or build around the same narrative object the platform uses internally.
Concept
NCP is an open narrative format for carrying story state across systems. It can represent Storyform structure, Throughline material, Storypoints, Storybeats, Perspectives, Overviews, Players, and authored prose. That makes it more than a generic export file. It is a working narrative object.
Most file formats preserve text. NCP preserves context. In plain language, that means it keeps the relationship between conflict, Perspective, progression, and Storyform choices so another system does not have to guess what your notes mean.
Inside the Dramatica Narrative Platform, NCP also serves a second job. It is the live notebook object Narrova uses while a conversation is in progress.
IMPORTANT
NCP is not just a final download. In Narrova, it is the active workspace object tied to the current conversation.
Why It Matters
The platform deliberately keeps two synchronized representations of the same work:
- Storyform Context is the platform-native saved record used by Subtxt, Storyform Builder, and related app surfaces.
- NCP is the portable workspace object used in Narrova conversations and downloads.
This distinction matters because each layer solves a different problem. Storyform Context gives you stable saved application state. NCP gives you a portable object that can travel outside the platform without collapsing everything into loose prose.
That is why the workflow can stay fluid. You can brainstorm in Narrova, tighten structure in Storyform Builder, refine Storytelling in Subtxt, and still end up with one evolving Storyform instead of three drifting versions of the same idea.
The sync is also bidirectional. Changes saved in Narrova can be reflected back into Storyform-backed platform state, and changes saved in Subtxt or Storyform Builder can refresh the active NCP object in Narrova. In plain language, the Storyform and the notebook stay aligned while you work.
In The Platform
When a conversation is attached to a Storyform, Narrova uses the active NCP notebook as the writable conversation workspace. Subtxt and Storyform Builder continue to save against the Storyform Context. The system then keeps those two surfaces synchronized.
Work from Storyform into NCP
- Location:
Storyform BuilderorSubtxt. - Action: Save a Storyform change such as a Throughline selection, a Perspective summary, or a Storypoint update.
- Outcome: The Storyform Context updates, and any active Storyform-backed NCP notebook can refresh to reflect the new state.
- Validation: Open Narrova on the same Storyform. The conversation should continue from the revised Storyform state rather than the older one.
Work from Narrova into Storyform-backed state
- Location:
Narrova → conversation attached to a Storyform. - Action: Use the active notebook workflow to save structured story development into the NCP workspace.
- Outcome: Narrova updates the current NCP object immediately, and matching Storyform-backed fields can be reconciled back into the saved Storyform Context.
- Validation: Open the same Storyform in Subtxt or Storyform Builder and confirm the corresponding structured material is now available there as well.
Download the portable object
- Location:
Storyform Builder → Download NCP,Subtxt → Writing → Downloads → Complete NCP Package, or the Narrova NCP workspace controls when available. - Action: Download the current NCP package.
- Outcome: The platform generates a portable narrative object you can archive, inspect, import elsewhere, or use in another tool.
- Validation: The file contains structured story data rather than just copied prose. You should be able to inspect the JSON and see Storyform-linked narrative content inside it.
TIP
Keep Subtxt open in one tab and Narrova open in another when developing the same Storyform. That is the fastest way to feel the sync model in practice.
What "live" means
Live updates do not wait for manual re-export. When a save happens against the current Storyform, the open workspace tied to that Storyform updates so already-open tabs can reflect the new state.
In practice, that means a Subtxt tab already open on the same Storyform can receive the new state proactively, and a Narrova conversation attached to that Storyform can continue from the updated notebook instead of stale context.
What "retroactive" means
Retroactive updates are bidirectional. Changes made in Narrova can update the Storyform-backed side, and changes made in Subtxt or Storyform Builder can update the active NCP object in Narrova.
In plain language, you are not choosing one true workspace and abandoning the other. You are working against one evolving Storyform through two synchronized surfaces.
What NCP can preserve
Depending on what you have already developed, NCP can carry:
- Story title and narrative envelope
- Throughline structure and Dynamics
- Perspectives and Overviews
- Storypoints and Storybeats
- Players and related authored material
- Subtext and Storytelling prose tied to those nodes
NCP is also allowed to be incomplete while you are still developing. That is intentional. A partial notebook update is treated as a partial update, not as an instruction to delete everything not mentioned yet.
IMPORTANT
Storyform completeness and NCP completeness are not the same thing. A saved Storyform can be structurally complete while the active NCP notebook still contains only the parts you are actively developing.
Common Mistakes
- Treating NCP as only a final export. Correction: use it as an active working object throughout development, then download it when you need a portable package.
- Assuming omitted fields mean deletion. Correction: in normal notebook-driven work, partial NCP updates are treated as partial saves unless you intentionally request a full replacement workflow.
- Leaving important decisions only in chat prose. Correction: save them into the notebook or Storyform-backed surfaces so the structure can travel with the idea.
- Treating Subtxt and Narrova as separate story records. Correction: attach both to the same Storyform and let the sync model keep them aligned.
Writing Use
Use NCP when you want to stay focused on developing the story rather than managing handoffs between tools. Build or refine the Storyform in Storyform Builder or Subtxt, develop meaning and notes inside Narrova, then download the NCP object when you want to carry that work into another environment.
Writing use: Treat NCP as the object that lets the story travel without losing its spine. That is the practical benefit of the whole methodology.
Where To Go Next
- Go to Narrova Context if you want the broader Story, Storyform, and conversation memory model
- Go to Storyform Builder if you want to generate or download a Storyform-backed NCP directly
- Go to Subtxt Writing Downloads if you want the full package from an existing Subtxt workspace