Project Analysis & Scanning Task
Objective
Automatically analyze a project's codebase to identify technology stack, dependencies, and deployment requirements for cross-platform installer generation.
Task Overview
This task performs comprehensive project analysis to understand the complete technology ecosystem, dependencies, and configuration requirements needed for successful deployment across multiple platforms.
Process Steps
1. File System Analysis
Purpose: Identify project structure and technology indicators
Actions:
Scan root directory for package manager files (package.json, requirements.txt, pom.xml, Cargo.toml, etc.)
Identify configuration files and their formats (.env, config.yaml, settings.json, etc.)
Detect framework-specific patterns and directory structures
Analyze build scripts and automation files (Makefile, build.gradle, webpack.config.js)
Identify containerization files (Dockerfile, docker-compose.yml, .dockerignore)
Output: Technology stack identification with confidence scores
2. Dependency Mapping
Purpose: Extract and categorize all project dependencies
Actions:
Parse package manager files to extract runtime dependencies
Identify system-level requirements (Node.js, Python, Java runtime versions)
Map platform-specific dependency variations (Windows vs Linux package names)
Analyze transitive dependencies and potential conflicts
Identify optional vs required dependencies
Extract version constraints and compatibility requirements
Output: Comprehensive dependency tree with platform mappings
3. Configuration Discovery
Purpose: Identify all configurable parameters and environment requirements
Actions:
Scan for environment variable usage in code and configuration files
Identify database connections and external service dependencies
Extract port numbers, file paths, and network configuration
Discover API keys, credentials, and secret management requirements
Identify feature flags and conditional configuration options
Map configuration hierarchies and inheritance patterns
Output: Configuration parameter inventory with types and defaults
4. Platform Compatibility Assessment
Purpose: Evaluate cross-platform deployment feasibility
Actions:
Identify platform-specific code or dependencies
Assess compatibility with target operating systems
Flag potential issues with file paths, permissions, or system calls
Evaluate container vs native deployment options
Identify architecture-specific requirements (x64, ARM, etc.)
Assess network and firewall requirements
Output: Platform compatibility matrix with risk assessment
5. Service & Infrastructure Analysis
Purpose: Understand service dependencies and infrastructure requirements
Actions:
Identify database requirements and connection patterns
Discover external service dependencies (APIs, message queues, etc.)
Analyze caching requirements (Redis, Memcached, etc.)
Identify web server and reverse proxy needs
Discover monitoring and logging requirements
Assess scaling and load balancing considerations
Output: Infrastructure requirements specification
Validation Criteria
Completeness Checks
Accuracy Validation
Quality Standards
Output Deliverables
1. Technology Stack Report
2. Dependency Matrix
3. Configuration Inventory
4. Platform Compatibility Assessment
Integration Points
Input Sources
Project codebase and file system
Package manager configuration files
Environment and configuration files
Documentation and README files
Existing deployment scripts or containers
Output Consumers
Manifest Generation task (uses analysis results)
Script Generation task (uses dependency and platform data)
Template Management task (uses configuration parameters)
Quality Validation processes (uses compatibility assessment)
Error Handling
Common Issues
Incomplete package files: Handle missing or corrupted package manager files
Ambiguous technology stack: Resolve conflicts when multiple frameworks detected
Missing dependencies: Identify implicit or undeclared dependencies
Platform conflicts: Handle platform-specific code or dependencies
Configuration complexity: Manage complex configuration hierarchies
Recovery Strategies
Fallback detection: Use multiple detection methods for technology identification
User confirmation: Prompt for clarification on ambiguous results
Incremental analysis: Allow partial results when complete analysis fails
Manual override: Provide mechanisms for user corrections
Validation loops: Re-analyze after user modifications
Performance Considerations
Optimization Strategies
Parallel scanning: Analyze multiple file types concurrently
Caching: Cache analysis results for unchanged projects
Incremental updates: Re-analyze only changed components
Selective depth: Limit analysis depth based on project size
Pattern matching: Use efficient regex patterns for file detection
Resource Management
Memory usage: Stream large files instead of loading entirely
File system: Minimize directory traversal operations
Network: Avoid external API calls during scanning
CPU: Use efficient parsing algorithms
Time limits: Implement timeouts for long-running analysis
Last updated