Automated dependency conflict detection and resolution. Detects local vs CI environment mismatches, compares versions, and generates pinning recommendations...
This skill detects and resolves local vs CI environment mismatches BEFORE push, preventing the 20-45 minute debug cycles documented in DISCOVERIES.md ("CI Failure Resolution Process Analysis" entry).
The skill addresses a critical gap: existing tools (ci-diagnostic-workflow, pre-commit-diagnostic) fix issues AFTER they occur. This skill catches mismatches BEFORE push.
From DISCOVERIES.md analysis:
When activated, execute these steps autonomously:
# Python version
python --version
# Installed tool versions
pip show ruff black pyright mypy 2>/dev/null | grep -E "^(Name|Version):"
# Pre-commit hook versions (if available)
cat .pre-commit-config.yaml 2>/dev/null | grep -E "rev:|repo:"
Read(file_path=".github/workflows/ci.yml")
Read(file_path="pyproject.toml")
Read(file_path=".pre-commit-config.yaml")
Extract:
python-version:)Build comparison table:
| Component | Local | CI | Status |
|---|---|---|---|
| Python | 3.12.10 | 3.11 | MISMATCH |
| ruff | 0.12.7 | 0.13.0 | MISMATCH |
| black | 24.3.0 | 24.3.0 | OK |
For each mismatch, provide actionable fix:
Python Version Mismatch:
# Option A: Use pyenv to match CI version
pyenv install 3.11
pyenv local 3.11
# Option B: Update CI to match local (if local is intentional)
# Edit .github/workflows/ci.yml line 33
Tool Version Mismatch:
# Pin versions in pyproject.toml
pip install ruff==0.13.0
# Or update pre-commit hooks
pre-commit autoupdate
If user requests auto-fix:
pre-commit autoupdateIntegrates with fix-agent templates for:
Hand-off when pre-commit failures detected after version sync.
Hand-off for post-push CI failures not caught by pre-push validation.
Symptoms:
Fix:
# Check CI Python version
grep -r "python-version" .github/workflows/
# Match locally or update CI
Symptoms:
Fix:
# Sync pre-commit hooks to latest
pre-commit autoupdate
# Or pin specific version
pip install ruff==<ci-version>
Symptoms:
Fix:
# Install all optional dependencies
pip install -e ".[dev]"
# Ensure requirements.txt is up to date
pip freeze > requirements.txt
## Dependency Resolver Report
### Environment Comparison
| Component | Local | CI | Status |
| --------- | ------- | ------- | -------- |
| Python | 3.12.10 | 3.11 | MISMATCH |
| ruff | 0.12.7 | 0.13.0 | MISMATCH |
| pyright | 1.1.350 | 1.1.350 | OK |
### Mismatches Found: 2
### Recommendations
1. **Python Version** (CRITICAL)
- Local: 3.12.10, CI: 3.11
- Action: Consider using pyenv to test with CI version before push
- Risk: Type syntax differences may cause failures
2. **ruff Version** (WARNING)
- Local: 0.12.7, CI: 0.13.0
- Action: Run `pip install ruff==0.13.0` or `pre-commit autoupdate`
- Risk: New rules may flag previously passing code
### Quick Fix Commands
```bash
# Sync ruff version
pip install ruff==0.13.0
# Update all pre-commit hooks
pre-commit autoupdate
# Re-run pre-commit to validate
pre-commit run --all-files
```
### Status: ACTION REQUIRED
Push may fail due to environment mismatches.
Run recommended fixes before pushing.
Trigger Signs:
Not Needed When: