Infrastructure Evidence Kit

Organize explicit infrastructure exports into a traceable assessment package, with collection coverage, linked findings and verifiable file integrity.

My role
Design & implementation
Scope
Offline evidence packaging tool
Release
v0.1.0

Validation scope

Offline packaging & verification

133 tests and eight CLI scenarios. CI on Python 3.11–3.13; local macOS validation. Complete example: 4/4 collected. No new infrastructure access.

Infrastructure observations collected and linked to a documented assessment.
Conceptual illustration

Inside the work

How it works

  1. Declare the assessment scope

    Describe assets, evidence requirements, collection attempts and assessment time. Select explicit local UTF-8 exports.

  2. Expose collection gaps

    Use the latest declared attempt for each requirement. Report collected, missing, stale, failed or empty without falling back to an older success.

  3. Link findings to original files

    Associate manual observations with evidence IDs for the same asset. Preserve exact file bytes and show incomplete finding attachments.

  4. Package and verify

    Write JSON, CSV and Markdown with a final SHA-256 manifest. Verify changed, missing or extra files against that recorded package.

Decisions & trade-offs

Latest attempt takes precedenceA failed retry stays visible

A failed retry stays visible

A newer failed, missing or empty export must not be masked by an older successful record. All supplied records remain available for review.

The trade-off

A previously usable export may remain attached while the current requirement is marked incomplete.

Separate coverage from healthCollected means evidence is available

Collected means evidence is available

A current report can contain failed network checks. The historical lab example collects all three reports, including the deliberately failed phase.

The trade-off

The tool does not interpret configurations or verify the author’s finding, severity or recommendation.

Preserve a verifiable packageExact bytes and an unsigned manifest

Exact bytes and an unsigned manifest

Original files and artifact hashes support repeatable review. Fresh output directories preserve earlier runs; verification detects changed, missing and extra files.

The trade-off

Hashes are not authentication. Someone changing both files and manifest can make a consistent package; supplied content is not redacted.

Technologies by purpose

  • Python

    Offline CLI without runtime dependencies. Linux and macOS filesystem support.

  • JSON assessment

    Explicit inventory, requirements, attempts and manual findings.

  • CSV & Markdown

    Collection coverage and linked engineering review.

  • SHA-256

    File-byte integrity relative to the unsigned manifest.

  • GitHub Actions

    Tests and eight executable scenarios on Python 3.11–3.13.

Scope & evidence

Published evidence

Validation limits

  • No automatic collection, network scan, configuration interpretation or infrastructure health/compliance certification.
  • Findings and collector metadata are supplied by the author. No findings does not imply a clean assessment.
  • The manifest is unsigned and files are copied without secret redaction. Native Windows is outside v0.1 support.

Test captures

Recorded evidence rendered as documents · not a product interface.

Collection gaps made visible — recorded evidence documentEnlarge

Collection gaps made visible

The report identifies missing, stale and failed evidence. Synthetic example: 1 of 4 requirements has current evidence.

Source · 2026-10-29
Modified evidence detected — recorded evidence documentEnlarge

Modified evidence detected

Verification detects a deliberate change in a packaged file. Internal integrity uses hashes; the manifest is unsigned.

Source · 2026-10-29