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.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
npx agent-skills-cli listSkill Instructions
name: Code Formatting description: "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."
Code Quality, Formatting and Conventions
Code Formatting and Linting
- Use
make lint-fixafter writing Go code to automatically fix most linting issues - Run
make verifyto verify both linting and tests pass before committing - For markdown files, use
make verify-codespellto catch spelling errors
Test Conventions - MANDATORY
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"
-
Always include unit tests when creating new functions or modifying existing ones
Quick Checklist
Before committing:
- Ran
make lint-fixon Go code - Ran
make verify(passes) - Tests use "When...it should..." naming format
- New functions have unit tests
- Markdown checked with
make verify-codespell
More by openshift
View allEffective Go: Apply Go best practices, idioms, and conventions from golang.org/doc/effective_go. Use when writing, reviewing, or refactoring Go code to ensure idiomatic, clean, and efficient implementations.
Git Commit Format: Apply HyperShift conventional commit formatting rules. Use when generating commit messages or creating commits.
Debug Cluster: Provides systematic debugging approaches for HyperShift hosted-cluster issues. Auto-applies when debugging cluster problems, investigating stuck deletions, or troubleshooting control plane issues.
PR Review: Comprehensive PR review for oc (OpenShift CLI). Runs build, tests, and linting, then applies Go style improvements and provides detailed code review feedback.
