Author Skills
SkillFiles & storageAuthor, configure, and distribute Agent Skills for a Great Docs site. Covers the three scenarios: automatic skill generation, adding a single hand-written skill, and distributing multiple named skills with a switcher page. Use when creating, editing, or configuring SKILL.md files for package documentation.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Author Skills skill
What this skill tells your AI
The instructions your AI receives, as published by pymc-labs/pathmc in .agents/skills/author-skills/SKILL.md and read by ahel’s review.
Skill for creating and distributing Agent Skills through a Great
Docs documentation site. An Agent Skill is a structured Markdown
file (SKILL.md) that gives AI coding agents context about a
package, its API, and best practices.
Great Docs supports three scenarios for skills, each with a different level of effort and control.
The three scenarios
Scenario 1: Automatic generation
Great Docs generates a skill.md automatically from your
package metadata, API reference sections, and great-docs.yml
config. This is the zero-effort default.
How it works: during great-docs build, the tool reads your
pyproject.toml (for name, description, license, Python version),
your API reference sections, and any skill.* config keys. It
produces a skill file with installation instructions, an API
overview, gotchas, best practices, and resource links.
Config options that enrich the auto-generated skill:
# great-docs.yml
skill:
enabled: true # default; set false to skip
well_known: true # publish to .well-known/agent-skills/
gotchas:
- "Column expressions are lazy; call .collect() to materialize."
- "Method chaining returns a new object; the original is not mutated."
best_practices:
- "Prefer method chaining over intermediate variables."
decision_table:
- need: "Create a table from a dict"
use: "GT(data)"
- need: "Format currency values"
use: "fmt_currency()"
extra_body: "skills/extra-skill-content.md"
When to use this scenario: you want a skill page with minimal effort and are satisfied with auto-generated content derived from your API reference.
Scenario 2: Single hand-written skill
Write a SKILL.md by hand (or with LLM assistance) and point
great-docs.yml at it. Great Docs copies it into the build and
generates the Skills page from it.
Directory layout:
project-root/
├── skills/
│ └── my-package/
│ ├── SKILL.md
│ └── references/
│ ├── api-patterns.md
│ └── gotchas.md
└── great-docs.yml
Config:
# great-docs.yml
skill:
file: skills/my-package/SKILL.md
Great Docs copies the file to <docs>/skill.md, places it
under .well-known/agent-skills/<name>/SKILL.md, and generates
the Skills page with install instructions and the full skill
content.
When to use this scenario: you want full editorial control over the skill content, including custom sections, curated examples, and reference files that go beyond what automatic generation can produce.
Scenario 3: Multiple named skills
Distribute several focused skills from a single site. Each skill
gets its own panel on the Skills page (with a switcher bar) and
its own entry in .well-known/agent-skills/index.json for
npx skills add discovery.
Directory layout:
project-root/
├── skills/
│ ├── my-package/
│ │ ├── SKILL.md
│ │ └── references/
│ ├── write-guides/
│ │ ├── SKILL.md
│ │ └── references/
│ └── review-code/
│ ├── SKILL.md
│ └── references/
└── great-docs.yml
Config:
# great-docs.yml
skill:
skills:
- name: my-package
file: skills/my-package/SKILL.md
- name: write-guides
file: skills/write-guides/SKILL.md
- name: review-code
file: skills/review-code/SKILL.md
The first entry becomes the primary skill.md at the site root.
All entries appear in the switcher bar and are individually
installable via npx skills add.
When to use this scenario: your project has distinct focus-area skills (e.g., one for general usage, one for contributing, one for configuration) and you want users to install exactly what they need.
Quick start
Create a hand-written skill in three steps:
mkdir -p skills/my-package/references
cat > skills/my-package/SKILL.md << 'SKILL_EOF'
---
name: my-package
description: >
Use the my-package Python library. Covers installation, core API,
and common patterns.
license: MIT
compatibility: Requires Python >=3.11.
metadata:
author: your-name
version: "1.0"
tags:
- python
- my-package
---
# my-package
Short description of what the package does and when to use it.
## Installation
```bash
pip install my-package
When to use what
| Need | Use |
|---|---|
| Create a widget | Widget() |
| Style a widget | widget.style() |
API overview
Core
Widget(): Create a new widget.Widget.style(): Apply styling to a widget.
Gotchas
- Immutable by default. Methods return new objects.
- Lazy evaluation. Call
.render()to produce output.
Best practices
- Prefer method chaining over intermediate variables.
- Use type hints in all public API calls. SKILL_EOF
Then add one line to `great-docs.yml`:
```yaml
skill:
file: skills/my-package/SKILL.md
Run great-docs build and verify the Skills page.
Skill directory structure
skills/author-skills/
├── SKILL.md
└── references/
├── skill-anatomy.md
└── config-reference.md
Writing a SKILL.md
Frontmatter
Every SKILL.md starts with YAML frontmatter:
---
name: my-package
description: >
One-paragraph description of the skill (max 1024 characters).
license: MIT
compatibility: Requires Python >=3.11.
metadata:
author: your-github-handle
version: "1.0"
tags:
- python
- relevant-topic
---
The required and optional keys are documented in the
references/skill-anatomy.md companion file.
Body structure
A well-structured skill follows this outline:
# Package Name
Opening paragraph (what, when, why).
## Installation
pip install command.
## When to use what
Decision table mapping needs to API calls.
## API overview
Sections matching your API reference, with one-line summaries.
## Gotchas
Numbered list of common pitfalls.
## Best practices
Bullet list of recommended patterns.
## Resources
Links to docs, llms.txt, and source code.
Reference files
Place companion Markdown files in a references/ subdirectory
alongside the SKILL.md. These files are copied into
.well-known/agent-skills/<name>/references/ and are available
to agents that install the skill.
Use reference files for content that is too detailed for the main SKILL.md: style guides, checklists, pattern libraries, and decision matrices.
Writing tips
Follow these guidelines when writing skill content:
- Write for an LLM reader, not a human. Be explicit about
distinctions that a model might confuse (e.g.,
{python}vs{.python}). - Use concrete examples over abstract descriptions.
- Keep the decision table ("When to use what") actionable: each row should map a task to a specific function or method.
- Avoid emoji, em dashes, and starting a list without introductory text.
- Keep the SKILL.md under 2000 lines. Move detailed reference material into companion files.
Workflows
Adding a skill to an existing site
- Create the
skills/<name>/directory with aSKILL.md. - Optionally add a
references/subdirectory with companion files. - Set
skill.fileingreat-docs.ymlto point at the SKILL.md. - Run
great-docs buildand check the Skills page.
Converting from automatic to hand-written
- Run
great-docs buildto generate the automaticskill.md. - Copy the generated file from
<docs>/skill.mdintoskills/<name>/SKILL.md. - Edit the content: add custom sections, rewrite descriptions, curate the decision table.
- Set
skill.fileingreat-docs.yml. - Rebuild.
Adding a second skill (switching to multi-skill mode)
-
Create a second
skills/<name>/directory with its SKILL.md. -
Replace the
skill.filekey withskill.skillsingreat-docs.yml:skill: skills: - name: original-skill file: skills/original-skill/SKILL.md - name: new-skill file: skills/new-skill/SKILL.md -
Rebuild. The Skills page now shows a switcher bar with both skills.
Testing skill installation
Verify your skill is discoverable:
# Check the published skill
great-docs check-skill
# List all skills in the .well-known manifest
great-docs list-skills
# Test npx installation (after deploying)
npx skills add <site-url>
Discovery and distribution
Great Docs publishes skills at two well-known paths for
auto-discovery by npx skills add and other agent tooling:
<site>/.well-known/agent-skills/<name>/SKILL.md
<site>/.well-known/agent-skills/index.json
The index.json manifest lists all skills with their name,
description, and relative path. In multi-skill mode, each skill
gets its own entry.
The root-level <site>/skill.md always contains the primary
skill (the first entry in skill.skills, or the only skill).
Gotchas
skill.skillsoverridesskill.file. If both are set,skill.skillstakes precedence andskill.fileis ignored.- The
namefield must be unique. Each skill inskill.skillsneeds a distinctname. Duplicates cause the later entry to overwrite the earlier one in.well-known/. - Reference files must be in
references/. Only files under thereferences/subdirectory (relative to the SKILL.md) are copied into.well-known/. Files elsewhere are ignored. - Use hyphens in skill names, not underscores. The
namefield becomes a URL path segment (.well-known/agent-skills/<name>/), and hyphens are the standard web convention for URL slugs. Match the directory name:skills/my-skill/withname: my-skill. - The first skill in
skill.skillsis special. It becomes the primaryskill.mdat the site root and is the default panel shown on the Skills page. - Set
skill.enabled: falseto disable entirely. This suppresses both automatic generation and hand-written skill processing.
Signals
- GitHub stars
- 128
- Forks
- 12
- Last commit
- Sep 2026
ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Catalog kind
- skill
- Gateway key
author-skills- Source
- github.com/pymc-labs/pathmc