Skip to content
Back to skills

Hn Digest

ASecurity

Generate HN digests in org-mode format. Use when curating Hacker News stories, creating digests, or converting between JSON/org/HTML formats.

  • 16 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 13, 2026
ai-agentspythongobashapi

Works with

  • api

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned September 13, 2026

npx -y skills add thevibeworks/claude-reads-hn --skill hn-digest --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hn Digest?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hn Digest
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thevibeworks-hn-digest/badge)](https://www.skillsdirectory.com/skills/thevibeworks-hn-digest)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hn-digest
description: Generate HN digests in org-mode format. Use when curating Hacker News stories, creating digests, or converting between JSON/org/HTML formats.
---

# HN Digest Skill

Curate Hacker News stories into structured org-mode files with translations.

## Workflow

```
HN API (JSON) → Claude (curate) → .org file → HTML thread
     ↑                              ↓
     └──────── reversible ──────────┘
```

## Quick Start

### Curate new digest
```bash
# 1. Fetch stories (workflow does this)
# 2. Claude reads /tmp/hn/stories.json, writes digest
# 3. Convert to org. In the workflow, DIGEST_DATE and DIGEST_PATH are set
#    and override the JSON date and the path argument (see json2org.py).
python3 scripts/json2org.py /tmp/digest.json digests/2025/12/15-1100.org

# 4. Build the site (all editions; only changed files are written)
python3 scripts/org2html.py digests/*/*/*.org
```

### Validate round-trip
```bash
python3 scripts/org2json.py digests/2025/12/15-1100.org /tmp/check.json
# Should match original
```

## Org Format

```org
#+TITLE: HN Digest 2025-12-15 11:00 UTC
#+DATE: 2025-12-15T11:00:00Z

* Vibe
Roomba dies, Arduino goes corporate...

* Stories

** Robot vacuum Roomba maker files for bankruptcy :robotics:hardware:
:PROPERTIES:
:ID:       46268854
:URL:      https://news.bloomberglaw.com/...
:HN_URL:   https://news.ycombinator.com/item?id=46268854
:POINTS:   191
:COMMENTS: 182
:END:

*** TLDR
iRobot filed Chapter 11 bankruptcy...

*** Take
Roborock ate their lunch...

*** Comments
**** simonjgreen
This is the cost of complacency.

*** i18n                                                           :i18n:
**** zh
***** TLDR
iRobot申请了第11章破产...
```

## Scripts

| Script | Purpose |
|--------|---------|
| `json2org.py` | Convert curated JSON → org file |
| `org2json.py` | Parse org → JSON (validation) |
| `org2html.py` | Render all org files → the static site (index, archive, e/, editions.json) |
| `llms-gen.py` | Generate llms.txt index |

## Properties Reference

Story properties in `:PROPERTIES:` drawer:

| Property | Description |
|----------|-------------|
| `:ID:` | HN story ID (required) |
| `:URL:` | Article URL |
| `:HN_URL:` | HN discussion URL |
| `:POINTS:` | Score at fetch time |
| `:COMMENTS:` | Comment count |
| `:BY:` | Submitter username |
| `:TIME:` | Submission time (ISO) |

## i18n Structure

Translations as subheadings under `*** i18n`:

```org
*** i18n                                                           :i18n:
**** zh
:PROPERTIES:
:LANG: zh
:END:
***** TLDR
Chinese translation...

***** Take
Chinese opinion...

**** ja
:PROPERTIES:
:LANG: ja
:END:
***** TLDR
Japanese translation...
```

Supported languages: zh, ja, ko, es, de

## See Also

- [ARCHITECTURE.md](../../../docs/org-architecture.md) - Full design doc
- [REFERENCE.md](REFERENCE.md) - API reference for scripts

Files in this skill

  • REFERENCE.md2.9 KB
  • SKILL.md2.9 KB
  • scripts/json2org.py5.9 KB
  • scripts/llms-gen.py7.7 KB
  • scripts/md2org.py11.2 KB
  • scripts/org2html.py19.1 KB
  • scripts/org2json.py9 KB
  • scripts/tree-gen.py7.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…