Changelog

Every release, straight from the changesets. Newest first.

v0.13.0
patch

refactor: replace scan architecture with plan/execute model

@doccov/sdk

  • Add fetchGitHubContext() for fetching repository metadata via GitHub API
  • Add BuildPlan types for describing build/analysis execution plans
  • Export new scan types: BuildPlan, BuildPlanStep, BuildPlanExecutionResult, GitHubProjectContext
  • Remove legacy scan orchestrator in favor of external execution

@doccov/cli

  • Remove scan command (moved to API service)
  • Update spec command with improved analysis

@openpkg-ts/spec

  • Add BuildPlan and related types to schema
  • Extend spec schema for plan-based analysis
v0.12.0
minor

diff command improvements

New features:

  • Hash-based report caching - repeated diffs with same specs are instant
  • --no-cache flag to bypass cache and force regeneration
  • --strict presets (ci, release, quality) for streamlined CI configuration
  • Support for both positional and explicit --base/--head arguments
  • --min-coverage and --max-drift threshold flags (same as check command)
  • Config file support for thresholds via doccov.config.ts
  • Simplified terminal output with detailed reports written to .doccov/

SDK additions:

  • calculateAggregateCoverage(spec) - lightweight coverage calculation from exports
  • ensureSpecCoverage(spec) - ensures spec has top-level coverage score
  • getDiffReportPath() - hash-based diff report path generation

Fixes:

  • Coverage now correctly calculated for raw specs (was showing 0% → 0%)
  • Shared validation utilities extracted to avoid duplication between check and diff
v0.11.0
minor

Version sync release

v0.10.2
patch

Update @doccov/sdk dependency to include monorepo entry point path fix

v0.10.0
minor

@openpkg-ts/spec

Breaking (pre-1.0): Restructured spec types to move coverage metadata to an enrichment layer:

  • Removed docs field from SpecExport and OpenPkg types (now provided via SDK enrichment)
  • Changed SpecDocsMetadata.missing from SpecDocSignal[] to string[] (now uses rule IDs)
  • Added DriftType as a standalone exported type
  • Added DriftCategory type with three categories: structural, semantic, example
  • Added DRIFT_CATEGORIES mapping, DRIFT_CATEGORY_LABELS, and DRIFT_CATEGORY_DESCRIPTIONS constants for categorizing and displaying drift issues

@doccov/sdk

Breaking (pre-1.0): Replaced the lint module with a new quality rules engine and added spec-level caching:

  • Removed the lint module (LintConfig, LintRule, lintExport, lintExports, etc.)
  • Added quality module with a flexible rules-based engine:
    • QualityRule, QualityViolation, QualityConfig types
    • evaluateQuality(), evaluateExportQuality() functions
    • Built-in rules: CORE_RULES, STYLE_RULES, BUILTIN_RULES
  • Added cache module for spec-level caching:
    • loadSpecCache(), saveSpecCache(), validateSpecCache()
    • hashFile(), hashFiles(), hashString() utilities
  • Added enrichment layer:
    • enrichSpec() function
    • EnrichedExport, EnrichedOpenPkg, EnrichedDocsMetadata types
  • Added unified report generation:
    • generateReport(), generateReportFromEnriched()
    • DocCovReport, CoverageSummary, DriftReport types
  • Added unified example validation:
    • validateExamples() function
    • parseExamplesFlag(), shouldValidate() utilities
    • ExampleValidationResult, ExampleValidationOptions types

@doccov/cli

Breaking (pre-1.0): Revamped commands for better UX and added multi-format reporting:

  • Renamed generate command to spec (generates OpenPkg spec files)
  • Added info command for quick package summary (exports, coverage, drift at a glance)
  • Revamped check command:
    • Removed options: --require-examples, --exec, --no-lint, --no-typecheck, --ignore-drift
    • Added options: --examples [mode] (presence, typecheck, run), --max-drift <percentage>, --format <format>, -o/--output <file>, --stdout, --no-cache
    • Now supports multi-format output: text, json, markdown, html, github
    • Writes reports to .doccov/ directory by default
  • Added spec-level caching (use --no-cache to bypass)
  • Simplified config schema to match new quality rules engine