Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

ADR 26003: Adoption of gitlint for Tiered Workflow Enforcement

Title

Standardizing Git Commit Validation using gitlint to Enforce Three-Tier Architectural Integrity.

Status

Proposed

Date

2026-01-10

Context

The Production Git Workflow Standards mandate a complex, conditional validation logic that standard regex-based tools cannot easily support. Specifically:

Decision

We will adopt gitlint (https://jorisroovers.com/gitlint/) as the primary engine for commit message enforcement.

  1. Integration: gitlint will be orchestrated via .pre-commit-config.yaml using the pre-commit-msg stage.

  2. Custom Logic (Tier 3): We will utilize gitlint’s User Defined Rules feature. Following the OOP standards of ADR 26001, we will implement a Python class (e.g., ArchTagRule) that inspects the commit object and enforces the presence of tags based on the commit type.

  3. Branch Validation: Since gitlint focuses on commits, Tier 1 (Branch Naming) will be handled by a separate repo: local hook or the native pre-commit check-branch-name hook to ensure full compliance with the <prefix>/<ID>-<desc> format.

Consequences

Positive

Negative

Alternatives

References

Participants

  1. Vadim Rudakov

  2. Senior DevOps Systems Architect (Gemini)