Skip to content

Changelog

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

The format is based on Keep a Changelog, this project adheres to Semantic Versioning, commits follow Conventional Commits, and this changelog is generated by Structured Changelog.

Unreleased

v0.4.0 - 2026-07-06

Highlights

  • Default profile expanded to 106 rules with SDK generation optimization (ogen, openapi-generator)
  • New built-in profiles: comprehensive, minimal, microsoft-rest, microsoft-graph
  • New score-profile command for evaluating style guide quality using LLM-as-Judge
  • JSONPath validation system to prevent linting crashes from unsupported expressions

Added

  • score-profile command for LLM-based style guide quality evaluation (5340352)
  • JSONPath validation functions: ValidateProfile, FilterInvalidRules, DisableInvalidRules (1ba1de2)
  • JSONPath validation integration in VacuumLinter initialization (ace919e)
  • New profiles: comprehensive (88 rules), minimal (29 rules), microsoft-rest (123 rules), microsoft-graph (82 rules) (12262ab)
  • Expanded default profile to 106 rules across 27 categories with SDK optimization (e5495d8)
  • Multi-tenancy patterns with ~ alias for current tenant context (e5495d8)
  • RFC 9457 Problem Details for standardized error responses (e5495d8)
  • Discriminated unions for clean polymorphism in generated SDK code (e5495d8)
  • Compliant API example spec demonstrating all style patterns (c5d4562)

Changed

  • Profiles now embedded in pkg/profile/builtin/ and loaded via profile.Load() (31870a2)

Fixed

  • Spectral ruleset generation for truthy/falsy functions outputs field instead of functionOptions.match (6bbe499)
  • Error handling in file watcher with proper cleanup on close (a05ff23)
  • Error comparison for context cancellation uses errors.Is (a05ff23)
  • Remove custom min function (use Go 1.21+ builtin) (a05ff23)

Documentation

  • Profile documentation for comprehensive, minimal, microsoft-rest, microsoft-graph (af95f0e)
  • Updated default profile documentation with accurate 106 rules, 27 categories (af95f0e)
  • Profile comparison guide (12b51ce)
  • Profile scoring guide (12b51ce)
  • CLI documentation for score-profile command (a6c7bcd)

Build

  • Update github.com/daveshanley/vacuum from v0.29.6 to v0.29.9 (69fb6bb)
  • Update github.com/daveshanley/vacuum from v0.29.4 to v0.29.6 (45f8aa9)
  • Update github.com/plexusone/assistantkit from v0.13.0 to v0.14.0 (9e41f9a)
  • Update dependencies via go mod tidy (d12f407)

Tests

  • Updated tests for profile version and rule count expectations (bb42f6d)

v0.3.0 - 2026-06-22

Highlights

  • Extended type definitions for patterns, principles, glossary, decision tables, and migration guidance
  • MkDocs multi-page documentation site generator with Material theme support
  • Rubric generation for structured-evaluation LLM-as-Judge integration
  • Vendor API style profiles for reference implementations

Added

  • Extended type definitions: Pattern, Principle, GlossaryTerm, Section, DecisionTable, DetailedExample, MigrationGuidance, RuleApplicability, Condition, RuleRelation, DeprecationInfo (c4b191f)
  • Enhanced Rule type with description, background, priority, version, deprecated, applicability, conditions, relations, decisionTables, and migration fields (c4b191f)
  • Enhanced JudgeCriteria with pass/partial/fail criteria and few-shot examples (c4b191f)
  • Markdown generator support for patterns, principles, glossary, decision tables, and detailed examples (20efa34)
  • Mermaid diagram support in markdown output (20efa34)
  • MkDocs multi-page documentation site generator with Material theme (62b356b)
  • MkDocs generator options: --split-patterns, --no-split-categories, --no-search (62b356b)
  • Rubric generation for structured-evaluation integration (GenerateRubricSet) (8794add)
  • generate mkdocs CLI subcommand with site configuration flags (231ede8)
  • generate rubric CLI subcommand for LLM evaluation rubrics (231ede8)
  • generate guide flags: --no-patterns, --no-principles, --no-glossary (231ede8)
  • Vendor API style profiles: Microsoft Graph, Microsoft REST, OmniAgent, PayPal, PlexusOne, Zalando (9fb12fb)

Changed

  • JSON schema updated with extended type definitions (9ca05cc)
  • Style guide quality rubric added to schema (9ca05cc)

Documentation

  • CI/CD integration guide with exit codes, pipeline examples, pre-commit hooks (366ff8b)
  • Documentation generation guide comparing Markdown and MkDocs output (366ff8b)
  • CLI reference updates for generate mkdocs and generate rubric (6cb42c6)
  • Getting started and profiles guides updated for new features (6cb42c6)

Build

  • Add github.com/plexusone/structured-evaluation v0.8.0 dependency (32f6204)
  • Update github.com/plexusone/omniskill from v0.8.0 to v0.9.0 (32f6204)
  • Update github.com/plexusone/assistantkit from v0.12.0 to v0.13.0 (3ef736c)
  • Update github.com/daveshanley/vacuum from v0.29.2 to v0.29.4 (c84d697)
  • Update indirect dependencies via go mod tidy (77e8c42)

Tests

  • Unit tests for extended markdown generation (patterns, principles, glossary, decision tables) (eaf71cb)

v0.2.0 - 2026-06-07

Highlights

  • Configuration file support (.api-style.yaml) for project-level governance settings
  • Multi-file linting with glob patterns and recursive directory search
  • Watch mode for continuous linting during development
  • Git pre-commit hook generator for blocking commits with violations

Added

  • Configuration file support with profile, level, include/exclude patterns, exceptions, and severity overrides (b548e01)
  • Config file auto-discovery (.api-style.yaml, .api-style.yml, api-style.yaml) (b548e01)
  • Multi-file resolution with glob patterns (api/*.yaml) (d186981)
  • Recursive directory search (--recursive flag) (d186981)
  • Include/exclude pattern filtering with ** double-star glob support (d186981)
  • MultiLintReport type for aggregating results from multiple files (d186981)
  • Git pre-commit hook generator (api-style hooks init) (b25c337)
  • Pre-commit hook with configurable profile and conformance level (b25c337)
  • File watcher using fsnotify with debouncing (1b58b0a)
  • Watch mode (--watch flag) for continuous re-linting (9118701)
  • --config flag for explicit config file path (9118701)
  • --recursive flag for directory traversal (9118701)
  • hooks init subcommand with --force, --level flags (254d538)

Changed

  • api-style lint accepts multiple file arguments (9118701)
  • CLI flags override config file settings (9118701)

Documentation

  • Configuration file reference (docs/reference/config.md) (6d5f069)
  • Example config file (.api-style.yaml.example) (6d5f069)
  • CLI reference updates for new flags and commands (d3703dc)
  • Getting started guide with config, multi-file, watch, pre-commit sections (d3703dc)
  • Hooks reference with git pre-commit section (d3703dc)
  • Automated API Governance guide for AI-first API design workflow (e4bcaf0)
  • README and examples updates for v0.2.0 features (2d3370e)

Build

  • Add github.com/fsnotify/fsnotify v1.10.1 dependency (2334a2e)
  • Update indirect dependencies (regexp2/v2 to v2.2.1) (baf0bee)

v0.1.0 - 2026-06-06

Highlights

  • OpenAPI style linting with vacuum integration and configurable style profiles (Azure, Google, custom)
  • LLM-powered API evaluation using Claude for semantic analysis beyond static rules
  • MCP server for Claude Desktop and Claude Code integration with resources and prompts
  • Web UI with Lit components and REST API backend for browser-based linting

Added

  • Core types package with LintReport, Violation, StyleProfile, and EvaluationResult structs (7148015)
  • JSON Schema generation from Go types with embedded schemas (7148015)
  • Vacuum-based linting engine with severity mapping and JSON path extraction (4222198)
  • Style profile loading from YAML/JSON with built-in Azure and Google profiles (363656a)
  • Profile inheritance via extends field for building on base profiles (363656a)
  • LLM evaluation with Claude using structured prompts and JSON output (5bdc90d)
  • Evaluation categories: naming, structure, documentation, security, versioning (5bdc90d)
  • Analysis orchestrator combining static linting and LLM evaluation (fb2d291)
  • Spectral ruleset generator from style profiles (0d156fc)
  • Markdown report generator with configurable output options (0d156fc)
  • CLI with lint, analyze, and evaluate commands (e027306)
  • Multiple output formats: text, JSON, SARIF (e027306)
  • Exit codes based on violation severity for CI integration (e027306)
  • MCP server with openapi:// resource URIs for spec access (a039bd5)
  • MCP prompts for guided API review workflows (a039bd5)
  • MCP tools for linting and evaluation from Claude Desktop (a039bd5)
  • Claude Code hooks for pre-commit and post-save linting (384d812)
  • Claude Code skills for /lint and /evaluate slash commands (384d812)
  • SARIF 2.1.0 output format for IDE integration (VS Code, JetBrains) (b935239)
  • GitHub Code Scanning compatible SARIF output (b935239)
  • REST API server with /api/lint and /api/profiles endpoints (f096739)
  • CORS support for development and cross-origin requests (f096739)
  • Web UI with Lit components: spec editor, profile selector, results panel (767a898)
  • Vite-based frontend build with hot module replacement (767a898)
  • Example OpenAPI specs: PetStore and E-Commerce APIs (3de679f)
  • Example custom style profiles demonstrating profile customization (3de679f)

Documentation

  • MkDocs documentation site with Material theme (47b6dc8)
  • Getting started guide with installation and basic usage (47b6dc8)
  • Profile customization guide with YAML examples (47b6dc8)
  • MCP integration guide for Claude Desktop setup (47b6dc8)
  • Feature roadmap with prioritized enhancements

Build

  • GitHub Actions workflows for CI/CD: build, lint, test (c74e181)
  • golangci-lint configuration with security and style checks (c743abf)
  • Schema generator tool for JSON Schema from Go types (ed7302b)

Tests

  • Unit tests for analyze package (82% coverage) (fb2d291)
  • Unit tests for judge package (76% coverage) (5bdc90d)
  • Unit tests for lint package (79% coverage) (4222198)
  • Unit tests for SARIF package (92% coverage) (b935239)