tidydraws 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tidydraws-0.1.0/.agents/skills/author-skills/SKILL.md +400 -0
- tidydraws-0.1.0/.agents/skills/author-skills/references/config-reference.md +122 -0
- tidydraws-0.1.0/.agents/skills/author-skills/references/skill-anatomy.md +126 -0
- tidydraws-0.1.0/.agents/skills/configure-site/SKILL.md +298 -0
- tidydraws-0.1.0/.agents/skills/configure-site/references/feature-matrix.md +59 -0
- tidydraws-0.1.0/.agents/skills/configure-site/references/theming-options.md +91 -0
- tidydraws-0.1.0/.agents/skills/revise-docstrings/SKILL.md +262 -0
- tidydraws-0.1.0/.agents/skills/revise-docstrings/references/docstring-checklist.md +46 -0
- tidydraws-0.1.0/.agents/skills/revise-docstrings/references/style-examples.md +271 -0
- tidydraws-0.1.0/.agents/skills/write-user-guide/SKILL.md +330 -0
- tidydraws-0.1.0/.agents/skills/write-user-guide/references/page-anatomy.md +113 -0
- tidydraws-0.1.0/.agents/skills/write-user-guide/references/writing-guidelines.md +102 -0
- tidydraws-0.1.0/.github/workflows/ci.yml +54 -0
- tidydraws-0.1.0/.github/workflows/docs.yml +93 -0
- tidydraws-0.1.0/.github/workflows/publish.yml +92 -0
- tidydraws-0.1.0/.gitignore +20 -0
- tidydraws-0.1.0/.pre-commit-config.yaml +32 -0
- tidydraws-0.1.0/AGENTS.md +97 -0
- tidydraws-0.1.0/CONTRIBUTING.md +114 -0
- tidydraws-0.1.0/LICENSE +21 -0
- tidydraws-0.1.0/Makefile +54 -0
- tidydraws-0.1.0/PKG-INFO +46 -0
- tidydraws-0.1.0/README.md +42 -0
- tidydraws-0.1.0/docs/assets/index-plot.png +0 -0
- tidydraws-0.1.0/docs/examples/01-parameter_draws.qmd +330 -0
- tidydraws-0.1.0/docs/examples/02-compare_draws.qmd +187 -0
- tidydraws-0.1.0/docs/examples/03-prediction_draws.qmd +305 -0
- tidydraws-0.1.0/docs/examples/_pymc_workflow.py +81 -0
- tidydraws-0.1.0/great-docs.yml +54 -0
- tidydraws-0.1.0/index.qmd +197 -0
- tidydraws-0.1.0/pyproject.toml +114 -0
- tidydraws-0.1.0/skills-lock.json +30 -0
- tidydraws-0.1.0/tests/__init__.py +0 -0
- tidydraws-0.1.0/tests/test_compare_draws.py +169 -0
- tidydraws-0.1.0/tests/test_parameter_draws.py +167 -0
- tidydraws-0.1.0/tests/test_prediction_draws.py +181 -0
- tidydraws-0.1.0/tidydraws/__init__.py +8 -0
- tidydraws-0.1.0/tidydraws/_extract.py +371 -0
- tidydraws-0.1.0/uv.lock +3106 -0
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: author-skills
|
|
3
|
+
description: >
|
|
4
|
+
Author, configure, and distribute Agent Skills for a Great Docs
|
|
5
|
+
site. Covers the three scenarios: automatic skill generation,
|
|
6
|
+
adding a single hand-written skill, and distributing multiple
|
|
7
|
+
named skills with a switcher page. Use when creating, editing,
|
|
8
|
+
or configuring SKILL.md files for package documentation.
|
|
9
|
+
license: MIT
|
|
10
|
+
compatibility: Requires Great Docs >=0.8, Quarto CLI installed.
|
|
11
|
+
metadata:
|
|
12
|
+
author: rich-iannone
|
|
13
|
+
version: "1.0"
|
|
14
|
+
tags:
|
|
15
|
+
- skills
|
|
16
|
+
- agent-skills
|
|
17
|
+
- distribution
|
|
18
|
+
- configuration
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Author Skills
|
|
22
|
+
|
|
23
|
+
Skill for creating and distributing Agent Skills through a Great
|
|
24
|
+
Docs documentation site. An Agent Skill is a structured Markdown
|
|
25
|
+
file (`SKILL.md`) that gives AI coding agents context about a
|
|
26
|
+
package, its API, and best practices.
|
|
27
|
+
|
|
28
|
+
Great Docs supports three scenarios for skills, each with a
|
|
29
|
+
different level of effort and control.
|
|
30
|
+
|
|
31
|
+
## The three scenarios
|
|
32
|
+
|
|
33
|
+
### Scenario 1: Automatic generation
|
|
34
|
+
|
|
35
|
+
Great Docs generates a `skill.md` automatically from your
|
|
36
|
+
package metadata, API reference sections, and `great-docs.yml`
|
|
37
|
+
config. This is the zero-effort default.
|
|
38
|
+
|
|
39
|
+
**How it works**: during `great-docs build`, the tool reads your
|
|
40
|
+
`pyproject.toml` (for name, description, license, Python version),
|
|
41
|
+
your API reference sections, and any `skill.*` config keys. It
|
|
42
|
+
produces a skill file with installation instructions, an API
|
|
43
|
+
overview, gotchas, best practices, and resource links.
|
|
44
|
+
|
|
45
|
+
**Config options that enrich the auto-generated skill:**
|
|
46
|
+
|
|
47
|
+
```yaml
|
|
48
|
+
# great-docs.yml
|
|
49
|
+
skill:
|
|
50
|
+
enabled: true # default; set false to skip
|
|
51
|
+
well_known: true # publish to .well-known/agent-skills/
|
|
52
|
+
gotchas:
|
|
53
|
+
- "Column expressions are lazy; call .collect() to materialize."
|
|
54
|
+
- "Method chaining returns a new object; the original is not mutated."
|
|
55
|
+
best_practices:
|
|
56
|
+
- "Prefer method chaining over intermediate variables."
|
|
57
|
+
decision_table:
|
|
58
|
+
- need: "Create a table from a dict"
|
|
59
|
+
use: "GT(data)"
|
|
60
|
+
- need: "Format currency values"
|
|
61
|
+
use: "fmt_currency()"
|
|
62
|
+
extra_body: "skills/extra-skill-content.md"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**When to use this scenario**: you want a skill page with minimal
|
|
66
|
+
effort and are satisfied with auto-generated content derived from
|
|
67
|
+
your API reference.
|
|
68
|
+
|
|
69
|
+
### Scenario 2: Single hand-written skill
|
|
70
|
+
|
|
71
|
+
Write a `SKILL.md` by hand (or with LLM assistance) and point
|
|
72
|
+
`great-docs.yml` at it. Great Docs copies it into the build and
|
|
73
|
+
generates the Skills page from it.
|
|
74
|
+
|
|
75
|
+
**Directory layout:**
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
project-root/
|
|
79
|
+
├── skills/
|
|
80
|
+
│ └── my-package/
|
|
81
|
+
│ ├── SKILL.md
|
|
82
|
+
│ └── references/
|
|
83
|
+
│ ├── api-patterns.md
|
|
84
|
+
│ └── gotchas.md
|
|
85
|
+
└── great-docs.yml
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Config:**
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
# great-docs.yml
|
|
92
|
+
skill:
|
|
93
|
+
file: skills/my-package/SKILL.md
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Great Docs copies the file to `<docs>/skill.md`, places it
|
|
97
|
+
under `.well-known/agent-skills/<name>/SKILL.md`, and generates
|
|
98
|
+
the Skills page with install instructions and the full skill
|
|
99
|
+
content.
|
|
100
|
+
|
|
101
|
+
**When to use this scenario**: you want full editorial control
|
|
102
|
+
over the skill content, including custom sections, curated
|
|
103
|
+
examples, and reference files that go beyond what automatic
|
|
104
|
+
generation can produce.
|
|
105
|
+
|
|
106
|
+
### Scenario 3: Multiple named skills
|
|
107
|
+
|
|
108
|
+
Distribute several focused skills from a single site. Each skill
|
|
109
|
+
gets its own panel on the Skills page (with a switcher bar) and
|
|
110
|
+
its own entry in `.well-known/agent-skills/index.json` for
|
|
111
|
+
`npx skills add` discovery.
|
|
112
|
+
|
|
113
|
+
**Directory layout:**
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
project-root/
|
|
117
|
+
├── skills/
|
|
118
|
+
│ ├── my-package/
|
|
119
|
+
│ │ ├── SKILL.md
|
|
120
|
+
│ │ └── references/
|
|
121
|
+
│ ├── write-guides/
|
|
122
|
+
│ │ ├── SKILL.md
|
|
123
|
+
│ │ └── references/
|
|
124
|
+
│ └── review-code/
|
|
125
|
+
│ ├── SKILL.md
|
|
126
|
+
│ └── references/
|
|
127
|
+
└── great-docs.yml
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Config:**
|
|
131
|
+
|
|
132
|
+
```yaml
|
|
133
|
+
# great-docs.yml
|
|
134
|
+
skill:
|
|
135
|
+
skills:
|
|
136
|
+
- name: my-package
|
|
137
|
+
file: skills/my-package/SKILL.md
|
|
138
|
+
- name: write-guides
|
|
139
|
+
file: skills/write-guides/SKILL.md
|
|
140
|
+
- name: review-code
|
|
141
|
+
file: skills/review-code/SKILL.md
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
The first entry becomes the primary `skill.md` at the site root.
|
|
145
|
+
All entries appear in the switcher bar and are individually
|
|
146
|
+
installable via `npx skills add`.
|
|
147
|
+
|
|
148
|
+
**When to use this scenario**: your project has distinct
|
|
149
|
+
focus-area skills (e.g., one for general usage, one for
|
|
150
|
+
contributing, one for configuration) and you want users to
|
|
151
|
+
install exactly what they need.
|
|
152
|
+
|
|
153
|
+
## Quick start
|
|
154
|
+
|
|
155
|
+
Create a hand-written skill in three steps:
|
|
156
|
+
|
|
157
|
+
````bash
|
|
158
|
+
mkdir -p skills/my-package/references
|
|
159
|
+
|
|
160
|
+
cat > skills/my-package/SKILL.md << 'SKILL_EOF'
|
|
161
|
+
---
|
|
162
|
+
name: my-package
|
|
163
|
+
description: >
|
|
164
|
+
Use the my-package Python library. Covers installation, core API,
|
|
165
|
+
and common patterns.
|
|
166
|
+
license: MIT
|
|
167
|
+
compatibility: Requires Python >=3.11.
|
|
168
|
+
metadata:
|
|
169
|
+
author: your-name
|
|
170
|
+
version: "1.0"
|
|
171
|
+
tags:
|
|
172
|
+
- python
|
|
173
|
+
- my-package
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
# my-package
|
|
177
|
+
|
|
178
|
+
Short description of what the package does and when to use it.
|
|
179
|
+
|
|
180
|
+
## Installation
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
pip install my-package
|
|
184
|
+
````
|
|
185
|
+
|
|
186
|
+
## When to use what
|
|
187
|
+
|
|
188
|
+
| Need | Use |
|
|
189
|
+
| --------------- | ---------------- |
|
|
190
|
+
| Create a widget | `Widget()` |
|
|
191
|
+
| Style a widget | `widget.style()` |
|
|
192
|
+
|
|
193
|
+
## API overview
|
|
194
|
+
|
|
195
|
+
### Core
|
|
196
|
+
|
|
197
|
+
- `Widget()`: Create a new widget.
|
|
198
|
+
- `Widget.style()`: Apply styling to a widget.
|
|
199
|
+
|
|
200
|
+
## Gotchas
|
|
201
|
+
|
|
202
|
+
1. **Immutable by default.** Methods return new objects.
|
|
203
|
+
2. **Lazy evaluation.** Call `.render()` to produce output.
|
|
204
|
+
|
|
205
|
+
## Best practices
|
|
206
|
+
|
|
207
|
+
- Prefer method chaining over intermediate variables.
|
|
208
|
+
- Use type hints in all public API calls.
|
|
209
|
+
SKILL_EOF
|
|
210
|
+
|
|
211
|
+
````
|
|
212
|
+
|
|
213
|
+
Then add one line to `great-docs.yml`:
|
|
214
|
+
|
|
215
|
+
```yaml
|
|
216
|
+
skill:
|
|
217
|
+
file: skills/my-package/SKILL.md
|
|
218
|
+
````
|
|
219
|
+
|
|
220
|
+
Run `great-docs build` and verify the Skills page.
|
|
221
|
+
|
|
222
|
+
## Skill directory structure
|
|
223
|
+
|
|
224
|
+
```
|
|
225
|
+
skills/author-skills/
|
|
226
|
+
├── SKILL.md
|
|
227
|
+
└── references/
|
|
228
|
+
├── skill-anatomy.md
|
|
229
|
+
└── config-reference.md
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Writing a SKILL.md
|
|
233
|
+
|
|
234
|
+
### Frontmatter
|
|
235
|
+
|
|
236
|
+
Every SKILL.md starts with YAML frontmatter:
|
|
237
|
+
|
|
238
|
+
```yaml
|
|
239
|
+
---
|
|
240
|
+
name: my-package
|
|
241
|
+
description: >
|
|
242
|
+
One-paragraph description of the skill (max 1024 characters).
|
|
243
|
+
license: MIT
|
|
244
|
+
compatibility: Requires Python >=3.11.
|
|
245
|
+
metadata:
|
|
246
|
+
author: your-github-handle
|
|
247
|
+
version: "1.0"
|
|
248
|
+
tags:
|
|
249
|
+
- python
|
|
250
|
+
- relevant-topic
|
|
251
|
+
---
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
The required and optional keys are documented in the
|
|
255
|
+
`references/skill-anatomy.md` companion file.
|
|
256
|
+
|
|
257
|
+
### Body structure
|
|
258
|
+
|
|
259
|
+
A well-structured skill follows this outline:
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
# Package Name
|
|
263
|
+
Opening paragraph (what, when, why).
|
|
264
|
+
|
|
265
|
+
## Installation
|
|
266
|
+
pip install command.
|
|
267
|
+
|
|
268
|
+
## When to use what
|
|
269
|
+
Decision table mapping needs to API calls.
|
|
270
|
+
|
|
271
|
+
## API overview
|
|
272
|
+
Sections matching your API reference, with one-line summaries.
|
|
273
|
+
|
|
274
|
+
## Gotchas
|
|
275
|
+
Numbered list of common pitfalls.
|
|
276
|
+
|
|
277
|
+
## Best practices
|
|
278
|
+
Bullet list of recommended patterns.
|
|
279
|
+
|
|
280
|
+
## Resources
|
|
281
|
+
Links to docs, llms.txt, and source code.
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Reference files
|
|
285
|
+
|
|
286
|
+
Place companion Markdown files in a `references/` subdirectory
|
|
287
|
+
alongside the SKILL.md. These files are copied into
|
|
288
|
+
`.well-known/agent-skills/<name>/references/` and are available
|
|
289
|
+
to agents that install the skill.
|
|
290
|
+
|
|
291
|
+
Use reference files for content that is too detailed for the
|
|
292
|
+
main SKILL.md: style guides, checklists, pattern libraries,
|
|
293
|
+
and decision matrices.
|
|
294
|
+
|
|
295
|
+
### Writing tips
|
|
296
|
+
|
|
297
|
+
Follow these guidelines when writing skill content:
|
|
298
|
+
|
|
299
|
+
- Write for an LLM reader, not a human. Be explicit about
|
|
300
|
+
distinctions that a model might confuse (e.g., `{python}` vs
|
|
301
|
+
`{.python}`).
|
|
302
|
+
- Use concrete examples over abstract descriptions.
|
|
303
|
+
- Keep the decision table ("When to use what") actionable:
|
|
304
|
+
each row should map a task to a specific function or method.
|
|
305
|
+
- Avoid emoji, em dashes, and starting a list without
|
|
306
|
+
introductory text.
|
|
307
|
+
- Keep the SKILL.md under 2000 lines. Move detailed reference
|
|
308
|
+
material into companion files.
|
|
309
|
+
|
|
310
|
+
## Workflows
|
|
311
|
+
|
|
312
|
+
### Adding a skill to an existing site
|
|
313
|
+
|
|
314
|
+
1. Create the `skills/<name>/` directory with a `SKILL.md`.
|
|
315
|
+
2. Optionally add a `references/` subdirectory with companion
|
|
316
|
+
files.
|
|
317
|
+
3. Set `skill.file` in `great-docs.yml` to point at the SKILL.md.
|
|
318
|
+
4. Run `great-docs build` and check the Skills page.
|
|
319
|
+
|
|
320
|
+
### Converting from automatic to hand-written
|
|
321
|
+
|
|
322
|
+
1. Run `great-docs build` to generate the automatic `skill.md`.
|
|
323
|
+
2. Copy the generated file from `<docs>/skill.md` into
|
|
324
|
+
`skills/<name>/SKILL.md`.
|
|
325
|
+
3. Edit the content: add custom sections, rewrite descriptions,
|
|
326
|
+
curate the decision table.
|
|
327
|
+
4. Set `skill.file` in `great-docs.yml`.
|
|
328
|
+
5. Rebuild.
|
|
329
|
+
|
|
330
|
+
### Adding a second skill (switching to multi-skill mode)
|
|
331
|
+
|
|
332
|
+
1. Create a second `skills/<name>/` directory with its SKILL.md.
|
|
333
|
+
2. Replace the `skill.file` key with `skill.skills` in
|
|
334
|
+
`great-docs.yml`:
|
|
335
|
+
|
|
336
|
+
```yaml
|
|
337
|
+
skill:
|
|
338
|
+
skills:
|
|
339
|
+
- name: original-skill
|
|
340
|
+
file: skills/original-skill/SKILL.md
|
|
341
|
+
- name: new-skill
|
|
342
|
+
file: skills/new-skill/SKILL.md
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
3. Rebuild. The Skills page now shows a switcher bar with both
|
|
346
|
+
skills.
|
|
347
|
+
|
|
348
|
+
### Testing skill installation
|
|
349
|
+
|
|
350
|
+
Verify your skill is discoverable:
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
# Check the published skill
|
|
354
|
+
great-docs check-skill
|
|
355
|
+
|
|
356
|
+
# List all skills in the .well-known manifest
|
|
357
|
+
great-docs list-skills
|
|
358
|
+
|
|
359
|
+
# Test npx installation (after deploying)
|
|
360
|
+
npx skills add <site-url>
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
## Discovery and distribution
|
|
364
|
+
|
|
365
|
+
Great Docs publishes skills at two well-known paths for
|
|
366
|
+
auto-discovery by `npx skills add` and other agent tooling:
|
|
367
|
+
|
|
368
|
+
```
|
|
369
|
+
<site>/.well-known/agent-skills/<name>/SKILL.md
|
|
370
|
+
<site>/.well-known/agent-skills/index.json
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
The `index.json` manifest lists all skills with their name,
|
|
374
|
+
description, and relative path. In multi-skill mode, each skill
|
|
375
|
+
gets its own entry.
|
|
376
|
+
|
|
377
|
+
The root-level `<site>/skill.md` always contains the primary
|
|
378
|
+
skill (the first entry in `skill.skills`, or the only skill).
|
|
379
|
+
|
|
380
|
+
## Gotchas
|
|
381
|
+
|
|
382
|
+
1. **`skill.skills` overrides `skill.file`.** If both are set,
|
|
383
|
+
`skill.skills` takes precedence and `skill.file` is ignored.
|
|
384
|
+
2. **The `name` field must be unique.** Each skill in
|
|
385
|
+
`skill.skills` needs a distinct `name`. Duplicates cause the
|
|
386
|
+
later entry to overwrite the earlier one in `.well-known/`.
|
|
387
|
+
3. **Reference files must be in `references/`.** Only files under
|
|
388
|
+
the `references/` subdirectory (relative to the SKILL.md) are
|
|
389
|
+
copied into `.well-known/`. Files elsewhere are ignored.
|
|
390
|
+
4. **Use hyphens in skill names, not underscores.** The `name`
|
|
391
|
+
field becomes a URL path segment
|
|
392
|
+
(`.well-known/agent-skills/<name>/`), and hyphens are the
|
|
393
|
+
standard web convention for URL slugs. Match the directory
|
|
394
|
+
name: `skills/my-skill/` with `name: my-skill`.
|
|
395
|
+
5. **The first skill in `skill.skills` is special.** It becomes
|
|
396
|
+
the primary `skill.md` at the site root and is the default
|
|
397
|
+
panel shown on the Skills page.
|
|
398
|
+
6. **Set `skill.enabled: false` to disable entirely.** This
|
|
399
|
+
suppresses both automatic generation and hand-written skill
|
|
400
|
+
processing.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Config Reference -- Skill Settings
|
|
2
|
+
|
|
3
|
+
All skill-related settings live under the `skill:` key in
|
|
4
|
+
`great-docs.yml`. This reference covers every option.
|
|
5
|
+
|
|
6
|
+
## Top-level skill keys
|
|
7
|
+
|
|
8
|
+
```yaml
|
|
9
|
+
skill:
|
|
10
|
+
enabled: true
|
|
11
|
+
file: skills/my-package/SKILL.md
|
|
12
|
+
well_known: true
|
|
13
|
+
gotchas: []
|
|
14
|
+
best_practices: []
|
|
15
|
+
decision_table: []
|
|
16
|
+
extra_body: null
|
|
17
|
+
skills: []
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Key reference
|
|
21
|
+
|
|
22
|
+
| Key | Type | Default | Description |
|
|
23
|
+
| ---------------- | ------------- | ------- | ------------------------------------------------------- |
|
|
24
|
+
| `enabled` | `bool` | `true` | Enable or disable skill generation entirely |
|
|
25
|
+
| `file` | `str \| null` | `null` | Path to a hand-written SKILL.md (relative to project root) |
|
|
26
|
+
| `well_known` | `bool` | `true` | Publish skills to `.well-known/agent-skills/` for discovery |
|
|
27
|
+
| `gotchas` | `list[str]` | `[]` | Gotcha strings appended to auto-generated skill |
|
|
28
|
+
| `best_practices` | `list[str]` | `[]` | Best-practice strings appended to auto-generated skill |
|
|
29
|
+
| `decision_table` | `list[dict]` | `[]` | Manual "When to use what" rows for auto-generated skill |
|
|
30
|
+
| `extra_body` | `str \| null` | `null` | Path to extra Markdown appended to auto-generated body |
|
|
31
|
+
| `skills` | `list[dict]` | `[]` | Multi-skill entries (overrides `file` when non-empty) |
|
|
32
|
+
|
|
33
|
+
## Scenario configs
|
|
34
|
+
|
|
35
|
+
### Scenario 1: Automatic generation (default)
|
|
36
|
+
|
|
37
|
+
No `skill:` config needed. Great Docs generates a skill from
|
|
38
|
+
package metadata and API sections.
|
|
39
|
+
|
|
40
|
+
To enrich the auto-generated skill, add optional keys:
|
|
41
|
+
|
|
42
|
+
```yaml
|
|
43
|
+
skill:
|
|
44
|
+
gotchas:
|
|
45
|
+
- "Column selectors are strings, not bare identifiers."
|
|
46
|
+
best_practices:
|
|
47
|
+
- "Prefer method chaining over intermediate variables."
|
|
48
|
+
decision_table:
|
|
49
|
+
- need: "Create a table"
|
|
50
|
+
use: "GT(data)"
|
|
51
|
+
- need: "Format numbers"
|
|
52
|
+
use: "fmt_number()"
|
|
53
|
+
extra_body: "skills/extra-content.md"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Scenario 2: Single hand-written skill
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
skill:
|
|
60
|
+
file: skills/my-package/SKILL.md
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
When `file` is set, automatic generation is skipped. The
|
|
64
|
+
referenced SKILL.md is copied verbatim to `<docs>/skill.md`.
|
|
65
|
+
|
|
66
|
+
### Scenario 3: Multiple named skills
|
|
67
|
+
|
|
68
|
+
```yaml
|
|
69
|
+
skill:
|
|
70
|
+
skills:
|
|
71
|
+
- name: my-package
|
|
72
|
+
file: skills/my-package/SKILL.md
|
|
73
|
+
- name: write-guides
|
|
74
|
+
file: skills/write-guides/SKILL.md
|
|
75
|
+
- name: review-code
|
|
76
|
+
file: skills/review-code/SKILL.md
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Each entry requires two keys:
|
|
80
|
+
|
|
81
|
+
| Key | Type | Description |
|
|
82
|
+
| ------ | ----- | ------------------------------------------------ |
|
|
83
|
+
| `name` | `str` | Unique skill identifier (used in URLs and paths) |
|
|
84
|
+
| `file` | `str` | Path to the SKILL.md (relative to project root) |
|
|
85
|
+
|
|
86
|
+
## Precedence rules
|
|
87
|
+
|
|
88
|
+
Great Docs evaluates skill config in this order:
|
|
89
|
+
|
|
90
|
+
1. If `skill.enabled` is `false`, no skill is generated.
|
|
91
|
+
2. If `skill.skills` is non-empty, multi-skill mode is used.
|
|
92
|
+
The `skill.file` key is ignored.
|
|
93
|
+
3. If `skill.file` is set, the hand-written file is used.
|
|
94
|
+
4. If a curated skill exists at `skills/<package-name>/SKILL.md`,
|
|
95
|
+
it is used automatically (no config needed).
|
|
96
|
+
5. Otherwise, a skill is auto-generated from package metadata.
|
|
97
|
+
|
|
98
|
+
## Discovery output
|
|
99
|
+
|
|
100
|
+
After a build, skills are published at these paths:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
<docs>/
|
|
104
|
+
├── skill.md # primary skill
|
|
105
|
+
├── skills.qmd # rendered Skills page
|
|
106
|
+
└── .well-known/
|
|
107
|
+
└── agent-skills/
|
|
108
|
+
├── index.json # discovery manifest
|
|
109
|
+
├── my-package/
|
|
110
|
+
│ ├── SKILL.md
|
|
111
|
+
│ └── references/
|
|
112
|
+
│ └── ...
|
|
113
|
+
└── write-guides/
|
|
114
|
+
├── SKILL.md
|
|
115
|
+
└── references/
|
|
116
|
+
└── ...
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
The `index.json` manifest lists each skill with its `name`,
|
|
120
|
+
`description`, and relative path to the SKILL.md. Agent tooling
|
|
121
|
+
like `npx skills add` reads this manifest to offer skill
|
|
122
|
+
installation.
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Skill Anatomy
|
|
2
|
+
|
|
3
|
+
A SKILL.md file has two parts: YAML frontmatter and a Markdown
|
|
4
|
+
body. This reference covers every supported field.
|
|
5
|
+
|
|
6
|
+
## Frontmatter
|
|
7
|
+
|
|
8
|
+
```yaml
|
|
9
|
+
---
|
|
10
|
+
name: my-package
|
|
11
|
+
description: >
|
|
12
|
+
One-paragraph description of the skill. Maximum 1024 characters.
|
|
13
|
+
Should explain what the skill covers and when to use it.
|
|
14
|
+
license: MIT
|
|
15
|
+
compatibility: Requires Python >=3.11.
|
|
16
|
+
metadata:
|
|
17
|
+
author: github-handle
|
|
18
|
+
version: "1.0"
|
|
19
|
+
tags:
|
|
20
|
+
- python
|
|
21
|
+
- relevant-topic
|
|
22
|
+
---
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Frontmatter keys
|
|
26
|
+
|
|
27
|
+
| Key | Required | Type | Max length | Description |
|
|
28
|
+
| --------------- | -------- | -------- | ---------- | -------------------------------------------------- |
|
|
29
|
+
| `name` | yes | `str` | 64 chars | Skill identifier; lowercase with hyphens (e.g., `my-skill`) |
|
|
30
|
+
| `description` | yes | `str` | 1024 chars | What the skill covers and when to use it |
|
|
31
|
+
| `license` | no | `str` | | SPDX license identifier (e.g., `MIT`, `Apache-2.0`) |
|
|
32
|
+
| `compatibility` | no | `str` | | Runtime requirements (Python version, CLI tools) |
|
|
33
|
+
| `metadata` | no | `object` | | Container for `author`, `version`, and `tags` |
|
|
34
|
+
|
|
35
|
+
### Metadata sub-keys
|
|
36
|
+
|
|
37
|
+
| Key | Type | Description |
|
|
38
|
+
| --------- | -------- | ---------------------------------------------- |
|
|
39
|
+
| `author` | `str` | GitHub handle or name of the skill author |
|
|
40
|
+
| `version` | `str` | Semantic version of the skill content |
|
|
41
|
+
| `tags` | `list` | Searchable tags for skill discovery |
|
|
42
|
+
|
|
43
|
+
## Body sections
|
|
44
|
+
|
|
45
|
+
The body is standard Markdown. The following sections are
|
|
46
|
+
conventional for Agent Skills, though none are strictly required.
|
|
47
|
+
|
|
48
|
+
### Recommended section order
|
|
49
|
+
|
|
50
|
+
| Section | Heading level | Purpose |
|
|
51
|
+
| ------------------- | ------------- | ------------------------------------------------ |
|
|
52
|
+
| Package title | `#` | Package name as the top-level heading |
|
|
53
|
+
| Opening paragraph | | 2-3 sentences: what, when, why |
|
|
54
|
+
| Installation | `##` | `pip install` command |
|
|
55
|
+
| When to use what | `##` | Decision table mapping tasks to API calls |
|
|
56
|
+
| API overview | `##` | Section-by-section API listing with summaries |
|
|
57
|
+
| Gotchas | `##` | Numbered list of common pitfalls |
|
|
58
|
+
| Best practices | `##` | Bullet list of recommended patterns |
|
|
59
|
+
| Resources | `##` | Links to docs, llms.txt, source code |
|
|
60
|
+
|
|
61
|
+
### Decision table format
|
|
62
|
+
|
|
63
|
+
The "When to use what" table maps user needs to specific API
|
|
64
|
+
calls. Each row should be actionable:
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
| Need | Use |
|
|
68
|
+
| ----------------------- | -------------------- |
|
|
69
|
+
| Create a table from CSV | `GT(pd.read_csv())` |
|
|
70
|
+
| Format as percentage | `fmt_percent()` |
|
|
71
|
+
| Add a footnote | `tab_footnote()` |
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### API overview format
|
|
75
|
+
|
|
76
|
+
List functions with one-line summaries. Group by API reference
|
|
77
|
+
section:
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
## API overview
|
|
81
|
+
|
|
82
|
+
### Table creation
|
|
83
|
+
|
|
84
|
+
- `GT(data)`: Create a display table from a DataFrame.
|
|
85
|
+
- `GT.as_raw_html()`: Render to an HTML string.
|
|
86
|
+
|
|
87
|
+
### Formatting
|
|
88
|
+
|
|
89
|
+
- `fmt_number()`: Format numeric columns.
|
|
90
|
+
- `fmt_currency()`: Format as currency values.
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Gotchas format
|
|
94
|
+
|
|
95
|
+
Use a numbered list. Lead each item with a bold label:
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
## Gotchas
|
|
99
|
+
|
|
100
|
+
1. **Immutable objects.** Methods return new GT objects.
|
|
101
|
+
2. **Column selectors are strings.** Pass column names as
|
|
102
|
+
strings, not bare identifiers.
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Reference files
|
|
106
|
+
|
|
107
|
+
Companion files live in a `references/` subdirectory alongside
|
|
108
|
+
the SKILL.md:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
skills/my-package/
|
|
112
|
+
├── SKILL.md
|
|
113
|
+
└── references/
|
|
114
|
+
├── style-guide.md
|
|
115
|
+
├── pattern-library.md
|
|
116
|
+
└── checklist.md
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Reference files are plain Markdown (no frontmatter required).
|
|
120
|
+
They are copied into `.well-known/agent-skills/<name>/references/`
|
|
121
|
+
during the build, making them available to agents that install
|
|
122
|
+
the skill.
|
|
123
|
+
|
|
124
|
+
Use reference files for detailed content that would make the
|
|
125
|
+
main SKILL.md too long: style examples, checklists, decision
|
|
126
|
+
matrices, and extended pattern libraries.
|