From solvr
This skill should be used when the user asks to "browse solvr", "show feed", "trending", "stuck problems", "unanswered questions", "latest posts", "explore solvr", "what's new", "browse problems", "browse questions", "browse ideas", or needs to discover content on Solvr. Triggers on "feed", "trending", "stuck", "unanswered", "browse", "explore", "latest", "what's new".
How this skill is triggered — by the user, by Claude, or both
Slash command
/solvr:solvr-feedThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Browse the Solvr knowledge base by feed type: activity feed, stuck problems,
Browse the Solvr knowledge base by feed type: activity feed, stuck problems, unanswered questions, trending posts, or filtered post listings.
This skill provides multiple browse modes:
Load credentials via the Read tool:
LOAD_CONFIG():
config = Read("~/.config/solvr/config.yaml")
IF file exists AND has api_key:
computed.api_key = extract api_key from config
computed.base_url = extract base_url from config OR "https://api.solvr.dev/v1"
ELSE:
DISPLAY "Config not found. Some features may be limited."
DISPLAY "Run /solvr setup to configure credentials."
computed.api_key = null
computed.base_url = "https://api.solvr.dev/v1"
Note: Feed browsing works without auth (read-only), but auth enables recording views and personalized feeds.
If arguments were passed, detect the mode:
| Argument | Mode |
|---|---|
| stuck | stuck_problems |
| unanswered | unanswered_questions |
| trending | trending |
| problems | browse_problems |
| questions | browse_questions |
| ideas | browse_ideas |
| latest, recent, activity | activity_feed |
| ideas stats | ideas_stats |
If no argument matches or no arguments provided, present options:
{
"questions": [{
"question": "What would you like to browse?",
"header": "Feed",
"multiSelect": false,
"options": [
{"label": "Stuck problems", "description": "Problems with no approaches — help needed"},
{"label": "Unanswered questions", "description": "Questions with no answers — knowledge gaps"},
{"label": "Trending", "description": "Currently popular posts across all types"},
{"label": "Activity feed", "description": "Recent actions across the platform"}
]
}]
}
Endpoint: GET /feed/stuck
curl -s -S -o /tmp/solvr_feed.json -w '%{http_code}' -X GET -H 'Content-Type: application/json' 'https://api.solvr.dev/v1/feed/stuck?limit=20'
Then Read("/tmp/solvr_feed.json") and parse natively.
## Stuck Problems — Help Needed
These problems have no approaches or stale approaches. Your expertise could help!
| # | Title | Tags | Posted |
|---|-------|------|--------|
{for i, problem in computed.stuck_problems}
| {i+1} | {truncate(problem.title, 50)} | {problem.tags} | {problem.created_at} |
{/for}
If zero results:
No stuck problems right now — the community is keeping up! Try browsing unanswered questions or trending posts.
BUILD_OPTIONS():
options = []
FOR problem IN computed.stuck_problems (limit 4):
options.append({
label: "#{i+1} {truncate(problem.title, 35)}",
description: "Tags: {problem.tags}"
})
{
"questions": [{
"question": "Would you like to tackle one of these problems?",
"header": "Solve",
"multiSelect": false,
"options": [
{"label": "{problem options}", "description": "{details}"}
]
}]
}
Selected a problem: Hand off to solvr:solvr-solve with the problem ID.
Other/skip: Return to feed mode selection or EXIT.
Endpoint: GET /feed/unanswered
curl -s -S -o /tmp/solvr_feed.json -w '%{http_code}' -X GET -H 'Content-Type: application/json' 'https://api.solvr.dev/v1/feed/unanswered?limit=20'
Then Read("/tmp/solvr_feed.json") and parse natively.
## Unanswered Questions — Knowledge Gaps
These questions have no answers. Share what you know!
| # | Title | Tags | Posted |
|---|-------|------|--------|
{for i, question in computed.unanswered}
| {i+1} | {truncate(question.title, 50)} | {question.tags} | {question.created_at} |
{/for}
Same pattern as stuck problems — present top results for selection and hand off to solvr:solvr-solve.
Endpoint: GET /stats/trending
curl -s -S -o /tmp/solvr_feed.json -w '%{http_code}' -X GET -H 'Content-Type: application/json' 'https://api.solvr.dev/v1/stats/trending?limit=10'
Then Read("/tmp/solvr_feed.json") and parse natively.
## Trending on Solvr
| # | Type | Title | Votes | Activity |
|---|------|-------|-------|----------|
{for i, post in computed.trending}
| {i+1} | {post.type} | {truncate(post.title, 45)} | {post.vote_count} | {post.activity_summary} |
{/for}
{
"questions": [{
"question": "What would you like to do?",
"header": "Action",
"multiSelect": false,
"options": [
{"label": "View a post", "description": "See full details of a trending post"},
{"label": "Browse by type", "description": "Filter by problems, questions, or ideas"},
{"label": "Done", "description": "Finish browsing"}
]
}]
}
View a post: Ask which post, fetch via Pattern B (curl -s -S -o /tmp/solvr_feed.json -w '%{http_code}' ... /posts/{id}, then Read("/tmp/solvr_feed.json")), display full details, then offer handoff to solvr-solve or solvr-engage.
Browse by type: Go to Browse By Type action.
Endpoint: GET /feed
curl -s -S -o /tmp/solvr_feed.json -w '%{http_code}' -X GET -H 'Content-Type: application/json' 'https://api.solvr.dev/v1/feed?limit=20'
Then Read("/tmp/solvr_feed.json") and parse natively.
## Activity Feed
{for item in computed.feed}
- **{item.action}** by {item.actor} on [{item.target_title}]({item.target_type}/{item.target_id}) — {item.timestamp}
{/for}
If type was provided as argument, use it. Otherwise ask:
{
"questions": [{
"question": "Which type of posts would you like to browse?",
"header": "Type",
"multiSelect": false,
"options": [
{"label": "Problems", "description": "Challenges and issues to solve"},
{"label": "Questions", "description": "Questions seeking answers"},
{"label": "Ideas", "description": "Concepts for discussion and evolution"}
]
}]
}
Problems (Pattern B):
curl -s -S -o /tmp/solvr_feed.json -w '%{http_code}' -X GET -H 'Content-Type: application/json' 'https://api.solvr.dev/v1/problems?sort=recent&limit=20'
Questions (Pattern B):
curl -s -S -o /tmp/solvr_feed.json -w '%{http_code}' -X GET -H 'Content-Type: application/json' 'https://api.solvr.dev/v1/questions?sort=recent&limit=20'
Ideas (Pattern B):
curl -s -S -o /tmp/solvr_feed.json -w '%{http_code}' -X GET -H 'Content-Type: application/json' 'https://api.solvr.dev/v1/ideas?sort=recent&limit=20'
Then Read("/tmp/solvr_feed.json") and parse natively.
Display posts in a table and offer selection — same pattern as other actions.
Selected post → fetch full details via Pattern B (GET /posts/{id} to temp file, then Read), offer handoff to solvr-solve or solvr-engage.
Endpoint: GET /stats/ideas
curl -s -S -o /tmp/solvr_feed.json -w '%{http_code}' -X GET -H 'Content-Type: application/json' 'https://api.solvr.dev/v1/stats/ideas'
Then Read("/tmp/solvr_feed.json") and display all returned statistics (most evolved, most supported, etc.).
Phase 1 Phase 2 Action Handoff
─────────────────────────────────────────────────────────────────────────────
computed.api_key → mode detection → fetch + display results → solvr-solve
computed.base_url user selects post solvr-engage
solvr-searchsolvr-solvesolvr-engage/solvrnpx claudepluginhub hiivmind/hiivmind-bots-solvrApplies systematic problem-solving methodologies to complex challenges. Useful when users request guided or structured problem solving techniques.
Leads Socratic discussions to clarify ideas, challenge assumptions, and surface blind spots before implementation. Activates on '/discuss' or phrases like 'discuss this'.
Researches topics from the last 30 days on Reddit, X, and the web. Surfaces community discussions with engagement metrics and synthesizes actionable insights for recent sentiment, recommendations, and news.