--- description: packages allowed-tools: Bash, Read, Edit, Write, Glob, Grep --- # packages Manage project package dependencies (npm, pip, cargo, etc.) with dashboard, updates, and security audits. ## Prompt ROLE: Package Dependency Manager INPUTS (optional) - ACTION=dashboard|update|audit (default: dashboard) - SCOPE=all|security|major|minor|patch (for ACTION=update, default: all) - OUTPUT=markdown|html|json|csv (for ACTION=dashboard, default: markdown) - INCLUDE_DEV=yes|no (default: yes) - SAVE_TO= (default: docs/08-project/dependencies-dashboard.md) - AUTO_PR=yes|no (for ACTION=update, default: no, ask first) --- ## ACTION=dashboard (default) Generate comprehensive dashboard of all project dependencies. ### Detection Scan for dependency manifests: - **Node.js**: package.json, package-lock.json - **Python**: requirements.txt, Pipfile, pyproject.toml - **Ruby**: Gemfile, Gemfile.lock - **Go**: go.mod, go.sum - **Rust**: Cargo.toml, Cargo.lock - **Java**: pom.xml, build.gradle - **.NET**: *.csproj, packages.config - **PHP**: composer.json ### Analysis For each dependency, collect: 1. **Name**: Package name 2. **Current Version**: Installed version 3. **Latest Version**: Most recent available 4. **Type**: Production / Development / Peer 5. **Status**: Up-to-date / Minor update / Major update / Deprecated 6. **Vulnerabilities**: Known CVEs 7. **License**: Software license 8. **Last Updated**: When dependency was last updated upstream 9. **Dependents**: How many project files import it ### Data Sources - `npm outdated`, `pip list --outdated`, etc. - `npm audit`, `pip-audit`, etc. - Registry APIs (npmjs.com, pypi.org, crates.io, etc.) - License scanners - Import/usage analysis (grep) ### Dashboard Format (Markdown) ```markdown # Dependencies Dashboard **Project**: **Generated**: 2025-10-25 10:00:00 UTC **Total Dependencies**: 145 (prod: 98, dev: 47) --- ## Summary | Category | Count | Action Needed | |----------|-------|---------------| | 🔴 Critical Vulnerabilities | 2 | Update immediately | | 🟠 Major Updates | 12 | Review breaking changes | | 🟡 Minor Updates | 28 | Safe to update | | 🟢 Up-to-date | 85 | No action | | ⚪ Deprecated | 3 | Find alternatives | --- ## Critical Vulnerabilities 🔴 ### express@4.16.0 **Current**: 4.16.0 → **Latest**: 4.18.2 (+2 major) **Severity**: HIGH (CVSS 7.5) **CVE**: CVE-2022-24999 **Description**: ReDoS vulnerability in Express.js routing **Fix**: `npm install express@4.18.2` **Affected**: 3 files import this **License**: MIT --- [Additional sections: Deprecated Packages, Major Updates, Minor/Patch Updates, License Compliance, Size Analysis, etc.] --- ## Maintenance Score: 78/100 **Breakdown**: - Security: 60/100 (2 critical vulnerabilities) - Freshness: 80/100 (most deps recent) - License compliance: 95/100 (2 GPL warnings) - Bundle size: 75/100 (some optimization possible) **Recommendation**: Address security issues immediately, then plan regular maintenance. ``` ### Visualization (HTML Output) If OUTPUT=html, generate interactive dashboard with: - Color-coded status badges - Sortable/filterable tables - Dependency graph visualization (D3.js or Mermaid) - Click to expand details - Quick action buttons ("Update", "Learn more") ### JSON Output If OUTPUT=json, provide structured data for tooling: ```json { "generated": "2025-10-25T10:00:00Z", "project": "my-app", "summary": { "total": 145, "production": 98, "development": 47, "critical": 2, "major_updates": 12, "minor_updates": 28, "up_to_date": 85, "deprecated": 3 }, "vulnerabilities": [...], "outdated": [...], "deprecated": [...], "licenses": {...} } ``` --- ## ACTION=update Automatically update project dependencies with security audit. ### Detection & Analysis 1. Detect package manager(s): - Node.js: package.json, package-lock.json, yarn.lock, pnpm-lock.yaml - Python: requirements.txt, Pipfile, pyproject.toml, poetry.lock - Ruby: Gemfile, Gemfile.lock - Go: go.mod, go.sum - Rust: Cargo.toml, Cargo.lock - Java: pom.xml, build.gradle - .NET: *.csproj, packages.config 2. Run appropriate outdated check: - npm outdated --json - pip list --outdated --format=json - bundle outdated --parseable - go list -u -m all - cargo outdated --format json - mvn versions:display-dependency-updates 3. Security audit: - npm audit --json - pip-audit --format json - bundle audit - cargo audit --json - snyk test (if available) ### Categorization Group updates by SCOPE: - **security**: Security vulnerabilities (CVE) - **major**: Breaking changes (1.x → 2.x) - **minor**: New features (1.2.x → 1.3.x) - **patch**: Bug fixes (1.2.3 → 1.2.4) - **all**: All of the above ### Output Report ```markdown # Dependency Update Report **Generated**: **Project**: **Package Manager**: **Scope**: ## Critical Security Updates | Package | Current | Latest | Severity | CVE | |---------|---------|--------|----------|-----| | express | 4.16.0 | 4.18.2 | High | CVE-2022-24999 | ## Major Updates (Breaking Changes) | Package | Current | Latest | Changelog | |---------|---------|--------|-----------| | react | 17.0.2 | 18.2.0 | [link] | ## Minor Updates (New Features) | Package | Current | Latest | Changelog | |---------|---------|--------|-----------| | lodash | 4.17.19 | 4.17.21 | [link] | ## Patch Updates (Bug Fixes) | Package | Current | Latest | |---------|---------|--------| | uuid | 8.3.0 | 8.3.2 | ``` ### Actions (after user review) 1. For SCOPE=security or critical vulnerabilities: - Preview update command (e.g., npm update ) - Ask: "Apply security updates? (YES/NO)" 2. For major updates: - Suggest creating individual stories per major update (may require code changes) - Format: "US-XXXX: Upgrade from to " 3. For minor/patch: - Offer bulk update: "Apply all minor/patch updates? (YES/NO)" 4. If AUTO_PR=yes and approved: - Create feature branch: deps/- - Run update commands - Run tests (if available) - Commit with message: "chore(deps): update dependencies ()" - Push and create PR using /AgileFlow:pr-template ### Integration - Save report to docs/08-project/dependency-report-.md - If vulnerabilities found, create story: "US-XXXX: Fix security vulnerabilities in dependencies" - Update docs/09-agents/bus/log.jsonl with "dependency-check" event ### Schedule Suggestion Recommend adding to CI: ```yaml - cron: '0 0 * * 1' # Weekly on Monday ``` --- ## ACTION=audit Run security audit only (no updates). ### Process 1. Detect package manager 2. Run security audit: - `npm audit --json` - `pip-audit --format json` - `bundle audit` - `cargo audit --json` - `snyk test` (if available) 3. Report findings with severity levels 4. Suggest fixes (but don't apply) 5. Optional: Create story for security fixes ### Output ```markdown # Security Audit Report **Generated**: 2025-10-25 10:00:00 UTC **Package Manager**: npm ## Critical (2) - express@4.16.0: CVE-2022-24999 (CVSS 7.5) - lodash@4.17.19: CVE-2021-23337 (CVSS 7.4) ## High (0) None ## Moderate (3) [...] **Recommendation**: Run /AgileFlow:packages ACTION=update SCOPE=security ``` --- ## Usage Examples ```bash # Show dependency dashboard (default) /AgileFlow:packages /AgileFlow:packages ACTION=dashboard # Export dashboard as HTML /AgileFlow:packages ACTION=dashboard OUTPUT=html # Export as JSON for tooling /AgileFlow:packages ACTION=dashboard OUTPUT=json > deps.json # Security audit only /AgileFlow:packages ACTION=audit # Update security vulnerabilities /AgileFlow:packages ACTION=update SCOPE=security # Update all minor and patch versions /AgileFlow:packages ACTION=update SCOPE=minor # Update all with auto-PR /AgileFlow:packages ACTION=update SCOPE=all AUTO_PR=yes # Update only production dependencies /AgileFlow:packages ACTION=update INCLUDE_DEV=no ``` --- ## CI Integration Suggest adding automated checks: ```yaml - name: Dependency audit run: npm audit --audit-level=high - name: Check outdated run: npm outdated || true # Don't fail, just warn - name: Generate dashboard run: npx claude-code /AgileFlow:packages ACTION=dashboard ``` Suggest Dependabot config (.github/dependabot.yml): ```yaml version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" open-pull-requests-limit: 10 ``` --- ## Rules - Prioritize security updates - Group minor/patch updates when safe - Warn about breaking changes (major updates) - Never auto-update without approval - Highlight deprecated packages prominently - Consider bundle size impact - Check license compatibility - Never force-update without running tests - Preview all commands before execution (require YES/NO) - Link to changelogs and migration guides --- ## Output Depending on ACTION: - **dashboard**: Dependency dashboard (markdown/html/json/csv) - **update**: Update report + optional PR with updates (if approved) - **audit**: Security audit report with severity levels