Skip to content
Back to skills

Code Priority

ASecurity

Guide design decisions using the State > Coupling > Complexity > Code priority framework. Use when evaluating tradeoffs, reviewing design choices, deciding between implementations, or when code volume seems to be prioritized over deeper concerns.

  • 666 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 8, 2026
documentationpythontestingrefactoring

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill code-priority --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Code Priority?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Code Priority
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-code-priority/badge)](https://www.skillsdirectory.com/skills/majiayu000-code-priority)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: code-priority
description: Guide design decisions using the State > Coupling > Complexity > Code priority framework. Use when evaluating tradeoffs, reviewing design choices, deciding between implementations, or when code volume seems to be prioritized over deeper concerns.
---

# INSTRUCTIONS

Apply the code optimization priority framework: sacrifice lower priorities to improve higher ones.

## The Priority Hierarchy

```
State > Coupling > Complexity > Code
```

| Priority | Focus | Why It Matters |
|----------|-------|----------------|
| **1. State** | Minimize mutable state | Stateless code works identically in sequential, parallel, and distributed contexts |
| **2. Coupling** | Reduce dependencies | Loose coupling enables independent change and testing |
| **3. Complexity** | Simplify logic | Lower cognitive load, fewer bugs |
| **4. Code** | Reduce volume | Less to read and maintain |

## Core Principle

> "It's okay to increase coupling if it makes your code more stateless."

Each level can be sacrificed to improve a higher-priority concern:
- **More code** is acceptable for **less complexity**
- **More complexity** is acceptable for **less coupling**
- **More coupling** is acceptable for **less state**

## Decision Framework

When evaluating design choices:

```
1. Does Option A have less mutable state than Option B?
   Yes → Prefer Option A (even if more coupled/complex/verbose)
   No  ↓
2. Does Option A have less coupling than Option B?
   Yes → Prefer Option A (even if more complex/verbose)
   No  ↓
3. Does Option A have less complexity than Option B?
   Yes → Prefer Option A (even if more verbose)
   No  ↓
4. Prefer the option with less code
```

## Why This Order?

**State is hardest to reason about:**
- Requires tracking "before" and "after" conditions
- Creates implicit dependencies between operations
- Breaks parallelization and distribution
- Explodes test setup complexity

**Beginners optimize the wrong thing:**
- Code volume is most visible, so it gets optimized first
- But state, coupling, and complexity matter more for maintainability
- Experience teaches that a few extra lines are cheap; hidden state is expensive

## Practical Examples

### Prefer Stateless (Accept More Coupling)

```python
# More state, less coupling
class Processor:
    def __init__(self):
        self.result = None

    def process(self, data):
        self.result = transform(data)

    def get_result(self):
        return self.result

# Less state, more coupling (PREFERRED)
def process(data, transformer):
    return transformer(data)
```

### Prefer Less Coupling (Accept More Code)

```python
# Less code, more coupling
def create_user(data):
    user = User(**data)
    db.save(user)           # Coupled to global db
    email.send_welcome()    # Coupled to global email
    return user

# More code, less coupling (PREFERRED)
def create_user(data, repository, notifier):
    user = User(**data)
    repository.save(user)
    notifier.send_welcome(user)
    return user
```

### Prefer Less Complexity (Accept More Code)

```python
# Less code, more complexity
result = data if condition else (default if not other else fallback)

# More code, less complexity (PREFERRED)
if condition:
    result = data
elif other:
    result = fallback
else:
    result = default
```

## Review Checklist

When reviewing code or design:

- [ ] Is state being introduced where a pure function would work?
- [ ] Are global/shared dependencies creating hidden coupling?
- [ ] Is clever code sacrificing readability for brevity?
- [ ] Is the author optimizing for code volume over deeper concerns?

## Anti-Patterns

| Anti-Pattern | Problem | Better Approach |
|--------------|---------|-----------------|
| Global singletons | Maximum coupling + hidden state | Dependency injection |
| Mutable shared state | Race conditions, test complexity | Immutable data, message passing |
| Clever one-liners | Complexity hidden in density | Explicit multi-line logic |
| Premature DRY | Wrong abstraction, coupling | Tolerate duplication until pattern is clear |

## Integration with Other Practices

This framework complements:
- **Tidy First**: Structural improvements often reduce coupling
- **TDD**: Tests reveal hidden state and coupling problems early
- **Refactoring**: Many patterns specifically target state and coupling

## Reference

Based on: [curun1r's comment on Hacker News](https://news.ycombinator.com/item?id=11042400), attributed to Sandi Metz's design principles

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.