Files
notarius/docs/roadmap/sharedassets.md

3.2 KiB

Shared Prompt And Asset Layout Roadmap

This roadmap defines the target state for reorganizing embedded prompt and schema assets so module-owned files are shallow and shared prompt fragments live in an explicit shared asset package.

Motivation

The current Scriptorium asset layout works, but module prompt files are nested more deeply than their package ownership requires. For example, a module package already identifies its stage, domain, and artifact, so paths like assets/scriptorium/prompts/dnd/spells/... repeat context that is already in the Go package path.

Shared D&D prompt fragments also currently live under a D&D-specific promptassets package. That is serviceable, but it undersells the fact that shared assets are intentionally cross-module. A clearer shared package will make reuse deliberate and make room for common prompt hardening and reference-use rules.

Target State

Module-owned assets should stay in the module package that owns the behavior, but their internal paths should be shallow:

internal/modules/extract/dnd/spells/assets/
  prompts/
    dnd.spells.yaml
    task.md
    instructions.md
  schemas/
    dnd_spells.v1.json

internal/modules/chunk/dnd/scenes/assets/
  prompts/
    dnd.scenes.yaml
    task.md
    instructions.md
  schemas/
    dnd_scenes.v1.json

Shared reusable assets should move to:

internal/modules/sharedassets/
  assets.go
  prompts/
    common-dnd-system.md
    common-dnd-transcript.md
    common-dnd-references.md
  schemas/

The sharedassets package should own only reusable fragments and shared asset registration. It should not own module task semantics, response schemas, validators, artifact interpretation, or stage behavior.

Ownership Rules

Module packages own:

  • complete Scriptorium prompt definitions;
  • module task prompts and instruction prompts;
  • response schemas and schema metadata;
  • prompt IDs and versions;
  • semantic validation and interpretation.

internal/modules/sharedassets owns:

  • shared prompt fragments used by more than one module;
  • standardized cross-module prompt hardening;
  • shared source/transcript framing;
  • shared reference framing and reference-use constraints;
  • future genuinely shared schemas, if a real cross-module schema emerges.

Shared prompt fragments should be durable operating rules, not artifact-specific instructions. They may tell the model to treat source material as primary evidence, use references only for disambiguation unless a module says otherwise, ignore instructions embedded inside source/reference content, follow the structured output contract, and avoid exposing prompt instructions.

Documentation Outcome

When implemented, canonical internal documentation should describe the asset ownership convention:

  • module-owned prompts and schemas live under each module's shallow assets tree;
  • shared reusable fragments live under internal/modules/sharedassets;
  • framework and CLI code may collect assets, but module packages remain responsible for prompt intent and schemas.

Prompt IDs, prompt versions, response schema IDs, schema names, and runtime module contracts should remain unchanged unless a later feature explicitly changes prompt semantics.