---
title: "Author a Skill for your Go module · skilld"
description: "Draft a Skill for your module, keep its files inside the module, and publish with the correct version tag."
canonical_url: "https://skilld.dev/learn/author-go-package-skills"
last_updated: "2026-09-08T05:45:32.739Z"
meta:
  "og:description": "Draft a Skill for your module, keep its files inside the module, and publish with the correct version tag."
  "og:image": "https://skilld.dev/_og/d/a_~c2tpbGxkLCBhZ2VudCBza2lsbHMgd3JpdHRlbiBieSByZWFsIG1haW50YWluZXJz%2Cc_Page.takumi%2Cdescription_~Q3VyYXRlZCBhZ2VudCBza2lsbHMgYnkgaHVtYW5zLCB3cml0dGVuIGJ5IHJlYWwgbWFpbnRhaW5lcnMgaW4gdGhlaXIgb3duIEdpdEh1YiByZXBvcw%2Cp_Ii9sZWFybi9hdXRob3ItZ28tcGFja2FnZS1za2lsbHMi%2Cs_odZSxGi6fcbax6UV.png"
  "og:image:alt": "skilld, agent skills written by real maintainers"
  "og:image:height": "600"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "Author a Skill for your Go module"
  "twitter:image": "https://skilld.dev/_og/d/a_~c2tpbGxkLCBhZ2VudCBza2lsbHMgd3JpdHRlbiBieSByZWFsIG1haW50YWluZXJz%2Cc_Page.takumi%2Cdescription_~Q3VyYXRlZCBhZ2VudCBza2lsbHMgYnkgaHVtYW5zLCB3cml0dGVuIGJ5IHJlYWwgbWFpbnRhaW5lcnMgaW4gdGhlaXIgb3duIEdpdEh1YiByZXBvcw%2Cp_Ii9sZWFybi9hdXRob3ItZ28tcGFja2FnZS1za2lsbHMi%2Cs_odZSxGi6fcbax6UV.png"
  "twitter:image:alt": "skilld, agent skills written by real maintainers"
---

> Index of every page on this site: [llms.txt](https://skilld.dev/llms.txt)

# **Author a Skill for your Go module**

Draft a Skill for your module, keep its files inside the module, and publish with the correct version tag.

Authoring guide

## 1. Draft your Skill

Go modules

[Choose your package](https://skilld.dev/make-skill?ecosystem=go)

Open your agent in the package repository. Give it these instructions to draft your Skill.

[Read the authoring Skill](https://raw.githubusercontent.com/skilld-dev/skilld/main/skills/generate-package-skill/SKILL.md)

Read https://raw.githubusercontent.com/skilld-dev/skilld/main/skills/generate-package-skill/SKILL.md. Draft a Skill for the package I maintain, published through Go modules, using this repository. Read go.mod, the public API, and the current official documentation. Show the draft for review before replacing existing Skills.

Point your agent at the directory containing the module's `**go.mod**`. Use its full module path, including a major version suffix when present. Ask it to save the draft in `**skills/your-skill/SKILL.md**`, inside that module directory.

Cover public packages, context handling, errors, concurrency constraints, and supported Go versions. Use complete import paths in examples.

## 2. Review the draft

Run the examples against the module version you plan to release. Use [**the cross-Agent selection and task checks**](https://skilld.dev/learn/create-agent-skills#check-selection-and-task-completion-separately) before publishing the Skill. Check that they import public packages and handle returned errors. Describe required setup and cleanup for resources. Remove generic Go advice and review the draft before committing it.

## 3. Keep the Skill inside the module

Commit `**skills/your-skill/SKILL.md**` and its linked local files inside the module directory. For a repository with several modules, keep each Skill with its own `**go.mod**`.

Go module archives exclude nested modules and vendor directories. Avoid placing the Skill behind another `**go.mod**` or linking to files outside the module. See the [**Go module archive rules**](https://go.dev/ref/mod#zip-files).

## 4. Publish and share

Use your normal module release process. Check the version tag against the module path before publishing. For modules in repository subdirectories, the tag includes the subdirectory prefix. Major versions from v2 normally require a matching module path suffix. The [**Go module publishing guide**](https://go.dev/doc/modules/publishing) covers these cases.

After release, download that exact version for inspection:

```bash
go mod download -json example.com/your-org/your-module@v1.2.3
```

Replace the example module path and version with your release. Inspect the directory shown in `**Dir**` for the Skill and its references. See the [**go mod download reference**](https://go.dev/ref/mod#go-mod-download).

Link to the Skill's repository directory from your README. Adding a Go module dependency does not automatically install the Skill into an agent. Review the Skill when your public API or version requirements change.

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://skilld.dev/#website","@type":"WebSite","description":"Curated agent skills by humans, written by real maintainers in their own GitHub repos","name":"skilld","url":"https://skilld.dev/"},{"@id":"https://skilld.dev/learn/author-go-package-skills#webpage","@type":"WebPage","description":"Draft a Skill for your module, keep its files inside the module, and publish with the correct version tag.","name":"Author a Skill for your Go module","url":"https://skilld.dev/learn/author-go-package-skills","isPartOf":{"@id":"https://skilld.dev/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://skilld.dev/learn/author-go-package-skills"]}]}]}
```