Official agent skill

Go Conventions

by hashicorp in hashicorp/terraform-provider-aws

Fundamental Go conventions for the Terraform AWS provider. An agent skill from hashicorp/terraform-provider-aws.

OfficialMPL-2.0Auto-check passedDevOps & Cloud

Install Go Conventions

skills CLI
$ npx skills add hashicorp/terraform-provider-aws --skill go-conventions -a claude-code

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

GitHub CLI
$ gh skill install hashicorp/terraform-provider-aws go-conventions --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/hashicorp/terraform-provider-aws.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/go-conventions .claude/skills/go-conventions && 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-conventions
GitHub stars
11k
Token cost
~1.3k tokens
SKILL.md length
674 words
Files
1
Skills in repo
17
Repo updated
First seen
Licence
MPL-2.0

At a glance

Fundamental Go conventions for the Terraform AWS provider. An agent skill from hashicorp/terraform-provider-aws.

  • Editing Go in internal//.go (any resource
  • SKILL.md covers Naming, Comments, Organization: function, file,… and Abstraction, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Ephemeral resource

What it does

Go Conventions is an agent skill from hashicorp/terraform-provider-aws, published by the product's own GitHub organization. Fundamental Go conventions for the Terraform AWS provider. Use whenever writing or editing Go in internal//.go (any resource, data source, ephemeral resource, action, test, or helper) before making the change, not only when asked about Go.

Its SKILL.md is about 1.3k 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 DevOps & Cloud, covering Infrastructure as code. It works with Terraform and Amazon Web Services. The repository describes itself as: The AWS Provider enables Terraform to manage AWS resources. The licence is MPL-2.0.

When your agent uses it

  • Editing Go in internal//.go (any resource
  • Ephemeral resource
  • Helper) before making the change
  • Not only when asked about Go

Example prompts

  • “/go-conventions”

What it can do on your machine

Read from SKILL.md and the folder at commit 972faab. 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

    No scripts in the folder and no shell commands in SKILL.md.

    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 Conventions loads about 1.3k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 674 words of instructions outside code blocks.

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

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 hashicorp/terraform-provider-aws at commit 972faab, republished under its MPL-2.0 licence (© hashicorp). 674 words, ~1,326 tokens.

Download SKILL.mdSave it as .claude/skills/go-conventions/SKILL.md (or your agent's skills folder).
name
go-conventions
description
Fundamental Go conventions for the Terraform AWS provider. Use whenever writing or editing Go in internal/**/*.go (any resource, data source, ephemeral resource, action, test, or helper) before making the change, not only when asked about Go.
<!-- Copyright IBM Corp. 2014, 2026 -->
<!-- SPDX-License-Identifier: MPL-2.0 -->

Skill: Go Conventions

Three forces pull this repository away from Go's conventions: existing code that violates them, human habits from other languages, and agent instincts trained on other ecosystems. Follow provider practice where it doesn't contradict this skill; where existing code violates this skill, it isn't precedent. Rationale and evidence: docs/go-for-contributors.md.

Naming

  • Initialisms keep one case: ID, ARN, API, VPC, KMS, URL, HTTP. Write applicationID, never applicationId, Arn, or Url.
  • MixedCaps, not underscores: maxRetries, not MAX_RETRIES. Test names (TestAccFoo_basic) are the exception.
  • Getters drop Get: Owner(), not GetOwner().
  • Short locals (c, i). Receivers are one or two letters, consistent across the type, never this or self.
  • Don't create packages named util, common, misc, api, types, or interfaces. If callers must alias your package, the name failed. (We ship internal/types, internal/framework/types, internal/sdkv2/types; these are known fails, not precedent.)

Comments

  • Names and structure first. A comment never compensates for code that is hard to read.
  • Delete a comment that restates the line, names the obvious operation, acts as an in-function section header, paraphrases the signature, teaches Go, or explains a name you should rename instead.
  • Keep comments that record constraints, invariants, surprising AWS behavior, or why an obvious approach was rejected.
  • Document every exported declaration: full sentence, begins with the name, ends with a period.

Organization: function, file, package

Three units, three costs. A separately nameable concept does not earn a boundary.

  • Function: cheap. Create freely when it improves the code.
  • File: organization for humans. Default to editing an existing file; a new file creates no encapsulation, ownership, or API boundary.
  • Package: a real API and dependency boundary. Rare, and strongly justified.

Then:

  • No helpers.go, common.go, or utils.go. Two or three callers, or "separation of concerns," don't justify a new file.
  • No one-class-per-file or one-concern-per-file habits from Java or Python. Keep related code physically close.
  • Prefer growing an existing package. A healthy one holds several types, files, and responsibilities (net/http, os, flag).
  • If callers will almost always need the new package alongside its parent or neighbor, don't split it.
  • If implementation code routinely imports several sibling packages sharing a path prefix, those aren't meaningful boundaries.
  • If a split forces you to export what used to be unexported, the split is the mistake.
Show full SKILL.md (304 more words)Show less

Abstraction

  • Stay concrete until multiple real uses demand otherwise. Similarity is evidence to examine, not an instruction to abstract.
  • Define interfaces where they're consumed, as small as the consumer needs. Never pair an interface with its implementation by default, and never add one so it "could be mocked."
  • A little copying beats a little dependency. Modest duplication is better than an abstraction that obscures control flow.
  • Prefer functions and ordinary data structures over types, builders, managers, registries, and frameworks.

Control flow and errors

  • Linear and top-to-bottom. Handle the exceptional case early and return. No unnecessary else.
  • Errors are values: return them, wrap with useful context, inspect deliberately. No exception-like infrastructure or custom error hierarchies.
  • Error strings are lowercase and unpunctuated: "reading bucket policy".
  • Never discard an error with _. Never panic for an ordinary failure.

Context

  • ctx context.Context is the first parameter, always.
  • Never store a Context in a struct field; pass it to each method that needs it.

Commit messages

  • Concise subject. Add a body only for intent or non-obvious constraints. A large mechanical change may need barely a word.

Above all: don't import other languages' architecture

Go prefers concrete code, explicit control flow, locality, small consumer-driven interfaces, and modest repetition over abstraction, indirection, and machinery. When two implementations are equally correct, choose the one with fewer concepts. Absence of machinery is not unfinished work; the machinery is usually the defect.

Resist:

  • Generics to remove duplication. Use them when the problem itself is generic.
  • DI infrastructure. A function parameter or struct field already is dependency injection.
  • Redesigning production code to enable mocking.
  • Extracting tiny single-use helpers merely to shorten a function.
  • Wrapper types (Config, Options, Manager, Result) for tiny concepts. Leave a string a string.
  • Constructors where a useful zero value works.
  • map/filter/reduce pipelines, reflection, or functional composition where a plain loop reads directly.

© hashicorp, MPL-2.0. 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 .agents/skills/go-conventions of hashicorp/terraform-provider-aws.

Open the folder on GitHubat commit 972faab

Compare with similar skills

Go Conventions 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 Conventions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Go Conventions this skillhashicorp/terraform-provider-aws11k—~1.3kAutomated safety check: PassMPL-2.0
Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit2606 repos~1.1kAutomated safety check: NotesCustom licence
Terravision Cloud Diagramspatrickchugh/terravision1.6k—~5.6kAutomated safety check: NotesAGPL-3.0-only
TerrasharkLukasNiessen/terrashark714—~843Automated safety check: PassMIT
AWS Cloud Advisortech-leads-club/agent-skills7k—~2.1kAutomated safety check: PassCC-BY-4.0
Spa Create Configsplunk/splunk-platform-automator137—~3.5kAutomated safety check: PassProprietary

Similar skills

  • Senior DevOps Toolkit

    maslennikov-ig/claude-code-orchestrator-kit

    Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…

    260 GitHub starsUsed in 6 repos~1.1k tokens
    DevOps & CloudAuto-check: notes
  • Terravision Cloud Diagrams

    patrickchugh/terravision

    Draw cloud architecture diagrams for AWS, Azure or GCP with the official provider icon sets, using TerraVision.

    1.6k GitHub stars~5.6k tokensUpdated 2 days ago
    DevOps & CloudAuto-check: notes
  • Terrashark

    LukasNiessen/terrashark

    Prevent Terraform/OpenTofu hallucinations by diagnosing and fixing failure modes: identity churn, secret exposure, blast-radius mistakes, CI drift, and compliance gate gaps.

    714 GitHub stars~843 tokensUpdated 6 days ago
    DevOps & CloudAuto-check passed
  • AWS Cloud Advisor

    tech-leads-club/agent-skills

    Answers AWS architecture, security and service-selection questions by searching AWS documentation through MCP tools first, then adapting advice to your stack and team.

    7k GitHub stars~2.1k tokensUpdated 18 days ago
    DevOps & CloudAuto-check passed
  • Spa Create Config

    splunk/splunk-platform-automator

    A skill your agent uses when creating or updating splunkconfig.yml, designing Splunk Enterprise lab topology, multisite IDXC, SHC layout, architecture plan before config, or AWS Terraform block for…

    137 GitHub stars~3.5k tokensUpdated 2 days ago
    DevOps & CloudAuto-check passed
  • Verify mql provider resource/field changes against real cloud infrastructure.

    411 GitHub stars~3.7k tokensUpdated today
    DevOps & CloudAuto-check passed

More from hashicorp/terraform-provider-aws

All 17 skills in this repo
  • Review Docs

    hashicorp/terraform-provider-aws

    Official

    Review a Terraform AWS Provider PR's end-user documentation (website/docs//.markdown): whether docs are needed, description openings, argument/attribute style, section structure, tags wording, code…

    11k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Review Helpers

    hashicorp/terraform-provider-aws

    Official

    Review Terraform AWS Provider helper code: finders, status functions, waiters, sweepers, data sources, and list resources.

    11k GitHub stars~978 tokensUpdated yesterday
    Auto-check passed
  • Review Identity

    hashicorp/terraform-provider-aws

    Official

    Review Terraform AWS Provider Resource Identity: the identity-strategy annotations (@ArnIdentity, @SingletonIdentity, @IdentityAttribute), multi-attribute @ImportIDHandler parsers, and region…

    11k GitHub stars~692 tokensUpdated yesterday
    Auto-check passed
  • Review Lifecycle

    hashicorp/terraform-provider-aws

    Official

    Review Terraform AWS Provider resource lifecycle: CRUD step order, smerr/smarterr error handling, and AutoFlex model-to-SDK conversion.

    11k GitHub stars~990 tokensUpdated yesterday
    Auto-check passed
  • Review Schema

    hashicorp/terraform-provider-aws

    Official

    Review Terraform AWS Provider Plugin Framework schema shape: model structs, Required/Optional/Computed combinations, plan modifiers (no ForceNew), nested-block custom types, validators, sensitive…

    11k GitHub stars~1k tokensUpdated yesterday
    Auto-check passed
  • Review Tags

    hashicorp/terraform-provider-aws

    Official

    Review Terraform AWS Provider tagging: the tags/tagsall schema attributes, the @Tags(identifierAttribute=...) annotation, and wiring input.Tags = getTagsIn(ctx) after flex.Expand.

    11k GitHub stars~462 tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Go Conventions

What does Go Conventions do?

Fundamental Go conventions for the Terraform AWS provider. An agent skill from hashicorp/terraform-provider-aws. Go Conventions is an agent skill from hashicorp/terraform-provider-aws, published by the product's own GitHub organization. Fundamental Go conventions for the Terraform AWS provider.

When should I use Go Conventions?

Go Conventions fits situations like: editing Go in internal//.go (any resource; ephemeral resource; helper) before making the change; not only when asked about Go.

How do I install Go Conventions in Claude Code?

Run `npx skills add hashicorp/terraform-provider-aws --skill go-conventions -a claude-code`. Or copy the skill folder (.agents/skills/go-conventions in hashicorp/terraform-provider-aws) into .claude/skills/go-conventions in your project. Claude Code loads it when a task matches its description.

How do I install Go Conventions in Codex?

Run `npx skills add hashicorp/terraform-provider-aws --skill go-conventions -a codex`. Or copy the skill folder (.agents/skills/go-conventions in hashicorp/terraform-provider-aws) into .agents/skills/go-conventions in your project. Codex loads it when a task matches its description.

Can I use Go Conventions 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 hashicorp/terraform-provider-aws --skill go-conventions -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-conventions, .gemini/skills/go-conventions, .github/skills/go-conventions and .opencode/skills/go-conventions in your project.

What does Go Conventions need to run?

SKILL.md names no scripts, command-line tools or credentials: Go Conventions is instructions for the agent only.

Does Go Conventions 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 Conventions 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 Conventions use?

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

How many tokens does Go Conventions use?

About 1.3k tokens (SKILL.md is roughly 5.3k 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 Conventions?

Skills that share tags, products or a category with Go Conventions: Senior DevOps Toolkit (maslennikov-ig/claude-code-orchestrator-kit, 260 stars), Terravision Cloud Diagrams (patrickchugh/terravision, 1.6k stars), Terrashark (LukasNiessen/terrashark, 714 stars) and AWS Cloud Advisor (tech-leads-club/agent-skills, 7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Go Conventions?

hashicorp (a GitHub organization, an official publisher) maintains it in hashicorp/terraform-provider-aws, which has 11,109 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 7, 2026.

Source: hashicorp/terraform-provider-aws on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.