@su-record/vibe 2.7.13 → 2.7.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +37 -37
- package/CLAUDE.md +134 -126
- package/LICENSE +21 -21
- package/README.md +449 -449
- package/agents/architect-low.md +41 -41
- package/agents/architect-medium.md +59 -59
- package/agents/architect.md +80 -80
- package/agents/build-error-resolver.md +115 -115
- package/agents/compounder.md +261 -261
- package/agents/diagrammer.md +178 -178
- package/agents/docs/api-documenter.md +99 -99
- package/agents/docs/changelog-writer.md +93 -93
- package/agents/e2e-tester.md +294 -294
- package/agents/explorer-low.md +42 -42
- package/agents/explorer-medium.md +59 -59
- package/agents/explorer.md +48 -48
- package/agents/implementer-low.md +43 -43
- package/agents/implementer-medium.md +52 -52
- package/agents/implementer.md +54 -54
- package/agents/junior-mentor.md +141 -141
- package/agents/planning/requirements-analyst.md +84 -84
- package/agents/planning/ux-advisor.md +83 -83
- package/agents/qa/acceptance-tester.md +86 -86
- package/agents/qa/edge-case-finder.md +93 -93
- package/agents/refactor-cleaner.md +143 -143
- package/agents/research/best-practices-agent.md +199 -199
- package/agents/research/codebase-patterns-agent.md +157 -157
- package/agents/research/framework-docs-agent.md +188 -188
- package/agents/research/security-advisory-agent.md +213 -213
- package/agents/review/architecture-reviewer.md +107 -107
- package/agents/review/complexity-reviewer.md +116 -116
- package/agents/review/data-integrity-reviewer.md +88 -88
- package/agents/review/git-history-reviewer.md +103 -103
- package/agents/review/performance-reviewer.md +86 -86
- package/agents/review/python-reviewer.md +150 -150
- package/agents/review/rails-reviewer.md +139 -139
- package/agents/review/react-reviewer.md +144 -144
- package/agents/review/security-reviewer.md +80 -80
- package/agents/review/simplicity-reviewer.md +140 -140
- package/agents/review/test-coverage-reviewer.md +116 -116
- package/agents/review/typescript-reviewer.md +127 -127
- package/agents/searcher.md +54 -54
- package/agents/simplifier.md +120 -120
- package/agents/tester.md +49 -49
- package/agents/ui/ui-a11y-auditor.md +93 -93
- package/agents/ui/ui-antipattern-detector.md +94 -94
- package/agents/ui/ui-dataviz-advisor.md +69 -69
- package/agents/ui/ui-design-system-gen.md +57 -57
- package/agents/ui/ui-industry-analyzer.md +49 -49
- package/agents/ui/ui-layout-architect.md +65 -65
- package/agents/ui/ui-stack-implementer.md +68 -68
- package/agents/ui/ux-compliance-reviewer.md +81 -81
- package/agents/ui-previewer.md +258 -260
- package/commands/vibe.analyze.md +11 -13
- package/commands/vibe.review.md +43 -1
- package/commands/vibe.run.md +2124 -2078
- package/commands/vibe.spec.md +9 -4
- package/commands/vibe.spec.review.md +569 -565
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +33 -8
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/info.js +54 -54
- package/dist/cli/commands/init.js +5 -5
- package/dist/cli/commands/remove.js +14 -14
- package/dist/cli/commands/sentinel.js +27 -27
- package/dist/cli/commands/skills.js +5 -5
- package/dist/cli/commands/slack.js +10 -10
- package/dist/cli/commands/telegram.js +12 -12
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +51 -51
- package/dist/cli/llm/claude-commands.js +16 -16
- package/dist/cli/llm/config.js +19 -19
- package/dist/cli/llm/config.js.map +1 -1
- package/dist/cli/llm/gemini-commands.js +16 -16
- package/dist/cli/llm/gpt-commands.js +19 -19
- package/dist/cli/llm/help.js +21 -21
- package/dist/cli/postinstall/cursor-agents.js +32 -32
- package/dist/cli/postinstall/cursor-rules.js +83 -83
- package/dist/cli/postinstall/cursor-skills.js +743 -743
- package/dist/cli/setup/Provisioner.js +42 -42
- package/dist/cli/types.d.ts +0 -2
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/infra/lib/DeepInit.js +24 -24
- package/dist/infra/lib/IterationTracker.js +11 -11
- package/dist/infra/lib/PythonParser.js +108 -108
- package/dist/infra/lib/ReviewRace.js +96 -96
- package/dist/infra/lib/SkillFrontmatter.js +28 -28
- package/dist/infra/lib/SkillQualityGate.js +9 -9
- package/dist/infra/lib/SkillRepository.js +159 -159
- package/dist/infra/lib/UltraQA.js +99 -99
- package/dist/infra/lib/autonomy/AuditStore.js +41 -41
- package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
- package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
- package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
- package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
- package/dist/infra/lib/embedding/VectorStore.js +22 -22
- package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
- package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
- package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
- package/dist/infra/lib/evolution/InsightStore.js +90 -90
- package/dist/infra/lib/evolution/RollbackManager.js +5 -5
- package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
- package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
- package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
- package/dist/infra/lib/evolution/UsageTracker.js +28 -28
- package/dist/infra/lib/gemini/orchestration.js +5 -5
- package/dist/infra/lib/gpt/orchestration.js +4 -4
- package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/infra/lib/memory/MemorySearch.js +57 -57
- package/dist/infra/lib/memory/MemoryStorage.js +181 -181
- package/dist/infra/lib/memory/ObservationStore.js +28 -28
- package/dist/infra/lib/memory/ReflectionStore.js +30 -30
- package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
- package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
- package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
- package/dist/infra/orchestrator/AgentManager.js +12 -12
- package/dist/infra/orchestrator/AgentRegistry.js +65 -65
- package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
- package/dist/infra/orchestrator/parallelResearch.js +24 -24
- package/dist/tools/convention/analyzeComplexity.test.js +115 -115
- package/dist/tools/convention/validateCodeQuality.test.js +104 -104
- package/dist/tools/memory/createMemoryTimeline.js +10 -10
- package/dist/tools/memory/getMemoryGraph.js +12 -12
- package/dist/tools/memory/getSessionContext.js +9 -9
- package/dist/tools/memory/linkMemories.js +14 -14
- package/dist/tools/memory/listMemories.js +4 -4
- package/dist/tools/memory/recallMemory.js +4 -4
- package/dist/tools/memory/saveMemory.js +4 -4
- package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/dist/tools/semantic/astGrep.test.js +6 -6
- package/dist/tools/spec/prdParser.test.js +171 -171
- package/dist/tools/spec/specGenerator.js +169 -169
- package/dist/tools/spec/traceabilityMatrix.js +64 -64
- package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
- package/hooks/gemini-hooks.json +73 -73
- package/hooks/hooks.json +137 -137
- package/hooks/scripts/code-check.js +77 -70
- package/hooks/scripts/context-save.js +212 -212
- package/hooks/scripts/hud-status.js +291 -291
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +475 -475
- package/hooks/scripts/post-edit.js +32 -32
- package/hooks/scripts/pre-tool-guard.js +125 -125
- package/hooks/scripts/prompt-dispatcher.js +185 -185
- package/hooks/scripts/sentinel-guard.js +104 -104
- package/hooks/scripts/session-start.js +106 -106
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +100 -100
- package/languages/csharp-unity.md +515 -515
- package/languages/gdscript-godot.md +470 -470
- package/languages/ruby-rails.md +489 -489
- package/languages/typescript-angular.md +433 -433
- package/languages/typescript-astro.md +416 -416
- package/languages/typescript-electron.md +406 -406
- package/languages/typescript-nestjs.md +524 -524
- package/languages/typescript-svelte.md +407 -407
- package/languages/typescript-tauri.md +365 -365
- package/package.json +121 -121
- package/skills/agents-md/SKILL.md +120 -120
- package/skills/arch-guard/SKILL.md +180 -180
- package/skills/brand-assets/SKILL.md +146 -146
- package/skills/capability-loop/SKILL.md +167 -167
- package/skills/characterization-test/SKILL.md +206 -206
- package/skills/commerce-patterns/SKILL.md +59 -59
- package/skills/commit-push-pr/SKILL.md +75 -75
- package/skills/context7-usage/SKILL.md +105 -105
- package/skills/core-capabilities/SKILL.md +48 -48
- package/skills/e2e-commerce/SKILL.md +57 -57
- package/skills/exec-plan/SKILL.md +147 -147
- package/skills/frontend-design/SKILL.md +73 -73
- package/skills/git-worktree/SKILL.md +72 -72
- package/skills/handoff/SKILL.md +109 -109
- package/skills/parallel-research/SKILL.md +87 -87
- package/skills/priority-todos/SKILL.md +63 -63
- package/skills/seo-checklist/SKILL.md +57 -57
- package/skills/techdebt/SKILL.md +122 -122
- package/skills/tool-fallback/SKILL.md +103 -103
- package/skills/typescript-advanced-types/SKILL.md +66 -65
- package/skills/ui-ux-pro-max/SKILL.md +206 -206
- package/skills/vercel-react-best-practices/SKILL.md +59 -59
- package/skills/video-production/SKILL.md +51 -51
- package/vibe/config.json +29 -29
- package/vibe/constitution.md +227 -227
- package/vibe/rules/principles/communication-guide.md +98 -98
- package/vibe/rules/principles/development-philosophy.md +52 -52
- package/vibe/rules/principles/quick-start.md +102 -102
- package/vibe/rules/quality/bdd-contract-testing.md +393 -393
- package/vibe/rules/quality/checklist.md +276 -276
- package/vibe/rules/quality/performance.md +236 -236
- package/vibe/rules/quality/testing-strategy.md +440 -440
- package/vibe/rules/standards/anti-patterns.md +541 -541
- package/vibe/rules/standards/code-structure.md +291 -291
- package/vibe/rules/standards/complexity-metrics.md +313 -313
- package/vibe/rules/standards/git-workflow.md +237 -237
- package/vibe/rules/standards/naming-conventions.md +198 -198
- package/vibe/rules/standards/security.md +305 -305
- package/vibe/rules/writing/document-style.md +74 -74
- package/vibe/setup.sh +31 -31
- package/vibe/templates/constitution-template.md +252 -252
- package/vibe/templates/contract-backend-template.md +526 -526
- package/vibe/templates/contract-frontend-template.md +599 -599
- package/vibe/templates/feature-template.md +96 -96
- package/vibe/templates/spec-template.md +221 -221
- package/vibe/ui-ux-data/charts.csv +26 -26
- package/vibe/ui-ux-data/colors.csv +97 -97
- package/vibe/ui-ux-data/icons.csv +101 -101
- package/vibe/ui-ux-data/landing.csv +31 -31
- package/vibe/ui-ux-data/products.csv +96 -96
- package/vibe/ui-ux-data/react-performance.csv +45 -45
- package/vibe/ui-ux-data/stacks/astro.csv +54 -54
- package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
- package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
- package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
- package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
- package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
- package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
- package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
- package/vibe/ui-ux-data/stacks/react.csv +54 -54
- package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
- package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
- package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
- package/vibe/ui-ux-data/stacks/vue.csv +50 -50
- package/vibe/ui-ux-data/styles.csv +68 -68
- package/vibe/ui-ux-data/typography.csv +57 -57
- package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
- package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
- package/vibe/ui-ux-data/version.json +31 -31
- package/vibe/ui-ux-data/web-interface.csv +31 -31
|
@@ -1,198 +1,198 @@
|
|
|
1
|
-
# Automatic Naming Rules
|
|
2
|
-
|
|
3
|
-
## Basic Rules
|
|
4
|
-
|
|
5
|
-
```text
|
|
6
|
-
Variables: nouns (userList, userData)
|
|
7
|
-
Functions: verb+noun (fetchData, updateUser)
|
|
8
|
-
Events: handle prefix (handleClick, handleSubmit)
|
|
9
|
-
Boolean: is/has/can prefix (isLoading, hasError, canEdit)
|
|
10
|
-
Constants: UPPER_SNAKE_CASE (MAX_RETRY_COUNT, API_TIMEOUT)
|
|
11
|
-
Components: PascalCase (UserProfile, HeaderSection)
|
|
12
|
-
Hooks: use prefix (useUserData, useAuth)
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Variable Naming
|
|
16
|
-
|
|
17
|
-
### ✅ Good Examples
|
|
18
|
-
|
|
19
|
-
```typescript
|
|
20
|
-
const userList = [...];
|
|
21
|
-
const totalAmount = 0;
|
|
22
|
-
const currentPage = 1;
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### ❌ Bad Examples
|
|
26
|
-
|
|
27
|
-
```typescript
|
|
28
|
-
const list = [...]; // List of what?
|
|
29
|
-
const total = 0; // Total of what?
|
|
30
|
-
const page = 1; // Not clear
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Function Naming
|
|
34
|
-
|
|
35
|
-
### ✅ Good Examples
|
|
36
|
-
|
|
37
|
-
```typescript
|
|
38
|
-
function fetchUserData() { }
|
|
39
|
-
function updateProfile() { }
|
|
40
|
-
function validateEmail() { }
|
|
41
|
-
function calculateTotal() { }
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### ❌ Bad Examples
|
|
45
|
-
|
|
46
|
-
```typescript
|
|
47
|
-
function user() { } // No verb
|
|
48
|
-
function data() { } // Unclear
|
|
49
|
-
function process() { } // Process what?
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
## Event Handlers
|
|
53
|
-
|
|
54
|
-
### ✅ Good Examples
|
|
55
|
-
|
|
56
|
-
```typescript
|
|
57
|
-
function handleClick() { }
|
|
58
|
-
function handleSubmit() { }
|
|
59
|
-
function handleInputChange() { }
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### ❌ Bad Examples
|
|
63
|
-
|
|
64
|
-
```typescript
|
|
65
|
-
function onClick() { } // handle prefix recommended
|
|
66
|
-
function submit() { } // Unclear it's an event
|
|
67
|
-
function change() { } // Change of what?
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Boolean Variables
|
|
71
|
-
|
|
72
|
-
### ✅ Good Examples
|
|
73
|
-
|
|
74
|
-
```typescript
|
|
75
|
-
const isLoading = false;
|
|
76
|
-
const hasError = false;
|
|
77
|
-
const canEdit = true;
|
|
78
|
-
const shouldUpdate = false;
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### ❌ Bad Examples
|
|
82
|
-
|
|
83
|
-
```typescript
|
|
84
|
-
const loading = false; // is prefix recommended
|
|
85
|
-
const error = false; // has recommended
|
|
86
|
-
const editable = true; // can recommended
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
## Constants
|
|
90
|
-
|
|
91
|
-
### ✅ Good Examples
|
|
92
|
-
|
|
93
|
-
```typescript
|
|
94
|
-
const MAX_RETRY_COUNT = 3;
|
|
95
|
-
const API_TIMEOUT_MS = 5000;
|
|
96
|
-
const DEFAULT_PAGE_SIZE = 20;
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### ❌ Bad Examples
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
const maxRetry = 3; // Use UPPER_SNAKE_CASE
|
|
103
|
-
const timeout = 5000; // Missing unit specification
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## Components & Classes
|
|
107
|
-
|
|
108
|
-
### ✅ Good Examples
|
|
109
|
-
|
|
110
|
-
```typescript
|
|
111
|
-
class UserProfile { }
|
|
112
|
-
class DataRepository { }
|
|
113
|
-
function ProfileCard() { }
|
|
114
|
-
function NavigationBar() { }
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### ❌ Bad Examples
|
|
118
|
-
|
|
119
|
-
```typescript
|
|
120
|
-
class userProfile { } // Use PascalCase
|
|
121
|
-
class data { } // Unclear
|
|
122
|
-
function profile() { } // PascalCase recommended
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Custom Hooks (React)
|
|
126
|
-
|
|
127
|
-
### ✅ Good Examples
|
|
128
|
-
|
|
129
|
-
```typescript
|
|
130
|
-
function useUserData() { }
|
|
131
|
-
function useAuth() { }
|
|
132
|
-
function useLocalStorage() { }
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### ❌ Bad Examples
|
|
136
|
-
|
|
137
|
-
```typescript
|
|
138
|
-
function getUserData() { } // use prefix required
|
|
139
|
-
function auth() { } // use prefix required
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Types & Interfaces (TypeScript)
|
|
143
|
-
|
|
144
|
-
### ✅ Good Examples
|
|
145
|
-
|
|
146
|
-
```typescript
|
|
147
|
-
interface User { }
|
|
148
|
-
type UserRole = 'admin' | 'user';
|
|
149
|
-
interface ApiResponse<T> { }
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### ❌ Bad Examples
|
|
153
|
-
|
|
154
|
-
```typescript
|
|
155
|
-
interface IUser { } // I prefix unnecessary (TypeScript)
|
|
156
|
-
type user = { }; // Use PascalCase
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
## File Naming
|
|
160
|
-
|
|
161
|
-
### ✅ Good Examples
|
|
162
|
-
|
|
163
|
-
```text
|
|
164
|
-
user-profile.component.tsx
|
|
165
|
-
user.service.ts
|
|
166
|
-
auth.utils.ts
|
|
167
|
-
constants.ts
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### ❌ Bad Examples
|
|
171
|
-
|
|
172
|
-
```text
|
|
173
|
-
UserProfile.tsx // kebab-case recommended
|
|
174
|
-
user_service.ts // kebab-case recommended
|
|
175
|
-
utils.ts // Unclear
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
## Abbreviation Principles
|
|
179
|
-
|
|
180
|
-
- Use only common abbreviations (URL, API, ID, HTML, CSS)
|
|
181
|
-
- Project-specific abbreviations must be documented
|
|
182
|
-
- Use full words if meaning is not clear
|
|
183
|
-
|
|
184
|
-
### ✅ Good Examples
|
|
185
|
-
|
|
186
|
-
```typescript
|
|
187
|
-
const userId = '123';
|
|
188
|
-
const apiEndpoint = '/users';
|
|
189
|
-
const htmlContent = '<div>';
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
### ❌ Bad Examples
|
|
193
|
-
|
|
194
|
-
```typescript
|
|
195
|
-
const usrId = '123'; // Unclear abbreviation
|
|
196
|
-
const endpt = '/users'; // Over-abbreviated
|
|
197
|
-
const cnt = '<div>'; // Use "content" for clarity
|
|
198
|
-
```
|
|
1
|
+
# Automatic Naming Rules
|
|
2
|
+
|
|
3
|
+
## Basic Rules
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
Variables: nouns (userList, userData)
|
|
7
|
+
Functions: verb+noun (fetchData, updateUser)
|
|
8
|
+
Events: handle prefix (handleClick, handleSubmit)
|
|
9
|
+
Boolean: is/has/can prefix (isLoading, hasError, canEdit)
|
|
10
|
+
Constants: UPPER_SNAKE_CASE (MAX_RETRY_COUNT, API_TIMEOUT)
|
|
11
|
+
Components: PascalCase (UserProfile, HeaderSection)
|
|
12
|
+
Hooks: use prefix (useUserData, useAuth)
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Variable Naming
|
|
16
|
+
|
|
17
|
+
### ✅ Good Examples
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
const userList = [...];
|
|
21
|
+
const totalAmount = 0;
|
|
22
|
+
const currentPage = 1;
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### ❌ Bad Examples
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
const list = [...]; // List of what?
|
|
29
|
+
const total = 0; // Total of what?
|
|
30
|
+
const page = 1; // Not clear
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Function Naming
|
|
34
|
+
|
|
35
|
+
### ✅ Good Examples
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
function fetchUserData() { }
|
|
39
|
+
function updateProfile() { }
|
|
40
|
+
function validateEmail() { }
|
|
41
|
+
function calculateTotal() { }
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### ❌ Bad Examples
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
function user() { } // No verb
|
|
48
|
+
function data() { } // Unclear
|
|
49
|
+
function process() { } // Process what?
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Event Handlers
|
|
53
|
+
|
|
54
|
+
### ✅ Good Examples
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
function handleClick() { }
|
|
58
|
+
function handleSubmit() { }
|
|
59
|
+
function handleInputChange() { }
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### ❌ Bad Examples
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
function onClick() { } // handle prefix recommended
|
|
66
|
+
function submit() { } // Unclear it's an event
|
|
67
|
+
function change() { } // Change of what?
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Boolean Variables
|
|
71
|
+
|
|
72
|
+
### ✅ Good Examples
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
const isLoading = false;
|
|
76
|
+
const hasError = false;
|
|
77
|
+
const canEdit = true;
|
|
78
|
+
const shouldUpdate = false;
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### ❌ Bad Examples
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
const loading = false; // is prefix recommended
|
|
85
|
+
const error = false; // has recommended
|
|
86
|
+
const editable = true; // can recommended
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Constants
|
|
90
|
+
|
|
91
|
+
### ✅ Good Examples
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
const MAX_RETRY_COUNT = 3;
|
|
95
|
+
const API_TIMEOUT_MS = 5000;
|
|
96
|
+
const DEFAULT_PAGE_SIZE = 20;
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### ❌ Bad Examples
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
const maxRetry = 3; // Use UPPER_SNAKE_CASE
|
|
103
|
+
const timeout = 5000; // Missing unit specification
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Components & Classes
|
|
107
|
+
|
|
108
|
+
### ✅ Good Examples
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
class UserProfile { }
|
|
112
|
+
class DataRepository { }
|
|
113
|
+
function ProfileCard() { }
|
|
114
|
+
function NavigationBar() { }
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### ❌ Bad Examples
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
class userProfile { } // Use PascalCase
|
|
121
|
+
class data { } // Unclear
|
|
122
|
+
function profile() { } // PascalCase recommended
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Custom Hooks (React)
|
|
126
|
+
|
|
127
|
+
### ✅ Good Examples
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
function useUserData() { }
|
|
131
|
+
function useAuth() { }
|
|
132
|
+
function useLocalStorage() { }
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### ❌ Bad Examples
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
function getUserData() { } // use prefix required
|
|
139
|
+
function auth() { } // use prefix required
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Types & Interfaces (TypeScript)
|
|
143
|
+
|
|
144
|
+
### ✅ Good Examples
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
interface User { }
|
|
148
|
+
type UserRole = 'admin' | 'user';
|
|
149
|
+
interface ApiResponse<T> { }
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### ❌ Bad Examples
|
|
153
|
+
|
|
154
|
+
```typescript
|
|
155
|
+
interface IUser { } // I prefix unnecessary (TypeScript)
|
|
156
|
+
type user = { }; // Use PascalCase
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## File Naming
|
|
160
|
+
|
|
161
|
+
### ✅ Good Examples
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
user-profile.component.tsx
|
|
165
|
+
user.service.ts
|
|
166
|
+
auth.utils.ts
|
|
167
|
+
constants.ts
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### ❌ Bad Examples
|
|
171
|
+
|
|
172
|
+
```text
|
|
173
|
+
UserProfile.tsx // kebab-case recommended
|
|
174
|
+
user_service.ts // kebab-case recommended
|
|
175
|
+
utils.ts // Unclear
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## Abbreviation Principles
|
|
179
|
+
|
|
180
|
+
- Use only common abbreviations (URL, API, ID, HTML, CSS)
|
|
181
|
+
- Project-specific abbreviations must be documented
|
|
182
|
+
- Use full words if meaning is not clear
|
|
183
|
+
|
|
184
|
+
### ✅ Good Examples
|
|
185
|
+
|
|
186
|
+
```typescript
|
|
187
|
+
const userId = '123';
|
|
188
|
+
const apiEndpoint = '/users';
|
|
189
|
+
const htmlContent = '<div>';
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### ❌ Bad Examples
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
const usrId = '123'; // Unclear abbreviation
|
|
196
|
+
const endpt = '/users'; // Over-abbreviated
|
|
197
|
+
const cnt = '<div>'; // Use "content" for clarity
|
|
198
|
+
```
|