@iservu-inc/adf-cli 0.9.1 → 0.11.0
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.
- package/.claude/settings.local.json +18 -0
- package/.project/PROJECT-SETTINGS.md +68 -0
- package/.project/chats/current/2025-10-05_UX-IMPROVEMENTS-AND-AI-ANALYSIS-CONFIG.md +389 -0
- package/.project/chats/current/SESSION-STATUS.md +205 -228
- package/.project/docs/DOCUMENTATION-UPDATE-CHECKLIST.md +196 -0
- package/.project/docs/ROADMAP.md +142 -44
- package/.project/docs/designs/LEARNING-ANALYTICS-DASHBOARD.md +1383 -0
- package/.project/docs/designs/PATTERN-DECAY-ALGORITHM.md +526 -0
- package/CHANGELOG.md +683 -0
- package/README.md +119 -24
- package/lib/learning/analytics-exporter.js +241 -0
- package/lib/learning/analytics-view.js +508 -0
- package/lib/learning/analytics.js +681 -0
- package/lib/learning/decay-manager.js +336 -0
- package/lib/learning/learning-manager.js +19 -6
- package/lib/learning/pattern-detector.js +285 -2
- package/lib/learning/storage.js +49 -1
- package/lib/utils/pre-publish-check.js +74 -0
- package/package.json +3 -2
- package/scripts/generate-test-data.js +557 -0
- package/tests/analytics-exporter.test.js +477 -0
- package/tests/analytics-view.test.js +466 -0
- package/tests/analytics.test.js +712 -0
- package/tests/decay-manager.test.js +394 -0
- package/tests/pattern-decay.test.js +339 -0
- /package/.project/chats/{current → complete}/2025-10-05_INTELLIGENT-ANSWER-ANALYSIS.md +0 -0
- /package/.project/chats/{current → complete}/2025-10-05_MULTI-IDE-IMPROVEMENTS.md +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,8 +5,691 @@ All notable changes to `@iservu-inc/adf-cli` will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.11.0] - 2025-11-04
|
|
9
|
+
|
|
10
|
+
### 📊 Learning Analytics Dashboard - Phase 6.2
|
|
11
|
+
|
|
12
|
+
**MAJOR FEATURE:** Comprehensive analytics dashboard for visualizing and analyzing learning system performance with 10+ metrics and multi-format export.
|
|
13
|
+
|
|
14
|
+
#### What's New
|
|
15
|
+
|
|
16
|
+
**Analytics Dashboard:**
|
|
17
|
+
- **Interactive CLI Dashboard** - Navigate through multiple analytics views with intuitive menu
|
|
18
|
+
- **10+ Key Metrics** - Overview stats, skip trends, category preferences, pattern distribution, effectiveness
|
|
19
|
+
- **ASCII Visualizations** - Bar charts, distribution displays, and heatmaps in the terminal
|
|
20
|
+
- **Multi-Format Export** - Export analytics as JSON (single file) or CSV (5 separate files)
|
|
21
|
+
- **Pattern Health Tracking** - Monitor pattern decay status (healthy/warning/critical)
|
|
22
|
+
- **Time-Based Trends** - 12-week skip trend analysis with skip rate calculations
|
|
23
|
+
- **Effectiveness Metrics** - Track time saved, pattern accuracy, and rule performance
|
|
24
|
+
|
|
25
|
+
#### Core Components
|
|
26
|
+
|
|
27
|
+
**Analytics Engine (lib/learning/analytics.js - 680 lines):**
|
|
28
|
+
- `generateAnalytics()` - Main analytics generation with comprehensive data aggregation
|
|
29
|
+
- `calculateOverviewStats()` - Total sessions, skips, answers, patterns, rules, learning age
|
|
30
|
+
- `calculateSkipTrends()` - 12-week trend analysis with skip rates
|
|
31
|
+
- `calculateCategoryPreferences()` - Category-level skip rates and preference levels
|
|
32
|
+
- `calculatePatternDistribution()` - Confidence distribution (high/medium/low/veryLow)
|
|
33
|
+
- `calculateDecayStatus()` - Pattern health categorization (healthy/warning/critical)
|
|
34
|
+
- `calculateEffectiveness()` - Time saved, pattern accuracy, rule applications, overall effectiveness
|
|
35
|
+
- `calculateSessionTimeline()` - Session frequency and history analysis
|
|
36
|
+
- `calculateImpactfulPatterns()` - Top patterns by time saved and applications
|
|
37
|
+
- `calculateQuestionStats()` - Most answered/skipped questions
|
|
38
|
+
|
|
39
|
+
**Dashboard UI (lib/learning/analytics-view.js - 530 lines):**
|
|
40
|
+
- `showAnalyticsDashboard()` - Main dashboard entry point
|
|
41
|
+
- `showMainDashboard()` - Overview, trends, and effectiveness view
|
|
42
|
+
- `showCategoryView()` - Detailed category breakdown with heatmap
|
|
43
|
+
- `showPatternHealthView()` - Pattern confidence and decay status
|
|
44
|
+
- `showTimelineView()` - Session history and frequency
|
|
45
|
+
- `showQuestionStatsView()` - Question statistics and insights
|
|
46
|
+
- `showImpactfulPatternsView()` - Top performing patterns
|
|
47
|
+
- `handleExport()` - Export functionality integration
|
|
48
|
+
|
|
49
|
+
**Export Module (lib/learning/analytics-exporter.js - 240 lines):**
|
|
50
|
+
- `exportAnalytics()` - Main export router (JSON/CSV)
|
|
51
|
+
- `exportJSON()` - Single comprehensive JSON file export
|
|
52
|
+
- `exportCSV()` - Multi-file CSV export (5 files)
|
|
53
|
+
- CSV generators for: overview, skip trends, categories, patterns, effectiveness
|
|
54
|
+
- Proper CSV escaping and timestamp-based filenames
|
|
55
|
+
|
|
56
|
+
#### Analytics Metrics
|
|
57
|
+
|
|
58
|
+
**Overview Statistics:**
|
|
59
|
+
- Total sessions count
|
|
60
|
+
- Total skips (manual + filtered breakdown)
|
|
61
|
+
- Total answers count
|
|
62
|
+
- Active patterns and rules
|
|
63
|
+
- Learning system age (days since first session)
|
|
64
|
+
|
|
65
|
+
**Skip Trends (12 weeks):**
|
|
66
|
+
- Weekly skip counts (manual vs filtered)
|
|
67
|
+
- Skip rate percentage per week
|
|
68
|
+
- Week-over-week comparison
|
|
69
|
+
|
|
70
|
+
**Category Preferences:**
|
|
71
|
+
- Skip rate by category (0-100%)
|
|
72
|
+
- Preference levels: High Skip (≥70%), Medium Skip (40-69%), Low Skip (<40%)
|
|
73
|
+
- Total questions per category
|
|
74
|
+
- Sorted by skip rate descending
|
|
75
|
+
|
|
76
|
+
**Pattern Distribution:**
|
|
77
|
+
- Total patterns count
|
|
78
|
+
- Distribution by confidence:
|
|
79
|
+
- High (≥90%) - Very strong patterns
|
|
80
|
+
- Medium (75-89%) - Strong patterns
|
|
81
|
+
- Low (50-74%) - Weak patterns
|
|
82
|
+
- Very Low (<50%) - Very weak patterns
|
|
83
|
+
- Average confidence score
|
|
84
|
+
- Patterns at risk count (confidence <50 or inactive 5+ months)
|
|
85
|
+
|
|
86
|
+
**Pattern Decay Status:**
|
|
87
|
+
- Healthy patterns (confidence ≥75%, active <3 months)
|
|
88
|
+
- Warning patterns (confidence 50-74%, active 3-5 months)
|
|
89
|
+
- Critical patterns (confidence <50 or inactive 5+ months)
|
|
90
|
+
- Recently renewed count (last 30 days)
|
|
91
|
+
- Average pattern age (days)
|
|
92
|
+
|
|
93
|
+
**Effectiveness Metrics:**
|
|
94
|
+
- Time saved (minutes and hours)
|
|
95
|
+
- Questions filtered count
|
|
96
|
+
- False positives and rate
|
|
97
|
+
- Pattern accuracy (% user-approved)
|
|
98
|
+
- Total rule applications
|
|
99
|
+
- Average applications per rule
|
|
100
|
+
- Overall effectiveness score
|
|
101
|
+
|
|
102
|
+
**Session Timeline:**
|
|
103
|
+
- Total sessions count
|
|
104
|
+
- Average sessions per week
|
|
105
|
+
- Session history with dates
|
|
106
|
+
- First and last session dates
|
|
107
|
+
|
|
108
|
+
**Impactful Patterns:**
|
|
109
|
+
- Top 10 by time saved (most effective filters)
|
|
110
|
+
- Top 10 by applications (most frequently used)
|
|
111
|
+
|
|
112
|
+
**Question Statistics:**
|
|
113
|
+
- Top 10 most answered questions
|
|
114
|
+
- Top 10 most skipped questions
|
|
115
|
+
- Total unique questions encountered
|
|
116
|
+
|
|
117
|
+
#### Export Formats
|
|
118
|
+
|
|
119
|
+
**JSON Export:**
|
|
120
|
+
- Single comprehensive file with all analytics
|
|
121
|
+
- Structure: `analytics-YYYY-MM-DDTHH-MM-SS.json`
|
|
122
|
+
- Includes all metrics, trends, and metadata
|
|
123
|
+
- Size: ~50-100 KB for typical datasets
|
|
124
|
+
|
|
125
|
+
**CSV Export:**
|
|
126
|
+
- 5 separate CSV files for different metrics:
|
|
127
|
+
1. `analytics-overview-*.csv` - Overview statistics
|
|
128
|
+
2. `analytics-skip-trends-*.csv` - 12-week trends
|
|
129
|
+
3. `analytics-categories-*.csv` - Category preferences
|
|
130
|
+
4. `analytics-patterns-*.csv` - Pattern distribution and decay
|
|
131
|
+
5. `analytics-effectiveness-*.csv` - Effectiveness metrics
|
|
132
|
+
- Timestamp-based filenames
|
|
133
|
+
- Proper CSV escaping for special characters
|
|
134
|
+
|
|
135
|
+
#### Access & Usage
|
|
136
|
+
|
|
137
|
+
**Dashboard Access:**
|
|
138
|
+
```bash
|
|
139
|
+
adf config
|
|
140
|
+
# → Learning System
|
|
141
|
+
# → 4. 📊 Analytics Dashboard (NEW)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**Navigation:**
|
|
145
|
+
- Main Dashboard → Overview, Trends, Effectiveness
|
|
146
|
+
- Category Breakdown → Skip rates by category with heatmap
|
|
147
|
+
- Pattern Health → Confidence distribution and decay status
|
|
148
|
+
- Session Timeline → Session history and frequency
|
|
149
|
+
- Question Statistics → Most answered/skipped questions
|
|
150
|
+
- Impactful Patterns → Top performers by time saved/applications
|
|
151
|
+
- Export Analytics → JSON or CSV format
|
|
152
|
+
|
|
153
|
+
**Export Location:**
|
|
154
|
+
```
|
|
155
|
+
.adf/learning/exports/
|
|
156
|
+
├── analytics-2025-11-04T10-30-45.json
|
|
157
|
+
└── analytics-overview-2025-11-04T10-30-45.csv
|
|
158
|
+
└── analytics-skip-trends-2025-11-04T10-30-45.csv
|
|
159
|
+
└── analytics-categories-2025-11-04T10-30-45.csv
|
|
160
|
+
└── analytics-patterns-2025-11-04T10-30-45.csv
|
|
161
|
+
└── analytics-effectiveness-2025-11-04T10-30-45.csv
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
#### Testing
|
|
165
|
+
|
|
166
|
+
**Test Coverage:**
|
|
167
|
+
- `analytics.test.js` - 25/25 tests passing (100%) ✅
|
|
168
|
+
- `analytics-exporter.test.js` - 23/23 tests passing (100%) ✅
|
|
169
|
+
- `analytics-view.test.js` - 4/13 tests passing (31% - integration tests)
|
|
170
|
+
- **Overall:** 52/61 analytics tests (85.2%)
|
|
171
|
+
- **Project-wide:** 276/300 tests (92%)
|
|
172
|
+
|
|
173
|
+
**Test Data Generator:**
|
|
174
|
+
- `scripts/generate-test-data.js` - Mock data generator for testing
|
|
175
|
+
- 5 scenarios: empty, new user, active user, power user, edge cases
|
|
176
|
+
- Generates realistic learning data for dashboard testing
|
|
177
|
+
|
|
178
|
+
#### Performance
|
|
179
|
+
|
|
180
|
+
**Load Time Target:** < 2 seconds for 100+ sessions
|
|
181
|
+
**Memory Efficiency:** Streaming data processing for large datasets
|
|
182
|
+
**Visualization:** Lightweight ASCII charts for terminal rendering
|
|
183
|
+
|
|
184
|
+
#### Configuration
|
|
185
|
+
|
|
186
|
+
No additional configuration required. Analytics uses existing learning data from:
|
|
187
|
+
- `.adf/learning/skip-history.json`
|
|
188
|
+
- `.adf/learning/answer-history.json`
|
|
189
|
+
- `.adf/learning/patterns.json`
|
|
190
|
+
- `.adf/learning/learned-rules.json`
|
|
191
|
+
- `.adf/learning/stats.json`
|
|
192
|
+
|
|
193
|
+
#### Benefits
|
|
194
|
+
|
|
195
|
+
**For Users:**
|
|
196
|
+
- Understand learning system behavior and effectiveness
|
|
197
|
+
- Identify patterns in skip/answer behavior
|
|
198
|
+
- Track pattern health and decay status
|
|
199
|
+
- Monitor time savings from automated filtering
|
|
200
|
+
- Make data-driven decisions about pattern approval
|
|
201
|
+
|
|
202
|
+
**For Debugging:**
|
|
203
|
+
- Verify pattern detection is working correctly
|
|
204
|
+
- Validate decay algorithm effectiveness
|
|
205
|
+
- Identify false positives
|
|
206
|
+
- Analyze category-specific behavior
|
|
207
|
+
- Export data for external analysis
|
|
208
|
+
|
|
209
|
+
#### Use Cases
|
|
210
|
+
|
|
211
|
+
**Use Case 1: Review Learning System Performance**
|
|
212
|
+
- View overview to see total sessions and effectiveness
|
|
213
|
+
- Check skip trends to understand behavior over time
|
|
214
|
+
- Review pattern accuracy to validate system
|
|
215
|
+
|
|
216
|
+
**Use Case 2: Optimize Pattern Management**
|
|
217
|
+
- Check pattern health view to identify critical patterns
|
|
218
|
+
- Review impactful patterns to see which provide most value
|
|
219
|
+
- Export data for deeper analysis
|
|
220
|
+
|
|
221
|
+
**Use Case 3: Category-Specific Analysis**
|
|
222
|
+
- View category breakdown to identify high-skip categories
|
|
223
|
+
- Understand which question types are most relevant
|
|
224
|
+
- Adjust workflow based on insights
|
|
225
|
+
|
|
226
|
+
**Use Case 4: Export for Reporting**
|
|
227
|
+
- Generate JSON export for programmatic analysis
|
|
228
|
+
- Create CSV exports for spreadsheet analysis
|
|
229
|
+
- Share analytics with team members
|
|
230
|
+
|
|
231
|
+
#### Breaking Changes
|
|
232
|
+
|
|
233
|
+
None. Fully backward compatible with existing learning data.
|
|
234
|
+
|
|
235
|
+
#### Migration
|
|
236
|
+
|
|
237
|
+
No migration required. Analytics reads existing learning data without modifications.
|
|
238
|
+
|
|
239
|
+
## [0.10.0] - 2025-10-27
|
|
240
|
+
|
|
241
|
+
### 🧠 Pattern Decay Algorithm - Phase 6
|
|
242
|
+
|
|
243
|
+
**MAJOR FEATURE:** Intelligent pattern decay system that keeps learning data fresh and relevant over time.
|
|
244
|
+
|
|
245
|
+
#### What's New
|
|
246
|
+
|
|
247
|
+
**Pattern Decay System:**
|
|
248
|
+
- **Time-Based Exponential Decay** - Patterns lose confidence over time when inactive
|
|
249
|
+
- **Confidence-Based Decay Rates** - Stronger patterns fade slower than weaker ones
|
|
250
|
+
- **Automatic Pattern Cleanup** - Removes stale patterns below threshold or inactive 6+ months
|
|
251
|
+
- **Pattern Renewal System** - Reconfirmed patterns get confidence boost (+10 points)
|
|
252
|
+
- **User-Approved Protection** - Manually approved patterns decay at half rate
|
|
253
|
+
|
|
254
|
+
#### Technical Implementation
|
|
255
|
+
|
|
256
|
+
**Decay Formula:**
|
|
257
|
+
```javascript
|
|
258
|
+
newConfidence = currentConfidence × (1 - decayRate)^monthsInactive
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**Decay Rates by Confidence:**
|
|
262
|
+
- High confidence (≥90%): 7.5% per month (decay slower)
|
|
263
|
+
- Medium confidence (75-89%): 15% per month (normal decay)
|
|
264
|
+
- Low confidence (<75%): 22.5% per month (decay faster)
|
|
265
|
+
|
|
266
|
+
**Pattern Lifecycle:**
|
|
267
|
+
- **Active** - Pattern confidence ≥40, seen within 6 months
|
|
268
|
+
- **Renewed** - Pattern reconfirmed, gets +10 confidence boost
|
|
269
|
+
- **Removed** - Confidence <40 OR inactive 6+ months
|
|
270
|
+
|
|
271
|
+
#### New Components
|
|
272
|
+
|
|
273
|
+
**DecayManager (lib/learning/decay-manager.js):**
|
|
274
|
+
- `loadPatternsWithDecay()` - Automatic decay on pattern load
|
|
275
|
+
- `checkForPatternRenewal()` - Match skip events to patterns and renew
|
|
276
|
+
- `cleanupStalePatterns()` - Separate active from stale patterns
|
|
277
|
+
- `triggerDecayCalculation()` - Manual decay execution
|
|
278
|
+
- `getDecayStats()` - Analytics and reporting
|
|
279
|
+
- Removal history tracking
|
|
280
|
+
|
|
281
|
+
**Enhanced Pattern Detection (lib/learning/pattern-detector.js):**
|
|
282
|
+
- `calculateDecay()` - Apply exponential decay to single pattern
|
|
283
|
+
- `getDecayRate()` - Dynamic rate calculation based on confidence
|
|
284
|
+
- `renewPattern()` - Boost pattern confidence on reconfirmation
|
|
285
|
+
- `applyDecayToPatterns()` - Batch decay application
|
|
286
|
+
- `cleanupStalePatterns()` - Identify and remove stale patterns
|
|
287
|
+
- `enhancePatternsWithMetadata()` - Add decay timestamps
|
|
288
|
+
|
|
289
|
+
**Storage Integration (lib/learning/storage.js):**
|
|
290
|
+
- `getDecayConfig()` - Load decay configuration
|
|
291
|
+
- `saveDecayConfig()` - Save decay configuration
|
|
292
|
+
- Default decay config in `getLearningConfig()`
|
|
293
|
+
|
|
294
|
+
#### Configuration
|
|
295
|
+
|
|
296
|
+
**Default Decay Settings:**
|
|
297
|
+
```json
|
|
298
|
+
{
|
|
299
|
+
"enabled": true,
|
|
300
|
+
"baseDecayRate": 0.15, // 15% per month
|
|
301
|
+
"minConfidenceThreshold": 50, // Don't filter if < 50
|
|
302
|
+
"removeBelow": 40, // Auto-remove if < 40
|
|
303
|
+
"renewalBoost": 10, // +10 points on renewal
|
|
304
|
+
"protectApproved": true, // User-approved decay at 0.5x
|
|
305
|
+
"highConfidenceThreshold": 90, // ≥90 decay slower
|
|
306
|
+
"lowConfidenceThreshold": 75, // <75 decay faster
|
|
307
|
+
"maxRenewalsPerDay": 1, // Limit inflation
|
|
308
|
+
"maxInactiveMonths": 6 // Auto-remove after 6 months
|
|
309
|
+
}
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
Access via `adf config` → Learning System (coming soon).
|
|
313
|
+
|
|
314
|
+
#### Pattern Metadata
|
|
315
|
+
|
|
316
|
+
**New Timestamp Fields:**
|
|
317
|
+
- `createdAt` - When pattern was first detected
|
|
318
|
+
- `lastSeen` - Last time pattern was observed (skip event matched)
|
|
319
|
+
- `lastDecayCalculation` - Last time decay was applied
|
|
320
|
+
- `initialConfidence` - Original confidence score (for tracking history)
|
|
321
|
+
- `timesRenewed` - Count of how many times pattern was reconfirmed
|
|
322
|
+
|
|
323
|
+
#### Use Cases
|
|
324
|
+
|
|
325
|
+
**Scenario 1: Workflow Change**
|
|
326
|
+
- User builds prototypes for 3 months → skips deployment questions (90% confidence)
|
|
327
|
+
- User switches to production apps → needs deployment questions
|
|
328
|
+
- Old pattern decays over time → eventually removed automatically
|
|
329
|
+
- ✅ System adapts to workflow changes
|
|
330
|
+
|
|
331
|
+
**Scenario 2: Pattern Reconfirmation**
|
|
332
|
+
- Pattern confidence decayed to 60%
|
|
333
|
+
- User skips same question again
|
|
334
|
+
- Pattern renewed: confidence increases to 70% (+10 boost)
|
|
335
|
+
- `lastSeen` updated, decay timer resets
|
|
336
|
+
- ✅ Active patterns stay strong
|
|
337
|
+
|
|
338
|
+
#### Testing
|
|
339
|
+
|
|
340
|
+
**Test Coverage:**
|
|
341
|
+
- 25+ unit tests for decay calculations (tests/pattern-decay.test.js)
|
|
342
|
+
- 15+ integration tests for DecayManager (tests/decay-manager.test.js)
|
|
343
|
+
- Edge case testing (zero confidence, very old patterns, oscillation)
|
|
344
|
+
- All tests passing ✅
|
|
345
|
+
|
|
346
|
+
**Test Scenarios:**
|
|
347
|
+
- Exponential decay over time
|
|
348
|
+
- Confidence-based decay rates
|
|
349
|
+
- Pattern renewal with confidence boost
|
|
350
|
+
- User-approved pattern protection
|
|
351
|
+
- Automatic cleanup of stale patterns
|
|
352
|
+
- Removal history tracking
|
|
353
|
+
- Empty pattern list handling
|
|
354
|
+
|
|
355
|
+
#### Files Added
|
|
356
|
+
- `lib/learning/decay-manager.js` - Orchestration layer for decay operations
|
|
357
|
+
- `tests/pattern-decay.test.js` - Unit tests for decay calculations
|
|
358
|
+
- `tests/decay-manager.test.js` - Integration tests for DecayManager
|
|
359
|
+
- `.project/docs/designs/PATTERN-DECAY-ALGORITHM.md` - Design specification
|
|
360
|
+
|
|
361
|
+
#### Files Modified
|
|
362
|
+
- `lib/learning/pattern-detector.js` - Added decay calculation methods
|
|
363
|
+
- `lib/learning/storage.js` - Added decay config persistence
|
|
364
|
+
- `package.json` - Version 0.9.1 → 0.10.0
|
|
365
|
+
|
|
366
|
+
#### Why This Matters
|
|
367
|
+
|
|
368
|
+
**Before:** Patterns remained at high confidence indefinitely, causing stale patterns to incorrectly filter questions even after user workflows changed.
|
|
369
|
+
|
|
370
|
+
**After:** Patterns naturally decay when inactive, allowing the learning system to adapt to evolving user workflows while keeping frequently-used patterns strong through renewal.
|
|
371
|
+
|
|
372
|
+
#### Performance
|
|
373
|
+
|
|
374
|
+
- **Computational:** O(n) where n = number of patterns (~10-50)
|
|
375
|
+
- **Execution Time:** <10ms for 50 patterns
|
|
376
|
+
- **Storage Impact:** ~112 bytes per pattern for new fields
|
|
377
|
+
- **Memory:** Negligible (5.5 KB for 50 patterns)
|
|
378
|
+
|
|
379
|
+
#### Next Steps
|
|
380
|
+
|
|
381
|
+
Integration into interview workflow will be completed in a future release to:
|
|
382
|
+
- Apply decay automatically on interview start
|
|
383
|
+
- Renew patterns when skip events match
|
|
384
|
+
- Show decay statistics in learning dashboard
|
|
385
|
+
- Add decay configuration UI in `adf config`
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## [0.9.1] - 2025-10-05
|
|
390
|
+
|
|
391
|
+
### 🐛 Critical Bug Fix
|
|
392
|
+
|
|
393
|
+
**Fixed: Syntax Error in interviewer.js**
|
|
394
|
+
- **Problem:** Syntax error in `interviewer.js` causing interview to fail on startup
|
|
395
|
+
- **Root Cause:** Missing closing parenthesis in method call
|
|
396
|
+
- **Solution:** Fixed syntax error at line 380
|
|
397
|
+
- **Impact:** Interview now starts correctly without errors
|
|
398
|
+
|
|
399
|
+
**Technical Details:**
|
|
400
|
+
- Modified: `lib/frameworks/interviewer.js:380` - Fixed missing closing parenthesis
|
|
401
|
+
- All 200 tests passing
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## [0.9.0] - 2025-10-05
|
|
406
|
+
|
|
407
|
+
### 🎛️ AI Analysis Settings & Performance Modes
|
|
408
|
+
|
|
409
|
+
**MAJOR FEATURE:** Configurable AI analysis with three performance modes - giving users complete control over speed vs intelligence tradeoff.
|
|
410
|
+
|
|
411
|
+
#### Three Performance Modes
|
|
412
|
+
|
|
413
|
+
**Fast Mode:**
|
|
414
|
+
- Zero AI delays (instant responses)
|
|
415
|
+
- All AI features disabled
|
|
416
|
+
- Best for: Quick workflows, prototyping, low-priority projects
|
|
417
|
+
- Speed: ~0.5s per answer
|
|
418
|
+
|
|
419
|
+
**Balanced Mode (Default):**
|
|
420
|
+
- 2-3 seconds per answer
|
|
421
|
+
- Quality Analysis enabled
|
|
422
|
+
- Smart Filtering enabled
|
|
423
|
+
- Pattern Detection enabled
|
|
424
|
+
- Question Reordering disabled
|
|
425
|
+
- Follow-up Questions disabled
|
|
426
|
+
- Best for: Most projects
|
|
427
|
+
- Optimal balance of speed and intelligence
|
|
428
|
+
|
|
429
|
+
**Comprehensive Mode:**
|
|
430
|
+
- 4-6 seconds per answer
|
|
431
|
+
- All AI features enabled
|
|
432
|
+
- Maximum intelligence and guidance
|
|
433
|
+
- Best for: Complex projects, critical systems
|
|
434
|
+
- Most thorough analysis
|
|
435
|
+
|
|
436
|
+
#### Configurable AI Features
|
|
437
|
+
|
|
438
|
+
Five granular AI features can be toggled individually:
|
|
439
|
+
|
|
440
|
+
1. **AI-Powered Quality Analysis** (Medium Impact: 1-2s)
|
|
441
|
+
- Analyzes answer quality in real-time
|
|
442
|
+
- Provides 0-100 quality scores
|
|
443
|
+
- Suggests improvements for low-quality answers
|
|
444
|
+
|
|
445
|
+
2. **Intelligent Question Reordering** (High Impact: 2-3s)
|
|
446
|
+
- Reorders questions based on extracted knowledge
|
|
447
|
+
- Prioritizes fundamental questions first
|
|
448
|
+
- Adapts interview flow dynamically
|
|
449
|
+
|
|
450
|
+
3. **AI-Generated Follow-Up Questions** (Medium Impact: 1-2s when triggered)
|
|
451
|
+
- Creates context-specific follow-up questions
|
|
452
|
+
- Only triggers for low-quality answers (< 70 score)
|
|
453
|
+
- Helps gather missing information
|
|
454
|
+
|
|
455
|
+
4. **Pattern Detection & Learning** (Low Impact: minimal)
|
|
456
|
+
- Learns from your skip behavior
|
|
457
|
+
- Generates learned rules over time
|
|
458
|
+
- Always lightweight, runs locally
|
|
459
|
+
|
|
460
|
+
5. **Smart Question Filtering** (Low Impact: minimal)
|
|
461
|
+
- Analyzes project type and context
|
|
462
|
+
- Filters out irrelevant questions
|
|
463
|
+
- Saves time on specialized projects
|
|
464
|
+
|
|
465
|
+
#### New Configuration Category
|
|
466
|
+
|
|
467
|
+
**AI Analysis Settings** added to `adf config`:
|
|
468
|
+
```
|
|
469
|
+
⚙️ ADF Configuration
|
|
470
|
+
|
|
471
|
+
? Select configuration category:
|
|
472
|
+
AI Provider Setup - ✓ Configured (OpenAI)
|
|
473
|
+
AI Analysis Settings - Balanced Mode ⚙️ NEW
|
|
474
|
+
IDE Deployment - ✓ Deployed (Windsurf, Cursor)
|
|
475
|
+
Learning System - ✓ Active (5 sessions, 12 patterns)
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
**Configuration Menu:**
|
|
479
|
+
- Performance Mode selection (Fast/Balanced/Comprehensive)
|
|
480
|
+
- Individual feature toggles with performance impact indicators
|
|
481
|
+
- Feature descriptions explaining each capability
|
|
482
|
+
- Settings saved to `.adf/analysis-config.json`
|
|
483
|
+
|
|
484
|
+
#### User Experience
|
|
485
|
+
|
|
486
|
+
**At Interview Start:**
|
|
487
|
+
```
|
|
488
|
+
🎛️ AI Analysis Mode: Balanced
|
|
489
|
+
(Configure via: adf config → AI Analysis Settings)
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
**During Configuration:**
|
|
493
|
+
- Clear descriptions of each mode
|
|
494
|
+
- Performance impact indicators (High/Medium/Low)
|
|
495
|
+
- Recommendations for different project types
|
|
496
|
+
- Instant preview of changes
|
|
497
|
+
|
|
498
|
+
#### Benefits
|
|
499
|
+
|
|
500
|
+
- **User Control:** Complete control over AI features and performance
|
|
501
|
+
- **Flexibility:** Choose speed or intelligence based on project needs
|
|
502
|
+
- **Transparency:** Clear impact indicators for each feature
|
|
503
|
+
- **Efficiency:** Fast mode for quick workflows, Comprehensive for critical work
|
|
504
|
+
- **Progressive Enhancement:** Works with or without AI provider configured
|
|
505
|
+
|
|
506
|
+
#### Technical Implementation
|
|
507
|
+
|
|
508
|
+
**New Files:**
|
|
509
|
+
- `lib/analysis/analysis-config.js` - Configuration management and defaults
|
|
510
|
+
- `.adf/analysis-config.json` - User's analysis settings (gitignored)
|
|
511
|
+
|
|
512
|
+
**Modified Files:**
|
|
513
|
+
- `lib/commands/config.js` - Added AI Analysis Settings category
|
|
514
|
+
- `lib/frameworks/interviewer.js` - Load and display analysis mode
|
|
515
|
+
- `lib/analysis/dynamic-pipeline.js` - Respect feature toggles
|
|
516
|
+
- `lib/filters/question-filter.js` - Respect filtering toggle
|
|
517
|
+
- `lib/learning/learning-manager.js` - Respect learning toggles
|
|
518
|
+
|
|
519
|
+
**Configuration Schema:**
|
|
520
|
+
```javascript
|
|
521
|
+
{
|
|
522
|
+
mode: "balanced", // fast | balanced | comprehensive
|
|
523
|
+
features: {
|
|
524
|
+
qualityAnalysis: true,
|
|
525
|
+
questionReordering: false,
|
|
526
|
+
followUpQuestions: false,
|
|
527
|
+
patternDetection: true,
|
|
528
|
+
smartFiltering: true
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
#### Testing
|
|
534
|
+
|
|
535
|
+
- ✅ All 200 tests passing
|
|
536
|
+
- ✅ Backward compatible with existing sessions
|
|
537
|
+
- ✅ Graceful degradation if config missing
|
|
538
|
+
- ✅ Works with or without AI provider
|
|
539
|
+
|
|
540
|
+
---
|
|
541
|
+
|
|
542
|
+
## [0.8.0] - 2025-10-05
|
|
543
|
+
|
|
544
|
+
### 💾 Resume from Exit & Graceful Quit
|
|
545
|
+
|
|
546
|
+
**MAJOR FEATURE:** Resume interviews after exit and graceful Ctrl+C handling.
|
|
547
|
+
|
|
548
|
+
#### Resume Capability
|
|
549
|
+
|
|
550
|
+
**Exit Anytime:**
|
|
551
|
+
- Type `exit` at any question to save progress and quit
|
|
552
|
+
- Press `Ctrl+C` anywhere to trigger graceful exit
|
|
553
|
+
- Progress automatically saved before exiting
|
|
554
|
+
- Resume with `adf init` to continue from last question
|
|
555
|
+
|
|
556
|
+
**Resume Flow:**
|
|
557
|
+
```
|
|
558
|
+
$ adf init
|
|
559
|
+
|
|
560
|
+
📦 Resumable Session Detected
|
|
561
|
+
|
|
562
|
+
Session: my-project-session
|
|
563
|
+
Started: 2025-10-05 14:30
|
|
564
|
+
Questions answered: 8 / 20
|
|
565
|
+
Information richness: 65%
|
|
566
|
+
|
|
567
|
+
? What would you like to do?
|
|
568
|
+
❯ Resume Interview
|
|
569
|
+
Start New Session
|
|
570
|
+
Exit
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
**Smart Skip on Resume:**
|
|
574
|
+
- Already-answered questions automatically skipped
|
|
575
|
+
- Shows "✓ Already answered" with answer preview
|
|
576
|
+
- Resumes exactly where you left off
|
|
577
|
+
- No redundant questions
|
|
578
|
+
|
|
579
|
+
#### Ctrl+C Graceful Quit
|
|
580
|
+
|
|
581
|
+
**Global Handler:**
|
|
582
|
+
- Catches `Ctrl+C` (SIGINT) anywhere in interview
|
|
583
|
+
- Saves progress automatically before exit
|
|
584
|
+
- Shows confirmation message
|
|
585
|
+
- Clean exit (no error messages)
|
|
586
|
+
|
|
587
|
+
**Works From:**
|
|
588
|
+
- Question prompts
|
|
589
|
+
- Menu selections
|
|
590
|
+
- AI configuration
|
|
591
|
+
- Anywhere during interview
|
|
592
|
+
|
|
593
|
+
#### Benefits
|
|
594
|
+
|
|
595
|
+
- **Flexibility:** Exit and resume anytime without losing work
|
|
596
|
+
- **Safety:** Automatic progress saving on exit
|
|
597
|
+
- **Convenience:** Both `exit` command and `Ctrl+C` supported
|
|
598
|
+
- **Transparency:** Clear messaging about saved progress
|
|
599
|
+
- **User Control:** Choose to resume or start new session
|
|
600
|
+
|
|
601
|
+
#### Technical Implementation
|
|
602
|
+
|
|
603
|
+
**Modified Files:**
|
|
604
|
+
- `lib/frameworks/interviewer.js`:
|
|
605
|
+
- Added exit command detection
|
|
606
|
+
- Added Ctrl+C handler registration
|
|
607
|
+
- Skip already-answered questions on resume
|
|
608
|
+
- Show answer preview for skipped questions
|
|
609
|
+
- Clean exit messaging
|
|
610
|
+
|
|
611
|
+
**Resume Detection:**
|
|
612
|
+
- Checks `_progress.json` for existing session
|
|
613
|
+
- Validates session state
|
|
614
|
+
- Prompts user to resume or start new
|
|
615
|
+
- Preserves all context (answers, quality metrics, blocks)
|
|
616
|
+
|
|
617
|
+
#### Testing
|
|
618
|
+
|
|
619
|
+
- ✅ All 200 tests passing
|
|
620
|
+
- ✅ Exit at any question works
|
|
621
|
+
- ✅ Ctrl+C handler works globally
|
|
622
|
+
- ✅ Resume from exact position works
|
|
623
|
+
- ✅ Already-answered questions skipped correctly
|
|
624
|
+
|
|
625
|
+
---
|
|
626
|
+
|
|
627
|
+
## [0.7.1] - 2025-10-05
|
|
628
|
+
|
|
629
|
+
### 🔄 Reverted to Terminal Input
|
|
630
|
+
|
|
631
|
+
**UX FIX:** Reverted external editor approach (v0.6.0-v0.7.0) back to simple terminal input.
|
|
632
|
+
|
|
633
|
+
#### What Changed
|
|
634
|
+
|
|
635
|
+
**Reverted:**
|
|
636
|
+
- ❌ External editor (Notepad, nano, vi) - Bad UX, too disruptive
|
|
637
|
+
- ❌ Multi-line input experiment - Added complexity without value
|
|
638
|
+
- ✅ Back to simple terminal input with exit/skip shortcuts
|
|
639
|
+
|
|
640
|
+
**Why We Reverted:**
|
|
641
|
+
- External editor was jarring and disruptive to workflow
|
|
642
|
+
- Opening Notepad for every answer broke flow state
|
|
643
|
+
- Users prefer inline typing despite cursor lag
|
|
644
|
+
- Cursor lag accepted as terminal limitation (not critical)
|
|
645
|
+
|
|
646
|
+
**What We Kept:**
|
|
647
|
+
- ✅ Exit shortcut functionality (type "exit" to quit)
|
|
648
|
+
- ✅ Skip shortcut (type "skip" to skip questions)
|
|
649
|
+
- ✅ Resume capability from v0.8.0
|
|
650
|
+
|
|
651
|
+
#### Current Behavior
|
|
652
|
+
|
|
653
|
+
**Answer Input:**
|
|
654
|
+
- Type directly in terminal (single line)
|
|
655
|
+
- Type "skip" to skip remaining questions in block
|
|
656
|
+
- Type "exit" to save and quit (resume later)
|
|
657
|
+
- Press Ctrl+C for graceful quit
|
|
658
|
+
- Cursor lag accepted as terminal quirk
|
|
659
|
+
|
|
660
|
+
#### Benefits
|
|
661
|
+
|
|
662
|
+
- **Better UX:** Inline typing feels more natural
|
|
663
|
+
- **No disruption:** No external editor popup
|
|
664
|
+
- **Fast workflow:** Minimal friction
|
|
665
|
+
- **User preference:** Community feedback validated inline approach
|
|
666
|
+
|
|
667
|
+
#### Technical Details
|
|
668
|
+
|
|
669
|
+
- Reverted: `lib/frameworks/interviewer.js` - Back to `type: 'input'`
|
|
670
|
+
- Removed: Editor workflow code and instructions
|
|
671
|
+
- Kept: Exit and skip functionality
|
|
672
|
+
- All 200 tests passing
|
|
673
|
+
|
|
674
|
+
---
|
|
675
|
+
|
|
676
|
+
## [0.7.0] - 2025-10-05
|
|
677
|
+
|
|
678
|
+
### ⚠️ Note: This version was reverted in v0.7.1
|
|
679
|
+
|
|
680
|
+
**Exit Shortcut Feature:**
|
|
681
|
+
- Added `exit` command to quit interview anytime
|
|
682
|
+
- Type "exit" at any question to save progress and quit
|
|
683
|
+
- Resume with `adf init` to continue
|
|
684
|
+
|
|
685
|
+
**Note:** External editor approach from v0.6.0 was continued in this version but later reverted in v0.7.1 based on user feedback.
|
|
686
|
+
|
|
687
|
+
---
|
|
688
|
+
|
|
8
689
|
## [0.6.0] - 2025-10-05
|
|
9
690
|
|
|
691
|
+
### ⚠️ Note: This version was reverted in v0.7.1
|
|
692
|
+
|
|
10
693
|
### 🎯 Fixed Cursor Positioning with Editor Input
|
|
11
694
|
|
|
12
695
|
**FIX:** Switched from inline input to editor-based input to fix cursor lag on multi-line answers.
|