Create a skill from your own source¶
Use the full repository as an Agent Skill when you want an agent to extract, analyze, and write the generated skill. Use the standalone CLI only when you need the local text-extraction engine.
Install the Agent Skill¶
Clone this public downstream into a supported skills directory. For GitHub Copilot CLI:
git clone https://github.com/kivancakdeniz/book-to-copilot-skill.git \
~/.copilot/skills/book-to-skill
Equivalent user-level locations include ~/.agents/skills/book-to-skill for
Copilot CLI or Amp and ~/.claude/skills/book-to-skill for Claude Code. Review
the repository before granting shell and file access.
Convert a source¶
Call the installed skill with one or more paths and an optional output slug:
Examples:
# One PDF
/book-to-skill ~/books/operating-model.pdf operating-model
# Several sources merged into one skill
/book-to-skill ~/policy/regulation.pdf ~/policy/internal-policy.docx compliance-guide
# Every supported document in a folder
/book-to-skill ~/workspace/runbooks/ operations-runbook
# A glob of related research
/book-to-skill "~/papers/*.pdf" research-methods
The full Agent Skill asks whether the material is technical or text-heavy, selects an extractor, analyzes the structure, and writes the generated skill to a host-compatible skill directory.
Supported inputs¶
| Input | Extraction path |
|---|---|
| PDF, text-heavy | pdftotext, then pypdf or pdfminer.six |
| PDF, technical | Docling for tables and code blocks |
| EPUB | ebooklib, with a standard-library fallback |
| DOCX | python-docx, with ZIP/XML fallback |
| HTML | Beautiful Soup, with standard-library fallback |
| RTF | striprtf, with regex fallback |
| MOBI / AZW / AZW3 | Calibre ebook-convert |
| Markdown, TXT, reStructuredText, AsciiDoc | Built in |
Run the dependency check from the cloned repository:
What gets generated¶
A full book conversion normally produces:
The root SKILL.md carries the mental models and topic index. Supporting files
load only when the request needs them. For the regulated decision examples in
this repository, the six-file template instead separates public method, company
policy, evidence map, output schema, and scenario guidance.
Validate the result¶
Run host compatibility and prompt-injection checks before installing or sharing a generated skill:
python tools/validate_skill.py --lens copilot path/to/skill/SKILL.md
python tools/validate_skill.py --lens claude path/to/skill/SKILL.md
python tools/scan_generated_skill.py path/to/skill
Treat the source as untrusted input. Review generated commands, links, frontmatter, and claims before loading the skill into an agent.
Test whether it helps¶
Use the same case and prompt twice:
- Run the model without the generated skill.
- Install the skill and repeat the same request.
- Define the expected behavior before reading either answer.
- Compare correctness, rule use, evidence, omissions, and unsafe authority.
- Publish the raw answers and scoring method if you make a performance claim.
The 12 examples in this repository include reusable fixtures under
demos/<slug>/evaluation/ and recomputable scorecards under
demos/<slug>/evidence/.
Package for Cowork¶
Create a deterministic Microsoft 365 Copilot Cowork archive from any skill
directory that contains SKILL.md:
For GitHub Copilot or Scout, place the reviewed skill under the host's expected skill directory. The 12 examples also show the GitHub harness and classic setup formats for Copilot Studio.
Standalone extractor¶
If you need extraction without agent-driven skill generation, install the local CLI from the clone:
python3 -m venv .venv
.venv/bin/pip install -e '.[pdf,epub,docx,rtf]'
.venv/bin/book-to-skill ~/books/source.pdf --mode text
The CLI extracts text and metadata. It does not register the /book-to-skill
Agent Skill or write the final skill by itself.
Next¶
Inspect the public examples to see source manifests, control and skill answers, scorecards, and ready-to-use Copilot packages.