Skip to main content

author-skills

Author, 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.

Informations de source

Dépôt
pymc-labs/pathmc
Dernière activité de la source
10 juin 2026 à 09:00
Langue détectée de SKILL.md
anglais
Étoiles
131
Forks
12

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
3 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
author-skills
description
Author, 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.
license
MIT
compatibility
Requires Great Docs >=0.8, Quarto CLI installed.
metadata
{"author":"rich-iannone","version":"1.0","tags":["skills","agent-skills","distribution","configuration"]}
# Author Skills 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:** ```yaml # 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:** ```yaml # 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:** ```yaml # 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: ````bash 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 1. **Immutable by default.** Methods return new objects. 2. **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: ```yaml --- 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 1. Create the `skills/<name>/` directory with a `SKILL.md`. 2. Optionally add a `references/` subdirectory with companion files. 3. Set `skill.file` in `great-docs.yml` to point at the SKILL.md. 4. Run `great-docs build` and check the Skills page. ### Converting from automatic to hand-written 1. Run `great-docs build` to generate the automatic `skill.md`. 2. Copy the generated file from `<docs>/skill.md` into `skills/<name>/SKILL.md`. 3. Edit the content: add custom sections, rewrite descriptions, curate the decision table. 4. Set `skill.file` in `great-docs.yml`. 5. Rebuild. ### Adding a second skill (switching to multi-skill mode) 1. Create a second `skills/<name>/` directory with its SKILL.md. 2. Replace the `skill.file` key with `skill.skills` in `great-docs.yml`: ```yaml skill: skills: - name: original-skill file: skills/original-skill/SKILL.md - name: new-skill file: skills/new-skill/SKILL.md ``` 3. Rebuild. The Skills page now shows a switcher bar with both skills. ### Testing skill installation Verify your skill is discoverable: ```bash # 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 1. **`skill.skills` overrides `skill.file`.** If both are set, `skill.skills` takes precedence and `skill.file` is ignored. 2. **The `name` field must be unique.** Each skill in `skill.skills` needs a distinct `name`. Duplicates cause the later entry to overwrite the earlier one in `.well-known/`. 3. **Reference files must be in `references/`.** Only files under the `references/` subdirectory (relative to the SKILL.md) are copied into `.well-known/`. Files elsewhere are ignored. 4. **Use hyphens in skill names, not underscores.** The `name` field 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/` with `name: my-skill`. 5. **The first skill in `skill.skills` is special.** It becomes the primary `skill.md` at the site root and is the default panel shown on the Skills page. 6. **Set `skill.enabled: false` to disable entirely.** This suppresses both automatic generation and hand-written skill processing.
Voir sur GitHub