MCPInstall

code formatting

MANDATORY: When writing Go tests, you MUST use 'When...it should...' format for ALL test names. When writing any Go code, you MUST remind user to run 'make lint-fix' and 'make verify'. These are non-negotiable HyperShift requirements.

Installs
82
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/openshift/hypershift --skill code-formatting
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads code formatting automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Code Quality, Formatting and Conventions

Code Formatting and Linting

  • Use make lint-fix after writing Go code to automatically fix most linting issues
  • Run make verify to verify both linting and tests pass before committing
  • For markdown files, use make verify-codespell to catch spelling errors

Test Conventions - MANDATORY

Test naming

NON-NEGOTIABLE RULE: Every Go test name MUST follow this exact format:

name: "When <condition>, it should <expected behavior>"

Examples:

name: "When NodePool has valid image ID, it should create Azure machine template"
name: "When subnet ID is invalid, it should return error"
name: "When encryption is enabled, it should configure disk encryption set"

NEVER use generic names like:

  • ❌ "nominal case without managed identity"
  • ❌ "basic Azure machine template with ImageID"
  • ❌ "error case - invalid subnet ID"

ALWAYS use "When...it should..." format:

  • ✅ "When NodePool has no managed identity, it should create template without identity"
  • ✅ "When NodePool has ImageID, it should create basic Azure machine template"
  • ✅ "When subnet ID is invalid, it should return error with subnet parse message"

Unit test function naming

Unit test functions MUST be named after the function they test, using the standard Go Test<FunctionName> convention:

// Testing function ReconcileNodePool
func TestReconcileNodePool(t *testing.T) { ... }

// Testing function buildAzureMachineTemplate
func TestBuildAzureMachineTemplate(t *testing.T) { ... }

NEVER use generic or disconnected test function names like:

  • ❌ TestNodePoolFeatures
  • ❌ TestAzureIntegration
  • ❌ TestVariousCases

Each test function should map 1:1 to the function under test. If a function is complex enough to warrant many test cases, use table-driven tests within a single Test<FunctionName> function with the "When...it should..." naming for each case.

Unit test placement

  • Always include unit tests when creating new functions or modifying existing ones
  • Place unit tests next to the code they test — in the same package directory, in a _test.go file
  • Do NOT place new tests in test/integration/ — this is a legacy directory. New unit tests go alongside the code under test. New integration-style tests that require a cluster should use test/e2e/ or test/envtest/

Quick Checklist

Before committing:

  • Ran make lint-fix on Go code
  • Ran make verify (passes)
  • Tests use "When...it should..." naming format
  • New functions have unit tests
  • Markdown checked with make verify-codespell

FAQ

What does the code formatting skill do?

MANDATORY: When writing Go tests, you MUST use 'When...it should...' format for ALL test names. When writing any Go code, you MUST remind user to run 'make lint-fix' and 'make verify'. These are non-negotiable HyperShift requirements.

How do I install code formatting?

Run npx skills add https://github.com/openshift/hypershift --skill code-formatting in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/code-formatting/ (personal) or .claude/skills/code-formatting/ (project).

Which AI agents can use code formatting?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is code formatting safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains code formatting?

It is published by openshift in openshift/hypershift, and it is an official skill from the maker of the technology it covers. It has 82 recorded installs.

More from openshift/hypershift

View all →

effective go

openshift/hypershift

Open the skill to read its SKILL.md instructions.

Official396 installs

debug cluster

openshift/hypershift

Open the skill to read its SKILL.md instructions.

OfficialCode Quality & Workflow77 installs

git commit format

openshift/hypershift

Apply HyperShift conventional commit formatting rules. Use when generating commit messages or creating commits.

OfficialCode Quality & Workflow77 installs

Popular testing & qa skills

View category →

tdd

mattpocock/skills

Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.

Testing & QA1.2M installs

grilling

mattpocock/skills

Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

Testing & QA996.2K installs

migrate-to-shoehorn

mattpocock/skills

Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.

Testing & QA484.1K installs

run-train

lllllllama/rigorpilot-skills

Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.

Testing & QA337.8K installs

test-driven-development

obra/superpowers

Use when implementing any feature or bugfix, before writing implementation code

Testing & QA261.8K installs

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work

Testing & QA216.8K installs