{"slug":"hn-sentiment-analysis","title":"hn-sentiment-analysis","summary":"Analyze Hacker News thread sentiment from a provided HN thread URL.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-23T18:54:41.948954Z","repo":{"url":"https://github.com/kissgyorgy/coding-agents","stars":15,"forks":1,"license":null,"updatedAt":"2026-09-23T05:37:51Z"},"bodyHtml":"<hr>\n<h2>name: hn-sentiment-analysis\ndescription: Analyze Hacker News thread sentiment from a provided HN thread URL.\nallowed-tools: Fetch, Bash, Read\ndisable-model-invocation: true</h2>\n<h1>Hacker News Sentiment Analysis</h1>\n<p>Analyze a Hacker News thread URL provided through <code>/skill:hn-sentiment-analysis</code>.</p>\n<h2>Non-negotiable rules</h2>\n<ul>\n<li>Do not write any additional scripts, one-off parsers, notebooks, or ad-hoc data-processing code for this task. The scripts in this skill are the complete analysis pipeline.</li>\n<li>Do not read <code>thread.json</code>, <code>comments.jsonl</code>, or every <code>chunks/comments-*.md</code> file into context. Large HN threads will overflow the model context.</li>\n<li>Do not include raw HN item IDs, comment IDs, thread IDs, naked HN URLs, or internal lookup labels in the human-facing final report. Use author names, roles, themes, and short quote snippets instead.</li>\n<li>If you need a different output directory, review-pack size, or chunk size, rerun the provided script with flags instead of creating new code.</li>\n</ul>\n<h2>Workflow</h2>\n<ol>\n<li><p>Prepare the HN thread artifacts with the provided pipeline:</p>\n<pre><code>python skills/hn-sentiment-analysis/scripts/prepare_hn_sentiment_analysis.py 'https://news.ycombinator.com/item?id=12345678'\n</code></pre>\n<p>The script parses the HN item id, downloads the full nested thread JSON from Algolia, saves it, flattens comments, creates targeted lookup chunks, and generates a bounded <code>review-pack.md</code> for analysis.</p>\n</li>\n<li><p>Read the generated <code>analysis-brief.md</code> first. Follow its reading order.</p>\n</li>\n<li><p>Read <code>story.md</code>, fetch the article URL with the <code>fetch</code> tool, and write a very short article summary. If there is no article URL, summarize the HN story text.</p>\n</li>\n<li><p>Read <code>review-pack.md</code>. This is the primary bounded evidence pack for sentiment analysis.</p>\n</li>\n<li><p>Read <code>sentiment-worksheet.md</code> as the quality checklist.</p>\n</li>\n<li><p>Only if needed, read targeted detail files:</p>\n<ul>\n<li><code>top-subthreads.md</code> for more detail on engaged subthreads.</li>\n<li><code>key-person-candidates.md</code> for possible insiders/authors/maintainers/executives.</li>\n<li><code>author-index.md</code> to avoid over-counting prolific authors.</li>\n<li><code>chunk-index.md</code> to choose one specific <code>chunks/comments-*.md</code> file for a targeted lookup.</li>\n</ul>\n</li>\n</ol>\n<h2>Quality requirements</h2>\n<p>A good sentiment analysis must:</p>\n<ul>\n<li>Separate the article summary from HN commenter sentiment.</li>\n<li>Distinguish sentiment toward the article, topic, product/company/project, implementation details, and HN meta-discussion.</li>\n<li>Group opinions by theme, not only by positive/negative polarity.</li>\n<li>Support each major claim with representative authors, roles, or short quote snippets; never with raw numeric HN IDs.</li>\n<li>Identify key people in the thread, such as the article author, library maintainer, founder, CEO, CTO, developer, employee, or other company/project insiders, and summarize their comments by subthread.</li>\n<li>Avoid treating reply count as a vote count; use it only as engagement/context.</li>\n<li>Avoid over-counting prolific authors as multiple independent votes.</li>\n<li>Separate substantive criticism from jokes, tangents, ideology, bikeshedding, and sarcasm.</li>\n<li>Call out notable disagreements, minority viewpoints, and uncertainty.</li>\n<li>Remember that HN commenters are a technical/startup-heavy audience and not representative of the general public.</li>\n</ul>\n<h2>Output format</h2>\n<p>Keep the final answer concise and structured:</p>\n<ul>\n<li>Article summary</li>\n<li>Overall HN sentiment with confidence level</li>\n<li>Common opinion groups, with representative authors or short quote snippets</li>\n<li>Key people and their comments</li>\n<li>Notable caveats, minority views, and uncertainty</li>\n</ul>\n<h2>Scripts</h2>\n<ul>\n<li><a href=\"scripts/prepare_hn_sentiment_analysis.py\"><code>scripts/prepare_hn_sentiment_analysis.py</code></a> is the main pipeline. It downloads or loads a thread, writes raw Algolia JSON, and prepares bounded analysis artifacts.</li>\n<li><a href=\"scripts/download_hn_thread.py\"><code>scripts/download_hn_thread.py</code></a> only downloads the complete nested Algolia item JSON for a Hacker News thread URL or item id. Use it directly only when the user specifically asks for the raw JSON.</li>\n</ul>\n","files":[{"path":"scripts/download_hn_thread.py","sizeBytes":3910,"isText":true},{"path":"scripts/prepare_hn_sentiment_analysis.py","sizeBytes":35845,"isText":true},{"path":"SKILL.md","sizeBytes":3973,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-23T18:55:26.272945Z","sha256":"D19BA11F48D91A48589D99849EB49672BB26F7CCEE602D185CC2B09B40E80507","sizeBytes":13549},"review":null,"source":{"repositoryUrl":"https://github.com/kissgyorgy/coding-agents","path":"skills/hn-sentiment-analysis","license":null,"commit":"ad8dfa8a0deeeb48427682b5bc6bd78cb9b31b75","subtreeSha":"F6D0C0D1B8C574FD14EDFA7D7444205ACDC492A8DDDCB2DE4F124D5670F3A8CA","lastSyncedAt":"2026-09-23T18:54:41.246883Z"},"reviewedAt":"2026-09-23T18:57:30.11367Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/kissgyorgy/coding-agents/tree/master/skills/hn-sentiment-analysis"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install kissgyorgy-coding-agents@llmmart"},{"target":"git","command":"git clone https://github.com/kissgyorgy/coding-agents.git"}]}