# Approach

> Produce named strategic options with file/line estimates and pros/cons

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

---


## Option format

Each option should include:

- **Description:** 1 plain-language sentence. Stay at strategy level; do not include syntax, deep implementation details, or edge-case policy decisions
> **Est. changed files count:** Range (e.g., 3-5)
> **Est. changed lines count:** Range (e.g., 80-140)
> **Pros:** Exactly one sentence
> **Cons:** Exactly one sentence

When presenting multiple options, use **Option A, Option B, Option C, ...** and make Option A your most recommended path.

For every option after A, describe **only the differences from Option A**. Do not restate shared behavior, assumptions, or mechanics.

## Anti-patterns to avoid

- Do not include ordered implementation phases or per-file step lists (those belong in sketch)
- Do not explain how you calculated file or line counts
- Do not go syntax-level or deep into implementation details
- Do not discuss parameter design, edge-case policies, or internal mechanics at this stage

---

## Example

**Option A:** Add a validation layer in the `User.changeset/2` function that checks email uniqueness against the database before attempting insert.
> **Est. changed files count:** 1-2
> **Est. changed lines count:** 15-25
> **Pros:** Validation happens before hitting the database, reducing failed inserts and keeping business logic centralized.
> **Cons:** Adds a query to the changeset path, which runs on every user creation.

**Option B:** Move uniqueness validation to the database layer with a unique constraint instead.
> **Est. changed files count:** 2 (migration + schema)
> **Est. changed lines count:** 10-20
> **Pros:** Prevents bad data at the source and handles concurrent requests safely.
> **Cons:** Errors surface after insert attempt, requiring exception handling upstream.

