lampson_skill

This skill helps you make architectural decisions and design evolving APIs using Butler Lampson's abstraction, interfaces, and security principles.
  • Python

3

GitHub Stars

3

Bundled Files

2 months ago

Catalog Refreshed

4 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill copyleftdev/sk1llz --skill lampson

  • philosophy.md5.9 KB
  • references.md4.1 KB
  • SKILL.md10.9 KB

Overview

This skill encodes Butler Lampson–style system design guidance for architects and engineers. It captures principles of clean abstraction, durable interfaces, capability-based security, and practical hints for functionality, speed, and fault tolerance. Use it to drive architectural decisions, API contracts, and long-lived system design.

How this skill works

The skill inspects design plans and asks Lampson-style review questions: what is the abstraction, its invariants, failure modes, and evolution path. It suggests concrete patterns—capabilities, separation of normal and worst case, write-ahead logging, caching hints—and points out interface leaks and premature optimizations. Recommendations are actionable and prioritized: make it work, then make it right, then make it fast.

When to use it

  • Designing public APIs or libraries that must remain stable for years
  • Defining security boundaries and permission models (prefer capabilities)
  • Architecting storage, replication, and recovery for durability
  • Refactoring systems to reduce coupling and hide implementation details
  • Preparing design reviews or documenting invariants and failure modes

Best practices

  • Define interfaces before implementing; document what the abstraction guarantees and explicitly what it doesn’t
  • Keep interfaces minimal, consistent, and hide implementation secrets aggressively
  • Optimize only after correctness is established; separate fast normal path from slower worst cases
  • Prefer capability-style permissions and principle of least privilege for security
  • Design atomic or idempotent operations and use end-to-end verification for correctness

Example use cases

  • Design a storage engine interface that hides caching and file layout while guaranteeing atomic puts and durable logs
  • Create an API for a distributed service that exposes minimal operations and documents invariants and error modes
  • Replace ACL-based access checks with passed capabilities to simplify delegation and reduce confused-deputy risks
  • Tune performance by adding a hinting cache that supplies approximate answers and verifies them on demand
  • Run a design review checklist to validate evolution plans, failure isolation, and long-term maintainability

FAQ

If users must rely on internal behavior, special-case it, or cast around the API, the abstraction leaks. The interface should let you change implementation without changing clients.

When should I add an indirection layer?

Add indirection only when it provides clear value: hides complexity, enables change, or isolates failure. Weigh costs: overhead, debugging, and learning curve.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
lampson skill by copyleftdev/sk1llz | VeilStrat