Plugin Development

Architecture, contracts, and authoring guidance for Divekit Evaluation Pipeline plugins.

This area documents an experimental system. Contracts and workflows may still evolve.

This section is now an orientation page. The plugin documentation is intentionally split to reduce drift:

Split

User-facing setup

  • discover plugins
  • choose a source and pin a ref
  • enable or disable them per distribution
  • update injected templates

Use:

Maintainer-facing contract

  • discovery through manifest.json, with kind plugin-suite for a builder and plugin for a plugin
  • one job.yaml per repository that contributes a pipeline job; the CLI composes the job into the evaluation pipeline
  • suite pins and the per-course locks in .divekit/eval-pipeline/plugins.json, sources in plugin-sources.json
  • optional materialized feedback assets under feedback/; plugin code ships in the plugin image
  • normalized reporting through plugin-results/<suite>/<plugin>/report.json
  • optional feedback, execution issue, and html artifacts under plugin-results/<suite>/<plugin>/
  • declarative configuration wizards declared in manifest.json

See:

Authoring and CI conventions

  • repository layout: manifest.json, job.yaml, Dockerfile, code under src/
  • image structure, derived from the suite’s build image
  • release-template usage
  • the DIVEKIT_PLUGIN_RESULT_DIR, DIVEKIT_SUITE_ID, and DIVEKIT_PLUGIN_ID variables a job receives
  • FAQ artifact conventions
  • execution issue artifact conventions
  • copyable examples for new plugin repos

See:

Practical Rule

If you are using plugins, stay in Quick Start and CLI reference. If you are building or maintaining plugins, use the maintainer-facing docs and template repository instead of treating this pages section as the primary source of truth.


Authoring Guide

How to structure and publish a Divekit Evaluation Pipeline plugin repository.

Configuration Wizards

How plugins expose project-specific configuration through the Divekit CLI.

Contract Reference

File and data contract for Evaluation Pipeline plugins consumed by Divekit report generation.

Troubleshooting

Common plugin setup and runtime issues in Evaluation Pipeline, with quick diagnostics.