pkritiotis/go-climb-clean-architecture-example
72.5
Strong · 21 September 2026
678
lines of production code
Go
primary language
4
measurements over time
What this system is
This system is a Go-based example of clean architecture principles, specifically designed to manage 'Crag' entities through a structured application layer. It implements core CRUD operations (Create, Read, Update, Delete) by separating domain logic from infrastructure concerns like HTTP handling, in-memory storage, and notifications. The codebase emphasizes testability and dependency injection, utilizing interfaces for time and UUID generation to facilitate mocking and unit testing.
Features
Introduced Crag command and query handlers in the application layer
Added new command handlers (Add, Update, Delete) and query handlers (Get, GetAll) for the Crag domain, along with a central services registry that wires these handlers together. This change restructures the internal/app layer to expose specific use-case handlers for creating, updating, deleting, and retrieving crags, supported by corresponding unit tests.
internal/app · high confidence
Introduced domain and infrastructure abstractions for Crag, Time, and UUID
Added new internal packages to support domain modeling and infrastructure abstraction. The \internal/domain/crag\ package defines the \Crag\ model and its repository interface, along with a mock implementation for testing. Additionally, \internal/pkg/time\ and \internal/pkg/uuid\ provide \Provider\ interfaces and their default implementations, each accompanied by mock versions for testing purposes.
internal/domain, internal/pkg · high confidence
Introduced internal/infra package for infrastructure adapters
Added the internal/infra package to centralize infrastructure concerns, including an in-memory storage repository, a console-based notification service, and HTTP server and handler implementations for the Crag domain. This change provides the concrete implementations for input (HTTP) and output (storage, notifications) adapters, supporting the clean architecture separation of concerns.
internal/infra · high confidence
Behavioural changes
Refactored application entry point to use dependency injection
The main function was refactored to explicitly construct and wire application services and infrastructure components. The application now instantiates providers for time and UUID generation, retrieves infrastructure services (such as the Crag repository and Notification service) via a new InfraProviders struct, and passes these dependencies to the app layer before starting the HTTP server on port 8080.
cmd · high confidence
Dependencies
Updated Go dependencies and module configuration
The project's Go module configuration has been updated to use Go version 1.22, replacing the previous version 1.16. Additionally, the module path was changed to github.com/pkritiotis/go-climb-clean-architecture-example, and the go.sum file was regenerated to include specific versions for dependencies such as google/uuid, gorilla/mux, and stretchr/testify.
(dependencies) · medium confidence
Updated vendor dependencies: go-spew, google/uuid, and others
The vendor directory has been updated to include newer versions of the \go-spew\ and \google/uuid\ packages, along with other third-party dependencies. This update brings in the latest code and license files for these libraries, ensuring the project uses the most recent stable versions of these external tools.
vendor · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 70 → 72 (+2.3)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 69 → 69 (+0.0)
- Readiness 74 → 75 (+1.3)
- Security 66 → 77 (+10.4)
- Domain Modelling 100 → 100 (+0.0)
Resolved (9)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High: security finding (details withheld)
- High: security finding (details withheld)
- Medium CVE: GO-2025-3503 (go.mod)
- No exposed public API
- Test reliability not included
- early-stage repository — too little history to judge knowledge freshness
- single-maintainer — knowledge-concentration (bus factor) risk
New (14)
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Flaky test: .::github.com/pkritiotis/go-climb-clean-architecture-example/internal/infra/storage/memory.Test_inMemoryRepo_GetCrags
- Flaky test: .::github.com/pkritiotis/go-climb-clean-architecture-example/internal/infra/storage/memory.Test_inMemoryRepo_GetCrags/should_return_2_crags
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Medium CVE: GO-2025-3503 (go.mod)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- No dependency advisory monitoring
- Outdated: github.com/stretchr/testify
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
pkritiotis/go-climb-clean-architecture-example was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 09b627706c8efcbb60851f3b3effa71e9c06c50c — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.