v0.3.0 a7c1682

CHANGELOG.md RawHistoryFolder

Changelog

v0.3.0

Breaking

  • The CLI uses plain flags: -config, -root, -module replace -hexcheck.config, -hexcheck.root, -hexcheck.module.
  • The config is strict: unknown keys and unknown rule names in rules, ruleSettings, and allow are errors.
  • Diagnostic messages are prefixed with their severity, e.g. [error] no-adapter-imports-in-core: ....

Added

  • Rules no-usecase-imports-in-core, no-infra-imports-in-ports, and no-entrypoint-imports-in-adapter. no-infra-imports-in-usecase also covers entrypoint imports.
  • Rule severity drives the CLI exit code: only error rules fail by default; -fail-on warn also fails on warnings.
  • //hexcheck:ignore <rule>[,<rule>] <reason> inline suppression.
  • hexcheck init writes a starter .hexcheck.yaml from detected folders.
  • -json and -version CLI flags.
  • Type-leak rules inspect channels, function signatures, inline structs, aliases, and generic type arguments.
  • Release builds with GoReleaser.

Fixed

  • The config is loaded once per run instead of once per package.
  • The generated-mock index is rebuilt on each run instead of being cached for the process lifetime.

v0.1.0

Initial release of hexcheck.

  • Adds a go/analysis analyzer for configurable hexagonal architecture checks.
  • Adds a standalone hexcheck CLI.
  • Adds golangci-lint Module Plugin integration.
  • Adds .hexcheck.yaml component role mapping for core, usecase, ports, adapter, entrypoint, and ignore.
  • Adds deterministic boundary rules for adapter imports, usecase imports, framework type leaks, port type leaks, and adapter coupling.
  • Adds warning-level adapter business-logic heuristics with package-local AST/type analysis and performance guardrails.
  • Adds mock discipline rules for missing generated mocks, local fakes, and concrete adapters in usecase/core tests.
  • Adds example configuration and an agent-facing SKILL.md for configuring new repositories.
source
1# Changelog
2
3## v0.3.0
4
5### Breaking
6
7- The CLI uses plain flags: `-config`, `-root`, `-module` replace `-hexcheck.config`, `-hexcheck.root`, `-hexcheck.module`.
8- The config is strict: unknown keys and unknown rule names in `rules`, `ruleSettings`, and `allow` are errors.
9- Diagnostic messages are prefixed with their severity, e.g. `[error] no-adapter-imports-in-core: ...`.
10
11### Added
12
13- Rules `no-usecase-imports-in-core`, `no-infra-imports-in-ports`, and `no-entrypoint-imports-in-adapter`. `no-infra-imports-in-usecase` also covers entrypoint imports.
14- Rule severity drives the CLI exit code: only `error` rules fail by default; `-fail-on warn` also fails on warnings.
15- `//hexcheck:ignore <rule>[,<rule>] <reason>` inline suppression.
16- `hexcheck init` writes a starter `.hexcheck.yaml` from detected folders.
17- `-json` and `-version` CLI flags.
18- Type-leak rules inspect channels, function signatures, inline structs, aliases, and generic type arguments.
19- Release builds with GoReleaser.
20
21### Fixed
22
23- The config is loaded once per run instead of once per package.
24- The generated-mock index is rebuilt on each run instead of being cached for the process lifetime.
25
26## v0.1.0
27
28Initial release of `hexcheck`.
29
30- Adds a `go/analysis` analyzer for configurable hexagonal architecture checks.
31- Adds a standalone `hexcheck` CLI.
32- Adds golangci-lint Module Plugin integration.
33- Adds `.hexcheck.yaml` component role mapping for `core`, `usecase`, `ports`, `adapter`, `entrypoint`, and `ignore`.
34- Adds deterministic boundary rules for adapter imports, usecase imports, framework type leaks, port type leaks, and adapter coupling.
35- Adds warning-level adapter business-logic heuristics with package-local AST/type analysis and performance guardrails.
36- Adds mock discipline rules for missing generated mocks, local fakes, and concrete adapters in usecase/core tests.
37- Adds example configuration and an agent-facing `SKILL.md` for configuring new repositories.

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 5

↑↓ moveenter openesc close