Guide for Auditors and Compliance Officers

Who this guide is for

This guide is for compliance officers, internal/external auditors, and legal teams who need to:


What evidence licit generates

licit produces 6 types of documentary evidence:

EvidenceFileRegulation coveredWhat it demonstrates
Provenance.licit/provenance.jsonlArt. 12, Art. 13Which code was written by AI vs. humans
Config changelog.licit/changelog.mdArt. 13Change history of AI agent configurations
FRIA.licit/fria-report.mdArt. 27Fundamental rights impact assessment
Annex IV.licit/annex-iv.mdAnnex IVTechnical documentation of the AI system
Compliance report.licit/reports/compliance-report.*Arts. 9-27Article-by-article assessment with evidence
Gap analysis(terminal output)AllMissing requirements with recommendations

How to verify compliance

Step 1: Quick verification

cd project-to-audit
licit verify

The exit code indicates the overall status:

Step 2: Detailed report

licit report --format html -o audit.html

The HTML report includes:

Step 3: Identify gaps

licit gaps

Lists each gap with:


How to interpret results

Compliance statuses

StatusMeaningAuditor action
compliantSufficient evidence of complianceDocument as compliant
partialPartial evidence, improvements possibleDocument with observations
non-compliantNo evidence of complianceDocument as a finding
n/aDoes not apply to the project contextDocument justification
not-evaluatedNo automatic evaluation availableRequires manual evaluation

Compliance rate

compliance_rate = compliant / (compliant + partial + non_compliant) * 100

Does not include n/a or not-evaluated in the denominator. A rate of 100% means all evaluated controls are compliant.

Provenance evidence

The evidence field in each result shows what data supported the evaluation. Examples:

EvidenceWhat it means
”Guardrails active: 10 rules”The project has 10 guardrail rules configured in architect
”Git history: 50 commits”licit has access to the full history
”Provenance tracking: 40% AI attribution”40% of the code was identified as AI-generated
”No FRIA document found”The FRIA has not been completed
”FRIA completed: .licit/fria-data.json”The FRIA exists and has data

EU AI Act — Evaluated articles

licit evaluates deployer obligations (the entity deploying the AI system), not the provider:

ArticleWhat licit verifiesEvidence sought
Art. 9 — Risk managementAre there guardrails, quality gates, budget limits, security scanning?Architect, vigil, semgrep, snyk configs
Art. 10 — Data governanceAlways PARTIAL — the deployer doesn’t train modelsDocumentation note
Art. 12 — Automatic loggingIs there git history, audit trail, provenance, OTel?.licit/provenance.jsonl, .architect/reports/
Art. 13 — TransparencyIs there Annex IV, changelog, traceability?.licit/annex-iv.md, .licit/changelog.md
Art. 14 — Human oversightAre there review gates, dry-run, quality gates?CI/CD config, architect config
Art. 26 — Deployer obligationsAre there agent configs? Is it monitored?CLAUDE.md, .cursorrules, etc.
Art. 27 — FRIADoes the FRIA document exist?.licit/fria-data.json
Annex IV — Technical docsDoes technical documentation exist?.licit/annex-iv.md

How to improve an evaluation

To move an article from non-compliant to compliant:

Articlelicit commandWhat to do
Art. 27 (FRIA)licit friaComplete the interactive 5-step questionnaire
Annex IVlicit annex-ivRun — it is automatically generated from project metadata
Art. 12 (Logging)licit traceRun provenance analysis
Art. 13 (Transparency)licit changelogGenerate agent config changelog

Integrity validation

Signed provenance

If the project has signing enabled (provenance.sign: true in .licit.yaml), each provenance record has an HMAC-SHA256 signature. licit automatically verifies signatures when loading data.

The signing key is in .licit/.signing-key and must not be versioned in git.

Deduplicated data

The provenance store (.licit/provenance.jsonl) uses merge + deduplication:

Manual verification

To verify that provenance data is consistent with git:

# View provenance stats
licit trace --stats

# Compare with actual git log
git shortlog -sn HEAD

# Generate detailed report
licit trace --report

Preparing for regulatory audit

Documents to collect

  1. .licit.yaml — Project configuration (which frameworks are enabled, what is monitored)
  2. .licit/fria-report.md — Complete FRIA (Art. 27)
  3. .licit/annex-iv.md — Technical documentation (Annex IV)
  4. .licit/reports/compliance-report.html — Most recent compliance report
  5. .licit/changelog.md — Agent config change history
  6. .licit/provenance.jsonl — Raw traceability data (for verification)

Pre-audit workflow

# 1. Update all evidence
licit trace
licit changelog

# 2. Generate regulatory documentation (if it doesn't exist)
licit annex-iv
# licit fria  # Only if not completed (interactive)

# 3. Generate final report
licit report --format html -o audit-$(date +%Y%m%d).html

# 4. Review pending gaps
licit gaps

What licit does NOT generate

licit does not replace:

licit does provide:


Frequently asked auditor questions

How accurate is AI code detection?

Provenance uses 6 heuristics with a weighted average. Confidence varies:

The configurable threshold (confidence_threshold: 0.6) determines what counts as AI.

Are reports tamper-proof?

The .md, .html, and .json files are flat files and can be edited. For tamper-resistant evidence:

  1. Enable signing (provenance.sign: true)
  2. Version reports in git (git history is its own integrity chain)
  3. Generate reports in CI/CD (the pipeline log is additional evidence)

How often should I generate reports?

ScenarioRecommended frequency
Active development with AIEach sprint / each PR (via CI/CD)
Release preparationBefore each release
Regulatory auditAt the start of the audit + final update
Continuous monitoringWeekly (via cron in CI/CD)