[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AF736E7KKCPWPT7N492DTM":3,"skill-same:01M6AF736E7KKCPWPT7N492DTM":63},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":24,"linkOnly":25,"markdownContent":26,"markdownBody":27,"frontMatter":28,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":32,"repositoryHtmlUrl":33,"repositoryHomepageUrl":34,"ownerHtmlUrl":35,"ownerBlogUrl":36,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M6AF736E7KKCPWPT7N492DTM","naming-analyzer",null,"Suggest better variable, function, and class names based on context and conventions.","davila7\u002Fclaude-code-templates","davila7","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6216945?v=4","01M6ADEWWFPS191NFM0Y1EX1JH","Daniel Avila","01M6ADJHGM78PHQRD3XZTFDVKK",33481,"MIT","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fnaming-analyzer\u002FSKILL.md",[],[19,20,21,22,23],"naming analyzer","naming","analyzer","context","conventions","2026-11-10 10:12:30",false,"---\nname: naming-analyzer\ndescription: Suggest better variable, function, and class names based on context and conventions.\n---\n\n# Naming Analyzer Skill\n\nSuggest better variable, function, and class names based on context and conventions.\n\n## Instructions\n\nYou are a naming convention expert. When invoked:\n\n1. **Analyze Existing Names**:\n   - Variables, constants, functions, methods\n   - Classes, interfaces, types\n   - Files and directories\n   - Database tables and columns\n   - API endpoints\n\n2. **Identify Issues**:\n   - Unclear or vague names\n   - Abbreviations that obscure meaning\n   - Inconsistent naming conventions\n   - Misleading names (name doesn't match behavior)\n   - Too short or too long names\n   - Hungarian notation misuse\n   - Single-letter variables outside loops\n\n3. **Check Conventions**:\n   - Language-specific conventions (camelCase, snake_case, PascalCase)\n   - Framework conventions (React components, Vue props)\n   - Project-specific patterns\n   - Industry standards\n\n4. **Provide Suggestions**:\n   - Better alternative names\n   - Reasoning for each suggestion\n   - Consistency improvements\n   - Contextual appropriateness\n\n## Naming Conventions by Language\n\n### JavaScript\u002FTypeScript\n- Variables\u002Ffunctions: `camelCase`\n- Classes\u002Finterfaces: `PascalCase`\n- Constants: `UPPER_SNAKE_CASE`\n- Private fields: `_prefixUnderscore` or `#privateField`\n- Boolean: `is`, `has`, `can`, `should` prefixes\n\n### Python\n- Variables\u002Ffunctions: `snake_case`\n- Classes: `PascalCase`\n- Constants: `UPPER_SNAKE_CASE`\n- Private: `_prefix_underscore`\n- Boolean: `is_`, `has_`, `can_` prefixes\n\n### Java\n- Variables\u002Fmethods: `camelCase`\n- Classes\u002Finterfaces: `PascalCase`\n- Constants: `UPPER_SNAKE_CASE`\n- Packages: `lowercase`\n\n### Go\n- Exported: `PascalCase`\n- Unexported: `camelCase`\n- Acronyms: All caps (`HTTPServer`, not `HttpServer`)\n\n## Common Naming Issues\n\n### Too Vague\n```javascript\n\u002F\u002F ❌ Bad - Too generic\nfunction process(data) { }\nconst info = getData();\nlet temp = x;\n\n\u002F\u002F ✓ Good - Specific and clear\nfunction processPayment(transaction) { }\nconst userProfile = getUserProfile();\nlet previousValue = x;\n```\n\n### Misleading Names\n```javascript\n\u002F\u002F ❌ Bad - Name doesn't match behavior\nfunction getUser(id) {\n  const user = fetchUser(id);\n  user.lastLogin = Date.now();\n  saveUser(user); \u002F\u002F Side effect! Not just \"getting\"\n  return user;\n}\n\n\u002F\u002F ✓ Good - Name reflects actual behavior\nfunction fetchAndUpdateUserLogin(id) {\n  const user = fetchUser(id);\n  user.lastLogin = Date.now();\n  saveUser(user);\n  return user;\n}\n```\n\n### Abbreviations\n```javascript\n\u002F\u002F ❌ Bad - Unclear abbreviations\nconst usrCfg = loadConfig();\nfunction calcTtl(arr) { }\n\n\u002F\u002F ✓ Good - Clear and readable\nconst userConfig = loadConfig();\nfunction calculateTotal(amounts) { }\n\n\u002F\u002F ✓ Acceptable - Well-known abbreviations\nconst htmlElement = document.getElementById('main');\nconst apiUrl = process.env.API_URL;\n```\n\n### Boolean Naming\n```javascript\n\u002F\u002F ❌ Bad - Unclear state\nconst login = user.authenticated;\nconst status = checkUser();\n\n\u002F\u002F ✓ Good - Clear boolean intent\nconst isLoggedIn = user.authenticated;\nconst isUserValid = checkUser();\nconst hasPermission = user.roles.includes('admin');\nconst canEditPost = isOwner || isAdmin;\nconst shouldShowNotification = isEnabled && hasUnread;\n```\n\n### Magic Numbers\n```javascript\n\u002F\u002F ❌ Bad - Unnamed constants\nif (age > 18) { }\nsetTimeout(callback, 3600000);\n\n\u002F\u002F ✓ Good - Named constants\nconst LEGAL_AGE = 18;\nconst ONE_HOUR_IN_MS = 60 * 60 * 1000;\n\nif (age > LEGAL_AGE) { }\nsetTimeout(callback, ONE_HOUR_IN_MS);\n```\n\n## Usage Examples\n\n```\n@naming-analyzer\n@naming-analyzer src\u002F\n@naming-analyzer UserService.js\n@naming-analyzer --conventions\n@naming-analyzer --fix-all\n```\n\n## Report Format\n\n```markdown\n# Naming Analysis Report\n\n## Summary\n- Items analyzed: 156\n- Issues found: 23\n- Critical: 5 (misleading names)\n- Major: 12 (unclear\u002Fvague)\n- Minor: 6 (convention violations)\n\n---\n\n## Critical Issues (5)\n\n### src\u002Fservices\u002FUserService.js:45\n**Current**: `getUser(id)`\n**Issue**: Function name implies read-only but has side effects (updates lastLogin)\n**Severity**: Critical - Misleading\n**Suggestion**: `fetchAndUpdateUserLogin(id)`\n**Reason**: Name should reflect the mutation\n\n### src\u002Futils\u002Fhelpers.js:23\n**Current**: `validate(x)`\n**Issue**: Generic parameter name, unclear what's being validated\n**Severity**: Critical - Too vague\n**Suggestion**: `validateEmail(emailAddress)`\n**Reason**: Specific names improve clarity\n\n---\n\n## Major Issues (12)\n\n### src\u002Fcomponents\u002FDataList.jsx:12\n**Current**: `const d = new Date()`\n**Issue**: Single-letter variable in large scope\n**Severity**: Major\n**Suggestion**: `const currentDate = new Date()`\n**Reason**: Clarity and searchability\n\n### src\u002Fapi\u002Fclient.js:67\n**Current**: `function proc(data) {}`\n**Issue**: Abbreviated function name\n**Severity**: Major\n**Suggestion**: `function processApiResponse(data) {}`\n**Reason**: Full words are more readable\n\n### src\u002Fmodels\u002FUser.js:34\n**Current**: `user.active`\n**Issue**: Boolean property without prefix\n**Severity**: Major\n**Suggestion**: `user.isActive`\n**Reason**: Follow boolean naming convention\n\n### src\u002Futils\u002Fformat.js:89\n**Current**: `const MAX = 100`\n**Issue**: Generic constant name\n**Severity**: Major\n**Suggestion**: `const MAX_RETRY_ATTEMPTS = 100`\n**Reason**: Specific purpose is clearer\n\n---\n\n## Minor Issues (6)\n\n### src\u002Fconfig\u002Fsettings.js:12\n**Current**: `const API_url = '...'`\n**Issue**: Inconsistent casing (mixing UPPER and lower)\n**Severity**: Minor\n**Suggestion**: `const API_URL = '...'` or `const apiUrl = '...'`\n**Reason**: Consistency in convention\n\n### src\u002Fhelpers\u002Fstring.js:45\n**Current**: `function strToNum(s) {}`\n**Issue**: Abbreviated function and parameter\n**Severity**: Minor\n**Suggestion**: `function stringToNumber(value) {}`\n**Reason**: Clarity over brevity\n\n---\n\n## Convention Violations\n\n### Inconsistent Boolean Prefixes\n**Locations**: 8 files\n**Issue**: Mixed use of `is`, `has`, `can` vs no prefix\n**Recommendation**: Standardize on boolean prefixes\n- Use `is` for state: `isActive`, `isVisible`\n- Use `has` for possession: `hasPermission`, `hasError`\n- Use `can` for ability: `canEdit`, `canDelete`\n- Use `should` for decisions: `shouldRender`, `shouldValidate`\n\n### Mixed Naming Conventions\n**Location**: src\u002Flegacy\u002F\n**Issue**: Mix of camelCase and snake_case in JavaScript\n**Recommendation**: Convert all to camelCase for consistency\n\n---\n\n## Suggested Renaming\n\n### High Priority (Misleading or Critical)\n1. `getUser` → `fetchAndUpdateUserLogin` (src\u002Fservices\u002FUserService.js:45)\n2. `validate` → `validateEmail` (src\u002Futils\u002Fhelpers.js:23)\n3. `process` → `processPaymentTransaction` (src\u002Fpayment\u002Fprocessor.js:67)\n\n### Medium Priority (Clarity)\n1. `d` → `currentDate` (7 locations)\n2. `temp` → `previousValue` (4 locations)\n3. `data` → `apiResponse` or more specific (12 locations)\n4. `arr` → `items`, `values`, or more specific (8 locations)\n\n### Low Priority (Convention)\n1. `active` → `isActive` (12 locations)\n2. `error` → `hasError` (6 locations)\n3. `API_url` → `API_URL` (3 locations)\n\n---\n\n## Naming Patterns to Follow\n\n### Functions\u002FMethods\n- Verbs: `get`, `set`, `create`, `update`, `delete`, `fetch`, `calculate`, `validate`\n- Clear action: `sendEmail()`, `parseJSON()`, `formatCurrency()`\n\n### Classes\n- Nouns: `UserService`, `PaymentProcessor`, `EmailValidator`\n- Avoid generic: Don't use `Manager`, `Helper`, `Utility` unless necessary\n\n### Variables\n- Nouns or noun phrases: `user`, `emailAddress`, `totalAmount`\n- Descriptive: `userList` not `list`, `activeUsers` not `users2`\n\n### Constants\n- All caps with underscores: `MAX_RETRY_ATTEMPTS`, `DEFAULT_TIMEOUT`\n- Include units: `CACHE_DURATION_MS`, `MAX_FILE_SIZE_MB`\n\n### Booleans\n- Question form: `isValid`, `hasPermission`, `canEdit`\n- Affirmative: `isEnabled` not `isDisabled` (prefer positive)\n\n---\n\n## Refactoring Script\n\nWould you like me to create a refactoring script to apply these changes?\nThis will:\n1. Rename all suggested items\n2. Update all references\n3. Maintain git history\n4. Generate migration guide\n\n---\n\n## Best Practices\n\n✓ **DO**:\n- Use full words over abbreviations\n- Be specific and descriptive\n- Follow language conventions\n- Use consistent patterns\n- Make booleans obvious\n- Include units in constants\n\n✗ **DON'T**:\n- Use single letters (except in loops: i, j, k)\n- Use vague names (data, info, temp, x)\n- Mix naming conventions\n- Use misleading names\n- Over-abbreviate\n- Use Hungarian notation in modern code\n```\n\n## Naming Decision Tree\n\n```\nIs it a boolean?\n├─ Yes → Use is\u002Fhas\u002Fcan\u002Fshould prefix\n└─ No → Is it a function?\n    ├─ Yes → Use verb phrase (action)\n    └─ No → Is it a class?\n        ├─ Yes → Use noun (PascalCase)\n        └─ No → Is it a constant?\n            ├─ Yes → Use UPPER_SNAKE_CASE\n            └─ No → Use descriptive noun (camelCase\u002Fsnake_case)\n```\n\n## Notes\n\n- Prioritize clarity over brevity\n- Context matters (loop counters can be `i`, `j`)\n- Well-known abbreviations are okay (`html`, `api`, `url`, `id`)\n- Consistency within a project is more important than perfect naming\n- Refactor names as understanding improves\n- Use IDE rename refactoring to safely update all references\n","# Naming Analyzer Skill\n\nSuggest better variable, function, and class names based on context and conventions.\n\n## Instructions\n\nYou are a naming convention expert. When invoked:\n\n1. **Analyze Existing Names**:\n   - Variables, constants, functions, methods\n   - Classes, interfaces, types\n   - Files and directories\n   - Database tables and columns\n   - API endpoints\n\n2. **Identify Issues**:\n   - Unclear or vague names\n   - Abbreviations that obscure meaning\n   - Inconsistent naming conventions\n   - Misleading names (name doesn't match behavior)\n   - Too short or too long names\n   - Hungarian notation misuse\n   - Single-letter variables outside loops\n\n3. **Check Conventions**:\n   - Language-specific conventions (camelCase, snake_case, PascalCase)\n   - Framework conventions (React components, Vue props)\n   - Project-specific patterns\n   - Industry standards\n\n4. **Provide Suggestions**:\n   - Better alternative names\n   - Reasoning for each suggestion\n   - Consistency improvements\n   - Contextual appropriateness\n\n## Naming Conventions by Language\n\n### JavaScript\u002FTypeScript\n- Variables\u002Ffunctions: `camelCase`\n- Classes\u002Finterfaces: `PascalCase`\n- Constants: `UPPER_SNAKE_CASE`\n- Private fields: `_prefixUnderscore` or `#privateField`\n- Boolean: `is`, `has`, `can`, `should` prefixes\n\n### Python\n- Variables\u002Ffunctions: `snake_case`\n- Classes: `PascalCase`\n- Constants: `UPPER_SNAKE_CASE`\n- Private: `_prefix_underscore`\n- Boolean: `is_`, `has_`, `can_` prefixes\n\n### Java\n- Variables\u002Fmethods: `camelCase`\n- Classes\u002Finterfaces: `PascalCase`\n- Constants: `UPPER_SNAKE_CASE`\n- Packages: `lowercase`\n\n### Go\n- Exported: `PascalCase`\n- Unexported: `camelCase`\n- Acronyms: All caps (`HTTPServer`, not `HttpServer`)\n\n## Common Naming Issues\n\n### Too Vague\n```javascript\n\u002F\u002F ❌ Bad - Too generic\nfunction process(data) { }\nconst info = getData();\nlet temp = x;\n\n\u002F\u002F ✓ Good - Specific and clear\nfunction processPayment(transaction) { }\nconst userProfile = getUserProfile();\nlet previousValue = x;\n```\n\n### Misleading Names\n```javascript\n\u002F\u002F ❌ Bad - Name doesn't match behavior\nfunction getUser(id) {\n  const user = fetchUser(id);\n  user.lastLogin = Date.now();\n  saveUser(user); \u002F\u002F Side effect! Not just \"getting\"\n  return user;\n}\n\n\u002F\u002F ✓ Good - Name reflects actual behavior\nfunction fetchAndUpdateUserLogin(id) {\n  const user = fetchUser(id);\n  user.lastLogin = Date.now();\n  saveUser(user);\n  return user;\n}\n```\n\n### Abbreviations\n```javascript\n\u002F\u002F ❌ Bad - Unclear abbreviations\nconst usrCfg = loadConfig();\nfunction calcTtl(arr) { }\n\n\u002F\u002F ✓ Good - Clear and readable\nconst userConfig = loadConfig();\nfunction calculateTotal(amounts) { }\n\n\u002F\u002F ✓ Acceptable - Well-known abbreviations\nconst htmlElement = document.getElementById('main');\nconst apiUrl = process.env.API_URL;\n```\n\n### Boolean Naming\n```javascript\n\u002F\u002F ❌ Bad - Unclear state\nconst login = user.authenticated;\nconst status = checkUser();\n\n\u002F\u002F ✓ Good - Clear boolean intent\nconst isLoggedIn = user.authenticated;\nconst isUserValid = checkUser();\nconst hasPermission = user.roles.includes('admin');\nconst canEditPost = isOwner || isAdmin;\nconst shouldShowNotification = isEnabled && hasUnread;\n```\n\n### Magic Numbers\n```javascript\n\u002F\u002F ❌ Bad - Unnamed constants\nif (age > 18) { }\nsetTimeout(callback, 3600000);\n\n\u002F\u002F ✓ Good - Named constants\nconst LEGAL_AGE = 18;\nconst ONE_HOUR_IN_MS = 60 * 60 * 1000;\n\nif (age > LEGAL_AGE) { }\nsetTimeout(callback, ONE_HOUR_IN_MS);\n```\n\n## Usage Examples\n\n```\n@naming-analyzer\n@naming-analyzer src\u002F\n@naming-analyzer UserService.js\n@naming-analyzer --conventions\n@naming-analyzer --fix-all\n```\n\n## Report Format\n\n```markdown\n# Naming Analysis Report\n\n## Summary\n- Items analyzed: 156\n- Issues found: 23\n- Critical: 5 (misleading names)\n- Major: 12 (unclear\u002Fvague)\n- Minor: 6 (convention violations)\n\n---\n\n## Critical Issues (5)\n\n### src\u002Fservices\u002FUserService.js:45\n**Current**: `getUser(id)`\n**Issue**: Function name implies read-only but has side effects (updates lastLogin)\n**Severity**: Critical - Misleading\n**Suggestion**: `fetchAndUpdateUserLogin(id)`\n**Reason**: Name should reflect the mutation\n\n### src\u002Futils\u002Fhelpers.js:23\n**Current**: `validate(x)`\n**Issue**: Generic parameter name, unclear what's being validated\n**Severity**: Critical - Too vague\n**Suggestion**: `validateEmail(emailAddress)`\n**Reason**: Specific names improve clarity\n\n---\n\n## Major Issues (12)\n\n### src\u002Fcomponents\u002FDataList.jsx:12\n**Current**: `const d = new Date()`\n**Issue**: Single-letter variable in large scope\n**Severity**: Major\n**Suggestion**: `const currentDate = new Date()`\n**Reason**: Clarity and searchability\n\n### src\u002Fapi\u002Fclient.js:67\n**Current**: `function proc(data) {}`\n**Issue**: Abbreviated function name\n**Severity**: Major\n**Suggestion**: `function processApiResponse(data) {}`\n**Reason**: Full words are more readable\n\n### src\u002Fmodels\u002FUser.js:34\n**Current**: `user.active`\n**Issue**: Boolean property without prefix\n**Severity**: Major\n**Suggestion**: `user.isActive`\n**Reason**: Follow boolean naming convention\n\n### src\u002Futils\u002Fformat.js:89\n**Current**: `const MAX = 100`\n**Issue**: Generic constant name\n**Severity**: Major\n**Suggestion**: `const MAX_RETRY_ATTEMPTS = 100`\n**Reason**: Specific purpose is clearer\n\n---\n\n## Minor Issues (6)\n\n### src\u002Fconfig\u002Fsettings.js:12\n**Current**: `const API_url = '...'`\n**Issue**: Inconsistent casing (mixing UPPER and lower)\n**Severity**: Minor\n**Suggestion**: `const API_URL = '...'` or `const apiUrl = '...'`\n**Reason**: Consistency in convention\n\n### src\u002Fhelpers\u002Fstring.js:45\n**Current**: `function strToNum(s) {}`\n**Issue**: Abbreviated function and parameter\n**Severity**: Minor\n**Suggestion**: `function stringToNumber(value) {}`\n**Reason**: Clarity over brevity\n\n---\n\n## Convention Violations\n\n### Inconsistent Boolean Prefixes\n**Locations**: 8 files\n**Issue**: Mixed use of `is`, `has`, `can` vs no prefix\n**Recommendation**: Standardize on boolean prefixes\n- Use `is` for state: `isActive`, `isVisible`\n- Use `has` for possession: `hasPermission`, `hasError`\n- Use `can` for ability: `canEdit`, `canDelete`\n- Use `should` for decisions: `shouldRender`, `shouldValidate`\n\n### Mixed Naming Conventions\n**Location**: src\u002Flegacy\u002F\n**Issue**: Mix of camelCase and snake_case in JavaScript\n**Recommendation**: Convert all to camelCase for consistency\n\n---\n\n## Suggested Renaming\n\n### High Priority (Misleading or Critical)\n1. `getUser` → `fetchAndUpdateUserLogin` (src\u002Fservices\u002FUserService.js:45)\n2. `validate` → `validateEmail` (src\u002Futils\u002Fhelpers.js:23)\n3. `process` → `processPaymentTransaction` (src\u002Fpayment\u002Fprocessor.js:67)\n\n### Medium Priority (Clarity)\n1. `d` → `currentDate` (7 locations)\n2. `temp` → `previousValue` (4 locations)\n3. `data` → `apiResponse` or more specific (12 locations)\n4. `arr` → `items`, `values`, or more specific (8 locations)\n\n### Low Priority (Convention)\n1. `active` → `isActive` (12 locations)\n2. `error` → `hasError` (6 locations)\n3. `API_url` → `API_URL` (3 locations)\n\n---\n\n## Naming Patterns to Follow\n\n### Functions\u002FMethods\n- Verbs: `get`, `set`, `create`, `update`, `delete`, `fetch`, `calculate`, `validate`\n- Clear action: `sendEmail()`, `parseJSON()`, `formatCurrency()`\n\n### Classes\n- Nouns: `UserService`, `PaymentProcessor`, `EmailValidator`\n- Avoid generic: Don't use `Manager`, `Helper`, `Utility` unless necessary\n\n### Variables\n- Nouns or noun phrases: `user`, `emailAddress`, `totalAmount`\n- Descriptive: `userList` not `list`, `activeUsers` not `users2`\n\n### Constants\n- All caps with underscores: `MAX_RETRY_ATTEMPTS`, `DEFAULT_TIMEOUT`\n- Include units: `CACHE_DURATION_MS`, `MAX_FILE_SIZE_MB`\n\n### Booleans\n- Question form: `isValid`, `hasPermission`, `canEdit`\n- Affirmative: `isEnabled` not `isDisabled` (prefer positive)\n\n---\n\n## Refactoring Script\n\nWould you like me to create a refactoring script to apply these changes?\nThis will:\n1. Rename all suggested items\n2. Update all references\n3. Maintain git history\n4. Generate migration guide\n\n---\n\n## Best Practices\n\n✓ **DO**:\n- Use full words over abbreviations\n- Be specific and descriptive\n- Follow language conventions\n- Use consistent patterns\n- Make booleans obvious\n- Include units in constants\n\n✗ **DON'T**:\n- Use single letters (except in loops: i, j, k)\n- Use vague names (data, info, temp, x)\n- Mix naming conventions\n- Use misleading names\n- Over-abbreviate\n- Use Hungarian notation in modern code\n```\n\n## Naming Decision Tree\n\n```\nIs it a boolean?\n├─ Yes → Use is\u002Fhas\u002Fcan\u002Fshould prefix\n└─ No → Is it a function?\n    ├─ Yes → Use verb phrase (action)\n    └─ No → Is it a class?\n        ├─ Yes → Use noun (PascalCase)\n        └─ No → Is it a constant?\n            ├─ Yes → Use UPPER_SNAKE_CASE\n            └─ No → Use descriptive noun (camelCase\u002Fsnake_case)\n```\n\n## Notes\n\n- Prioritize clarity over brevity\n- Context matters (loop counters can be `i`, `j`)\n- Well-known abbreviations are okay (`html`, `api`, `url`, `id`)\n- Consistency within a project is more important than perfect naming\n- Refactor names as understanding improves\n- Use IDE rename refactoring to safely update all references\n",{"name":5,"description":7},"main","2b749c82b5d11fac39d9a6e021ce3f5b8a541bd1","cli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fnaming-analyzer",3931,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates","https:\u002F\u002Faitmpl.com","https:\u002F\u002Fgithub.com\u002Fdavila7","https:\u002F\u002Fdanielavila.me","Building AI dev tools with LLMs","2026-11-14 06:14:46",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add davila7\u002Fclaude-code-templates --skill naming-analyzer",{"tool":45,"command":46},"bunx","bunx skills add davila7\u002Fclaude-code-templates --skill naming-analyzer",{"tool":48,"command":49},"pnpm","pnpm dlx skills add davila7\u002Fclaude-code-templates --skill naming-analyzer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fnaming-analyzer\u002FSKILL.md",true,[53,59],{"path":54,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":57,"sourceHtmlUrl":58},"agents\u002Fopenai.yaml","REFERENCE","参考文档",146,"https:\u002F\u002Fgithub.com\u002Ffderuiter\u002FQRCraftly-web\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fto-tickets\u002Fagents\u002Fopenai.yaml",{"path":60,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":61,"sourceHtmlUrl":62},"README.md",7401,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fnaming-analyzer\u002FREADME.md",[64,96,123,156,191,215],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":75,"publishedAt":24},"01M70NHBTQ8BV0A2SCAZXEPHCX","wealthville-pool-scoring","Score DeFi liquidity pools before providing liquidity. Returns a 0-100 pool score and an Enter\u002FHold\u002FExit\u002FReduce\u002FAvoid verdict with calibrated confidence for ~68,800 Solana pools and 575 EVM pools, plus a public miss-inclusive track record. Use when asked whether a pool is worth LPing into, which pools look best right now, or how accurate the scores have actually been.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fweb-data\u002Fwealthville-pool-scoring\u002FSKILL.md",[70],{"categoryNo":71,"categoryName":72,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],"scoring","pool","wealthville pool scoring","liquidity","which","for","exit","now","use","when","reduce","with","record","track","verdict","evm","solana","how","public","look",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":103,"publishedAt":24},"01M70MB6VR8ERJ4EM8D5KHBMEV","technical-debt-auditor","Scans a codebase and produces a quantified technical debt report with a prioritized remediation plan. Analyzes dead code, TODO\u002FFIXME\u002FHACK markers, dependency staleness, complexity hotspots, code duplication signals, test coverage gaps, unused exports, and outdated patterns. Use this skill when the user asks to audit their codebase for tech debt, wants a health check of their code quality, says things like \"where should I focus refactoring\", \"find code smells\", \"audit my codebase\", \"what technical debt do we have\", \"prioritize cleanup work\", or asks about code quality metrics. Also trigger when the user mentions \"code rot\", \"legacy cleanup\", \"refactoring priorities\", or wants to understand the overall health of a project before a major effort. Trigger even if the user doesn't say \"technical debt\" explicitly — any request to systematically assess code quality and identify improvement priorities belongs here.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftechnical-debt-auditor\u002FSKILL.md",[102],{"categoryNo":71,"categoryName":72,"taxonomyType":73,"taxonomyTypeDesc":74},[104,105,106,107,108,109,110,111,112,113,114,85,115,116,117,118,119,120,121,122],"technical debt","debt","technical","technical debt auditor","auditor","coverage","complexity","markers","project","cleanup","unused","code","todo","work","plan","focus","signals","audit","dependency",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":138,"publishedAt":24},"01M70KPYH9QNHCNME5GJQGE22K","readonly-sql-guard","Make an agent's database access provably read-only. Use when an agent runs caller-supplied SQL against a production\u002FERP\u002Fanalytics database (a \"query\" MCP tool, text-to-SQL, an admin console), or when reviewing DB-access code for write\u002FDDL\u002Fside-effect\u002Ftransaction-escape risks. Checks what a statement CALLS, not just its shape.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdatabase\u002Freadonly-sql-guard\u002FSKILL.md",[129,132,133],{"categoryNo":130,"categoryName":131,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":71,"categoryName":72,"taxonomyType":73,"taxonomyTypeDesc":74},{"categoryNo":134,"categoryName":135,"taxonomyType":136,"taxonomyTypeDesc":137},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[139,140,141,142,143,144,145,81,146,147,148,149,150,151,152,84,153,154,85,155],"readonly","guard","sql guard","sql","readonly sql guard","erp","effect","read-only","db","just","tool","calls","only","MCP","access","database","query",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":160,"licenseFileUrl":161,"sourceHtmlUrl":162,"categories":163,"keywords":167,"publishedAt":24},"01M6AFY6F7CC2BBZP1QD6VTNVC","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FSKILL.md",[164],{"categoryNo":165,"categoryName":166,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000009","前端开发",[168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,81,190],"artifacts builder","web","web artifacts builder","artifacts","builder","state","routing","state management","component","css","frontend","ui","Tools","file","components","shadcn","react","Tailwind","suite","jsx","html","single-file","ui components",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":160,"licenseFileUrl":195,"sourceHtmlUrl":196,"categories":197,"keywords":202,"publishedAt":24},"01M6AFWF33SFV9Z3SF4PEEE4BF","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FSKILL.md",[198,201],{"categoryNo":199,"categoryName":200,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":165,"categoryName":166,"taxonomyType":73,"taxonomyTypeDesc":74},[203,204,205,206,207,169,208,178,179,209,210,211,212,81,213,87,214],"webapp testing","testing","webapp","browser","playwright","applications","debugging","toolkit","logs","screenshots","local","behavior",{"skillNo":216,"name":217,"nameZh":6,"description":218,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":160,"licenseFileUrl":219,"sourceHtmlUrl":220,"categories":221,"keywords":229,"publishedAt":24},"01M6AF67Q67JJJ5V51JR2P52KA","discernment-nudge","After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FSKILL.md",[222,225,226],{"categoryNo":223,"categoryName":224,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":71,"categoryName":72,"taxonomyType":73,"taxonomyTypeDesc":74},{"categoryNo":227,"categoryName":228,"taxonomyType":136,"taxonomyTypeDesc":137},"01JBSEEDCAT000000000000036","内容创作者",[230,231,232,233,234,235,236,237,171,238,181,115,239,240,241,242,243,151,244,85,245,246,247,248,249,93,250],"discernment nudge","nudge","interpretation","help","run","reasoning","data","writing","lookup","content","review","conversation","short","up","invoke","you","analysis","claims","argument","assemble","recommendations"]