@booklib/skills 1.3.1 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +2 -2
- package/README.md +35 -33
- package/bin/skills.js +1 -1
- package/package.json +11 -4
- /package/{animation-at-work → skills/animation-at-work}/SKILL.md +0 -0
- /package/{animation-at-work → skills/animation-at-work}/assets/example_asset.txt +0 -0
- /package/{animation-at-work → skills/animation-at-work}/evals/evals.json +0 -0
- /package/{animation-at-work → skills/animation-at-work}/examples/after.md +0 -0
- /package/{animation-at-work → skills/animation-at-work}/examples/before.md +0 -0
- /package/{animation-at-work → skills/animation-at-work}/references/api_reference.md +0 -0
- /package/{animation-at-work → skills/animation-at-work}/references/review-checklist.md +0 -0
- /package/{animation-at-work → skills/animation-at-work}/scripts/audit_animations.py +0 -0
- /package/{animation-at-work → skills/animation-at-work}/scripts/example.py +0 -0
- /package/{clean-code-reviewer → skills/clean-code-reviewer}/SKILL.md +0 -0
- /package/{clean-code-reviewer → skills/clean-code-reviewer}/evals/evals.json +0 -0
- /package/{clean-code-reviewer → skills/clean-code-reviewer}/examples/after.md +0 -0
- /package/{clean-code-reviewer → skills/clean-code-reviewer}/examples/before.md +0 -0
- /package/{clean-code-reviewer → skills/clean-code-reviewer}/references/api_reference.md +0 -0
- /package/{clean-code-reviewer → skills/clean-code-reviewer}/references/practices-catalog.md +0 -0
- /package/{clean-code-reviewer → skills/clean-code-reviewer}/references/review-checklist.md +0 -0
- /package/{clean-code-reviewer → skills/clean-code-reviewer}/scripts/pre-review.py +0 -0
- /package/{data-intensive-patterns → skills/data-intensive-patterns}/SKILL.md +0 -0
- /package/{data-intensive-patterns → skills/data-intensive-patterns}/assets/example_asset.txt +0 -0
- /package/{data-intensive-patterns → skills/data-intensive-patterns}/evals/evals.json +0 -0
- /package/{data-intensive-patterns → skills/data-intensive-patterns}/examples/after.md +0 -0
- /package/{data-intensive-patterns → skills/data-intensive-patterns}/examples/before.md +0 -0
- /package/{data-intensive-patterns → skills/data-intensive-patterns}/references/api_reference.md +0 -0
- /package/{data-intensive-patterns → skills/data-intensive-patterns}/references/patterns-catalog.md +0 -0
- /package/{data-intensive-patterns → skills/data-intensive-patterns}/references/review-checklist.md +0 -0
- /package/{data-intensive-patterns → skills/data-intensive-patterns}/scripts/adr.py +0 -0
- /package/{data-intensive-patterns → skills/data-intensive-patterns}/scripts/example.py +0 -0
- /package/{data-pipelines → skills/data-pipelines}/SKILL.md +0 -0
- /package/{data-pipelines → skills/data-pipelines}/assets/example_asset.txt +0 -0
- /package/{data-pipelines → skills/data-pipelines}/evals/evals.json +0 -0
- /package/{data-pipelines → skills/data-pipelines}/examples/after.md +0 -0
- /package/{data-pipelines → skills/data-pipelines}/examples/before.md +0 -0
- /package/{data-pipelines → skills/data-pipelines}/references/api_reference.md +0 -0
- /package/{data-pipelines → skills/data-pipelines}/references/review-checklist.md +0 -0
- /package/{data-pipelines → skills/data-pipelines}/scripts/example.py +0 -0
- /package/{data-pipelines → skills/data-pipelines}/scripts/new_pipeline.py +0 -0
- /package/{design-patterns → skills/design-patterns}/SKILL.md +0 -0
- /package/{design-patterns → skills/design-patterns}/assets/example_asset.txt +0 -0
- /package/{design-patterns → skills/design-patterns}/evals/evals.json +0 -0
- /package/{design-patterns → skills/design-patterns}/examples/after.md +0 -0
- /package/{design-patterns → skills/design-patterns}/examples/before.md +0 -0
- /package/{design-patterns → skills/design-patterns}/references/api_reference.md +0 -0
- /package/{design-patterns → skills/design-patterns}/references/patterns-catalog.md +0 -0
- /package/{design-patterns → skills/design-patterns}/references/review-checklist.md +0 -0
- /package/{design-patterns → skills/design-patterns}/scripts/example.py +0 -0
- /package/{design-patterns → skills/design-patterns}/scripts/scaffold.py +0 -0
- /package/{domain-driven-design → skills/domain-driven-design}/SKILL.md +0 -0
- /package/{domain-driven-design → skills/domain-driven-design}/assets/example_asset.txt +0 -0
- /package/{domain-driven-design → skills/domain-driven-design}/evals/evals.json +0 -0
- /package/{domain-driven-design → skills/domain-driven-design}/examples/after.md +0 -0
- /package/{domain-driven-design → skills/domain-driven-design}/examples/before.md +0 -0
- /package/{domain-driven-design → skills/domain-driven-design}/references/api_reference.md +0 -0
- /package/{domain-driven-design → skills/domain-driven-design}/references/patterns-catalog.md +0 -0
- /package/{domain-driven-design → skills/domain-driven-design}/references/review-checklist.md +0 -0
- /package/{domain-driven-design → skills/domain-driven-design}/scripts/example.py +0 -0
- /package/{domain-driven-design → skills/domain-driven-design}/scripts/scaffold.py +0 -0
- /package/{effective-java → skills/effective-java}/SKILL.md +0 -0
- /package/{effective-java → skills/effective-java}/assets/example_asset.txt +0 -0
- /package/{effective-java → skills/effective-java}/evals/evals.json +0 -0
- /package/{effective-java → skills/effective-java}/examples/after.md +0 -0
- /package/{effective-java → skills/effective-java}/examples/before.md +0 -0
- /package/{effective-java → skills/effective-java}/references/api_reference.md +0 -0
- /package/{effective-java → skills/effective-java}/references/items-catalog.md +0 -0
- /package/{effective-java → skills/effective-java}/references/review-checklist.md +0 -0
- /package/{effective-java → skills/effective-java}/scripts/checkstyle_setup.py +0 -0
- /package/{effective-java → skills/effective-java}/scripts/example.py +0 -0
- /package/{effective-kotlin → skills/effective-kotlin}/SKILL.md +0 -0
- /package/{effective-kotlin → skills/effective-kotlin}/assets/example_asset.txt +0 -0
- /package/{effective-kotlin → skills/effective-kotlin}/evals/evals.json +0 -0
- /package/{effective-kotlin → skills/effective-kotlin}/examples/after.md +0 -0
- /package/{effective-kotlin → skills/effective-kotlin}/examples/before.md +0 -0
- /package/{effective-kotlin → skills/effective-kotlin}/references/api_reference.md +0 -0
- /package/{effective-kotlin → skills/effective-kotlin}/references/practices-catalog.md +0 -0
- /package/{effective-kotlin → skills/effective-kotlin}/references/review-checklist.md +0 -0
- /package/{effective-kotlin → skills/effective-kotlin}/scripts/example.py +0 -0
- /package/{effective-python → skills/effective-python}/SKILL.md +0 -0
- /package/{effective-python → skills/effective-python}/evals/evals.json +0 -0
- /package/{effective-python → skills/effective-python}/examples/after.md +0 -0
- /package/{effective-python → skills/effective-python}/examples/before.md +0 -0
- /package/{effective-python → skills/effective-python}/ref-01-pythonic-thinking.md +0 -0
- /package/{effective-python → skills/effective-python}/ref-02-lists-and-dicts.md +0 -0
- /package/{effective-python → skills/effective-python}/ref-03-functions.md +0 -0
- /package/{effective-python → skills/effective-python}/ref-04-comprehensions-generators.md +0 -0
- /package/{effective-python → skills/effective-python}/ref-05-classes-interfaces.md +0 -0
- /package/{effective-python → skills/effective-python}/ref-06-metaclasses-attributes.md +0 -0
- /package/{effective-python → skills/effective-python}/ref-07-concurrency.md +0 -0
- /package/{effective-python → skills/effective-python}/ref-08-robustness-performance.md +0 -0
- /package/{effective-python → skills/effective-python}/ref-09-testing-debugging.md +0 -0
- /package/{effective-python → skills/effective-python}/ref-10-collaboration.md +0 -0
- /package/{effective-python → skills/effective-python}/references/api_reference.md +0 -0
- /package/{effective-python → skills/effective-python}/references/practices-catalog.md +0 -0
- /package/{effective-python → skills/effective-python}/references/review-checklist.md +0 -0
- /package/{effective-python → skills/effective-python}/scripts/lint.py +0 -0
- /package/{kotlin-in-action → skills/kotlin-in-action}/SKILL.md +0 -0
- /package/{kotlin-in-action → skills/kotlin-in-action}/assets/example_asset.txt +0 -0
- /package/{kotlin-in-action → skills/kotlin-in-action}/evals/evals.json +0 -0
- /package/{kotlin-in-action → skills/kotlin-in-action}/examples/after.md +0 -0
- /package/{kotlin-in-action → skills/kotlin-in-action}/examples/before.md +0 -0
- /package/{kotlin-in-action → skills/kotlin-in-action}/references/api_reference.md +0 -0
- /package/{kotlin-in-action → skills/kotlin-in-action}/references/practices-catalog.md +0 -0
- /package/{kotlin-in-action → skills/kotlin-in-action}/references/review-checklist.md +0 -0
- /package/{kotlin-in-action → skills/kotlin-in-action}/scripts/example.py +0 -0
- /package/{kotlin-in-action → skills/kotlin-in-action}/scripts/setup_detekt.py +0 -0
- /package/{lean-startup → skills/lean-startup}/SKILL.md +0 -0
- /package/{lean-startup → skills/lean-startup}/assets/example_asset.txt +0 -0
- /package/{lean-startup → skills/lean-startup}/evals/evals.json +0 -0
- /package/{lean-startup → skills/lean-startup}/examples/after.md +0 -0
- /package/{lean-startup → skills/lean-startup}/examples/before.md +0 -0
- /package/{lean-startup → skills/lean-startup}/references/api_reference.md +0 -0
- /package/{lean-startup → skills/lean-startup}/references/review-checklist.md +0 -0
- /package/{lean-startup → skills/lean-startup}/scripts/example.py +0 -0
- /package/{lean-startup → skills/lean-startup}/scripts/new_experiment.py +0 -0
- /package/{microservices-patterns → skills/microservices-patterns}/SKILL.md +0 -0
- /package/{microservices-patterns → skills/microservices-patterns}/evals/evals.json +0 -0
- /package/{microservices-patterns → skills/microservices-patterns}/examples/after.md +0 -0
- /package/{microservices-patterns → skills/microservices-patterns}/examples/before.md +0 -0
- /package/{microservices-patterns → skills/microservices-patterns}/references/patterns-catalog.md +0 -0
- /package/{microservices-patterns → skills/microservices-patterns}/references/review-checklist.md +0 -0
- /package/{microservices-patterns → skills/microservices-patterns}/scripts/new_service.py +0 -0
- /package/{refactoring-ui → skills/refactoring-ui}/SKILL.md +0 -0
- /package/{refactoring-ui → skills/refactoring-ui}/assets/example_asset.txt +0 -0
- /package/{refactoring-ui → skills/refactoring-ui}/evals/evals.json +0 -0
- /package/{refactoring-ui → skills/refactoring-ui}/examples/after.md +0 -0
- /package/{refactoring-ui → skills/refactoring-ui}/examples/before.md +0 -0
- /package/{refactoring-ui → skills/refactoring-ui}/references/api_reference.md +0 -0
- /package/{refactoring-ui → skills/refactoring-ui}/references/review-checklist.md +0 -0
- /package/{refactoring-ui → skills/refactoring-ui}/scripts/audit_css.py +0 -0
- /package/{refactoring-ui → skills/refactoring-ui}/scripts/example.py +0 -0
- /package/{skill-router → skills/skill-router}/SKILL.md +0 -0
- /package/{skill-router → skills/skill-router}/evals/evals.json +0 -0
- /package/{skill-router → skills/skill-router}/examples/after.md +0 -0
- /package/{skill-router → skills/skill-router}/examples/before.md +0 -0
- /package/{skill-router → skills/skill-router}/references/api_reference.md +0 -0
- /package/{skill-router → skills/skill-router}/references/routing-heuristics.md +0 -0
- /package/{skill-router → skills/skill-router}/references/skill-catalog.md +0 -0
- /package/{skill-router → skills/skill-router}/scripts/route.py +0 -0
- /package/{storytelling-with-data → skills/storytelling-with-data}/SKILL.md +0 -0
- /package/{storytelling-with-data → skills/storytelling-with-data}/assets/example_asset.txt +0 -0
- /package/{storytelling-with-data → skills/storytelling-with-data}/evals/evals.json +0 -0
- /package/{storytelling-with-data → skills/storytelling-with-data}/examples/after.md +0 -0
- /package/{storytelling-with-data → skills/storytelling-with-data}/examples/before.md +0 -0
- /package/{storytelling-with-data → skills/storytelling-with-data}/references/api_reference.md +0 -0
- /package/{storytelling-with-data → skills/storytelling-with-data}/references/review-checklist.md +0 -0
- /package/{storytelling-with-data → skills/storytelling-with-data}/scripts/chart_review.py +0 -0
- /package/{storytelling-with-data → skills/storytelling-with-data}/scripts/example.py +0 -0
- /package/{system-design-interview → skills/system-design-interview}/SKILL.md +0 -0
- /package/{system-design-interview → skills/system-design-interview}/assets/example_asset.txt +0 -0
- /package/{system-design-interview → skills/system-design-interview}/evals/evals.json +0 -0
- /package/{system-design-interview → skills/system-design-interview}/examples/after.md +0 -0
- /package/{system-design-interview → skills/system-design-interview}/examples/before.md +0 -0
- /package/{system-design-interview → skills/system-design-interview}/references/api_reference.md +0 -0
- /package/{system-design-interview → skills/system-design-interview}/references/review-checklist.md +0 -0
- /package/{system-design-interview → skills/system-design-interview}/scripts/example.py +0 -0
- /package/{system-design-interview → skills/system-design-interview}/scripts/new_design.py +0 -0
- /package/{using-asyncio-python → skills/using-asyncio-python}/SKILL.md +0 -0
- /package/{using-asyncio-python → skills/using-asyncio-python}/assets/example_asset.txt +0 -0
- /package/{using-asyncio-python → skills/using-asyncio-python}/evals/evals.json +0 -0
- /package/{using-asyncio-python → skills/using-asyncio-python}/examples/after.md +0 -0
- /package/{using-asyncio-python → skills/using-asyncio-python}/examples/before.md +0 -0
- /package/{using-asyncio-python → skills/using-asyncio-python}/references/api_reference.md +0 -0
- /package/{using-asyncio-python → skills/using-asyncio-python}/references/review-checklist.md +0 -0
- /package/{using-asyncio-python → skills/using-asyncio-python}/scripts/check_blocking.py +0 -0
- /package/{using-asyncio-python → skills/using-asyncio-python}/scripts/example.py +0 -0
- /package/{web-scraping-python → skills/web-scraping-python}/SKILL.md +0 -0
- /package/{web-scraping-python → skills/web-scraping-python}/assets/example_asset.txt +0 -0
- /package/{web-scraping-python → skills/web-scraping-python}/evals/evals.json +0 -0
- /package/{web-scraping-python → skills/web-scraping-python}/examples/after.md +0 -0
- /package/{web-scraping-python → skills/web-scraping-python}/examples/before.md +0 -0
- /package/{web-scraping-python → skills/web-scraping-python}/references/api_reference.md +0 -0
- /package/{web-scraping-python → skills/web-scraping-python}/references/review-checklist.md +0 -0
- /package/{web-scraping-python → skills/web-scraping-python}/scripts/example.py +0 -0
- /package/{web-scraping-python → skills/web-scraping-python}/scripts/new_scraper.py +0 -0
package/CONTRIBUTING.md
CHANGED
|
@@ -14,7 +14,7 @@ A skill is worth adding when the source book:
|
|
|
14
14
|
### 1. Create the folder
|
|
15
15
|
|
|
16
16
|
```
|
|
17
|
-
skill-name/
|
|
17
|
+
skills/skill-name/
|
|
18
18
|
├── SKILL.md # Required
|
|
19
19
|
├── examples/
|
|
20
20
|
│ ├── before.md # Code or artifact before applying the skill
|
|
@@ -100,7 +100,7 @@ Aim for 3–5 evals per skill covering:
|
|
|
100
100
|
```bash
|
|
101
101
|
git checkout -b skill/book-name
|
|
102
102
|
# add your skill folder
|
|
103
|
-
git add skill-name/
|
|
103
|
+
git add skills/skill-name/
|
|
104
104
|
git commit -m "feat: add skill-name skill"
|
|
105
105
|
gh pr create --title "feat: add skill-name" --body "..."
|
|
106
106
|
```
|
package/README.md
CHANGED
|
@@ -10,18 +10,20 @@ Each skill is a self-contained folder with a `SKILL.md` file containing instruct
|
|
|
10
10
|
skills/
|
|
11
11
|
├── README.md
|
|
12
12
|
├── LICENSE
|
|
13
|
-
├──
|
|
14
|
-
│ ├──
|
|
15
|
-
│
|
|
16
|
-
│
|
|
17
|
-
|
|
18
|
-
│ ├──
|
|
19
|
-
│ ├──
|
|
20
|
-
│ ├──
|
|
21
|
-
│ ├──
|
|
22
|
-
│
|
|
23
|
-
│
|
|
24
|
-
│
|
|
13
|
+
├── skills/
|
|
14
|
+
│ ├── clean-code-reviewer/ # Code review using Clean Code principles
|
|
15
|
+
│ │ ├── SKILL.md
|
|
16
|
+
│ │ └── evals/
|
|
17
|
+
│ │ └── evals.json
|
|
18
|
+
│ ├── [future-skill]/
|
|
19
|
+
│ │ ├── SKILL.md
|
|
20
|
+
│ │ ├── scripts/ # Executable code (Python/Bash)
|
|
21
|
+
│ │ ├── references/ # Documentation loaded into context as needed
|
|
22
|
+
│ │ ├── assets/ # Templates, icons, fonts
|
|
23
|
+
│ │ └── evals/ # Test cases for the skill
|
|
24
|
+
│ │ ├── evals.json
|
|
25
|
+
│ │ └── files/ # Input files for evals
|
|
26
|
+
│ └── ...
|
|
25
27
|
└── ...
|
|
26
28
|
```
|
|
27
29
|
|
|
@@ -75,13 +77,13 @@ Skills are installed to `.claude/skills/` in your project (or `~/.claude/skills/
|
|
|
75
77
|
|
|
76
78
|
```bash
|
|
77
79
|
# Clone and copy a skill directly
|
|
78
|
-
git clone https://github.com/
|
|
79
|
-
cp -r skills/effective-kotlin /path/to/project/.claude/skills/
|
|
80
|
+
git clone https://github.com/booklib-ai/skills.git
|
|
81
|
+
cp -r skills/skills/effective-kotlin /path/to/project/.claude/skills/
|
|
80
82
|
```
|
|
81
83
|
|
|
82
84
|
## Automatic Skill Routing
|
|
83
85
|
|
|
84
|
-
You don't need to know which skill to apply — the **[skill-router](./skill-router/)** meta-skill does it for you.
|
|
86
|
+
You don't need to know which skill to apply — the **[skill-router](./skills/skill-router/)** meta-skill does it for you.
|
|
85
87
|
|
|
86
88
|
When an AI agent receives a task, it can invoke `skill-router` first to identify the 1–2 most relevant skills based on the file, language, domain, and work type. The router then returns a ranked recommendation with rationale, so the right expertise is applied automatically.
|
|
87
89
|
|
|
@@ -100,24 +102,24 @@ This means skills compose: `skill-router` acts as an orchestrator that picks the
|
|
|
100
102
|
|
|
101
103
|
| Skill | Description |
|
|
102
104
|
|-------|-------------|
|
|
103
|
-
| [animation-at-work](./animation-at-work/) | Apply web animation principles from Rachel Nabors' *Animation at Work* — human perception of motion, 12 principles of animation, and performance |
|
|
104
|
-
| [clean-code-reviewer](./clean-code-reviewer/) | Reviews code against Robert C. Martin's *Clean Code* principles with heuristic codes (C1–C5, G1–G36, N1–N7, T1–T9) |
|
|
105
|
-
| [data-intensive-patterns](./data-intensive-patterns/) | Patterns for reliable, scalable, and maintainable systems from Martin Kleppmann's *Designing Data-Intensive Applications* — storage engines, replication, partitioning, and transactions |
|
|
106
|
-
| [data-pipelines](./data-pipelines/) | Data pipeline practices from James Densmore's *Data Pipelines Pocket Reference* — ingestion, streaming, transformation, and orchestration |
|
|
107
|
-
| [design-patterns](./design-patterns/) | Apply and review GoF design patterns from *Head First Design Patterns* — creational, structural, and behavioral patterns |
|
|
108
|
-
| [domain-driven-design](./domain-driven-design/) | Design and review software using patterns from Eric Evans' *Domain-Driven Design* — tactical and strategic patterns, and Ubiquitous Language |
|
|
109
|
-
| [effective-python](./effective-python/) | Python best practices from Brett Slatkin's *Effective Python* (2nd Edition) — Pythonic thinking, functions, classes, concurrency, and testing |
|
|
110
|
-
| [effective-java](./effective-java/) | Java best practices from Joshua Bloch's *Effective Java* (3rd Edition) — object creation, generics, enums, lambdas, and concurrency |
|
|
111
|
-
| [effective-kotlin](./effective-kotlin/) | Best practices from Marcin Moskała's *Effective Kotlin* (2nd Ed) — safety, readability, reusability, and abstraction |
|
|
112
|
-
| [kotlin-in-action](./kotlin-in-action/) | Practices from *Kotlin in Action* (2nd Ed) — functions, classes, lambdas, nullability, and coroutines |
|
|
113
|
-
| [lean-startup](./lean-startup/) | Practices from Eric Ries' *The Lean Startup* — MVP testing, validated learning, Build-Measure-Learn loop, and pivots |
|
|
114
|
-
| [microservices-patterns](./microservices-patterns/) | Expert guidance on microservices patterns from Chris Richardson's *Microservices Patterns* — decomposition, sagas, API gateways, event sourcing, CQRS, and service mesh |
|
|
115
|
-
| [refactoring-ui](./refactoring-ui/) | UI design principles from *Refactoring UI* by Adam Wathan & Steve Schoger — visual hierarchy, layout, typography, and color |
|
|
116
|
-
| [skill-router](./skill-router/) | **Meta-skill.** Automatically selects the 1–2 most relevant skills for a given file, PR, or task — routes by language, domain, and work type with conflict resolution. Use this when the right skill isn't obvious, or let the AI invoke it automatically before applying any skill |
|
|
117
|
-
| [storytelling-with-data](./storytelling-with-data/) | Data visualization and storytelling from Cole Nussbaumer Knaflic's *Storytelling with Data* — effective visuals, decluttering, and narrative structure |
|
|
118
|
-
| [system-design-interview](./system-design-interview/) | System design principles from Alex Xu's *System Design Interview* — scaling, estimation, and real-world system designs |
|
|
119
|
-
| [using-asyncio-python](./using-asyncio-python/) | Asyncio practices from Caleb Hattingh's *Using Asyncio in Python* — coroutines, event loop, tasks, and signal handling |
|
|
120
|
-
| [web-scraping-python](./web-scraping-python/) | Web scraping practices from Ryan Mitchell's *Web Scraping with Python* — BeautifulSoup, Scrapy, and data storage |
|
|
105
|
+
| [animation-at-work](./skills/animation-at-work/) | Apply web animation principles from Rachel Nabors' *Animation at Work* — human perception of motion, 12 principles of animation, and performance |
|
|
106
|
+
| [clean-code-reviewer](./skills/clean-code-reviewer/) | Reviews code against Robert C. Martin's *Clean Code* principles with heuristic codes (C1–C5, G1–G36, N1–N7, T1–T9) |
|
|
107
|
+
| [data-intensive-patterns](./skills/data-intensive-patterns/) | Patterns for reliable, scalable, and maintainable systems from Martin Kleppmann's *Designing Data-Intensive Applications* — storage engines, replication, partitioning, and transactions |
|
|
108
|
+
| [data-pipelines](./skills/data-pipelines/) | Data pipeline practices from James Densmore's *Data Pipelines Pocket Reference* — ingestion, streaming, transformation, and orchestration |
|
|
109
|
+
| [design-patterns](./skills/design-patterns/) | Apply and review GoF design patterns from *Head First Design Patterns* — creational, structural, and behavioral patterns |
|
|
110
|
+
| [domain-driven-design](./skills/domain-driven-design/) | Design and review software using patterns from Eric Evans' *Domain-Driven Design* — tactical and strategic patterns, and Ubiquitous Language |
|
|
111
|
+
| [effective-python](./skills/effective-python/) | Python best practices from Brett Slatkin's *Effective Python* (2nd Edition) — Pythonic thinking, functions, classes, concurrency, and testing |
|
|
112
|
+
| [effective-java](./skills/effective-java/) | Java best practices from Joshua Bloch's *Effective Java* (3rd Edition) — object creation, generics, enums, lambdas, and concurrency |
|
|
113
|
+
| [effective-kotlin](./skills/effective-kotlin/) | Best practices from Marcin Moskała's *Effective Kotlin* (2nd Ed) — safety, readability, reusability, and abstraction |
|
|
114
|
+
| [kotlin-in-action](./skills/kotlin-in-action/) | Practices from *Kotlin in Action* (2nd Ed) — functions, classes, lambdas, nullability, and coroutines |
|
|
115
|
+
| [lean-startup](./skills/lean-startup/) | Practices from Eric Ries' *The Lean Startup* — MVP testing, validated learning, Build-Measure-Learn loop, and pivots |
|
|
116
|
+
| [microservices-patterns](./skills/microservices-patterns/) | Expert guidance on microservices patterns from Chris Richardson's *Microservices Patterns* — decomposition, sagas, API gateways, event sourcing, CQRS, and service mesh |
|
|
117
|
+
| [refactoring-ui](./skills/refactoring-ui/) | UI design principles from *Refactoring UI* by Adam Wathan & Steve Schoger — visual hierarchy, layout, typography, and color |
|
|
118
|
+
| [skill-router](./skills/skill-router/) | **Meta-skill.** Automatically selects the 1–2 most relevant skills for a given file, PR, or task — routes by language, domain, and work type with conflict resolution. Use this when the right skill isn't obvious, or let the AI invoke it automatically before applying any skill |
|
|
119
|
+
| [storytelling-with-data](./skills/storytelling-with-data/) | Data visualization and storytelling from Cole Nussbaumer Knaflic's *Storytelling with Data* — effective visuals, decluttering, and narrative structure |
|
|
120
|
+
| [system-design-interview](./skills/system-design-interview/) | System design principles from Alex Xu's *System Design Interview* — scaling, estimation, and real-world system designs |
|
|
121
|
+
| [using-asyncio-python](./skills/using-asyncio-python/) | Asyncio practices from Caleb Hattingh's *Using Asyncio in Python* — coroutines, event loop, tasks, and signal handling |
|
|
122
|
+
| [web-scraping-python](./skills/web-scraping-python/) | Web scraping practices from Ryan Mitchell's *Web Scraping with Python* — BeautifulSoup, Scrapy, and data storage |
|
|
121
123
|
|
|
122
124
|
## License
|
|
123
125
|
|
package/bin/skills.js
CHANGED
|
@@ -7,7 +7,7 @@ const https = require('https');
|
|
|
7
7
|
|
|
8
8
|
const args = process.argv.slice(2);
|
|
9
9
|
const command = args[0];
|
|
10
|
-
const skillsRoot = path.join(__dirname, '..');
|
|
10
|
+
const skillsRoot = path.join(__dirname, '..', 'skills');
|
|
11
11
|
|
|
12
12
|
// ─── ANSI helpers ─────────────────────────────────────────────────────────────
|
|
13
13
|
const c = {
|
package/package.json
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@booklib/skills",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"description": "Book knowledge distilled into structured AI skills for Claude Code and other AI assistants",
|
|
5
5
|
"bin": {
|
|
6
|
-
"skills": "
|
|
6
|
+
"skills": "bin/skills.js"
|
|
7
7
|
},
|
|
8
|
-
"keywords": [
|
|
8
|
+
"keywords": [
|
|
9
|
+
"claude",
|
|
10
|
+
"claude-code",
|
|
11
|
+
"ai",
|
|
12
|
+
"skills",
|
|
13
|
+
"agent-skills"
|
|
14
|
+
],
|
|
9
15
|
"license": "MIT",
|
|
16
|
+
"homepage": "https://github.com/booklib-ai/skills#readme",
|
|
10
17
|
"repository": {
|
|
11
18
|
"type": "git",
|
|
12
|
-
"url": "https://github.com/
|
|
19
|
+
"url": "git+https://github.com/booklib-ai/skills.git"
|
|
13
20
|
},
|
|
14
21
|
"engines": {
|
|
15
22
|
"node": ">=16"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{data-intensive-patterns → skills/data-intensive-patterns}/assets/example_asset.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{data-intensive-patterns → skills/data-intensive-patterns}/references/api_reference.md
RENAMED
|
File without changes
|
/package/{data-intensive-patterns → skills/data-intensive-patterns}/references/patterns-catalog.md
RENAMED
|
File without changes
|
/package/{data-intensive-patterns → skills/data-intensive-patterns}/references/review-checklist.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{domain-driven-design → skills/domain-driven-design}/references/patterns-catalog.md
RENAMED
|
File without changes
|
/package/{domain-driven-design → skills/domain-driven-design}/references/review-checklist.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{microservices-patterns → skills/microservices-patterns}/references/patterns-catalog.md
RENAMED
|
File without changes
|
/package/{microservices-patterns → skills/microservices-patterns}/references/review-checklist.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{storytelling-with-data → skills/storytelling-with-data}/references/api_reference.md
RENAMED
|
File without changes
|
/package/{storytelling-with-data → skills/storytelling-with-data}/references/review-checklist.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{system-design-interview → skills/system-design-interview}/assets/example_asset.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{system-design-interview → skills/system-design-interview}/references/api_reference.md
RENAMED
|
File without changes
|
/package/{system-design-interview → skills/system-design-interview}/references/review-checklist.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{using-asyncio-python → skills/using-asyncio-python}/references/review-checklist.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|