Agent skill

Go Rig

by mudrii in mudrii/openclaw-dashboard

A skill your agent uses when building, reviewing, or refactoring Go code that must follow strict design discipline — ATDD/TDD workflow, explicit dependency injection, package-boundary discipline…

MITAuto-check passedDevelopment

Install Go Rig

skills CLI
$ npx skills add mudrii/openclaw-dashboard --skill go-rig -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mudrii/openclaw-dashboard go-rig --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mudrii/openclaw-dashboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/go-rig .claude/skills/go-rig && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
go-rig
GitHub stars
458
Token cost
~2.8k tokens
SKILL.md length
1,447 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when building, reviewing, or refactoring Go code that must follow strict design discipline — ATDD/TDD workflow, explicit dependency injection, package-boundary discipline…

  • Works in 6 steps: Acceptance first — define the boundary… → Acceptance test — add or update an… → Smallest failing unit test — for the… → …
  • Refactoring Go code that must follow strict design discipline — ATDD/TDD workflow
  • SKILL.md covers When to Use, ATDD/TDD Workflow, Design Principles and Abstraction Discipline, plus 12 more sections
  • Calls go and make

What it does

Go Rig is an agent skill from mudrii/openclaw-dashboard. Use this skill when building, reviewing, or refactoring Go code that must follow strict design discipline — ATDD/TDD workflow, explicit dependency injection, package-boundary discipline, and structured code review. Complements CLAUDE.md by focusing on process and design judgment rather than version-specific Go features.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Test-driven development, Design patterns and Refactoring. The repository describes itself as: A beautiful, zero-dependency command center for OpenClaw AI agents. The licence is MIT.

When your agent uses it

  • Refactoring Go code that must follow strict design discipline — ATDD/TDD workflow
  • Explicit dependency injection
  • Package-boundary discipline
  • Structured code review

Example prompts

  • “/go-rig”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Acceptance first — define the boundary behavior before writing code
  2. Acceptance test — add or update an acceptance-level test if the project has that layer; otherwise express boundary behavior in the closest…
  3. Smallest failing unit test — for the next behavior increment
  4. Minimal implementation — only enough to pass
  5. Refactor — improve readability and cohesion while green
  6. Repeat — next behavior increment

What it can do on your machine

Read from SKILL.md and the folder at commit b63ac25. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • go
    • make

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Go Rig loads about 2.8k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 1,447 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~82
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mudrii/openclaw-dashboard at commit b63ac25, republished under its MIT licence (© mudrii). 1,447 words, ~2,764 tokens.

Download SKILL.mdSave it as .claude/skills/go-rig/SKILL.md (or your agent's skills folder).
name
go-rig
description
Use this skill when building, reviewing, or refactoring Go code that must follow strict design discipline — ATDD/TDD workflow, explicit dependency injection, package-boundary discipline, and structured code review. Complements CLAUDE.md by focusing on process and design judgment rather than version-specific Go features.
metadata.short-description
Go design, workflow, and review discipline
metadata.slash-command
enabled

Go Rig

Strict design and testing discipline for Go projects.

This skill complements CLAUDE.md.

CLAUDE.md owns:

  • Go version, toolchain, and commands
  • Key style, error, context, and concurrency rules

.claude/rules/ owns:

  • Go 1.27 idioms and go fix modernizer catalog (go-idioms.md)
  • Detailed style, API, documentation, and testing patterns (go-patterns.md)

This skill adds:

  • ATDD/TDD workflow
  • design principles and abstraction discipline
  • dependency injection discipline
  • package-boundary judgment
  • documentation discipline
  • comment quality standards
  • structured review process

Do not restate or override version-specific guidance from CLAUDE.md. If CLAUDE.md is stricter on a shared point, follow CLAUDE.md.

When to Use

Use this skill when:

  • implementing a new feature or behavior increment
  • refactoring Go code for clearer ownership or testability
  • reviewing package boundaries or dependency flow
  • replacing hidden collaborator construction with explicit injection
  • tightening tests around user-visible or integration behavior

ATDD/TDD Workflow

Test-first is a design tool, not an afterthought.

  1. Acceptance first — define the boundary behavior before writing code
  2. Acceptance test — add or update an acceptance-level test if the project has that layer; otherwise express boundary behavior in the closest consumer-level test
  3. Smallest failing unit test — for the next behavior increment
  4. Minimal implementation — only enough to pass
  5. Refactor — improve readability and cohesion while green
  6. Repeat — next behavior increment

If repository policy does not allow automatic test execution, still design test-first and ask before running.

Test Coverage Expectations

Every meaningful change should cover:

  • expected behavior (happy path)
  • invalid input and validation failures
  • edge cases and boundary values
  • error and failure paths
  • concurrency behavior when relevant

Use the project’s existing test layers where possible. Reach for acceptance tests when the change is user-visible or integration-heavy, and unit tests when isolating business rules or edge cases.

Definition Of Done

A change is not done when the code "works on one path." It is done when:

  • acceptance behavior is specified at the right boundary
  • the smallest relevant unit behavior is covered
  • failure and edge behavior are covered
  • code was refactored back to clarity after going green
  • repo test/lint/static-analysis expectations were satisfied or explicitly deferred

Design Principles

Apply without ceremony — these guide decisions, not generate boilerplate.

SRP — each package, type, and function has one clear reason to change. Split when a change in one concern forces changes in an unrelated concern.

DRY — extract repeated validation, mapping, branching, and business rules. Do not DRY away incidental similarity — two things that look alike but change for different reasons should stay separate.

OCP — extend stable areas carefully, but do not invent indirection to satisfy the idea of extensibility. In Go, a concrete type with a small seam at the consumer is usually better than an abstract framework.

When applying SRP/DRY/OCP in Go, prefer deleting duplication caused by mixed responsibilities before introducing new abstractions. The first move is usually better boundaries, not more interfaces.

Abstraction Discipline

  • Start with concrete types and direct calls
  • Introduce an interface only when a real consumer needs substitution
  • Prefer one seam at a boundary over many tiny abstractions in the core
  • If an abstraction adds files, wiring, and names but no clear testability or ownership win, do not add it

Avoid:

  • repositories or services that only forward calls
  • configuration objects passed everywhere to avoid choosing explicit parameters
  • “future-proofing” abstractions without a concrete second implementation or consumer

Function Design

  • A function should usually do one thing: validate, transform, orchestrate, persist, or render
  • If a function mixes business rules with transport, storage, or logging details, split it
  • Keep parameter lists explicit and intention-revealing; if many values travel together for one reason, introduce a small typed struct

Refactor when a function:

  • needs comments to explain the control flow
  • mixes unrelated reasons to change
  • carries mutable state across many screens of code
  • repeats branching or validation logic that belongs in a helper or type method

Dependency Injection

  • Constructors for types that must enforce invariants or own long-lived collaborators
  • Function parameters for short-lived collaborators and pure logic
  • Never construct DB clients, HTTP clients, loggers, or repositories inside domain methods
  • Prefer passing dependencies from the composition root (main, wiring package, or test setup) instead of looking them up deep inside the call stack
  • Inject seams for time, randomness, process execution, filesystem, and external I/O when behavior depends on them

Package Design

Organize by domain, not by technical layer.

  • Group related domain logic together until splitting clearly improves cohesion
  • Keep transport and storage near the owning domain in the repo when the service is small, but do not let core business logic depend on transport details
  • Split files when doing so improves readability; file count is not a goal by itself
  • Split packages only when coupling pressure is real, not speculative

Avoid:

  • deep layering in small services
  • internal/platform/ catch-all layers — keep cross-cutting concerns in focused packages
  • packages that combine unrelated domains because they share a datastore or transport

Hardcoding And Configuration

  • Do not hardcode URLs, ports, credentials, file paths, timeouts, feature flags, environment names, or dependency selection in core logic
  • Domain invariants may be constants, but operational values should come from config, constructor parameters, or function arguments
  • Prefer typed config structs validated at startup over scattered os.Getenv calls
  • Keep configuration loading at the edge; pass validated values inward
Show full SKILL.md (593 more words)Show less

Type Discipline

  • Model domain concepts with named types when that prevents invalid mixing and clarifies intent
  • Prefer concrete structs over map[string]any for stable data
  • Keep weakly typed data at the boundary and translate it into strict internal types quickly
  • Avoid boolean parameter soup; use named option structs or dedicated methods when intent is unclear

Comment Quality

Write comments when they add:

  • why a tradeoff exists
  • package-level intent
  • non-obvious invariants or constraints
  • concurrency ownership rules
  • boundary assumptions

Do not write comments that:

  • restate the code
  • narrate obvious assignments
  • explain syntax instead of intent
  • leave vague TODOs without reason or ticket reference
  • duplicate the doc comment with less precision

Documentation Discipline

  • Exported names and packages need doc comments
  • Public docs should describe contract, invariants, and caller-visible behavior
  • When a change affects configuration, wire format, or API semantics, update docs in the same change
  • Add or update examples when they materially improve discoverability of a public API

Test Quality

  • Prefer readable subtest names over encoded case IDs
  • Failure messages should make got and want obvious
  • Prefer semantic comparisons over formatting-sensitive comparisons
  • Avoid asserting on exact human-readable error strings unless the exact string is part of the contract
  • Use t.Fatal only when the test cannot continue meaningfully
  • Acceptance tests should speak in business behavior, not internal implementation vocabulary
  • Use table-driven tests where variation is the point; do not force tables when a direct narrative test is clearer
  • Add test seams instead of using sleeps, global mutation, or network reliance to force determinism

Static Analysis Discipline

Treat linting and static analysis as design feedback, not cosmetic cleanup.

  • Respect repo gates for go vet, golangci-lint, staticcheck, govulncheck, and related analyzers when configured
  • Fix root causes instead of scattering ignores
  • If an analyzer warning is intentionally ignored, leave a precise justification close to the suppression
  • Do not weaken lint configuration casually to make a change pass

Review Checklist

Before finishing any change, verify:

  • Package boundaries are coherent — no cross-domain leaks
  • Dependencies injected explicitly — no hidden construction
  • Functions are readable in one pass and do not mix unrelated responsibilities
  • Tests cover acceptance behavior and unit behavior
  • TDD/ATDD flow was followed as closely as the repo constraints allowed
  • Behavioral compatibility checked where public APIs, JSON, or persistence shape changed
  • Nil vs empty behavior is intentional for slices, maps, pointers, and JSON fields
  • Concurrency changes have a shutdown path and observable ownership
  • Root-package wrappers added/updated for any new internal/ exports
  • Lint and test gates (make check) have been run or consciously deferred

Project-Specific: Root-Package Facade

This project uses a facade pattern where the root dashboard package re-exports internal/ APIs via thin wrappers and type aliases.

When adding a new feature:

  1. Implement logic in internal/app<domain>/ with exported names
  2. Add type aliases (type X = appfoo.X) and wrapper functions in the root package
  3. Write tests at both the internal package level (unit) and root level (integration)

When modifying an existing internal API:

  • If the signature changes, update the corresponding root-level wrapper
  • Root-level wrappers must remain zero-logic forwarding — no business logic in the facade

Legacy note: CollectTokenUsage and CollectTokenUsageWithCache have 15+ map parameters. New code should use options structs per CLAUDE.md convention. These functions are candidates for future refactoring but are not blocking.

Success Criteria

This skill is being followed correctly when:

  • changes are small, test-backed, and easy to review
  • dependency flow is explicit from the composition root
  • package responsibilities are cleaner after the change, not blurrier
  • the implementation follows the Go standards in CLAUDE.md
  • tests speak in behavior terms, not implementation vocabulary
  • the resulting code reads clearly without comments explaining the control flow

© mudrii, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/go-rig of mudrii/openclaw-dashboard.

Open the folder on GitHubat commit b63ac25

Compare with similar skills

Go Rig next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Go Rig compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Go Rig this skillmudrii/openclaw-dashboard458—~2.8kAutomated safety check: PassMIT
Py Rigmudrii/hermesd118—~6.3kAutomated safety check: PassMIT
Solidramziddin/solid-skills606—~2.7kAutomated safety check: PassNone
Effect TSmattiacerutti/supernova186—~2.8kAutomated safety check: PassMIT
Skill Writingmillionco/expect3.6k—~1.8kAutomated safety check: PassCustom licence
Happier Implementhappier-dev/happier1.9k—~4.2kAutomated safety check: PassMIT

Similar skills

  • Py Rig

    mudrii/hermesd

    A skill your agent uses when building, reviewing, or refactoring Python code that requires strong maintainability discipline: SRP, DRY, OCP, explicit dependency injection, TDD/ATDD workflow, strict…

    118 GitHub stars~6.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Solid

    ramziddin/solid-skills

    A skill your agent uses when writing code, implementing features, refactoring, planning architecture, designing systems, reviewing code, or debugging.

    606 GitHub stars~2.7k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Effect TS

    mattiacerutti/supernova

    Write idiomatic Effect v4 TypeScript following official best practices from effect-solutions and the Effect source.

    186 GitHub stars~2.8k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Skill Writing

    millionco/expect

    Write and improve agent skills (SKILL.md files). An agent skill from millionco/expect.

    3.6k GitHub stars~1.8k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • Happier Implement

    happier-dev/happier

    Implement, change, build, fix, refactor, migrate, or apply accepted review findings in the Happier repositories with canonical-owner discovery, scope-preserving solution economy, TDD, efficient…

    1.9k GitHub stars~4.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Omk Coding

    KaimingWan/oh-my-kiro

    Enforces coding best practices: deep-read before modify, LSP-first navigation, TDD red-green-refactor, minimal changes, self-review, verification.

    107 GitHub stars~2.4k tokensUpdated 6 mo ago
    DevelopmentAuto-check passed

More from mudrii/openclaw-dashboard

  • Go Rig

    mudrii/openclaw-dashboard

    A skill your agent uses when building, reviewing, or refactoring Go code in this repository.

    458 GitHub stars~682 tokensUpdated 16 days ago
    Auto-check passed
  • Frontend Dashboard

    mudrii/openclaw-dashboard

    A skill your agent uses when editing the embedded dashboard frontend in this repository.

    458 GitHub stars~361 tokensUpdated 16 days ago
    Auto-check passed
  • Go Review

    mudrii/openclaw-dashboard

    A skill your agent uses when the task is to review Go code in this repository.

    458 GitHub stars~325 tokensUpdated 16 days ago
    Auto-check passed
  • Project Ops

    mudrii/openclaw-dashboard

    A skill your agent uses when working on repository operations in this project, including build, test, lint, release, CI alignment, Makefile-driven checks, and operational packaging constraints.

    458 GitHub stars~387 tokensUpdated 16 days ago
    Auto-check passed

Questions about Go Rig

What does Go Rig do?

A skill your agent uses when building, reviewing, or refactoring Go code that must follow strict design discipline — ATDD/TDD workflow, explicit dependency injection, package-boundary discipline…. Go Rig is an agent skill from mudrii/openclaw-dashboard. Use this skill when building, reviewing, or refactoring Go code that must follow strict design discipline — ATDD/TDD workflow, explicit dependency injection, package-boundary discipline, and structured code review.

When should I use Go Rig?

Go Rig fits situations like: refactoring Go code that must follow strict design discipline — ATDD/TDD workflow; explicit dependency injection; package-boundary discipline; structured code review.

How do I install Go Rig in Claude Code?

Run `npx skills add mudrii/openclaw-dashboard --skill go-rig -a claude-code`. Or copy the skill folder (.claude/skills/go-rig in mudrii/openclaw-dashboard) into .claude/skills/go-rig in your project. Claude Code loads it when a task matches its description.

How do I install Go Rig in Codex?

Run `npx skills add mudrii/openclaw-dashboard --skill go-rig -a codex`. Or copy the skill folder (.claude/skills/go-rig in mudrii/openclaw-dashboard) into .agents/skills/go-rig in your project. Codex loads it when a task matches its description.

Can I use Go Rig in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mudrii/openclaw-dashboard --skill go-rig -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/go-rig, .gemini/skills/go-rig, .github/skills/go-rig and .opencode/skills/go-rig in your project.

What does Go Rig need to run?

Going by SKILL.md and its folder, Go Rig needs the command-line tools its instructions call (go and make).

Does Go Rig access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Go Rig safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Go Rig use?

Go Rig is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Go Rig use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Go Rig?

Skills that share tags, products or a category with Go Rig: Py Rig (mudrii/hermesd, 118 stars), Solid (ramziddin/solid-skills, 606 stars), Effect TS (mattiacerutti/supernova, 186 stars) and Skill Writing (millionco/expect, 3.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Go Rig?

mudrii (a GitHub user) maintains it in mudrii/openclaw-dashboard, which has 458 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on September 23, 2026.

Source: mudrii/openclaw-dashboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.