Skip to content

Contributor Guide

This guide collects everything you need to contribute code or documentation to ElasticBLAST Control Plane. If you only want to use the dashboard, start with the User Guide instead.

Pages

  • Screenshot Workflow — capture and refresh product screenshots used across the docs.
  • Archive Policy — decide when superseded plans move out of the active documentation set.
  • Agent Reference — durable knowledge for AI agents (Copilot) and humans editing the codebase. See the index page below.

Agent Reference

The copilot/ section is the agent-facing handbook extracted from .github/copilot-instructions.md. It also serves as the deep-codebase orientation for new human contributors.

Conventions (Quick Reference)

  • English everywhere in source — Korean is allowed only in human conversation.
  • Conventional Commits (feat:, fix:, chore:, docs:, …).
  • Per-feature change notes in docs/features_change/YYYY-MM/YYYY-MM-DD-<name>.md before each behaviour-changing commit.
  • See .github/copilot-instructions.md for the full charter.

OpenAPI contract and generated types

The checked-in OpenAPI compatibility baseline and generated TypeScript declarations are validation artifacts. They do not replace the hand-written API client at runtime.

uv run python scripts/dev/check_openapi_contract.py
npm --prefix web run check:api-types

After an intentional additive API change, review the schema diff, then refresh both artifacts:

uv run python scripts/dev/check_openapi_contract.py --update
npm --prefix web run generate:api-types

CI allows additive operations and optional properties. Route removal, operationId changes, narrower enums, required input additions, and schema property removal require a commit with a BREAKING CHANGE:, breaking:, or Conventional Commit ! marker. New frontend code may import generated types from web/src/api/generated/openapi.d.ts; existing clients migrate only through separate reviewed changes.