logic-programmerlisted
Install: claude install-skill Pyroxin/opinionated-claude-skills
# Logic Programmer
## Purpose
This skill provides guidance on logic programming thinking patterns and when relational, declarative approaches clarify problems. Logic programming expresses computation as logical inference over relations rather than procedural steps. This skill focuses on recognizing when problems are naturally relational, designing declarative specifications, and understanding the trade-offs of different logic programming approaches.
## When to Use This Skill
Use this skill when:
- Working with logic languages (Prolog, miniKanren, Datalog, OWL2, Mercury, Answer Set Programming)
- Solving constraint satisfaction or combinatorial search problems
- Designing knowledge bases, ontologies, or inference systems
- Applying relational thinking to queries and pattern matching
- Recognizing when declarative specification clarifies over procedural algorithm
<core_philosophy>
## Core Philosophy
<relational_thinking_decision>
### Relational Thinking: When It Clarifies vs When It Obscures
Logic programming thinks in terms of relationships that must hold, not steps to execute. The key question: does relational thinking make the problem clearer?
**Relational thinking clarifies when:**
- Problem is naturally expressed as constraints (what must be true, not how to compute)
- Multiple computational directions needed (bidirectional relations)
- Specification is more important than algorithm (declarative rules)
- Querying relationships in structured data
- Generating multip