From simpleapps
Fetch a Basecamp URL or GitHub issue with full comments and scaffold a WIP file
npx claudepluginhub simpleapps-com/augur-skills --plugin simpleapps<basecamp-url or github-issue>First, use Skill("basecamp") to load the Basecamp MCP reference, then Skill("workflow") for the Basecamp-to-GitHub flow, then Skill("github") for GH CLI conventions, then Skill("bash-simplicity") for Bash conventions.
Fetch a Basecamp URL or GitHub issue and scaffold a WIP file.
Input: `$ARGUMENTS` — a Basecamp URL or GitHub issue reference.
## 1. Detect source type
**Basecamp URL** — matches `basecamp.com/<account>/projects/<project_id>/<type>/<id>`:
- Extract `project_id` and item `id` from the URL path
- Determine item type from the URL: `todos`, `messages`, `uploads`, `forwards`
**...First, use Skill("basecamp") to load the Basecamp MCP reference, then Skill("workflow") for the Basecamp-to-GitHub flow, then Skill("github") for GH CLI conventions, then Skill("bash-simplicity") for Bash conventions.
Fetch a Basecamp URL or GitHub issue and scaffold a WIP file.
Input: $ARGUMENTS — a Basecamp URL or GitHub issue reference.
Basecamp URL — matches basecamp.com/<account>/projects/<project_id>/<type>/<id>:
project_id and item id from the URL pathtodos, messages, uploads, forwardsGitHub issue — matches any of:
#N (use repo from git -C repo remote -v)org/repo#N/issues/NIf the input does not match either pattern, stop and ask the user to provide a Basecamp URL or GitHub issue reference.
Based on the item type extracted from the URL:
| URL type | MCP tool | Key fields |
|---|---|---|
todos/<id> | get_todo(project_id, todo_id) | content, comments, assignee, attachments |
messages/<id> | get_message(project_id, message_id) | subject, content, comments, attachments |
uploads/<id> | get_upload(project_id, upload_id) | content, comments |
forwards/<id> | get_forward(project_id, forward_id) | subject, content |
The MCP response includes comments inline. Extract:
Determine the repo:
org/repo was provided in the reference, use itgit -C repo remote -v and extract org/repoFetch the issue with comments:
gh issue view <N> --repo <org>/<repo> --json title,body,comments,labels,assignees,state
Extract:
If the source is a GitHub issue and the fetched data shows an empty labels array, assign a label:
bug, security, a11y, perf, SEO, enhancement, refactorgh issue edit <N> --repo <org>/<repo> --add-label <label>Use these heuristics:
bugenhancementa11yperfSEOrefactorsecurityIf the issue could fit multiple labels, pick the single most relevant one. Do not add status labels (blocked, production-blocker) in this step — those are applied by other commands when the situation warrants it.
Skip this step for Basecamp sources (labels are a GitHub concept).
Scan the body and all comments for links to the other system:
github.com/*/issues/N) → note as GH #Nbasecamp.com/*/projects/*/todos/*) → note as BC referenceRecord all cross-references for the Source section.
From the title:
Use Glob to check wip/ for a file starting with the same prefix (BC{#} or GH{#}). If one exists, read it and go to step 6a (update). Otherwise, go to step 6b (create).
Read the existing WIP file. Compare against freshly fetched content:
Tell the user what was updated (e.g., "Added 2 new comments, status unchanged").
Write to wip/{prefix}{#}-{slug}.md where prefix is GH or BC.
Template:
# {Source type} #{number}: {Title}
## Status: WIP
## Source
- {source_type}: {url}
- Cross-refs: {any detected cross-references, or "none"}
## Problem
{Body content — the full description from the issue or Basecamp item}
## Attachments
{List each attachment with name, type, and ID. Include download instructions per the basecamp skill. Omit this section if no attachments.}
## Comments
{Each comment, formatted as:}
### {Author} — {Date}
{Comment body}
---
## Research
_Investigation notes go here._
## Files to modify
| File | Changes |
|------|---------|
## References
- {Source type}: {url}
- {Any cross-references found}
For new WIP files:
wip/{filename}For updated WIP files: