@ginkoai/cli 2.1.0 → 2.1.2
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/dist/commands/graph/api-client.d.ts +36 -1
- package/dist/commands/graph/api-client.d.ts.map +1 -1
- package/dist/commands/graph/api-client.js +32 -2
- package/dist/commands/graph/api-client.js.map +1 -1
- package/dist/commands/graph/config.d.ts +6 -1
- package/dist/commands/graph/config.d.ts.map +1 -1
- package/dist/commands/graph/config.js +9 -1
- package/dist/commands/graph/config.js.map +1 -1
- package/dist/commands/graph/init.d.ts +1 -1
- package/dist/commands/graph/init.d.ts.map +1 -1
- package/dist/commands/graph/init.js +17 -2
- package/dist/commands/graph/init.js.map +1 -1
- package/dist/commands/handoff.d.ts +3 -3
- package/dist/commands/handoff.d.ts.map +1 -1
- package/dist/commands/handoff.js +32 -3
- package/dist/commands/handoff.js.map +1 -1
- package/dist/commands/nudging/index.d.ts +24 -0
- package/dist/commands/nudging/index.d.ts.map +1 -0
- package/dist/commands/nudging/index.js +175 -0
- package/dist/commands/nudging/index.js.map +1 -0
- package/dist/commands/sprint/create.d.ts +26 -0
- package/dist/commands/sprint/create.d.ts.map +1 -0
- package/dist/commands/sprint/create.js +269 -0
- package/dist/commands/sprint/create.js.map +1 -0
- package/dist/commands/sprint/index.d.ts.map +1 -1
- package/dist/commands/sprint/index.js +24 -0
- package/dist/commands/sprint/index.js.map +1 -1
- package/dist/commands/sprint/quick-fix.d.ts +25 -0
- package/dist/commands/sprint/quick-fix.d.ts.map +1 -0
- package/dist/commands/sprint/quick-fix.js +151 -0
- package/dist/commands/sprint/quick-fix.js.map +1 -0
- package/dist/commands/sprint/sprint-pipeline-enhanced.d.ts.map +1 -1
- package/dist/commands/sprint/sprint-pipeline-enhanced.js +37 -0
- package/dist/commands/sprint/sprint-pipeline-enhanced.js.map +1 -1
- package/dist/commands/sprint/status.d.ts.map +1 -1
- package/dist/commands/sprint/status.js +21 -1
- package/dist/commands/sprint/status.js.map +1 -1
- package/dist/commands/start/start-reflection.d.ts +14 -0
- package/dist/commands/start/start-reflection.d.ts.map +1 -1
- package/dist/commands/start/start-reflection.js +180 -9
- package/dist/commands/start/start-reflection.js.map +1 -1
- package/dist/commands/task/status.d.ts +3 -0
- package/dist/commands/task/status.d.ts.map +1 -1
- package/dist/commands/task/status.js +48 -1
- package/dist/commands/task/status.js.map +1 -1
- package/dist/commands/team/index.d.ts +5 -0
- package/dist/commands/team/index.d.ts.map +1 -1
- package/dist/commands/team/index.js +28 -0
- package/dist/commands/team/index.js.map +1 -1
- package/dist/commands/team/status.d.ts +16 -0
- package/dist/commands/team/status.d.ts.map +1 -0
- package/dist/commands/team/status.js +180 -0
- package/dist/commands/team/status.js.map +1 -0
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/adoption-score.d.ts +69 -0
- package/dist/lib/adoption-score.d.ts.map +1 -0
- package/dist/lib/adoption-score.js +206 -0
- package/dist/lib/adoption-score.js.map +1 -0
- package/dist/lib/coaching-level.d.ts +127 -0
- package/dist/lib/coaching-level.d.ts.map +1 -0
- package/dist/lib/coaching-level.js +406 -0
- package/dist/lib/coaching-level.js.map +1 -0
- package/dist/lib/event-logger.d.ts +42 -0
- package/dist/lib/event-logger.d.ts.map +1 -1
- package/dist/lib/event-logger.js +77 -0
- package/dist/lib/event-logger.js.map +1 -1
- package/dist/lib/planning-menu.d.ts +69 -0
- package/dist/lib/planning-menu.d.ts.map +1 -0
- package/dist/lib/planning-menu.js +342 -0
- package/dist/lib/planning-menu.js.map +1 -0
- package/dist/lib/targeted-coaching.d.ts +71 -0
- package/dist/lib/targeted-coaching.d.ts.map +1 -0
- package/dist/lib/targeted-coaching.js +318 -0
- package/dist/lib/targeted-coaching.js.map +1 -0
- package/dist/lib/task-parser.d.ts +2 -0
- package/dist/lib/task-parser.d.ts.map +1 -1
- package/dist/lib/task-parser.js +23 -0
- package/dist/lib/task-parser.js.map +1 -1
- package/dist/lib/user-sprint.d.ts +53 -0
- package/dist/lib/user-sprint.d.ts.map +1 -1
- package/dist/lib/user-sprint.js +137 -2
- package/dist/lib/user-sprint.js.map +1 -1
- package/dist/lib/work-reconciliation.d.ts +59 -0
- package/dist/lib/work-reconciliation.d.ts.map +1 -0
- package/dist/lib/work-reconciliation.js +267 -0
- package/dist/lib/work-reconciliation.js.map +1 -0
- package/dist/utils/version-check.d.ts +26 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +186 -0
- package/dist/utils/version-check.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: utility
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2026-01-26
|
|
5
|
+
* @tags: [coaching, insights, adaptive, epic-016-s05]
|
|
6
|
+
* @related: [adoption-score.ts, planning-menu.ts, api-client.ts]
|
|
7
|
+
* @priority: high
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [fs-extra, path]
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Adaptive Coaching Level (EPIC-016 Sprint 5 Task 1)
|
|
13
|
+
*
|
|
14
|
+
* Coaching adapts to user's insight scores—more help when struggling, quieter when thriving.
|
|
15
|
+
*
|
|
16
|
+
* Score Thresholds (based on 7-day overall score):
|
|
17
|
+
* | Overall Score | Coaching Level | Behavior |
|
|
18
|
+
* |---------------|----------------|-----------------------------------|
|
|
19
|
+
* | ≥75 | Minimal | Brief prompts, assume competence |
|
|
20
|
+
* | 60-74 | Standard | Normal prompts with guidance |
|
|
21
|
+
* | <60 | Supportive | Detailed prompts, more examples |
|
|
22
|
+
*
|
|
23
|
+
* Data Flow:
|
|
24
|
+
* 1. Fetch insight scores from dashboard API at session start
|
|
25
|
+
* 2. Cache locally with 4-hour TTL
|
|
26
|
+
* 3. Fall back to local adoption score if offline
|
|
27
|
+
*/
|
|
28
|
+
import fs from 'fs-extra';
|
|
29
|
+
import path from 'path';
|
|
30
|
+
import { getUserEmail, getGinkoDir } from '../utils/helpers.js';
|
|
31
|
+
import { getAdoptionScore } from './adoption-score.js';
|
|
32
|
+
// =============================================================================
|
|
33
|
+
// Constants
|
|
34
|
+
// =============================================================================
|
|
35
|
+
const CACHE_FILE = 'insights-cache.json';
|
|
36
|
+
const CONFIG_FILE = 'coaching-config.json';
|
|
37
|
+
const CACHE_TTL_HOURS = 4;
|
|
38
|
+
const CACHE_TTL_MS = CACHE_TTL_HOURS * 60 * 60 * 1000;
|
|
39
|
+
const LEVEL_THRESHOLDS = {
|
|
40
|
+
minimal: 75, // ≥75: assume competence
|
|
41
|
+
standard: 60, // 60-74: balanced guidance
|
|
42
|
+
// <60: supportive
|
|
43
|
+
};
|
|
44
|
+
// =============================================================================
|
|
45
|
+
// File Paths
|
|
46
|
+
// =============================================================================
|
|
47
|
+
async function getUserSessionDir() {
|
|
48
|
+
const ginkoDir = await getGinkoDir();
|
|
49
|
+
const userEmail = await getUserEmail();
|
|
50
|
+
const userSlug = userEmail.replace('@', '-at-').replace(/\./g, '-');
|
|
51
|
+
return path.join(ginkoDir, 'sessions', userSlug);
|
|
52
|
+
}
|
|
53
|
+
async function getCacheFilePath() {
|
|
54
|
+
const sessionDir = await getUserSessionDir();
|
|
55
|
+
return path.join(sessionDir, CACHE_FILE);
|
|
56
|
+
}
|
|
57
|
+
async function getConfigFilePath() {
|
|
58
|
+
const sessionDir = await getUserSessionDir();
|
|
59
|
+
return path.join(sessionDir, CONFIG_FILE);
|
|
60
|
+
}
|
|
61
|
+
// =============================================================================
|
|
62
|
+
// Cache Management
|
|
63
|
+
// =============================================================================
|
|
64
|
+
/**
|
|
65
|
+
* Load cached insight scores
|
|
66
|
+
*/
|
|
67
|
+
async function loadCachedScores() {
|
|
68
|
+
const cachePath = await getCacheFilePath();
|
|
69
|
+
try {
|
|
70
|
+
if (await fs.pathExists(cachePath)) {
|
|
71
|
+
const data = await fs.readJSON(cachePath);
|
|
72
|
+
const fetchedAt = new Date(data.fetchedAt).getTime();
|
|
73
|
+
const now = Date.now();
|
|
74
|
+
// Check if cache is still valid
|
|
75
|
+
if (now - fetchedAt < CACHE_TTL_MS) {
|
|
76
|
+
return data;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Cache corrupted or invalid
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Save insight scores to cache
|
|
87
|
+
*/
|
|
88
|
+
async function saveCachedScores(scores) {
|
|
89
|
+
const cachePath = await getCacheFilePath();
|
|
90
|
+
await fs.ensureDir(path.dirname(cachePath));
|
|
91
|
+
await fs.writeJSON(cachePath, scores, { spaces: 2 });
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get cache age in minutes
|
|
95
|
+
*/
|
|
96
|
+
function getCacheAgeMinutes(fetchedAt) {
|
|
97
|
+
const fetchedTime = new Date(fetchedAt).getTime();
|
|
98
|
+
const now = Date.now();
|
|
99
|
+
return Math.round((now - fetchedTime) / (1000 * 60));
|
|
100
|
+
}
|
|
101
|
+
// =============================================================================
|
|
102
|
+
// Config Management
|
|
103
|
+
// =============================================================================
|
|
104
|
+
/**
|
|
105
|
+
* Load coaching config (manual overrides)
|
|
106
|
+
*/
|
|
107
|
+
export async function loadCoachingConfig() {
|
|
108
|
+
const configPath = await getConfigFilePath();
|
|
109
|
+
try {
|
|
110
|
+
if (await fs.pathExists(configPath)) {
|
|
111
|
+
return await fs.readJSON(configPath);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// Config corrupted
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
override: null,
|
|
119
|
+
overrideSetAt: null,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Save coaching config
|
|
124
|
+
*/
|
|
125
|
+
export async function saveCoachingConfig(config) {
|
|
126
|
+
const configPath = await getConfigFilePath();
|
|
127
|
+
await fs.ensureDir(path.dirname(configPath));
|
|
128
|
+
await fs.writeJSON(configPath, config, { spaces: 2 });
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Set manual coaching level override
|
|
132
|
+
*/
|
|
133
|
+
export async function setCoachingOverride(level) {
|
|
134
|
+
const config = await loadCoachingConfig();
|
|
135
|
+
if (level === 'auto') {
|
|
136
|
+
config.override = null;
|
|
137
|
+
config.overrideSetAt = null;
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
config.override = level;
|
|
141
|
+
config.overrideSetAt = new Date().toISOString();
|
|
142
|
+
}
|
|
143
|
+
await saveCoachingConfig(config);
|
|
144
|
+
}
|
|
145
|
+
// =============================================================================
|
|
146
|
+
// API Integration
|
|
147
|
+
// =============================================================================
|
|
148
|
+
/**
|
|
149
|
+
* Fetch insight scores from dashboard API
|
|
150
|
+
* Non-blocking with 2-second timeout
|
|
151
|
+
*/
|
|
152
|
+
async function fetchInsightScores(graphId) {
|
|
153
|
+
// Import dynamically to avoid circular dependencies
|
|
154
|
+
const { GraphApiClient } = await import('../commands/graph/api-client.js');
|
|
155
|
+
const { isAuthenticated } = await import('../utils/auth-storage.js');
|
|
156
|
+
if (!await isAuthenticated()) {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
const client = new GraphApiClient();
|
|
160
|
+
try {
|
|
161
|
+
// Use AbortController for timeout
|
|
162
|
+
const controller = new AbortController();
|
|
163
|
+
const timeoutId = setTimeout(() => controller.abort(), 2000);
|
|
164
|
+
const response = await client.request('GET', `/api/v1/insights/sync?graphId=${encodeURIComponent(graphId)}&days=7`);
|
|
165
|
+
clearTimeout(timeoutId);
|
|
166
|
+
if (response.report) {
|
|
167
|
+
const categoryMap = {};
|
|
168
|
+
for (const cat of response.report.categoryScores) {
|
|
169
|
+
categoryMap[cat.category] = cat.score;
|
|
170
|
+
}
|
|
171
|
+
const scores = {
|
|
172
|
+
overallScore: response.trendScores?.day7?.score ?? response.report.overallScore,
|
|
173
|
+
categoryScores: {
|
|
174
|
+
efficiency: categoryMap['efficiency'] ?? 70,
|
|
175
|
+
patterns: categoryMap['patterns'] ?? 70,
|
|
176
|
+
quality: categoryMap['quality'] ?? 70,
|
|
177
|
+
'anti-patterns': categoryMap['anti-patterns'] ?? 70,
|
|
178
|
+
},
|
|
179
|
+
fetchedAt: new Date().toISOString(),
|
|
180
|
+
periodDays: 7,
|
|
181
|
+
};
|
|
182
|
+
await saveCachedScores(scores);
|
|
183
|
+
return scores;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
// API unavailable - will use cache or fallback
|
|
188
|
+
}
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
// =============================================================================
|
|
192
|
+
// Level Calculation
|
|
193
|
+
// =============================================================================
|
|
194
|
+
/**
|
|
195
|
+
* Calculate coaching level from overall score
|
|
196
|
+
*/
|
|
197
|
+
export function calculateCoachingLevel(score) {
|
|
198
|
+
if (score >= LEVEL_THRESHOLDS.minimal)
|
|
199
|
+
return 'minimal';
|
|
200
|
+
if (score >= LEVEL_THRESHOLDS.standard)
|
|
201
|
+
return 'standard';
|
|
202
|
+
return 'supportive';
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Convert adoption QuietingLevel to CoachingLevel
|
|
206
|
+
*/
|
|
207
|
+
function adoptionLevelToCoachingLevel(quieting) {
|
|
208
|
+
switch (quieting) {
|
|
209
|
+
case 'minimal':
|
|
210
|
+
return 'minimal';
|
|
211
|
+
case 'light':
|
|
212
|
+
return 'standard';
|
|
213
|
+
case 'full':
|
|
214
|
+
default:
|
|
215
|
+
return 'supportive';
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Estimate score from adoption level for fallback
|
|
220
|
+
*/
|
|
221
|
+
function adoptionLevelToScore(quieting) {
|
|
222
|
+
switch (quieting) {
|
|
223
|
+
case 'minimal':
|
|
224
|
+
return 80; // High adopters
|
|
225
|
+
case 'light':
|
|
226
|
+
return 68; // Medium adopters
|
|
227
|
+
case 'full':
|
|
228
|
+
default:
|
|
229
|
+
return 50; // New users
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
// =============================================================================
|
|
233
|
+
// Main Functions
|
|
234
|
+
// =============================================================================
|
|
235
|
+
/**
|
|
236
|
+
* Get coaching context for current session
|
|
237
|
+
*
|
|
238
|
+
* Priority:
|
|
239
|
+
* 1. Manual override (if set)
|
|
240
|
+
* 2. Dashboard insight scores (if available)
|
|
241
|
+
* 3. Cached scores (if within TTL)
|
|
242
|
+
* 4. Adoption score fallback (if offline)
|
|
243
|
+
*/
|
|
244
|
+
export async function getCoachingContext(graphId) {
|
|
245
|
+
const config = await loadCoachingConfig();
|
|
246
|
+
// Try to get scores in order of preference
|
|
247
|
+
let scores = null;
|
|
248
|
+
let source = 'adoption_fallback';
|
|
249
|
+
let cacheAge;
|
|
250
|
+
// 1. Try fresh API fetch if we have graphId
|
|
251
|
+
if (graphId) {
|
|
252
|
+
scores = await fetchInsightScores(graphId);
|
|
253
|
+
if (scores) {
|
|
254
|
+
source = 'dashboard';
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// 2. Fall back to cache
|
|
258
|
+
if (!scores) {
|
|
259
|
+
scores = await loadCachedScores();
|
|
260
|
+
if (scores) {
|
|
261
|
+
source = 'cache';
|
|
262
|
+
cacheAge = getCacheAgeMinutes(scores.fetchedAt);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
// 3. Fall back to adoption score
|
|
266
|
+
if (!scores) {
|
|
267
|
+
const adoption = await getAdoptionScore();
|
|
268
|
+
const estimatedScore = adoptionLevelToScore(adoption.level);
|
|
269
|
+
scores = {
|
|
270
|
+
overallScore: estimatedScore,
|
|
271
|
+
categoryScores: {
|
|
272
|
+
efficiency: estimatedScore,
|
|
273
|
+
patterns: estimatedScore,
|
|
274
|
+
quality: estimatedScore,
|
|
275
|
+
'anti-patterns': estimatedScore,
|
|
276
|
+
},
|
|
277
|
+
fetchedAt: new Date().toISOString(),
|
|
278
|
+
periodDays: 7,
|
|
279
|
+
};
|
|
280
|
+
source = 'adoption_fallback';
|
|
281
|
+
}
|
|
282
|
+
// Calculate level (or use override)
|
|
283
|
+
const calculatedLevel = calculateCoachingLevel(scores.overallScore);
|
|
284
|
+
const effectiveLevel = config.override ?? calculatedLevel;
|
|
285
|
+
return {
|
|
286
|
+
overallScore: scores.overallScore,
|
|
287
|
+
metrics: {
|
|
288
|
+
sessionEfficiency: scores.categoryScores.efficiency,
|
|
289
|
+
patternAdoption: scores.categoryScores.patterns,
|
|
290
|
+
collaborationQuality: scores.categoryScores.quality,
|
|
291
|
+
antiPatterns: scores.categoryScores['anti-patterns'],
|
|
292
|
+
},
|
|
293
|
+
level: effectiveLevel,
|
|
294
|
+
override: config.override,
|
|
295
|
+
source,
|
|
296
|
+
cacheAge,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Get coaching level for quick checks
|
|
301
|
+
* Simplified version that just returns the level
|
|
302
|
+
*/
|
|
303
|
+
export async function getCoachingLevel(graphId) {
|
|
304
|
+
const context = await getCoachingContext(graphId);
|
|
305
|
+
return context.level;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Check if a specific metric is low and needs targeted coaching
|
|
309
|
+
*/
|
|
310
|
+
export function isMetricLow(value, threshold = 70) {
|
|
311
|
+
return value < threshold;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Get targeted coaching suggestions based on low metrics
|
|
315
|
+
*/
|
|
316
|
+
export function getTargetedCoachingSuggestions(context) {
|
|
317
|
+
const suggestions = [];
|
|
318
|
+
const threshold = 70;
|
|
319
|
+
if (isMetricLow(context.metrics.sessionEfficiency, threshold)) {
|
|
320
|
+
suggestions.push('Consider using `ginko handoff` to preserve context between sessions');
|
|
321
|
+
}
|
|
322
|
+
if (isMetricLow(context.metrics.patternAdoption, threshold)) {
|
|
323
|
+
suggestions.push('Try organizing work into Epic→Sprint→Task structure for better tracking');
|
|
324
|
+
}
|
|
325
|
+
if (isMetricLow(context.metrics.collaborationQuality, threshold)) {
|
|
326
|
+
suggestions.push('Log more decisions with `ginko log` to improve collaboration quality');
|
|
327
|
+
}
|
|
328
|
+
if (isMetricLow(context.metrics.antiPatterns, threshold)) {
|
|
329
|
+
suggestions.push('Review recent gotcha warnings - you may be hitting known issues');
|
|
330
|
+
}
|
|
331
|
+
return suggestions;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Get the appropriate prompt variant based on coaching level
|
|
335
|
+
*/
|
|
336
|
+
export function selectPrompt(variants, level) {
|
|
337
|
+
return variants[level];
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Standard prompt variants for common scenarios
|
|
341
|
+
*/
|
|
342
|
+
export const PROMPT_VARIANTS = {
|
|
343
|
+
noStructure: {
|
|
344
|
+
minimal: 'No active sprint. [a] Epic [b] Sprint [c] Quick [d] Ad-hoc',
|
|
345
|
+
standard: `You have no planned work. What would you like to work on?
|
|
346
|
+
|
|
347
|
+
[a] New Epic - Large initiative with multiple sprints
|
|
348
|
+
[b] New Feature Sprint - Focused work with clear goals
|
|
349
|
+
[c] Quick fix / Bug fix - Single task, minimal overhead
|
|
350
|
+
[d] Something else - Explore, research, or work ad-hoc`,
|
|
351
|
+
supportive: `I notice you're not currently in a sprint. Sprints help track progress and maintain focus.
|
|
352
|
+
|
|
353
|
+
What would you like to work on?
|
|
354
|
+
|
|
355
|
+
[a] New Epic (Recommended)
|
|
356
|
+
For large initiatives that need multiple sprints to complete.
|
|
357
|
+
Example: "Implement user authentication system"
|
|
358
|
+
|
|
359
|
+
[b] New Feature Sprint
|
|
360
|
+
For focused work with a clear goal that can be done in ~1 week.
|
|
361
|
+
Example: "Add dark mode toggle"
|
|
362
|
+
|
|
363
|
+
[c] Quick fix / Bug fix
|
|
364
|
+
For small, single tasks that don't need sprint overhead.
|
|
365
|
+
Example: "Fix login button alignment"
|
|
366
|
+
|
|
367
|
+
[d] Something else
|
|
368
|
+
For exploration, research, or ad-hoc work.
|
|
369
|
+
|
|
370
|
+
Tip: Structured work (options a-c) improves your collaboration insights!`,
|
|
371
|
+
},
|
|
372
|
+
sprintComplete: {
|
|
373
|
+
minimal: 'Sprint done! [a] Next sprint [b] New epic [c] Ad-hoc',
|
|
374
|
+
standard: `🎉 Sprint complete! All tasks finished.
|
|
375
|
+
|
|
376
|
+
What's next?
|
|
377
|
+
[a] Start next sprint
|
|
378
|
+
[b] Create new epic
|
|
379
|
+
[c] Work on something else`,
|
|
380
|
+
supportive: `🎉 Great work! You've completed all tasks in this sprint.
|
|
381
|
+
|
|
382
|
+
What would you like to do next?
|
|
383
|
+
|
|
384
|
+
[a] Start next sprint
|
|
385
|
+
Continue momentum with the next planned sprint.
|
|
386
|
+
|
|
387
|
+
[b] Create new epic
|
|
388
|
+
Begin a new large initiative.
|
|
389
|
+
|
|
390
|
+
[c] Work on something else
|
|
391
|
+
Take a break or explore other work.
|
|
392
|
+
|
|
393
|
+
Tip: Completing sprints contributes to your pattern adoption score!`,
|
|
394
|
+
},
|
|
395
|
+
};
|
|
396
|
+
// =============================================================================
|
|
397
|
+
// Exports for Testing
|
|
398
|
+
// =============================================================================
|
|
399
|
+
export const __testing = {
|
|
400
|
+
LEVEL_THRESHOLDS,
|
|
401
|
+
CACHE_TTL_HOURS,
|
|
402
|
+
adoptionLevelToCoachingLevel,
|
|
403
|
+
adoptionLevelToScore,
|
|
404
|
+
getCacheAgeMinutes,
|
|
405
|
+
};
|
|
406
|
+
//# sourceMappingURL=coaching-level.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coaching-level.js","sourceRoot":"","sources":["../../src/lib/coaching-level.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,4 +72,46 @@ export declare function getUnsyncedEvents(): Promise<Event[]>;
|
|
|
72
72
|
* Clear events file (for testing)
|
|
73
73
|
*/
|
|
74
74
|
export declare function clearEvents(): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Coaching event types for tracking interactions
|
|
77
|
+
*/
|
|
78
|
+
export type CoachingEventType = 'planning_menu_shown' | 'planning_menu_selection' | 'coaching_level_auto' | 'coaching_level_override' | 'targeted_tip_shown' | 'session_with_structure' | 'session_without_structure';
|
|
79
|
+
/**
|
|
80
|
+
* Coaching event data for analytics
|
|
81
|
+
*/
|
|
82
|
+
export interface CoachingEventData {
|
|
83
|
+
type: CoachingEventType;
|
|
84
|
+
coachingLevel?: 'minimal' | 'standard' | 'supportive';
|
|
85
|
+
overallScore?: number;
|
|
86
|
+
selection?: string;
|
|
87
|
+
tipId?: string;
|
|
88
|
+
metric?: string;
|
|
89
|
+
sessionHadStructure?: boolean;
|
|
90
|
+
override?: boolean;
|
|
91
|
+
previousLevel?: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Log a coaching interaction event (EPIC-016 Sprint 5 Task 5)
|
|
95
|
+
*
|
|
96
|
+
* Tracks coaching interactions for future analysis:
|
|
97
|
+
* - Planning menu selections over time
|
|
98
|
+
* - Time from "no structure" to "structured work"
|
|
99
|
+
* - User override patterns
|
|
100
|
+
* - Correlation between coaching level and adoption
|
|
101
|
+
*
|
|
102
|
+
* @param data - Coaching event data
|
|
103
|
+
*/
|
|
104
|
+
export declare function logCoachingEvent(data: CoachingEventData): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Log planning menu interaction
|
|
107
|
+
*/
|
|
108
|
+
export declare function logPlanningMenuEvent(selection: string, coachingLevel: 'minimal' | 'standard' | 'supportive', overallScore?: number): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Log coaching level change
|
|
111
|
+
*/
|
|
112
|
+
export declare function logCoachingLevelChange(newLevel: 'minimal' | 'standard' | 'supportive', isOverride: boolean, overallScore?: number, previousLevel?: string): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Log targeted tip shown
|
|
115
|
+
*/
|
|
116
|
+
export declare function logTargetedTipShown(tipId: string, metric: string, coachingLevel: 'minimal' | 'standard' | 'supportive'): Promise<void>;
|
|
75
117
|
//# sourceMappingURL=event-logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-logger.d.ts","sourceRoot":"","sources":["../../src/lib/event-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpG,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,eAAe,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,KAAM,SAAQ,UAAU;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAyHD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAgGhE;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAgBnD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBxE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAG1D;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAOjD"}
|
|
1
|
+
{"version":3,"file":"event-logger.d.ts","sourceRoot":"","sources":["../../src/lib/event-logger.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/event-logger.js
CHANGED
|
@@ -276,4 +276,81 @@ export async function clearEvents() {
|
|
|
276
276
|
console.error('[EventLogger] Failed to clear events:', error instanceof Error ? error.message : String(error));
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
|
+
/**
|
|
280
|
+
* Log a coaching interaction event (EPIC-016 Sprint 5 Task 5)
|
|
281
|
+
*
|
|
282
|
+
* Tracks coaching interactions for future analysis:
|
|
283
|
+
* - Planning menu selections over time
|
|
284
|
+
* - Time from "no structure" to "structured work"
|
|
285
|
+
* - User override patterns
|
|
286
|
+
* - Correlation between coaching level and adoption
|
|
287
|
+
*
|
|
288
|
+
* @param data - Coaching event data
|
|
289
|
+
*/
|
|
290
|
+
export async function logCoachingEvent(data) {
|
|
291
|
+
const description = formatCoachingDescription(data);
|
|
292
|
+
await logEvent({
|
|
293
|
+
category: 'insight',
|
|
294
|
+
description,
|
|
295
|
+
tags: ['coaching-data', `coaching-${data.type}`, `level-${data.coachingLevel || 'unknown'}`],
|
|
296
|
+
impact: 'low',
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Format coaching event description for logging
|
|
301
|
+
*/
|
|
302
|
+
function formatCoachingDescription(data) {
|
|
303
|
+
switch (data.type) {
|
|
304
|
+
case 'planning_menu_shown':
|
|
305
|
+
return `Planning menu shown (coaching level: ${data.coachingLevel}, score: ${data.overallScore})`;
|
|
306
|
+
case 'planning_menu_selection':
|
|
307
|
+
return `Planning menu selection: ${data.selection} (coaching level: ${data.coachingLevel})`;
|
|
308
|
+
case 'coaching_level_auto':
|
|
309
|
+
return `Coaching level auto-adjusted to ${data.coachingLevel} (score: ${data.overallScore})`;
|
|
310
|
+
case 'coaching_level_override':
|
|
311
|
+
return `Coaching level manually set to ${data.coachingLevel} (previous: ${data.previousLevel})`;
|
|
312
|
+
case 'targeted_tip_shown':
|
|
313
|
+
return `Targeted coaching tip shown: ${data.tipId} (metric: ${data.metric}, level: ${data.coachingLevel})`;
|
|
314
|
+
case 'session_with_structure':
|
|
315
|
+
return `Session started with structured work (coaching level: ${data.coachingLevel})`;
|
|
316
|
+
case 'session_without_structure':
|
|
317
|
+
return `Session started without structure, menu shown (coaching level: ${data.coachingLevel})`;
|
|
318
|
+
default:
|
|
319
|
+
return `Coaching event: ${data.type}`;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Log planning menu interaction
|
|
324
|
+
*/
|
|
325
|
+
export async function logPlanningMenuEvent(selection, coachingLevel, overallScore) {
|
|
326
|
+
await logCoachingEvent({
|
|
327
|
+
type: 'planning_menu_selection',
|
|
328
|
+
selection,
|
|
329
|
+
coachingLevel,
|
|
330
|
+
overallScore,
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Log coaching level change
|
|
335
|
+
*/
|
|
336
|
+
export async function logCoachingLevelChange(newLevel, isOverride, overallScore, previousLevel) {
|
|
337
|
+
await logCoachingEvent({
|
|
338
|
+
type: isOverride ? 'coaching_level_override' : 'coaching_level_auto',
|
|
339
|
+
coachingLevel: newLevel,
|
|
340
|
+
overallScore,
|
|
341
|
+
override: isOverride,
|
|
342
|
+
previousLevel,
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Log targeted tip shown
|
|
347
|
+
*/
|
|
348
|
+
export async function logTargetedTipShown(tipId, metric, coachingLevel) {
|
|
349
|
+
await logCoachingEvent({
|
|
350
|
+
type: 'targeted_tip_shown',
|
|
351
|
+
tipId,
|
|
352
|
+
metric,
|
|
353
|
+
coachingLevel,
|
|
354
|
+
});
|
|
355
|
+
}
|
|
279
356
|
//# sourceMappingURL=event-logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-logger.js","sourceRoot":"","sources":["../../src/lib/event-logger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event-logger.js","sourceRoot":"","sources":["../../src/lib/event-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: utility
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2026-01-26
|
|
5
|
+
* @tags: [planning, menu, coaching, structure-detection, epic-016-s04]
|
|
6
|
+
* @related: [start-reflection.ts, user-sprint.ts, event-logger.ts]
|
|
7
|
+
* @priority: high
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [prompts, chalk, event-logger]
|
|
10
|
+
*/
|
|
11
|
+
import { WorkStructureStatus } from './user-sprint.js';
|
|
12
|
+
import { CoachingLevel } from './coaching-level.js';
|
|
13
|
+
export type PlanningChoice = 'epic' | 'sprint' | 'quick-fix' | 'adhoc';
|
|
14
|
+
export interface PlanningMenuResult {
|
|
15
|
+
choice: PlanningChoice | null;
|
|
16
|
+
cancelled: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface PlanningRouteResult {
|
|
19
|
+
success: boolean;
|
|
20
|
+
sprintId?: string;
|
|
21
|
+
taskId?: string;
|
|
22
|
+
message?: string;
|
|
23
|
+
shouldContinueStart?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Display the guided planning menu and get user selection
|
|
27
|
+
*
|
|
28
|
+
* Called when ginko start detects no structured work.
|
|
29
|
+
* Logs selection for coaching insights analysis (t05).
|
|
30
|
+
* Uses adoption-based quieting to adjust verbosity.
|
|
31
|
+
*
|
|
32
|
+
* @param status - Work structure status from checkWorkStructure()
|
|
33
|
+
* @returns Menu selection result
|
|
34
|
+
*/
|
|
35
|
+
export declare function showPlanningMenu(status?: WorkStructureStatus): Promise<PlanningMenuResult>;
|
|
36
|
+
/**
|
|
37
|
+
* Log the planning menu selection for coaching analysis (t05)
|
|
38
|
+
*
|
|
39
|
+
* Enables the insights system to:
|
|
40
|
+
* - Track pattern adoption over time
|
|
41
|
+
* - Identify users who frequently choose ad-hoc
|
|
42
|
+
* - Measure effectiveness of planning prompts
|
|
43
|
+
*
|
|
44
|
+
* Also records adoption signals for quieting behavior.
|
|
45
|
+
*/
|
|
46
|
+
declare function logPlanningChoice(choice: PlanningChoice, coachingLevel?: CoachingLevel, overallScore?: number): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Route the planning menu choice to appropriate handler
|
|
49
|
+
*
|
|
50
|
+
* Routes:
|
|
51
|
+
* - epic → launches ginko epic command
|
|
52
|
+
* - sprint → launches sprint creation flow (t03)
|
|
53
|
+
* - quick-fix → launches quick-fix flow (t04)
|
|
54
|
+
* - adhoc → marks session as ad-hoc, continues to normal start
|
|
55
|
+
*
|
|
56
|
+
* @param choice - User's menu selection
|
|
57
|
+
* @returns Route result with success status and metadata
|
|
58
|
+
*/
|
|
59
|
+
export declare function routePlanningChoice(choice: PlanningChoice): Promise<PlanningRouteResult>;
|
|
60
|
+
export declare const __testing: {
|
|
61
|
+
PLANNING_MENU_CHOICES: {
|
|
62
|
+
title: string;
|
|
63
|
+
description: string;
|
|
64
|
+
value: PlanningChoice;
|
|
65
|
+
}[];
|
|
66
|
+
logPlanningChoice: typeof logPlanningChoice;
|
|
67
|
+
};
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=planning-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planning-menu.d.ts","sourceRoot":"","sources":["../../src/lib/planning-menu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkBH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAEL,aAAa,EAId,MAAM,qBAAqB,CAAC;AAO7B,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAiCD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CA0E7B;AAED;;;;;;;;;GASG;AACH,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,cAAc,EACtB,aAAa,CAAC,EAAE,aAAa,EAC7B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAsCf;AAMD;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAiB9B;AAkJD,eAAO,MAAM,SAAS;;;;eA1VD,cAAc;;;CA6VlC,CAAC"}
|