@booklib/skills 1.3.2 → 1.5.0
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/AGENTS.md +108 -0
- package/CLAUDE.md +58 -0
- package/CODE_OF_CONDUCT.md +31 -0
- package/CONTRIBUTING.md +13 -0
- package/README.md +69 -45
- package/SECURITY.md +9 -0
- package/assets/logo.svg +36 -0
- package/demo.gif +0 -0
- package/demo.tape +40 -0
- package/docs/index.html +187 -0
- package/package.json +2 -2
- package/skills/effective-typescript/SKILL.md +166 -0
- package/skills/effective-typescript/evals/evals.json +36 -0
- package/skills/effective-typescript/examples/after.md +70 -0
- package/skills/effective-typescript/examples/before.md +47 -0
- package/skills/effective-typescript/references/api_reference.md +118 -0
- package/skills/effective-typescript/references/practices-catalog.md +371 -0
- package/skills/programming-with-rust/SKILL.md +194 -0
- package/skills/programming-with-rust/evals/evals.json +37 -0
- package/skills/programming-with-rust/examples/after.md +107 -0
- package/skills/programming-with-rust/examples/before.md +59 -0
- package/skills/programming-with-rust/references/api_reference.md +152 -0
- package/skills/programming-with-rust/references/practices-catalog.md +335 -0
- package/skills/rust-in-action/SKILL.md +290 -0
- package/skills/rust-in-action/evals/evals.json +38 -0
- package/skills/rust-in-action/examples/after.md +156 -0
- package/skills/rust-in-action/examples/before.md +56 -0
- package/skills/rust-in-action/references/practices-catalog.md +346 -0
- package/skills/rust-in-action/scripts/review.py +147 -0
- package/skills/skill-router/SKILL.md +16 -13
- package/skills/skill-router/references/skill-catalog.md +19 -1
- package/skills/spring-boot-in-action/SKILL.md +312 -0
- package/skills/spring-boot-in-action/evals/evals.json +39 -0
- package/skills/spring-boot-in-action/examples/after.md +185 -0
- package/skills/spring-boot-in-action/examples/before.md +84 -0
- package/skills/spring-boot-in-action/references/practices-catalog.md +403 -0
- package/skills/spring-boot-in-action/scripts/review.py +184 -0
package/AGENTS.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Agent Integration
|
|
2
|
+
|
|
3
|
+
How to install and use booklib-ai/skills with different AI coding assistants.
|
|
4
|
+
|
|
5
|
+
## Claude Code
|
|
6
|
+
|
|
7
|
+
Install all skills globally:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx skills add booklib-ai/skills --all -g
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Install a single skill:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx skills add booklib-ai/skills --skill clean-code-reviewer
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Skills are placed in `~/.claude/skills/` and available in every project. Claude Code picks them up automatically based on the `description` field in each `SKILL.md`.
|
|
20
|
+
|
|
21
|
+
To invoke a skill explicitly, use a slash command:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
/clean-code-reviewer
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Cursor
|
|
28
|
+
|
|
29
|
+
Install skills into your project:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx skills add booklib-ai/skills --all
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Skills are placed in `.claude/skills/` in your project root. Cursor reads these when Agent mode is active.
|
|
36
|
+
|
|
37
|
+
To trigger a skill, reference it by name in your prompt:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
Apply the effective-python skill to refactor this module.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## GitHub Copilot (VS Code)
|
|
44
|
+
|
|
45
|
+
Install skills globally:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npx skills add booklib-ai/skills --all -g
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
In VS Code with Copilot Chat, skills in `~/.claude/skills/` are available as context. Reference them explicitly in chat:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
Using the design-patterns skill, review this class for pattern opportunities.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Windsurf
|
|
58
|
+
|
|
59
|
+
Install skills into your project:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
npx skills add booklib-ai/skills --all
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Skills are placed in `.claude/skills/`. In Windsurf's Cascade mode, you can reference a skill by name in your instructions or let the `skill-router` meta-skill select the right one automatically.
|
|
66
|
+
|
|
67
|
+
## skill-router — automatic routing
|
|
68
|
+
|
|
69
|
+
Instead of choosing a skill manually, install the `skill-router` meta-skill and let it pick:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx skills add booklib-ai/skills --skill skill-router -g
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Then prefix any task with:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
Route this task to the right skill, then apply it: [your request]
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
The router returns a ranked recommendation (primary + optional secondary) and applies it.
|
|
82
|
+
|
|
83
|
+
## Manual installation
|
|
84
|
+
|
|
85
|
+
If your agent isn't listed above, copy skills directly:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Single skill
|
|
89
|
+
cp -r skills/effective-kotlin /path/to/project/.claude/skills/
|
|
90
|
+
|
|
91
|
+
# All skills
|
|
92
|
+
cp -r skills/* /path/to/project/.claude/skills/
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Any agent that reads `.claude/skills/` will pick them up.
|
|
96
|
+
|
|
97
|
+
## Supported agents
|
|
98
|
+
|
|
99
|
+
| Agent | Install path | Auto-trigger | Manual trigger |
|
|
100
|
+
|-------|-------------|--------------|----------------|
|
|
101
|
+
| Claude Code | `~/.claude/skills/` or `.claude/skills/` | Yes | `/skill-name` |
|
|
102
|
+
| Cursor | `.claude/skills/` | Partial | Reference by name |
|
|
103
|
+
| GitHub Copilot | `~/.claude/skills/` | No | Reference by name |
|
|
104
|
+
| Windsurf | `.claude/skills/` | Partial | Reference by name |
|
|
105
|
+
|
|
106
|
+
## Requesting support for a new agent
|
|
107
|
+
|
|
108
|
+
Open an issue titled **"Agent Support: [Agent Name]"** and describe how the agent loads context files. We'll add installation instructions here.
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# booklib-ai/skills
|
|
2
|
+
|
|
3
|
+
22 AI agent skills grounded in canonical programming books. Each skill packages expert practices from a specific book into reusable instructions that Claude and other AI agents can apply to code generation, code review, and design decisions.
|
|
4
|
+
|
|
5
|
+
## Quick Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx skills add booklib-ai/skills --all -g
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Available Skills
|
|
12
|
+
|
|
13
|
+
| Skill | Book |
|
|
14
|
+
|-------|------|
|
|
15
|
+
| `animation-at-work` | Animation at Work — Rachel Nabors |
|
|
16
|
+
| `clean-code-reviewer` | Clean Code — Robert C. Martin |
|
|
17
|
+
| `data-intensive-patterns` | Designing Data-Intensive Applications — Martin Kleppmann |
|
|
18
|
+
| `data-pipelines` | Data Pipelines Pocket Reference — James Densmore |
|
|
19
|
+
| `design-patterns` | Head First Design Patterns |
|
|
20
|
+
| `domain-driven-design` | Domain-Driven Design — Eric Evans |
|
|
21
|
+
| `effective-java` | Effective Java — Joshua Bloch |
|
|
22
|
+
| `effective-kotlin` | Effective Kotlin — Marcin Moskała |
|
|
23
|
+
| `effective-python` | Effective Python — Brett Slatkin |
|
|
24
|
+
| `effective-typescript` | Effective TypeScript — Dan Vanderkam |
|
|
25
|
+
| `kotlin-in-action` | Kotlin in Action |
|
|
26
|
+
| `programming-with-rust` | Programming with Rust — Donis Marshall |
|
|
27
|
+
| `rust-in-action` | Rust in Action — Tim McNamara |
|
|
28
|
+
| `spring-boot-in-action` | Spring Boot in Action — Craig Walls |
|
|
29
|
+
| `lean-startup` | The Lean Startup — Eric Ries |
|
|
30
|
+
| `microservices-patterns` | Microservices Patterns — Chris Richardson |
|
|
31
|
+
| `refactoring-ui` | Refactoring UI — Adam Wathan & Steve Schoger |
|
|
32
|
+
| `skill-router` | Meta-skill — routes to the right skill automatically |
|
|
33
|
+
| `storytelling-with-data` | Storytelling with Data — Cole Nussbaumer Knaflic |
|
|
34
|
+
| `system-design-interview` | System Design Interview — Alex Xu |
|
|
35
|
+
| `using-asyncio-python` | Using Asyncio in Python — Caleb Hattingh |
|
|
36
|
+
| `web-scraping-python` | Web Scraping with Python — Ryan Mitchell |
|
|
37
|
+
|
|
38
|
+
## Project Structure
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
skills/
|
|
42
|
+
├── <skill-name>/
|
|
43
|
+
│ ├── SKILL.md # Required — instructions + YAML frontmatter
|
|
44
|
+
│ ├── examples/ # before.md and after.md
|
|
45
|
+
│ ├── references/ # Deep reference material
|
|
46
|
+
│ ├── scripts/ # Executable Python/Bash scripts
|
|
47
|
+
│ └── evals/ # evals.json test cases
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Contributing
|
|
51
|
+
|
|
52
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for how to add a new skill. Each skill must pass Bronze quality checks at minimum:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npx @booklib/skills check <skill-name>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
All 22 existing skills are at Platinum (13/13 checks).
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
|
|
6
|
+
|
|
7
|
+
## Our Standards
|
|
8
|
+
|
|
9
|
+
Examples of behavior that contributes to a positive environment:
|
|
10
|
+
|
|
11
|
+
* Demonstrating empathy and kindness toward other people
|
|
12
|
+
* Being respectful of differing opinions, viewpoints, and experiences
|
|
13
|
+
* Giving and gracefully accepting constructive feedback
|
|
14
|
+
* Accepting responsibility and apologizing to those affected by our mistakes
|
|
15
|
+
* Focusing on what is best for the overall community
|
|
16
|
+
|
|
17
|
+
Examples of unacceptable behavior:
|
|
18
|
+
|
|
19
|
+
* The use of sexualized language or imagery, and sexual attention or advances of any kind
|
|
20
|
+
* Trolling, insulting or derogatory comments, and personal or political attacks
|
|
21
|
+
* Public or private harassment
|
|
22
|
+
* Publishing others' private information without explicit permission
|
|
23
|
+
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
|
24
|
+
|
|
25
|
+
## Enforcement
|
|
26
|
+
|
|
27
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting the maintainers directly. All complaints will be reviewed and investigated promptly and fairly.
|
|
28
|
+
|
|
29
|
+
## Attribution
|
|
30
|
+
|
|
31
|
+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1.
|
package/CONTRIBUTING.md
CHANGED
|
@@ -117,6 +117,19 @@ PR checklist:
|
|
|
117
117
|
|
|
118
118
|
Open an issue titled **"Skill Request: [Book Name]"** and describe why the book would make a good skill. Community members can then pick it up.
|
|
119
119
|
|
|
120
|
+
## AI disclosure
|
|
121
|
+
|
|
122
|
+
If you used an AI tool to help write or review your contribution, disclose it in your PR description. This is required — not optional.
|
|
123
|
+
|
|
124
|
+
**Acceptable examples:**
|
|
125
|
+
- "Written primarily with Claude Code; I reviewed and tested each section manually."
|
|
126
|
+
- "I used Copilot for boilerplate; the examples and evals are hand-written."
|
|
127
|
+
- "No AI tools used."
|
|
128
|
+
|
|
129
|
+
**Not acceptable:** submitting AI-generated content without reviewing it yourself. Skills are grounded in specific books — the AI can hallucinate citations, misattribute principles, or invent heuristic codes. You are responsible for accuracy.
|
|
130
|
+
|
|
131
|
+
Trivial fixes (typos, formatting) don't need a disclosure.
|
|
132
|
+
|
|
120
133
|
## Questions
|
|
121
134
|
|
|
122
135
|
Use [GitHub Discussions](../../discussions) for questions, ideas, and feedback.
|
package/README.md
CHANGED
|
@@ -1,30 +1,41 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Skills
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="assets/logo.svg" width="120" alt="booklib-ai skills logo"/>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/@booklib/skills)
|
|
8
|
+
[](https://www.npmjs.com/package/@booklib/skills)
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
[](https://github.com/booklib-ai/skills/stargazers)
|
|
11
|
+
[](https://booklib-ai.github.io/skills/)
|
|
12
|
+
|
|
13
|
+
Book-grounded AI agent skills — each skill packages expert practices from a canonical programming book into reusable instructions that Claude and other AI agents can apply to code generation, code review, and design decisions.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx skills add booklib-ai/skills
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+

|
|
4
20
|
|
|
5
21
|
Each skill is a self-contained folder with a `SKILL.md` file containing instructions and metadata that AI agents use to perform specialized tasks.
|
|
6
22
|
|
|
7
23
|
## Structure
|
|
8
24
|
|
|
9
25
|
```
|
|
10
|
-
skills
|
|
11
|
-
├── README.md
|
|
12
|
-
├── LICENSE
|
|
26
|
+
booklib-ai/skills (repo root)
|
|
13
27
|
├── skills/
|
|
14
|
-
│ ├── clean-code-reviewer/
|
|
15
|
-
│ │ ├── SKILL.md
|
|
28
|
+
│ ├── clean-code-reviewer/
|
|
29
|
+
│ │ ├── SKILL.md # Required
|
|
30
|
+
│ │ ├── examples/
|
|
31
|
+
│ │ ├── references/
|
|
32
|
+
│ │ ├── scripts/
|
|
16
33
|
│ │ └── evals/
|
|
17
|
-
│
|
|
18
|
-
│
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
│ │ ├── assets/ # Templates, icons, fonts
|
|
23
|
-
│ │ └── evals/ # Test cases for the skill
|
|
24
|
-
│ │ ├── evals.json
|
|
25
|
-
│ │ └── files/ # Input files for evals
|
|
26
|
-
│ └── ...
|
|
27
|
-
└── ...
|
|
34
|
+
│ └── [skill-name]/ # One folder per book
|
|
35
|
+
│ └── ...
|
|
36
|
+
├── README.md
|
|
37
|
+
├── LICENSE
|
|
38
|
+
└── package.json
|
|
28
39
|
```
|
|
29
40
|
|
|
30
41
|
## Skill Format
|
|
@@ -55,17 +66,27 @@ Instructions for the AI agent...
|
|
|
55
66
|
|
|
56
67
|
## Installation
|
|
57
68
|
|
|
58
|
-
### via
|
|
69
|
+
### via skills CLI (recommended)
|
|
59
70
|
|
|
60
71
|
```bash
|
|
61
|
-
#
|
|
62
|
-
npx
|
|
72
|
+
# Install all skills globally
|
|
73
|
+
npx skills add booklib-ai/skills --all -g
|
|
74
|
+
|
|
75
|
+
# Install a specific skill
|
|
76
|
+
npx skills add booklib-ai/skills --skill effective-kotlin
|
|
77
|
+
|
|
78
|
+
# List available skills without installing
|
|
79
|
+
npx skills add booklib-ai/skills --list
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### via npm
|
|
63
83
|
|
|
64
|
-
|
|
65
|
-
|
|
84
|
+
```bash
|
|
85
|
+
# Install all skills globally
|
|
86
|
+
npx @booklib/skills add --all --global
|
|
66
87
|
|
|
67
|
-
#
|
|
68
|
-
npx @booklib/skills add
|
|
88
|
+
# Install a single skill
|
|
89
|
+
npx @booklib/skills add effective-kotlin
|
|
69
90
|
|
|
70
91
|
# List available skills
|
|
71
92
|
npx @booklib/skills list
|
|
@@ -76,9 +97,8 @@ Skills are installed to `.claude/skills/` in your project (or `~/.claude/skills/
|
|
|
76
97
|
### Manual
|
|
77
98
|
|
|
78
99
|
```bash
|
|
79
|
-
# Clone and copy a skill directly
|
|
80
100
|
git clone https://github.com/booklib-ai/skills.git
|
|
81
|
-
cp -r skills/skills/effective-kotlin /path/to/project/.claude/skills/
|
|
101
|
+
cp -r booklib-ai-skills/skills/effective-kotlin /path/to/project/.claude/skills/
|
|
82
102
|
```
|
|
83
103
|
|
|
84
104
|
## Automatic Skill Routing
|
|
@@ -102,24 +122,28 @@ This means skills compose: `skill-router` acts as an orchestrator that picks the
|
|
|
102
122
|
|
|
103
123
|
| Skill | Description |
|
|
104
124
|
|-------|-------------|
|
|
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-
|
|
112
|
-
| [effective-
|
|
113
|
-
| [effective-
|
|
114
|
-
| [
|
|
115
|
-
| [
|
|
116
|
-
| [
|
|
117
|
-
| [
|
|
118
|
-
| [
|
|
119
|
-
| [
|
|
120
|
-
| [
|
|
121
|
-
| [
|
|
122
|
-
| [
|
|
125
|
+
| 🎬 [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 |
|
|
126
|
+
| 🧹 [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) |
|
|
127
|
+
| 🗄️ [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 |
|
|
128
|
+
| 🔀 [data-pipelines](./skills/data-pipelines/) | Data pipeline practices from James Densmore's *Data Pipelines Pocket Reference* — ingestion, streaming, transformation, and orchestration |
|
|
129
|
+
| 🏗️ [design-patterns](./skills/design-patterns/) | Apply and review GoF design patterns from *Head First Design Patterns* — creational, structural, and behavioral patterns |
|
|
130
|
+
| 🧩 [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 |
|
|
131
|
+
| ☕ [effective-java](./skills/effective-java/) | Java best practices from Joshua Bloch's *Effective Java* (3rd Edition) — object creation, generics, enums, lambdas, and concurrency |
|
|
132
|
+
| 🛡️ [effective-kotlin](./skills/effective-kotlin/) | Best practices from Marcin Moskała's *Effective Kotlin* (2nd Ed) — safety, readability, reusability, and abstraction |
|
|
133
|
+
| 🐍 [effective-python](./skills/effective-python/) | Python best practices from Brett Slatkin's *Effective Python* (2nd Edition) — Pythonic thinking, functions, classes, concurrency, and testing |
|
|
134
|
+
| 🔷 [effective-typescript](./skills/effective-typescript/) | TypeScript best practices from Dan Vanderkam's *Effective TypeScript* — type system, type design, avoiding any, type declarations, and migration |
|
|
135
|
+
| 🦀 [programming-with-rust](./skills/programming-with-rust/) | Rust practices from Donis Marshall's *Programming with Rust* — ownership, borrowing, lifetimes, error handling, traits, and fearless concurrency |
|
|
136
|
+
| ⚙️ [rust-in-action](./skills/rust-in-action/) | Systems programming from Tim McNamara's *Rust in Action* — smart pointers, endianness, memory, file formats, TCP networking, concurrency, and OS fundamentals |
|
|
137
|
+
| 🌱 [spring-boot-in-action](./skills/spring-boot-in-action/) | Spring Boot best practices from Craig Walls' *Spring Boot in Action* — auto-configuration, starters, externalized config, profiles, testing with MockMvc, Actuator, and deployment |
|
|
138
|
+
| ⚡ [kotlin-in-action](./skills/kotlin-in-action/) | Practices from *Kotlin in Action* (2nd Ed) — functions, classes, lambdas, nullability, and coroutines |
|
|
139
|
+
| 🚀 [lean-startup](./skills/lean-startup/) | Practices from Eric Ries' *The Lean Startup* — MVP testing, validated learning, Build-Measure-Learn loop, and pivots |
|
|
140
|
+
| 🔧 [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 |
|
|
141
|
+
| 🎨 [refactoring-ui](./skills/refactoring-ui/) | UI design principles from *Refactoring UI* by Adam Wathan & Steve Schoger — visual hierarchy, layout, typography, and color |
|
|
142
|
+
| 🗺️ [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 |
|
|
143
|
+
| 📊 [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 |
|
|
144
|
+
| 🏛️ [system-design-interview](./skills/system-design-interview/) | System design principles from Alex Xu's *System Design Interview* — scaling, estimation, and real-world system designs |
|
|
145
|
+
| 🔄 [using-asyncio-python](./skills/using-asyncio-python/) | Asyncio practices from Caleb Hattingh's *Using Asyncio in Python* — coroutines, event loop, tasks, and signal handling |
|
|
146
|
+
| 🕷️ [web-scraping-python](./skills/web-scraping-python/) | Web scraping practices from Ryan Mitchell's *Web Scraping with Python* — BeautifulSoup, Scrapy, and data storage |
|
|
123
147
|
|
|
124
148
|
## License
|
|
125
149
|
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting a Vulnerability
|
|
4
|
+
|
|
5
|
+
Skills in this repository are markdown instruction files — they contain no executable code that runs on install. However, if you discover a skill that contains malicious instructions or attempts to exfiltrate data, please report it responsibly.
|
|
6
|
+
|
|
7
|
+
**Do not open a public issue.** Instead, report security concerns via [GitHub's private vulnerability reporting](https://github.com/booklib-ai/skills/security/advisories/new).
|
|
8
|
+
|
|
9
|
+
We will respond within 48 hours and issue a fix promptly.
|
package/assets/logo.svg
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400">
|
|
2
|
+
<!-- Background -->
|
|
3
|
+
<rect width="400" height="400" rx="72" fill="#0d1117"/>
|
|
4
|
+
|
|
5
|
+
<!-- Left book page -->
|
|
6
|
+
<path d="M88 120 L88 300 Q88 316 104 316 L192 316 L192 104 Q160 88 112 92 Q88 96 88 120Z" fill="#1f6feb"/>
|
|
7
|
+
|
|
8
|
+
<!-- Right book page -->
|
|
9
|
+
<path d="M208 104 L208 316 L296 316 Q312 316 312 300 L312 120 Q312 96 288 92 Q240 88 208 104Z" fill="#2d84f5"/>
|
|
10
|
+
|
|
11
|
+
<!-- Spine -->
|
|
12
|
+
<rect x="192" y="100" width="16" height="216" fill="#58a6ff"/>
|
|
13
|
+
|
|
14
|
+
<!-- Left page lines -->
|
|
15
|
+
<rect x="112" y="155" width="64" height="8" rx="4" fill="white" opacity="0.55"/>
|
|
16
|
+
<rect x="112" y="175" width="52" height="8" rx="4" fill="white" opacity="0.40"/>
|
|
17
|
+
<rect x="112" y="195" width="68" height="8" rx="4" fill="white" opacity="0.55"/>
|
|
18
|
+
<rect x="112" y="215" width="44" height="8" rx="4" fill="white" opacity="0.35"/>
|
|
19
|
+
<rect x="112" y="235" width="60" height="8" rx="4" fill="white" opacity="0.50"/>
|
|
20
|
+
<rect x="112" y="255" width="48" height="8" rx="4" fill="white" opacity="0.35"/>
|
|
21
|
+
|
|
22
|
+
<!-- Right page lines -->
|
|
23
|
+
<rect x="224" y="155" width="64" height="8" rx="4" fill="white" opacity="0.55"/>
|
|
24
|
+
<rect x="224" y="175" width="52" height="8" rx="4" fill="white" opacity="0.40"/>
|
|
25
|
+
<rect x="224" y="195" width="68" height="8" rx="4" fill="white" opacity="0.55"/>
|
|
26
|
+
<rect x="224" y="215" width="44" height="8" rx="4" fill="white" opacity="0.35"/>
|
|
27
|
+
<rect x="224" y="235" width="60" height="8" rx="4" fill="white" opacity="0.50"/>
|
|
28
|
+
<rect x="224" y="255" width="48" height="8" rx="4" fill="white" opacity="0.35"/>
|
|
29
|
+
|
|
30
|
+
<!-- AI sparkle (4-pointed star) -->
|
|
31
|
+
<path d="M316 82 L322 66 L328 82 L344 88 L328 94 L322 110 L316 94 L300 88 Z" fill="#f0883e"/>
|
|
32
|
+
|
|
33
|
+
<!-- Accent dots -->
|
|
34
|
+
<circle cx="348" cy="60" r="5" fill="#f0883e" opacity="0.6"/>
|
|
35
|
+
<circle cx="296" cy="58" r="4" fill="#f0883e" opacity="0.4"/>
|
|
36
|
+
</svg>
|
package/demo.gif
ADDED
|
Binary file
|
package/demo.tape
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
Output demo.gif
|
|
2
|
+
|
|
3
|
+
Set Shell "bash"
|
|
4
|
+
Set FontSize 15
|
|
5
|
+
Set Width 1100
|
|
6
|
+
Set Height 650
|
|
7
|
+
Set Theme "Dracula"
|
|
8
|
+
Set Padding 24
|
|
9
|
+
Set Framerate 30
|
|
10
|
+
Set PlaybackSpeed 1
|
|
11
|
+
Env PATH "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
|
|
12
|
+
|
|
13
|
+
Hide
|
|
14
|
+
Type "cd /Users/fvst/other/fp/skills && clear"
|
|
15
|
+
Enter
|
|
16
|
+
Sleep 500ms
|
|
17
|
+
Show
|
|
18
|
+
|
|
19
|
+
Sleep 500ms
|
|
20
|
+
|
|
21
|
+
Type "node bin/skills.js list"
|
|
22
|
+
Sleep 300ms
|
|
23
|
+
Enter
|
|
24
|
+
Sleep 5s
|
|
25
|
+
|
|
26
|
+
Sleep 1500ms
|
|
27
|
+
|
|
28
|
+
Type "node bin/skills.js info clean-code-reviewer"
|
|
29
|
+
Sleep 300ms
|
|
30
|
+
Enter
|
|
31
|
+
Sleep 3s
|
|
32
|
+
|
|
33
|
+
Sleep 1500ms
|
|
34
|
+
|
|
35
|
+
Type "node bin/skills.js demo clean-code-reviewer"
|
|
36
|
+
Sleep 300ms
|
|
37
|
+
Enter
|
|
38
|
+
Sleep 5s
|
|
39
|
+
|
|
40
|
+
Sleep 3s
|