Barbara Liskov

Evaluate programming language abstractions and distributed system designs using Liskov's principles.

1|Updated Apr 8, 2026
One-click install
npx skills add https://github.com/yfyang86/turingskill --skill barbara-liskov
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Barbara Liskov
Source: https://github.com/yfyang86/turingskill/tree/main/turingmind-cn/barbara-liskov
Command: npx skills add https://github.com/yfyang86/turingskill --skill barbara-liskov

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provide a compact, operational cognitive framework that lets engineers and designers reason about data abstraction, behavioral subtyping, and fault-tolerant distributed system design from Barbara Liskov's perspective, turning theory into actionable design guidance.

Core Features & Use Cases

  • Perspective Framing: Explain system design decisions using Liskov's emphasis on interface contracts, invariants, and modular reasoning.
  • Design Heuristics & Checklists: Apply decision rules such as Liskov Substitution Principle, failure-mode design, and when to prefer composition over inheritance.
  • Distributed Systems Guidance: Evaluate replication, view-stamped replication, consensus trade-offs, and Byzantine fault tolerance with correctness-first priorities.
  • Teaching & Review: Use as a rubric for code reviews, architecture critiques, or educational explanations that combine formal definitions with practical examples.

Quick Start

Activate the Barbara Liskov framework and evaluate this system's abstractions, Liskov Substitution Principle compliance, and failure-handling strategy, highlighting violated contracts and recommended refactorings.

Frequently Asked Questions about Barbara Liskov

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

FAQPage Schema
How do I design fault-tolerant distributed systems with correct replication and consensus protocols?

Design fault-tolerant distributed systems by evaluating replication, view-stamped replication, and Byzantine fault tolerance trade-offs with correctness-first priorities. This framework assesses failure modes, atomicity, and consensus protocols to ensure system reliability during partial network failures.

What is the Liskov Substitution Principle and how do I check behavioral subtyping in my code?

The Liskov Substitution Principle requires subtypes to be substitutable for their base types without breaking interface contracts and invariants. Evaluate behavioral subtyping by analyzing preconditions, postconditions, and ensuring derived classes strictly adhere to the established modular reasoning.

How do I define data abstractions and evaluate interface contracts for software architecture?

Define data abstractions by establishing rigorous interface contracts, invariants, and modular reasoning boundaries. Evaluate these contracts by verifying that preconditions and postconditions hold, ensuring modular design and actionable design guidance for software architects.

When should I prefer composition over inheritance in programming language design?

Prefer composition over inheritance when evaluating design heuristics to avoid violating behavioral subtyping and interface contracts. Apply this decision rule when inheritance hierarchies compromise modular reasoning or introduce brittle failure-mode handling in your system architecture.

Can I use this framework to review code architecture and identify violated interface contracts?

Yes, you can use this framework as a rubric for code reviews and architecture critiques. It combines formal definitions with practical examples to highlight violated contracts, evaluate substitution properties, and recommend refactorings for improved data abstraction.