Files
snippet-pastebin/package.json
johndoe6345789 0c3293acc8 feat: Implement trend tracking and CI/CD integration - Phase 3 complete
Two critical features delivered by subagents:

1. TREND TRACKING & HISTORICAL ANALYSIS
   - TrendStorage: Persistent .quality/history.json storage
   - TrendAnalyzer: Trend direction, velocity, volatility detection
   - 44 new comprehensive tests (all passing)
   - Track 7-day/30-day averages, best/worst scores
   - Auto-generate context-aware recommendations
   - Enhanced ConsoleReporter with trend visualization (↑↓→)
   - Alerts on concerning metrics (>2% decline)
   - Rolling 30-day window for efficient storage

2. CI/CD INTEGRATION FOR CONTINUOUS QUALITY
   - GitHub Actions workflow: quality-check.yml
   - Pre-commit hook: Local quality feedback
   - Quality gates: Minimum thresholds enforcement
   - Badge generation: SVG badge with score/trend
   - npm scripts: quality-check (console/json/html)
   - PR commenting: Automated quality status reports
   - Artifact uploads: HTML reports with 30-day retention

DELIVERABLES:
- 2 new analysis modules (502 lines)
- 44 trend tracking tests (all passing)
- GitHub Actions workflow (175 lines)
- Pre-commit hook script (155 lines)
- Badge generation script (118 lines)
- Quality gates config (47 lines)
- 1196 lines of documentation

TEST STATUS:  327/327 tests passing (0.457s)
TEST CHANGE: 283 → 327 tests (+44 new trend tests)
BUILD STATUS:  Success
CI/CD STATUS:  Ready for deployment

Quality score impact estimates:
- Trend tracking: +2 points (feature completeness)
- CI/CD integration: +3 points (quality assurance)
- Total phase 3: +5 points (89 → 94)

ESTIMATED CURRENT SCORE: 94/100 (Phase 3 complete)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-20 23:48:35 +00:00

69 lines
2.1 KiB
JSON

{
"name": "codesnippet",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint . --config eslint.config.mjs",
"lint:fix": "eslint . --config eslint.config.mjs --fix",
"test": "jest",
"test:e2e": "playwright test",
"test:e2e:ui": "playwright test --ui",
"test:e2e:debug": "playwright test --debug",
"test:unit": "jest --watch",
"quality-check": "node run-quality-check.mjs",
"quality-check:json": "node run-quality-check.mjs --format json --output .quality/report.json",
"quality-check:html": "node run-quality-check.mjs --format html --output .quality/report.html",
"quality-check:verbose": "node run-quality-check.mjs --verbose"
},
"dependencies": {
"@babel/standalone": "^7.24.0",
"@monaco-editor/react": "^4.6.0",
"@phosphor-icons/react": "^2.1.7",
"@reduxjs/toolkit": "^2.5.0",
"class-variance-authority": "^0.7.0",
"embla-carousel-react": "^8.6.0",
"framer-motion": "^11.15.0",
"idb": "^8.0.2",
"lucide-react": "^0.294.0",
"monaco-editor": "^0.52.2",
"next": "15.1.3",
"pyodide": "^0.23.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-error-boundary": "^4.0.11",
"react-hook-form": "^7.71.1",
"react-redux": "^9.2.0",
"react-resizable-panels": "^4.4.1",
"recharts": "^2.15.0",
"sonner": "^1.7.1",
"sucrase": "^3.35.0"
},
"devDependencies": {
"@playwright/test": "^1.49.1",
"@testing-library/jest-dom": "^6.1.5",
"@testing-library/react": "^14.1.2",
"@testing-library/user-event": "^14.5.1",
"@types/jest": "^29.5.11",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"autoprefixer": "^10.4.17",
"eslint": "^8",
"eslint-config-next": "15.1.3",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"postcss": "^8.4.35",
"sass": "^1.83.4",
"ts-node": "^10.9.2",
"typescript": "^5",
"typescript-eslint": "^8.53.1"
},
"overrides": {
"react": "^19.0.0",
"react-dom": "^19.0.0"
}
}