@booklib/core 2.0.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/.cursor/rules/booklib-standards.mdc +40 -0
- package/.gemini/context.md +372 -0
- package/AGENTS.md +166 -0
- package/CHANGELOG.md +226 -0
- package/CLAUDE.md +81 -0
- package/CODE_OF_CONDUCT.md +31 -0
- package/CONTRIBUTING.md +304 -0
- package/LICENSE +21 -0
- package/PLAN.md +28 -0
- package/README.ja.md +198 -0
- package/README.ko.md +198 -0
- package/README.md +503 -0
- package/README.pt-BR.md +198 -0
- package/README.uk.md +241 -0
- package/README.zh-CN.md +198 -0
- package/SECURITY.md +9 -0
- package/agents/architecture-reviewer.md +136 -0
- package/agents/booklib-reviewer.md +90 -0
- package/agents/data-reviewer.md +107 -0
- package/agents/jvm-reviewer.md +146 -0
- package/agents/python-reviewer.md +128 -0
- package/agents/rust-reviewer.md +115 -0
- package/agents/ts-reviewer.md +110 -0
- package/agents/ui-reviewer.md +117 -0
- package/assets/logo.svg +36 -0
- package/bin/booklib-mcp.js +304 -0
- package/bin/booklib.js +1705 -0
- package/bin/skills.cjs +1292 -0
- package/booklib-router.mdc +36 -0
- package/booklib.config.json +19 -0
- package/commands/animation-at-work.md +10 -0
- package/commands/clean-code-reviewer.md +10 -0
- package/commands/data-intensive-patterns.md +10 -0
- package/commands/data-pipelines.md +10 -0
- package/commands/design-patterns.md +10 -0
- package/commands/domain-driven-design.md +10 -0
- package/commands/effective-java.md +10 -0
- package/commands/effective-kotlin.md +10 -0
- package/commands/effective-python.md +10 -0
- package/commands/effective-typescript.md +10 -0
- package/commands/kotlin-in-action.md +10 -0
- package/commands/lean-startup.md +10 -0
- package/commands/microservices-patterns.md +10 -0
- package/commands/programming-with-rust.md +10 -0
- package/commands/refactoring-ui.md +10 -0
- package/commands/rust-in-action.md +10 -0
- package/commands/skill-router.md +10 -0
- package/commands/spring-boot-in-action.md +10 -0
- package/commands/storytelling-with-data.md +10 -0
- package/commands/system-design-interview.md +10 -0
- package/commands/using-asyncio-python.md +10 -0
- package/commands/web-scraping-python.md +10 -0
- package/community/registry.json +1616 -0
- package/hooks/hooks.json +23 -0
- package/hooks/posttooluse-capture.mjs +67 -0
- package/hooks/suggest.js +153 -0
- package/lib/agent-behaviors.js +40 -0
- package/lib/agent-detector.js +96 -0
- package/lib/config-loader.js +39 -0
- package/lib/conflict-resolver.js +148 -0
- package/lib/context-builder.js +574 -0
- package/lib/discovery-engine.js +298 -0
- package/lib/doctor/hook-installer.js +83 -0
- package/lib/doctor/usage-tracker.js +87 -0
- package/lib/engine/ai-features.js +253 -0
- package/lib/engine/auditor.js +103 -0
- package/lib/engine/bm25-index.js +178 -0
- package/lib/engine/capture.js +120 -0
- package/lib/engine/corrections.js +198 -0
- package/lib/engine/doctor.js +195 -0
- package/lib/engine/graph-injector.js +137 -0
- package/lib/engine/graph.js +161 -0
- package/lib/engine/handoff.js +405 -0
- package/lib/engine/indexer.js +242 -0
- package/lib/engine/parser.js +53 -0
- package/lib/engine/query-expander.js +42 -0
- package/lib/engine/reranker.js +40 -0
- package/lib/engine/rrf.js +59 -0
- package/lib/engine/scanner.js +151 -0
- package/lib/engine/searcher.js +139 -0
- package/lib/engine/session-coordinator.js +306 -0
- package/lib/engine/session-manager.js +429 -0
- package/lib/engine/synthesizer.js +70 -0
- package/lib/installer.js +70 -0
- package/lib/instinct-block.js +33 -0
- package/lib/mcp-config-writer.js +88 -0
- package/lib/paths.js +57 -0
- package/lib/profiles/design.md +19 -0
- package/lib/profiles/general.md +16 -0
- package/lib/profiles/research-analysis.md +22 -0
- package/lib/profiles/software-development.md +23 -0
- package/lib/profiles/writing-content.md +19 -0
- package/lib/project-initializer.js +916 -0
- package/lib/registry/skills.js +102 -0
- package/lib/registry-searcher.js +99 -0
- package/lib/rules/rules-manager.js +169 -0
- package/lib/skill-fetcher.js +333 -0
- package/lib/well-known-builder.js +70 -0
- package/lib/wizard/index.js +404 -0
- package/lib/wizard/integration-detector.js +41 -0
- package/lib/wizard/project-detector.js +100 -0
- package/lib/wizard/prompt.js +156 -0
- package/lib/wizard/registry-embeddings.js +107 -0
- package/lib/wizard/skill-recommender.js +69 -0
- package/llms-full.txt +254 -0
- package/llms.txt +70 -0
- package/package.json +45 -0
- package/research-reports/2026-04-01-current-architecture.md +160 -0
- package/research-reports/IDEAS.md +93 -0
- package/rules/common/clean-code.md +42 -0
- package/rules/java/effective-java.md +42 -0
- package/rules/kotlin/effective-kotlin.md +37 -0
- package/rules/python/effective-python.md +38 -0
- package/rules/rust/rust.md +37 -0
- package/rules/typescript/effective-typescript.md +42 -0
- package/scripts/gen-llms-full.mjs +36 -0
- package/scripts/gen-og.mjs +142 -0
- package/scripts/validate-frontmatter.js +25 -0
- package/skills/animation-at-work/SKILL.md +270 -0
- package/skills/animation-at-work/assets/example_asset.txt +1 -0
- package/skills/animation-at-work/evals/evals.json +44 -0
- package/skills/animation-at-work/evals/results.json +13 -0
- package/skills/animation-at-work/examples/after.md +64 -0
- package/skills/animation-at-work/examples/before.md +35 -0
- package/skills/animation-at-work/references/api_reference.md +369 -0
- package/skills/animation-at-work/references/review-checklist.md +79 -0
- package/skills/animation-at-work/scripts/audit_animations.py +295 -0
- package/skills/animation-at-work/scripts/example.py +1 -0
- package/skills/clean-code-reviewer/SKILL.md +444 -0
- package/skills/clean-code-reviewer/audit.json +35 -0
- package/skills/clean-code-reviewer/evals/evals.json +185 -0
- package/skills/clean-code-reviewer/evals/results.json +13 -0
- package/skills/clean-code-reviewer/examples/after.md +48 -0
- package/skills/clean-code-reviewer/examples/before.md +33 -0
- package/skills/clean-code-reviewer/references/api_reference.md +158 -0
- package/skills/clean-code-reviewer/references/practices-catalog.md +282 -0
- package/skills/clean-code-reviewer/references/review-checklist.md +254 -0
- package/skills/clean-code-reviewer/scripts/pre-review.py +206 -0
- package/skills/data-intensive-patterns/SKILL.md +267 -0
- package/skills/data-intensive-patterns/assets/example_asset.txt +1 -0
- package/skills/data-intensive-patterns/evals/evals.json +54 -0
- package/skills/data-intensive-patterns/evals/results.json +13 -0
- package/skills/data-intensive-patterns/examples/after.md +61 -0
- package/skills/data-intensive-patterns/examples/before.md +38 -0
- package/skills/data-intensive-patterns/references/api_reference.md +34 -0
- package/skills/data-intensive-patterns/references/patterns-catalog.md +551 -0
- package/skills/data-intensive-patterns/references/review-checklist.md +193 -0
- package/skills/data-intensive-patterns/scripts/adr.py +213 -0
- package/skills/data-intensive-patterns/scripts/example.py +1 -0
- package/skills/data-pipelines/SKILL.md +259 -0
- package/skills/data-pipelines/assets/example_asset.txt +1 -0
- package/skills/data-pipelines/evals/evals.json +45 -0
- package/skills/data-pipelines/evals/results.json +13 -0
- package/skills/data-pipelines/examples/after.md +97 -0
- package/skills/data-pipelines/examples/before.md +37 -0
- package/skills/data-pipelines/references/api_reference.md +301 -0
- package/skills/data-pipelines/references/review-checklist.md +181 -0
- package/skills/data-pipelines/scripts/example.py +1 -0
- package/skills/data-pipelines/scripts/new_pipeline.py +444 -0
- package/skills/design-patterns/SKILL.md +271 -0
- package/skills/design-patterns/assets/example_asset.txt +1 -0
- package/skills/design-patterns/evals/evals.json +46 -0
- package/skills/design-patterns/evals/results.json +13 -0
- package/skills/design-patterns/examples/after.md +52 -0
- package/skills/design-patterns/examples/before.md +29 -0
- package/skills/design-patterns/references/api_reference.md +1 -0
- package/skills/design-patterns/references/patterns-catalog.md +726 -0
- package/skills/design-patterns/references/review-checklist.md +173 -0
- package/skills/design-patterns/scripts/example.py +1 -0
- package/skills/design-patterns/scripts/scaffold.py +807 -0
- package/skills/domain-driven-design/SKILL.md +142 -0
- package/skills/domain-driven-design/assets/example_asset.txt +1 -0
- package/skills/domain-driven-design/evals/evals.json +48 -0
- package/skills/domain-driven-design/evals/results.json +13 -0
- package/skills/domain-driven-design/examples/after.md +80 -0
- package/skills/domain-driven-design/examples/before.md +43 -0
- package/skills/domain-driven-design/references/api_reference.md +1 -0
- package/skills/domain-driven-design/references/patterns-catalog.md +545 -0
- package/skills/domain-driven-design/references/review-checklist.md +158 -0
- package/skills/domain-driven-design/scripts/example.py +1 -0
- package/skills/domain-driven-design/scripts/scaffold.py +421 -0
- package/skills/effective-java/SKILL.md +227 -0
- package/skills/effective-java/assets/example_asset.txt +1 -0
- package/skills/effective-java/evals/evals.json +46 -0
- package/skills/effective-java/evals/results.json +13 -0
- package/skills/effective-java/examples/after.md +83 -0
- package/skills/effective-java/examples/before.md +37 -0
- package/skills/effective-java/references/api_reference.md +1 -0
- package/skills/effective-java/references/items-catalog.md +955 -0
- package/skills/effective-java/references/review-checklist.md +216 -0
- package/skills/effective-java/scripts/checkstyle_setup.py +211 -0
- package/skills/effective-java/scripts/example.py +1 -0
- package/skills/effective-kotlin/SKILL.md +271 -0
- package/skills/effective-kotlin/assets/example_asset.txt +1 -0
- package/skills/effective-kotlin/audit.json +29 -0
- package/skills/effective-kotlin/evals/evals.json +45 -0
- package/skills/effective-kotlin/evals/results.json +13 -0
- package/skills/effective-kotlin/examples/after.md +36 -0
- package/skills/effective-kotlin/examples/before.md +38 -0
- package/skills/effective-kotlin/references/api_reference.md +1 -0
- package/skills/effective-kotlin/references/practices-catalog.md +1228 -0
- package/skills/effective-kotlin/references/review-checklist.md +126 -0
- package/skills/effective-kotlin/scripts/example.py +1 -0
- package/skills/effective-python/SKILL.md +441 -0
- package/skills/effective-python/evals/evals.json +44 -0
- package/skills/effective-python/evals/results.json +13 -0
- package/skills/effective-python/examples/after.md +56 -0
- package/skills/effective-python/examples/before.md +40 -0
- package/skills/effective-python/ref-01-pythonic-thinking.md +202 -0
- package/skills/effective-python/ref-02-lists-and-dicts.md +146 -0
- package/skills/effective-python/ref-03-functions.md +186 -0
- package/skills/effective-python/ref-04-comprehensions-generators.md +211 -0
- package/skills/effective-python/ref-05-classes-interfaces.md +188 -0
- package/skills/effective-python/ref-06-metaclasses-attributes.md +209 -0
- package/skills/effective-python/ref-07-concurrency.md +213 -0
- package/skills/effective-python/ref-08-robustness-performance.md +248 -0
- package/skills/effective-python/ref-09-testing-debugging.md +253 -0
- package/skills/effective-python/ref-10-collaboration.md +175 -0
- package/skills/effective-python/references/api_reference.md +218 -0
- package/skills/effective-python/references/practices-catalog.md +483 -0
- package/skills/effective-python/references/review-checklist.md +190 -0
- package/skills/effective-python/scripts/lint.py +173 -0
- package/skills/effective-typescript/SKILL.md +262 -0
- package/skills/effective-typescript/audit.json +29 -0
- package/skills/effective-typescript/evals/evals.json +37 -0
- package/skills/effective-typescript/evals/results.json +13 -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/effective-typescript/scripts/review.py +169 -0
- package/skills/kotlin-in-action/SKILL.md +261 -0
- package/skills/kotlin-in-action/assets/example_asset.txt +1 -0
- package/skills/kotlin-in-action/evals/evals.json +43 -0
- package/skills/kotlin-in-action/evals/results.json +13 -0
- package/skills/kotlin-in-action/examples/after.md +53 -0
- package/skills/kotlin-in-action/examples/before.md +39 -0
- package/skills/kotlin-in-action/references/api_reference.md +1 -0
- package/skills/kotlin-in-action/references/practices-catalog.md +436 -0
- package/skills/kotlin-in-action/references/review-checklist.md +204 -0
- package/skills/kotlin-in-action/scripts/example.py +1 -0
- package/skills/kotlin-in-action/scripts/setup_detekt.py +224 -0
- package/skills/lean-startup/SKILL.md +160 -0
- package/skills/lean-startup/assets/example_asset.txt +1 -0
- package/skills/lean-startup/evals/evals.json +43 -0
- package/skills/lean-startup/evals/results.json +13 -0
- package/skills/lean-startup/examples/after.md +80 -0
- package/skills/lean-startup/examples/before.md +34 -0
- package/skills/lean-startup/references/api_reference.md +319 -0
- package/skills/lean-startup/references/review-checklist.md +137 -0
- package/skills/lean-startup/scripts/example.py +1 -0
- package/skills/lean-startup/scripts/new_experiment.py +286 -0
- package/skills/microservices-patterns/SKILL.md +384 -0
- package/skills/microservices-patterns/evals/evals.json +45 -0
- package/skills/microservices-patterns/evals/results.json +13 -0
- package/skills/microservices-patterns/examples/after.md +69 -0
- package/skills/microservices-patterns/examples/before.md +40 -0
- package/skills/microservices-patterns/references/patterns-catalog.md +391 -0
- package/skills/microservices-patterns/references/review-checklist.md +169 -0
- package/skills/microservices-patterns/scripts/new_service.py +583 -0
- package/skills/programming-with-rust/SKILL.md +209 -0
- package/skills/programming-with-rust/evals/evals.json +37 -0
- package/skills/programming-with-rust/evals/results.json +13 -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/programming-with-rust/scripts/review.py +142 -0
- package/skills/refactoring-ui/SKILL.md +362 -0
- package/skills/refactoring-ui/assets/example_asset.txt +1 -0
- package/skills/refactoring-ui/evals/evals.json +45 -0
- package/skills/refactoring-ui/evals/results.json +13 -0
- package/skills/refactoring-ui/examples/after.md +85 -0
- package/skills/refactoring-ui/examples/before.md +58 -0
- package/skills/refactoring-ui/references/api_reference.md +355 -0
- package/skills/refactoring-ui/references/review-checklist.md +114 -0
- package/skills/refactoring-ui/scripts/audit_css.py +250 -0
- package/skills/refactoring-ui/scripts/example.py +1 -0
- package/skills/rust-in-action/SKILL.md +350 -0
- package/skills/rust-in-action/evals/evals.json +38 -0
- package/skills/rust-in-action/evals/results.json +13 -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 +186 -0
- package/skills/skill-router/evals/evals.json +38 -0
- package/skills/skill-router/evals/results.json +13 -0
- package/skills/skill-router/examples/after.md +63 -0
- package/skills/skill-router/examples/before.md +39 -0
- package/skills/skill-router/references/api_reference.md +24 -0
- package/skills/skill-router/references/routing-heuristics.md +89 -0
- package/skills/skill-router/references/skill-catalog.md +174 -0
- package/skills/skill-router/scripts/route.py +266 -0
- package/skills/spring-boot-in-action/SKILL.md +340 -0
- package/skills/spring-boot-in-action/evals/evals.json +39 -0
- package/skills/spring-boot-in-action/evals/results.json +13 -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/skills/storytelling-with-data/SKILL.md +241 -0
- package/skills/storytelling-with-data/assets/example_asset.txt +1 -0
- package/skills/storytelling-with-data/evals/evals.json +47 -0
- package/skills/storytelling-with-data/evals/results.json +13 -0
- package/skills/storytelling-with-data/examples/after.md +50 -0
- package/skills/storytelling-with-data/examples/before.md +33 -0
- package/skills/storytelling-with-data/references/api_reference.md +379 -0
- package/skills/storytelling-with-data/references/review-checklist.md +111 -0
- package/skills/storytelling-with-data/scripts/chart_review.py +301 -0
- package/skills/storytelling-with-data/scripts/example.py +1 -0
- package/skills/system-design-interview/SKILL.md +233 -0
- package/skills/system-design-interview/assets/example_asset.txt +1 -0
- package/skills/system-design-interview/evals/evals.json +46 -0
- package/skills/system-design-interview/evals/results.json +13 -0
- package/skills/system-design-interview/examples/after.md +94 -0
- package/skills/system-design-interview/examples/before.md +27 -0
- package/skills/system-design-interview/references/api_reference.md +582 -0
- package/skills/system-design-interview/references/review-checklist.md +201 -0
- package/skills/system-design-interview/scripts/example.py +1 -0
- package/skills/system-design-interview/scripts/new_design.py +421 -0
- package/skills/using-asyncio-python/SKILL.md +290 -0
- package/skills/using-asyncio-python/assets/example_asset.txt +1 -0
- package/skills/using-asyncio-python/evals/evals.json +43 -0
- package/skills/using-asyncio-python/evals/results.json +13 -0
- package/skills/using-asyncio-python/examples/after.md +68 -0
- package/skills/using-asyncio-python/examples/before.md +39 -0
- package/skills/using-asyncio-python/references/api_reference.md +267 -0
- package/skills/using-asyncio-python/references/review-checklist.md +149 -0
- package/skills/using-asyncio-python/scripts/check_blocking.py +270 -0
- package/skills/using-asyncio-python/scripts/example.py +1 -0
- package/skills/web-scraping-python/SKILL.md +280 -0
- package/skills/web-scraping-python/assets/example_asset.txt +1 -0
- package/skills/web-scraping-python/evals/evals.json +46 -0
- package/skills/web-scraping-python/evals/results.json +13 -0
- package/skills/web-scraping-python/examples/after.md +109 -0
- package/skills/web-scraping-python/examples/before.md +40 -0
- package/skills/web-scraping-python/references/api_reference.md +393 -0
- package/skills/web-scraping-python/references/review-checklist.md +163 -0
- package/skills/web-scraping-python/scripts/example.py +1 -0
- package/skills/web-scraping-python/scripts/new_scraper.py +231 -0
- package/skills/writing-plans/audit.json +34 -0
- package/tests/agent-detector.test.js +83 -0
- package/tests/corrections.test.js +245 -0
- package/tests/doctor/hook-installer.test.js +72 -0
- package/tests/doctor/usage-tracker.test.js +140 -0
- package/tests/engine/benchmark-eval.test.js +31 -0
- package/tests/engine/bm25-index.test.js +85 -0
- package/tests/engine/capture-command.test.js +35 -0
- package/tests/engine/capture.test.js +17 -0
- package/tests/engine/graph-augmented-search.test.js +107 -0
- package/tests/engine/graph-injector.test.js +44 -0
- package/tests/engine/graph.test.js +216 -0
- package/tests/engine/hybrid-searcher.test.js +74 -0
- package/tests/engine/indexer-bm25.test.js +37 -0
- package/tests/engine/mcp-tools.test.js +73 -0
- package/tests/engine/project-initializer-mcp.test.js +99 -0
- package/tests/engine/query-expander.test.js +36 -0
- package/tests/engine/reranker.test.js +51 -0
- package/tests/engine/rrf.test.js +49 -0
- package/tests/engine/srag-prefix.test.js +47 -0
- package/tests/instinct-block.test.js +23 -0
- package/tests/mcp-config-writer.test.js +60 -0
- package/tests/project-initializer-new-agents.test.js +48 -0
- package/tests/rules/rules-manager.test.js +230 -0
- package/tests/well-known-builder.test.js +40 -0
- package/tests/wizard/integration-detector.test.js +31 -0
- package/tests/wizard/project-detector.test.js +51 -0
- package/tests/wizard/prompt-session.test.js +61 -0
- package/tests/wizard/prompt.test.js +16 -0
- package/tests/wizard/registry-embeddings.test.js +35 -0
- package/tests/wizard/skill-recommender.test.js +34 -0
- package/tests/wizard/slot-count.test.js +25 -0
- package/vercel.json +21 -0
package/README.md
ADDED
|
@@ -0,0 +1,503 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.md">English</a> · <a href="README.zh-CN.md">中文</a> · <a href="README.ja.md">日本語</a> · <a href="README.ko.md">한국어</a> · <a href="README.pt-BR.md">Português</a> · <a href="README.uk.md">Українська</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="assets/logo.svg" width="100" alt="booklib-ai skills"/>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<h1 align="center">booklib</h1>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
A knowledge platform for AI agents.<br/>
|
|
13
|
+
Expert knowledge, personal insights, and project context —<br/>
|
|
14
|
+
searchable, structured, and delivered via MCP to any AI tool.
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
<p align="center">
|
|
18
|
+
<a href="https://www.npmjs.com/package/booklib"><img src="https://img.shields.io/npm/v/booklib.svg" alt="npm version"/></a>
|
|
19
|
+
<a href="https://www.npmjs.com/package/booklib"><img src="https://img.shields.io/npm/dw/booklib.svg" alt="downloads"/></a>
|
|
20
|
+
<a href="https://github.com/booklib-ai/booklib/stargazers"><img src="https://img.shields.io/github/stars/booklib-ai/booklib?style=flat" alt="stars"/></a>
|
|
21
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="license"/></a>
|
|
22
|
+
<a href="https://github.com/booklib-ai/booklib/blob/main/CHANGELOG.md"><img src="https://img.shields.io/badge/Actively%20Maintained-✓-brightgreen" alt="actively maintained"/></a>
|
|
23
|
+
<a href="https://github.com/booklib-ai/booklib/actions"><img src="https://img.shields.io/github/actions/workflow/status/booklib-ai/booklib/check.yml?branch=main" alt="CI/CD status"/></a>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
<p align="center">
|
|
27
|
+
<b>13 AI tools supported</b> · <b>10 MCP-compatible</b> · <b>Hybrid search engine</b> · <b>Knowledge graph</b> · <b>Zero cloud dependencies</b>
|
|
28
|
+
</p>
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Why
|
|
33
|
+
|
|
34
|
+
AI agents are powerful — but they only know what's in their training data. They don't know your team's conventions, your architecture decisions, or the specific expert frameworks you follow. Every new session starts from zero.
|
|
35
|
+
|
|
36
|
+
Research from [ETH Zurich](https://arxiv.org/abs/2602.11988) confirms this is a real problem — giving agents unstructured context files actually **reduces** task success rates while increasing costs by 20%+. More context doesn't help. Structured, relevant context does.
|
|
37
|
+
|
|
38
|
+
BookLib is a **local knowledge platform** built on this principle. It gives your AI agent persistent, structured knowledge that it can search and apply across every session.
|
|
39
|
+
|
|
40
|
+
## What you get
|
|
41
|
+
|
|
42
|
+
| | What it does |
|
|
43
|
+
|-|-------------|
|
|
44
|
+
| **Knowledge engine** | Index any structured knowledge — expert frameworks, team conventions, architecture decisions, research findings. Search it with natural language via a hybrid pipeline (BM25 + vector + cross-encoder reranking). |
|
|
45
|
+
| **MCP integration** | 8 tools your agent calls directly: search, audit, capture, build context. Works in Claude Code, Cursor, Copilot, Gemini, Codex, Windsurf, Roo Code, Goose, Zed, and Continue. |
|
|
46
|
+
| **Knowledge graph** | Capture insights as you work. Link them to each other and to your project components. Your agent finds related knowledge automatically through graph traversal. |
|
|
47
|
+
| **Multi-tool support** | One `booklib init` detects and configures all your AI tools. MCP for 10 tools, config files for 3 more. Switch tools, keep your knowledge. |
|
|
48
|
+
| **Health system** | `booklib doctor` diagnoses problems — too many skills, stale knowledge, oversized configs — and `--cure` fixes them. |
|
|
49
|
+
| **Runs locally** | Everything on your machine. No cloud, no API keys, no data leaving your laptop. Embedding model (~25 MB) runs on CPU. |
|
|
50
|
+
|
|
51
|
+
## Works for any domain
|
|
52
|
+
|
|
53
|
+
Programming, product management, UI design, data visualization, system architecture, technical writing, research — any field where structured expert knowledge improves your agent's output.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Quick Start
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm install -g booklib
|
|
61
|
+
booklib init
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The wizard handles everything — detecting your project, configuring your AI tools, building the search index, and recommending relevant knowledge. After that, just work. Your agent uses BookLib automatically.
|
|
65
|
+
|
|
66
|
+
## How It Feels in Practice
|
|
67
|
+
|
|
68
|
+
You don't type BookLib commands. Your agent does.
|
|
69
|
+
|
|
70
|
+
> **You:** "Review this authentication module"
|
|
71
|
+
>
|
|
72
|
+
> **Agent:** *searches BookLib for auth patterns, finds relevant principles, applies them to the review with citations*
|
|
73
|
+
|
|
74
|
+
> **You:** "Remember that we decided to use event sourcing for orders"
|
|
75
|
+
>
|
|
76
|
+
> **Agent:** *captures the insight into the knowledge graph, links it to your project*
|
|
77
|
+
|
|
78
|
+
> **You:** "Something feels off about our code quality lately"
|
|
79
|
+
>
|
|
80
|
+
> **Agent:** *runs diagnostics, suggests which knowledge areas need attention*
|
|
81
|
+
|
|
82
|
+
BookLib becomes part of how your agent thinks — not a tool you have to remember to use.
|
|
83
|
+
|
|
84
|
+
## Available Knowledge
|
|
85
|
+
|
|
86
|
+
BookLib ships with 24 curated knowledge sets covering programming, architecture, design, product, and more. Browse them in the [`skills/`](./skills/) directory or search with `booklib search`.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Discovery
|
|
91
|
+
|
|
92
|
+
BookLib can find and index skills beyond the bundled set. Configure sources in `booklib.config.json`:
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"sources": [
|
|
97
|
+
{ "type": "registry", "trusted": true },
|
|
98
|
+
{ "type": "manifest", "url": "./community/registry.json", "trusted": true },
|
|
99
|
+
{ "type": "github-skills-dir", "repo": "obra/superpowers", "dir": "skills", "branch": "main", "trusted": true },
|
|
100
|
+
{ "type": "github-skills-dir", "repo": "ruvnet/ruflo", "dir": ".claude/skills", "branch": "main", "trusted": true },
|
|
101
|
+
{ "type": "github-org", "org": "your-org" },
|
|
102
|
+
{ "type": "npm-scope", "scope": "@your-scope" }
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
booklib discover # list available skills from all sources
|
|
109
|
+
booklib discover --refresh # force re-scan (bypass 24h cache)
|
|
110
|
+
booklib install naming-cheatsheet # download and index a specific skill
|
|
111
|
+
booklib setup # fetch all trusted skills at once
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Source types: `registry` (bundled), `manifest` (JSON list at URL or local path), `github-skills-dir` (any repo with a `skills/` subdirectory), `github-org`, `npm-scope`.
|
|
115
|
+
|
|
116
|
+
`"trusted": true` marks a source as auto-installable by `booklib setup`. Untrusted sources are discoverable but require explicit `booklib fetch <name>` with a confirmation prompt.
|
|
117
|
+
|
|
118
|
+
> Set `GITHUB_TOKEN` to raise the GitHub API limit from 60 to 5000 req/hr:
|
|
119
|
+
> `GITHUB_TOKEN=$(gh auth token) booklib discover --refresh`
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Orchestrator Compatibility
|
|
124
|
+
|
|
125
|
+
After `booklib sync`, every fetched skill lives at `~/.claude/skills/<name>/SKILL.md` — the path Claude Code's native Skill tool reads from. No extra configuration needed.
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
booklib sync # write all fetched skills to ~/.claude/skills/
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
| Orchestrator | Install | Skills surface via |
|
|
132
|
+
|---|---|---|
|
|
133
|
+
| [obra/superpowers](https://github.com/obra/superpowers) | `/plugin install superpowers` | Skill tool — available in every session |
|
|
134
|
+
| [ruflo](https://github.com/ruvnet/ruflo) | `npm install -g ruflo` | Skill tool — available in every session |
|
|
135
|
+
|
|
136
|
+
BookLib uses a `.booklib` marker file to track directories it manages and never overwrites skills you placed there manually.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Swarm & Role-Based Profiles
|
|
141
|
+
|
|
142
|
+
Equip agents in a swarm with the right skills for their role:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
booklib profile reviewer # skills for a code reviewer agent
|
|
146
|
+
booklib profile security # skills for a security auditor
|
|
147
|
+
booklib profile architect # skills for a system design agent
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Roles: `architect` · `coder` · `reviewer` · `tester` · `security` · `frontend` · `optimizer` · `devops` · `ai-engineer` · `manager` · `product` · `writer` · `strategist` · `designer` · `legal`
|
|
151
|
+
|
|
152
|
+
Get a full skill map for a swarm trigger pipeline:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
booklib swarm-config audit # security → tester agent roles + their skills
|
|
156
|
+
booklib swarm-config feature # architect → coder → reviewer → tester
|
|
157
|
+
booklib swarm-config # list all configured triggers
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Project Setup
|
|
163
|
+
|
|
164
|
+
Scaffold context files for every AI tool in the project from a single command:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
booklib init # Phase 1: .cursor/rules, CLAUDE.md, copilot-instructions, .gemini/context.md
|
|
168
|
+
# Phase 2: MCP server config for Claude Code, Cursor, Gemini, Codex, Zed, Continue
|
|
169
|
+
booklib init --orchestrator=obra # also shows superpowers install instructions
|
|
170
|
+
booklib init --orchestrator=ruflo # also shows ruflo install instructions
|
|
171
|
+
booklib init --mcp-tool=claude,zed # non-interactive MCP setup for specific tools
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
`booklib init` runs in two phases: first it writes AI tool standards files, then it interactively offers to wire up the MCP server so your tools can call booklib search and context directly. Re-run after adding new skills — it updates all files in place without overwriting your existing configs.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Agents
|
|
179
|
+
|
|
180
|
+
| Agent | Model | Skills applied |
|
|
181
|
+
|-------|-------|----------------|
|
|
182
|
+
| `@booklib-reviewer` | sonnet | Auto-routes to the best skill |
|
|
183
|
+
| `@python-reviewer` | sonnet | effective-python · asyncio · web-scraping |
|
|
184
|
+
| `@ts-reviewer` | sonnet | effective-typescript · clean-code-reviewer |
|
|
185
|
+
| `@jvm-reviewer` | sonnet | effective-java · effective-kotlin · kotlin-in-action · spring-boot |
|
|
186
|
+
| `@rust-reviewer` | sonnet | programming-with-rust · rust-in-action |
|
|
187
|
+
| `@architecture-reviewer` | opus | domain-driven-design · microservices-patterns · system-design · data-intensive |
|
|
188
|
+
| `@data-reviewer` | sonnet | data-intensive-patterns · data-pipelines |
|
|
189
|
+
| `@ui-reviewer` | sonnet | refactoring-ui · storytelling-with-data · animation-at-work |
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Knowledge Graph
|
|
194
|
+
|
|
195
|
+
BookLib can capture knowledge from your actual work and link it to your project's own topology — forming a unified graph where book skills, research notes, and architectural decisions all live together.
|
|
196
|
+
|
|
197
|
+
### Nodes
|
|
198
|
+
|
|
199
|
+
Every piece of knowledge is a plain Markdown file in `.booklib/knowledge/nodes/` with YAML frontmatter. Node types: `research` · `note` · `decision` · `fact` · `component` · `feature` · `skill`.
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# Capture a note (opens $EDITOR, or pipe content in)
|
|
203
|
+
booklib note "JWT refresh token patterns"
|
|
204
|
+
echo "Short expiry + rotation" | booklib note "JWT refresh token patterns"
|
|
205
|
+
|
|
206
|
+
# Type or dictate — AI structures it, fixes grammar, extracts title + tags
|
|
207
|
+
booklib dictate
|
|
208
|
+
booklib dictate --raw # verbatim, no AI processing
|
|
209
|
+
booklib dictate --title "auth idea"
|
|
210
|
+
|
|
211
|
+
# Save the current agent conversation as a knowledge node
|
|
212
|
+
booklib save-chat --title "Auth redesign decisions"
|
|
213
|
+
booklib save-chat --summarize # AI extracts key decisions, attaches transcript
|
|
214
|
+
|
|
215
|
+
# Create a research stub (saves as a node for you to fill in)
|
|
216
|
+
booklib research "JWT refresh token patterns"
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Project Components
|
|
220
|
+
|
|
221
|
+
Define which parts of your project map to which components. When you edit a file, BookLib finds the owning component and injects all knowledge attached to it:
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
booklib component add auth "src/auth/**"
|
|
225
|
+
booklib component add payments "src/payments/**" "src/billing/**"
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Components are just `component` nodes in `.booklib/knowledge/nodes/` — same format, no separate config file.
|
|
229
|
+
|
|
230
|
+
### Edges
|
|
231
|
+
|
|
232
|
+
Connect nodes with typed relationships:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# Link by title — no need to look up IDs
|
|
236
|
+
booklib link "JWT strategy" "auth" --type applies-to
|
|
237
|
+
booklib link "auth" "payments" --type depends-on
|
|
238
|
+
booklib link "JWT strategy" "RFC 7519 notes" --type see-also
|
|
239
|
+
|
|
240
|
+
# Exact IDs still work if you prefer
|
|
241
|
+
booklib link node_abc123 comp_auth456 --type applies-to
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Edge types: `implements` · `contradicts` · `extends` · `applies-to` · `see-also` · `inspired-by` · `supersedes` · `depends-on`
|
|
245
|
+
|
|
246
|
+
All edges live in `.booklib/knowledge/graph.jsonl` — append-only, git-trackable.
|
|
247
|
+
|
|
248
|
+
### Inspect
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
booklib nodes list # list all nodes
|
|
252
|
+
booklib nodes show node_abc123 # view a specific node
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### Context Injection with Graph
|
|
256
|
+
|
|
257
|
+
`booklib context` automatically incorporates the knowledge graph alongside book skills when you pass a file path:
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
booklib context "implement jwt auth" --file src/auth/middleware.js
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
This finds the owning component (`comp_auth`), traverses its edges, runs semantic search, and injects the most relevant book wisdom + your own captured knowledge together.
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Context Builder
|
|
268
|
+
|
|
269
|
+
`booklib context` is the most powerful way to use BookLib before starting a task. It searches across all indexed skills simultaneously, extracts the most relevant passage from each matched book, and surfaces every decision it makes — including the quiet ones:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
booklib context "implement a payment service in Kotlin with async error handling"
|
|
273
|
+
booklib context "implement jwt auth" --file src/auth/middleware.js # also injects graph context
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Output:
|
|
277
|
+
- For each matched book: **book title + section + specific passage** that applies to your task
|
|
278
|
+
- **Auto-resolved decisions** (one book clearly more relevant): shown with prose rationale — non-blocking, you just see why
|
|
279
|
+
- **Genuine conflicts** (two books equally applicable): interactive `[a/b]` prompt with passage previews so you can make an informed choice
|
|
280
|
+
- A final **sharp system-prompt block** with all resolved knowledge stitched together, every piece cited with its source
|
|
281
|
+
|
|
282
|
+
Works for any domain, not just code:
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
booklib context "design a rate limiter for a distributed API"
|
|
286
|
+
booklib context "refactor a God class in Python" --prompt-only # just the prompt, no report
|
|
287
|
+
booklib context "add streaming to a Next.js chat UI" --prompt-only | pbcopy
|
|
288
|
+
booklib context "write a compelling investor update email"
|
|
289
|
+
booklib context "design a landing page for a SaaS product"
|
|
290
|
+
booklib context "structure a product requirements document for checkout"
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Semantic Search & Audit
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
booklib search "how to handle null values in Kotlin"
|
|
299
|
+
booklib search "event sourcing vs CQRS" --role=architect # filter to skills tagged for that role
|
|
300
|
+
booklib audit effective-kotlin src/PaymentService.kt # systematic review of a file
|
|
301
|
+
booklib scan # wisdom heatmap — violations per skill across the whole project (code)
|
|
302
|
+
booklib scan --docs # prose quality scan — passive voice, placeholders, hedge words in .md/.txt files
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Session Handoff
|
|
308
|
+
|
|
309
|
+
Preserves full context when switching agents or hitting rate limits:
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
booklib save-state --goal="..." --next="..." --progress="..."
|
|
313
|
+
booklib resume
|
|
314
|
+
booklib recover-auto # auto-recover from last session or git history
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
Multi-agent coordination:
|
|
318
|
+
|
|
319
|
+
```bash
|
|
320
|
+
booklib sessions-list
|
|
321
|
+
booklib sessions-merge auth-session,payment-session combined
|
|
322
|
+
booklib sessions-lineage main feature-x "branched for auth work"
|
|
323
|
+
booklib sessions-compare python-audit,kotlin-audit src/auth.ts comparison
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
All session data lives in `.booklib/` (gitignored). Nothing sent to any server.
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## MCP Server
|
|
331
|
+
|
|
332
|
+
BookLib ships a local MCP server that gives any MCP-compatible AI agent access to both the skill library and the knowledge graph.
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
# Automatic setup (recommended) — run once, picks up all your tools:
|
|
336
|
+
booklib init
|
|
337
|
+
|
|
338
|
+
# Manual setup if needed:
|
|
339
|
+
# Claude Code
|
|
340
|
+
claude mcp add booklib -- booklib-mcp
|
|
341
|
+
|
|
342
|
+
# Cursor / Gemini / Codex / Zed / Continue — booklib init writes the right file for each
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
**Available tools:**
|
|
346
|
+
|
|
347
|
+
| Tool | What it does |
|
|
348
|
+
|---|---|
|
|
349
|
+
| `get_context` | Full context builder — returns compiled book wisdom + knowledge graph for a task |
|
|
350
|
+
| `get_context` (with `file`) | Graph-aware context: also injects knowledge linked to the file's component |
|
|
351
|
+
| `create_note` | Create a knowledge node and index it immediately |
|
|
352
|
+
| `search_knowledge` | Semantic search across skills + knowledge nodes (filterable by source) |
|
|
353
|
+
| `list_nodes` | List all knowledge graph nodes with id, title, type |
|
|
354
|
+
| `link_nodes` | Create a typed edge between two nodes (by title or ID) |
|
|
355
|
+
| `audit_content` | Systematic file audit against a specific skill |
|
|
356
|
+
| `save_session_state` | Save agent progress for handoff to another agent |
|
|
357
|
+
|
|
358
|
+
**Agent compatibility:**
|
|
359
|
+
|
|
360
|
+
| | Claude Code | Cursor | Windsurf | Zed | Continue.dev | Copilot |
|
|
361
|
+
|---|---|---|---|---|---|---|
|
|
362
|
+
| Skills (auto-inject) | ✅ hook | via MCP | via MCP | via MCP | via MCP | ❌ |
|
|
363
|
+
| Context builder | ✅ | ✅ MCP | ✅ MCP | ✅ MCP | ✅ MCP | ❌ |
|
|
364
|
+
| Knowledge graph | ✅ | ✅ MCP | ✅ MCP | ✅ MCP | ✅ MCP | ❌ |
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## Quality
|
|
369
|
+
|
|
370
|
+
Each bundled skill is evaluated by asking a model to review code with and without the skill active. **Delta** = pass rate with skill minus pass rate without — it measures how much the skill actually changes model behaviour. A delta of +0pp means the model already knew it; a high delta means the skill is genuinely teaching it something new.
|
|
371
|
+
|
|
372
|
+
Thresholds: pass rate ≥ 80% · delta ≥ 20pp · baseline < 70%
|
|
373
|
+
|
|
374
|
+
<!-- quality-table-start -->
|
|
375
|
+
| Skill | Pass Rate | Baseline | Delta | Evals | Last Run |
|
|
376
|
+
|-------|-----------|----------|-------|-------|----------|
|
|
377
|
+
| animation-at-work | 96% | 64% | +32pp | 3 | 2026-03-28 |
|
|
378
|
+
| clean-code-reviewer | 91% | 59% | +33pp | 15 | 2026-03-28 |
|
|
379
|
+
| data-intensive-patterns | 91% | 62% | +29pp | 3 | 2026-03-28 |
|
|
380
|
+
| data-pipelines | 96% | 30% | +65pp | 3 | 2026-03-28 |
|
|
381
|
+
| design-patterns | 100% | 67% | +33pp | 3 | 2026-03-28 |
|
|
382
|
+
| domain-driven-design | 100% | 65% | +35pp | 3 | 2026-03-28 |
|
|
383
|
+
| effective-java | 92% | 67% | +25pp | 3 | 2026-03-28 |
|
|
384
|
+
| effective-kotlin | 100% | 56% | +44pp | 3 | 2026-03-28 |
|
|
385
|
+
| effective-python | 91% | 50% | +41pp | 3 | 2026-03-28 |
|
|
386
|
+
| effective-typescript | 93% | 27% | +67pp | 3 | 2026-03-28 |
|
|
387
|
+
| kotlin-in-action | 95% | 57% | +38pp | 3 | 2026-03-28 |
|
|
388
|
+
| lean-startup | 100% | 52% | +48pp | 3 | 2026-03-28 |
|
|
389
|
+
| microservices-patterns | 100% | 70% | +30pp | 3 | 2026-03-28 |
|
|
390
|
+
| programming-with-rust | 100% | 73% | +27pp | 3 | 2026-03-28 |
|
|
391
|
+
| refactoring-ui | 91% | 39% | +52pp | 3 | 2026-03-28 |
|
|
392
|
+
| rust-in-action | 94% | 63% | +31pp | 3 | 2026-03-28 |
|
|
393
|
+
| skill-router | 94% | 69% | +25pp | 3 | 2026-03-28 |
|
|
394
|
+
| spring-boot-in-action | 100% | 65% | +35pp | 3 | 2026-03-28 |
|
|
395
|
+
| storytelling-with-data | 100% | 100% | +0pp | 3 | 2026-03-28 |
|
|
396
|
+
| system-design-interview | 100% | 52% | +48pp | 3 | 2026-03-28 |
|
|
397
|
+
| using-asyncio-python | 91% | 67% | +24pp | 3 | 2026-03-28 |
|
|
398
|
+
| web-scraping-python | 96% | 38% | +58pp | 3 | 2026-03-28 |
|
|
399
|
+
<!-- quality-table-end -->
|
|
400
|
+
|
|
401
|
+
Run evals: `ANTHROPIC_API_KEY=... npx booklib eval <name>`
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## Repo Structure
|
|
406
|
+
|
|
407
|
+
```
|
|
408
|
+
booklib-ai/booklib/
|
|
409
|
+
├── skills/ 22 bundled skills (SKILL.md + examples + evals)
|
|
410
|
+
├── community/ community skill registry (registry.json)
|
|
411
|
+
├── agents/ 8 autonomous reviewer agents
|
|
412
|
+
├── commands/ slash commands, one per skill
|
|
413
|
+
├── rules/ always-on language standards
|
|
414
|
+
├── hooks/ Claude Code hooks (PreToolUse + PostToolUse)
|
|
415
|
+
├── booklib.config.json discovery source configuration
|
|
416
|
+
└── lib/
|
|
417
|
+
├── engine/ indexer, searcher, auditor, scanner, handoff, sessions
|
|
418
|
+
│ ├── graph.js knowledge graph: node CRUD, edge append, BFS traversal
|
|
419
|
+
│ ├── capture.js node creation: editor, stdin, AI structuring, dictation
|
|
420
|
+
│ └── graph-injector.js injection pipeline: semantic + graph traversal combined
|
|
421
|
+
├── context-builder.js cross-skill context builder (+ graph-aware buildWithGraph)
|
|
422
|
+
├── skill-fetcher.js fetch skills from GitHub/npm, sync to ~/.claude/skills/
|
|
423
|
+
├── discovery-engine.js scan configured sources for available skills
|
|
424
|
+
├── project-initializer.js generate context files for all AI tools
|
|
425
|
+
└── ...
|
|
426
|
+
bin/
|
|
427
|
+
├── booklib.js CLI (registered as `booklib`)
|
|
428
|
+
└── booklib-mcp.js MCP server
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
> **`.booklib/`** (gitignored) — local state: `sessions/` for handoffs, `index/` for search index, `skills/` for fetched community skills, `knowledge/` for graph nodes and edges.
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## Trust & Transparency
|
|
436
|
+
|
|
437
|
+
- **Book-grounded** — every bundled skill extracts practices from a canonical programming book
|
|
438
|
+
- **Evaluated** — quantitative evals: pass rate, delta over no-skill baseline
|
|
439
|
+
- **Open discovery** — community registry and source config are public and auditable
|
|
440
|
+
- **Local-first** — indexing, search, and session data stays on your machine
|
|
441
|
+
- **Marker-based ownership** — `.booklib` marker tracks which `~/.claude/skills/` dirs BookLib manages; never overwrites yours
|
|
442
|
+
- **Five runtime deps** — `@xenova/transformers`, `vectra`, `gray-matter`, `@modelcontextprotocol/sdk`, `minimatch`
|
|
443
|
+
|
|
444
|
+
---
|
|
445
|
+
|
|
446
|
+
## Contributing
|
|
447
|
+
|
|
448
|
+
To add a bundled skill:
|
|
449
|
+
|
|
450
|
+
```bash
|
|
451
|
+
cp -r skills/clean-code-reviewer skills/your-book-name
|
|
452
|
+
# Edit SKILL.md, examples/before.md, examples/after.md, evals/evals.json
|
|
453
|
+
npx booklib check your-book-name
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
To add a community skill, edit `community/registry.json` and open a PR.
|
|
457
|
+
To add an external source, edit `booklib.config.json`.
|
|
458
|
+
|
|
459
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for the full guide.
|
|
460
|
+
|
|
461
|
+
**Open requests:** [The Pragmatic Programmer](https://github.com/booklib-ai/booklib/issues/2) · [Clean Architecture](https://github.com/booklib-ai/booklib/issues/3) · [A Philosophy of Software Design](https://github.com/booklib-ai/booklib/issues/4) · [more →](https://github.com/booklib-ai/booklib/issues?q=is%3Aopen+label%3A%22good+first+issue%22)
|
|
462
|
+
|
|
463
|
+
---
|
|
464
|
+
|
|
465
|
+
## History
|
|
466
|
+
|
|
467
|
+
| Milestone | Date |
|
|
468
|
+
|-----------|------|
|
|
469
|
+
| First commit (`clean-code-reviewer` skill) | Feb 11, 2026 |
|
|
470
|
+
| First npm publish (`@booklib/skills` v1.0.0) | Feb 17, 2026 |
|
|
471
|
+
| v1.10.0 — 22 skills, 8 agents, profiles, rules | Mar 28, 2026 |
|
|
472
|
+
| BookLib Engine — semantic search, session handoff, multi-agent coordination | Mar 29, 2026 |
|
|
473
|
+
| Discovery engine — GitHub, npm, community registry, obra/superpowers, ruflo compatibility | Mar 29, 2026 |
|
|
474
|
+
| v1.11.0 — Non-code domain support (product, writing, strategy, design), `scan --docs` mode | Mar 30, 2026 |
|
|
475
|
+
| v1.12.0 — Knowledge Graph: nodes, edges, components, dictation, save-chat, graph-aware context injection | Mar 30, 2026 |
|
|
476
|
+
|
|
477
|
+
Full commit history at [github.com/booklib-ai/booklib](https://github.com/booklib-ai/booklib).
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
## Feedback & Issues
|
|
482
|
+
|
|
483
|
+
Found a bug? Have a suggestion? [Open an issue](https://github.com/booklib-ai/booklib/issues) — all feedback welcome.
|
|
484
|
+
|
|
485
|
+
---
|
|
486
|
+
|
|
487
|
+
## Star
|
|
488
|
+
|
|
489
|
+
If BookLib has helped you write better code, a ⭐ on [GitHub](https://github.com/booklib-ai/booklib) helps me know people are using it — and helps others discover it.
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
## Supporters
|
|
494
|
+
|
|
495
|
+
Thanks to everyone who supports BookLib on [Ko-fi](https://ko-fi.com/booklib) ☕
|
|
496
|
+
|
|
497
|
+
*Be the first — your name here.*
|
|
498
|
+
|
|
499
|
+
---
|
|
500
|
+
|
|
501
|
+
## License
|
|
502
|
+
|
|
503
|
+
MIT
|