{
"event": "PreToolUse",
"tool_name": "Bash",
"tool_input": {
"command": "\/var\/www\/scripts\/sync-dev-prod.sh",
"timeout": 120000,
"description": "Sync dev to production"
}
}
{
"tool_response": {
"stdout": "=== Sync Dev → Prod: Thu Dec 25 09:31:33 AM CET 2025 ===\n=== Contract Validation ===\n\u001b[0;34m=== Contract Validation ===\u001b[0m\nTarget: \/var\/www\/dev.campus.systemische-tools.de\nContracts: \/var\/www\/docs\/contracts\n\n\u001b[0;34m[1\/6] View Structure Contract v1.0\u001b[0m\n \u001b[0;32mOK\u001b[0m tasks\/*\n \u001b[0;32mOK\u001b[0m content\/*\n\n\u001b[0;34m[2\/6] HTML Tables Contract v1.0\u001b[0m\n \u001b[0;32mOK\u001b[0m HTML Tables geprüft\n\n\u001b[0;34m[3\/6] CSS Contract v1.0\u001b[0m\n \u001b[0;32mOK\u001b[0m Stylelint passed\n\n\u001b[0;34m[4\/6] Python Pipeline Contract v1.0\u001b[0m\n \u001b[0;32mOK\u001b[0m Ruff + mypy passed\n\n\u001b[0;34m[5\/6] Layered Architecture Contract v1.0\u001b[0m\n \u001b[0;32mOK\u001b[0m Layer-Grenzen eingehalten\n\n\u001b[0;34m[6\/6] Betriebsdokumentation Contract v1.1\u001b[0m\n \u001b[0;32mOK\u001b[0m Dokumentation strukturell korrekt\n\n\u001b[0;34m=== Ergebnis ===\u001b[0m\nCritical: 0\nMajor: 0\nMinor: 0\n\n\u001b[0;32mPASSED: Alle Contracts erfüllt\u001b[0m\n\n=== PHP Quality Check ===\n=== PHP Quality & Security Check: Thu Dec 25 09:31:33 AM CET 2025 ===\nProject: \/var\/www\/dev.campus.systemische-tools.de\n\n\u001b[1;33m[1\/5] PHPStan - Static Analysis + Strict Rules\u001b[0m\n\n [OK] No errors \n\n\u001b[0;32m✓ PHPStan: OK\u001b[0m\n\n\u001b[1;33m[2\/5] PHP-CS-Fixer - Code Style (PSR-12)\u001b[0m\nPHP CS Fixer 3.92.3 Exceptional Exception by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.4.16\nLoaded config default from \"\/opt\/php-tools\/.php-cs-fixer.php\".\nRunning analysis on 1 core sequentially.\nYou can enable parallel runner and speed up the analysis! Please see https:\/\/cs.symfony.com\/doc\/usage.html for more information.\nUsing cache file \"\/tmp\/.php-cs-fixer.cache\".\n 0\/249 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%\n 249\/249 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFound 0 of 249 files that can be fixed in 0.001 seconds, 18.00 MB memory used\n\u001b[0;32m✓ PHP-CS-Fixer: OK\u001b[0m\n\n\u001b[1;33m[3\/5] Composer Audit - Dependency Vulnerabilities\u001b[0m\n\u001b[0;32m✓ Composer Audit: No vulnerabilities\u001b[0m\n\n\u001b[1;33m[4\/5] Semgrep - OWASP Security Scan\u001b[0m\n\u001b[0;32m✓ Semgrep: No vulnerabilities\u001b[0m\n\n\u001b[1;33m[5\/5] DI Check - UseCase Dependencies\u001b[0m\n\n\u001b[0;32m✓ All UseCase dependencies are resolvable\u001b[0m\n\nRegistered services: 64\nUseCases checked: 39\n\u001b[0;32m✓ DI Check: All dependencies resolvable\u001b[0m\n\n=== Summary ===\n\u001b[0;32mAll checks passed!\u001b[0m\n\n=== PHPUnit Tests ===\n=== PHP Unit Tests: Thu Dec 25 09:31:40 AM CET 2025 ===\nProject: \/var\/www\/dev.campus.systemische-tools.de\n\n\u001b[1;33mFound 1 test file(s)\u001b[0m\n\nPHPUnit 12.5.4 by Sebastian Bergmann and contributors.\n\nRuntime: PHP 8.4.16\nConfiguration: \/opt\/php-tools\/phpunit.xml\n\n................. 17 \/ 17 (100%)\n\nTime: 00:00.001, Memory: 14.00 MB\n\nTask Status (Tests\\Unit\\Domain\\ValueObject\\TaskStatus)\n ✔ Is terminal with data set \"pending is not terminal\"\n ✔ Is terminal with data set \"in_progress is not terminal\"\n ✔ Is terminal with data set \"completed is terminal\"\n ✔ Is terminal with data set \"failed is terminal\"\n ✔ Is terminal with data set \"cancelled is terminal\"\n ✔ Label with data set #0\n ✔ Label with data set #1\n ✔ Label with data set #2\n ✔ Label with data set #3\n ✔ Label with data set #4\n ✔ All status values exist\n ✔ Pending can transition to in progress\n ✔ Pending can transition to cancelled\n ✔ Pending cannot transition to completed\n ✔ In progress can transition to completed\n ✔ In progress can transition to failed\n ✔ Completed cannot transition\n\nOK (17 tests, 22 assertions)\n\n\u001b[0;32m✓ All tests passed!\u001b[0m\n\nsending incremental file list\n.\/\nservices.php\ndeleting Infrastructure\/SemanticExplorerRepository.php\nApplication\/\nApplication\/ContentCollectionService.php\nApplication\/PipelineStepService.php\nController\/\nController\/BackupRestoreController.php\nController\/ChatController.php\nController\/CodeAnalysisController.php\nController\/ConfigController.php\nController\/ContentController.php\nController\/ContentPipelineController.php\nController\/ContractController.php\nController\/CriticsController.php\nController\/DocsController.php\nController\/EntityController.php\nController\/HomeController.php\nController\/OntologyController.php\nController\/PromptsController.php\nController\/ProtokollController.php\nController\/RelationController.php\nController\/SemanticExplorerController.php\nController\/SystemExplorerController.php\nController\/TaxonomyController.php\nController\/Api\/\nController\/Api\/ChatController.php\nController\/Api\/ContentController.php\nController\/Api\/DocsController.php\nController\/Api\/ExplorerController.php\nController\/Api\/TaskController.php\nDomain\/\nDomain\/Entity\/\nDomain\/Entity\/Task.php\nDomain\/Entity\/TaskAssignment.php\nDomain\/Entity\/TaskComment.php\nDomain\/Entity\/TaskResult.php\nDomain\/Exception\/\nDomain\/Exception\/DimensionMismatchException.php\nDomain\/Exception\/InvalidStateTransitionException.php\nDomain\/Repository\/\nDomain\/Repository\/ChatMessageRepositoryInterface.php\nDomain\/Repository\/ChatSessionRepositoryInterface.php\nDomain\/Repository\/ChunkRepositoryInterface.php\nDomain\/Repository\/CodeAnalysisRepositoryInterface.php\nDomain\/Repository\/CollectionRepositoryInterface.php\nDomain\/Repository\/ContentRepositoryInterface.php\nDomain\/Repository\/DocumentRepositoryInterface.php\nDomain\/Repository\/DokumentationRepositoryInterface.php\nDomain\/Repository\/EntityRepositoryInterface.php\nDomain\/Repository\/OntologyRepositoryInterface.php\nDomain\/Repository\/PipelineRepositoryInterface.php\nDomain\/Repository\/RelationRepositoryInterface.php\nDomain\/Repository\/SemanticSearchRepositoryInterface.php\nDomain\/Repository\/TaskRepositoryInterface.php\nDomain\/Repository\/TaxonomyRepositoryInterface.php\nDomain\/Service\/\nDomain\/Service\/CodeScannerInterface.php\nDomain\/ValueObject\/\nDomain\/ValueObject\/AssigneeType.php\nDomain\/ValueObject\/ContentOrderStatus.php\nDomain\/ValueObject\/Pagination.php\nDomain\/ValueObject\/PipelineRunStatus.php\nDomain\/ValueObject\/TaskStatus.php\nFramework\/\nFramework\/App.php\nFramework\/Container.php\nFramework\/ContainerException.php\nFramework\/Controller.php\nFramework\/CsrfService.php\nFramework\/Router.php\nFramework\/Middleware\/\nFramework\/Middleware\/CorrelationMiddleware.php\nInfrastructure\/\nInfrastructure\/AI\/\nInfrastructure\/AI\/AIClientInterface.php\nInfrastructure\/AI\/AIConfig.php\nInfrastructure\/AI\/AIResponse.php\nInfrastructure\/AI\/AnthropicClient.php\nInfrastructure\/AI\/ChatService.php\nInfrastructure\/AI\/ClaudeService.php\nInfrastructure\/AI\/ContentQualityValidator.php\nInfrastructure\/AI\/ModelConfig.php\nInfrastructure\/AI\/ModelRegistry.php\nInfrastructure\/AI\/OllamaClient.php\nInfrastructure\/AI\/OllamaService.php\nInfrastructure\/AI\/QdrantService.php\nInfrastructure\/AI\/ScoringService.php\nInfrastructure\/AI\/VectorSearchService.php\nInfrastructure\/Audit\/\nInfrastructure\/Audit\/AuditService.php\nInfrastructure\/CodeAnalysis\/\nInfrastructure\/CodeAnalysis\/ClassFunctionExtractorTrait.php\nInfrastructure\/CodeAnalysis\/CodeQualityChecker.php\nInfrastructure\/CodeAnalysis\/CodeScanner.php\nInfrastructure\/CodeAnalysis\/InheritanceExtractorTrait.php\nInfrastructure\/CodeAnalysis\/JsFileParser.php\nInfrastructure\/CodeAnalysis\/PhpFileParser.php\nInfrastructure\/CodeAnalysis\/PythonFileParser.php\nInfrastructure\/CodeAnalysis\/TokenNavigatorTrait.php\nInfrastructure\/CodeAnalysis\/UseStatementExtractorTrait.php\nInfrastructure\/CodeAnalysis\/scripts\/\nInfrastructure\/CodeAnalysis\/scripts\/python_parser.py\nInfrastructure\/Config\/\nInfrastructure\/Config\/CredentialService.php\nInfrastructure\/Config\/DatabaseFactory.php\nInfrastructure\/Config\/PipelineStepConfig.php\nInfrastructure\/Container\/\nInfrastructure\/Container\/ServiceLocator.php\nInfrastructure\/Docs\/\nInfrastructure\/Docs\/ChunkAnalysisService.php\nInfrastructure\/Docs\/ChunkSyncService.php\nInfrastructure\/Docs\/ChunkingService.php\nInfrastructure\/Docs\/Doc2VectorPipeline.php\nInfrastructure\/Docs\/HybridSearchService.php\nInfrastructure\/Formatter\/\nInfrastructure\/Formatter\/ApiResponseFormatter.php\nInfrastructure\/Formatter\/DateFormatter.php\nInfrastructure\/Formatting\/\nInfrastructure\/Formatting\/ChatMessageFormatter.php\nInfrastructure\/Logging\/\nInfrastructure\/Logging\/AuditLogger.php\nInfrastructure\/Persistence\/\nInfrastructure\/Persistence\/ChatMessageRepository.php\nInfrastructure\/Persistence\/ChatSessionRepository.php\nInfrastructure\/Persistence\/ChunkRepository.php\nInfrastructure\/Persistence\/CodeAnalysisRepository.php\nInfrastructure\/Persistence\/CollectionRepository.php\nInfrastructure\/Persistence\/Connection.php\nInfrastructure\/Persistence\/ContentConfigRepository.php\nInfrastructure\/Persistence\/ContentRepository.php\nInfrastructure\/Persistence\/ContractRepository.php\nInfrastructure\/Persistence\/CriticsRepository.php\nInfrastructure\/Persistence\/DocumentRepository.php\nInfrastructure\/Persistence\/DokumentationRepository.php\nInfrastructure\/Persistence\/EntityRepository.php\nInfrastructure\/Persistence\/FileBackupRepository.php\nInfrastructure\/Persistence\/KiProtokollRepository.php\nInfrastructure\/Persistence\/OntologyRepository.php\nInfrastructure\/Persistence\/PipelineRepository.php\nInfrastructure\/Persistence\/PromptsRepository.php\nInfrastructure\/Persistence\/RelationRepository.php\nInfrastructure\/Persistence\/SemanticSearchRepository.php\nInfrastructure\/Persistence\/SystemExplorerRepository.php\nInfrastructure\/Persistence\/TaskAssignmentRepository.php\nInfrastructure\/Persistence\/TaskCommentRepository.php\nInfrastructure\/Persistence\/TaskRepository.php\nInfrastructure\/Persistence\/TaskResultRepository.php\nInfrastructure\/Persistence\/TaxonomyRepository.php\nInfrastructure\/Traits\/\nInfrastructure\/Traits\/JsonDecodeTrait.php\nInfrastructure\/Validation\/\nInfrastructure\/Validation\/CollectionValidator.php\nInfrastructure\/Validation\/ValidationResult.php\nUseCases\/\nUseCases\/Chat\/\nUseCases\/Chat\/ChatResponse.php\nUseCases\/Chat\/ChatSessionDTO.php\nUseCases\/Chat\/ChatSessionResult.php\nUseCases\/Chat\/ExportChatSessionUseCase.php\nUseCases\/Chat\/LoadChatSessionUseCase.php\nUseCases\/Chat\/ManageChatSessionsUseCase.php\nUseCases\/Chat\/SendChatMessageUseCase.php\nUseCases\/CodeAnalysis\/\nUseCases\/CodeAnalysis\/GetCodeAnalysisUseCase.php\nUseCases\/Command\/\nUseCases\/Command\/CreateContentOrderCommand.php\nUseCases\/Command\/CreateCriticCommand.php\nUseCases\/Command\/CreatePromptCommand.php\nUseCases\/Command\/GenerateContentCommand.php\nUse... [TRUNCATED-4010bae3c39d1146]",
"stderr": "",
"interrupted": false,
"isImage": false
}
}