oreilly-design-reference/SKILL.md
O'Reilly book reference lookup for software design decisions. Coding agents MUST use this skill whenever making or reviewing any design decision — choosing an architecture pattern, selecting a data structure, structuring a module, evaluating a library, deciding on an API contract, applying a design pattern, weighing trade-offs between approaches, or any moment where a choice between two or more implementation strategies comes up. The O'Reilly MCP handles the actual book search; this skill tells you how and when to invoke it. Trigger even for seemingly small decisions (naming, layering, concurrency model, error handling strategy) — the best engineers reach for authoritative references before committing to an approach.
npx skillsauth add kayaman/skills oreilly-design-referenceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A skill for coding agents that ensures every significant design decision is grounded in authoritative, book-level knowledge via the O'Reilly MCP.
Before committing to any design decision, search O'Reilly for references.
This is not optional. Even if you are confident in an approach, a 5-second O'Reilly lookup either confirms your direction with authoritative backing or surfaces a better alternative you hadn't considered. The O'Reilly MCP does the heavy lifting — your job is to know when and how to invoke it.
Invoke the O'Reilly MCP search on any of the following signals:
The O'Reilly MCP is the tool that performs the actual book and content search. When it is connected, coding agents should call it directly with a well-formed query. Do not attempt to answer design questions from memory alone when this MCP is available.
Good queries are specific. Include:
Examples of good queries:
"event sourcing vs CQRS trade-offs distributed systems"
"repository pattern domain-driven design"
"async error handling Python"
"observer pattern vs event bus"
"database sharding strategies horizontal scaling"
"dependency injection vs service locator"
"API versioning strategies REST"
"circuit breaker pattern resilience"
Examples of poor queries (too vague):
"design patterns" # too broad
"how to code" # not a design decision
"Python tutorial" # not a design question
1. IDENTIFY the design decision at hand
↓
2. FORMULATE a specific O'Reilly search query
↓
3. CALL the O'Reilly MCP search tool
↓
4. REVIEW the returned book excerpts, titles, and chapter references
↓
5. CITE the relevant source(s) in your explanation or PR comment
↓
6. APPLY the guidance — or explicitly note why you're diverging from it
For consequential decisions (architectural choices, public API design, major refactors), run 2–3 searches with different angles:
Search 1: the pattern you're considering ("event sourcing implementation")
Search 2: the alternative ("CQRS without event sourcing")
Search 3: trade-off framing ("event sourcing drawbacks complexity")
This surfaces the full picture before committing.
When reporting back to the developer, structure your reference-backed answer:
### Design Decision: [brief label]
**Recommended approach:** [your recommendation]
**O'Reilly references:**
- *[Book Title]* — [Author]: [one-sentence summary of relevant guidance]
- *[Book Title]* — [Author]: [one-sentence summary of relevant guidance]
**Trade-offs considered:**
- ✅ [Advantage of chosen approach]
- ⚠️ [Trade-off or caveat]
**Why not [alternative]:** [brief reasoning, ideally backed by a reference]
For design decisions baked into the codebase, add a reference comment:
# Architecture: Hexagonal (Ports & Adapters)
# Ref: "Architecture Patterns with Python" — Percival & Gregory, Ch. 2
class OrderRepository(AbstractRepository):
...
// Pattern: Strategy — delegates algorithm selection to runtime
// Ref: "Design Patterns" — GoF, p. 315
interface PricingStrategy {
calculate(order: Order): Money;
}
This makes architectural intent explicit and gives future maintainers a learning path.
If the O'Reilly MCP is unavailable:
[no O'Reilly reference — recommend manual lookup].learning.oreilly.com manually with
the query you would have used.Never silently skip the reference step — always surface the gap.
| Design Decision | Suggested O'Reilly Query |
|---|---|
| Microservices vs monolith | "microservices trade-offs monolith migration" |
| Event-driven architecture | "event-driven architecture patterns messaging" |
| Domain model design | "domain-driven design aggregate bounded context" |
| Async task queue | "task queue worker pattern async processing" |
| REST API design | "REST API design best practices versioning" |
| Database choice | "polyglot persistence database selection patterns" |
| Dependency injection | "dependency injection inversion of control containers" |
| Testing strategy | "test pyramid integration testing strategy" |
| Error handling | "error handling resilience fault tolerance patterns" |
| Caching | "caching strategies invalidation distributed cache" |
| Auth/AuthZ | "authentication authorization OAuth JWT patterns" |
| CI/CD pipeline | "continuous delivery deployment pipeline patterns" |
tools
Guidance for designing charts, graphs, plots, dashboards, and data visualizations that communicate clearly and persuade. Use when creating or reviewing a visualization, choosing a chart type, picking a color palette, decluttering a busy graphic, fixing misleading axes or proportions, building a dashboard, annotating a figure, or turning data into a presentation, report, or data-driven story. Grounded in the standard data-visualization literature (Knaflic, Tufte, Cleveland & McGill, Cairo, Wilke, Munzner, Few, Berinato). Covers chart selection, graphical perception and encoding, color and accessibility, decluttering, graphical integrity, dashboards, and narrative. Does NOT cover building data pipelines or ETL, statistical modeling or analysis methods, BI tool/vendor selection, or general UI/UX layout (see ux-design-principles). Tool-agnostic, with optional Python recipes.
development
Architect and implement production-grade microservices systems in TypeScript (NestJS) and Python (FastAPI), including resilience, observability, testing, deployment, and migration guidance.
development
--- name: databricks-genie-spaces-best-practices description: Design, configure, curate, govern, monitor, and integrate Databricks AI/BI Genie Spaces — the natural-language-to-SQL surface over Unity Catalog. Covers space scoping, general instructions, parameterized example SQL, SQL functions, trusted assets, JOIN configuration, knowledge store, certified queries, benchmarks, monitoring tab, feedback loops, the Genie Conversation API, governance via Unity Catalog (row filters, column masks, embed
tools
Implement OTP and passwordless authentication on AWS for TypeScript projects using Cognito CUSTOM_AUTH triggers (default) or a custom DynamoDB-backed flow, with SES (email) and SNS (SMS) delivery. Use when the user mentions OTP, one-time password, passwordless login, magic link, Cognito custom auth, DefineAuthChallenge, CreateAuthChallenge, VerifyAuthChallengeResponse, SES verification email, SNS SMS code, or MFA over email/SMS. Covers architecture decision (Cognito vs custom), Lambda trigger handlers, SES/SNS notifiers, DynamoDB schema with TTL, rate limiting, constant-time comparison, threat model (enumeration, replay, brute force), and aws-sdk-client-mock testing.