355 lines
9.0 KiB
Markdown
355 lines
9.0 KiB
Markdown
---
|
|
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=<path> (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**: <name>
|
|
**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**: <ISO timestamp>
|
|
**Project**: <name from manifest>
|
|
**Package Manager**: <detected>
|
|
**Scope**: <SCOPE parameter>
|
|
|
|
## 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 <package>)
|
|
- 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 <package> from <old> to <new>"
|
|
|
|
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/<date>-<scope>
|
|
- Run update commands
|
|
- Run tests (if available)
|
|
- Commit with message: "chore(deps): update dependencies (<scope>)"
|
|
- Push and create PR using /AgileFlow:pr-template
|
|
|
|
### Integration
|
|
- Save report to docs/08-project/dependency-report-<YYYYMMDD>.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
|