Consistency Assets

An asset is a self-contained block of information generated once per course and reused throughout the pipeline. Assets are not regenerated unless the inputs they depend on change.

What makes something an asset

  • Generated once at a specific pipeline stage
  • Stored and reused across downstream steps
  • Provides context, consistency, or learner-facing information

Three categories

CategoryWhen generatedPurposeExamples
Discovery assetsBefore the outlineFeed into structure planning and section generation as knowledge contextaudience analysis, knowledge depository
Consistency assetsAfter outline finalizationKeep independent section authors aligned on trainer identity, narrative entities, terminology, and visualscourse_consistency, localization
Publishing assetsAfter outline finalizationShown to learners on the platform, not used during generationdescription, objectives, thumbnail, quiz

Discovery assets (audience analysis and knowledge depository) are generated in the Discovery phase and stored for reuse — they are fed into section generation for context and consistency, just like consistency assets. The difference is timing: discovery assets exist before the outline, while consistency and publishing assets are derived from it.

For publishing assets, see Publishing assets.


Consistency assets — internal

Used during section content generation to keep the course coherent across independent section authors. Each section author works in isolation — without these assets, characters and organizations would drift, translations would differ, and visual style would be inconsistent.

AssetPromptFormatStatus
course_consistencyflow_asset_define_characters + outline-generation merge stepJSON✅ Active
localizationflow_asset_localizationJSON✅ Active
visual_bibleInline under course_consistency.visual_bibleJSON✅ Active (partial)

Position in the full pipeline

Assets belong to Production. They are generated after the course outline is finalized and before section content generation begins.

┌─────────────────────────────────────────────────────────────────┐
│ Discovery                                             │
│   flow_audience_*  ──→  flow_depository_*                       │
│   (who is learning)     (what to teach)                         │
└───────────────────────────────────┬─────────────────────────────┘
                                    ↓
┌─────────────────────────────────────────────────────────────────┐
│ Structure                                             │
│   flow_course_structure_* (Steps 1–5)                           │
│   concept → plan → design → [feedback_learner + feedback_expert]│
│                           → refine                              │
└───────────────────────────────────┬─────────────────────────────┘
                                    ↓
┌─────────────────────────────────────────────────────────────────┐
│ Production                                            │
│   Asset generation (parallel)                                   │
│   course_consistency  localization  description  LO  thumbnail  quiz
│        ↓            ↓                                                      │
│   Section content generation                                    │
│        ↓                                                        │
│   Published to learners: description, LO, thumbnail, quiz       │
└─────────────────────────────────────────────────────────────────┘

Consistency assets (course_consistency, localization) feed into section content generation. Publishing assets are delivered directly to the platform.


course_consistency

Format: JSON Prompt: flow_asset_define_characters

Combines the course trainer, recurring narrative characters, recurring narrative organizations, and visual settings into one consistency object stored on the course row. The current outline-generation workflow populates:

  • trainer
  • narrative_characters
  • narrative_organizations
  • visual_bible.video_background

flow_asset_define_characters currently generates the narrative characters and narrative organizations portion of this object.

narrative_characters

Each character includes:

  • name
  • description
  • appearance

Characters must be fictional but realistic. Age or life stage and role context should be embedded in description, and must still match the character's responsibilities and domain context. If a character is tied to a recurring fictional organization, that relationship should be stated briefly inside description so downstream section generation can preserve continuity without adding separate linkage fields. appearance should stay deterministic enough for consistent image generation and may include one or two stable distinguishing markers such as a recurring accessory, hairstyle habit, glasses, bag, or jewelry. These markers should vary across characters rather than becoming formulaic.

narrative_organizations

Recurring organizations keep examples stable across the course. These may include fictional municipalities, companies, schools, agencies, childcare providers, departments, or other institutions. They are optional and may be omitted entirely when the course narrative does not depend on recurring fictional organizations.

Each organization record includes:

  • name
  • description

All narrative organizations must be strictly fictional and must not clearly point to a real existing entity. Descriptions should stay sparse: enough to anchor continuity, not enough to turn the course into a fixed fictional world unless the outline genuinely requires it.

The course trainer is not a narrative character and must not appear in this output. These records are defined once and passed to downstream generators to ensure consistent storytelling across the course.


localization

Format: JSON — { "localized_course_title", "localized_course_titles_variants", "localized_course_outline", "localized_terminology" } Prompt: flow_asset_localization

Generates two outputs from the finalized course outline: (1) all course titles (course, modules, topics, sections) translated into the target language while preserving the outline structure and existing position values, and (2) a terminology glossary for consistent localization across all independent section authors. Handles the case where content may already be in the target language — still reviews for consistency and cultural appropriateness.

The runtime localization workflow merges this structured output back into the stored outline so modules/topics carry localized_title and sections carry section_title.

Localization principles and language-quality rules are documented in docs/localization/localization.md.


visual_bible

Format: JSON Prompt: flow_asset_visual_bible (in development)

Holds visual references for characters and organization settings. At the moment, the active saved scope is course_consistency.visual_bible.video_background. The broader visual-bible schema is still being defined.