# ahmadfauzi34/artifact-proof-lab architecture

> Architecture diagram of the GitHub repository ahmadfauzi34/artifact-proof-lab, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ahmadfauzi34/artifact-proof-lab
- Repository: https://github.com/ahmadfauzi34/artifact-proof-lab

## Overview

Artifact Proof Lab verifies local artifact directories or ZIPs against a declared manifest, applying structural, identity, and semantic checks before reporting a proof result. Its key trust distinction is that an internal manifest establishes consistency, while publisher identity requires a separately supplied digest. The graph follows the documented CLI workflow and sampled verifier implementation; the check subsystem represents documented capabilities whose individual implementations were not all sampled.

Main entry points: [`src/artifact_proof/engine.py`](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/engine.py) (Verification engine), [`src/artifact_proof/cli.py`](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/cli.py) (CLI), [`src/artifact_proof/checks.py`](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/checks.py) (Integrity checks), [`src/artifact_proof/model.py`](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/model.py) (Findings and report)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Invocation"]
  node_cli["CLI<br/>[cli.py]"]
  node_cli_entry["Module entry<br/>[__main__.py]"]
end

subgraph group_verify["Verification"]
  node_engine["Verification engine<br/>[engine.py]"]
  node_source["Artifact sources<br/>[source.py]"]
  node_manifest["Manifest parser<br/>[manifest.py]"]
  node_checks["Integrity checks<br/>[checks.py]"]
  node_paths["Path validation<br/>[paths.py]"]
  node_errors["Failure types<br/>[errors.py]"]
end

subgraph group_proof["Proof output"]
  node_model["Findings and report<br/>[model.py]"]
end

node_user(("Operator"))

node_user -->|"supplies artifact"| node_cli
node_cli -->|"requests verification"| node_engine
node_cli_entry -->|"starts CLI"| node_cli
node_engine -->|"opens artifact"| node_source
node_engine -->|"parses manifest"| node_manifest
node_manifest -->|"validates paths"| node_paths
node_engine -->|"runs checks"| node_checks
node_checks -->|"reads files"| node_source
node_checks -->|"creates findings"| node_model
node_engine -->|"assembles report"| node_model
node_engine -->|"catches failures"| node_errors
node_cli -->|"formats output"| node_model

click node_cli "https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/cli.py"
click node_engine "https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/engine.py"
click node_source "https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/source.py"
click node_manifest "https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/manifest.py"
click node_checks "https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/checks.py"
click node_paths "https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/paths.py"
click node_errors "https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/errors.py"
click node_model "https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/model.py"
click node_cli_entry "https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/__main__.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_cli_entry toneBlue
class node_engine,node_source,node_manifest,node_checks,node_paths,node_errors toneAmber
class node_model toneMint
class node_user toneIndigo
```

## Components

### Invocation

- [CLI](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/cli.py): `src/artifact_proof/cli.py`
- [Module entry](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/__main__.py): `src/artifact_proof/__main__.py`

### Verification

- [Verification engine](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/engine.py): `src/artifact_proof/engine.py`
- [Artifact sources](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/source.py): `src/artifact_proof/source.py`
- [Manifest parser](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/manifest.py): `src/artifact_proof/manifest.py`
- [Integrity checks](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/checks.py): `src/artifact_proof/checks.py`
- [Path validation](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/paths.py): `src/artifact_proof/paths.py`
- [Failure types](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/errors.py): `src/artifact_proof/errors.py`

### Proof output

- [Findings and report](https://github.com/ahmadfauzi34/artifact-proof-lab/blob/main/src/artifact_proof/model.py): `src/artifact_proof/model.py`

### Other components

- **Operator**

## Connections

- Operator → CLI: supplies artifact
- CLI → Verification engine: requests verification
- Module entry → CLI: starts CLI
- Verification engine → Artifact sources: opens artifact
- Verification engine → Manifest parser: parses manifest
- Manifest parser → Path validation: validates paths
- Verification engine → Integrity checks: runs checks
- Integrity checks → Artifact sources: reads files
- Integrity checks → Findings and report: creates findings
- Verification engine → Findings and report: assembles report
- Verification engine → Failure types: catches failures
- CLI → Findings and report: formats output
