Conversation
Converts viral threads and discussions (Twitter/X, Reddit, HN) into polished blog posts or LinkedIn articles. Uses exa for content extraction and cloud proxy LLM for restructuring.
🧵 Skill Test Report:
|
| Session | Type | Prompt | Result | Skill Used? |
|---|---|---|---|---|
| D1 | Discovery | "Turn this HN discussion into a blog post" (URL given, no skill/API/brand mentioned) | ✅ Pass | ✅ YES — found and used thread-to-post + exa + environment |
| D2 | Discovery | "Repurpose this pasted thread as a LinkedIn article" (raw text, no skill mentioned) | ❌ NO — wrote the article directly without reading SKILL.md | |
| E1 | Explicit | "Use thread-to-post skill to convert Karpathy X thread" | ❌ Infra fail | ✅ YES (before crash) — read both skills, used exa contents/search |
| E2 | Explicit | "Use thread-to-post skill for LinkedIn article from pasted text" | ✅ Pass | ✅ YES — full workflow: read skill → environment → cloud proxy LLM → save |
| E3 | Explicit | "Use thread-to-post skill on Reddit discussion URL" | ✅ Pass | ✅ YES — full workflow with graceful Exa failure handling |
🔍 Detailed Analysis
D1 — Discovery (HN URL → Blog Post) ✅
Prompt: "I found this interesting discussion thread on Hacker News... Can you turn it into a well-structured blog post?"
- Agent discovered the thread-to-post skill without being told about it
- Read both
thread-to-post/SKILL.mdandexa/SKILL.md - Used exa
contentsendpoint for extraction (original URL was a single comment, so it adapted by using exasearchto find related HN threads) - Used cloud proxy (GPT-4o) for restructuring per the skill's Step 4
- Produced a ~1,800-word blog post with 20+ attributed quotes
- Saved to
Documents/posts/open-source-ai-dilemma.md - Verdict: Strong discovery. The specialized workflow added clear value over what a foundational-only approach would have produced.
D2 — Discovery (Pasted Text → LinkedIn Article) ⚠️
Prompt: "Here's a thread I saw online that I'd like repurposed as a punchy LinkedIn article" (full text pasted)
- Agent did NOT discover the thread-to-post skill
- Wrote the LinkedIn article directly without reading any skill
- Output was good quality but bypassed the entire skill workflow
- No cloud proxy LLM call, no analysis step, no quality checklist
- The agent said: "I can craft this directly since the content is clear"
- Verdict: Discovery failure for raw-text input. The skill's description mentions "converting pasted thread text into a structured article" but the agent didn't match the task to the skill. This suggests the skill's description may need a stronger signal for pasted-text scenarios, OR the skill should be gated in a way that makes it more discoverable for non-URL inputs.
E1 — Explicit (X/Twitter URL → Blog Post) ❌ (Infrastructure)
Prompt: Explicit instruction to use thread-to-post skill on x.com/karpathy/status/1821277264996352246
- Read both skill files correctly
- Used exa
contentsendpoint → got empty results (cached, no text) - Tried with
maxAgeHours: 0→ got 404/403 errors (X blocks Exa crawler) - Used exa
searchwithcategory: "tweet"→ found related tweets but not the right one - Found the thread content via HN reference → extracted from
analyticsindiamag.comarticle - Crashed with API internal server error mid-workflow (not a skill bug)
- Partial output was saved to
Documents/posts/rlhf-is-just-barely-rl.md(73 lines, well-written) - Verdict: The skill workflow was being followed correctly. X/Twitter URLs are a known limitation of Exa extraction. The skill says "tell the user and ask them to paste" for failed extraction — the agent was creatively working around this instead. Infrastructure crash, not a skill bug.
E2 — Explicit (Pasted Text → LinkedIn Article) ✅
Prompt: Explicit instruction to use thread-to-post skill with pasted @andrewchen thread
- Read
thread-to-post/SKILL.md→ correctly identified raw text input → skipped Step 1 - Read
environment/SKILL.md→ got cloud proxy details - Called GPT-4o via cloud proxy with a structured prompt matching LinkedIn formatting rules exactly
- Applied all LinkedIn format rules: bold hook, short paragraphs, call to engagement, no markdown headers, minimal emoji
- Used proper attribution format: "Originally by @andrewchen on Twitter/X"
- Saved to
Documents/linkedin/andrewchen-viral-loops.md - Ran quality checklist per Step 7
- Verdict: Clean end-to-end execution of the full skill workflow. All steps followed.
E3 — Explicit (Reddit URL → Blog Post) ✅
Prompt: Explicit instruction to use thread-to-post skill on Reddit r/MachineLearning discussion
- Read both skill files
- Used exa
contentson Reddit URL →CRAWL_LIVECRAWL_TIMEOUT(Reddit blocks Exa) - Retried with
old.reddit.com,.jsonsuffix, increased timeout → all timed out - Used exa
searchto find the thread → too new for index - Pivoted to exa
answerendpoint → got synthesized discussion points with citations - Used exa
contentsto extract all cited sources (Rieck blog, NeurIPS paper, Nature article) - Wrote comprehensive ~1,800-word blog post with proper multi-author discussion treatment
- Included Key Takeaways section (skill requirement for posts >1000 words)
- Saved to
posts/homogenization-of-ai-research.md - Verdict: Excellent graceful degradation. Reddit and X/Twitter blocking Exa is a real-world limitation. The agent followed the skill's guidance ("tell the user if extraction fails") but adapted creatively since it was a subagent that couldn't ask for pasted text. The article quality was high despite the extraction limitation.
🐛 Bugs Found
Bug 1: Discovery Failure on Pasted Text Input (Medium)
- What: When given pasted thread text without mentioning the skill, the agent did not discover thread-to-post
- Why: The skill description includes "converting pasted thread text into a structured article" but the task description ("repurpose as a LinkedIn article") didn't trigger skill matching
- Impact: Users who paste text and ask for conversion may not get the specialized workflow
- Suggested Fix: Consider adding keywords like "repurpose", "LinkedIn article", "convert thread" more prominently in the description's trigger phrases. The description currently focuses on platform-specific terms (Twitter, Reddit, HN). Adding more format-focused triggers ("turn into article", "repurpose as post", "make this a LinkedIn article") could improve discovery.
Bug 2: Exa Extraction Fails on Reddit and X/Twitter (Known Limitation)
- What: Exa's
contentsendpoint cannot crawl Reddit (CRAWL_LIVECRAWL_TIMEOUT) or X/Twitter (403/404) - Impact: Two of the three URL input types in the skill's table simply don't work with Exa
- Mitigation in skill: The skill already says "If Exa extraction fails or returns thin content, tell the user" — this is correct but understates the severity
- Suggested Fix: Add a note in Step 1 that Reddit and X/Twitter extraction frequently fails due to anti-bot measures. Suggest the Exa
answerendpoint as a fallback (the agents discovered this themselves). Or add a fallback chain: trycontents→ if fail, trysearch→ if fail, tryanswer→ if all fail, ask user.
Bug 3: No requires.env in Metadata (Minor)
- What: The skill depends on
exawhich needsEXA_API_KEY, and uses cloud proxy which needsOPENAI_API_KEY. But the skill's own metadata has norequires.env. - Impact: The skill appears available even without Exa or OpenAI access, then fails at runtime
- Suggested Fix: Add
"requires": {"env": ["EXA_API_KEY"]}to the metadata, or at minimum document the dependency explicitly. The cloud proxy dependency could also be noted.
📊 Quality Checklist
| Check | Result |
|---|---|
| SKILL.md has valid frontmatter | ✅ |
| Description triggers match use cases | |
Metadata has correct openclaw structure |
✅ (but missing requires.env) |
| No raw API endpoints in specialized skill | ✅ Properly delegates to exa foundational |
| Foundational skill referenced correctly | ✅ References exa and environment |
| Workflow is clear and followable | ✅ Steps are well-structured |
| Handles edge cases (pasted text, failed extraction) | ✅ Documented, agents followed guidance |
| Output quality when skill is followed | ✅ All articles were high quality |
| Discovery works for primary use case (URL input) | ✅ D1 found and used the skill |
| Discovery works for secondary use case (pasted text) | ❌ D2 did not discover the skill |
| Multi-author discussion handling | ✅ E3 correctly synthesized multiple viewpoints |
| Blog post format compliance | ✅ Sections, quotes, attribution, TL;DR |
| LinkedIn format compliance | ✅ Bold hook, short paragraphs, hashtags, no headers |
🏷️ Verdict: needs-changes
The skill works well when explicitly invoked — the workflow is clear, well-structured, and produces high-quality output. All three explicit tests followed the workflow correctly (one crashed due to infrastructure, not the skill). The blog post and LinkedIn article formats are both well-specified and produce good results.
However, there are issues worth fixing before merge:
- Discovery failure on pasted text — The skill's description doesn't trigger well for non-URL, format-focused requests. This is the second input type listed in the skill, so it should be discoverable.
- Missing
requires.env— Should gate onEXA_API_KEYat minimum. - Exa extraction limitations need better documentation — Reddit and X/Twitter are major platforms listed as supported inputs, but Exa can't reliably extract from either. The skill should document this reality and suggest fallback strategies.
None of these are blockers that make the skill broken — it works when told to use it. But the discovery gap and undocumented limitations should be addressed for a clean merge.
…traction limitations Addresses reviewer feedback on PR #15: - Broadened description triggers for pasted-text and format-focused requests (repurpose, turn into article, make LinkedIn post, text-to-article) - Added requires.env for EXA_API_KEY in metadata - Documented Reddit and X/Twitter extraction failures as known limitations - Added fallback chain: contents → search → answer → ask user to paste - Reordered input types table to highlight reliability differences - Moved raw-text handling to top of Step 1 (skip extraction)
Skill Review: thread-to-postCommit: Pre-test Checks (Specialized Skill)
Discovery Testing (2 sessions)
Discovery verdict: Excellent discoverability. Both agents found and used the specialized Specialized workflow analysis: Both discovery agents followed the multi-step specialized workflow (extract → analyze → choose format → transform via LLM → quality checklist → save), rather than just using Exa directly and winging the transformation. This confirms the specialized skill adds real value over ad-hoc foundational skill usage. Explicit Testing (3 sessions)
Bugs FoundNone. All 5 sessions completed successfully. No crashes, no auth failures, no hallucinated parameters. Observations (not bugs)
Summary
Recommendation: Ready to merge. ✅ 📋 D1: Pasted Twitter thread → blog postPrompt: "Here's a Twitter thread I saved. Turn it into a polished blog post: [7-tweet thread about AI agents by @TechVisionary]... Make it read well as a standalone article." Tool calls:
Result: ~900-word blog post with 5 sections. Quality checklist: all 7 items passed. Attribution to @TechVisionary preserved. Artifacts: # Stop Building Autonomous AI Agents. Build Superhuman Ones.
(~900 words, 5 sections, proper attribution)📋 D2: HN URL → LinkedIn articlePrompt: "I found this great Hacker News discussion: https://news.ycombinator.com/item?id=42498554 — Can you turn it into a LinkedIn article? I want to post it on my LinkedIn to start a conversation about the topic. Make it punchy, professional, and ready to post." Tool calls:
Result: ~650-word LinkedIn article about marketplace scams. Bold formatting, no markdown headers, engagement CTA, 6 hashtags, proper attribution to Dimitar Ganev. Artifacts: A security researcher got scammed on an online marketplace.
Instead of moving on, he reverse-engineered the entire operation.
(~650 words, LinkedIn format, 6 hashtags)📋 E1: HN URL → blog post (explicit, full extraction chain)Prompt: "You have a skill called 'thread-to-post' in your available skills. Read its SKILL.md first, then use it to convert this Hacker News discussion into a blog post: https://news.ycombinator.com/item?id=42498554 — Follow the skill's workflow step by step. Use the exa skill for content extraction." Tool calls:
Result: ~1500-word blog post synthesizing original article + 43 HN comments. 9 verbatim quotes with attribution (honzabe, XorNot, mcyukon, vintermann, paxys, meiraleal, lazide, phoronixrly, dylan604). TL;DR section included. All 7 quality checklist items passed. Artifacts: # Unmasking the Bulgarian Marketplace Scams: How One Security Researcher Pulled the Thread...
(~1500 words, 7 sections + TL;DR, 9 attributed quotes)📋 E2: Pasted text → LinkedIn article (explicit, skip extraction)Prompt: "You have a skill called 'thread-to-post' in your available skills. Read its SKILL.md first, then use it to convert the following pasted thread text into a LinkedIn article. Follow the skill's exact workflow — since this is raw pasted text, you should skip extraction and go straight to analysis and transformation. [Thread about tech interview death by Sarah Chen, VP of Engineering at TechCorp]" Tool calls:
Analysis step documented:
Result: LinkedIn post with bold hook, short paragraphs, 2 emoji, engagement CTA, 5 hashtags, proper attribution. Checklist: 7/7 passed. Agent noted it bumped hashtags from 3→5 per skill requirement (3-5). Artifacts: **Is the traditional tech interview on life support?** 🚨
(~400 words, LinkedIn format, 5 hashtags)📋 E3: Reddit URL → blog post (explicit, fallback chain stress test)Prompt: "You have a skill called 'thread-to-post' in your available skills. Read its SKILL.md first, then use it to attempt converting this Reddit thread URL into a blog post: https://www.reddit.com/r/programming/comments/1jntbxo/the_new_css_math_functions_are_very_cool/ — Follow the skill's fallback chain exactly as documented: try exa contents first, then search, then answer." Tool calls:
Fallback chain report (from sub-agent):
Sub-agent observations:
Total Exa API cost: $0.015 Artifacts: # Unleashing the Power of CSS Math Functions: A New Era in Web Development
(~1200 words, 5 sections + Key Takeaways, attribution to r/programming) |
Specialized skill that converts viral threads and online discussions into polished articles.
Input: URLs (Twitter/X threads, Reddit posts, HN discussions) or raw pasted text
Output: Blog posts (structured, ~800-2000 words) or LinkedIn articles (hook-driven, ~300-800 words)
Dependencies: exa (content extraction), environment (cloud proxy LLM access)
Workflow: