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,475 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: android-guidelines
|
|
3
|
+
description: Comprehensive Android development guide for Kotlin/Jetpack Compose applications using Hilt for dependency injection. Use when creating Composables, ViewModels, use cases, repositories, network layers, or working with Kotlin code, Jetpack Compose components, Room database, Coroutines, Flow, or Android-specific features. Covers Clean Architecture (Domain → Data → Presentation), MVVM pattern, Material Design 3, and testing strategies.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Android Development Guidelines
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Establish consistency and best practices across Android applications using Kotlin/Jetpack Compose with Hilt, following Clean Architecture principles.
|
|
11
|
+
|
|
12
|
+
## When to Use This Skill
|
|
13
|
+
|
|
14
|
+
Automatically activates when working on:
|
|
15
|
+
- Creating or modifying Jetpack Compose screens
|
|
16
|
+
- Building ViewModels and use cases
|
|
17
|
+
- Implementing repositories and network layers
|
|
18
|
+
- Working with Coroutines and Flow
|
|
19
|
+
- Android-specific features (Room, SharedPreferences, Keychain, etc.)
|
|
20
|
+
- Navigation with Navigation Compose
|
|
21
|
+
- Android testing and refactoring
|
|
22
|
+
- Clean Architecture patterns
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Quick Start
|
|
27
|
+
|
|
28
|
+
### New Android Feature Checklist
|
|
29
|
+
|
|
30
|
+
- [ ] **Screen**: Jetpack Compose screen
|
|
31
|
+
- [ ] **Use Case**: Business logic in domain/usecase/
|
|
32
|
+
- [ ] **Repository**: Interface in domain/repository/, implementation in data/repository/
|
|
33
|
+
- [ ] **Model**: Domain model in domain/model/
|
|
34
|
+
- [ ] **ViewModel**: Presentation/ui/{feature}/ViewModel
|
|
35
|
+
- [ ] **Tests**: Unit + integration tests
|
|
36
|
+
- [ ] **Error Handling**: Sealed class Result<T>
|
|
37
|
+
|
|
38
|
+
### New Module Checklist
|
|
39
|
+
|
|
40
|
+
- [ ] Directory structure (see [architecture-overview.md](resources/architecture-overview.md))
|
|
41
|
+
- [ ] Repository interface in domain/repository/
|
|
42
|
+
- [ ] Repository implementation in data/repository/
|
|
43
|
+
- [ ] Use cases in domain/usecase/
|
|
44
|
+
- [ ] ViewModels in presentation/ui/{feature}/
|
|
45
|
+
- [ ] Composables in presentation/ui/{feature}/
|
|
46
|
+
- [ ] Hilt modules in di/
|
|
47
|
+
- [ ] Testing setup
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Architecture Overview
|
|
52
|
+
|
|
53
|
+
### Clean Architecture Layers
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
User Interaction
|
|
57
|
+
↓
|
|
58
|
+
Presentation (Jetpack Compose, ViewModels)
|
|
59
|
+
↓
|
|
60
|
+
Domain (Entities, Use Cases, Repository Interfaces)
|
|
61
|
+
↓
|
|
62
|
+
Data (Repository Implementations, Remote, Local)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Key Principle:** Dependencies point inward. Domain has no dependencies.
|
|
66
|
+
|
|
67
|
+
See [architecture-overview.md](resources/architecture-overview.md) for complete details.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Directory Structure
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
app/
|
|
75
|
+
├── domain/
|
|
76
|
+
│ ├── model/ # Order, User (domain models)
|
|
77
|
+
│ ├── repository/ # OrderRepository interface
|
|
78
|
+
│ └── usecase/ # CreateOrderUseCase
|
|
79
|
+
├── data/
|
|
80
|
+
│ ├── remote/
|
|
81
|
+
│ │ ├── api/ # Retrofit API service
|
|
82
|
+
│ │ └── dto/ # API response DTOs
|
|
83
|
+
│ ├── local/
|
|
84
|
+
│ │ ├── dao/ # Room DAOs
|
|
85
|
+
│ │ └── entity/ # Room entities
|
|
86
|
+
│ ├── repository/ # OrderRepositoryImpl
|
|
87
|
+
│ └── mapper/ # DTO ↔ Domain mappers
|
|
88
|
+
├── presentation/
|
|
89
|
+
│ ├── ui/
|
|
90
|
+
│ │ ├── orders/
|
|
91
|
+
│ │ │ ├── OrdersScreen.kt # Composable
|
|
92
|
+
│ │ │ └── OrdersViewModel.kt # ViewModel
|
|
93
|
+
│ │ └── components/ # Reusable Composables
|
|
94
|
+
│ ├── navigation/ # Navigation graph
|
|
95
|
+
│ └── theme/ # Material 3 theme
|
|
96
|
+
└── di/ # Hilt modules
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Naming Conventions:**
|
|
100
|
+
- Screens: `PascalCase + Screen` - `OrdersListScreen.kt`
|
|
101
|
+
- ViewModels: `PascalCase + ViewModel` - `OrdersListViewModel.kt`
|
|
102
|
+
- Use Cases: `PascalCase + UseCase` - `CreateOrderUseCase.kt`
|
|
103
|
+
- Repositories: `PascalCase + Repository` - `OrdersRepository.kt`
|
|
104
|
+
- Interfaces: `I + PascalCase` - `IOrdersRepository.kt` (or just `OrdersRepository`)
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Core Principles
|
|
109
|
+
|
|
110
|
+
### 1. Jetpack Compose First (NO XML layouts)
|
|
111
|
+
|
|
112
|
+
```kotlin
|
|
113
|
+
// ✅ Jetpack Compose (preferred)
|
|
114
|
+
@Composable
|
|
115
|
+
fun OrdersListScreen(
|
|
116
|
+
viewModel: OrdersListViewModel = hiltViewModel()
|
|
117
|
+
) {
|
|
118
|
+
val uiState by viewModel.uiState.collectAsState()
|
|
119
|
+
|
|
120
|
+
when (val state = uiState) {
|
|
121
|
+
is UiState.Loading -> LoadingIndicator()
|
|
122
|
+
is UiState.Success -> OrdersList(orders = state.orders)
|
|
123
|
+
is UiState.Error -> ErrorMessage(state.message)
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// ❌ XML layouts (avoid in new code)
|
|
128
|
+
// activity_orders_list.xml - NO
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### 2. Clean Architecture Layers
|
|
132
|
+
|
|
133
|
+
```kotlin
|
|
134
|
+
// Domain (no dependencies)
|
|
135
|
+
interface OrdersRepository {
|
|
136
|
+
suspend fun getOrders(): Result<List<Order>>
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Data (implements domain interface)
|
|
140
|
+
class OrdersRepositoryImpl @Inject constructor(
|
|
141
|
+
private val api: OrdersApi,
|
|
142
|
+
private val dao: OrdersDao
|
|
143
|
+
) : OrdersRepository {
|
|
144
|
+
override suspend fun getOrders(): Result<List<Order>> {
|
|
145
|
+
return try {
|
|
146
|
+
val orders = api.getOrders()
|
|
147
|
+
dao.insertAll(orders.map { it.toEntity() })
|
|
148
|
+
Result.success(orders.map { it.toDomain() })
|
|
149
|
+
} catch (e: Exception) {
|
|
150
|
+
Result.failure(e)
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// Domain Use Case
|
|
156
|
+
class GetOrdersUseCase @Inject constructor(
|
|
157
|
+
private val repository: OrdersRepository
|
|
158
|
+
) {
|
|
159
|
+
suspend operator fun invoke(): Result<List<Order>> {
|
|
160
|
+
return repository.getOrders()
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// Presentation (Composable + ViewModel)
|
|
165
|
+
@Composable
|
|
166
|
+
fun OrdersListScreen(
|
|
167
|
+
viewModel: OrdersListViewModel = hiltViewModel()
|
|
168
|
+
) {
|
|
169
|
+
val uiState by viewModel.uiState.collectAsState()
|
|
170
|
+
// UI rendering
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
class OrdersListViewModel @Inject constructor(
|
|
174
|
+
private val getOrdersUseCase: GetOrdersUseCase
|
|
175
|
+
) : ViewModel() {
|
|
176
|
+
private val _uiState = MutableStateFlow<UiState<List<Order>>>(UiState.Loading)
|
|
177
|
+
val uiState: StateFlow<UiState<List<Order>>> = _uiState.asStateFlow()
|
|
178
|
+
|
|
179
|
+
init {
|
|
180
|
+
loadOrders()
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
private fun loadOrders() {
|
|
184
|
+
viewModelScope.launch {
|
|
185
|
+
getOrdersUseCase().fold(
|
|
186
|
+
onSuccess = { _uiState.value = UiState.Success(it) },
|
|
187
|
+
onFailure = { _uiState.value = UiState.Error(it.message ?: "Error") }
|
|
188
|
+
)
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### 3. Dependency Injection with Hilt
|
|
195
|
+
|
|
196
|
+
```kotlin
|
|
197
|
+
// Application class
|
|
198
|
+
@HiltAndroidApp
|
|
199
|
+
class RuralGoApplication : Application()
|
|
200
|
+
|
|
201
|
+
// ViewModel injection
|
|
202
|
+
@HiltViewModel
|
|
203
|
+
class OrdersListViewModel @Inject constructor(
|
|
204
|
+
private val getOrdersUseCase: GetOrdersUseCase
|
|
205
|
+
) : ViewModel()
|
|
206
|
+
|
|
207
|
+
// Composable injection
|
|
208
|
+
@Composable
|
|
209
|
+
fun OrdersListScreen(
|
|
210
|
+
viewModel: OrdersListViewModel = hiltViewModel()
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
// Module for providing dependencies
|
|
214
|
+
@Module
|
|
215
|
+
@InstallIn(SingletonComponent::class)
|
|
216
|
+
object AppModule {
|
|
217
|
+
@Provides
|
|
218
|
+
@Singleton
|
|
219
|
+
fun provideOrdersApi(): OrdersApi {
|
|
220
|
+
return Retrofit.Builder()
|
|
221
|
+
.baseUrl("https://api.ruralgo.com/")
|
|
222
|
+
.addConverterFactory(MoshiConverterFactory.create())
|
|
223
|
+
.build()
|
|
224
|
+
.create(OrdersApi::class.java)
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### 4. Coroutines and Flow
|
|
230
|
+
|
|
231
|
+
```kotlin
|
|
232
|
+
// ✅ suspend functions
|
|
233
|
+
suspend fun getOrders(): Result<List<Order>>
|
|
234
|
+
|
|
235
|
+
// ✅ Flow for reactive streams
|
|
236
|
+
fun observeOrders(): Flow<List<Order>> = flow {
|
|
237
|
+
while (true) {
|
|
238
|
+
emit(repository.getOrders())
|
|
239
|
+
delay(5000)
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// ✅ StateFlow for UI state
|
|
244
|
+
private val _uiState = MutableStateFlow<UiState>(UiState.Loading)
|
|
245
|
+
val uiState: StateFlow<UiState> = _uiState.asStateFlow()
|
|
246
|
+
|
|
247
|
+
// ✅ Collect in Composable
|
|
248
|
+
val uiState by viewModel.uiState.collectAsState()
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### 5. Material Design 3
|
|
252
|
+
|
|
253
|
+
```kotlin
|
|
254
|
+
@Composable
|
|
255
|
+
fun OrdersListScreen() {
|
|
256
|
+
MaterialTheme {
|
|
257
|
+
Scaffold(
|
|
258
|
+
topBar = {
|
|
259
|
+
TopAppBar(title = { Text("Orders") })
|
|
260
|
+
}
|
|
261
|
+
) { padding ->
|
|
262
|
+
LazyColumn(modifier = Modifier.padding(padding)) {
|
|
263
|
+
items(orders) { order ->
|
|
264
|
+
OrderCard(order = order)
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### 6. Testing Required
|
|
273
|
+
|
|
274
|
+
```kotlin
|
|
275
|
+
@Test
|
|
276
|
+
fun `GetOrdersUseCase returns success when repository succeeds`() = runTest {
|
|
277
|
+
val mockRepository = mockk<OrdersRepository>()
|
|
278
|
+
coEvery { mockRepository.getOrders() } returns Result.success(orders)
|
|
279
|
+
|
|
280
|
+
val useCase = GetOrdersUseCase(mockRepository)
|
|
281
|
+
val result = useCase()
|
|
282
|
+
|
|
283
|
+
assertTrue(result.isSuccess)
|
|
284
|
+
assertEquals(orders, result.getOrNull())
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Common Imports
|
|
291
|
+
|
|
292
|
+
```kotlin
|
|
293
|
+
// Jetpack Compose
|
|
294
|
+
import androidx.compose.foundation.layout.*
|
|
295
|
+
import androidx.compose.material3.*
|
|
296
|
+
import androidx.compose.runtime.*
|
|
297
|
+
import androidx.compose.ui.Modifier
|
|
298
|
+
|
|
299
|
+
// ViewModel
|
|
300
|
+
import androidx.lifecycle.ViewModel
|
|
301
|
+
import androidx.lifecycle.viewModelScope
|
|
302
|
+
|
|
303
|
+
// Coroutines
|
|
304
|
+
import kotlinx.coroutines.flow.*
|
|
305
|
+
import kotlinx.coroutines.launch
|
|
306
|
+
|
|
307
|
+
// Hilt
|
|
308
|
+
import dagger.hilt.android.lifecycle.HiltViewModel
|
|
309
|
+
import javax.inject.Inject
|
|
310
|
+
|
|
311
|
+
// Room
|
|
312
|
+
import androidx.room.*
|
|
313
|
+
|
|
314
|
+
// Retrofit
|
|
315
|
+
import retrofit2.http.*
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## Quick Reference
|
|
321
|
+
|
|
322
|
+
### Jetpack Compose Patterns
|
|
323
|
+
|
|
324
|
+
- **Composables**: `@Composable fun ComponentName()`
|
|
325
|
+
- **State**: `remember`, `rememberSaveable`, `derivedStateOf`
|
|
326
|
+
- **Effects**: `LaunchedEffect`, `DisposableEffect`
|
|
327
|
+
- **ViewModels**: `@HiltViewModel class ViewModelName : ViewModel()`
|
|
328
|
+
|
|
329
|
+
### Coroutines Patterns
|
|
330
|
+
|
|
331
|
+
- **Suspend Functions**: `suspend fun name(): Result<T>`
|
|
332
|
+
- **Flow**: `flow { emit(value) }`
|
|
333
|
+
- **StateFlow**: `MutableStateFlow` → `asStateFlow()`
|
|
334
|
+
- **Collect**: `collectAsState()` in Composables
|
|
335
|
+
|
|
336
|
+
### Hilt Patterns
|
|
337
|
+
|
|
338
|
+
- **Application**: `@HiltAndroidApp`
|
|
339
|
+
- **ViewModel**: `@HiltViewModel`
|
|
340
|
+
- **Composable**: `hiltViewModel()`
|
|
341
|
+
- **Module**: `@Module @InstallIn`
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## Security
|
|
346
|
+
|
|
347
|
+
✅ **EncryptedSharedPreferences** - Para datos sensibles
|
|
348
|
+
✅ **Keystore** - Claves criptográficas
|
|
349
|
+
✅ **SafetyNet/Play Integrity** - Verificar integridad del dispositivo
|
|
350
|
+
✅ **Root detection** - Prevenir uso en dispositivos rooted
|
|
351
|
+
✅ **ProGuard/R8** - Ofuscación de código en release
|
|
352
|
+
✅ **Network Security Config** - Certificate pinning
|
|
353
|
+
✅ **Biometric auth** - BiometricPrompt API
|
|
354
|
+
|
|
355
|
+
## Accessibility
|
|
356
|
+
|
|
357
|
+
✅ **TalkBack** - Screen reader de Android
|
|
358
|
+
✅ **contentDescription** - Para imágenes y botones
|
|
359
|
+
✅ **semantics** - En Compose para accesibilidad
|
|
360
|
+
✅ **Touch targets** - Mínimo 48dp
|
|
361
|
+
✅ **Color contrast** - WCAG AA mínimo
|
|
362
|
+
✅ **Text scaling** - Soportar font scaling del sistema
|
|
363
|
+
|
|
364
|
+
## Localization (i18n)
|
|
365
|
+
|
|
366
|
+
✅ **strings.xml** - Por idioma (values-es, values-en)
|
|
367
|
+
✅ **Plurals** - values/plurals.xml
|
|
368
|
+
✅ **RTL support** - start/end en lugar de left/right
|
|
369
|
+
✅ **String formatting** - %1$s, %2$d para argumentos
|
|
370
|
+
✅ **DateFormat** - Fechas localizadas
|
|
371
|
+
✅ **NumberFormat** - Números, monedas localizados
|
|
372
|
+
|
|
373
|
+
## Performance
|
|
374
|
+
|
|
375
|
+
✅ **LazyColumn/LazyRow** - Virtualización de listas
|
|
376
|
+
✅ **Paging 3** - Paginación de datos grandes
|
|
377
|
+
✅ **WorkManager** - Background tasks
|
|
378
|
+
✅ **Baseline Profiles** - Optimización de startup
|
|
379
|
+
✅ **App startup** - androidx.startup para lazy init
|
|
380
|
+
✅ **LeakCanary** - Detección de memory leaks
|
|
381
|
+
✅ **Android Profiler** - CPU, Memory, Network profiling
|
|
382
|
+
|
|
383
|
+
## Compose Performance
|
|
384
|
+
|
|
385
|
+
✅ **Stability** - Composables estables recomponen menos
|
|
386
|
+
✅ **remember** - Evitar recrear objetos
|
|
387
|
+
✅ **derivedStateOf** - Cálculos caros solo cuando cambia input
|
|
388
|
+
✅ **LaunchedEffect keys** - Controlar cuándo se relanza effect
|
|
389
|
+
✅ **Immutable collections** - kotlinx.collections.immutable
|
|
390
|
+
✅ **Skip recomposition** - Parámetros inmutables o estables
|
|
391
|
+
|
|
392
|
+
## Advanced Topics
|
|
393
|
+
|
|
394
|
+
See [advanced-topics.md](resources/advanced-topics.md) for:
|
|
395
|
+
- Gradle (Build)
|
|
396
|
+
- Multi-module
|
|
397
|
+
- CI/CD
|
|
398
|
+
- Logging
|
|
399
|
+
- Configuration
|
|
400
|
+
|
|
401
|
+
## Anti-Patterns to Avoid
|
|
402
|
+
|
|
403
|
+
❌ XML layouts in new code
|
|
404
|
+
❌ Force unwrapping (!!) - use ?, ?:, let
|
|
405
|
+
❌ Context leaks - no Activity references in long-lived objects
|
|
406
|
+
❌ God Activities - Single Activity + Composables
|
|
407
|
+
❌ Hardcoded strings - use strings.xml
|
|
408
|
+
❌ AsyncTask - deprecated, use Coroutines
|
|
409
|
+
❌ RxJava in new code - use Flow
|
|
410
|
+
❌ Singletons everywhere - use Hilt DI
|
|
411
|
+
❌ Java en código nuevo - Solo Kotlin
|
|
412
|
+
❌ findViewById - View Binding o Compose
|
|
413
|
+
❌ Magic numbers - Usar constantes con nombres
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## Navigation Guide
|
|
418
|
+
|
|
419
|
+
| Need to... | Read this |
|
|
420
|
+
|------------|-----------|
|
|
421
|
+
| Understand architecture | [architecture-overview.md](resources/architecture-overview.md) |
|
|
422
|
+
| Create Composables | [compose-patterns.md](resources/compose-patterns.md) |
|
|
423
|
+
| Implement use cases | [use-cases-guide.md](resources/use-cases-guide.md) |
|
|
424
|
+
| Repository pattern | [repositories-guide.md](resources/repositories-guide.md) |
|
|
425
|
+
| Handle errors | [error-handling.md](resources/error-handling.md) |
|
|
426
|
+
| Network access | [networking-patterns.md](resources/networking-patterns.md) |
|
|
427
|
+
| Write tests | [testing-guide.md](resources/testing-guide.md) |
|
|
428
|
+
| Advanced topics | [advanced-topics.md](resources/advanced-topics.md) |
|
|
429
|
+
| See examples | [complete-examples.md](resources/complete-examples.md) |
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## Resource Files
|
|
434
|
+
|
|
435
|
+
### [architecture-overview.md](resources/architecture-overview.md)
|
|
436
|
+
Clean Architecture layers, dependency direction, separation of concerns
|
|
437
|
+
|
|
438
|
+
### [compose-patterns.md](resources/compose-patterns.md)
|
|
439
|
+
Jetpack Compose screens, state management, Material Design 3
|
|
440
|
+
|
|
441
|
+
### [use-cases-guide.md](resources/use-cases-guide.md)
|
|
442
|
+
Business logic orchestration, error handling
|
|
443
|
+
|
|
444
|
+
### [repositories-guide.md](resources/repositories-guide.md)
|
|
445
|
+
Repository interfaces, implementations, dependency injection
|
|
446
|
+
|
|
447
|
+
### [error-handling.md](resources/error-handling.md)
|
|
448
|
+
Sealed class Result<T>, error propagation
|
|
449
|
+
|
|
450
|
+
### [networking-patterns.md](resources/networking-patterns.md)
|
|
451
|
+
Retrofit, Coroutines, error handling
|
|
452
|
+
|
|
453
|
+
### [testing-guide.md](resources/testing-guide.md)
|
|
454
|
+
Unit/integration tests, MockK, coverage
|
|
455
|
+
|
|
456
|
+
### [advanced-topics.md](resources/advanced-topics.md)
|
|
457
|
+
Gradle, multi-module, CI/CD, logging, configuration
|
|
458
|
+
|
|
459
|
+
### [complete-examples.md](resources/complete-examples.md)
|
|
460
|
+
Full examples, refactoring guide
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
## Related Skills
|
|
465
|
+
|
|
466
|
+
- **backend-guidelines** - Backend development patterns
|
|
467
|
+
- **frontend-guidelines** - Frontend development patterns
|
|
468
|
+
- **ios-guidelines** - iOS development patterns
|
|
469
|
+
- **skill-developer** - Meta-skill for creating and managing skills
|
|
470
|
+
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
**Skill Status**: COMPLETE ✅
|
|
474
|
+
**Line Count**: < 500 ✅
|
|
475
|
+
**Progressive Disclosure**: 8 resource files ✅
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Advanced Topics - Android
|
|
2
|
+
|
|
3
|
+
## Gradle (Build)
|
|
4
|
+
|
|
5
|
+
✅ **Kotlin DSL** - build.gradle.kts (preferido sobre Groovy)
|
|
6
|
+
✅ **Version catalogs** - libs.versions.toml para dependencias
|
|
7
|
+
✅ **buildSrc** - Para lógica compartida de build
|
|
8
|
+
✅ **Build types** - debug, release, staging
|
|
9
|
+
✅ **Product flavors** - Para variantes de app
|
|
10
|
+
✅ **Build variants** - Combinación de build type + flavor
|
|
11
|
+
✅ **Dependency management** - Versiones consistentes
|
|
12
|
+
|
|
13
|
+
## Multi-module
|
|
14
|
+
|
|
15
|
+
✅ **Feature modules** - :feature:orders, :feature:users
|
|
16
|
+
✅ **Core modules** - :core:network, :core:database, :core:ui
|
|
17
|
+
✅ **App module** - Composición final
|
|
18
|
+
✅ **Clear dependencies** - Feature → Core, NO Feature → Feature
|
|
19
|
+
✅ **Dynamic features** - Para app bundles grandes (opcional)
|
|
20
|
+
|
|
21
|
+
## CI/CD
|
|
22
|
+
|
|
23
|
+
✅ **GitHub Actions / GitLab CI** - Pipelines
|
|
24
|
+
✅ **Gradle tasks** - ./gradlew assembleDebug, test
|
|
25
|
+
✅ **Lint** - ./gradlew lint (warnings = errores)
|
|
26
|
+
✅ **Detekt** - Static analysis para Kotlin
|
|
27
|
+
✅ **Firebase App Distribution** - Beta testing
|
|
28
|
+
✅ **Play Console** - Production deployment
|
|
29
|
+
|
|
30
|
+
## Logging
|
|
31
|
+
|
|
32
|
+
✅ **Timber** - Logging library
|
|
33
|
+
✅ **Log levels** - e (error), w (warn), i (info), d (debug)
|
|
34
|
+
✅ **NO logs en producción** - if (BuildConfig.DEBUG) Timber.d()
|
|
35
|
+
✅ **Crashlytics** - Firebase para crash reporting
|
|
36
|
+
✅ **Analytics** - Firebase Analytics o custom
|
|
37
|
+
|
|
38
|
+
## Configuration
|
|
39
|
+
|
|
40
|
+
✅ **BuildConfig** - Constantes en tiempo de compilación
|
|
41
|
+
✅ **gradle.properties** - Configuración de build
|
|
42
|
+
✅ **local.properties** - API keys (NO subir a git)
|
|
43
|
+
✅ **secrets-gradle-plugin** - Para API keys seguras
|
|
44
|
+
✅ **Environment variables** - Para CI/CD
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Clean Architecture Overview - Android
|
|
2
|
+
|
|
3
|
+
## Architecture Layers
|
|
4
|
+
|
|
5
|
+
### Domain Layer (No Dependencies)
|
|
6
|
+
- **Models**: Business models (Order, User, Store) - data classes
|
|
7
|
+
- **Use Cases**: Business logic (CreateOrderUseCase, GetOrdersUseCase)
|
|
8
|
+
- **Repository Interfaces**: OrdersRepository, UsersRepository
|
|
9
|
+
|
|
10
|
+
### Data Layer
|
|
11
|
+
- **Repository Implementations**: OrdersRepositoryImpl, UsersRepositoryImpl
|
|
12
|
+
- **Remote**: Retrofit API services, DTOs
|
|
13
|
+
- **Local**: Room DAOs, entities, SharedPreferences
|
|
14
|
+
|
|
15
|
+
### Presentation Layer
|
|
16
|
+
- **ViewModels**: State management, business logic orchestration
|
|
17
|
+
- **Composables**: Jetpack Compose UI
|
|
18
|
+
- **Navigation**: Navigation Compose graph
|
|
19
|
+
- **Theme**: Material Design 3 theme
|
|
20
|
+
|
|
21
|
+
## Dependency Direction
|
|
22
|
+
|
|
23
|
+
Dependencies point **inward**:
|
|
24
|
+
- Presentation → Domain
|
|
25
|
+
- Data → Domain
|
|
26
|
+
- Domain has **zero dependencies**
|
|
27
|
+
|
|
28
|
+
## Request Flow
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
User Interaction
|
|
32
|
+
↓
|
|
33
|
+
Jetpack Compose Screen (Presentation)
|
|
34
|
+
↓
|
|
35
|
+
ViewModel (Presentation)
|
|
36
|
+
↓
|
|
37
|
+
Use Case (Domain)
|
|
38
|
+
↓
|
|
39
|
+
Repository Interface (Domain)
|
|
40
|
+
↓
|
|
41
|
+
Repository Implementation (Data)
|
|
42
|
+
↓
|
|
43
|
+
API/Room (Data)
|
|
44
|
+
```
|