# Craft Support

> Crafting Support namespace code. Reusable, domain-agnostic.

- Skill: `attac-t/craft-support` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add attac-t/craft-support`
- Raw SKILL.md: https://api.skillmd.com/api/skills/attac-t/craft-support/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: attac-t (https://skillmd.com/u/attac-t)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/attac-t/craft-support

---


# Skill: Craft Support

> "Support is the toolbox. It doesn't know the house you're building."

## The Standard

1. **No Domain Imports**: `grep "use Domain" support/` must be empty.
2. **Contracts First**: Define interfaces for Domain to implement.
3. **Traits for Behavior**: `Has*`, `Interacts*`, `Can*` naming.
4. **Base Classes**: Abstract foundations for Domain to extend.

## The Anti-Patterns

| ❌ Don't                  | ✅ Do              | Why                  |
|--------------------------|-------------------|----------------------|
| Import Domain            | Define Contract   | Dependency inversion |
| Business rules           | Generic utilities | Domain-agnostic      |
| Concrete implementations | Abstract base     | Extensibility        |
| Hardcoded values         | Configuration     | Flexibility          |

## When to Use

See [decide-namespacing](../decide-namespacing/SKILL.md) for Support vs Domain decision.

## Real-World Examples

See [examples.md](examples.md).

