pumuki-ast-hooks 5.3.1
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/LICENSE +21 -0
- package/README.md +1105 -0
- package/bin/__tests__/auto-fix-violations.spec.js +132 -0
- package/bin/__tests__/auto-restart-guards.spec.js +11 -0
- package/bin/__tests__/check-doc-drift.spec.js +11 -0
- package/bin/__tests__/check-version.spec.js +240 -0
- package/bin/__tests__/cli.spec.js +11 -0
- package/bin/__tests__/guard-auto-manager.spec.js +11 -0
- package/bin/__tests__/guard-supervisor.spec.js +11 -0
- package/bin/__tests__/hook-status.spec.js +11 -0
- package/bin/__tests__/install.spec.js +11 -0
- package/bin/__tests__/nightly-metrics-report.spec.js +94 -0
- package/bin/__tests__/plan-review.spec.js +11 -0
- package/bin/__tests__/predictive-hooks.spec.js +11 -0
- package/bin/__tests__/run-ast-adapter.spec.js +11 -0
- package/bin/__tests__/run-orchestrator.spec.js +11 -0
- package/bin/__tests__/run-playbook.spec.js +11 -0
- package/bin/__tests__/setup-eslint.spec.js +11 -0
- package/bin/__tests__/violations-api.spec.js +11 -0
- package/bin/__tests__/watch-hooks.spec.js +11 -0
- package/bin/ai-commit.sh +5 -0
- package/bin/audit +5 -0
- package/bin/audit-library.js +6 -0
- package/bin/auto-fix-violations.js +19 -0
- package/bin/auto-restart-guards.js +6 -0
- package/bin/check-doc-drift.js +6 -0
- package/bin/check-version.js +19 -0
- package/bin/cleanup-branches.sh +5 -0
- package/bin/cli.js +6 -0
- package/bin/demo-recording.sh +5 -0
- package/bin/demo-violations +5 -0
- package/bin/fix-enforcer +5 -0
- package/bin/fix-gitflow-enforcement.sh +5 -0
- package/bin/generate-progress-report.sh +5 -0
- package/bin/git-analyze-pairs.sh +5 -0
- package/bin/git-leave-branch-check.sh +5 -0
- package/bin/gitflow +5 -0
- package/bin/gitflow-shell-integration.sh +5 -0
- package/bin/guard-auto-manager.js +6 -0
- package/bin/guard-autostart.sh +5 -0
- package/bin/guard-env.sh +5 -0
- package/bin/guard-supervisor.js +6 -0
- package/bin/hook-status.js +6 -0
- package/bin/install-git-wrapper.sh +5 -0
- package/bin/install.js +6 -0
- package/bin/kill-mcp-zombies.sh +5 -0
- package/bin/nightly-metrics-report.js +8 -0
- package/bin/plan-review.js +6 -0
- package/bin/predictive-hooks.js +6 -0
- package/bin/pumuki-audit.js +6 -0
- package/bin/pumuki-init.js +19 -0
- package/bin/pumuki-mcp-server.js +13 -0
- package/bin/pumuki-mcp.js +6 -0
- package/bin/pumuki-rules.js +6 -0
- package/bin/request-no-verify-approval.sh +5 -0
- package/bin/run-ast-adapter.js +6 -0
- package/bin/run-intelligent-audit.sh +5 -0
- package/bin/run-orchestrator.js +6 -0
- package/bin/run-playbook.js +6 -0
- package/bin/session-loader.sh +5 -0
- package/bin/setup-eslint.js +6 -0
- package/bin/start-guards.sh +5 -0
- package/bin/sync-autonomous-orchestrator.sh +5 -0
- package/bin/sync-to-library.sh +5 -0
- package/bin/update-evidence.sh +5 -0
- package/bin/update-session-context.sh +5 -0
- package/bin/verify-no-verify.sh +5 -0
- package/bin/violations +5 -0
- package/bin/violations-api.js +6 -0
- package/bin/watch-hooks.js +6 -0
- package/docs/API_REFERENCE.md +161 -0
- package/docs/ARCHITECTURE.md +236 -0
- package/docs/ARCHITECTURE_DETAILED.md +499 -0
- package/docs/BRANCH_PROTECTION_GUIDE.md +236 -0
- package/docs/CODE_STANDARDS.md +440 -0
- package/docs/CONTRIBUTING.md +246 -0
- package/docs/DEPENDENCIES.md +541 -0
- package/docs/HOW_IT_WORKS.md +716 -0
- package/docs/INSTALLATION.md +784 -0
- package/docs/MCP_SERVERS.md +786 -0
- package/docs/TESTING.md +423 -0
- package/docs/USAGE.md +856 -0
- package/docs/images/ast_intelligence_01.png +0 -0
- package/docs/images/ast_intelligence_02.png +0 -0
- package/docs/images/ast_intelligence_03.png +0 -0
- package/docs/images/ast_intelligence_04.png +0 -0
- package/docs/images/ast_intelligence_05.png +0 -0
- package/hooks/getSkillRulesPath.ts +52 -0
- package/hooks/git-status-monitor.ts +160 -0
- package/hooks/index.js +5 -0
- package/hooks/notify-macos.ts +42 -0
- package/hooks/package.json +16 -0
- package/hooks/post-tool-use-tracker.sh +89 -0
- package/hooks/pre-tool-use-evidence-validator.ts +252 -0
- package/hooks/pre-tool-use-guard.ts +151 -0
- package/hooks/skill-activation-prompt.sh +8 -0
- package/hooks/skill-activation-prompt.ts +307 -0
- package/index.js +49 -0
- package/package.json +117 -0
- package/presentation/cli/audit.sh +24 -0
- package/presentation/cli/autonomous-status.sh +92 -0
- package/presentation/cli/categorize-violations.sh +179 -0
- package/presentation/cli/direct-audit-option2.sh +23 -0
- package/presentation/cli/direct-audit.sh +33 -0
- package/scripts/hooks-system/.AI_TOKEN_STATUS.txt +16 -0
- package/scripts/hooks-system/.audit-reports/auto-recovery.log +1 -0
- package/scripts/hooks-system/.audit-reports/install-wizard.log +4 -0
- package/scripts/hooks-system/.audit-reports/notifications.log +425 -0
- package/scripts/hooks-system/.audit-reports/token-monitor.log +1275 -0
- package/scripts/hooks-system/.audit_tmp/intelligent-report.json +44953 -0
- package/scripts/hooks-system/.audit_tmp/intelligent-report.txt +1338 -0
- package/scripts/hooks-system/.audit_tmp/severity-history.jsonl +1 -0
- package/scripts/hooks-system/.audit_tmp/token-usage.jsonl +1 -0
- package/scripts/hooks-system/.hook-system/config.json +8 -0
- package/scripts/hooks-system/application/CompositionRoot.js +325 -0
- package/scripts/hooks-system/application/__tests__/CompositionRoot.spec.js +84 -0
- package/scripts/hooks-system/application/commands/index.js +64 -0
- package/scripts/hooks-system/application/queries/index.js +60 -0
- package/scripts/hooks-system/application/services/AutonomousOrchestrator.js +130 -0
- package/scripts/hooks-system/application/services/ContextDetectionEngine.js +181 -0
- package/scripts/hooks-system/application/services/DynamicRulesLoader.js +182 -0
- package/scripts/hooks-system/application/services/GitFlowService.js +156 -0
- package/scripts/hooks-system/application/services/GitTreeState.js +140 -0
- package/scripts/hooks-system/application/services/HookSystemScheduler.js +77 -0
- package/scripts/hooks-system/application/services/IntelligentCommitAnalyzer.js +151 -0
- package/scripts/hooks-system/application/services/IntelligentGitTreeMonitor.js +118 -0
- package/scripts/hooks-system/application/services/PlatformAnalysisService.js +173 -0
- package/scripts/hooks-system/application/services/PlatformDetectionService.js +168 -0
- package/scripts/hooks-system/application/services/PlaybookRunner.js +39 -0
- package/scripts/hooks-system/application/services/PredictiveHookAdvisor.js +56 -0
- package/scripts/hooks-system/application/services/RealtimeGuardPlugin.js +62 -0
- package/scripts/hooks-system/application/services/RealtimeGuardService.js +374 -0
- package/scripts/hooks-system/application/services/SmartDirtyTreeAnalyzer.js +63 -0
- package/scripts/hooks-system/application/services/__tests__/AutonomousOrchestrator.spec.js +36 -0
- package/scripts/hooks-system/application/services/__tests__/ContextDetectionEngine.spec.js +33 -0
- package/scripts/hooks-system/application/services/__tests__/DynamicRulesLoader.spec.js +43 -0
- package/scripts/hooks-system/application/services/__tests__/GitTreeState.spec.js +163 -0
- package/scripts/hooks-system/application/services/__tests__/HookSystemScheduler.spec.js +207 -0
- package/scripts/hooks-system/application/services/__tests__/IntelligentCommitAnalyzer.spec.js +365 -0
- package/scripts/hooks-system/application/services/__tests__/IntelligentGitTreeMonitor.spec.js +188 -0
- package/scripts/hooks-system/application/services/__tests__/PlatformDetectionService.spec.js +28 -0
- package/scripts/hooks-system/application/services/__tests__/PlaybookRunner.spec.js +143 -0
- package/scripts/hooks-system/application/services/__tests__/PredictiveHookAdvisor.spec.js +181 -0
- package/scripts/hooks-system/application/services/__tests__/RealtimeGuardPlugin.spec.js +45 -0
- package/scripts/hooks-system/application/services/__tests__/RealtimeGuardService.critical.spec.js +401 -0
- package/scripts/hooks-system/application/services/commit/CommitMessageGenerator.js +34 -0
- package/scripts/hooks-system/application/services/commit/FeatureDetector.js +101 -0
- package/scripts/hooks-system/application/services/evidence/EvidenceContextManager.js +163 -0
- package/scripts/hooks-system/application/services/evidence/__tests__/EvidenceContextManager.spec.js +98 -0
- package/scripts/hooks-system/application/services/guard/GuardAutoManagerService.js +169 -0
- package/scripts/hooks-system/application/services/guard/GuardConfig.js +15 -0
- package/scripts/hooks-system/application/services/guard/GuardEventLogger.js +70 -0
- package/scripts/hooks-system/application/services/guard/GuardHealthReminder.js +54 -0
- package/scripts/hooks-system/application/services/guard/GuardHeartbeatMonitor.js +94 -0
- package/scripts/hooks-system/application/services/guard/GuardLockManager.js +72 -0
- package/scripts/hooks-system/application/services/guard/GuardMonitorLoop.js +29 -0
- package/scripts/hooks-system/application/services/guard/GuardNotificationHandler.js +36 -0
- package/scripts/hooks-system/application/services/guard/GuardProcessManager.js +113 -0
- package/scripts/hooks-system/application/services/guard/GuardRecoveryService.js +90 -0
- package/scripts/hooks-system/application/services/guard/__tests__/GuardAutoManagerService.spec.js +77 -0
- package/scripts/hooks-system/application/services/installation/ConfigurationGeneratorService.js +123 -0
- package/scripts/hooks-system/application/services/installation/FileSystemInstallerService.js +112 -0
- package/scripts/hooks-system/application/services/installation/GitEnvironmentService.js +166 -0
- package/scripts/hooks-system/application/services/installation/HookInstaller.js +197 -0
- package/scripts/hooks-system/application/services/installation/IdeIntegrationService.js +37 -0
- package/scripts/hooks-system/application/services/installation/InstallService.js +130 -0
- package/scripts/hooks-system/application/services/installation/McpConfigurator.js +172 -0
- package/scripts/hooks-system/application/services/installation/PlatformDetectorService.js +36 -0
- package/scripts/hooks-system/application/services/installation/VSCodeTaskConfigurator.js +97 -0
- package/scripts/hooks-system/application/services/logging/UnifiedLogger.js +142 -0
- package/scripts/hooks-system/application/services/logging/__tests__/UnifiedLogger.spec.js +66 -0
- package/scripts/hooks-system/application/services/monitoring/ActivityMonitor.js +80 -0
- package/scripts/hooks-system/application/services/monitoring/AstMonitor.js +140 -0
- package/scripts/hooks-system/application/services/monitoring/DevDocsMonitor.js +85 -0
- package/scripts/hooks-system/application/services/monitoring/EvidenceMonitor.js +103 -0
- package/scripts/hooks-system/application/services/monitoring/EvidenceMonitorService.js +162 -0
- package/scripts/hooks-system/application/services/monitoring/GitTreeMonitor.js +123 -0
- package/scripts/hooks-system/application/services/monitoring/GitTreeMonitorService.js +114 -0
- package/scripts/hooks-system/application/services/monitoring/HealthCheckProviders.js +153 -0
- package/scripts/hooks-system/application/services/monitoring/HealthCheckService.js +118 -0
- package/scripts/hooks-system/application/services/monitoring/HeartbeatMonitorService.js +61 -0
- package/scripts/hooks-system/application/services/monitoring/TokenMonitor.js +60 -0
- package/scripts/hooks-system/application/services/monitoring/__tests__/EvidenceMonitorService.spec.js +107 -0
- package/scripts/hooks-system/application/services/monitoring/__tests__/GitTreeMonitorService.spec.js +27 -0
- package/scripts/hooks-system/application/services/monitoring/__tests__/HealthCheckProviders.spec.js +68 -0
- package/scripts/hooks-system/application/services/monitoring/__tests__/HealthCheckService.spec.js +69 -0
- package/scripts/hooks-system/application/services/monitoring/__tests__/HeartbeatMonitorService.spec.js +35 -0
- package/scripts/hooks-system/application/services/notification/MacNotificationSender.js +106 -0
- package/scripts/hooks-system/application/services/notification/NotificationCenterService.js +221 -0
- package/scripts/hooks-system/application/services/notification/NotificationDispatcher.js +42 -0
- package/scripts/hooks-system/application/services/notification/__tests__/NotificationCenterService.spec.js +40 -0
- package/scripts/hooks-system/application/services/notification/components/NotificationCooldownManager.js +62 -0
- package/scripts/hooks-system/application/services/notification/components/NotificationDeduplicator.js +67 -0
- package/scripts/hooks-system/application/services/notification/components/NotificationQueue.js +36 -0
- package/scripts/hooks-system/application/services/notification/components/NotificationRetryExecutor.js +58 -0
- package/scripts/hooks-system/application/services/platform/PlatformHeuristics.js +144 -0
- package/scripts/hooks-system/application/services/recovery/AutoRecoveryManager.js +137 -0
- package/scripts/hooks-system/application/services/recovery/__tests__/AutoRecoveryManager.spec.js +62 -0
- package/scripts/hooks-system/application/services/smart-commit/CommitMessageSuggester.js +97 -0
- package/scripts/hooks-system/application/services/smart-commit/FileContextGrouper.js +114 -0
- package/scripts/hooks-system/application/services/smart-commit/SmartCommitSummaryBuilder.js +53 -0
- package/scripts/hooks-system/application/services/token/CursorTokenService.js +44 -0
- package/scripts/hooks-system/application/services/token/TokenMetricsService.js +109 -0
- package/scripts/hooks-system/application/services/token/TokenMonitorService.js +160 -0
- package/scripts/hooks-system/application/services/token/TokenStatusReporter.js +56 -0
- package/scripts/hooks-system/application/services/token/__tests__/CursorTokenService.spec.js +69 -0
- package/scripts/hooks-system/application/services/token/__tests__/TokenMonitorService.spec.js +185 -0
- package/scripts/hooks-system/application/state/HookSystemStateMachine.js +59 -0
- package/scripts/hooks-system/application/state/__tests__/HookSystemStateMachine.spec.js +115 -0
- package/scripts/hooks-system/application/use-cases/AnalyzeCodebaseUseCase.js +54 -0
- package/scripts/hooks-system/application/use-cases/AnalyzeStagedFilesUseCase.js +61 -0
- package/scripts/hooks-system/application/use-cases/AutoExecuteAIStartUseCase.js +123 -0
- package/scripts/hooks-system/application/use-cases/BlockCommitUseCase.js +90 -0
- package/scripts/hooks-system/application/use-cases/GenerateAuditReportUseCase.js +184 -0
- package/scripts/hooks-system/application/use-cases/__tests__/AnalyzeCodebaseUseCase.spec.js +156 -0
- package/scripts/hooks-system/application/use-cases/__tests__/AnalyzeStagedFilesUseCase.spec.js +146 -0
- package/scripts/hooks-system/application/use-cases/__tests__/AutoExecuteAIStartUseCase.spec.js +89 -0
- package/scripts/hooks-system/application/use-cases/__tests__/BlockCommitUseCase.spec.js +171 -0
- package/scripts/hooks-system/application/use-cases/__tests__/GenerateAuditReportUseCase.spec.js +207 -0
- package/scripts/hooks-system/bin/__tests__/auto-fix-violations.spec.js +132 -0
- package/scripts/hooks-system/bin/__tests__/auto-restart-guards.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/check-doc-drift.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/check-version.spec.js +240 -0
- package/scripts/hooks-system/bin/__tests__/cli.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/guard-auto-manager.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/guard-supervisor.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/hook-status.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/install.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/nightly-metrics-report.spec.js +94 -0
- package/scripts/hooks-system/bin/__tests__/plan-review.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/predictive-hooks.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/run-ast-adapter.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/run-orchestrator.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/run-playbook.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/setup-eslint.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/violations-api.spec.js +11 -0
- package/scripts/hooks-system/bin/__tests__/watch-hooks.spec.js +11 -0
- package/scripts/hooks-system/bin/ai-commit.sh +63 -0
- package/scripts/hooks-system/bin/audit +463 -0
- package/scripts/hooks-system/bin/audit-library.js +54 -0
- package/scripts/hooks-system/bin/auto-fix-violations.js +130 -0
- package/scripts/hooks-system/bin/auto-restart-guards.js +93 -0
- package/scripts/hooks-system/bin/check-doc-drift.js +35 -0
- package/scripts/hooks-system/bin/check-version.js +201 -0
- package/scripts/hooks-system/bin/cleanup-branches.sh +106 -0
- package/scripts/hooks-system/bin/cli.js +208 -0
- package/scripts/hooks-system/bin/demo-recording.sh +57 -0
- package/scripts/hooks-system/bin/demo-violations +44 -0
- package/scripts/hooks-system/bin/fix-enforcer +27 -0
- package/scripts/hooks-system/bin/fix-gitflow-enforcement.sh +68 -0
- package/scripts/hooks-system/bin/generate-progress-report.sh +129 -0
- package/scripts/hooks-system/bin/git-analyze-pairs.sh +0 -0
- package/scripts/hooks-system/bin/git-leave-branch-check.sh +73 -0
- package/scripts/hooks-system/bin/gitflow +17 -0
- package/scripts/hooks-system/bin/gitflow-shell-integration.sh +64 -0
- package/scripts/hooks-system/bin/guard-auto-manager.js +44 -0
- package/scripts/hooks-system/bin/guard-autostart.sh +158 -0
- package/scripts/hooks-system/bin/guard-env.sh +40 -0
- package/scripts/hooks-system/bin/guard-supervisor.js +516 -0
- package/scripts/hooks-system/bin/hook-status.js +41 -0
- package/scripts/hooks-system/bin/install-git-wrapper.sh +53 -0
- package/scripts/hooks-system/bin/install.js +10 -0
- package/scripts/hooks-system/bin/kill-mcp-zombies.sh +48 -0
- package/scripts/hooks-system/bin/nightly-metrics-report.js +138 -0
- package/scripts/hooks-system/bin/plan-review.js +31 -0
- package/scripts/hooks-system/bin/predictive-hooks.js +18 -0
- package/scripts/hooks-system/bin/pumuki-audit.js +113 -0
- package/scripts/hooks-system/bin/pumuki-init.js +104 -0
- package/scripts/hooks-system/bin/pumuki-mcp.js +74 -0
- package/scripts/hooks-system/bin/pumuki-rules.js +74 -0
- package/scripts/hooks-system/bin/request-no-verify-approval.sh +116 -0
- package/scripts/hooks-system/bin/run-ast-adapter.js +86 -0
- package/scripts/hooks-system/bin/run-intelligent-audit.sh +67 -0
- package/scripts/hooks-system/bin/run-orchestrator.js +27 -0
- package/scripts/hooks-system/bin/run-playbook.js +23 -0
- package/scripts/hooks-system/bin/session-loader.sh +264 -0
- package/scripts/hooks-system/bin/setup-eslint.js +110 -0
- package/scripts/hooks-system/bin/start-guards.sh +190 -0
- package/scripts/hooks-system/bin/sync-autonomous-orchestrator.sh +32 -0
- package/scripts/hooks-system/bin/sync-to-library.sh +46 -0
- package/scripts/hooks-system/bin/update-evidence.sh +1167 -0
- package/scripts/hooks-system/bin/update-session-context.sh +261 -0
- package/scripts/hooks-system/bin/verify-no-verify.sh +68 -0
- package/scripts/hooks-system/bin/violations +20 -0
- package/scripts/hooks-system/bin/violations-api.js +345 -0
- package/scripts/hooks-system/bin/watch-hooks.js +20 -0
- package/scripts/hooks-system/config/project.config.json +36 -0
- package/scripts/hooks-system/config/state-map.json +12 -0
- package/scripts/hooks-system/domain/entities/AuditResult.js +139 -0
- package/scripts/hooks-system/domain/entities/Finding.js +116 -0
- package/scripts/hooks-system/domain/entities/SeverityConfig.js +73 -0
- package/scripts/hooks-system/domain/entities/SeverityConfig.ts +90 -0
- package/scripts/hooks-system/domain/entities/__tests__/AuditResult.spec.js +450 -0
- package/scripts/hooks-system/domain/entities/__tests__/Finding.spec.js +335 -0
- package/scripts/hooks-system/domain/entities/__tests__/SeverityConfig.spec.js +240 -0
- package/scripts/hooks-system/domain/entities/__tests__/entities.spec.js +29 -0
- package/scripts/hooks-system/domain/errors/__tests__/DomainErrors.spec.js +59 -0
- package/scripts/hooks-system/domain/errors/index.js +169 -0
- package/scripts/hooks-system/domain/events/__tests__/DomainEvents.spec.js +60 -0
- package/scripts/hooks-system/domain/events/index.js +121 -0
- package/scripts/hooks-system/domain/ports/IAstPort.js +67 -0
- package/scripts/hooks-system/domain/ports/IEvidencePort.js +86 -0
- package/scripts/hooks-system/domain/ports/IGitCommandPort.js +110 -0
- package/scripts/hooks-system/domain/ports/IGitPort.js +114 -0
- package/scripts/hooks-system/domain/ports/IGitQueryPort.js +93 -0
- package/scripts/hooks-system/domain/ports/INotificationPort.js +35 -0
- package/scripts/hooks-system/domain/ports/__tests__/ports.spec.js +36 -0
- package/scripts/hooks-system/domain/ports/index.js +14 -0
- package/scripts/hooks-system/domain/repositories/ICursorTokenRepository.js +13 -0
- package/scripts/hooks-system/domain/repositories/IFindingsRepository.js +30 -0
- package/scripts/hooks-system/domain/repositories/__tests__/IFindingsRepository.spec.js +18 -0
- package/scripts/hooks-system/domain/rules/CommitBlockingRules.js +142 -0
- package/scripts/hooks-system/domain/rules/__tests__/CommitBlockingRules.spec.js +18 -0
- package/scripts/hooks-system/domain/services/AuditAnalyzer.js +103 -0
- package/scripts/hooks-system/domain/services/AuditFilter.js +26 -0
- package/scripts/hooks-system/domain/services/AuditResultSerializer.js +35 -0
- package/scripts/hooks-system/domain/services/AuditScorer.js +38 -0
- package/scripts/hooks-system/domain/values/Severity.js +93 -0
- package/scripts/hooks-system/index.js +49 -0
- package/scripts/hooks-system/infrastructure/adapters/AstAnalyzerAdapter.js +150 -0
- package/scripts/hooks-system/infrastructure/adapters/FileEvidenceAdapter.js +140 -0
- package/scripts/hooks-system/infrastructure/adapters/GitCliAdapter.js +16 -0
- package/scripts/hooks-system/infrastructure/adapters/GitCommandAdapter.js +68 -0
- package/scripts/hooks-system/infrastructure/adapters/GitHubCliAdapter.js +85 -0
- package/scripts/hooks-system/infrastructure/adapters/GitQueryAdapter.js +58 -0
- package/scripts/hooks-system/infrastructure/adapters/LegacyAnalyzerAdapter.js +61 -0
- package/scripts/hooks-system/infrastructure/adapters/MacOSNotificationAdapter.js +99 -0
- package/scripts/hooks-system/infrastructure/adapters/__tests__/AstAnalyzerAdapter.spec.js +32 -0
- package/scripts/hooks-system/infrastructure/adapters/__tests__/FileEvidenceAdapter.spec.js +31 -0
- package/scripts/hooks-system/infrastructure/adapters/__tests__/GitCliAdapter.spec.js +39 -0
- package/scripts/hooks-system/infrastructure/adapters/__tests__/MacOSNotificationAdapter.spec.js +33 -0
- package/scripts/hooks-system/infrastructure/adapters/git/GitCommandRunner.js +78 -0
- package/scripts/hooks-system/infrastructure/adapters/git/GitCommandService.js +67 -0
- package/scripts/hooks-system/infrastructure/adapters/git/GitQueryService.js +50 -0
- package/scripts/hooks-system/infrastructure/adapters/index.js +14 -0
- package/scripts/hooks-system/infrastructure/ast/README.md +198 -0
- package/scripts/hooks-system/infrastructure/ast/__tests__/ast-core.spec.js +160 -0
- package/scripts/hooks-system/infrastructure/ast/__tests__/ast-intelligence.spec.js +20 -0
- package/scripts/hooks-system/infrastructure/ast/android/__tests__/ast-android.spec.js +33 -0
- package/scripts/hooks-system/infrastructure/ast/android/__tests__/clean-architecture-analyzer.spec.js +96 -0
- package/scripts/hooks-system/infrastructure/ast/android/__tests__/ddd-analyzer.spec.js +113 -0
- package/scripts/hooks-system/infrastructure/ast/android/__tests__/detekt-runner.spec.js +36 -0
- package/scripts/hooks-system/infrastructure/ast/android/__tests__/feature-first-analyzer.spec.js +80 -0
- package/scripts/hooks-system/infrastructure/ast/android/__tests__/native-bridge.spec.js +31 -0
- package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidASTIntelligentAnalyzer.js +15 -0
- package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidASTParser.js +157 -0
- package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidAnalysisOrchestrator.js +164 -0
- package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidArchitectureDetector.js +334 -0
- package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidClassAnalyzer.js +162 -0
- package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidForbiddenLiteralsAnalyzer.js +261 -0
- package/scripts/hooks-system/infrastructure/ast/android/analyzers/AndroidSOLIDAnalyzer.js +287 -0
- package/scripts/hooks-system/infrastructure/ast/android/analyzers/__tests__/AndroidForbiddenLiteralsAnalyzer.spec.js +58 -0
- package/scripts/hooks-system/infrastructure/ast/android/analyzers/__tests__/AndroidSOLIDAnalyzer.spec.js +84 -0
- package/scripts/hooks-system/infrastructure/ast/android/ast-android.js +1785 -0
- package/scripts/hooks-system/infrastructure/ast/android/clean-architecture-analyzer.js +115 -0
- package/scripts/hooks-system/infrastructure/ast/android/ddd-analyzer.js +70 -0
- package/scripts/hooks-system/infrastructure/ast/android/detekt-runner.js +81 -0
- package/scripts/hooks-system/infrastructure/ast/android/feature-first-analyzer.js +53 -0
- package/scripts/hooks-system/infrastructure/ast/android/native-bridge.js +119 -0
- package/scripts/hooks-system/infrastructure/ast/archive/README.md +18 -0
- package/scripts/hooks-system/infrastructure/ast/archive/ast-intelligence.ts +276 -0
- package/scripts/hooks-system/infrastructure/ast/archive/ios-rules.js +329 -0
- package/scripts/hooks-system/infrastructure/ast/archive/kotlin-analyzer.js +332 -0
- package/scripts/hooks-system/infrastructure/ast/archive/kotlin-parser.js +303 -0
- package/scripts/hooks-system/infrastructure/ast/archive/swift-analyzer.js +390 -0
- package/scripts/hooks-system/infrastructure/ast/ast-core.js +594 -0
- package/scripts/hooks-system/infrastructure/ast/ast-intelligence.js +617 -0
- package/scripts/hooks-system/infrastructure/ast/backend/__tests__/ast-backend.spec.js +20 -0
- package/scripts/hooks-system/infrastructure/ast/backend/__tests__/clean-architecture-analyzer.spec.js +151 -0
- package/scripts/hooks-system/infrastructure/ast/backend/__tests__/ddd-analyzer.spec.js +124 -0
- package/scripts/hooks-system/infrastructure/ast/backend/__tests__/feature-first-analyzer.spec.js +128 -0
- package/scripts/hooks-system/infrastructure/ast/backend/__tests__/forbidden-literals-analyzer.spec.js +95 -0
- package/scripts/hooks-system/infrastructure/ast/backend/__tests__/nestjs-patterns-analyzer.spec.js +59 -0
- package/scripts/hooks-system/infrastructure/ast/backend/__tests__/solid-analyzer.spec.js +114 -0
- package/scripts/hooks-system/infrastructure/ast/backend/analyzers/BackendArchitectureDetector.js +141 -0
- package/scripts/hooks-system/infrastructure/ast/backend/analyzers/BackendPatternDetector.js +23 -0
- package/scripts/hooks-system/infrastructure/ast/backend/analyzers/__tests__/BackendArchitectureDetector.spec.js +239 -0
- package/scripts/hooks-system/infrastructure/ast/backend/analyzers/__tests__/BackendPatternDetector.spec.js +58 -0
- package/scripts/hooks-system/infrastructure/ast/backend/analyzers/detectors/CQRSDetector.js +41 -0
- package/scripts/hooks-system/infrastructure/ast/backend/analyzers/detectors/CleanArchitectureDetector.js +52 -0
- package/scripts/hooks-system/infrastructure/ast/backend/analyzers/detectors/FeatureFirstCleanDetector.js +74 -0
- package/scripts/hooks-system/infrastructure/ast/backend/analyzers/detectors/LayeredArchitectureDetector.js +25 -0
- package/scripts/hooks-system/infrastructure/ast/backend/analyzers/detectors/MVCDetector.js +32 -0
- package/scripts/hooks-system/infrastructure/ast/backend/analyzers/detectors/OnionArchitectureDetector.js +32 -0
- package/scripts/hooks-system/infrastructure/ast/backend/ast-backend-clean.js +44 -0
- package/scripts/hooks-system/infrastructure/ast/backend/ast-backend.js +2048 -0
- package/scripts/hooks-system/infrastructure/ast/backend/clean-architecture-analyzer.js +142 -0
- package/scripts/hooks-system/infrastructure/ast/backend/ddd-analyzer.js +256 -0
- package/scripts/hooks-system/infrastructure/ast/backend/feature-first-analyzer.js +70 -0
- package/scripts/hooks-system/infrastructure/ast/backend/forbidden-literals-analyzer.js +236 -0
- package/scripts/hooks-system/infrastructure/ast/backend/nestjs-patterns-analyzer.js +11 -0
- package/scripts/hooks-system/infrastructure/ast/backend/solid-analyzer.js +392 -0
- package/scripts/hooks-system/infrastructure/ast/common/BDDTDDWorkflowRules.js +52 -0
- package/scripts/hooks-system/infrastructure/ast/common/__tests__/BDDTDDWorkflowRules.spec.js +133 -0
- package/scripts/hooks-system/infrastructure/ast/common/__tests__/ast-common.spec.js +20 -0
- package/scripts/hooks-system/infrastructure/ast/common/__tests__/documentation-analyzer.spec.js +120 -0
- package/scripts/hooks-system/infrastructure/ast/common/__tests__/images-backend-analyzer.spec.js +123 -0
- package/scripts/hooks-system/infrastructure/ast/common/__tests__/monorepo-health-analyzer.spec.js +118 -0
- package/scripts/hooks-system/infrastructure/ast/common/__tests__/network-resilience-analyzer.spec.js +180 -0
- package/scripts/hooks-system/infrastructure/ast/common/__tests__/offline-backend-analyzer.spec.js +111 -0
- package/scripts/hooks-system/infrastructure/ast/common/__tests__/push-backend-analyzer.spec.js +124 -0
- package/scripts/hooks-system/infrastructure/ast/common/ast-common.js +345 -0
- package/scripts/hooks-system/infrastructure/ast/common/documentation-analyzer.js +217 -0
- package/scripts/hooks-system/infrastructure/ast/common/images-backend-analyzer.js +36 -0
- package/scripts/hooks-system/infrastructure/ast/common/monorepo-health-analyzer.js +452 -0
- package/scripts/hooks-system/infrastructure/ast/common/network-resilience-analyzer.js +178 -0
- package/scripts/hooks-system/infrastructure/ast/common/offline-backend-analyzer.js +53 -0
- package/scripts/hooks-system/infrastructure/ast/common/push-backend-analyzer.js +42 -0
- package/scripts/hooks-system/infrastructure/ast/common/rules/BDDRules.js +87 -0
- package/scripts/hooks-system/infrastructure/ast/common/rules/ImplementationRules.js +83 -0
- package/scripts/hooks-system/infrastructure/ast/common/rules/TDDRules.js +109 -0
- package/scripts/hooks-system/infrastructure/ast/common/rules/WorkflowRules.js +137 -0
- package/scripts/hooks-system/infrastructure/ast/frontend/__tests__/ast-frontend.spec.js +20 -0
- package/scripts/hooks-system/infrastructure/ast/frontend/analyzers/FrontendArchitectureDetector.js +289 -0
- package/scripts/hooks-system/infrastructure/ast/frontend/analyzers/FrontendForbiddenLiteralsAnalyzer.js +257 -0
- package/scripts/hooks-system/infrastructure/ast/frontend/analyzers/FrontendSOLIDAnalyzer.js +274 -0
- package/scripts/hooks-system/infrastructure/ast/frontend/analyzers/__tests__/FrontendArchitectureDetector.spec.js +151 -0
- package/scripts/hooks-system/infrastructure/ast/frontend/analyzers/__tests__/FrontendForbiddenLiteralsAnalyzer.spec.js +20 -0
- package/scripts/hooks-system/infrastructure/ast/frontend/analyzers/__tests__/FrontendSOLIDAnalyzer.spec.js +108 -0
- package/scripts/hooks-system/infrastructure/ast/frontend/ast-frontend-clean.js +42 -0
- package/scripts/hooks-system/infrastructure/ast/frontend/ast-frontend.js +2094 -0
- package/scripts/hooks-system/infrastructure/ast/frontend/clean-architecture-analyzer.js +88 -0
- package/scripts/hooks-system/infrastructure/ast/frontend/ddd-analyzer.js +94 -0
- package/scripts/hooks-system/infrastructure/ast/frontend/feature-first-analyzer.js +51 -0
- package/scripts/hooks-system/infrastructure/ast/ios/__tests__/ast-ios.spec.js +40 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/__tests__/iOSArchitectureDetector.spec.js +20 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/__tests__/iOSArchitectureRules.spec.js +61 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/__tests__/iOSCICDRules.spec.js +10 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/__tests__/iOSEnterpriseAnalyzer.spec.js +36 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/__tests__/iOSForbiddenLiteralsAnalyzer.spec.js +64 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/__tests__/iOSNetworkingAdvancedRules.spec.js +10 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/__tests__/iOSPerformanceRules.spec.js +34 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/__tests__/iOSSPMRules.spec.js +10 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/__tests__/iOSSwiftUIAdvancedRules.spec.js +10 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSASTIntelligentAnalyzer.js +894 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSArchitectureDetector.js +445 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSArchitectureRules.js +700 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSCICDRules.js +431 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSEnterpriseAnalyzer.js +580 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSForbiddenLiteralsAnalyzer.js +261 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSNetworkingAdvancedRules.js +177 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSPerformanceRules.js +11 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSSPMRules.js +496 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSSwiftUIAdvancedRules.js +333 -0
- package/scripts/hooks-system/infrastructure/ast/ios/analyzers/iOSTestingAdvancedRules.js +225 -0
- package/scripts/hooks-system/infrastructure/ast/ios/ast-ios.js +2176 -0
- package/scripts/hooks-system/infrastructure/ast/ios/native-bridge.js +92 -0
- package/scripts/hooks-system/infrastructure/ast/ios/parsers/SourceKittenParser.js +471 -0
- package/scripts/hooks-system/infrastructure/ast/ios/parsers/__tests__/SourceKittenParser.spec.js +41 -0
- package/scripts/hooks-system/infrastructure/ast/text/__tests__/text-scanner.spec.js +20 -0
- package/scripts/hooks-system/infrastructure/ast/text/text-scanner.js +1120 -0
- package/scripts/hooks-system/infrastructure/cache/CacheService.js +160 -0
- package/scripts/hooks-system/infrastructure/cli/__tests__/install-wizard.spec.js +16 -0
- package/scripts/hooks-system/infrastructure/cli/install-wizard.js +74 -0
- package/scripts/hooks-system/infrastructure/core/GitOperations.js +50 -0
- package/scripts/hooks-system/infrastructure/core/GitOperations.ts +112 -0
- package/scripts/hooks-system/infrastructure/core/__tests__/GitOperations.spec.js +146 -0
- package/scripts/hooks-system/infrastructure/eslint/eslint-integration.sh +75 -0
- package/scripts/hooks-system/infrastructure/events/EventListeners.js +143 -0
- package/scripts/hooks-system/infrastructure/events/__tests__/events.spec.js +14 -0
- package/scripts/hooks-system/infrastructure/external-tools/GitOperations.js +54 -0
- package/scripts/hooks-system/infrastructure/external-tools/eslint/backend.config.template.mjs +58 -0
- package/scripts/hooks-system/infrastructure/git-hooks/pre-push +35 -0
- package/scripts/hooks-system/infrastructure/git-server/pre-receive-hook +253 -0
- package/scripts/hooks-system/infrastructure/guards/git-wrapper.sh +32 -0
- package/scripts/hooks-system/infrastructure/guards/master-validator.sh +247 -0
- package/scripts/hooks-system/infrastructure/guards/prevent-no-verify.sh +34 -0
- package/scripts/hooks-system/infrastructure/hooks/__tests__/skill-activation-prompt.spec.js +11 -0
- package/scripts/hooks-system/infrastructure/hooks/pre-tool-use-intelligent-enforcer.sh +489 -0
- package/scripts/hooks-system/infrastructure/hooks/skill-activation-prompt.js +244 -0
- package/scripts/hooks-system/infrastructure/logging/UnifiedLoggerFactory.js +40 -0
- package/scripts/hooks-system/infrastructure/logging/__tests__/logging.spec.js +9 -0
- package/scripts/hooks-system/infrastructure/mcp/README.md +116 -0
- package/scripts/hooks-system/infrastructure/mcp/__tests__/ast-intelligence-automation.spec.js +38 -0
- package/scripts/hooks-system/infrastructure/mcp/__tests__/evidence-watcher.spec.js +38 -0
- package/scripts/hooks-system/infrastructure/mcp/ast-intelligence-automation.js +1097 -0
- package/scripts/hooks-system/infrastructure/mcp/evidence-watcher.js +128 -0
- package/scripts/hooks-system/infrastructure/mcp/package.json +17 -0
- package/scripts/hooks-system/infrastructure/mcp/services/EvidenceService.js +87 -0
- package/scripts/hooks-system/infrastructure/mcp/services/McpProtocolHandler.js +166 -0
- package/scripts/hooks-system/infrastructure/orchestration/__tests__/intelligent-audit.spec.js +11 -0
- package/scripts/hooks-system/infrastructure/orchestration/intelligent-audit.js +353 -0
- package/scripts/hooks-system/infrastructure/patterns/pattern-checks.sh +98 -0
- package/scripts/hooks-system/infrastructure/reporting/ReportImpactAnalyzer.js +109 -0
- package/scripts/hooks-system/infrastructure/reporting/ReportMetricsCalculator.js +114 -0
- package/scripts/hooks-system/infrastructure/reporting/ReportPresenter.js +86 -0
- package/scripts/hooks-system/infrastructure/reporting/__tests__/reporting.spec.js +15 -0
- package/scripts/hooks-system/infrastructure/reporting/report-generator.js +130 -0
- package/scripts/hooks-system/infrastructure/reporting/severity-tracker.js +105 -0
- package/scripts/hooks-system/infrastructure/repositories/CursorTokenRepository.js +76 -0
- package/scripts/hooks-system/infrastructure/repositories/FileFindingsRepository.js +88 -0
- package/scripts/hooks-system/infrastructure/repositories/__tests__/repositories.spec.js +20 -0
- package/scripts/hooks-system/infrastructure/repositories/datasources/CursorApiDataSource.js +73 -0
- package/scripts/hooks-system/infrastructure/repositories/datasources/CursorFileDataSource.js +55 -0
- package/scripts/hooks-system/infrastructure/severity/__tests__/severity-evaluator.spec.js +18 -0
- package/scripts/hooks-system/infrastructure/severity/analyzers/__tests__/maintainability-analyzer.spec.js +170 -0
- package/scripts/hooks-system/infrastructure/severity/analyzers/__tests__/performance-analyzer.spec.js +186 -0
- package/scripts/hooks-system/infrastructure/severity/analyzers/__tests__/security-analyzer.spec.js +151 -0
- package/scripts/hooks-system/infrastructure/severity/analyzers/__tests__/stability-analyzer.spec.js +143 -0
- package/scripts/hooks-system/infrastructure/severity/analyzers/maintainability-analyzer.js +100 -0
- package/scripts/hooks-system/infrastructure/severity/analyzers/performance-analyzer.js +109 -0
- package/scripts/hooks-system/infrastructure/severity/analyzers/security-analyzer.js +104 -0
- package/scripts/hooks-system/infrastructure/severity/analyzers/stability-analyzer.js +85 -0
- package/scripts/hooks-system/infrastructure/severity/context/analyzers/CodeClassificationAnalyzer.js +71 -0
- package/scripts/hooks-system/infrastructure/severity/context/analyzers/DataAnalyzer.js +64 -0
- package/scripts/hooks-system/infrastructure/severity/context/analyzers/ImpactAnalyzer.js +68 -0
- package/scripts/hooks-system/infrastructure/severity/context/analyzers/SafetyAnalyzer.js +82 -0
- package/scripts/hooks-system/infrastructure/severity/context/context-builder.js +88 -0
- package/scripts/hooks-system/infrastructure/severity/generators/RecommendationGenerator.js +153 -0
- package/scripts/hooks-system/infrastructure/severity/mappers/SeverityMapper.js +10 -0
- package/scripts/hooks-system/infrastructure/severity/policies/gate-policies.js +136 -0
- package/scripts/hooks-system/infrastructure/severity/policies/severity-policies.json +206 -0
- package/scripts/hooks-system/infrastructure/severity/scorers/ContextMultiplier.js +49 -0
- package/scripts/hooks-system/infrastructure/severity/severity-evaluator.js +117 -0
- package/scripts/hooks-system/infrastructure/shell/core/constants.sh +26 -0
- package/scripts/hooks-system/infrastructure/shell/core/utils.sh +45 -0
- package/scripts/hooks-system/infrastructure/shell/gitflow/git-wrapper.sh +646 -0
- package/scripts/hooks-system/infrastructure/shell/gitflow/gitflow-enforcer.sh +620 -0
- package/scripts/hooks-system/infrastructure/shell/gitflow/gitflow-state-manager.sh +235 -0
- package/scripts/hooks-system/infrastructure/shell/gitflow-state-manager.sh +225 -0
- package/scripts/hooks-system/infrastructure/shell/orchestrators/audit-orchestrator.sh +1106 -0
- package/scripts/hooks-system/infrastructure/shell/security/detect-secrets.sh +26 -0
- package/scripts/hooks-system/infrastructure/shell/security/detect_secrets.py +182 -0
- package/scripts/hooks-system/infrastructure/shell/validate-clean-architecture.sh +254 -0
- package/scripts/hooks-system/infrastructure/shell/validators/check-doc-structure.sh +62 -0
- package/scripts/hooks-system/infrastructure/shell/validators/ensure-critical-docs.sh +26 -0
- package/scripts/hooks-system/infrastructure/shell/validators/validate-ai-protocol.sh +474 -0
- package/scripts/hooks-system/infrastructure/shell/validators/validate-clean-architecture.sh +303 -0
- package/scripts/hooks-system/infrastructure/shell/validators/validate-conventional-commit.sh +42 -0
- package/scripts/hooks-system/infrastructure/storage/file-operations.sh +31 -0
- package/scripts/hooks-system/infrastructure/telemetry/TelemetryService.js +165 -0
- package/scripts/hooks-system/infrastructure/telemetry/__tests__/telemetry.spec.js +15 -0
- package/scripts/hooks-system/infrastructure/telemetry/metrics-logger.js +66 -0
- package/scripts/hooks-system/infrastructure/telemetry/metrics-server.js +61 -0
- package/scripts/hooks-system/infrastructure/utils/__tests__/utils.spec.js +8 -0
- package/scripts/hooks-system/infrastructure/utils/error-utils.js +28 -0
- package/scripts/hooks-system/infrastructure/utils/timestamp-helper.sh +106 -0
- package/scripts/hooks-system/infrastructure/utils/token-manager.js +121 -0
- package/scripts/hooks-system/infrastructure/validators/__tests__/detect-commit-language.spec.js +16 -0
- package/scripts/hooks-system/infrastructure/validators/__tests__/enforce-english-literals.spec.js +67 -0
- package/scripts/hooks-system/infrastructure/validators/detect-commit-language.js +145 -0
- package/scripts/hooks-system/infrastructure/validators/enforce-english-literals.js +202 -0
- package/scripts/hooks-system/infrastructure/watchdog/__tests__/.audit-reports/token-monitor.log +18 -0
- package/scripts/hooks-system/infrastructure/watchdog/__tests__/auto-recovery.spec.js +14 -0
- package/scripts/hooks-system/infrastructure/watchdog/__tests__/token-monitor.spec.js +67 -0
- package/scripts/hooks-system/infrastructure/watchdog/__tests__/watchdog.spec.js +22 -0
- package/scripts/hooks-system/infrastructure/watchdog/ai-watchdog.sh +278 -0
- package/scripts/hooks-system/infrastructure/watchdog/auto-recovery.js +32 -0
- package/scripts/hooks-system/infrastructure/watchdog/health-check.js +58 -0
- package/scripts/hooks-system/infrastructure/watchdog/token-monitor-loop.sh +20 -0
- package/scripts/hooks-system/infrastructure/watchdog/token-monitor.js +69 -0
- package/scripts/hooks-system/infrastructure/watchdog/token-tracker.sh +208 -0
- package/scripts/hooks-system/presentation/cli/audit.sh +32 -0
- package/scripts/hooks-system/presentation/cli/autonomous-status.sh +92 -0
- package/scripts/hooks-system/presentation/cli/categorize-violations.sh +179 -0
- package/scripts/hooks-system/presentation/cli/direct-audit-option2.sh +23 -0
- package/scripts/hooks-system/presentation/cli/direct-audit.sh +33 -0
- package/skills/android-guidelines/SKILL.md +475 -0
- package/skills/android-guidelines/resources/advanced-topics.md +44 -0
- package/skills/android-guidelines/resources/architecture-overview.md +44 -0
- package/skills/backend-guidelines/SKILL.md +335 -0
- package/skills/backend-guidelines/resources/architecture-overview.md +48 -0
- package/skills/frontend-guidelines/SKILL.md +367 -0
- package/skills/frontend-guidelines/resources/architecture-overview.md +44 -0
- package/skills/ios-guidelines/SKILL.md +406 -0
- package/skills/ios-guidelines/resources/architecture-overview.md +47 -0
- package/skills/skill-rules.json +334 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# GitHub Branch Protection Rules - Configuration Guide
|
|
2
|
+
|
|
3
|
+
This guide explains how to configure branch protection rules for `ast-intelligence-hooks` to enable safe contributions from the community.
|
|
4
|
+
|
|
5
|
+
## Recommended Settings for `main` Branch
|
|
6
|
+
|
|
7
|
+
### Access Level: `Contribute`
|
|
8
|
+
|
|
9
|
+
For an open-source project where we want contributions, use these settings:
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Branch Protection Rules Configuration
|
|
14
|
+
|
|
15
|
+
### 1. **Require a pull request before merging**
|
|
16
|
+
|
|
17
|
+
✅ **Enable this**
|
|
18
|
+
|
|
19
|
+
**Required number of approvals:**
|
|
20
|
+
- **Set to: 1** (minimum)
|
|
21
|
+
- This ensures at least one maintainer reviews PRs
|
|
22
|
+
|
|
23
|
+
**Dismiss stale pull request approvals when new commits are pushed:**
|
|
24
|
+
- ✅ **Enable** (recommended)
|
|
25
|
+
- Ensures reviewers see the latest code
|
|
26
|
+
|
|
27
|
+
**Require review from Code Owners:**
|
|
28
|
+
- ⚠️ **Optional** (enable if you have CODEOWNERS file)
|
|
29
|
+
- Useful if you have specific maintainers for certain areas
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### 2. **Require status checks to pass before merging**
|
|
34
|
+
|
|
35
|
+
✅ **Enable this**
|
|
36
|
+
|
|
37
|
+
**Required status checks:**
|
|
38
|
+
Add these checks (if you have GitHub Actions):
|
|
39
|
+
|
|
40
|
+
- `test` - All tests pass
|
|
41
|
+
- `lint` - Linting passes
|
|
42
|
+
- `typecheck` - TypeScript type checking
|
|
43
|
+
|
|
44
|
+
**Require branches to be up to date before merging:**
|
|
45
|
+
- ✅ **Enable** (recommended)
|
|
46
|
+
- Ensures PR is based on latest main branch
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
### 3. **Require conversation resolution before merging**
|
|
51
|
+
|
|
52
|
+
✅ **Enable this**
|
|
53
|
+
- Ensures all review comments are addressed
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
### 4. **Require signed commits**
|
|
58
|
+
|
|
59
|
+
⚠️ **Optional** (recommended for security)
|
|
60
|
+
- Requires contributors to sign their commits
|
|
61
|
+
- More secure but adds friction for new contributors
|
|
62
|
+
|
|
63
|
+
**Recommendation:** Enable for organizations, optional for personal projects
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### 5. **Require linear history**
|
|
68
|
+
|
|
69
|
+
⚠️ **Optional**
|
|
70
|
+
- Prevents merge commits (enforces rebase)
|
|
71
|
+
- Cleaner history but can be frustrating for contributors
|
|
72
|
+
|
|
73
|
+
**Recommendation:** Keep **disabled** initially, enable later if needed
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
### 6. **Require deployment to succeed before merging**
|
|
78
|
+
|
|
79
|
+
❌ **Disable** (unless you have automated deployments)
|
|
80
|
+
- Only needed if you deploy automatically on merge
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
### 7. **Do not allow bypassing the above settings**
|
|
85
|
+
|
|
86
|
+
✅ **Enable this** (important!)
|
|
87
|
+
- Prevents admins from accidentally merging without reviews
|
|
88
|
+
- Applies rules to everyone including admins
|
|
89
|
+
|
|
90
|
+
**BUT:** You'll need to allow yourself as admin to bypass for emergency fixes
|
|
91
|
+
- Check: **"Restrict who can push to matching branches"**
|
|
92
|
+
- Add yourself as exception if needed
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### 8. **Restrict who can push to matching branches**
|
|
97
|
+
|
|
98
|
+
⚠️ **Optional**
|
|
99
|
+
|
|
100
|
+
**If enabled:**
|
|
101
|
+
- Only listed people can push directly to main
|
|
102
|
+
- Others must use PRs (recommended for open source)
|
|
103
|
+
|
|
104
|
+
**Recommendation:** Enable this, but add yourself as exception for emergencies
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
### 9. **Allow force pushes**
|
|
109
|
+
|
|
110
|
+
❌ **Disable**
|
|
111
|
+
- Never allow force pushes to main
|
|
112
|
+
- Can rewrite history and break things
|
|
113
|
+
|
|
114
|
+
**Exception:** Only allow for branches matching patterns like `release/*` if needed
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### 10. **Allow deletions**
|
|
119
|
+
|
|
120
|
+
❌ **Disable**
|
|
121
|
+
- Prevents accidental deletion of main branch
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Summary: Recommended Configuration
|
|
126
|
+
|
|
127
|
+
✅ **Enable:**
|
|
128
|
+
1. Require pull request before merging (1 approval minimum)
|
|
129
|
+
2. Dismiss stale approvals
|
|
130
|
+
3. Require status checks to pass
|
|
131
|
+
4. Require branches to be up to date
|
|
132
|
+
5. Require conversation resolution
|
|
133
|
+
6. Do not allow bypassing settings (with admin exception)
|
|
134
|
+
7. Restrict who can push (with admin exception)
|
|
135
|
+
|
|
136
|
+
⚠️ **Optional:**
|
|
137
|
+
- Require signed commits (for security)
|
|
138
|
+
- Require review from Code Owners (if CODEOWNERS exists)
|
|
139
|
+
|
|
140
|
+
❌ **Disable:**
|
|
141
|
+
- Require linear history (too strict for contributors)
|
|
142
|
+
- Allow force pushes
|
|
143
|
+
- Allow deletions
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Step-by-Step Setup in GitHub
|
|
148
|
+
|
|
149
|
+
1. Go to: `https://github.com/SwiftEnProfundidad/ast-intelligence-hooks/settings/branches`
|
|
150
|
+
|
|
151
|
+
2. Click **"Add rule"** or **"Add branch protection rule"**
|
|
152
|
+
|
|
153
|
+
3. **Branch name pattern:** `main`
|
|
154
|
+
|
|
155
|
+
4. **Configure:**
|
|
156
|
+
|
|
157
|
+
- ✅ Check: "Require a pull request before merging"
|
|
158
|
+
- Number of approvals: `1`
|
|
159
|
+
- ✅ Check: "Dismiss stale pull request approvals when new commits are pushed"
|
|
160
|
+
|
|
161
|
+
- ✅ Check: "Require status checks to pass before merging"
|
|
162
|
+
- (Add status checks if you have CI/CD)
|
|
163
|
+
- ✅ Check: "Require branches to be up to date before merging"
|
|
164
|
+
|
|
165
|
+
- ✅ Check: "Require conversation resolution before merging"
|
|
166
|
+
|
|
167
|
+
- ✅ Check: "Do not allow bypassing the above settings"
|
|
168
|
+
- Add yourself as exception if needed
|
|
169
|
+
|
|
170
|
+
- ✅ Check: "Restrict who can push to matching branches"
|
|
171
|
+
- Add yourself as exception for emergency fixes
|
|
172
|
+
|
|
173
|
+
- ❌ Uncheck: "Allow force pushes"
|
|
174
|
+
|
|
175
|
+
- ❌ Uncheck: "Allow deletions"
|
|
176
|
+
|
|
177
|
+
5. Click **"Create"** or **"Save changes"**
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Additional Recommendations
|
|
182
|
+
|
|
183
|
+
### Create CODEOWNERS File
|
|
184
|
+
|
|
185
|
+
Create `.github/CODEOWNERS` to automatically request reviews from maintainers:
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
# Default owner
|
|
189
|
+
* @your-github-username
|
|
190
|
+
|
|
191
|
+
# Specific areas
|
|
192
|
+
/docs/ @your-github-username
|
|
193
|
+
/bin/ @your-github-username
|
|
194
|
+
/infrastructure/ @your-github-username
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Enable GitHub Actions (if using)
|
|
198
|
+
|
|
199
|
+
1. Go to: `Settings > Actions > General`
|
|
200
|
+
2. Enable Actions
|
|
201
|
+
3. Create workflows in `.github/workflows/`
|
|
202
|
+
|
|
203
|
+
Example workflow to add:
|
|
204
|
+
- `test.yml` - Run tests on PRs
|
|
205
|
+
- `lint.yml` - Run linting on PRs
|
|
206
|
+
- `typecheck.yml` - Run type checking on PRs
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## For Contributors
|
|
211
|
+
|
|
212
|
+
With these settings, contributors will:
|
|
213
|
+
|
|
214
|
+
1. Fork the repository
|
|
215
|
+
2. Create a branch from `main`
|
|
216
|
+
3. Make changes
|
|
217
|
+
4. Push to their fork
|
|
218
|
+
5. Create a PR to `main`
|
|
219
|
+
6. Wait for at least 1 approval
|
|
220
|
+
7. Address any review comments
|
|
221
|
+
8. Maintainer merges the PR
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Emergency Access
|
|
226
|
+
|
|
227
|
+
If you need to bypass rules for emergencies:
|
|
228
|
+
|
|
229
|
+
1. Use GitHub's "Bypass branch protection" option (if enabled)
|
|
230
|
+
2. Or temporarily disable the rule, make the change, re-enable
|
|
231
|
+
3. Or use admin override (if "Do not allow bypassing" is disabled for admins)
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
**Last updated**: 2025-01-13
|
|
236
|
+
|
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
# Code Standards - ast-intelligence-hooks
|
|
2
|
+
|
|
3
|
+
## Table of Contents
|
|
4
|
+
|
|
5
|
+
1. [Code Style](#code-style)
|
|
6
|
+
2. [ESLint Configuration](#eslint-configuration)
|
|
7
|
+
3. [TypeScript](#typescript)
|
|
8
|
+
4. [Code Conventions](#code-conventions)
|
|
9
|
+
5. [Pre-commit Hooks](#pre-commit-hooks)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Code Style
|
|
14
|
+
|
|
15
|
+
### JavaScript/TypeScript
|
|
16
|
+
|
|
17
|
+
The project follows these conventions:
|
|
18
|
+
|
|
19
|
+
- **Indentation**: 2 spaces
|
|
20
|
+
- **Quotes**: Single quotes (`'`) for strings
|
|
21
|
+
- **Semicolons**: Always use semicolons
|
|
22
|
+
- **Trailing commas**: Use in multi-line objects and arrays
|
|
23
|
+
- **Max line length**: 100 characters (soft, preferably 80)
|
|
24
|
+
|
|
25
|
+
### Example
|
|
26
|
+
|
|
27
|
+
```javascript
|
|
28
|
+
const example = {
|
|
29
|
+
name: 'test',
|
|
30
|
+
value: 42,
|
|
31
|
+
items: ['a', 'b', 'c'],
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
function doSomething(param1, param2) {
|
|
35
|
+
if (param1 > param2) {
|
|
36
|
+
return param1;
|
|
37
|
+
}
|
|
38
|
+
return param2;
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## ESLint Configuration
|
|
45
|
+
|
|
46
|
+
### Current Configuration
|
|
47
|
+
|
|
48
|
+
The project uses ESLint 9+ with flat configuration.
|
|
49
|
+
|
|
50
|
+
**File**: `eslint.config.js`
|
|
51
|
+
|
|
52
|
+
### Main Rules
|
|
53
|
+
|
|
54
|
+
- **Error**: Problems that break functionality
|
|
55
|
+
- **Warn**: Style issues and best practices
|
|
56
|
+
- **Off**: Disabled rules (with justification)
|
|
57
|
+
|
|
58
|
+
### Run ESLint
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Full linter
|
|
62
|
+
npm run lint
|
|
63
|
+
|
|
64
|
+
# Hooks only
|
|
65
|
+
npm run lint:hooks
|
|
66
|
+
|
|
67
|
+
# Auto fix
|
|
68
|
+
npm run lint -- --fix
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Add New Rules
|
|
72
|
+
|
|
73
|
+
Edit `eslint.config.js`:
|
|
74
|
+
|
|
75
|
+
```javascript
|
|
76
|
+
rules: {
|
|
77
|
+
'new-rule-name': 'error',
|
|
78
|
+
'another-rule': 'warn',
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## TypeScript
|
|
85
|
+
|
|
86
|
+
### Configuration
|
|
87
|
+
|
|
88
|
+
**File**: `tsconfig.json`
|
|
89
|
+
|
|
90
|
+
### Enabled Features
|
|
91
|
+
|
|
92
|
+
- **Strict mode**: Enabled
|
|
93
|
+
- **No implicit any**: Enabled
|
|
94
|
+
- **Strict null checks**: Enabled
|
|
95
|
+
- **No unused locals**: Enabled
|
|
96
|
+
- **No unused parameters**: Enabled
|
|
97
|
+
|
|
98
|
+
### Type Checking
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Verify types
|
|
102
|
+
npm run typecheck
|
|
103
|
+
|
|
104
|
+
# Or using tsc directly
|
|
105
|
+
npx tsc --noEmit
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### TypeScript Conventions
|
|
109
|
+
|
|
110
|
+
- **Interfaces**: For objects and data structures
|
|
111
|
+
- **Types**: For unions, intersections, and complex types
|
|
112
|
+
- **Enums**: Only when absolutely necessary
|
|
113
|
+
|
|
114
|
+
```typescript
|
|
115
|
+
// ✅ Good: Interface for object
|
|
116
|
+
interface User {
|
|
117
|
+
id: string;
|
|
118
|
+
name: string;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// ✅ Good: Type for union
|
|
122
|
+
type Status = 'active' | 'inactive' | 'pending';
|
|
123
|
+
|
|
124
|
+
// ❌ Avoid: Enum (prefer union types)
|
|
125
|
+
enum Status {
|
|
126
|
+
Active,
|
|
127
|
+
Inactive,
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Code Conventions
|
|
134
|
+
|
|
135
|
+
### Naming
|
|
136
|
+
|
|
137
|
+
#### Variables and Functions
|
|
138
|
+
|
|
139
|
+
- **camelCase** for variables and functions
|
|
140
|
+
- Descriptive and self-documenting names
|
|
141
|
+
- Avoid abbreviations (except common conventions like `id`, `url`)
|
|
142
|
+
|
|
143
|
+
```javascript
|
|
144
|
+
// ✅ Good
|
|
145
|
+
const userName = 'John';
|
|
146
|
+
function calculateTotalPrice(items) {}
|
|
147
|
+
|
|
148
|
+
// ❌ Bad
|
|
149
|
+
const un = 'John';
|
|
150
|
+
function calc(items) {}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
#### Classes
|
|
154
|
+
|
|
155
|
+
- **PascalCase** for classes
|
|
156
|
+
- Noun names that describe what it is
|
|
157
|
+
|
|
158
|
+
```javascript
|
|
159
|
+
// ✅ Good
|
|
160
|
+
class UserRepository {}
|
|
161
|
+
class AuditResult {}
|
|
162
|
+
|
|
163
|
+
// ❌ Bad
|
|
164
|
+
class userRepository {}
|
|
165
|
+
class audit {}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
#### Constants
|
|
169
|
+
|
|
170
|
+
- **UPPER_SNAKE_CASE** for global constants
|
|
171
|
+
- **camelCase** for local constants
|
|
172
|
+
|
|
173
|
+
```javascript
|
|
174
|
+
// ✅ Good
|
|
175
|
+
const MAX_RETRIES = 3;
|
|
176
|
+
const DEFAULT_TIMEOUT = 5000;
|
|
177
|
+
|
|
178
|
+
// For local constants
|
|
179
|
+
const defaultConfig = { timeout: 5000 };
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Files
|
|
183
|
+
|
|
184
|
+
- **kebab-case** for file names
|
|
185
|
+
- Extensions: `.js` for JavaScript, `.ts` for TypeScript
|
|
186
|
+
|
|
187
|
+
```javascript
|
|
188
|
+
// ✅ Good
|
|
189
|
+
user-repository.js
|
|
190
|
+
audit-result.ts
|
|
191
|
+
feature-first-analyzer.js
|
|
192
|
+
|
|
193
|
+
// ❌ Bad
|
|
194
|
+
UserRepository.js
|
|
195
|
+
auditResult.ts
|
|
196
|
+
FeatureFirstAnalyzer.js
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### File Structure
|
|
200
|
+
|
|
201
|
+
```javascript
|
|
202
|
+
// 1. External imports
|
|
203
|
+
const fs = require('fs');
|
|
204
|
+
const path = require('path');
|
|
205
|
+
|
|
206
|
+
// 2. Internal imports
|
|
207
|
+
const { Finding } = require('../domain/entities/Finding');
|
|
208
|
+
const { analyzeBackend } = require('../infrastructure/ast/backend');
|
|
209
|
+
|
|
210
|
+
// 3. Constants
|
|
211
|
+
const MAX_SIZE = 1024;
|
|
212
|
+
|
|
213
|
+
// 4. Helper functions
|
|
214
|
+
function helperFunction() {}
|
|
215
|
+
|
|
216
|
+
// 5. Main class/export
|
|
217
|
+
class MainClass {
|
|
218
|
+
constructor() {}
|
|
219
|
+
|
|
220
|
+
publicMethod() {}
|
|
221
|
+
|
|
222
|
+
privateMethod() {}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// 6. Exports
|
|
226
|
+
module.exports = { MainClass };
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Clean Code Principles
|
|
232
|
+
|
|
233
|
+
### 1. Single Responsibility
|
|
234
|
+
|
|
235
|
+
```javascript
|
|
236
|
+
// ❌ Bad: Multiple responsibilities
|
|
237
|
+
class UserService {
|
|
238
|
+
getUser(id) {}
|
|
239
|
+
saveUser(user) {}
|
|
240
|
+
sendEmail(user) {}
|
|
241
|
+
generateReport() {}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// ✅ Good: Single responsibility
|
|
245
|
+
class UserRepository {
|
|
246
|
+
getUser(id) {}
|
|
247
|
+
saveUser(user) {}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
class EmailService {
|
|
251
|
+
sendEmail(user) {}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
class ReportGenerator {
|
|
255
|
+
generateReport() {}
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### 2. Small Functions
|
|
260
|
+
|
|
261
|
+
```javascript
|
|
262
|
+
// ❌ Bad: Very long function
|
|
263
|
+
function processOrder(order) {
|
|
264
|
+
// 50+ lines of code...
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// ✅ Good: Small focused functions
|
|
268
|
+
function processOrder(order) {
|
|
269
|
+
validateOrder(order);
|
|
270
|
+
calculateTotal(order);
|
|
271
|
+
applyDiscount(order);
|
|
272
|
+
saveOrder(order);
|
|
273
|
+
notifyUser(order);
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### 3. Early Returns
|
|
278
|
+
|
|
279
|
+
```javascript
|
|
280
|
+
// ❌ Bad: Nested ifs
|
|
281
|
+
function process(data) {
|
|
282
|
+
if (data) {
|
|
283
|
+
if (data.valid) {
|
|
284
|
+
if (data.value) {
|
|
285
|
+
return processValue(data.value);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return null;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
// ✅ Good: Early returns
|
|
293
|
+
function process(data) {
|
|
294
|
+
if (!data) return null;
|
|
295
|
+
if (!data.valid) return null;
|
|
296
|
+
if (!data.value) return null;
|
|
297
|
+
|
|
298
|
+
return processValue(data.value);
|
|
299
|
+
}
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### 4. Avoid Magic Numbers
|
|
303
|
+
|
|
304
|
+
```javascript
|
|
305
|
+
// ❌ Bad: Magic numbers
|
|
306
|
+
if (user.age > 65) {
|
|
307
|
+
applySeniorDiscount(user);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// ✅ Good: Named constants
|
|
311
|
+
const SENIOR_AGE_THRESHOLD = 65;
|
|
312
|
+
if (user.age > SENIOR_AGE_THRESHOLD) {
|
|
313
|
+
applySeniorDiscount(user);
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### 5. Self-descriptive Names
|
|
318
|
+
|
|
319
|
+
```javascript
|
|
320
|
+
// ❌ Bad: Vague names
|
|
321
|
+
function calc(a, b) {
|
|
322
|
+
return a * b * 1.19;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// ✅ Good: Descriptive names
|
|
326
|
+
function calculateTotalWithTax(price, quantity) {
|
|
327
|
+
const TAX_RATE = 1.19;
|
|
328
|
+
return price * quantity * TAX_RATE;
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## Pre-commit Hooks
|
|
335
|
+
|
|
336
|
+
### Configuration
|
|
337
|
+
|
|
338
|
+
Pre-commit hooks automatically run:
|
|
339
|
+
|
|
340
|
+
1. **ESLint**: Code validation
|
|
341
|
+
2. **Type checking**: TypeScript type verification
|
|
342
|
+
3. **Tests**: Quick execution of relevant tests
|
|
343
|
+
|
|
344
|
+
### Bypass (Emergencies Only)
|
|
345
|
+
|
|
346
|
+
```bash
|
|
347
|
+
GIT_BYPASS_HOOK=1 git commit -m "emergency fix"
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
⚠️ **Warning**: Only use in real emergencies.
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## Comments
|
|
355
|
+
|
|
356
|
+
### When to Comment
|
|
357
|
+
|
|
358
|
+
- **DON'T comment obvious code**: Code should be self-descriptive
|
|
359
|
+
- **DO comment**: Complex logic, design decisions, temporary hacks
|
|
360
|
+
|
|
361
|
+
```javascript
|
|
362
|
+
// ❌ Bad: Unnecessary comment
|
|
363
|
+
// Increment the counter
|
|
364
|
+
counter++;
|
|
365
|
+
|
|
366
|
+
// ✅ Good: Self-descriptive code
|
|
367
|
+
counter++;
|
|
368
|
+
|
|
369
|
+
// ✅ Good: Useful comment for complex logic
|
|
370
|
+
// We use Floyd-Warshall algorithm to find shortest path
|
|
371
|
+
// because we need to consider multiple possible routes
|
|
372
|
+
const shortestPath = floydWarshall(graph);
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### Comment Format
|
|
376
|
+
|
|
377
|
+
```javascript
|
|
378
|
+
// Single line comment
|
|
379
|
+
|
|
380
|
+
/**
|
|
381
|
+
* JSDoc comment for public functions/classes
|
|
382
|
+
* @param {string} name - User name
|
|
383
|
+
* @returns {boolean} Whether the user is valid
|
|
384
|
+
*/
|
|
385
|
+
function validateUser(name) {
|
|
386
|
+
// Implementation
|
|
387
|
+
}
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## Git Commits
|
|
393
|
+
|
|
394
|
+
### Commit Format
|
|
395
|
+
|
|
396
|
+
Use [Conventional Commits](https://www.conventionalcommits.org/):
|
|
397
|
+
|
|
398
|
+
```
|
|
399
|
+
<type>(<scope>): <subject>
|
|
400
|
+
|
|
401
|
+
<body>
|
|
402
|
+
|
|
403
|
+
<footer>
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
### Types
|
|
407
|
+
|
|
408
|
+
- `feat`: New feature
|
|
409
|
+
- `fix`: Bug fix
|
|
410
|
+
- `docs`: Documentation
|
|
411
|
+
- `style`: Formatting, semicolons, etc.
|
|
412
|
+
- `refactor`: Refactoring
|
|
413
|
+
- `test`: Tests
|
|
414
|
+
- `chore`: Maintenance tasks
|
|
415
|
+
|
|
416
|
+
### Examples
|
|
417
|
+
|
|
418
|
+
```bash
|
|
419
|
+
feat(ast): add iOS SourceKitten integration
|
|
420
|
+
|
|
421
|
+
fix(backend): resolve circular dependency detection
|
|
422
|
+
|
|
423
|
+
docs(readme): update installation instructions
|
|
424
|
+
|
|
425
|
+
refactor(domain): simplify AuditResult entity
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
430
|
+
## References
|
|
431
|
+
|
|
432
|
+
- [Clean Code by Robert C. Martin](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882)
|
|
433
|
+
- [ESLint Rules](https://eslint.org/docs/rules/)
|
|
434
|
+
- [TypeScript Handbook](https://www.typescriptlang.org/docs/handbook/intro.html)
|
|
435
|
+
- [Conventional Commits](https://www.conventionalcommits.org/)
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
**Last updated**: 2025-01-13
|
|
440
|
+
**Version**: 5.3.0
|