wydt
// Ask AI's opinion on code - identify improvements, code smells, anti-patterns, and quality issues. Suggest fixes in structured format with Problem/Solution/Why triplets. Read-only, makes no changes.
$ git log --oneline --stat
stars:201
forks:38
updated:February 27, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
namewydt
descriptionAsk AI's opinion on code - identify improvements, code smells, anti-patterns, and quality issues. Suggest fixes in structured format with Problem/Solution/Why triplets. Read-only, makes no changes.
WYDT - What You Doing There?
Overview
Quick code quality check. Get AI's eyes on your code to spot issues you might have missed. Shorter version of code review.
Use when:
- Before committing code
- After finishing a feature
- When something "feels off" but you can't pinpoint it
- Code review prep
- Learning a new codebase
Core Principle
Read only. Suggest only. Never modify code. This skill identifies issues and describes solutions. It does not implement fixes.
The WYDT Process
List of files to check:
$ARGUMENTS
Phase 1: Read & Understand
- Read the code completely - don't skim
- Identify the purpose - what is this code trying to do?
- Note context - where does it fit in the architecture?
Phase 2: Analyze
Check for:
| Category | What to Look For |
|---|---|
| Code Smells | Duplication, long methods, large classes, feature envy |
| Anti-patterns | God objects, singleton abuse, premature abstraction |
| Quality | Error handling, edge cases, null safety, type safety |
| Performance | Unnecessary loops, repeated operations, memory leaks |
| Readability | Naming, comments, complexity, organization |
| Maintainability | Coupling, testability, single responsibility |
| Security | Injection risks, exposed secrets, unsafe operations |
| Idioms | Language patterns missed, unconventional style |
Phase 3: Structure Findings
Format each finding as:
N. **Problem**: [clear description of the issue]
**Solution**: [concrete, actionable fix description]
**Why**: [impact of the issue - bugs, maintenance, readability, etc.]
Severity indicators (prefix with emoji):
- 🔴 Critical - Bug risk, security issue, broken behavior
- 🟡 Warning - Code smell, maintenance burden, tech debt
- 🟢 Suggestion - Style, minor improvement, nice-to-have
Phase 4: Prioritize
Order findings by:
- Critical issues first
- Quick wins second
- Architectural concerns last (with discussion prompt)
Example Output
🔴 Critical
1. **Problem**: No validation on `userId` parameter before database query
**Solution**: Add input validation - check type, format, and sanitize before use
**Why**: Unvalidated input can lead to injection attacks or unexpected crashes
🟡 Warning
2. **Problem**: Function `processData` does 4 different things (parse, validate, transform, save)
**Solution**: Split into 4 focused functions, compose them in a pipeline
**Why**: Multi-purpose functions are harder to test, debug, and modify without side effects
3. **Problem**: Duplicate logic for formatting dates in 3 files
**Solution**: Extract to shared utility function and import where needed
**Why**: Duplication means fixes must happen in multiple places - inevitable inconsistency
🟢 Suggestion
4. **Problem**: Variable `x` doesn't describe what it holds
**Solution**: Rename to `activeUserCount` or similar descriptive name
**Why**: Code is read 10x more than written; unclear names slow down every future reader
Universal Red Flags
Always mention if found:
- No error handling for operations that can fail
- Silent failures (empty catch blocks, swallowed errors)
- Type assertions without validation
- Mutable shared state without clear ownership
- Logic mixed with presentation/data access
- Operations that should be batched but are done one-by-one
- Hardcoded values that should be configurable
- Missing input validation on boundaries
- Resource leaks (unclosed connections, unsubscribed listeners)
- Boolean parameters that control significant behavior changes
When NOT to Use
- Code you don't understand at all (ask for explanation first)
- Generated/boilerplate code (unless customizing)
- Third-party library internals
- During active debugging (use debugging skill instead)
Output Limits
- Maximum 10 findings per run
- If more exist, prioritize critical/warning over suggestions
- Mention at end if additional issues were found beyond the limit