book-lamp-development

Standardise Book Lamp application architecture, adapters, and project governance.

Updated Sep 21, 2025
One-click install
npx skills add https://github.com/kchapl/book-lamp --skill book-lamp-development
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: book-lamp-development
Source: https://github.com/kchapl/book-lamp/tree/main/.agent/skills/book-lamp-development
Command: npx skills add https://github.com/kchapl/book-lamp --skill book-lamp-development

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The Book Lamp development skill standardises how teams design, build, and evolve the Book Lamp application, providing a unified approach to architecture, adapters, and project philosophy.

Core Features & Use Cases

  • Layered Architecture guidance: separation of concerns between Models, Adapters (Persistence), Service Layer, and Entry Points.
  • Pure vs. Effectful Code: rules to keep business logic deterministic and isolate I/O to adapters or edge functions.
  • Frontend & Documentation Standards: guidance on separating CSS/JS, templating, and British English docstrings.
  • Use Case: A team adds a new Google Sheets storage pathway by following the layered pattern and dependency injection principles.

Quick Start

Review the guide to align your feature development with the Book Lamp architectural principles and start applying the practices immediately.

Frequently Asked Questions about book-lamp-development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure Python code to separate pure business logic from effectful I/O operations?

Separate pure business logic from effectful I/O by isolating side effects within adapters or edge functions, keeping the service layer deterministic. This clean architecture approach ensures business rules remain testable and independent of external systems like Google Sheets.

What is a layered architecture approach for adding a new Google Sheets storage adapter?

A layered architecture for Google Sheets storage separates concerns across Models, Adapters, Service Layer, and Entry Points. You implement the storage pathway within the persistence adapter layer, injecting dependencies to maintain clean separation and testability.

How do I use dependency injection to connect service layers with persistence adapters?

Use dependency injection to pass persistence adapters into the service layer at the entry points, rather than instantiating them inside. This pattern keeps the service layer decoupled from specific data sources, allowing seamless Google Sheets adapter substitution.

What coding standards should I follow for frontend and documentation in a Python project?

Follow frontend coding standards by separating CSS and JavaScript with structured templating, and write documentation using British English docstrings. These standards ensure consistent project governance and maintainable code across the application.

Can I use this development approach for teams building applications with multiple storage pathways?

Yes, this development approach suits software engineering teams building and evolving applications with multiple storage pathways. The layered architecture and dependency injection principles allow teams to add new data sources without disrupting existing business logic.

Why does my service layer code break when I change the Google Sheets storage implementation?

Service layer code breaks when storage implementation changes if dependency injection is not properly applied. Ensure the service layer depends on adapter interfaces rather than concrete Google Sheets implementations to maintain clean architecture separation.