#1
·
2026-05-05
·main@HEAD
personalized-podcast
zarazhangrui/personalized-podcast
🛠54 / 100
⚛
→
⚗
→
🧬
🛑
0–29
⚠️
30–49
🛠
50–79
🏭
80–100
▼
54
🛠· 54 / 100
- ✓5 claims passed, no critical failures
- ⚠README may claim a license but no LICENSE file exists
- ◐release_pipeline=1, recently_active=True
- ⚪EN-only or ZH-only README
- ⚪static-only eval; live e2e pending
#2
#3
#4
gh repo clone into ~/.claude/skills/personalized-podcast | any | easy |
Anthropic Claude (Claude Code)
LLM writes the 2-host conversation script
Per-episode cost depends on length (~$0.10 for a 10-min episode)
Fish Audio
TTS — generates voice for each host
Free tier sufficient for personal use; default voices pre-configured
GitHub (for RSS hosting)
Optional — host RSS feed for Apple Podcasts / Spotify
Use GitHub Pages; only needed if you want podcast app delivery
· 8
5 2 1
| +40 | |
| +6 | |
| +5 | |
| 0 | |
| +5 | |
| -2 |
7 / 8
passed claim-001
passed claim-002
passed claim-003
passed claim-004
passed claim-005
failed claim-006
failed claim-007
untested claim-008
input_contract | |
|---|---|
output_contract | |
determinism | |
idempotence | |
no_skill_callouts | |
failure_mode_clarity |
- evidence_completeness='partial' (not portable) → capped at 'usable'
- only 2/3 critical claims covered
archetype: hybrid-skill→core_layer_tested? True→evidence: partial→recommended: usable→final: usable
ceiling 1 · evidence_completeness='partial' (not portable) → capped at 'usable'
| claim-001 | SKILL.md + PROMPT.md 两份核心文档真实存在 | critical | skill-shape | ● passed | |
| claim-002 | 4 个 Python 脚本(bootstrap / publish / speak / utils)真有实现 | critical | pipeline | ● passed | |
| claim-003 | requirements 与 README 描述的依赖匹配 | high | install | ● passed | |
| claim-004 | RSS feed 模板真实存在 | high | rss | ● passed | |
| claim-005 | config.example.yaml 暴露 README 提到的 5 类选项 | high | config-coverage | ● passed | |
| claim-006 | 仓库有 LICENSE | high | licensing | ✕ failed | |
| claim-007 | README 引用的安装路径与实际仓库一致 | high | docs-correctness | ✕ failed | |
| claim-008 | 端到端:能从一句 `/podcast <content>` 拿到 MP3 | critical | end-to-end | ○ untested |
0%
0.00s
0
run-static-checks
2026-05-05
0% — tokens in ? / out ?
run-static-checks
2026-05-05
0% — tokens in ? / out ?
# personalized-podcast — final verdict (2026-05-05) ## Repo - **Name:** zarazhangrui/personalized-podcast · **Stars:** 338 - **Archetype:** hybrid-skill · **Layer:** molecule - **Branch:** main@HEAD · **Last push:** 2026-04-08 (recently active) ## What was evaluated | Claim | Status | Notes | |---|---|---| | 001 SKILL.md + PROMPT.md | passed | 235 + 33 lines | | 002 4 Python scripts | passed | bootstrap / publish / speak / utils — 195–352 lines each | | 003 deps coverage | passed | httpx + pydub + Jinja2 + PyYAML | | 004 RSS feed template | passed | Real Jinja2-templated RSS XML | | 005 config coverage | passed | show_name + tone + hosts + voices + length + RSS publish | | 006 LICENSE | **failed** | HTTP 404 | | 007 install path correctness | **failed** | README clones `-skill` repo; redirects work but README is wrong | | 008 live `/podcast` e2e | untested | needs Fish Audio key + session | ## Real findings 1. **README install typo.** `gh repo clone zarazhangrui/personalized-podcast-skill` should be `personalized-podcast`. GitHub returns HTTP 301 redirect, so it works, but it's a polish gap. Trivial upstream fix. 2. **No LICENSE.** Fourth time across Zara's batch. Worth noting as a maintainer-level habit, not a per-repo defect. 3. **Sensible secret split.** Config (show settings) vs `.env` (API keys) is split correctly. `bootstrap.py` (352 lines) is the most substantial script — it does real first-run setup work. 4. **`/podcast` slash command + `/eavesdrop` self-reflection use case.** The "feed your own writing in and have hosts comment" angle is creative but warrants a privacy disclaimer the README is missing. ## Path forward 1. Add LICENSE. 2. Fix README clone path (`personalized-podcast-skill` → `personalized-podcast`). 3. Add a privacy note about Anthropic + Fish Audio seeing user content. 4. Run a live `/podcast` test with Fish Audio key; log under `runs/<date>/run-live-e2e/`.