| title | Architecture audit log |
|---|---|
| summary | Running log of SOLID and clean-architecture findings on origin/main. The solid-architecture skill (audit mode) appends here; blockers are also filed as plans. |
| audit-from | fe7141beb32f9f20d82476fd8d652e0f63d4e4ef |
This file is maintained by the solid-architecture skill in audit mode.
1 107 files; 425 Go/TS sources outside fixtures.
Resolved:
- Rule-to-rule imports — plan/154.
- Config-to-rule import — plan/155.
internal/testutilanti-pattern name — plan/201.hover.goDIP — plan/200.main.go> 1 000 lines — plan/202.
Tax:
extension.tsSRP — plan/205.internal/fix→internal/engineDIP — plan/204.internal/lintSRP — plan/224.
Covered internal/rename, internal/index,
mdsmith deps, mdsmith export. Tax:
nonNegativeUTF16RuneLen copied privately in
three packages; export from internal/mdtext —
plan/186.
Plan 174 moved the workspace symbol index
from internal/lsp/index to internal/index.
Pure git mv; no logic changed.
internal/schema already imported it from
outside internal/lsp. mdsmith rename and
mdsmith deps need it. The layering map
forbids cmd/mdsmith → internal/lsp.
internal/index must never import internal/lsp.
131 Go files. Plans 154, 155, 174 green.
server.go(1 536) andsymbols.go(1 385) exceed 1 000 lines — plan/203.- Five items from 2026-05-13 now scheduled: hover, testutil, main.go, fix→engine, extension.ts.
cue/types not in layering map — plan/206.
Plans 200, 201, 202 green. Tax:
plan/223 (pkg/mdsmith private helpers),
plan/224 (internal/lint SRP, now 12 files).
linkstyle helpers — add tests in-place.
internal/punkt not in the layering map —
plan/225. Separately, plan/224
(internal/lint SRP) is now implemented:
gitignore, bytelimit, and piparser
split into sibling packages.
Plans 203–225 green. Blocker: Session.CheckSource
(public API) had no unit test. Fixed: added
pkg/mdsmith/checksource_test.go with 4 tests.
Tax: the tablereadability dedup and
include helper test plans.
Tax: build→rules DIP, engine wrappers, secreview tests.
Lazy-parse series (plans 2606141901–2606141904). Tax: new-pkg-docs, helper-tests.
Parity + Layer-0 parse-skip series.
Symlink containment; engine panic recovery.
VS Code kinds and rule-doc commands.
270 Go/TS sources. No blockers,
rule-to-rule imports, or DIP violations.
-
internal/engine/runner.go(1 290 lines) — SRP: 7 concerns. Fixed this cycle: split intorunner_layer0.go,runner_cache.go,runner_log.go— plan/2606211907. -
internal/lint/layer0.go(1 203 lines) — full Layer-0 block scanner. Fix: split along block-type sub-parsers — plan/2606211908. -
internal/lsp/server.go(1 007 lines) — crept back over 1 000 lines. Dispatch-group split — plan/2606211909.
pkg/mdsmith/workspace.gotrivial methods lack "// no test by design" exemptions — plan/2606211910.
Performance + struct-alignment series; inline scanner refinements; benchmark additions. No TypeScript changes. 273 Go sources outside fixtures.
No blockers. No rule-to-rule imports added.
No DIP violations. New files are under 800
lines. Struct alignment and map[string]struct{}
changes are mechanical rewrites with no
layering impact.
-
internal/lint/inline_scan.go— 13 unexported helpers lack dedicated unit tests. Tests doc §"every function by name" — plan/2606231013. -
internal/rules/samefileanchor/rule.go— 12 unexported helpers lack dedicated unit tests — plan/2606231014.
Perf series (struct-alignment, Sprintf→strconv,
[]byte FindSubmatch, Builder). Plans 2606231013
and 2606231014 closed. Benchmark docs and security
SARIF retired. No TypeScript changes. 273 Go
sources outside fixtures.
No blockers. No rule-to-rule imports. No DIP violations. No file crossed 1 000 lines.
-
internal/index/locate.go— 12 unexported helpers lack dedicated unit tests. Tests doc §"every function by name" — plan/2606240211. -
internal/lsp/rename.go— 15 unexported helpers lack dedicated unit tests. Tests doc §"every function by name" — plan/2606240212. -
internal/export/export.go— 11 unexported helpers lack dedicated unit tests. Tests doc §"every function by name" — plan/2606240213. -
internal/lsp/rename.goandinternal/rename/rename.go—normalizedLabelandrefDefBracketBytesare duplicated. Both have identical bodies. Hub §"Anti-patterns" — plan/2606240214. -
internal/rules/concisenessscoring/rule.goandinternal/rename/rename.go—countClassifierTokensandcontentBlockLineslack dedicated unit tests. Batched into plan/2606240213.
internal/index/locate.go—isGlobPatternis a trivial one-liner with no branch. Add "// no test by design" so the audit can distinguish it from forgotten test debt.
Plans 2606241814/2606241815 green. No DIP, SRP, or line-count violations.
Go 1.25.11 + x/net CVE bumps; five perf fixes (map→struct, fmt→strconv); type-6 tag gap fix; plan-2606241814/15 test additions. No new production functions, DIP, SRP, or line-count violations.
-
internal/lint/layer0_html.go— seven helpers lack dedicated tests. File entered the touched set via a perf commit. Tests doc §"every function by name" — plan/2606260211. -
internal/lint/lineclass_scan.go— 9 unexported helpers lack tests. Sub-functions ofhtmlType7Start— plan/2606260614. -
cue/cuelite/engine.go— 7 unexported helpers lack tests — plan/2606260615.