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.
Files changed (39) hide show
  1. tidydraws-0.1.0/.agents/skills/author-skills/SKILL.md +400 -0
  2. tidydraws-0.1.0/.agents/skills/author-skills/references/config-reference.md +122 -0
  3. tidydraws-0.1.0/.agents/skills/author-skills/references/skill-anatomy.md +126 -0
  4. tidydraws-0.1.0/.agents/skills/configure-site/SKILL.md +298 -0
  5. tidydraws-0.1.0/.agents/skills/configure-site/references/feature-matrix.md +59 -0
  6. tidydraws-0.1.0/.agents/skills/configure-site/references/theming-options.md +91 -0
  7. tidydraws-0.1.0/.agents/skills/revise-docstrings/SKILL.md +262 -0
  8. tidydraws-0.1.0/.agents/skills/revise-docstrings/references/docstring-checklist.md +46 -0
  9. tidydraws-0.1.0/.agents/skills/revise-docstrings/references/style-examples.md +271 -0
  10. tidydraws-0.1.0/.agents/skills/write-user-guide/SKILL.md +330 -0
  11. tidydraws-0.1.0/.agents/skills/write-user-guide/references/page-anatomy.md +113 -0
  12. tidydraws-0.1.0/.agents/skills/write-user-guide/references/writing-guidelines.md +102 -0
  13. tidydraws-0.1.0/.github/workflows/ci.yml +54 -0
  14. tidydraws-0.1.0/.github/workflows/docs.yml +93 -0
  15. tidydraws-0.1.0/.github/workflows/publish.yml +92 -0
  16. tidydraws-0.1.0/.gitignore +20 -0
  17. tidydraws-0.1.0/.pre-commit-config.yaml +32 -0
  18. tidydraws-0.1.0/AGENTS.md +97 -0
  19. tidydraws-0.1.0/CONTRIBUTING.md +114 -0
  20. tidydraws-0.1.0/LICENSE +21 -0
  21. tidydraws-0.1.0/Makefile +54 -0
  22. tidydraws-0.1.0/PKG-INFO +46 -0
  23. tidydraws-0.1.0/README.md +42 -0
  24. tidydraws-0.1.0/docs/assets/index-plot.png +0 -0
  25. tidydraws-0.1.0/docs/examples/01-parameter_draws.qmd +330 -0
  26. tidydraws-0.1.0/docs/examples/02-compare_draws.qmd +187 -0
  27. tidydraws-0.1.0/docs/examples/03-prediction_draws.qmd +305 -0
  28. tidydraws-0.1.0/docs/examples/_pymc_workflow.py +81 -0
  29. tidydraws-0.1.0/great-docs.yml +54 -0
  30. tidydraws-0.1.0/index.qmd +197 -0
  31. tidydraws-0.1.0/pyproject.toml +114 -0
  32. tidydraws-0.1.0/skills-lock.json +30 -0
  33. tidydraws-0.1.0/tests/__init__.py +0 -0
  34. tidydraws-0.1.0/tests/test_compare_draws.py +169 -0
  35. tidydraws-0.1.0/tests/test_parameter_draws.py +167 -0
  36. tidydraws-0.1.0/tests/test_prediction_draws.py +181 -0
  37. tidydraws-0.1.0/tidydraws/__init__.py +8 -0
  38. tidydraws-0.1.0/tidydraws/_extract.py +371 -0
  39. 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.