B:BD[
10.1341] → [
2.56077:58903]
# depguard:
# rules:
# # Package dependency rules — see CLAUDE.md "Package Organization"
# # Packages may only import packages below them in the list:
# # cmd → tools, tools/calls, tools/import, tui, utils, db
# # tools/calls → utils, db
# # tools/import → utils, db
# # tools → utils, db
# # tui → tools/calls, utils
# # db → utils
# # utils → (nothing — leaf package)
# utils:
# files:
# - "**/utils/*.go"
# deny:
# - pkg: "skraak/cmd"
# desc: "utils is the leaf package"
# - pkg: "skraak/tools"
# desc: "utils is the leaf package"
# - pkg: "skraak/tui"
# desc: "utils is the leaf package"
# - pkg: "skraak/db"
# desc: "utils is the leaf package"
# db:
# files:
# - "**/db/*.go"
# deny:
# - pkg: "skraak/cmd"
# desc: "db may only import utils"
# - pkg: "skraak/tools"
# desc: "db may only import utils"
# - pkg: "skraak/tui"
# desc: "db may only import utils"
# tui:
# files:
# - "**/tui/*.go"
# deny:
# - pkg: "skraak/cmd"
# desc: "tui must not import cmd"
# - pkg: "skraak/db"
# desc: "tui must not import db"
# - pkg: "skraak/tools$"
# desc: "tui must import from tools/calls, not tools"
# calls:
# files:
# - "**/tools/calls/*.go"
# deny:
# - pkg: "skraak/cmd"
# desc: "tools/calls must not import cmd"
# - pkg: "skraak/tools"
# desc: "tools/calls must not import parent package"
# - pkg: "skraak/tui"
# desc: "tools/calls must not import tui"
# import:
# files:
# - "**/tools/import/*.go"
# deny:
# - pkg: "skraak/cmd"
# desc: "tools/import must not import cmd"
# - pkg: "skraak/tools"
# desc: "tools/import must not import parent package"
# - pkg: "skraak/tui"
# desc: "tools/import must not import tui"
# tools:
# files:
# - "**/tools/*.go"
# deny:
# - pkg: "skraak/cmd"
# desc: "tools must not import cmd"
# - pkg: "skraak/tui"
# desc: "tools must not import tui"
# - pkg: "skraak/tools/calls"
# desc: "tools must not import tools/calls (sub-package)"
# - pkg: "skraak/tools/import"
# desc: "tools must not import tools/import (sub-package)"
depguard:
rules:
# Package dependency rules — see CLAUDE.md "Package Organization".
# A package may only import packages BELOW it in the layered graph:
# cmd → tools, tools/calls, tools/import, tui, db, audio, wav, spectrogram, astro, mapping, utils
# tools/calls → db, audio, wav, spectrogram, mapping, utils
# tools/import → db, wav, astro, mapping, utils
# tools → db, audio, wav, spectrogram, astro, mapping, utils
# tui → audio, wav, spectrogram, utils
# db → wav, utils
# spectrogram → audio, wav
# wav → audio, astro, utils
# audio, astro, mapping, utils → (no skraak/* imports)
utils:
files: ["**/utils/*.go"]
deny:
- { pkg: "skraak/", desc: "utils is the leaf package — no skraak/* imports" }
mapping:
files: ["**/mapping/*.go"]
deny:
- { pkg: "skraak/", desc: "mapping is a leaf package — no skraak/* imports" }
audio:
files: ["**/audio/*.go"]
deny:
- { pkg: "skraak/", desc: "audio is a leaf package — no skraak/* imports" }
astro:
files: ["**/astro/*.go"]
deny:
- { pkg: "skraak/", desc: "astro is a leaf package — no skraak/* imports" }
wav:
files: ["**/wav/*.go"]
deny:
- { pkg: "skraak/cmd", desc: "wav must not import cmd" }
- { pkg: "skraak/tools", desc: "wav must not import tools" }
- { pkg: "skraak/tui", desc: "wav must not import tui" }
- { pkg: "skraak/db", desc: "wav must not import db" }
- { pkg: "skraak/spectrogram", desc: "wav must not import spectrogram" }
spectrogram:
files: ["**/spectrogram/*.go"]
deny:
- { pkg: "skraak/cmd", desc: "spectrogram must not import cmd" }
- { pkg: "skraak/tools", desc: "spectrogram must not import tools" }
- { pkg: "skraak/tui", desc: "spectrogram must not import tui" }
- { pkg: "skraak/db", desc: "spectrogram must not import db" }
- { pkg: "skraak/utils", desc: "spectrogram should only depend on audio + wav" }
- { pkg: "skraak/astro", desc: "spectrogram should only depend on audio + wav" }
- { pkg: "skraak/mapping", desc: "spectrogram should only depend on audio + wav" }
db:
files: ["**/db/*.go"]
deny:
- { pkg: "skraak/cmd", desc: "db may only import wav + utils" }
- { pkg: "skraak/tools", desc: "db may only import wav + utils" }
- { pkg: "skraak/tui", desc: "db may only import wav + utils" }
- { pkg: "skraak/spectrogram", desc: "db may only import wav + utils" }
tui:
files: ["**/tui/*.go"]
deny:
- { pkg: "skraak/cmd", desc: "tui must not import cmd" }
- { pkg: "skraak/db", desc: "tui must not import db" }
- { pkg: "skraak/tools$", desc: "tui must import from tools/calls, not tools" }
- { pkg: "skraak/tools/import", desc: "tui must not import tools/import" }
calls:
files: ["**/tools/calls/*.go"]
deny:
- { pkg: "skraak/cmd", desc: "tools/calls must not import cmd" }
- { pkg: "skraak/tools$", desc: "tools/calls must not import parent tools package" }
- { pkg: "skraak/tools/import", desc: "tools/calls must not import tools/import (sibling)" }
- { pkg: "skraak/tui", desc: "tools/calls must not import tui" }
import:
files: ["**/tools/import/*.go"]
deny:
- { pkg: "skraak/cmd", desc: "tools/import must not import cmd" }
- { pkg: "skraak/tools$", desc: "tools/import must not import parent tools package" }
- { pkg: "skraak/tools/calls", desc: "tools/import must not import tools/calls (sibling)" }
- { pkg: "skraak/tui", desc: "tools/import must not import tui" }
tools:
files: ["**/tools/*.go"]
deny:
- { pkg: "skraak/cmd", desc: "tools must not import cmd" }
- { pkg: "skraak/tui", desc: "tools must not import tui" }
- { pkg: "skraak/tools/calls", desc: "tools must not import tools/calls (sub-package)" }
- { pkg: "skraak/tools/import", desc: "tools must not import tools/import (sub-package)" }