Provides a guide for setting up Golang project layouts and workspaces. Use this whenever starting a new Go project, organizing an existing codebase, setting up a monorepo with multiple packages, creating CLI tools with multiple main packages, or deciding on directory structure. Apply this for any Go project initialization or restructuring work.
74
70%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/golang-project-layout/SKILL.mdQuality
Discovery
89%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a solid skill description that clearly communicates when to use it with explicit trigger scenarios and natural keywords. Its main weakness is that the 'what' portion is somewhat vague ('provides a guide') rather than listing specific concrete actions the skill performs (e.g., 'generates directory structures, configures go.work files, sets up module paths'). Overall it would perform well in skill selection.
Suggestions
Replace 'Provides a guide for setting up' with more specific concrete actions, e.g., 'Generates directory structures, configures go.work workspaces, sets up module paths, and organizes package hierarchies for Golang projects.'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description names the domain (Golang project layouts/workspaces) and mentions several actions like 'setting up,' 'organizing,' 'creating CLI tools,' but these are more about use cases than concrete actions the skill performs. It says 'provides a guide' which is somewhat vague about what it actually does. | 2 / 3 |
Completeness | Clearly answers both 'what' (provides a guide for setting up Golang project layouts and workspaces) and 'when' (explicitly lists triggers: starting a new Go project, organizing existing codebase, setting up monorepo, creating CLI tools, deciding on directory structure, project initialization or restructuring). | 3 / 3 |
Trigger Term Quality | Good coverage of natural terms users would say: 'Go project,' 'Golang,' 'monorepo,' 'multiple packages,' 'CLI tools,' 'directory structure,' 'project initialization,' 'restructuring.' These are terms a developer would naturally use when seeking help with Go project organization. | 3 / 3 |
Distinctiveness Conflict Risk | The description is clearly scoped to Go/Golang project layout and workspace organization, which is a distinct niche. The specific mention of Go, monorepo, CLI tools with multiple main packages, and directory structure makes it unlikely to conflict with other skills. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
50%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill provides a solid organizational framework for Go project setup with a useful project type table, naming conventions, and initialization checklist. Its main weaknesses are heavy delegation to external reference files (none of which were provided in the bundle), lack of executable code examples in the body itself, and missing validation checkpoints in the workflow. The content is reasonably concise but could be tighter by removing explanations of well-known concepts.
Suggestions
Add a concrete, executable example of a minimal main.go in cmd/ showing the 'parse flags, wire dependencies, call Run()' pattern rather than just describing it.
Add validation checkpoints to the initialization checklist (e.g., 'Run `go build ./...` to verify structure compiles', 'Run `go vet ./...` to catch issues early').
Include the bundle reference files (directory-layouts.md, config.md, etc.) or inline the most critical content so the skill is usable without external dependencies.
Remove the persona statement and trim the 12-Factor App explanation to just a link — Claude knows these concepts.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Generally efficient but includes some unnecessary framing (e.g., the persona statement, explaining what 12-Factor App is). The table and checklist are well-structured, but some sections like 'Module Naming Conventions' explain things Claude already knows about Go conventions. | 2 / 3 |
Actionability | The initialization checklist provides concrete commands (go mod init, gofmt), and the module naming section has good/bad examples. However, much of the actionable content is deferred to reference files (directory-layouts.md, config.md, testing-layout.md, workspaces.md) and other skills, and the main body lacks executable code beyond simple go.mod examples. The 'cmd/ main packages should parse flags, wire dependencies, call Run()' guidance is descriptive rather than showing a concrete example. | 2 / 3 |
Workflow Clarity | The initialization checklist provides a clear sequence of steps, which is good. However, it lacks validation checkpoints — there's no 'verify your module initializes correctly' step, no 'go build to confirm structure works' checkpoint, and no error recovery guidance if steps fail. The 'Ask First' / 'Ask Next' flow is a nice decision sequence but remains high-level. | 2 / 3 |
Progressive Disclosure | Good use of references to other skills and reference files (directory-layouts.md, config.md, testing-layout.md, workspaces.md, assets/Makefile, assets/.gitignore). However, no bundle files were provided, so we cannot verify these references actually exist. The Related Skills section at the bottom is well-organized, but some references are scattered throughout the body rather than consolidated, and the heavy reliance on external files means the skill itself may not be self-sufficient for basic use. | 2 / 3 |
Total | 8 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
metadata_field | 'metadata' should map string keys to string values | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
e9761db
Table of Contents
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.