Glossary
Comprehensive list of Divekit terms and definitions.
This glossary defines core Divekit terms used across Quick Start, Reference, and CLI docs.
| Term | Definition |
|---|---|
| Divekit | Command-line tool for creating, distributing, and operating individualized programming assignments. |
| CLI | Command Line Interface. The primary way to use Divekit (divekit ...). |
| Personal Access Token | GitLab token used by Divekit to call the GitLab API for operations such as creating groups, repositories, and memberships. |
| Divekit Home Directory | User-level Divekit directory, usually ~/.divekit, for local configuration, generated state, and fallback storage. |
| Origin Repository | Source repository containing assignment template files and .divekit configuration. |
| Distribution | Named setup in .divekit/distributions/<name>/ that controls one rollout. |
| Distribution Config | .divekit/distributions/<name>/config.json, the main runtime config for distribution commands. |
| Target | Logical repository target in a distribution (for example work or eval). |
| Work Target | Student-facing code repository target (work). |
| Eval Target | Evaluation-pipeline repository target (eval) used for separated CI and evaluation flows. |
| Evaluation Pipeline | Optional paired work/eval model for separated CI and evaluation workflows. See Evaluation Pipeline. |
| Linking | Automatic connection between paired targets (variables/tokens/trigger URLs, job-token scope, UUID pairing). |
| Member | GitLab user account assigned to a distributed repository with a configured permission level. |
| Members File | JSON file referenced by members.path. It contains groups; each group has a stable uuid and the GitLab usernames that should receive access to that repository. |
| Members Directory | Base directory used to resolve members files. It is configured with DIVEKIT_MEMBERS and defaults to ~/.divekit/members. |
| Group Label | Optional human-readable label on a members group. It can be used in repository name templates with {{label}} or as a GitLab-safe {{slug}}. |
| Group Metadata | Optional key/value metadata on a members group. It can be imported from member tables and used in repository name templates with {{metadata "key"}}. |
| UUID | Stable unique identifier used for one student/group repository pair across targets. |
| Individualization | Process of generating per-UUID content variants during distribution. |
| Variation Config | variation.json containing selectable object/relation/logic options. |
| Individualization Config | individualization.json containing delimiter, solution-deletion, warnings, file-manipulation and related rules. |
| Individuals File | individuals.json, generated state of concrete selections per UUID. |
| Remotes File | remotes.json, generated mapping of UUIDs to created remote repositories/project IDs. |
| Placeholder / Variable | Token in template files (for example $Vehicle$) replaced during individualization. |
| Host Alias | Named host entry in ~/.divekit/hosts.json used by distribution targets (remote). |
| Provider | Backend used for execution, for example gitlab, local, or simulated. |
| Dry Run | Preview mode without remote changes (--dry-run, often via simulated provider). |
| Add Mode | divekit distribute --add: only process new UUIDs/members, keep existing distributed repos. |
| Fresh Mode | divekit distribute --fresh: reset distribution state files (remotes.json, individuals.json) before run. |
| Fetch Snapshot | Timestamped GitLab repository snapshot under .divekit/local-data/<distribution>/gitlab/<timestamp>/, populated by divekit fetch or divekit run --fetch-first and reused by run/analysis commands. |
| Research Snapshot | History-stripped GitLab copy created by divekit snapshot. It contains the repository tree from distributed work repositories as one neutral initial commit, but it does not scrub UUIDs, names, paths, or file contents. |
| Local Provider Output | Filesystem distribution output under .divekit/local-data/<distribution>/local/<run-id>/, created by divekit distribute -p local. |
| Extension | A program executed across fetched or pulled repositories, typically via divekit run. Named run extensions live under .divekit/scripts/run/. |
| Run Workflow | Lifecycle extension form for divekit run. Lua workflows register dk.run.prepare, dk.run.each, and/or dk.run.cleanup; external workflow directories contain workflow.json and runtime functions such as prepare, each, and cleanup. |
| Plugin | CI plugin switch in evaluation-pipeline templates, executed in the eval pipeline and managed as described in Plugins. |
| Variable Extensions | individualization.json -> variableExtensions: token transformation rules (prefixes/suffixes/transformations). Not the same as runtime script extensions. |
| Inject | divekit inject command to scaffold default assets (CI templates, variation template, scripts). |
| Group Layout | Strategy for deriving work/eval groups (distribution-subgroups or legacy). |
Last modified June 25, 2026: docs: document snapshot command (fac7f4e)