@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/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.