resume-bullets
Transforms completed work into powerful resume bullet points with action verbs, technical context, and quantified impact. Use when completing tasks, updating…
Background knowledge for code quality. Applied when reviewing naming conventions, DRY, SOLID, function size, refactoring, or when junior asks "is this clean", "code review", "better way".
$ npx -y skills add DanielPodolsky/ownyourcode --skill engineering --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/engineeringContext preview
The summary Claude sees to decide when to auto-load this skill.
Background knowledge for code quality. Applied when reviewing naming conventions, DRY, SOLID, function size, refactoring, or when junior asks "is this clean", "code review", "better way".
name: engineering-fundamentals description: Background knowledge for code quality. Applied when reviewing naming conventions, DRY, SOLID, function size, refactoring, or when junior asks "is this clean", "code review", "better way". user-invocable: false
> "Code is read more than it is written. Write for the reader, not the machine."
Activate this skill when reviewing:
---
---
❌ if (status === 2) { ... }
setTimeout(callback, 86400000);
✅ const STATUS = { ACTIVE: 2, INACTIVE: 1 };
if (status === STATUS.ACTIVE) { ... }
const ONE_DAY_MS = 24 * 60 * 60 * 1000;
setTimeout(callback, ONE_DAY_MS);❌ const d = new Date(); const temp = getUser(); const flag = true; ✅ const createdAt = new Date(); const currentUser = getUser(); const isAuthenticated = true;
❌ function processOrder(order) {
// 200 lines: validate, calculate, save, email, log...
}
✅ function processOrder(order) {
validateOrder(order);
const total = calculateTotal(order);
await saveOrder(order, total);
await sendConfirmationEmail(order);
logOrderProcessed(order);
}❌ function check(user) {
if (user) {
if (user.active) {
if (user.role === 'admin') {
return true;
}
}
}
return false;
}
✅ function check(user) {
if (!user) return false;
if (!user.active) return false;
if (user.role !== 'admin') return false;
return true;
}❌ // Used once, but has 10 configuration options
createFlexibleReusableButton({ ... });
✅ // Just make the button
<button className="primary">Submit</button>
// Abstract when you need it 3+ times---
| Principle | Question | Red Flag | |-----------|----------|----------| | **S**ingle Responsibility | "Does this class/function do one thing?" | Class with 10+ methods | | **O**pen/Closed | "Can I extend without modifying?" | Switch statements for types | | **L**iskov Substitution | "Can I swap implementations?" | Overriding methods that break contracts | | **I**nterface Segregation | "Are interfaces focused?" | Clients forced to depend on unused methods | | **D**ependency Inversion | "Do high-level modules depend on abstractions?" | Direct instantiation of dependencies |
---
Ask the junior these questions instead of giving answers:
1. **Naming**: "Would a new developer understand this name without context?" 2. **Function Size**: "Can you describe what this function does in one sentence?" 3. **Duplication**: "I see this pattern in three places. What happens if it needs to change?" 4. **Abstraction**: "How many times is this abstraction actually used?" 5. **Readability**: "If you came back to this code in 6 months, would you understand it?"
---
| Type | Convention | Example | |------|------------|---------| | Variables | camelCase | `userName`, `isActive` | | Constants | UPPER_SNAKE_CASE | `MAX_RETRIES`, `API_URL` | | Functions | camelCase + verb | `getUser()`, `handleSubmit()` | | Classes | PascalCase | `UserService`, `AuthProvider` | | Files (components) | PascalCase | `UserProfile.tsx` | | Files (utilities) | camelCase | `formatDate.ts` |
---
See detailed patterns in:
---
| Flag | Question to Ask | |------|-----------------| | Single letter variables | "What does `d` represent?" | | Functions > 30 lines | "Can we break this into smaller functions?" | | > 3 levels of nesting | "Can we use early returns?" | | Copy-pasted code | "If this logic changes, how many places need updating?" | | Commented-out code | "Is this needed? Can we delete it?" | | TODO without tracking | "Is there a ticket for this?" | | Magic strings/numbers | "Should this be a named constant?" |
Claude Code workflow for AI-mentored development. Work efficiently with Spec-Driven Development and the 6 Gates. Built to fight cognitive offloading — for developers using AI to grow and maintain ownership.
Repo: DanielPodolsky/ownyourcode
Transforms completed work into powerful resume bullet points with action verbs, technical context, and quantified impact. Use when completing tasks, updating…
Transforms completed work into STAR interview stories (Situation, Task, Action, Result). Use when completing tasks, preparing for behavioral interviews, or…
Reviews accessibility including WCAG, ARIA, keyboard navigation. Use when junior builds forms, buttons, modals, interactive elements, or asks "is this…
Reviews API design, REST conventions, and backend architecture. Use when junior builds API endpoints, Express routes, middleware, controllers, or asks "is this…
Reviews schema design, SQL queries, ORM patterns. Use when junior creates schema, writes queries, adds migrations, works with Prisma/MongoDB/PostgreSQL, or…
Guides systematic debugging through Protocol D (READ, ISOLATE, DOCS, HYPOTHESIZE, VERIFY). Use when junior says "stuck", "not working", "broken", "bug",…