chati-dev 1.4.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/README.md +3 -3
  2. package/framework/agents/build/dev.md +343 -0
  3. package/framework/agents/clarity/architect.md +112 -0
  4. package/framework/agents/clarity/brief.md +182 -0
  5. package/framework/agents/clarity/brownfield-wu.md +181 -0
  6. package/framework/agents/clarity/detail.md +110 -0
  7. package/framework/agents/clarity/greenfield-wu.md +153 -0
  8. package/framework/agents/clarity/ux.md +112 -0
  9. package/framework/config.yaml +3 -3
  10. package/framework/constitution.md +31 -1
  11. package/framework/context/governance.md +37 -0
  12. package/framework/context/protocols.md +34 -0
  13. package/framework/context/quality.md +27 -0
  14. package/framework/context/root.md +24 -0
  15. package/framework/domains/agents/architect.yaml +51 -0
  16. package/framework/domains/agents/brief.yaml +47 -0
  17. package/framework/domains/agents/brownfield-wu.yaml +49 -0
  18. package/framework/domains/agents/detail.yaml +47 -0
  19. package/framework/domains/agents/dev.yaml +49 -0
  20. package/framework/domains/agents/devops.yaml +43 -0
  21. package/framework/domains/agents/greenfield-wu.yaml +47 -0
  22. package/framework/domains/agents/orchestrator.yaml +49 -0
  23. package/framework/domains/agents/phases.yaml +47 -0
  24. package/framework/domains/agents/qa-implementation.yaml +43 -0
  25. package/framework/domains/agents/qa-planning.yaml +44 -0
  26. package/framework/domains/agents/tasks.yaml +48 -0
  27. package/framework/domains/agents/ux.yaml +50 -0
  28. package/framework/domains/constitution.yaml +77 -0
  29. package/framework/domains/global.yaml +64 -0
  30. package/framework/domains/workflows/brownfield-discovery.yaml +16 -0
  31. package/framework/domains/workflows/brownfield-fullstack.yaml +26 -0
  32. package/framework/domains/workflows/brownfield-service.yaml +22 -0
  33. package/framework/domains/workflows/brownfield-ui.yaml +22 -0
  34. package/framework/domains/workflows/greenfield-fullstack.yaml +26 -0
  35. package/framework/hooks/constitution-guard.js +101 -0
  36. package/framework/hooks/mode-governance.js +92 -0
  37. package/framework/hooks/model-governance.js +76 -0
  38. package/framework/hooks/prism-engine.js +89 -0
  39. package/framework/hooks/session-digest.js +60 -0
  40. package/framework/hooks/settings.json +44 -0
  41. package/framework/migrations/v1.4-to-v2.0.yaml +167 -0
  42. package/framework/migrations/v2.0-to-v2.0.1.yaml +132 -0
  43. package/framework/orchestrator/chati.md +284 -6
  44. package/framework/tasks/architect-api-design.md +63 -0
  45. package/framework/tasks/architect-consolidate.md +47 -0
  46. package/framework/tasks/architect-db-design.md +73 -0
  47. package/framework/tasks/architect-design.md +95 -0
  48. package/framework/tasks/architect-security-review.md +62 -0
  49. package/framework/tasks/architect-stack-selection.md +53 -0
  50. package/framework/tasks/brief-consolidate.md +249 -0
  51. package/framework/tasks/brief-constraint-identify.md +277 -0
  52. package/framework/tasks/brief-extract-requirements.md +339 -0
  53. package/framework/tasks/brief-stakeholder-map.md +176 -0
  54. package/framework/tasks/brief-validate-completeness.md +121 -0
  55. package/framework/tasks/brownfield-wu-architecture-map.md +394 -0
  56. package/framework/tasks/brownfield-wu-deep-discovery.md +312 -0
  57. package/framework/tasks/brownfield-wu-dependency-scan.md +359 -0
  58. package/framework/tasks/brownfield-wu-migration-plan.md +483 -0
  59. package/framework/tasks/brownfield-wu-report.md +325 -0
  60. package/framework/tasks/brownfield-wu-risk-assess.md +424 -0
  61. package/framework/tasks/detail-acceptance-criteria.md +372 -0
  62. package/framework/tasks/detail-consolidate.md +138 -0
  63. package/framework/tasks/detail-edge-case-analysis.md +300 -0
  64. package/framework/tasks/detail-expand-prd.md +389 -0
  65. package/framework/tasks/detail-nfr-extraction.md +223 -0
  66. package/framework/tasks/dev-code-review.md +404 -0
  67. package/framework/tasks/dev-consolidate.md +543 -0
  68. package/framework/tasks/dev-debug.md +322 -0
  69. package/framework/tasks/dev-implement.md +252 -0
  70. package/framework/tasks/dev-iterate.md +411 -0
  71. package/framework/tasks/dev-pr-prepare.md +497 -0
  72. package/framework/tasks/dev-refactor.md +342 -0
  73. package/framework/tasks/dev-test-write.md +306 -0
  74. package/framework/tasks/devops-ci-setup.md +412 -0
  75. package/framework/tasks/devops-consolidate.md +712 -0
  76. package/framework/tasks/devops-deploy-config.md +598 -0
  77. package/framework/tasks/devops-monitoring-setup.md +658 -0
  78. package/framework/tasks/devops-release-prepare.md +673 -0
  79. package/framework/tasks/greenfield-wu-analyze-empty.md +169 -0
  80. package/framework/tasks/greenfield-wu-report.md +266 -0
  81. package/framework/tasks/greenfield-wu-scaffold-detection.md +203 -0
  82. package/framework/tasks/greenfield-wu-tech-stack-assess.md +255 -0
  83. package/framework/tasks/orchestrator-deviation.md +260 -0
  84. package/framework/tasks/orchestrator-escalate.md +276 -0
  85. package/framework/tasks/orchestrator-handoff.md +243 -0
  86. package/framework/tasks/orchestrator-health.md +372 -0
  87. package/framework/tasks/orchestrator-mode-switch.md +262 -0
  88. package/framework/tasks/orchestrator-resume.md +189 -0
  89. package/framework/tasks/orchestrator-route.md +169 -0
  90. package/framework/tasks/orchestrator-spawn-terminal.md +358 -0
  91. package/framework/tasks/orchestrator-status.md +260 -0
  92. package/framework/tasks/orchestrator-suggest-mode.md +372 -0
  93. package/framework/tasks/phases-breakdown.md +91 -0
  94. package/framework/tasks/phases-dependency-mapping.md +67 -0
  95. package/framework/tasks/phases-mvp-scoping.md +94 -0
  96. package/framework/tasks/qa-impl-consolidate.md +522 -0
  97. package/framework/tasks/qa-impl-performance-test.md +487 -0
  98. package/framework/tasks/qa-impl-regression-check.md +413 -0
  99. package/framework/tasks/qa-impl-sast-scan.md +402 -0
  100. package/framework/tasks/qa-impl-test-execute.md +344 -0
  101. package/framework/tasks/qa-impl-verdict.md +339 -0
  102. package/framework/tasks/qa-planning-consolidate.md +309 -0
  103. package/framework/tasks/qa-planning-coverage-plan.md +338 -0
  104. package/framework/tasks/qa-planning-gate-define.md +339 -0
  105. package/framework/tasks/qa-planning-risk-matrix.md +631 -0
  106. package/framework/tasks/qa-planning-test-strategy.md +217 -0
  107. package/framework/tasks/tasks-acceptance-write.md +75 -0
  108. package/framework/tasks/tasks-consolidate.md +57 -0
  109. package/framework/tasks/tasks-decompose.md +80 -0
  110. package/framework/tasks/tasks-estimate.md +66 -0
  111. package/framework/tasks/ux-a11y-check.md +49 -0
  112. package/framework/tasks/ux-component-map.md +55 -0
  113. package/framework/tasks/ux-consolidate.md +46 -0
  114. package/framework/tasks/ux-user-flow.md +46 -0
  115. package/framework/tasks/ux-wireframe.md +76 -0
  116. package/package.json +1 -1
  117. package/scripts/bundle-framework.js +2 -0
  118. package/scripts/changelog-generator.js +222 -0
  119. package/scripts/codebase-mapper.js +728 -0
  120. package/scripts/commit-message-generator.js +167 -0
  121. package/scripts/coverage-analyzer.js +260 -0
  122. package/scripts/dependency-analyzer.js +280 -0
  123. package/scripts/framework-analyzer.js +308 -0
  124. package/scripts/generate-constitution-domain.js +253 -0
  125. package/scripts/health-check.js +481 -0
  126. package/scripts/ide-sync.js +327 -0
  127. package/scripts/performance-analyzer.js +325 -0
  128. package/scripts/plan-tracker.js +278 -0
  129. package/scripts/populate-entity-registry.js +481 -0
  130. package/scripts/pr-review.js +317 -0
  131. package/scripts/rollback-manager.js +310 -0
  132. package/scripts/stuck-detector.js +343 -0
  133. package/scripts/test-quality-assessment.js +257 -0
  134. package/scripts/validate-agents.js +367 -0
  135. package/scripts/validate-tasks.js +465 -0
  136. package/src/autonomy/autonomous-gate.js +293 -0
  137. package/src/autonomy/index.js +51 -0
  138. package/src/autonomy/mode-manager.js +225 -0
  139. package/src/autonomy/mode-suggester.js +283 -0
  140. package/src/autonomy/progress-reporter.js +268 -0
  141. package/src/autonomy/safety-net.js +320 -0
  142. package/src/context/bracket-tracker.js +79 -0
  143. package/src/context/domain-loader.js +107 -0
  144. package/src/context/engine.js +144 -0
  145. package/src/context/formatter.js +184 -0
  146. package/src/context/index.js +4 -0
  147. package/src/context/layers/l0-constitution.js +28 -0
  148. package/src/context/layers/l1-global.js +37 -0
  149. package/src/context/layers/l2-agent.js +39 -0
  150. package/src/context/layers/l3-workflow.js +42 -0
  151. package/src/context/layers/l4-task.js +24 -0
  152. package/src/decision/analyzer.js +167 -0
  153. package/src/decision/engine.js +270 -0
  154. package/src/decision/index.js +38 -0
  155. package/src/decision/registry-healer.js +450 -0
  156. package/src/decision/registry-updater.js +330 -0
  157. package/src/gates/circuit-breaker.js +119 -0
  158. package/src/gates/g1-planning-complete.js +153 -0
  159. package/src/gates/g2-qa-planning.js +153 -0
  160. package/src/gates/g3-implementation.js +188 -0
  161. package/src/gates/g4-qa-implementation.js +207 -0
  162. package/src/gates/g5-deploy-ready.js +180 -0
  163. package/src/gates/gate-base.js +144 -0
  164. package/src/gates/index.js +46 -0
  165. package/src/installer/brownfield-upgrader.js +249 -0
  166. package/src/installer/core.js +55 -3
  167. package/src/installer/file-hasher.js +51 -0
  168. package/src/installer/manifest.js +117 -0
  169. package/src/installer/templates.js +17 -15
  170. package/src/installer/transaction.js +229 -0
  171. package/src/installer/validator.js +18 -1
  172. package/src/memory/agent-memory.js +255 -0
  173. package/src/memory/gotchas-injector.js +72 -0
  174. package/src/memory/gotchas.js +361 -0
  175. package/src/memory/index.js +35 -0
  176. package/src/memory/search.js +233 -0
  177. package/src/memory/session-digest.js +239 -0
  178. package/src/merger/env-merger.js +112 -0
  179. package/src/merger/index.js +56 -0
  180. package/src/merger/replace-merger.js +51 -0
  181. package/src/merger/yaml-merger.js +127 -0
  182. package/src/orchestrator/agent-selector.js +285 -0
  183. package/src/orchestrator/deviation-handler.js +350 -0
  184. package/src/orchestrator/handoff-engine.js +271 -0
  185. package/src/orchestrator/index.js +67 -0
  186. package/src/orchestrator/intent-classifier.js +264 -0
  187. package/src/orchestrator/pipeline-manager.js +492 -0
  188. package/src/orchestrator/pipeline-state.js +223 -0
  189. package/src/orchestrator/session-manager.js +409 -0
  190. package/src/tasks/executor.js +195 -0
  191. package/src/tasks/handoff.js +226 -0
  192. package/src/tasks/index.js +4 -0
  193. package/src/tasks/loader.js +210 -0
  194. package/src/tasks/router.js +182 -0
  195. package/src/terminal/collector.js +216 -0
  196. package/src/terminal/index.js +30 -0
  197. package/src/terminal/isolation.js +129 -0
  198. package/src/terminal/monitor.js +277 -0
  199. package/src/terminal/spawner.js +269 -0
  200. package/src/upgrade/checker.js +1 -1
@@ -0,0 +1,359 @@
1
+ ---
2
+ id: brownfield-wu-dependency-scan
3
+ agent: brownfield-wu
4
+ trigger: brownfield-wu-deep-discovery
5
+ phase: clarity
6
+ requires_input: false
7
+ parallelizable: true
8
+ outputs: [dependencies.yaml]
9
+ handoff_to: brownfield-wu-architecture-map
10
+ autonomous_gate: true
11
+ criteria:
12
+ - All dependency manifests parsed
13
+ - Security vulnerabilities identified
14
+ - Update status assessed for all dependencies
15
+ ---
16
+ # Scan Project Dependencies
17
+
18
+ ## Purpose
19
+ Analyze all project dependencies for versions, vulnerabilities, update status, license compliance, and bundle size impact.
20
+
21
+ ## Prerequisites
22
+ - `discovery.yaml` exists with detected frameworks
23
+ - Dependency manifest files exist (package.json, requirements.txt, Gemfile, etc.)
24
+ - Internet connectivity for vulnerability databases (optional but recommended)
25
+
26
+ ## Steps
27
+
28
+ ### 1. Identify Dependency Manifests
29
+ Based on detected runtime from `discovery.yaml`:
30
+ - **Node.js**: `package.json`, `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`
31
+ - **Python**: `requirements.txt`, `Pipfile`, `poetry.lock`, `pyproject.toml`
32
+ - **Ruby**: `Gemfile`, `Gemfile.lock`
33
+ - **PHP**: `composer.json`, `composer.lock`
34
+ - **Go**: `go.mod`, `go.sum`
35
+ - **Rust**: `Cargo.toml`, `Cargo.lock`
36
+ - **Java**: `pom.xml`, `build.gradle`
37
+
38
+ ### 2. Parse Direct Dependencies
39
+ For each manifest file:
40
+ - Extract all direct dependencies (not dev dependencies separately)
41
+ - Record current versions
42
+ - Identify version constraints (^, ~, >=, exact)
43
+ - Count total dependencies
44
+ - Categorize:
45
+ - **Production**: Required at runtime
46
+ - **Development**: Build, test, lint tools
47
+ - **Peer**: Expected to be provided by consumer
48
+
49
+ ### 3. Analyze Dependency Tree
50
+ - Build complete dependency tree including transitive dependencies
51
+ - Calculate tree statistics:
52
+ - Total unique packages (including transitives)
53
+ - Maximum depth
54
+ - Most depended-upon packages
55
+ - Duplicate dependencies (same package, different versions)
56
+ - Identify potential issues:
57
+ - Circular dependencies
58
+ - Version conflicts
59
+ - Missing peer dependencies
60
+
61
+ ### 4. Check for Vulnerabilities
62
+ - **Node.js**: Run `npm audit` or `yarn audit` or `pnpm audit`
63
+ - **Python**: Run `pip-audit` or check against PyPI advisory database
64
+ - **Ruby**: Run `bundle audit`
65
+ - **Other languages**: Use appropriate security scanners
66
+ - For each vulnerability:
67
+ - CVE ID or advisory ID
68
+ - Severity (critical, high, moderate, low)
69
+ - Affected package and version range
70
+ - Fixed version (if available)
71
+ - Exploitability (proof of concept exists?)
72
+ - CVSS score
73
+ - Aggregate by severity:
74
+ - Critical: Immediate attention required
75
+ - High: Should fix soon
76
+ - Moderate: Fix when convenient
77
+ - Low: Monitor but not urgent
78
+
79
+ ### 5. Assess Update Status
80
+ For each direct dependency:
81
+ - Current version: e.g., "4.18.0"
82
+ - Latest version: Query package registry (npm, PyPI, RubyGems, etc.)
83
+ - Latest compatible version: Respecting semver constraints
84
+ - Version lag:
85
+ - Current: 0-3 months behind
86
+ - Stale: 3-12 months behind
87
+ - Outdated: >12 months behind
88
+ - Abandoned: No updates in >24 months
89
+ - Breaking changes: Major version behind
90
+ - Check deprecation status:
91
+ - Deprecated: Package marked as deprecated
92
+ - Unmaintained: No commits in >18 months
93
+ - Archived: Repository archived
94
+
95
+ ### 6. Analyze License Compliance
96
+ For each dependency:
97
+ - Extract license type (MIT, Apache-2.0, GPL, proprietary, etc.)
98
+ - Check license compatibility with project license
99
+ - Flag concerning licenses:
100
+ - Copyleft (GPL, AGPL) if project is proprietary
101
+ - Proprietary/commercial licenses
102
+ - Unknown or missing licenses
103
+ - Generate license summary:
104
+ - Count by license type
105
+ - Identify incompatibilities
106
+ - List packages requiring attribution
107
+
108
+ ### 7. Estimate Bundle Size Impact (Frontend)
109
+ For frontend dependencies:
110
+ - Check package size on npm (unpacked size)
111
+ - Identify heaviest dependencies (top 10)
112
+ - Estimate total bundle size contribution
113
+ - Flag unnecessarily large dependencies:
114
+ - Full libraries when only small part used (e.g., lodash vs. lodash-es)
115
+ - Multiple similar libraries (moment + date-fns)
116
+ - Unused dependencies (imported but never used)
117
+
118
+ ### 8. Identify Duplicate and Redundant Packages
119
+ - **Duplicates**: Same functionality, different packages
120
+ - Example: axios + node-fetch + got (all HTTP clients)
121
+ - Example: moment + date-fns + dayjs (all date libraries)
122
+ - **Overlapping**: Packages with overlapping functionality
123
+ - Example: lodash + underscore
124
+ - Example: Express + Koa (both loaded)
125
+ - **Unused**: Packages in manifest but not imported in code
126
+ - Scan for import statements
127
+ - Cross-reference with installed packages
128
+ - Flag as removal candidates
129
+
130
+ ### 9. Check for Malicious Packages
131
+ - Check package names against known typosquatting patterns
132
+ - Verify package publishers (established vs. new accounts)
133
+ - Check for sudden maintainer changes
134
+ - Flag suspicious patterns:
135
+ - Obfuscated code in dependencies
136
+ - Unexpected network requests
137
+ - Unusual postinstall scripts
138
+
139
+ ### 10. Generate Update Recommendations
140
+ Prioritize updates:
141
+ - **Priority 1 (Urgent)**: Critical vulnerabilities, deprecated packages
142
+ - **Priority 2 (High)**: High-severity vulnerabilities, major versions behind
143
+ - **Priority 3 (Medium)**: Moderate vulnerabilities, stale packages
144
+ - **Priority 4 (Low)**: Minor updates, no security impact
145
+ For each recommendation:
146
+ - Package name and current version
147
+ - Target version
148
+ - Migration complexity (easy, moderate, hard)
149
+ - Breaking changes summary (if major version)
150
+ - Estimated effort (hours)
151
+
152
+ ## Decision Points
153
+ - **Critical Vulnerabilities Found**: Ask user if they want to pause analysis and fix vulnerabilities immediately
154
+ - **Major Version Behind**: If many dependencies are multiple major versions behind, ask if user wants to plan migration before continuing
155
+ - **License Incompatibilities**: If GPL dependencies found in proprietary project, flag immediately and ask for review
156
+
157
+ ## Error Handling
158
+ - **Network Unavailable**: Skip vulnerability and update checks, document as limitation
159
+ - **Registry Rate Limit**: Back off and retry, or continue with cached data if available
160
+ - **Corrupt Lock File**: Attempt to regenerate from manifest, or flag for manual fix
161
+ - **Parsing Errors**: Log specific manifest parsing errors, attempt to continue with partial data
162
+
163
+ ## Output Format
164
+ ```yaml
165
+ # dependencies.yaml
166
+ timestamp: 2026-02-13T11:15:00Z
167
+ project_path: /Users/user/projects/legacy-app
168
+ runtime: node
169
+
170
+ manifests:
171
+ - file: package.json
172
+ type: npm
173
+ valid: true
174
+ - file: package-lock.json
175
+ type: npm_lock
176
+ valid: true
177
+
178
+ summary:
179
+ total_direct: 87
180
+ total_transitive: 1243
181
+ production: 62
182
+ development: 25
183
+ total_unique: 1330
184
+ tree_depth: 8
185
+
186
+ direct_dependencies:
187
+ production:
188
+ - name: react
189
+ current_version: "17.0.2"
190
+ latest_version: "18.2.0"
191
+ latest_compatible: "17.0.2"
192
+ status: outdated
193
+ months_behind: 24
194
+ breaking_changes: true
195
+ vulnerabilities: 0
196
+ license: MIT
197
+ - name: express
198
+ current_version: "4.18.0"
199
+ latest_version: "4.18.2"
200
+ latest_compatible: "4.18.2"
201
+ status: stale
202
+ months_behind: 8
203
+ breaking_changes: false
204
+ vulnerabilities: 1
205
+ license: MIT
206
+ - name: lodash
207
+ current_version: "4.17.20"
208
+ latest_version: "4.17.21"
209
+ latest_compatible: "4.17.21"
210
+ status: outdated
211
+ months_behind: 18
212
+ breaking_changes: false
213
+ vulnerabilities: 3
214
+ license: MIT
215
+ development:
216
+ - name: webpack
217
+ current_version: "5.75.0"
218
+ latest_version: "5.90.0"
219
+ latest_compatible: "5.90.0"
220
+ status: stale
221
+ months_behind: 6
222
+ breaking_changes: false
223
+ vulnerabilities: 0
224
+ license: MIT
225
+
226
+ vulnerabilities:
227
+ critical: 1
228
+ high: 4
229
+ moderate: 12
230
+ low: 8
231
+ total: 25
232
+ details:
233
+ - id: CVE-2023-45857
234
+ package: lodash
235
+ severity: critical
236
+ cvss_score: 9.8
237
+ affected_versions: "<=4.17.20"
238
+ fixed_version: "4.17.21"
239
+ description: Prototype pollution vulnerability
240
+ exploitable: true
241
+ patch_available: true
242
+ - id: GHSA-xxx-yyy-zzz
243
+ package: express
244
+ severity: moderate
245
+ cvss_score: 5.3
246
+ affected_versions: "4.0.0 - 4.18.1"
247
+ fixed_version: "4.18.2"
248
+ description: Open redirect vulnerability
249
+ exploitable: false
250
+ patch_available: true
251
+
252
+ update_status:
253
+ current: 23
254
+ stale: 31
255
+ outdated: 28
256
+ abandoned: 5
257
+
258
+ deprecated_packages:
259
+ - name: request
260
+ current_version: "2.88.2"
261
+ deprecated_since: 2020-02-11
262
+ replacement: axios, node-fetch, or got
263
+ usage_count: 3
264
+
265
+ licenses:
266
+ summary:
267
+ MIT: 1156
268
+ Apache-2.0: 87
269
+ BSD-3-Clause: 45
270
+ ISC: 32
271
+ GPL-3.0: 2
272
+ Unknown: 8
273
+ incompatibilities:
274
+ - package: some-gpl-package
275
+ license: GPL-3.0
276
+ issue: Copyleft license incompatible with proprietary project
277
+ recommendation: Find MIT/Apache alternative or obtain commercial license
278
+
279
+ bundle_size:
280
+ total_estimated_kb: 2847
281
+ heaviest_packages:
282
+ - name: moment
283
+ size_kb: 523
284
+ recommendation: Replace with date-fns (tree-shakeable) or dayjs (smaller)
285
+ - name: lodash
286
+ size_kb: 456
287
+ recommendation: Use lodash-es for tree-shaking or individual imports
288
+ - name: material-ui
289
+ size_kb: 1234
290
+ recommendation: Already optimized, ensure tree-shaking configured
291
+
292
+ duplicates_and_redundancy:
293
+ duplicate_functionality:
294
+ - packages: [axios, node-fetch]
295
+ type: http_client
296
+ recommendation: Standardize on axios (already primary)
297
+ potential_savings_kb: 89
298
+ - packages: [moment, date-fns]
299
+ type: date_library
300
+ recommendation: Migrate to date-fns (smaller, tree-shakeable)
301
+ potential_savings_kb: 523
302
+ unused_packages:
303
+ - name: uuid
304
+ last_used: never
305
+ recommendation: Remove
306
+ - name: color
307
+ last_used: never
308
+ recommendation: Remove
309
+
310
+ update_recommendations:
311
+ priority_1_urgent:
312
+ - package: lodash
313
+ action: update 4.17.20 → 4.17.21
314
+ reason: Critical vulnerability CVE-2023-45857
315
+ complexity: easy
316
+ breaking_changes: false
317
+ estimated_hours: 0.5
318
+ priority_2_high:
319
+ - package: react
320
+ action: update 17.0.2 → 18.2.0
321
+ reason: 2 major versions behind, new features, better performance
322
+ complexity: hard
323
+ breaking_changes: true
324
+ breaking_changes_summary: |
325
+ - ReactDOM.render → ReactDOM.createRoot
326
+ - Automatic batching of state updates
327
+ - Concurrent features require opt-in
328
+ - Some legacy APIs deprecated
329
+ estimated_hours: 16
330
+ priority_3_medium:
331
+ - package: express
332
+ action: update 4.18.0 → 4.18.2
333
+ reason: Moderate vulnerability, minor version behind
334
+ complexity: easy
335
+ breaking_changes: false
336
+ estimated_hours: 1
337
+ priority_4_low:
338
+ - package: webpack
339
+ action: update 5.75.0 → 5.90.0
340
+ reason: 6 months behind, performance improvements
341
+ complexity: moderate
342
+ breaking_changes: false
343
+ estimated_hours: 2
344
+
345
+ estimated_total_update_effort:
346
+ priority_1: 0.5 hours
347
+ priority_2: 16 hours
348
+ priority_3: 3 hours
349
+ priority_4: 4 hours
350
+ total: 23.5 hours
351
+
352
+ recommendations:
353
+ - Fix critical lodash vulnerability immediately
354
+ - Plan React 17→18 migration as dedicated sprint (16 hours)
355
+ - Remove unused packages (uuid, color) to reduce bloat
356
+ - Replace moment with date-fns for bundle size reduction (523 KB savings)
357
+ - Standardize on single HTTP client (axios)
358
+ - Address GPL-licensed package incompatibility
359
+ ```