CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

golang-project-layout

Golang project layout and workspace setup — cmd/internal/pkg directory conventions, module and package naming, go.work workspaces, and essential configuration files. Use when starting a new Go project, organizing an existing codebase, setting up a monorepo with multiple packages, creating CLI tools with multiple main packages, or discussing package restructuring, package splits, or module splits. Not for restructuring existing code without a layout change (→ See `samber/cc-skills-golang@golang-refactoring` skill).

72

Quality

90%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

78%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, navigable skill body: lean sections, a useful decision-first flow, concrete commands in the initialization checklist, and a clean one-level-deep reference bundle that checks out on disk. The main gaps are redundant module-naming tutorial content Claude already knows and the absence of an explicit build/verify checkpoint at the end of the initialization workflow.

Suggestions

Trim the 'Module Naming Conventions' section to a one-line pointer (e.g., '→ See samber/cc-skills-golang@golang-naming skill') and drop the good/bad module-path code block — it re-teaches conventions Claude already knows and duplicates the referenced naming skill.

Add an explicit validation step at the end of the Initialization Checklist, such as 'Run go build ./... to verify the scaffold compiles' (and optionally 'go test ./...'), so the workflow has a concrete success checkpoint.

In the 12-Factor App section, replace the general principle list with one or two concrete Go-specific implementations (e.g., env config via envconfig, 'cmd/migrate' example layout) or move the list into a reference file, so the section is actionable rather than purely directional.

DimensionReasoningScore

Conciseness

The body is largely lean — a project-type table, short sections, and pointers to references — but the Module Naming section re-teaches knowledge Claude already has ('Use lowercase only', 'Use hyphens for multi-word') with a good/bad module-path code block that duplicates the referenced 'golang-naming' skill. That is exactly the 'minor instances of over-explanation that could be trimmed' of anchor 4; it is far from the padded verbose anchors 1-2.

4 / 5

Actionability

The Initialization Checklist gives concrete, executable commands ('go mod init github.com/user/project-name', 'gofmt -s -w .', 'go version') and specific paths ('cmd/{name}/main.go', 'testdata/'), but other sections (12-Factor App list, the project-type table, architecture/DI questions) are directional with the executable detail deferred to references and sibling skills. Mostly executable guidance with minor gaps — anchor 4 rather than the fully copy-paste-ready anchor 5.

4 / 5

Workflow Clarity

The Initialization Checklist is a clearly ordered multi-step sequence with concrete commands per step, and the skill usefully front-loads the two decision questions (architecture, then DI) with an explicit reason for their ordering. However, there is no explicit build/verify checkpoint confirming the scaffold compiles (e.g., 'go build ./...'), so validation is implicit — this sits between anchors 3 and 4, noticeably above the 'checkpoints missing' midpoint.

4 / 5

Progressive Disclosure

The body is a concise overview with well-signaled, one-level-deep references, and every referenced bundle file exists (references/directory-layouts.md, config.md, testing-layout.md, workspaces.md, assets/Makefile, assets/.gitignore); the reference files themselves contain only internal anchors, not nested references. This matches the anchor-5 pattern of a clear overview pointing to appropriately split detail.

5 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: it states concrete capabilities, provides explicit and varied use-when triggers in the user's natural vocabulary, and even includes a negative boundary that routes the nearest competing use case to a sibling skill. Nothing important is missing and nothing is padded.

DimensionReasoningScore

Specificity

The description enumerates concrete capability areas — 'cmd/internal/pkg directory conventions, module and package naming, go.work workspaces, and essential configuration files' — and concrete scenarios ('starting a new Go project, organizing an existing codebase, setting up a monorepo... creating CLI tools with multiple main packages'). Coverage is comprehensive for the project-layout domain, matching the anchor-5 example's breadth rather than the minor-gaps anchor 4.

5 / 5

Completeness

It explicitly answers both questions: the first sentence states what the skill does, and 'Use when starting a new Go project, organizing an existing codebase, setting up a monorepo with multiple packages, creating CLI tools... or discussing package restructuring' gives concrete when-triggers. It even adds a negative boundary ('Not for restructuring existing code without a layout change'), exceeding the anchor-5 pattern.

5 / 5

Trigger Term Quality

It uses the natural phrases a user would actually say ('starting a new Go project', 'organizing an existing codebase', 'setting up a monorepo', 'package splits, or module splits') and covers both naming variants ('Golang' and 'Go') plus concrete file/directory terms (go.work, cmd/). No commonly used synonym is missing, so it fits the comprehensive anchor 5 rather than the 'a few natural terms missing' anchor 4.

5 / 5

Distinctiveness Conflict Risk

The skill has a clear niche (Go project layout/workspaces) with distinct triggers, and the explicit 'Not for restructuring existing code without a layout change (→ See samber/cc-skills-golang@golang-refactoring skill)' clause actively disambiguates it from its closest sibling skill. Minimal conflict risk, matching anchor 5.

5 / 5

Total

20

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_field

'metadata' should map string keys to string values

Warning

Total

15

/

16

Passed

Repository

samber/cc-skills-golang

Path

skills/golang-project-layout/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.