app-store-review-arbit…
Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning…
Turns rough notes, bullet points, voice transcripts, or tweet dumps into a polished, publication-ready blog post. Optionally enriches with Tavily research to add supporting data and credibility to claims. Use when asked to write a blog post from notes, turn rough ideas into an
$ npx -y skills add Varnan-Tech/opendirectory --skill noise2blog --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/noise2blogContext preview
The summary Claude sees to decide when to auto-load this skill.
Turns rough notes, bullet points, voice transcripts, or tweet dumps into a polished, publication-ready blog post. Optionally enriches with Tavily research to add supporting data and credibility to claims. Use when asked to write a blog post from notes, turn rough ideas into an
name: noise2blog description: Turns rough notes, bullet points, voice transcripts, or tweet dumps into a polished, publication-ready blog post. Optionally enriches with Tavily research to add supporting data and credibility to claims. Use when asked to write a blog post from notes, turn rough ideas into an article, expand bullet points into a full post, clean up a voice transcript into a blog, or repurpose a tweet thread as an article. Trigger when a user says "write a blog post from this", "turn these notes into a post", "expand this into an article", "make this publishable", "I have rough notes write a blog", or "clean up this transcript". compatibility: [claude-code, gemini-cli, github-copilot] author: OpenDirectory version: 1.0.0
Take any rough input (bullet points, voice transcripts, tweet dumps, or short drafts) and produce a polished, publication-ready blog post. Every claim traces to the source material or Tavily-verified research.
---
**Critical rule:** DO NOT INVENT SPECIFICS. Every claim, metric, and example in the blog post must come from the raw input or a Tavily search result. Never fabricate data, quotes, or outcomes.
---
Confirm required env vars are set:
echo "GEMINI_API_KEY: ${GEMINI_API_KEY:+set}"
echo "TAVILY_API_KEY: ${TAVILY_API_KEY:-not set, Tavily enrichment will be skipped}"**If GEMINI_API_KEY is missing:** Stop. Tell the user: "GEMINI_API_KEY is required. Get it at aistudio.google.com → Get API key. Add it to your .env file."
**If TAVILY_API_KEY is missing:** Continue. Note that Tavily enrichment will be skipped. The blog post will be based entirely on the provided content. This is fine for personal stories, tutorials from experience, or opinion pieces.
**Confirm input is present.** The user must provide one of:
If no input, ask: "Share your rough notes, bullet points, or transcript. Paste them directly, or give me a URL to fetch the source."
---
**If input is a URL:** Fetch the page content using WebFetch. Extract: title, author, publish date, all body text, key statistics, numbered lists, subheadings, quotes.
**If input is pasted text:** Read it directly. Identify the input type:
**QA checkpoint:** State before continuing: 1. Input type detected 2. Core thesis or main argument in one sentence 3. The 3-5 strongest insights, facts, or ideas from the raw content 4. Any claims that need external verification (benchmarks, statistics, product comparisons, research findings)
If you cannot identify a core thesis, ask: "What's the single most important thing you want readers to take away from this?"
---
Four styles. Auto-detect from content signals. User override always respected.
| Style | When to use | Signals | |-------|-------------|---------| | Technical Tutorial | Step-by-step guide, how-to, code walkthrough | Numbered steps, commands, code snippets, "how to" in content | | Case Study | Before/after story, build log, lessons learned | Specific results, timelines, first-person journey | | Thought Leadership | Opinion, argument, counterintuitive claim | "I think", "the problem with X", contrarian position, debate framing | | Explainer | What is X, why it matters, how it works | Concept-first, comparison-heavy, "most people don't know" |
**Detection logic:**
State chosen style and reasoning. If ambiguous, pick one and note the choice.
---
Skip this step silently if TAVILY_API_KEY is not set.
Search for supporting evidence for claims in the raw content that could benefit from verification or data. Good candidates:
Run one Tavily search per claim that needs verification. Limit to 3 searches maximum to avoid over-sourcing:
curl -s -X POST "https://api.tavily.com/search" \
-H "Content-Type: application/json" \
-d '{
"api_key": "'"$TAVILY_API_KEY"'",
"query": "SPECIFIC_CLAIM_OR_TOPIC",
"search_depth": "advanced",
"max_results": 5,
"include_answer": true
}'Keep results with `score >= 0.65`. Extract: title, url, content snippet.
**Rules for using Tavily results:**
---
Read `references/blog-format.md` in full. Select the matching template from `references/output-template.md`. Internalize all rules before generating.
Write the Gemini request to a temp file to handle special characters safely:
cat > /tmp/noise2blog-request.json << 'ENDJSON'
{
"system_instruction": {
"parts": [{
"text": "You are a tech writer who sounds like a real person. Rules: Active voice only. Short paragraphs, 1-3 lines max, then a bAI Agent Skills built for Founders who hate Marketing
Repo: Varnan-Tech/opendirectory
Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning…
Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search…
World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming…
Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing…
Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source…
Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.