@su-record/vibe 2.7.16 → 2.7.18
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 +153 -134
- 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 -258
- package/commands/vibe.analyze.md +379 -379
- package/commands/vibe.review.md +607 -607
- package/commands/vibe.run.md +2124 -2124
- package/commands/vibe.spec.md +1195 -1195
- package/commands/vibe.spec.review.md +569 -569
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +484 -484
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/info.js +51 -51
- 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/commands/upgrade.d.ts +3 -3
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +24 -3
- package/dist/cli/commands/upgrade.js.map +1 -1
- 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 +18 -18
- 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/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/lib/telemetry/SkillTelemetry.d.ts +52 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.d.ts.map +1 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.js +117 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.js.map +1 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.test.d.ts +2 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.test.d.ts.map +1 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js +91 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -0
- 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/test-helpers/index.d.ts +36 -0
- package/dist/test-helpers/index.d.ts.map +1 -0
- package/dist/test-helpers/index.js +85 -0
- package/dist/test-helpers/index.js.map +1 -0
- package/dist/test-helpers/index.test.d.ts +2 -0
- package/dist/test-helpers/index.test.d.ts.map +1 -0
- package/dist/test-helpers/index.test.js +92 -0
- package/dist/test-helpers/index.test.js.map +1 -0
- 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 -77
- 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 +123 -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 +63 -63
- package/skills/commit-push-pr/SKILL.md +75 -75
- package/skills/context7-usage/SKILL.md +105 -105
- package/skills/core-capabilities/SKILL.md +13 -13
- package/skills/e2e-commerce/SKILL.md +61 -61
- package/skills/exec-plan/SKILL.md +147 -147
- package/skills/frontend-design/SKILL.md +12 -12
- 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 -66
- package/skills/ui-ux-pro-max/SKILL.md +221 -221
- 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,276 +1,276 @@
|
|
|
1
|
-
# Final Verification Checklist
|
|
2
|
-
|
|
3
|
-
## 5.1 Enhanced Code Quality Check
|
|
4
|
-
|
|
5
|
-
### Top Priority
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
const topPriority = {
|
|
9
|
-
obeysTheGoldenRule: true, // ✅ Only modify requested scope
|
|
10
|
-
preservesWorkingCode: true, // ✅ Preserve existing code
|
|
11
|
-
respectsExistingStyle: true, // ✅ Maintain existing style
|
|
12
|
-
};
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
### Type Safety
|
|
16
|
-
|
|
17
|
-
```typescript
|
|
18
|
-
const typeSafety = {
|
|
19
|
-
noAnyType: true, // ✅ No any type usage
|
|
20
|
-
strictNullCheck: true, // ✅ null/undefined check
|
|
21
|
-
properTypeGuards: true, // ✅ Use type guards
|
|
22
|
-
genericTypesWhenNeeded: true, // ✅ Use generic types
|
|
23
|
-
};
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### Code Structure & Complexity
|
|
27
|
-
|
|
28
|
-
```typescript
|
|
29
|
-
const codeStructure = {
|
|
30
|
-
singleResponsibility: true, // ✅ Single Responsibility Principle
|
|
31
|
-
functionUnder30Lines: true, // ✅ Functions ≤30 lines (recommended), 50 allowed
|
|
32
|
-
maxNesting3Levels: true, // ✅ Max nesting 3 levels
|
|
33
|
-
cyclomaticComplexity: 10, // ✅ Cyclomatic complexity ≤ 10
|
|
34
|
-
cognitiveComplexity: 15, // ✅ Cognitive complexity ≤ 15
|
|
35
|
-
maxParameters: 5, // ✅ Max 5 parameters
|
|
36
|
-
componentUnder50Lines: true, // ✅ Component JSX ≤50 lines
|
|
37
|
-
};
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Halstead Metrics
|
|
41
|
-
|
|
42
|
-
```typescript
|
|
43
|
-
const halsteadMetrics = {
|
|
44
|
-
vocabulary: true, // ✅ Operator/operand diversity
|
|
45
|
-
difficulty: true, // ✅ Code comprehension difficulty
|
|
46
|
-
effort: true, // ✅ Mental effort
|
|
47
|
-
lowComplexity: true, // ✅ Maintain low complexity
|
|
48
|
-
};
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### Coupling & Cohesion
|
|
52
|
-
|
|
53
|
-
```typescript
|
|
54
|
-
const couplingCohesion = {
|
|
55
|
-
looseCoupling: true, // ✅ Loose coupling (≤ 7 dependencies)
|
|
56
|
-
highCohesion: true, // ✅ High cohesion (group related functions only)
|
|
57
|
-
noCircularDeps: true, // ✅ No circular dependencies
|
|
58
|
-
dependencyInjection: true, // ✅ Dependency injection pattern
|
|
59
|
-
};
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Error Handling
|
|
63
|
-
|
|
64
|
-
```typescript
|
|
65
|
-
const errorHandling = {
|
|
66
|
-
hasErrorHandling: true, // ✅ try-catch/error state
|
|
67
|
-
hasLoadingState: true, // ✅ Loading state
|
|
68
|
-
hasFallbackUI: true, // ✅ Fallback UI
|
|
69
|
-
properErrorMessages: true, // ✅ Clear error messages
|
|
70
|
-
errorBoundaries: true, // ✅ Use Error Boundaries
|
|
71
|
-
};
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Accessibility
|
|
75
|
-
|
|
76
|
-
```typescript
|
|
77
|
-
const accessibility = {
|
|
78
|
-
hasAriaLabels: true, // ✅ ARIA labels
|
|
79
|
-
keyboardAccessible: true, // ✅ Keyboard accessibility
|
|
80
|
-
semanticHTML: true, // ✅ Semantic HTML
|
|
81
|
-
focusManagement: true, // ✅ Focus management
|
|
82
|
-
screenReaderFriendly: true, // ✅ Screen reader support
|
|
83
|
-
};
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Performance
|
|
87
|
-
|
|
88
|
-
```typescript
|
|
89
|
-
const performance = {
|
|
90
|
-
noUnnecessaryRenders: true, // ✅ Prevent unnecessary re-renders
|
|
91
|
-
memoizedExpensive: true, // ✅ Memoize expensive operations
|
|
92
|
-
lazyLoading: true, // ✅ Lazy loading
|
|
93
|
-
batchOperations: true, // ✅ Batch API calls
|
|
94
|
-
optimizedImages: true, // ✅ Optimized images
|
|
95
|
-
codesplitting: true, // ✅ Code splitting
|
|
96
|
-
};
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### Maintainability
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
const maintainability = {
|
|
103
|
-
hasJSDoc: true, // ✅ Document key functions
|
|
104
|
-
noMagicNumbers: true, // ✅ No magic numbers
|
|
105
|
-
consistentNaming: true, // ✅ Consistent naming
|
|
106
|
-
properComments: true, // ✅ Appropriate comments
|
|
107
|
-
testable: true, // ✅ Testable structure
|
|
108
|
-
};
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Security
|
|
112
|
-
|
|
113
|
-
```typescript
|
|
114
|
-
const security = {
|
|
115
|
-
noHardcodedSecrets: true, // ✅ No hardcoded secrets
|
|
116
|
-
inputValidation: true, // ✅ Input validation
|
|
117
|
-
xssPrevention: true, // ✅ XSS prevention
|
|
118
|
-
csrfProtection: true, // ✅ CSRF protection
|
|
119
|
-
sqlInjectionPrevention: true, // ✅ SQL Injection prevention
|
|
120
|
-
};
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
## 5.2 Project Check
|
|
124
|
-
|
|
125
|
-
### Dependency Management
|
|
126
|
-
|
|
127
|
-
```typescript
|
|
128
|
-
const dependencies = {
|
|
129
|
-
noUnusedDeps: true, // ✅ No unused packages
|
|
130
|
-
noDuplicateDeps: true, // ✅ No duplicate functionality packages
|
|
131
|
-
upToDateDeps: true, // ✅ Keep up to date
|
|
132
|
-
securePackages: true, // ✅ No security vulnerabilities
|
|
133
|
-
};
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### File Structure
|
|
137
|
-
|
|
138
|
-
```typescript
|
|
139
|
-
const fileStructure = {
|
|
140
|
-
consistentStructure: true, // ✅ Consistent folder structure
|
|
141
|
-
noCircularDeps: true, // ✅ No circular references
|
|
142
|
-
logicalGrouping: true, // ✅ Logical grouping
|
|
143
|
-
clearNaming: true, // ✅ Clear file names
|
|
144
|
-
};
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### Bundle Optimization
|
|
148
|
-
|
|
149
|
-
```typescript
|
|
150
|
-
const bundleOptimization = {
|
|
151
|
-
treeShaking: true, // ✅ Tree shaking
|
|
152
|
-
codeSplitting: true, // ✅ Code splitting
|
|
153
|
-
lazyLoading: true, // ✅ Lazy loading
|
|
154
|
-
minification: true, // ✅ Minification
|
|
155
|
-
compression: true, // ✅ Compression (gzip/brotli)
|
|
156
|
-
};
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
## Checklist Usage
|
|
160
|
-
|
|
161
|
-
### Before Writing Code
|
|
162
|
-
|
|
163
|
-
```text
|
|
164
|
-
[ ] Clearly understand requirements
|
|
165
|
-
[ ] Identify existing code patterns
|
|
166
|
-
[ ] Confirm impact scope
|
|
167
|
-
[ ] Establish test plan
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### While Writing Code
|
|
171
|
-
|
|
172
|
-
```text
|
|
173
|
-
[ ] Follow Single Responsibility Principle
|
|
174
|
-
[ ] Keep function length ≤30 lines (max 50)
|
|
175
|
-
[ ] Nesting depth ≤3 levels
|
|
176
|
-
[ ] Extract magic numbers to constants
|
|
177
|
-
[ ] Ensure type safety
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
### After Writing Code
|
|
181
|
-
|
|
182
|
-
```text
|
|
183
|
-
[ ] Type check passes
|
|
184
|
-
[ ] No linter warnings
|
|
185
|
-
[ ] Tests written and passing
|
|
186
|
-
[ ] Documentation complete
|
|
187
|
-
[ ] Ready for code review
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
### Before Commit
|
|
191
|
-
|
|
192
|
-
```text
|
|
193
|
-
[ ] Remove unnecessary code
|
|
194
|
-
[ ] Remove console logs
|
|
195
|
-
[ ] Clean up comments
|
|
196
|
-
[ ] Apply formatting
|
|
197
|
-
[ ] Write meaningful commit message
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
## Automated Verification Tools
|
|
201
|
-
|
|
202
|
-
### ESLint Configuration
|
|
203
|
-
|
|
204
|
-
```javascript
|
|
205
|
-
// .eslintrc.js
|
|
206
|
-
module.exports = {
|
|
207
|
-
rules: {
|
|
208
|
-
'complexity': ['error', 10],
|
|
209
|
-
'max-depth': ['error', 3],
|
|
210
|
-
'max-lines-per-function': ['error', 50],
|
|
211
|
-
'max-params': ['error', 5],
|
|
212
|
-
'no-magic-numbers': ['warn', { ignore: [0, 1, -1] }],
|
|
213
|
-
'@typescript-eslint/no-explicit-any': 'error',
|
|
214
|
-
},
|
|
215
|
-
};
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### TypeScript Configuration
|
|
219
|
-
|
|
220
|
-
```json
|
|
221
|
-
// tsconfig.json
|
|
222
|
-
{
|
|
223
|
-
"compilerOptions": {
|
|
224
|
-
"strict": true,
|
|
225
|
-
"noImplicitAny": true,
|
|
226
|
-
"strictNullChecks": true,
|
|
227
|
-
"noUnusedLocals": true,
|
|
228
|
-
"noUnusedParameters": true
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
### Git Hooks (pre-commit)
|
|
234
|
-
|
|
235
|
-
```bash
|
|
236
|
-
#!/bin/sh
|
|
237
|
-
# .husky/pre-commit
|
|
238
|
-
|
|
239
|
-
# Type check
|
|
240
|
-
npm run type-check
|
|
241
|
-
|
|
242
|
-
# Linting
|
|
243
|
-
npm run lint
|
|
244
|
-
|
|
245
|
-
# Tests
|
|
246
|
-
npm run test
|
|
247
|
-
|
|
248
|
-
# Format check
|
|
249
|
-
npm run format:check
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
## Grade Criteria
|
|
253
|
-
|
|
254
|
-
| Grade | Score | Description |
|
|
255
|
-
|-------|-------|-------------|
|
|
256
|
-
| A+ | 95-100 | Perfect code quality |
|
|
257
|
-
| A | 90-94 | Excellent quality |
|
|
258
|
-
| B+ | 85-89 | Good quality |
|
|
259
|
-
| B | 80-84 | Improvement recommended |
|
|
260
|
-
| C+ | 75-79 | Improvement needed |
|
|
261
|
-
| C | 70-74 | Immediate improvement needed |
|
|
262
|
-
| F | < 70 | Refactoring required |
|
|
263
|
-
|
|
264
|
-
## Quick Check (1 minute)
|
|
265
|
-
|
|
266
|
-
```text
|
|
267
|
-
✅ Only modified requested scope?
|
|
268
|
-
✅ No any types?
|
|
269
|
-
✅ Functions ≤30 lines? (max 50)
|
|
270
|
-
✅ Nesting ≤3 levels?
|
|
271
|
-
✅ Error handling implemented?
|
|
272
|
-
✅ Magic numbers extracted to constants?
|
|
273
|
-
✅ Tests written?
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
All 7 Yes → Ready to deploy ✅
|
|
1
|
+
# Final Verification Checklist
|
|
2
|
+
|
|
3
|
+
## 5.1 Enhanced Code Quality Check
|
|
4
|
+
|
|
5
|
+
### Top Priority
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
const topPriority = {
|
|
9
|
+
obeysTheGoldenRule: true, // ✅ Only modify requested scope
|
|
10
|
+
preservesWorkingCode: true, // ✅ Preserve existing code
|
|
11
|
+
respectsExistingStyle: true, // ✅ Maintain existing style
|
|
12
|
+
};
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Type Safety
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
const typeSafety = {
|
|
19
|
+
noAnyType: true, // ✅ No any type usage
|
|
20
|
+
strictNullCheck: true, // ✅ null/undefined check
|
|
21
|
+
properTypeGuards: true, // ✅ Use type guards
|
|
22
|
+
genericTypesWhenNeeded: true, // ✅ Use generic types
|
|
23
|
+
};
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Code Structure & Complexity
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
const codeStructure = {
|
|
30
|
+
singleResponsibility: true, // ✅ Single Responsibility Principle
|
|
31
|
+
functionUnder30Lines: true, // ✅ Functions ≤30 lines (recommended), 50 allowed
|
|
32
|
+
maxNesting3Levels: true, // ✅ Max nesting 3 levels
|
|
33
|
+
cyclomaticComplexity: 10, // ✅ Cyclomatic complexity ≤ 10
|
|
34
|
+
cognitiveComplexity: 15, // ✅ Cognitive complexity ≤ 15
|
|
35
|
+
maxParameters: 5, // ✅ Max 5 parameters
|
|
36
|
+
componentUnder50Lines: true, // ✅ Component JSX ≤50 lines
|
|
37
|
+
};
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Halstead Metrics
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
const halsteadMetrics = {
|
|
44
|
+
vocabulary: true, // ✅ Operator/operand diversity
|
|
45
|
+
difficulty: true, // ✅ Code comprehension difficulty
|
|
46
|
+
effort: true, // ✅ Mental effort
|
|
47
|
+
lowComplexity: true, // ✅ Maintain low complexity
|
|
48
|
+
};
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Coupling & Cohesion
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
const couplingCohesion = {
|
|
55
|
+
looseCoupling: true, // ✅ Loose coupling (≤ 7 dependencies)
|
|
56
|
+
highCohesion: true, // ✅ High cohesion (group related functions only)
|
|
57
|
+
noCircularDeps: true, // ✅ No circular dependencies
|
|
58
|
+
dependencyInjection: true, // ✅ Dependency injection pattern
|
|
59
|
+
};
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Error Handling
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
const errorHandling = {
|
|
66
|
+
hasErrorHandling: true, // ✅ try-catch/error state
|
|
67
|
+
hasLoadingState: true, // ✅ Loading state
|
|
68
|
+
hasFallbackUI: true, // ✅ Fallback UI
|
|
69
|
+
properErrorMessages: true, // ✅ Clear error messages
|
|
70
|
+
errorBoundaries: true, // ✅ Use Error Boundaries
|
|
71
|
+
};
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Accessibility
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
const accessibility = {
|
|
78
|
+
hasAriaLabels: true, // ✅ ARIA labels
|
|
79
|
+
keyboardAccessible: true, // ✅ Keyboard accessibility
|
|
80
|
+
semanticHTML: true, // ✅ Semantic HTML
|
|
81
|
+
focusManagement: true, // ✅ Focus management
|
|
82
|
+
screenReaderFriendly: true, // ✅ Screen reader support
|
|
83
|
+
};
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Performance
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
const performance = {
|
|
90
|
+
noUnnecessaryRenders: true, // ✅ Prevent unnecessary re-renders
|
|
91
|
+
memoizedExpensive: true, // ✅ Memoize expensive operations
|
|
92
|
+
lazyLoading: true, // ✅ Lazy loading
|
|
93
|
+
batchOperations: true, // ✅ Batch API calls
|
|
94
|
+
optimizedImages: true, // ✅ Optimized images
|
|
95
|
+
codesplitting: true, // ✅ Code splitting
|
|
96
|
+
};
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Maintainability
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
const maintainability = {
|
|
103
|
+
hasJSDoc: true, // ✅ Document key functions
|
|
104
|
+
noMagicNumbers: true, // ✅ No magic numbers
|
|
105
|
+
consistentNaming: true, // ✅ Consistent naming
|
|
106
|
+
properComments: true, // ✅ Appropriate comments
|
|
107
|
+
testable: true, // ✅ Testable structure
|
|
108
|
+
};
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Security
|
|
112
|
+
|
|
113
|
+
```typescript
|
|
114
|
+
const security = {
|
|
115
|
+
noHardcodedSecrets: true, // ✅ No hardcoded secrets
|
|
116
|
+
inputValidation: true, // ✅ Input validation
|
|
117
|
+
xssPrevention: true, // ✅ XSS prevention
|
|
118
|
+
csrfProtection: true, // ✅ CSRF protection
|
|
119
|
+
sqlInjectionPrevention: true, // ✅ SQL Injection prevention
|
|
120
|
+
};
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## 5.2 Project Check
|
|
124
|
+
|
|
125
|
+
### Dependency Management
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
const dependencies = {
|
|
129
|
+
noUnusedDeps: true, // ✅ No unused packages
|
|
130
|
+
noDuplicateDeps: true, // ✅ No duplicate functionality packages
|
|
131
|
+
upToDateDeps: true, // ✅ Keep up to date
|
|
132
|
+
securePackages: true, // ✅ No security vulnerabilities
|
|
133
|
+
};
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### File Structure
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
const fileStructure = {
|
|
140
|
+
consistentStructure: true, // ✅ Consistent folder structure
|
|
141
|
+
noCircularDeps: true, // ✅ No circular references
|
|
142
|
+
logicalGrouping: true, // ✅ Logical grouping
|
|
143
|
+
clearNaming: true, // ✅ Clear file names
|
|
144
|
+
};
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Bundle Optimization
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
const bundleOptimization = {
|
|
151
|
+
treeShaking: true, // ✅ Tree shaking
|
|
152
|
+
codeSplitting: true, // ✅ Code splitting
|
|
153
|
+
lazyLoading: true, // ✅ Lazy loading
|
|
154
|
+
minification: true, // ✅ Minification
|
|
155
|
+
compression: true, // ✅ Compression (gzip/brotli)
|
|
156
|
+
};
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Checklist Usage
|
|
160
|
+
|
|
161
|
+
### Before Writing Code
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
[ ] Clearly understand requirements
|
|
165
|
+
[ ] Identify existing code patterns
|
|
166
|
+
[ ] Confirm impact scope
|
|
167
|
+
[ ] Establish test plan
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### While Writing Code
|
|
171
|
+
|
|
172
|
+
```text
|
|
173
|
+
[ ] Follow Single Responsibility Principle
|
|
174
|
+
[ ] Keep function length ≤30 lines (max 50)
|
|
175
|
+
[ ] Nesting depth ≤3 levels
|
|
176
|
+
[ ] Extract magic numbers to constants
|
|
177
|
+
[ ] Ensure type safety
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### After Writing Code
|
|
181
|
+
|
|
182
|
+
```text
|
|
183
|
+
[ ] Type check passes
|
|
184
|
+
[ ] No linter warnings
|
|
185
|
+
[ ] Tests written and passing
|
|
186
|
+
[ ] Documentation complete
|
|
187
|
+
[ ] Ready for code review
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Before Commit
|
|
191
|
+
|
|
192
|
+
```text
|
|
193
|
+
[ ] Remove unnecessary code
|
|
194
|
+
[ ] Remove console logs
|
|
195
|
+
[ ] Clean up comments
|
|
196
|
+
[ ] Apply formatting
|
|
197
|
+
[ ] Write meaningful commit message
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Automated Verification Tools
|
|
201
|
+
|
|
202
|
+
### ESLint Configuration
|
|
203
|
+
|
|
204
|
+
```javascript
|
|
205
|
+
// .eslintrc.js
|
|
206
|
+
module.exports = {
|
|
207
|
+
rules: {
|
|
208
|
+
'complexity': ['error', 10],
|
|
209
|
+
'max-depth': ['error', 3],
|
|
210
|
+
'max-lines-per-function': ['error', 50],
|
|
211
|
+
'max-params': ['error', 5],
|
|
212
|
+
'no-magic-numbers': ['warn', { ignore: [0, 1, -1] }],
|
|
213
|
+
'@typescript-eslint/no-explicit-any': 'error',
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### TypeScript Configuration
|
|
219
|
+
|
|
220
|
+
```json
|
|
221
|
+
// tsconfig.json
|
|
222
|
+
{
|
|
223
|
+
"compilerOptions": {
|
|
224
|
+
"strict": true,
|
|
225
|
+
"noImplicitAny": true,
|
|
226
|
+
"strictNullChecks": true,
|
|
227
|
+
"noUnusedLocals": true,
|
|
228
|
+
"noUnusedParameters": true
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Git Hooks (pre-commit)
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
#!/bin/sh
|
|
237
|
+
# .husky/pre-commit
|
|
238
|
+
|
|
239
|
+
# Type check
|
|
240
|
+
npm run type-check
|
|
241
|
+
|
|
242
|
+
# Linting
|
|
243
|
+
npm run lint
|
|
244
|
+
|
|
245
|
+
# Tests
|
|
246
|
+
npm run test
|
|
247
|
+
|
|
248
|
+
# Format check
|
|
249
|
+
npm run format:check
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Grade Criteria
|
|
253
|
+
|
|
254
|
+
| Grade | Score | Description |
|
|
255
|
+
|-------|-------|-------------|
|
|
256
|
+
| A+ | 95-100 | Perfect code quality |
|
|
257
|
+
| A | 90-94 | Excellent quality |
|
|
258
|
+
| B+ | 85-89 | Good quality |
|
|
259
|
+
| B | 80-84 | Improvement recommended |
|
|
260
|
+
| C+ | 75-79 | Improvement needed |
|
|
261
|
+
| C | 70-74 | Immediate improvement needed |
|
|
262
|
+
| F | < 70 | Refactoring required |
|
|
263
|
+
|
|
264
|
+
## Quick Check (1 minute)
|
|
265
|
+
|
|
266
|
+
```text
|
|
267
|
+
✅ Only modified requested scope?
|
|
268
|
+
✅ No any types?
|
|
269
|
+
✅ Functions ≤30 lines? (max 50)
|
|
270
|
+
✅ Nesting ≤3 levels?
|
|
271
|
+
✅ Error handling implemented?
|
|
272
|
+
✅ Magic numbers extracted to constants?
|
|
273
|
+
✅ Tests written?
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
All 7 Yes → Ready to deploy ✅
|