Veritheia Documentation

An environment for inquiry - complete documentation

View the Project on GitHub ZipThought/veritheia

Extension Development Guide

This guide explains how to extend Veritheia with new processes, data models, and user interfaces. Extensions integrate cleanly with the core platform while maintaining their own domain logic and ensuring users remain the authors of their understanding.

Understanding the Extension Model

Veritheia’s architecture supports full-stack extensions through a process-based model. Each extension typically includes:

Process Categories

Extensions typically fall into one of these categories, each supporting different patterns of intellectual work:

Methodological Processes

Guide users through established research methodologies. These processes:

Developmental Processes

Support skill progression through scaffolded challenges. These processes:

Analytical Processes

Enable domain-specific analysis patterns. These processes:

Compositional Processes

Facilitate creative and expressive work. These processes:

Reflective Processes

Guide contemplative and evaluative practices. These processes:

Extension Architecture

Core Concepts

Every extension builds on these foundational concepts:

  1. Process Definition: Describes what the process does and what inputs it requires
  2. Process Context: Carries user journey and execution state throughout the process
  3. Platform Services: Guaranteed capabilities provided by the core platform
  4. Result Persistence: Ensures all outputs are tied to their generative journey

Integration Points

Extensions integrate with the platform through several well-defined interfaces:

Process Interface

The primary integration point where extensions:

Data Model Integration

Extensions can define domain-specific entities that:

User Interface Components

Extensions provide UI components that:

Service Registration

Extensions register their services to:

Design Principles

Maintain Personal Context

Every process execution is inherently tied to a specific user’s journey. Extensions should:

Respect Process Boundaries

Extensions should be self-contained and respectful of other processes:

Enable Composition

Design extensions to work well with others:

Preserve Intellectual Sovereignty

Ensure users remain the authors of their understanding:

Development Workflow

1. Define Process Concept

Before coding, clearly articulate:

2. Design the User Journey

Map out how users will:

3. Model Domain

Identify domain-specific concepts that need representation:

4. Implement the Process

Create process implementation following platform patterns:

5. Test Extension

Verify extension:

Platform Services

Extensions rely on these guaranteed platform services:

Document Processing

Handles the complexity of extracting and preparing textual content:

Embedding Generation

Creates vector representations for semantic operations:

Metadata Extraction

Identifies and extracts document properties:

Document Chunking

Splits documents into processable segments:

Knowledge Repository

Provides unified data access:

Journal Integration

Writing Meaningful Entries

Processes should record journal entries at key moments:

Write entries as narratives, not logs:

"After reviewing inclusion criteria against Paper Y, decided to include 
despite methodological differences. The contrasting approach provides 
valuable perspective on [topic]."

Designing for Future Sharing

Structure journals to be potentially shareable:

Supporting Context Windows

Design for varying context availability:

The platform assembles appropriate context based on available capacity.

Result Patterns

Analytical Results

For processes that analyze and assess:

Compositional Results

For processes that create content:

Developmental Results

For processes that track progress:

Reflective Results

For processes that deepen understanding:

Best Practices

Process Design

Data Modeling

User Interface

Performance Considerations

Distribution Considerations

Package Structure

Organize your extension for clarity:

Versioning

Maintain compatibility through careful versioning:

Documentation

Help users understand your extension:

Troubleshooting

Common Integration Issues

Process Not Discovered

Data Access Problems

UI Components Not Rendering

Debugging Techniques

Future Considerations

As you develop extensions, consider:

Preparing for Evolution

Design with future capabilities in mind:

The architecture supports these futures without requiring them.

Remember: The goal is not just to add functionality, but to expand the ways users can develop their own understanding. Every extension should make users more capable, not more dependent on the system.