Repository navigation
Tighten tool nomenclature: one naming rule across the three pillars - #20
Merged
Merged
Conversation
25 tools across three pillars, named four different ways. One rule --
<pillar>_<verb> for the pillar's own object, <pillar>_<verb>_<object> for
anything else in it -- already fitted 19 of them, so six are renamed to match
and the rule goes in CLAUDE.md where it can be held to.
Each pillar has exactly one primary object: mail has messages, calendar has
events, contacts has contacts. Naming it is redundant, which contacts already
knew (contacts_create, not contacts_create_contact) and calendar did not, so
the five calendar_*_event tools lose the suffix. And mail_draft was the one
tool named with a noun while its two siblings, mail_edit_draft and
mail_send_draft, lead with the verb; it becomes mail_create_draft.
calendar_search_events -> calendar_search
calendar_read_event -> calendar_read
calendar_create_event -> calendar_create
calendar_update_event -> calendar_update
calendar_delete_event -> calendar_delete
mail_draft -> mail_create_draft
Two spellings survive on purpose and CLAUDE.md says so, to stop this being
re-opened. contacts stays plural while mail and calendar are singular: the
three pillars have been written that way since v1 and it is the namespace's
name, not a bug worth six more renames. mail_flag and mail_mark_read keep the
words a person would use rather than a symmetrical set_flagged / set_read.
This is a breaking change to the MCP surface -- a renamed tool breaks any saved
instruction in an AI client that names it -- and squirrel-mcp-admin registers
this same tool layer, so both repos ship it together. Worth doing at six tools
in a free beta rather than at thirty with customers.
Closes #19.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K2DMxTXFL1aubHfjjEYCB6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #19.
25 tools across three pillars, named four different ways. One rule —
<pillar>_<verb>for the pillar's own object,<pillar>_<verb>_<object>for anything else in it — already fitted 19 of them, so six are renamed to match and the rule goes inCLAUDE.mdwhere it can be held to.Each pillar has exactly one primary object: mail has messages, calendar has events, contacts has contacts. Naming it is redundant — which contacts already knew (
contacts_create, notcontacts_create_contact) and calendar did not.mail_draftwas the one tool named with a noun while its two siblings,mail_edit_draftandmail_send_draft, lead with the verb.Kept on purpose
CLAUDE.mdnow says why, so this does not get re-opened:contactsstays plural whilemailandcalendarare singular. The three pillars have been written that way since v1; it is the namespace's name, not a bug worth six more renames across two CLAUDE.mds, the README andknowledge.pyfor one letter of symmetry.mail_flag/mail_mark_readstay. Both already fit the rule, and they use the words a person would say rather than a symmetricalset_flagged/set_read.Cost
Breaking change to the MCP surface: a renamed tool breaks any saved instruction in an AI client that names it. Worth doing at six tools in a free beta rather than at thirty with customers.
make test(282 passed),make lintandtyare green.make test-intwas not run — no Docker in this session.Companion
pantalytics/squirrel-mcp-admin#79 carries the same renames in its smoke script and
usage.tool_family, plus theSQUIRREL_MCP_REFbump. The two must ship together — these names have to change on both sides at once.🤖 Generated with Claude Code
https://claude.ai/code/session_01K2DMxTXFL1aubHfjjEYCB6
Generated by Claude Code