adrscope 0.3.0

A lightweight, zero-dependency visualization tool for Architecture Decision Records
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added

- **[Attested Delivery]**: Release pipeline now attaches SLSA build provenance
  and a CycloneDX SBOM attestation to every platform binary, and fail-closed
  verifies every attestation before the GitHub Release is published
- **[Publish Workflow]**: crates.io publishing via OIDC Trusted Publishing,
  with SLSA provenance attested against the exact `.crate` bytes the registry
  serves
- **[Homebrew Workflow]**: Formula in `zircote/homebrew-tap` is regenerated
  automatically on release (source-built formula)
- **[CI]**: `pin-check` job asserts every workflow `uses:` reference is pinned
  to a full 40-char commit SHA
- **[SECURITY.md]**: Documents how to verify release artifact attestations
- **[LICENSE]**: Add MIT license text

### Changed

- **[Release Artifacts]**: Binaries are now published as bare executables
  named `adrscope-{version}-{platform}` (e.g. `adrscope-0.4.0-linux-amd64`)
  instead of target-triple tar.gz/zip archives
- **[Action]**: Downloads the new artifact naming and fail-closed verifies
  the binary's attestation before use; falls back to legacy archives for
  releases <= 0.3.0
- **[Crate Packaging]**: `Cargo.toml` include allowlist keeps repo-internal
  files out of the published crate

## [0.3.0] - 2026-01-15

### Changed

- **[Action]**: Move action.yml to repository root for GitHub Marketplace publishing
- **[Docs]**: Add prominent GitHub Action section to README with examples
- **[Docs]**: Add Marketplace badge and Homebrew installation instructions

## [0.2.0] - 2026-01-15

### Added

- **[GitHub Action]**: Reusable composite action for CI/CD integration
  - All four commands exposed as action inputs (validate, generate, stats, wiki)
  - Problem matcher for inline PR annotations on validation errors/warnings
  - Cross-platform support (Linux, macOS, Windows on x86_64/aarch64)
  - Version pinning support with `latest` default
  - Binary download from GitHub Releases for fast startup (~2-5s)
- **[Release Workflow]**: Automated multi-platform binary builds
  - Builds for 5 targets: Linux (x86_64, aarch64), macOS (x86_64, aarch64), Windows (x86_64)
  - Creates tar.gz archives for Unix, zip for Windows
  - SHA256 checksums generation
  - Automatic GitHub Release creation on tag push
- **[Homebrew]**: Formula for zircote/tap
  - macOS support (Intel and Apple Silicon)
  - Linux support (x86_64 and aarch64)
- **[CLI]**: Command-line interface with subcommands for generate, validate, stats, and wiki
- **[Generate]**: Self-contained HTML viewer generation with embedded CSS/JS
  - Faceted search and filtering by status, category, tags, author, and project
  - Interactive relationship graph visualization
  - Multiple theme support (light, dark, system)
  - Configurable glob patterns for ADR discovery
- **[Validate]**: ADR validation with configurable rules
  - Required fields validation (title, status)
  - Recommended fields warnings (description, created, category)
  - Strict mode for CI/CD pipelines
  - JSON output format for tooling integration
- **[Stats]**: Statistics and analytics for ADR collections
  - Status distribution breakdown
  - Category and tag frequency analysis
  - Author and project tracking
  - Date range reporting
  - Multiple output formats (text, JSON, markdown)
- **[Wiki]**: GitHub Wiki page generation
  - Index page with all ADRs
  - Status-based grouping
  - Category-based grouping
  - Timeline view
  - Statistics summary
- **[Domain]**: Structured-MADR frontmatter support
  - Full YAML frontmatter parsing with lenient validation
  - Status lifecycle states (proposed, accepted, deprecated, superseded)
  - Graceful handling of unknown status values with warnings
  - Relationship tracking via `related` field
  - Date parsing with ISO 8601 format
- **[Infrastructure]**: Robust parsing and rendering
  - Markdown to HTML rendering with syntax highlighting
  - Plain text extraction for search indexing
  - Relationship graph construction with edge types
  - Filesystem abstraction for testability

### Security

- **[Build]**: Unsafe code forbidden via `#![forbid(unsafe_code)]`
- **[Dependencies]**: Supply chain security via cargo-deny
  - License auditing (MIT, Apache-2.0, BSD only)
  - Vulnerability scanning via RustSec advisory database
  - Source verification (crates.io only)

## [0.1.0] - Unreleased

Initial release of ADRScope.

[Unreleased]: https://github.com/zircote/adrscope/compare/v0.3.0...HEAD
[0.3.0]: https://github.com/zircote/adrscope/releases/tag/v0.3.0
[0.2.0]: https://github.com/zircote/adrscope/releases/tag/v0.2.0
[0.1.0]: https://github.com/zircote/adrscope/releases/tag/v0.1.0