Overview

Overview of Divekit’s architecture and how the components work together.

Divekit is a CLI-first system for preparing origin repositories, distributing individualized copies, operating on the resulting repositories, and collecting evaluation-pipeline results.

High-Level Overview

graph TB
    USER((Instructor))
    ORIGIN["Origin Repository<br/>files + .divekit/"]
    CLI["Divekit CLI"]
    CFG["Configuration Resolution"]
    TPL["Templating / Individualization"]
    REMOTE["Remote Provider<br/>(GitLab etc.)"]
    CACHE["Local Cache / Index"]
    WORK["Work Repositories"]
    EVAL["Eval Repositories"]
    REPORT["Reports / Passcheck / Overview"]
    EXT["Extensions"]

    USER --> ORIGIN
    USER --> CLI
    ORIGIN --> CLI
    CLI --> CFG
    CLI --> TPL
    CLI --> REMOTE
    CLI --> CACHE
    TPL --> WORK
    REMOTE --> WORK
    REMOTE --> EVAL
    CACHE --> EXT
    CACHE --> REPORT
    EVAL --> REPORT

Main Flows

Authoring

An instructor prepares an origin repository with source files plus .divekit configuration. This includes distribution config, optional variation data, optional individualization rules, and evaluation-pipeline assets.

Distribution

divekit distribute resolves configuration, individualizes content, creates or updates remote repositories, and persists generated state such as remotes.json and individuals.json.

Follow-up Operations

After distribution, Divekit can:

  • fetch repositories into a local cache
  • run extensions across those repositories
  • inspect remote state with overview
  • collect evaluation-pipeline results with passcheck

Evaluation Pipeline

When enabled, Divekit manages a paired work and eval model. The eval side is used for isolated CI and plugin-based analysis flows.

Related pages: