feat: add epub skill v2 #28
No reviewers
Labels
No labels
community-feedback
enhancement
skill-upgrade
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
magnus/agent-skills!28
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/epub-skill"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Complete EPUB creation, editing, validation, and knowledge extraction skill for the Agent Skills open format. Built from EPUB 3.3 spec research, real-world testing on a 2.1MB commercial Apress EPUB, and Apple Books compatibility verification on macOS 26.
Files
Feature Highlights
EPUB_LLM_URL+EPUB_LLM_KEYand enable LLM features automatically; fall back to heuristic mode silentlyQA Gate (46/46 tests passing)
🤖 Jasper (automated review)
Summary
This PR adds the EPUB skill v2 with 10 CLI scripts and 8 reference files. Comprehensive documentation, good test coverage, and well-structured scripts. A few issues to address before merging:
Findings
1. 🟡
--toc-visibleis a no-op flag (epub-scaffold:255)With
action='store_true'anddefault=True,--toc-visiblecan never produce a different outcome than the default. The actual logic istoc_visible = not args.toc_hidden, so only--toc-hiddenhas effect. Either remove--toc-visibleor change toaction='store_false'with appropriatedest.2. 🟡 TOC parsing misses
Sectionobjects (epub-info:146)isinstance(item, tuple)targets an older EbookLib API. ModernSectionobjects fall through both branches — the tuple check and the Link check (hasattr(item, 'href')) — silently dropping hierarchical TOC structure. Add a branch for iterable objects with.titlebut no.href.3. 🟡
atoms_writtenreported when no output file (epub-extract-knowledge:415)When
--format atomsis used without--output, atoms go to stdout butsummary['atoms_written']is still set tolen(atoms). Consider a separate counter likeatoms_emittedfor the stdout path.Positive highlights
--json,--dry-run,--help, errors to stderr)