{"id":50779585,"url":"https://github.com/albertnahas/audible-second-brain","last_synced_at":"2026-06-12T02:03:54.713Z","repository":{"id":354233148,"uuid":"1222746434","full_name":"albertnahas/audible-second-brain","owner":"albertnahas","description":"Personal Audible library second-brain. Triage your library + wishlist with an evidence-based scorer, an interactive dashboard, and a heuristic rubric that calibrates to your own completion patterns over time. A Claude Code plugin.","archived":false,"fork":false,"pushed_at":"2026-04-27T18:26:23.000Z","size":77,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-27T19:10:50.379Z","etag":null,"topics":["audible","audiobooks","claude-code","claude-code-plugin","knowledge-management","personal-productivity","second-brain","triage"],"latest_commit_sha":null,"homepage":"https://github.com/albertnahas/audible-second-brain","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/albertnahas.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-27T17:05:14.000Z","updated_at":"2026-04-27T18:26:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/albertnahas/audible-second-brain","commit_stats":null,"previous_names":["albertnahas/audible-second-brain"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/albertnahas/audible-second-brain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertnahas%2Faudible-second-brain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertnahas%2Faudible-second-brain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertnahas%2Faudible-second-brain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertnahas%2Faudible-second-brain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/albertnahas","download_url":"https://codeload.github.com/albertnahas/audible-second-brain/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertnahas%2Faudible-second-brain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34225364,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audible","audiobooks","claude-code","claude-code-plugin","knowledge-management","personal-productivity","second-brain","triage"],"created_at":"2026-06-12T02:03:53.818Z","updated_at":"2026-06-12T02:03:54.702Z","avatar_url":"https://github.com/albertnahas.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Audible Second Brain\n\n\u003cimg width=\"1512\" height=\"788\" alt=\"image\" src=\"https://github.com/user-attachments/assets/ea467a6b-ed14-44dc-bcfb-4292edd8d254\" /\u003e\n\n\nA Claude Code plugin that turns your Audible library into a working second brain: an evidence-based scorer, an interactive triage dashboard, and a heuristic rubric that calibrates to *your own* completion patterns over time.\n\nThis is **promptware** — most of the value is in the prompts (skills) and the heuristic rubric. The plugin scaffolds a tiny Python scorer and a vanilla-JS dashboard into your workspace, then orchestrates everything via natural language inside Claude Code.\n\n## What it does\n\n| Skill | What it does | When you'd use it |\n|---|---|---|\n| `bootstrap` | Installs `audible-cli`, walks OTP login, scaffolds scorer + dashboard from generic templates | First time, or in a fresh workspace |\n| `sync` | Re-exports library + wishlist, classifies new books, regenerates scored data, surfaces deltas | After buying / finishing books, or weekly |\n| `classify` | Routes each book into a topic cluster using Claude Haiku via the headless CLI; caches results by ASIN | After bootstrap, after editing the cluster taxonomy, or to fix miscategorizations |\n| `recommend` | Proposes new candidates aligned with your rubric | \"What should I read next?\" |\n| `calibrate` | Re-derives HIGH_TRUST authors, anti-patterns, length cliffs, cluster weights from your own completion data | Once you have ≥ 20 finished books, or after a year of new data |\n| `triage` | Walks you through PASS / LATER / KEEP decisions, persists to dashboard + audit log | \"Help me clean up my list\" |\n\nA SessionStart hook surfaces a one-line freshness reminder when your snapshot is \u003e 14 days old or when you've crossed the calibration threshold.\n\n## Install\n\n```bash\n# In Claude Code:\n/plugin marketplace add albertnahas/audible-second-brain\n/plugin install audible-second-brain@albertnahas/audible-second-brain\n```\n\nThen in a fresh directory:\n\n```\n\u003e /audible-second-brain:bootstrap\n```\n\nThe skill takes it from there.\n\n## How the rubric works\n\nEvery owned and wished book is scored on four axes:\n\n1. **Author trust** — books from authors you reliably finish get a positive score; authors whose long-form works you've never opened get a negative score.\n2. **Cluster fit** — books are routed to a topic cluster by Claude Haiku (via the headless `claude` CLI), based on title + subtitle + author + Audible genres read together. Each cluster has a weight reflecting how well that topic lands for you. Falls back to a conservative regex if no LLM classification exists yet.\n3. **Length fit** — your personal \"abandon cliff\" (the runtime above which completion rates collapse) sets a soft penalty on long books unless they're in a high-affinity cluster.\n4. **Anti-patterns** — formats or publishers where you have a track record of buying-but-not-finishing get a penalty (e.g., publisher series you've collected but never opened).\n\nEach book then gets a category:\n\n- Library items → **PASS** / **LATER** / **KEEP**\n- Wishlist items → **CUT** / **MAYBE** / **KEEP**\n\nThe starter rubric ships with generic clusters that cover common non-fiction territory and empty author/anti-pattern lists. The **`calibrate`** skill replaces those defaults with values derived from your own data:\n\n- Trusted authors → those with ≥ 2 finished books and a completion ratio ≥ 0.6\n- Anti-patterns → formats or publishers where you own ≥ 3 books and finished 0\n- Cluster weights → re-balanced so the topics you actually finish get bonus, the ones you don't get neutral\n- Length cliff → derived from your per-runtime-band completion ratios\n\nThis means the scorer becomes more accurate over time without you having to think about it.\n\n## Repository layout\n\n```\naudible-second-brain/\n├── .claude-plugin/\n│   └── plugin.json\n├── skills/\n│   ├── bootstrap/SKILL.md\n│   ├── sync/SKILL.md\n│   ├── classify/SKILL.md\n│   ├── recommend/SKILL.md\n│   ├── calibrate/SKILL.md\n│   └── triage/SKILL.md\n├── hooks/\n│   └── hooks.json\n├── scripts/\n│   ├── check-freshness.sh\n│   └── check-freshness.py\n├── bin/\n│   └── audible-sync-cli       # cron-friendly headless sync\n├── templates/\n│   ├── _score.starter.py\n│   ├── _classify.starter.py\n│   ├── preferences.starter.md\n│   ├── CLAUDE.template.md\n│   ├── .gitignore.template\n│   ├── serve.sh\n│   ├── dashboard/\n│   │   ├── dashboard.html\n│   │   └── dashboard.js\n│   └── scripts/\n│       └── regenerate-md.py\n├── docs/\n│   ├── architecture.md\n│   └── design-decisions.md\n├── README.md · LICENSE · CHANGELOG.md · CONTRIBUTING.md · .gitignore\n```\n\n## Privacy\n\n- Audible auth is stored only in `~/.audible/` (managed by `audible-cli`, never read by this plugin).\n- Library + wishlist data stays in your workspace as plain JSON / CSV / MD.\n- The plugin makes no outbound network calls beyond what `audible-cli` does to refresh exports.\n\n## Requirements\n\n- Python 3.9+\n- [`audible-cli`](https://github.com/mkb79/audible-cli) ≥ 0.3 (the bootstrap skill installs it via `pipx`)\n- Claude Code 2.x or newer (the `classify` skill uses the bundled `claude` CLI in headless mode)\n\n## Headless / cron usage\n\n```bash\n# Refresh once a week, Monday 9am\n0 9 * * 1 /path/to/your/workspace \u0026\u0026 /path/to/plugin/bin/audible-sync-cli\n```\n\nThe CLI wrapper handles re-export, re-score, regenerate-md, and snapshot bookkeeping without needing a Claude session.\n\n## Contributing\n\nSee [`CONTRIBUTING.md`](CONTRIBUTING.md). Issues and PRs welcome — especially calibration heuristics and dashboard refinements.\n\n## License\n\nMIT — see [`LICENSE`](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbertnahas%2Faudible-second-brain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falbertnahas%2Faudible-second-brain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbertnahas%2Faudible-second-brain/lists"}