SkillFeed
Automatically match the best skills to unblock a failed or stuck workflow.
Trigger Conditions (auto)
Run this skill when any of these signals appears:
- Command/API failure (non-zero exit, HTTP 4xx/5xx)
- Retry threshold exceeded (default >=2 retries)
- Expected output missing (for example no tweet id after post task)
- Execution timeout exceeded
- User explicitly asks for tool/skill recommendation
- User describes a goal but has no clear implementation path
Do not trigger for normal delay/noise or when the user already has a working solution.
Workflow
- Capture failure context (sanitize before any external use)
- task name
- platform (X/Twitter, Telegram, GitHub, etc.)
- error message/code (generic type only — see sanitization rules below)
- latest action log summary (stripped of secrets)
- Classify failure type
- auth/permission
- rate limit/quota
- network/timeout
- invalid params/payload
- unknown
- Build layered search queries (broad -> scenario -> failure)
- Q1 broad capability query
- Q2 scenario-specific query
- Q3 failure-specific query with error tokens
- Sanitize all queries before searching — see Data Sanitization section
- Search ClawHub
- Use
https://clawhub.ai/skills?focus=search
- Always perform a live search; use
references/top-skills-*.md only as offline fallback
- Prefer sorting by stars / recently updated when comparing candidates
- Rank candidates
- match to goal (highest weight)
- match to failure type
- setup cost and risk
- maintenance signals
- Return recovery plan
- Top 1 primary skill
- 2 alternatives
- 3-5 concrete next actions
- fallback path if primary fails
- Anti-noise guardrails
- Avoid repeating the same recommendation for the same error within a single conversation
- Avoid auto-running high-risk external actions without user confirmation
Query Construction Rules
Generate queries from context tokens:
- Goal tokens:
post, schedule, auto reply, daily report
- Platform tokens:
x, twitter, tweet, telegram, github
- Failure tokens:
401, 403, 429, timeout, invalid token, permission denied
Example for failed tweet post:
- Q1:
tweet automation
- Q2:
x twitter schedule post cron
- Q3:
twitter post failed 401 invalid token rate limit
Data Sanitization
All failure context MUST be sanitized before it is included in any external search query or output. This prevents accidental leakage of secrets, credentials, and private data.
Strip before searching
- API keys, tokens, passwords, secrets (e.g.
sk-..., ghp_..., Bearer ...)
- Personally identifiable information (emails, usernames, IPs, hostnames)
- Internal URLs, file paths containing usernames or org names
- Request/response bodies and headers containing auth data
- Environment variable values (keep only the variable name)
Keep in queries (safe tokens)
- Generic error codes:
401, 403, 429, 500, timeout
- Generic error types:
invalid token, rate limit, permission denied
- Platform names:
twitter, github, telegram
- Action verbs:
post, publish, schedule, fetch
Rules
- Never embed raw log lines in a search query — extract only the error type/code.
- If unsure whether a token is sensitive, omit it.
- Queries should read like generic capability descriptions, not contain project-specific data.
Example — BAD query: twitter post failed Bearer sk-abc123 user@company.com 401
Example — GOOD query: twitter post failed 401 invalid token
Provider Adaptation (Claude Code / ChatGPT / Gemini)
Format the recovery plan for the current provider by default. Only include multi-provider runbooks when the user explicitly requests cross-platform output.
- Keep core logic provider-neutral
- Use the same goal, failure classification, query generation, and ranking flow.
- Detect current provider and use the matching execution style
- Claude Code: terminal-first, exact command sequences, minimal commentary.
- ChatGPT: compact checklist bullets, short "why" before steps.
- Gemini: explicit sections, assumptions, deterministic validation criteria.
- Normalize outputs
- Keep identical recommendation order across providers.
- Only vary phrasing and action formatting.
Output Format
- Goal:
- Failure signal:
- Primary recommendation:
<skill> (/slug) —
- Alternatives:
<skill> (/slug) —
<skill> (/slug) —
- Immediate actions (3-5 steps)
- Success check:
- expected output present
- no critical error in latest run
- Fallback if still failing
- Execution notes:
References
- Search and ranking recipes:
references/discovery-workflow.md
- Scenario keyword map:
references/query-templates.md
- Claude Code / ChatGPT / Gemini adaptation:
references/provider-adaptation.md
1---2name: skill-feed3description: Scenario-driven skill recommendation engine for ClawHub. Detects failed or stuck workflows, builds targeted search queries, and returns ranked skill recommendations with immediate recovery steps and fallback paths. Use when users say they want to do something but are blocked (errors, retries, timeout, missing outputs, unclear implementation path), or when you need recommendations adapted for Claude Code, ChatGPT, and Gemini execution styles.4---56# SkillFeed78Automatically match the best skills to unblock a failed or stuck workflow.910## Trigger Conditions (auto)1112Run this skill when any of these signals appears:13141. Command/API failure (non-zero exit, HTTP 4xx/5xx)152. Retry threshold exceeded (default >=2 retries)163. Expected output missing (for example no tweet id after post task)174. Execution timeout exceeded185. User explicitly asks for tool/skill recommendation196. User describes a goal but has no clear implementation path2021Do not trigger for normal delay/noise or when the user already has a working solution.2223## Workflow24251. Capture failure context (sanitize before any external use)26 - task name27 - platform (X/Twitter, Telegram, GitHub, etc.)28 - error message/code (generic type only — see sanitization rules below)29 - latest action log summary (stripped of secrets)302. Classify failure type31 - auth/permission32 - rate limit/quota33 - network/timeout34 - invalid params/payload35 - unknown363. Build layered search queries (broad -> scenario -> failure)37 - Q1 broad capability query38 - Q2 scenario-specific query39 - Q3 failure-specific query with error tokens40 - **Sanitize all queries before searching** — see Data Sanitization section414. Search ClawHub42 - Use `https://clawhub.ai/skills?focus=search`43 - Always perform a live search; use `references/top-skills-*.md` only as offline fallback44 - Prefer sorting by stars / recently updated when comparing candidates455. Rank candidates46 - match to goal (highest weight)47 - match to failure type48 - setup cost and risk49 - maintenance signals506. Return recovery plan51 - Top 1 primary skill52 - 2 alternatives53 - 3-5 concrete next actions54 - fallback path if primary fails557. Anti-noise guardrails56 - Avoid repeating the same recommendation for the same error within a single conversation57 - Avoid auto-running high-risk external actions without user confirmation5859## Query Construction Rules6061Generate queries from context tokens:6263- Goal tokens: `post`, `schedule`, `auto reply`, `daily report`64- Platform tokens: `x`, `twitter`, `tweet`, `telegram`, `github`65- Failure tokens: `401`, `403`, `429`, `timeout`, `invalid token`, `permission denied`6667Example for failed tweet post:6869- Q1: `tweet automation`70- Q2: `x twitter schedule post cron`71- Q3: `twitter post failed 401 invalid token rate limit`7273## Data Sanitization7475All failure context MUST be sanitized before it is included in any external search query or output. This prevents accidental leakage of secrets, credentials, and private data.7677### Strip before searching7879- API keys, tokens, passwords, secrets (e.g. `sk-...`, `ghp_...`, `Bearer ...`)80- Personally identifiable information (emails, usernames, IPs, hostnames)81- Internal URLs, file paths containing usernames or org names82- Request/response bodies and headers containing auth data83- Environment variable values (keep only the variable name)8485### Keep in queries (safe tokens)8687- Generic error codes: `401`, `403`, `429`, `500`, `timeout`88- Generic error types: `invalid token`, `rate limit`, `permission denied`89- Platform names: `twitter`, `github`, `telegram`90- Action verbs: `post`, `publish`, `schedule`, `fetch`9192### Rules93941. Never embed raw log lines in a search query — extract only the error type/code.952. If unsure whether a token is sensitive, omit it.963. Queries should read like generic capability descriptions, not contain project-specific data.9798Example — BAD query: `twitter post failed Bearer sk-abc123 user@company.com 401`99Example — GOOD query: `twitter post failed 401 invalid token`100101## Provider Adaptation (Claude Code / ChatGPT / Gemini)102103Format the recovery plan for the current provider by default. Only include multi-provider runbooks when the user explicitly requests cross-platform output.1041051. Keep core logic provider-neutral106 - Use the same goal, failure classification, query generation, and ranking flow.1072. Detect current provider and use the matching execution style108 - Claude Code: terminal-first, exact command sequences, minimal commentary.109 - ChatGPT: compact checklist bullets, short "why" before steps.110 - Gemini: explicit sections, assumptions, deterministic validation criteria.1113. Normalize outputs112 - Keep identical recommendation order across providers.113 - Only vary phrasing and action formatting.114115## Output Format116117- Goal: <what user wants>118- Failure signal: <what failed>119- Primary recommendation: `<skill>` (`/slug`) — <why>120- Alternatives:121 - `<skill>` (`/slug`) — <tradeoff>122 - `<skill>` (`/slug`) — <tradeoff>123- Immediate actions (3-5 steps)124- Success check:125 - expected output present126 - no critical error in latest run127- Fallback if still failing128- Execution notes: <steps formatted for current provider>129130## References131132- Search and ranking recipes: `references/discovery-workflow.md`133- Scenario keyword map: `references/query-templates.md`134- Claude Code / ChatGPT / Gemini adaptation: `references/provider-adaptation.md`