{"adoption": {"forks": 2679, "observed_at": "2026-08-28T04:11:38.682278+00:00", "stars": 25880}, "canonical_url": "https://ross.abutalabs.com/products/book-to-skill", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Turn any technical book PDF into a Claude Code skill — ready to study, reference, and use while you work.", "domain": ["artificial-intelligence", "developer-tools", "education", "pdf", "self-hosted"], "enriched": true, "function": ["pdf", "rag", "llm-inference", "agent-framework", "developer-tools", "cli"], "health_score": 100, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["virgiliojr94/book-to-skill"], "name": "virgiliojr94/book-to-skill", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2026-08-26T00:08:14+00:00", "repo": "virgiliojr94/book-to-skill", "stars": 25880, "tags": ["agent-skills", "claude-code", "pdf-to-markdown", "knowledge-base", "context-engineering", "study-tools", "document-processing", "ai-agents", "retrieval-augmented-generation"], "topics": ["agent-skills", "ai-agents", "context-engineering", "document-processing", "edtech", "knowledge-base", "knowledge-management", "llm", "pdf-to-markdown", "rag", "self-study", "study-tools", "book-to-skill"], "urls": [], "use_cases": ["turn a technical book pdf into a claude code skill", "make an epub book queryable by my ai coding agent", "convert a folder of docs into a knowledge base for copilot cli", "answer questions from a book without dumping it into context", "build a study reference from pdfs for self-study", "create agent skills from documentation collections"], "what_it_is": "A Python CLI tool that converts technical books and document collections (PDF, EPUB, DOCX, MD, HTML, etc.) into agent skills for AI coding assistants like Claude Code, GitHub Copilot CLI, and Amp. It builds a structured, token-efficient knowledge base so agents can answer questions from the source material using far fewer tokens than dumping the full text into context.", "when_to_avoid": ["you need a general-purpose RAG pipeline with your own vector database and API", "you don't use agent-skill-compatible coding assistants", "you need to process non-document media like audio or video"], "when_to_choose": ["you want a book or doc corpus usable inside Claude Code, Copilot CLI, or Amp as an agent skill", "you need token-efficient retrieval from long technical documents", "you want to study or reference books while coding with AI assistance"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/book-to-skill", "repo": "virgiliojr94/book-to-skill", "role": "main", "score": 80}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:38.682278+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:55:58.064724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4dde368db689bf2ffb25774d3ede26cdef8ac407521682eebb309c2f38e81d", "fetched_at": "2026-08-28T04:11:38.682278+00:00", "kind": "readme", "missing": false, "url": "https://github.com/virgiliojr94/book-to-skill"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:38.682278+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:55:58.064724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4dde368db689bf2ffb25774d3ede26cdef8ac407521682eebb309c2f38e81d", "fetched_at": "2026-08-28T04:11:38.682278+00:00", "kind": "readme", "missing": false, "url": "https://github.com/virgiliojr94/book-to-skill"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:55:58.064724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4dde368db689bf2ffb25774d3ede26cdef8ac407521682eebb309c2f38e81d", "fetched_at": "2026-08-28T04:11:38.682278+00:00", "kind": "readme", "missing": false, "url": "https://github.com/virgiliojr94/book-to-skill"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:38.682278+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:38.682278+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:38.682278+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:55:58.064724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4dde368db689bf2ffb25774d3ede26cdef8ac407521682eebb309c2f38e81d", "fetched_at": "2026-08-28T04:11:38.682278+00:00", "kind": "readme", "missing": false, "url": "https://github.com/virgiliojr94/book-to-skill"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:38.682278+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:38.682278+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:55:58.064724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4dde368db689bf2ffb25774d3ede26cdef8ac407521682eebb309c2f38e81d", "fetched_at": "2026-08-28T04:11:38.682278+00:00", "kind": "readme", "missing": false, "url": "https://github.com/virgiliojr94/book-to-skill"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:38.682278+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:38.682278+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:38.682278+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:55:58.064724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4dde368db689bf2ffb25774d3ede26cdef8ac407521682eebb309c2f38e81d", "fetched_at": "2026-08-28T04:11:38.682278+00:00", "kind": "readme", "missing": false, "url": "https://github.com/virgiliojr94/book-to-skill"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:38.682278+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:38.682278+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:55:58.064724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4dde368db689bf2ffb25774d3ede26cdef8ac407521682eebb309c2f38e81d", "fetched_at": "2026-08-28T04:11:38.682278+00:00", "kind": "readme", "missing": false, "url": "https://github.com/virgiliojr94/book-to-skill"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:55:58.064724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4dde368db689bf2ffb25774d3ede26cdef8ac407521682eebb309c2f38e81d", "fetched_at": "2026-08-28T04:11:38.682278+00:00", "kind": "readme", "missing": false, "url": "https://github.com/virgiliojr94/book-to-skill"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:55:58.064724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4dde368db689bf2ffb25774d3ede26cdef8ac407521682eebb309c2f38e81d", "fetched_at": "2026-08-28T04:11:38.682278+00:00", "kind": "readme", "missing": false, "url": "https://github.com/virgiliojr94/book-to-skill"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:55:58.064724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dd4dde368db689bf2ffb25774d3ede26cdef8ac407521682eebb309c2f38e81d", "fetched_at": "2026-08-28T04:11:38.682278+00:00", "kind": "readme", "missing": false, "url": "https://github.com/virgiliojr94/book-to-skill"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 8, "rhythm": 97}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 125, "days_push": 8, "days_rel": 23, "gap_med": 8.0, "n_releases_24m": 5}, "score": 80, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}