Skip to content

Commit fed60cd

Browse files
pjt222claude
andcommitted
refactor: rename putior_skills() to putior_guide() and sync terminology
Resolve terminology clash with agent-almanac where "skills" means machine-consumable procedures. putior's AI reference documentation is a quick-reference guide, not an executable procedure. - Rename R/putior_skills.R → R/putior_guide.R (function, helpers, docs) - Rename inst/SKILLS.md → inst/GUIDE.md (add agent-almanac cross-refs, block comment syntax, Dockerfile/Makefile/WGSL in language table) - Rename vignettes/skills.Rmd → vignettes/ai-integration.Rmd - MCP tool: putior_skills → putior_guide - ACP operation: skills → guide (keep "skills" as detection alias) - putior_help("skills") still works as backward-compat alias - Update _pkgdown.yml navbar, articles, reference index - Update See Also tables in all 7 vignettes - Update README, NEWS.md, CLAUDE.md - Update all tests (4505 pass, 0 failures) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 574641a commit fed60cd

27 files changed

Lines changed: 245 additions & 170 deletions

CLAUDE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ Add to `%APPDATA%\Claude\claude_desktop_config.json`:
172172
| `list_supported_languages` | List supported languages |
173173
| `get_detection_patterns` | Get auto-detection patterns |
174174
| `get_diagram_themes` | List available themes |
175-
| `putior_skills` | AI assistant documentation |
175+
| `putior_guide` | AI assistant documentation |
176176
| `putior_help` | Quick reference help |
177177
| `set_putior_log_level` | Configure logging |
178178

@@ -274,7 +274,7 @@ The ACP agent understands natural language requests:
274274
| generate | "generate annotation suggestions", "suggest annotations" |
275275
| merge | "merge annotations", "combine manual and auto" |
276276
| help | "help with syntax", "how to use putior" |
277-
| skills | "what are your capabilities", "what can you do" |
277+
| guide | "what are your capabilities", "what can you do" |
278278

279279
### Agent Manifest
280280

NAMESPACE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ export(put_merge)
1818
export(put_theme)
1919
export(putior_acp_manifest)
2020
export(putior_acp_server)
21+
export(putior_guide)
2122
export(putior_help)
2223
export(putior_mcp_server)
2324
export(putior_mcp_tools)
24-
export(putior_skills)
2525
export(run_sandbox)
2626
export(set_putior_log_level)
2727
export(split_file_list)

NEWS.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
## Breaking Changes
44

5+
* Renamed `putior_skills()` to `putior_guide()`. The function, its MCP tool
6+
(`putior_guide`), and its ACP operation (`guide`) all use the new name.
7+
`putior_help("skills")` still works as an alias for backward compatibility.
8+
The inst file was renamed from `SKILLS.md` to `GUIDE.md`, and the vignette
9+
from `skills.Rmd` to `ai-integration.Rmd`. (#41)
10+
511
* `put()`, `put_auto()`, `put_generate()`, and `put_merge()` now default to
612
`recursive = TRUE` (previously `FALSE`). Directory scans now include
713
subdirectories by default. Pass `recursive = FALSE` for the old behavior.
@@ -22,7 +28,7 @@
2228
* Added `putior_mcp_tools()` to get/filter tool definitions for custom MCP integrations
2329
* 16 tools available: `put`, `put_diagram`, `put_auto`, `put_generate`, `put_merge`,
2430
`get_comment_prefix`, `get_supported_extensions`, `list_supported_languages`,
25-
`get_detection_patterns`, `get_diagram_themes`, `putior_skills`, `putior_help`,
31+
`get_detection_patterns`, `get_diagram_themes`, `putior_guide`, `putior_help`,
2632
`set_putior_log_level`, `is_valid_put_annotation`, `split_file_list`, `ext_to_language`
2733
* Supports Claude Code, Claude Desktop, and other MCP-compatible clients
2834

@@ -125,7 +131,7 @@
125131
API reference, showcase, troubleshooting, quick-reference, and skills reference
126132
* Professional cheat sheet (`inst/cheatsheet/putior-cheatsheet.qmd`)
127133
* 20 example files in `inst/examples/`
128-
* `putior_skills()` and `putior_help()` for in-session reference
134+
* `putior_guide()` and `putior_help()` for in-session reference
129135

130136
### New Helper Functions
131137
* `resolve_label()` internal helper to reduce code duplication in diagram generation
@@ -147,7 +153,7 @@
147153
* Consolidated language detection list into single authoritative registry
148154
(`.LANGUAGES_WITH_DETECTION` in `language_registry.R`)
149155
* Standardized `output` parameter across `put_diagram()`, `put_generate()`, and
150-
`putior_skills()` -- all now support "raw"
156+
`putior_guide()` -- all now support "raw"
151157
* Extracted duplicated label resolution into `resolve_label()` helper
152158
* Added input path sanitization to ACP server endpoints
153159

R/acp.R

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ putior_acp_manifest <- function() {
9797
generate = "Generate annotation suggestions for files",
9898
merge = "Merge manual and auto-detected annotations",
9999
help = "Get help on putior usage",
100-
skills = "Get AI assistant skills documentation"
100+
guide = "Get AI assistant guide documentation"
101101
)
102102
)
103103
)
@@ -154,8 +154,8 @@ detect_operation <- function(content) {
154154
if (grepl("\\b(help|usage|how to)\\b", content_lower)) {
155155
return("help")
156156
}
157-
if (grepl("\\b(skills|capabilities|what can)\\b", content_lower)) {
158-
return("skills")
157+
if (grepl("\\b(guide|skills|capabilities|what can)\\b", content_lower)) {
158+
return("guide")
159159
}
160160

161161

@@ -361,8 +361,8 @@ execute_acp_request <- function(input, session_id = NULL) {
361361
)
362362
paste(help_output, collapse = "\n")
363363
},
364-
"skills" = {
365-
putior_skills(output = "raw")
364+
"guide" = {
365+
putior_guide(output = "raw")
366366
},
367367
# Default
368368
{
@@ -374,7 +374,7 @@ execute_acp_request <- function(input, session_id = NULL) {
374374
"- generate: Generate annotation suggestions\n",
375375
"- merge: Merge manual and auto annotations\n",
376376
"- help: Get help on putior usage\n",
377-
"- skills: Get AI assistant documentation"
377+
"- guide: Get AI assistant documentation"
378378
)
379379
}
380380
)
@@ -552,7 +552,7 @@ acp_get_run_handler <- function(run_id, response) {
552552
#' \item \strong{generate}: "Generate annotation suggestions for ./R/"
553553
#' \item \strong{merge}: "Merge manual and auto annotations in ./R/"
554554
#' \item \strong{help}: "Help with annotation syntax"
555-
#' \item \strong{skills}: "What are your capabilities?"
555+
#' \item \strong{guide}: "What are your capabilities?"
556556
#' }
557557
#'
558558
#' @section Testing:

R/mcp.R

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ NULL
3737
#' \item \code{list_supported_languages} - List supported languages
3838
#' \item \code{get_detection_patterns} - Get auto-detection patterns
3939
#' \item \code{get_diagram_themes} - List available themes
40-
#' \item \code{putior_skills} - AI assistant documentation
40+
#' \item \code{putior_guide} - AI assistant documentation
4141
#' \item \code{putior_help} - Quick reference help
4242
#' \item \code{set_putior_log_level} - Configure logging
4343
#' \item \code{is_valid_put_annotation} - Validate annotation syntax
@@ -183,7 +183,7 @@ putior_mcp_tools <- function(include = NULL,
183183
make_tool_list_supported_languages(),
184184
make_tool_get_detection_patterns(),
185185
make_tool_get_diagram_themes(),
186-
make_tool_putior_skills(),
186+
make_tool_putior_guide(),
187187
make_tool_putior_help(),
188188
make_tool_set_putior_log_level(),
189189

@@ -620,18 +620,18 @@ make_tool_get_diagram_themes <- function() {
620620
}
621621

622622
#' @noRd
623-
make_tool_putior_skills <- function() {
623+
make_tool_putior_guide <- function() {
624624
ellmer::tool(
625-
fun = putior_skills,
625+
fun = putior_guide,
626626
description = paste0(
627-
"Access putior skills documentation for AI assistants. ",
627+
"Access putior guide documentation for AI assistants. ",
628628
"Provides structured information about annotation syntax, supported languages, ",
629629
"core functions, detection patterns, and usage examples. ",
630630
"Use output='raw' to get markdown content."
631631
),
632-
name = "putior_skills",
632+
name = "putior_guide",
633633
annotations = list(
634-
title = "AI Assistant Skills Reference",
634+
title = "AI Assistant Guide Reference",
635635
readOnlyHint = TRUE
636636
),
637637
arguments = list(
@@ -655,7 +655,7 @@ make_tool_putior_help <- function() {
655655
fun = putior_help,
656656
description = paste0(
657657
"Get quick-reference help for putior tasks and syntax. ",
658-
"Topics include: annotation (syntax), themes, languages, node_types, patterns, examples, skills."
658+
"Topics include: annotation (syntax), themes, languages, node_types, patterns, examples, guide."
659659
),
660660
name = "putior_help",
661661
annotations = list(
@@ -665,7 +665,7 @@ make_tool_putior_help <- function() {
665665
arguments = list(
666666
topic = ellmer::type_enum(
667667
description = "Help topic to display",
668-
values = c("annotation", "themes", "languages", "node_types", "patterns", "examples", "skills"),
668+
values = c("annotation", "themes", "languages", "node_types", "patterns", "examples", "guide"),
669669
required = FALSE
670670
)
671671
)
Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
#' Access putior Skills for AI Assistants
1+
#' Access putior Guide for AI Assistants
22
#'
3-
#' Provides structured skills documentation for AI coding assistants
3+
#' Provides structured reference documentation for AI coding assistants
44
#' (Claude Code, GitHub Copilot, etc.) to help users with putior.
55
#'
6+
#' For step-by-step procedures, see the
7+
#' \href{https://github.com/pjt222/agent-almanac}{agent-almanac} repository,
8+
#' which provides 6 skills for the complete putior workflow.
9+
#'
610
#' @param topic Character string specifying section. NULL for full content.
711
#' Options: "quick-start", "syntax", "languages", "functions",
812
#' "patterns", "examples", or NULL (all)
@@ -15,29 +19,29 @@
1519
#' @export
1620
#'
1721
#' @examples
18-
#' # Show all skills
19-
#' putior_skills()
22+
#' # Show full guide
23+
#' putior_guide()
2024
#'
2125
#' # Show specific topic
22-
#' putior_skills("quick-start")
26+
#' putior_guide("quick-start")
2327
#'
2428
#' # Get raw markdown for AI consumption
25-
#' skills_md <- putior_skills(output = "raw")
26-
putior_skills <- function(topic = NULL,
27-
output = c("console", "raw", "clipboard")) {
29+
#' guide_md <- putior_guide(output = "raw")
30+
putior_guide <- function(topic = NULL,
31+
output = c("console", "raw", "clipboard")) {
2832
output <- match.arg(output)
2933

3034

31-
# Read skills file
32-
skills_path <- system.file("SKILLS.md", package = "putior")
33-
if (skills_path == "") {
34-
stop("SKILLS.md not found in package installation", call. = FALSE)
35+
# Read guide file
36+
guide_path <- system.file("GUIDE.md", package = "putior")
37+
if (guide_path == "") {
38+
stop("GUIDE.md not found in package installation", call. = FALSE)
3539
}
36-
content <- readLines(skills_path, warn = FALSE)
40+
content <- readLines(guide_path, warn = FALSE)
3741

3842
# Filter by topic if specified
3943
if (!is.null(topic)) {
40-
content <- extract_skills_topic(content, topic)
44+
content <- extract_guide_topic(content, topic)
4145
}
4246

4347
# Handle output
@@ -47,17 +51,17 @@ putior_skills <- function(topic = NULL,
4751
clipboard = {
4852
copy_to_clipboard(
4953
content = paste(content, collapse = "\n"),
50-
success_msg = "Skills copied to clipboard"
54+
success_msg = "Guide copied to clipboard"
5155
)
5256
}
5357
)
5458

5559
invisible(content)
5660
}
5761

58-
#' Extract a topic section from skills content
62+
#' Extract a topic section from guide content
5963
#' @noRd
60-
extract_skills_topic <- function(content, topic) {
64+
extract_guide_topic <- function(content, topic) {
6165
topic <- tolower(trimws(topic))
6266

6367
# Map topic names to section headers
@@ -98,20 +102,20 @@ extract_skills_topic <- function(content, topic) {
98102
content[start_idx:end_idx]
99103
}
100104

101-
#' Show skills summary for putior_help integration
105+
#' Show guide summary for putior_help integration
102106
#' @noRd
103-
show_skills_summary <- function() {
107+
show_guide_summary <- function() {
104108
cat("\n")
105-
cat("=== AI Assistant Skills Reference ===\n")
109+
cat("=== AI Assistant Guide Reference ===\n")
106110
cat("\n")
107111

108-
cat("putior includes comprehensive skills documentation for AI coding assistants.\n")
112+
cat("putior includes comprehensive reference documentation for AI coding assistants.\n")
109113
cat("\n")
110114
cat("ACCESS METHODS:\n")
111-
cat(" putior_skills() # Show full skills reference\n")
112-
cat(" putior_skills(\"quick-start\") # Show quick start section\n")
113-
cat(" putior_skills(output = \"raw\") # Get raw markdown\n")
114-
cat(" putior_skills(output = \"clipboard\") # Copy to clipboard\n")
115+
cat(" putior_guide() # Show full guide reference\n")
116+
cat(" putior_guide(\"quick-start\") # Show quick start section\n")
117+
cat(" putior_guide(output = \"raw\") # Get raw markdown\n")
118+
cat(" putior_guide(output = \"clipboard\") # Copy to clipboard\n")
115119
cat("\n")
116120
cat("AVAILABLE TOPICS:\n")
117121
cat(" quick-start - Essential 3 commands\n")
@@ -122,6 +126,10 @@ show_skills_summary <- function() {
122126
cat(" examples - Common usage patterns\n")
123127
cat("\n")
124128
cat("RAW FILE ACCESS:\n")
125-
cat(" system.file(\"SKILLS.md\", package = \"putior\")\n")
129+
cat(" system.file(\"GUIDE.md\", package = \"putior\")\n")
130+
cat("\n")
131+
cat("PROCEDURAL SKILLS:\n")
132+
cat(" For step-by-step procedures, see the agent-almanac repository:\n")
133+
cat(" https://github.com/pjt222/agent-almanac\n")
126134
cat("\n")
127135
}

R/putior_help.R

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#' \item "node_types" - Show available node types
1313
#' \item "patterns" - Show how to use detection patterns
1414
#' \item "examples" - Show quick examples
15-
#' \item "skills" - Show AI assistant skills reference
15+
#' \item "guide" - Show AI assistant guide reference
1616
#' }
1717
#'
1818
#' @return Invisibly returns NULL. Prints help content to the console.
@@ -42,8 +42,8 @@
4242
#' # Show quick examples
4343
#' putior_help("examples")
4444
#'
45-
#' # Show AI assistant skills reference
46-
#' putior_help("skills")
45+
#' # Show AI assistant guide reference
46+
#' putior_help("guide")
4747
putior_help <- function(topic = NULL) {
4848
if (is.null(topic)) {
4949
show_help_topics()
@@ -64,8 +64,9 @@ putior_help <- function(topic = NULL) {
6464
"detection" = show_patterns_help(),
6565
"examples" = ,
6666
"example" = show_examples_help(),
67+
"guide" = ,
6768
"skills" = ,
68-
"skill" = show_skills_summary(),
69+
"skill" = show_guide_summary(),
6970
{
7071
cat("Unknown topic: '", topic, "'\n\n", sep = "")
7172
show_help_topics()
@@ -90,7 +91,7 @@ show_help_topics <- function() {
9091
cat(" putior_help(\"node_types\") - Available node types for styling\n")
9192
cat(" putior_help(\"patterns\") - Auto-detection patterns\n")
9293
cat(" putior_help(\"examples\") - Quick usage examples\n")
93-
cat(" putior_help(\"skills\") - AI assistant skills reference\n")
94+
cat(" putior_help(\"guide\") - AI assistant guide reference\n")
9495
cat("\n")
9596
cat("For full documentation, see: ?put, ?put_diagram, ?put_auto\n")
9697
cat("\n")

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ Explore the full documentation at the [pkgdown site](https://pjt222.github.io/pu
140140
| [API Reference](https://pjt222.github.io/putior/articles/api-reference.html) | Complete function documentation |
141141
| [Quick Reference](https://pjt222.github.io/putior/articles/quick-reference.html) | At-a-glance reference card |
142142
| [Troubleshooting](https://pjt222.github.io/putior/articles/troubleshooting.html) | Common issues and solutions |
143-
| [AI Skills](https://pjt222.github.io/putior/articles/skills.html) | MCP/ACP integration for AI assistants |
143+
| [AI Integration](https://pjt222.github.io/putior/articles/ai-integration.html) | MCP/ACP integration for AI assistants |
144144

145145
## How putior Compares
146146

_pkgdown.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ home:
163163

164164
navbar:
165165
structure:
166-
left: [intro, reference, articles, skills, cheatsheet, news]
166+
left: [intro, reference, articles, ai-integration, cheatsheet, news]
167167
right: [search, github]
168168
components:
169169
home:
@@ -192,10 +192,10 @@ navbar:
192192
href: articles/quick-reference.html
193193
- text: Troubleshooting Guide
194194
href: articles/troubleshooting.html
195-
skills:
196-
text: AI Skills
195+
ai-integration:
196+
text: AI Integration
197197
icon: fa-robot
198-
href: articles/skills.html
198+
href: articles/ai-integration.html
199199
cheatsheet:
200200
text: Quick Ref
201201
icon: fa-file-alt
@@ -224,7 +224,7 @@ articles:
224224
- title: "AI Integration"
225225
navbar: ~
226226
contents:
227-
- skills
227+
- ai-integration
228228

229229
reference:
230230
- title: "Core Functions"
@@ -260,7 +260,7 @@ reference:
260260
- putior_mcp_tools
261261
- putior_acp_server
262262
- putior_acp_manifest
263-
- putior_skills
263+
- putior_guide
264264
- putior_help
265265

266266
- title: "Interactive Tools"

0 commit comments

Comments
 (0)