abstraction-laws
Law-driven abstraction protocol: evidence first, seam test, minimal algebra, executable law check.
Best use case
abstraction-laws is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Law-driven abstraction protocol: evidence first, seam test, minimal algebra, executable law check.
Teams using abstraction-laws should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/abstraction-laws/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How abstraction-laws Compares
| Feature / Agent | abstraction-laws | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Law-driven abstraction protocol: evidence first, seam test, minimal algebra, executable law check.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Abstraction Laws ## When to use - You see the same code shape in 3+ places and want to unify it. - Refactors stall on “how general should this be?”. - Parameter clusters repeat across modules. - Algebraic cues show up (map/fold/compose, identity/associativity, combine/merge ops). ## Quick start 1. Collect 3+ concrete instances (file:line). 2. Classify similarity: essential (domain) vs accidental (incidental implementation). 3. Run the seam test (can callers stay ignorant of the concrete variant?). 4. Name the abstraction by behavior. 5. If algebraic, pick the minimal construction and add one executable law check. ## Evidence table ``` | Instance | Location | Shared Shape | Variance Point | |----------|----------|--------------|----------------| | A | file:line| ... | ... | | B | file:line| ... | ... | | C | file:line| ... | ... | ``` ## Essential vs accidental - Essential: the shared shape exists because of domain rules. - Accidental: the shared shape exists because of today’s implementation. - If accidental, prefer duplication (or a smaller helper) until the domain forces convergence. ## Seam test (yes/no) 1. Can callers use the abstraction without knowing the concrete variant? 2. Can you describe it in one sentence without naming a current implementation? 3. Would a new instance fit without adding flags or branching? If any answer is “no”, extract a smaller helper or keep duplication. ## Abstraction template ``` Name: <behavioral name> Fixed parts: - ... Variance points: - ... Interface sketch: - ... Break-glass: - <next likely change that makes this harmful> ``` ## Universalist pass (only if algebraic) Map to the smallest construction: - Product (record/struct) for independent fields - Coproduct (tagged union) for alternatives - Semigroup/monoid for combine operations - Functor/applicative/monad only if you can state and test the laws ## Law check (make it executable) Pick one and implement it where the repo can run it: - Identity: `op(x, identity) == x` - Associativity: `op(a, op(b, c)) == op(op(a, b), c)` - Functor identity: `map(id, x) == x` - Functor composition: `map(f, map(g, x)) == map(compose(f, g), x)` Verification: - Prefer property tests if the repo already has them. - Otherwise add a small set of representative cases (include an edge case). ## Deliverable format - Evidence table (3+ instances). - Essential vs accidental verdict. - Proposed abstraction (fixed vs variance points) + break-glass scenario. - One executable law check. ## Activation cues - "this looks like that" - "duplicate pattern" - "shared shape" - "extract abstraction" - "monoid/fold/compose"
Related Skills
acc-check-leaky-abstractions
Detects leaky abstractions in PHP code. Identifies implementation details exposed in interfaces, concrete returns from abstract methods, framework leakage into domain, and infrastructure concerns in application layer.
bgo
Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.
agentuity-cli-cloud-deployment-undeploy
Undeploy the latest deployment. Requires authentication. Use for Agentuity cloud platform operations
agentuity-cli-cloud-deployment-show
Show details about a specific deployment. Requires authentication. Use for Agentuity cloud platform operations
agentuity-cli-cloud-deployment-rollback
Rollback the latest to the previous deployment. Requires authentication. Use for Agentuity cloud platform operations
agentuity-cli-cloud-deployment-remove
Remove a specific deployment. Requires authentication. Use for Agentuity cloud platform operations
agentuity-cli-cloud-deployment-logs
View logs for a specific deployment. Requires authentication. Use for Agentuity cloud platform operations
agentuity-cli-cloud-deployment-list
List deployments. Requires authentication. Use for Agentuity cloud platform operations
agentuity-cli-cloud-deploy
Deploy project to the Agentuity Cloud. Requires authentication. Use for Agentuity cloud platform operations
agentuity-cli-cloud-agent-list
List agents for a project. Requires authentication. Use for Agentuity cloud platform operations
agentuity-cli-cloud-agent-get
Get details about a specific agent. Requires authentication. Use for Agentuity cloud platform operations
agent-terraform-engineer
Expert Terraform engineer specializing in infrastructure as code, multi-cloud provisioning, and modular architecture. Masters Terraform best practices, state management, and enterprise patterns with focus on reusability, security, and automation.