From wa-tasks-plugin
Read back Rich's most recent 15-5 from Basecamp and create a Basecamp todo for every "priority for next week" item in the Misc Todos list of the 🏠 Rich Nash project. Use this skill when the user says "create todos", "create todos from my 15-5", "make todos for next week", "turn my priorities into todos", "add my next-week priorities to Basecamp", or any variation of converting 15-5 priorities into Basecamp todos. Trigger even when the user only says "/create-todos".
How this skill is triggered — by the user, by Claude, or both
Slash command
/wa-tasks-plugin:create-todosThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read back Rich's most recently posted 15-5 and create one Basecamp todo per "priority for next week" item in the Misc Todos list of the 🏠 Rich Nash project.
Read back Rich's most recently posted 15-5 and create one Basecamp todo per "priority for next week" item in the Misc Todos list of the 🏠 Rich Nash project.
This skill is the natural follow-on to 15-5-report: the 15-5 produces a list of priorities, and this skill puts each priority on a tracked todo list so it doesn't disappear in a Basecamp comment.
This skill uses whatever Basecamp MCP server is currently connected — it does not require a specific one. Tool names vary between Basecamp servers, so match by capability rather than exact name. The operations needed, with common name variants:
list_comments, get_commentslist_todos, get_todoscreate_todoAt the start, look at the available tools, find the connected Basecamp server (its tools are usually prefixed basecamp or grouped under a Basecamp connector), and use its equivalents for each operation below. If no Basecamp tool is available, stop and tell the user no Basecamp connector is connected.
These IDs are stable for Rich's account and should be used as-is:
project_id: 25906397recording_id (the message): 9428630577project_id: 25906397todolist_id: 5377896272Using the connected Basecamp server's "list comments" tool, fetch the comments on project_id="25906397", recording_id="9428630577" (parameter names may vary slightly by server — e.g. recording_id, message_id). Basecamp returns comments in chronological order; the most recent 15-5 is the last comment in the response (or the first when sorted by created_at descending). Pick the one whose author is Rich Nash and whose content has the 15-5 section headers.
If no comments exist on the message, stop and tell the user: "No 15-5 has been posted yet — run /15-5-report first."
Convert the comment's HTML body back to readable markdown and print it in chat as a fenced block, preceded by a one-line header like Most recent 15-5 (posted YYYY-MM-DD HH:MM):. Strip the <div>, <strong>, <ul>, <li>, and <a> tags; keep the link URLs as [Title](URL); preserve the section question lines as bold markdown (**…**).
Find the section under the What are your priorities for next week? header. Each <li> inside that section's <ul> becomes one todo. Strip surrounding whitespace and any leading bullet marker. Skip any bullet whose text is a placeholder like [add priorities] or that is empty.
For each priority bullet, call the connected Basecamp server's "create todo" tool with:
project_id: "25906397"todolist_id: "5377896272"content: the bullet text as plain text (strip HTML tags, but preserve URLs by appending them in parentheses if they were inside an <a> — e.g. Coordinate prod push of First Year Section Assignment (https://linear.app/...))description: omit unless the bullet had additional sentences beyond the first; in that case put the extra sentences here in HTMLdue_on: Try to discern the due date from the context. But, unless you're sure, set the due_on date to the Monday following the 15-5.assigned_to: Assign all todo's to me, Rich NashMake these calls sequentially, not in parallel, so a failure on one doesn't orphan the others.
After all todos are created, print a short summary in chat:
Created N todos in Misc Todos:
- <todo text> — <app_url>
- ...
Use the app_url from each create_todo response so the user can click straight to each todo. End with a single link to the todolist itself: https://3.basecamp.com/4206247/buckets/25906397/todolists/5377896272
If any todo failed to create, list it separately under a Failed: heading with the error message.
todolist_id=5377896272 and skip any priority whose content already matches an open todo's content (case-insensitive substring match on the first 60 characters is enough).Week of YYYY-MM-DD header.Provided by whichever Basecamp MCP server is connected (names vary — match by capability):
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub rvnash/plugins --plugin wa-tasks-plugin