From addit-harness
Scan the current Go repo and write .claude/go-conventions.md — a project-specific convention file that rules/go.md loads on every session instead of re-scanning the codebase from scratch. Use when starting work in a new Go repo, when conventions have drifted, or when --refresh is passed to merge in new patterns.
How this skill is triggered — by the user, by Claude, or both
Slash command
/addit-harness:go-conventions [--refresh][--refresh]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scans the current Go module and produces `.claude/go-conventions.md` — a
Scans the current Go module and produces .claude/go-conventions.md — a
lightweight, project-specific convention reference. rules/go.md reads this
file first on every session, so conventions load cheaply without re-scanning.
--refresh — when conventions have evolved or a new area has been added.
Merges new patterns into the existing file; preserves hand-edits.Verify you're in a Go repo: check for go.mod. If absent, stop and say so.
Read these artifacts in priority order:
a. Module identity
go.mod — module path, Go version, key direct dependencies (web framework,
DB driver, logging, IDs, config)b. Existing config (if any)
.golangci.yml / .golangci.toml — enabled linters and their settingsMakefile — build, test, lint, run targets.cursor/rules/*.mdc or .github/copilot-instructions.md — any pre-existing
convention docsc. Project layout (just list, don't read all files yet)
cmd/, internal/, pkg/, api/, app/, etc.d. Representative code — read 2-3 files from each category:
cmd/*.go or main.goservice.go + repository.go + model.go from the largest domainFrom what you read, identify the established patterns for each section below.
Only document what you actually observed — don't invent from general knowledge.
If a section has no established pattern, omit it (leave a brief # TODO: note).
Sections to cover:
Write to .claude/go-conventions.md in the repo root (create .claude/ if needed).
With --refresh: read the existing file first, merge new patterns in, keep
existing content that is still valid. Never overwrite hand-edits — look for
# NOTE: or # OVERRIDE: markers and preserve them.
File header:
# Go conventions — {module-name}
Derived from codebase scan on {date}. Maintained by `/go-conventions --refresh`.
Global baseline: `${CLAUDE_PLUGIN_ROOT}/references/go/app-erp-conventions.md`.
> **Stack:** Go {version} · {key libs}
Then one section per category found. Each section:
// see pkg/sales/service.go)Keep each section tight — 5-15 lines max. This file is loaded every session; brevity matters more than completeness.
Tell the user:
@.claude/go-conventions.md to the project's CLAUDE.md for
automatic inclusion (optional; rules/go.md reads it on demand without this)Do not commit the file unless the user asks.
${CLAUDE_PLUGIN_ROOT}/references/go/app-erp-conventions.md,
not a replacement. Put only the delta — what differs from or extends the global baseline.npx claudepluginhub addit-digital/addit-harness --plugin addit-harnessCreates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.