Deterministic architecture analysis and quality gates for your pull requests. Measure architecture. Govern change.
Archmet analyzes Java, Kotlin, C#, Python, and TypeScript codebases with a fully deterministic engine — AST metrics, dependency analysis, and a calibrated rule engine detecting god classes, coupling hotspots, and N+1 query patterns — and fails your workflow when critical architecture violations appear. No code leaves the runner; the whole analysis happens inside the action container.
This action wraps the Archmet scanner
(ghcr.io/eccsm/archmet-scanner). Reports are reproducible: the same code always
produces the same result, so gate decisions are auditable.
name: Archmet
on: [pull_request]
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: eccsm/archmet-action@v0.1.0
with:
quality-gate: "true"
severity-threshold: "HIGH"| Input | Default | Description |
|---|---|---|
quality-gate |
"true" |
Fail the workflow when CRITICAL violations are found. |
severity-threshold |
"HIGH" |
Minimum severity emitted as GitHub warning annotations (CRITICAL, HIGH, MEDIUM, LOW). |
amf-server-url |
"" |
Reserved for a future remote-analysis mode; the action currently runs the embedded scanner locally. |
| Output | Description |
|---|---|
score |
Archmet health score (0–100). |
grade |
Health grade (A–F). |
violations |
Total violations found. |
critical |
CRITICAL violations found. |
reported-violations |
Violations at or above severity-threshold. |
The full machine-readable report is written to amf-report.json in the workspace —
upload it as an artifact if you want to inspect or diff it:
- uses: actions/upload-artifact@v4
if: always()
with:
name: amf-report
path: amf-report.json - uses: eccsm/archmet-action@v0.1.0
id: archmet
- run: |
echo "Health: ${{ steps.archmet.outputs.grade }} (${{ steps.archmet.outputs.score }}/100)"
echo "Critical violations: ${{ steps.archmet.outputs.critical }}"Full docs — rule reference, .amf.yml quality-gate configuration, the self-hosted
server and dashboard, and the Archimet LLM layer — live in the
main repository.
Apache-2.0. This repository mirrors
eccsm/archMet/github-action
for GitHub Marketplace listing (Marketplace requires action.yml at the repository
root); changes land there first.