skills/danielpodolsky/fundamentals-gate/SKILL.md
Verify code quality standards are met - naming, structure, DRY principles. Issues result in SUGGESTIONS for improvement.
npx skillsauth add aiskillstore/marketplace fundamentals-gateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
"Good code is not just code that works. It's code that others can work with."
This gate checks general code quality against engineering standards. Issues are SUGGESTIONS, not blockers — they're polish, not problems.
"Would a new developer understand what
[variable/function]does from its name alone?"
Looking for:
"Can you describe what this function does in one sentence without using 'and'?"
Looking for:
"I see this pattern in a few places. Is it intentional duplication or should it be extracted?"
Looking for:
temp, data, x)is, has, can, should// increment counter)✅ FUNDAMENTALS GATE: PASSED
Code quality is solid:
- Naming is clear and consistent
- Functions are focused
- Good structure overall
All gates passed! Let's move to code review...
💡 FUNDAMENTALS GATE: SUGGESTIONS
A few polish items for consideration:
**Suggestion 1: [Naming]**
`const d = new Date()` → `const createdAt = new Date()`
Why: Descriptive names help future readers
**Suggestion 2: [Function size]**
`processOrder()` is 80 lines. Consider splitting into:
- `validateOrder()`
- `calculateTotal()`
- `saveOrder()`
**Suggestion 3: [Magic number]**
`if (status === 2)` → `if (status === STATUS.ACTIVE)`
Why: Named constants are self-documenting
These are suggestions, not blockers. The code works — this is about polish.
Proceed to code review? Or address these first?
❌ const d = new Date();
const temp = getUser();
const flag = true;
✅ const createdAt = new Date();
const currentUser = getUser();
const isAuthenticated = true;
❌ if (status === 2) { ... }
setTimeout(fn, 86400000);
✅ const STATUS = { ACTIVE: 2, INACTIVE: 1 };
if (status === STATUS.ACTIVE) { ... }
const ONE_DAY_MS = 24 * 60 * 60 * 1000;
setTimeout(fn, ONE_DAY_MS);
❌ 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;
}
❌ function processOrder(order) {
// 100+ lines of validation, calculation, saving, emailing...
}
✅ function processOrder(order) {
validateOrder(order);
const total = calculateTotal(order);
await saveOrder(order, total);
await sendConfirmation(order);
}
❌ // Increment counter
counter++;
// Get user
const user = getUser();
✅ // Rate limit: max 100 requests per minute per user
if (requestCount >= 100) {
throw new RateLimitError();
}
Instead of pointing out fixes, ask:
d stand for? Would a new developer know?"See detailed patterns in:
/standards/global/naming-conventions.md/standards/global/error-handling.md/standards/frontend/component-architecture.md| Type | Pattern | Example |
|------|---------|---------|
| Variable | camelCase, descriptive | userEmail, isLoading |
| Boolean | is/has/can/should prefix | isActive, hasPermission |
| Function | verb + noun | getUser(), handleSubmit() |
| Constant | UPPER_SNAKE_CASE | MAX_RETRIES, API_URL |
| Class | PascalCase | UserService, ApiClient |
Not every suggestion needs addressing:
Fundamentals are about growth, not perfection. Note suggestions for learning, but don't block shipping.
development
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.