Skip to content

Architecture

How ci-parity is put together: its context, its packages and ports, the main flows, and the decisions behind them. Diagrams are Mermaid, which GitHub renders in place.

Page Shows
System context Who runs ci-parity, what it reads and where its results go
Packages The layers, their ports, and which adapter implements each
Flows A check, a fix, and a change from pull request to release
Design decisions Why it works the way it does, and ideas not yet planned
flowchart LR
    dev["Developer<br/>(local CLI)"] --> cli
    ci["GitHub Actions job<br/>(uses: jimmykurian/ci-parity@v0)"] --> action
    action["Composite action<br/>action.yml"] -->|"downloads and verifies"| rel["GitHub Release<br/>binaries and checksums.txt"]
    action --> cli["ci-parity binary"]
    cli -->|reads| repo["Repository files<br/>workflows, composite actions,<br/>Taskfile / Makefile / justfile / mise,<br/>.ci-parity.yml, baseline"]
    cli -->|"text, json"| out["Terminal or a file"]
    cli -->|"github format"| ann["Annotations on the<br/>changed lines"]
    cli -->|"sarif + upload-sarif"| cs["GitHub code scanning"]
    cli -->|"fix"| repo

ci-parity reads only the repository’s files. It never runs the task runner or the tools it finds, and makes no network calls while checking; the action downloads the binary before the check starts.

Last reviewed: 2026-10-28