@code-insights/cli 3.3.1 → 3.3.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/CHANGELOG.md +24 -0
- package/README.md +1 -1
- package/dashboard-dist/assets/{index-Rr1JlICa.js → index-BRUFVAPq.js} +148 -138
- package/dashboard-dist/assets/index-CYJdtaMC.css +1 -0
- package/dashboard-dist/index.html +2 -2
- package/dist/types.d.ts +27 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/telemetry.d.ts.map +1 -1
- package/dist/utils/telemetry.js +33 -1
- package/dist/utils/telemetry.js.map +1 -1
- package/package.json +1 -1
- package/server-dist/llm/analysis.d.ts +1 -0
- package/server-dist/llm/analysis.d.ts.map +1 -1
- package/server-dist/llm/analysis.js +35 -9
- package/server-dist/llm/analysis.js.map +1 -1
- package/server-dist/llm/prompts.d.ts +31 -7
- package/server-dist/llm/prompts.d.ts.map +1 -1
- package/server-dist/llm/prompts.js +161 -46
- package/server-dist/llm/prompts.js.map +1 -1
- package/server-dist/llm/providers/anthropic.js +1 -1
- package/server-dist/llm/providers/gemini.js +1 -1
- package/server-dist/llm/providers/openai.d.ts.map +1 -1
- package/server-dist/llm/providers/openai.js +1 -0
- package/server-dist/llm/providers/openai.js.map +1 -1
- package/server-dist/routes/analysis.d.ts.map +1 -1
- package/server-dist/routes/analysis.js +4 -0
- package/server-dist/routes/analysis.js.map +1 -1
- package/server-dist/routes/analytics.d.ts.map +1 -1
- package/server-dist/routes/analytics.js +10 -0
- package/server-dist/routes/analytics.js.map +1 -1
- package/dashboard-dist/assets/index-BMhL7wL8.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/llm/analysis.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/llm/analysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SessionCharacter } from '@code-insights/cli/types';
|
|
1
2
|
export interface SQLiteMessageRow {
|
|
2
3
|
id: string;
|
|
3
4
|
session_id: string;
|
|
@@ -18,29 +19,39 @@ export declare function formatMessagesForAnalysis(messages: SQLiteMessageRow[]):
|
|
|
18
19
|
/**
|
|
19
20
|
* System prompt for session analysis.
|
|
20
21
|
*/
|
|
21
|
-
export declare const SESSION_ANALYSIS_SYSTEM_PROMPT = "You are
|
|
22
|
+
export declare const SESSION_ANALYSIS_SYSTEM_PROMPT = "You are a senior staff engineer writing entries for a team's engineering knowledge base. You've just observed an AI-assisted coding session and your job is to extract the insights that would save another engineer time if they encountered a similar situation 6 months from now.\n\nYour audience is a developer who has never seen this session but works on the same codebase. They need enough context to understand WHY a decision was made, WHAT specific gotcha was discovered, and WHEN this knowledge applies.\n\nYou will extract:\n1. **Summary**: A narrative of what was accomplished and the outcome\n2. **Decisions**: Technical choices made \u2014 with full situation context, reasoning, rejected alternatives, trade-offs, and conditions for revisiting (max 3)\n3. **Learnings**: Technical discoveries, gotchas, debugging breakthroughs \u2014 with the observable symptom, root cause, and a transferable takeaway (max 5)\n4. **Session Character**: Classify the session into exactly one of these types based on its overall nature:\n - deep_focus: Long, concentrated work on a specific problem or area (50+ messages, deep into one topic)\n - bug_hunt: Debugging-driven \u2014 investigating errors, tracing issues, fixing bugs\n - feature_build: Building new functionality \u2014 creating files, adding endpoints, wiring components\n - exploration: Research-oriented \u2014 reading code, searching, understanding before acting\n - refactor: Restructuring existing code \u2014 renaming, moving, reorganizing without new features\n - learning: Knowledge-seeking \u2014 asking questions, understanding concepts, getting explanations\n - quick_task: Short and focused \u2014 small fix, config change, or one-off task (<10 messages)\n\nQuality Standards:\n- Only include insights you would write in a team knowledge base for future reference\n- Each insight MUST reference concrete details: specific file names, library names, error messages, API endpoints, or code patterns\n- Do not invent file names, APIs, errors, or details not present in the conversation\n- Rate your confidence in each insight's value (0-100). Only include insights you rate 70+.\n- It is better to return 0 insights in a category than to include generic or trivial ones\n- If a session is straightforward with no notable decisions or learnings, say so in the summary and leave other categories empty\n\nLength Guidance:\n- Fill every field in the schema. An empty \"trade_offs\" or \"revisit_when\" is worse than a longer response.\n- Total response: stay under 2000 tokens. If you must cut, drop lower-confidence insights rather than compressing high-confidence ones.\n- Evidence: 1-3 short quotes per insight, referencing turn labels.\n- Prefer precision over brevity \u2014 a specific 3-sentence insight beats a vague 1-sentence insight.\n\nDO NOT include insights like these (too generic/trivial):\n- \"Used debugging techniques to fix an issue\"\n- \"Made architectural decisions about the codebase\"\n- \"Implemented a new feature\" (the summary already covers this)\n- \"Used React hooks for state management\" (too generic without specifics)\n- \"Fixed a bug in the code\" (what bug? what was the root cause?)\n- Anything that restates the task without adding transferable knowledge\n\nHere are examples of EXCELLENT insights \u2014 this is the quality bar:\n\nEXCELLENT decision:\n{\n \"title\": \"Use better-sqlite3 instead of sql.js for local database\",\n \"situation\": \"Needed a SQLite driver for a Node.js CLI that stores session data locally. Single-user, read-heavy from dashboard, occasional writes during sync.\",\n \"choice\": \"better-sqlite3 \u2014 synchronous C++ binding with native SQLite access, no async overhead.\",\n \"reasoning\": \"CLI runs locally with no concurrent users. Synchronous API eliminates callback complexity. WAL mode provides concurrent read access for the dashboard while CLI writes.\",\n \"alternatives\": [\n {\"option\": \"sql.js (WASM build)\", \"rejected_because\": \"3x slower for bulk inserts, entire DB in memory, no WAL support\"},\n {\"option\": \"PostgreSQL via Docker\", \"rejected_because\": \"Violates local-first constraint \u2014 requires running a server process\"}\n ],\n \"trade_offs\": \"Requires native compilation (node-gyp) which can fail on some systems. No browser compatibility.\",\n \"revisit_when\": \"If multi-device sync is added or users report node-gyp build failures.\",\n \"confidence\": 92,\n \"evidence\": [\"User#3: 'We need something that works without a server'\", \"Assistant#4: 'better-sqlite3 with WAL mode gives concurrent reads...'\"]\n}\n\nEXCELLENT learning:\n{\n \"title\": \"Tailwind v4 requires @theme inline{} for CSS variable utilities\",\n \"symptom\": \"After Tailwind v3\u2192v4 upgrade, custom utilities like bg-primary stopped working. Classes present in HTML but no styles applied.\",\n \"root_cause\": \"Tailwind v4 removed tailwind.config.js theme extension. CSS variables in :root are not automatically available as utilities \u2014 must be registered via @theme inline {} in the CSS file.\",\n \"takeaway\": \"When migrating Tailwind v3\u2192v4 with shadcn/ui: add @theme inline {} mapping CSS variables, add @custom-variant dark for class-based dark mode, replace tailwindcss-animate with tw-animate-css.\",\n \"applies_when\": \"Any Tailwind v3\u2192v4 migration using CSS variables for theming, especially with shadcn/ui.\",\n \"confidence\": 95,\n \"evidence\": [\"User#12: 'The colors are all gone after the upgrade'\", \"Assistant#13: 'Tailwind v4 requires explicit @theme inline registration...'\"]\n}\n\nRespond with valid JSON only, wrapped in <json>...</json> tags. Do not include any other text.";
|
|
22
23
|
/**
|
|
23
24
|
* Generate the user prompt for session analysis.
|
|
24
25
|
*/
|
|
25
26
|
export declare function generateSessionAnalysisPrompt(projectName: string, sessionSummary: string | null, formattedMessages: string): string;
|
|
26
27
|
export interface AnalysisResponse {
|
|
28
|
+
session_character?: SessionCharacter;
|
|
27
29
|
summary: {
|
|
28
30
|
title: string;
|
|
29
31
|
content: string;
|
|
32
|
+
outcome?: 'success' | 'partial' | 'abandoned' | 'blocked';
|
|
30
33
|
bullets: string[];
|
|
31
34
|
};
|
|
32
35
|
decisions: Array<{
|
|
33
36
|
title: string;
|
|
34
|
-
|
|
37
|
+
situation?: string;
|
|
38
|
+
choice?: string;
|
|
35
39
|
reasoning: string;
|
|
36
|
-
alternatives?:
|
|
40
|
+
alternatives?: Array<{
|
|
41
|
+
option: string;
|
|
42
|
+
rejected_because: string;
|
|
43
|
+
}>;
|
|
44
|
+
trade_offs?: string;
|
|
45
|
+
revisit_when?: string;
|
|
37
46
|
confidence?: number;
|
|
38
47
|
evidence?: string[];
|
|
39
48
|
}>;
|
|
40
49
|
learnings: Array<{
|
|
41
50
|
title: string;
|
|
42
|
-
|
|
43
|
-
|
|
51
|
+
symptom?: string;
|
|
52
|
+
root_cause?: string;
|
|
53
|
+
takeaway?: string;
|
|
54
|
+
applies_when?: string;
|
|
44
55
|
confidence?: number;
|
|
45
56
|
evidence?: string[];
|
|
46
57
|
}>;
|
|
@@ -49,6 +60,7 @@ export interface ParseError {
|
|
|
49
60
|
error_type: 'json_parse_error' | 'no_json_found' | 'invalid_structure';
|
|
50
61
|
error_message: string;
|
|
51
62
|
response_length: number;
|
|
63
|
+
response_preview: string;
|
|
52
64
|
}
|
|
53
65
|
export type ParseResult<T> = {
|
|
54
66
|
success: true;
|
|
@@ -61,17 +73,28 @@ export type ParseResult<T> = {
|
|
|
61
73
|
* Parse the LLM response into structured insights.
|
|
62
74
|
*/
|
|
63
75
|
export declare function parseAnalysisResponse(response: string): ParseResult<AnalysisResponse>;
|
|
64
|
-
export declare const PROMPT_QUALITY_SYSTEM_PROMPT = "You are
|
|
76
|
+
export declare const PROMPT_QUALITY_SYSTEM_PROMPT = "You are a prompt engineering coach helping developers communicate more effectively with AI coding assistants. You review conversations and identify specific moments where better prompting would have saved time.\n\nYou will identify:\n1. **Wasted turns**: User messages that led to clarifications, corrections, or repeated instructions because the original prompt was unclear, missing context, or too vague.\n2. **Anti-patterns**: Recurring bad habits in the user's prompting style, with specific fixes.\n3. **Session traits**: Higher-level behavioral patterns about how the session was structured and managed.\n4. **Efficiency score**: A 0-100 rating of how optimally the user communicated.\n5. **Actionable tips**: Specific improvements the user can make.\n\nBefore evaluating, mentally walk through the conversation and identify:\n1. Each time the assistant asked for clarification that could have been avoided\n2. Each time the user corrected the assistant's interpretation\n3. Each time the user repeated an instruction they gave earlier\n4. Whether the session covers too many unrelated objectives (context drift / session bloat)\n5. Whether the user provided critical context or requirements late that should have been mentioned upfront\n6. Whether the user discussed the plan/approach before jumping into implementation, or dove straight into code\nThese are your candidate findings. Only include them if they are genuinely actionable.\n\nGuidelines:\n- Focus on USER messages only \u2014 don't critique the assistant's responses\n- A \"wasted turn\" is when the user had to send a follow-up message to clarify, correct, or repeat something that could have been included in the original prompt\n- Only mark a wasted turn if the assistant explicitly asked for clarification or corrected a misunderstanding\n- Be constructive, not judgmental \u2014 the goal is to help users improve\n- Consider the context: some clarification exchanges are normal and expected\n- A score of 100 means every user message was perfectly clear and complete\n- A score of 50 means about half the messages could have been more efficient\n\nLength Guidance:\n- Max 5 wasted turns, max 3 anti-patterns, max 3 session traits, max 5 tips\n- suggestedRewrite must be a complete, usable prompt \u2014 not vague meta-advice\n- overallAssessment: 2-3 sentences\n- Total response: stay under 2000 tokens\n\nRespond with valid JSON only, wrapped in <json>...</json> tags. Do not include any other text.";
|
|
65
77
|
export declare function generatePromptQualityPrompt(projectName: string, formattedMessages: string, messageCount: number): string;
|
|
66
78
|
export interface WastedTurn {
|
|
67
79
|
messageIndex: number;
|
|
68
|
-
|
|
80
|
+
originalMessage?: string;
|
|
81
|
+
whatWentWrong?: string;
|
|
69
82
|
suggestedRewrite: string;
|
|
83
|
+
turnsWasted?: number;
|
|
70
84
|
}
|
|
71
85
|
export interface AntiPattern {
|
|
72
86
|
name: string;
|
|
87
|
+
description?: string;
|
|
73
88
|
count: number;
|
|
74
89
|
examples: string[];
|
|
90
|
+
fix?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface SessionTrait {
|
|
93
|
+
trait: 'context_drift' | 'objective_bloat' | 'late_context' | 'no_planning' | 'good_structure';
|
|
94
|
+
severity: 'high' | 'medium' | 'low';
|
|
95
|
+
description: string;
|
|
96
|
+
evidence?: string;
|
|
97
|
+
suggestion?: string;
|
|
75
98
|
}
|
|
76
99
|
export interface PromptQualityResponse {
|
|
77
100
|
efficiencyScore: number;
|
|
@@ -79,6 +102,7 @@ export interface PromptQualityResponse {
|
|
|
79
102
|
overallAssessment: string;
|
|
80
103
|
wastedTurns: WastedTurn[];
|
|
81
104
|
antiPatterns: AntiPattern[];
|
|
105
|
+
sessionTraits: SessionTrait[];
|
|
82
106
|
tips: string[];
|
|
83
107
|
}
|
|
84
108
|
export declare function parsePromptQualityResponse(response: string): ParseResult<PromptQualityResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/llm/prompts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/llm/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Analysis prompts and response parsers for LLM session analysis.
|
|
2
2
|
// Ported from web repo (src/lib/llm/prompts.ts) with SQLite-aware message formatting.
|
|
3
|
+
import { jsonrepair } from 'jsonrepair';
|
|
3
4
|
/**
|
|
4
5
|
* Format SQLite message rows for LLM consumption.
|
|
5
6
|
* Handles snake_case fields and JSON-encoded tool_calls/tool_results.
|
|
@@ -38,9 +39,9 @@ export function formatMessagesForAnalysis(messages) {
|
|
|
38
39
|
const thinkingInfo = m.thinking
|
|
39
40
|
? `\n[Thinking: ${m.thinking.slice(0, 1000)}]`
|
|
40
41
|
: '';
|
|
41
|
-
// Include tool results for context —
|
|
42
|
+
// Include tool results for context — 500 chars per result (error messages need ~300-400 chars)
|
|
42
43
|
const resultInfo = toolResults.length > 0
|
|
43
|
-
? `\n[Tool results: ${toolResults.map(r => (r.output || '').slice(0,
|
|
44
|
+
? `\n[Tool results: ${toolResults.map(r => (r.output || '').slice(0, 500)).join(' | ')}]`
|
|
44
45
|
: '';
|
|
45
46
|
return `### ${roleLabel}:\n${m.content}${thinkingInfo}${toolInfo}${resultInfo}`;
|
|
46
47
|
})
|
|
@@ -49,12 +50,22 @@ export function formatMessagesForAnalysis(messages) {
|
|
|
49
50
|
/**
|
|
50
51
|
* System prompt for session analysis.
|
|
51
52
|
*/
|
|
52
|
-
export const SESSION_ANALYSIS_SYSTEM_PROMPT = `You are
|
|
53
|
+
export const SESSION_ANALYSIS_SYSTEM_PROMPT = `You are a senior staff engineer writing entries for a team's engineering knowledge base. You've just observed an AI-assisted coding session and your job is to extract the insights that would save another engineer time if they encountered a similar situation 6 months from now.
|
|
53
54
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
Your audience is a developer who has never seen this session but works on the same codebase. They need enough context to understand WHY a decision was made, WHAT specific gotcha was discovered, and WHEN this knowledge applies.
|
|
56
|
+
|
|
57
|
+
You will extract:
|
|
58
|
+
1. **Summary**: A narrative of what was accomplished and the outcome
|
|
59
|
+
2. **Decisions**: Technical choices made — with full situation context, reasoning, rejected alternatives, trade-offs, and conditions for revisiting (max 3)
|
|
60
|
+
3. **Learnings**: Technical discoveries, gotchas, debugging breakthroughs — with the observable symptom, root cause, and a transferable takeaway (max 5)
|
|
61
|
+
4. **Session Character**: Classify the session into exactly one of these types based on its overall nature:
|
|
62
|
+
- deep_focus: Long, concentrated work on a specific problem or area (50+ messages, deep into one topic)
|
|
63
|
+
- bug_hunt: Debugging-driven — investigating errors, tracing issues, fixing bugs
|
|
64
|
+
- feature_build: Building new functionality — creating files, adding endpoints, wiring components
|
|
65
|
+
- exploration: Research-oriented — reading code, searching, understanding before acting
|
|
66
|
+
- refactor: Restructuring existing code — renaming, moving, reorganizing without new features
|
|
67
|
+
- learning: Knowledge-seeking — asking questions, understanding concepts, getting explanations
|
|
68
|
+
- quick_task: Short and focused — small fix, config change, or one-off task (<10 messages)
|
|
58
69
|
|
|
59
70
|
Quality Standards:
|
|
60
71
|
- Only include insights you would write in a team knowledge base for future reference
|
|
@@ -63,7 +74,12 @@ Quality Standards:
|
|
|
63
74
|
- Rate your confidence in each insight's value (0-100). Only include insights you rate 70+.
|
|
64
75
|
- It is better to return 0 insights in a category than to include generic or trivial ones
|
|
65
76
|
- If a session is straightforward with no notable decisions or learnings, say so in the summary and leave other categories empty
|
|
66
|
-
|
|
77
|
+
|
|
78
|
+
Length Guidance:
|
|
79
|
+
- Fill every field in the schema. An empty "trade_offs" or "revisit_when" is worse than a longer response.
|
|
80
|
+
- Total response: stay under 2000 tokens. If you must cut, drop lower-confidence insights rather than compressing high-confidence ones.
|
|
81
|
+
- Evidence: 1-3 short quotes per insight, referencing turn labels.
|
|
82
|
+
- Prefer precision over brevity — a specific 3-sentence insight beats a vague 1-sentence insight.
|
|
67
83
|
|
|
68
84
|
DO NOT include insights like these (too generic/trivial):
|
|
69
85
|
- "Used debugging techniques to fix an issue"
|
|
@@ -73,6 +89,35 @@ DO NOT include insights like these (too generic/trivial):
|
|
|
73
89
|
- "Fixed a bug in the code" (what bug? what was the root cause?)
|
|
74
90
|
- Anything that restates the task without adding transferable knowledge
|
|
75
91
|
|
|
92
|
+
Here are examples of EXCELLENT insights — this is the quality bar:
|
|
93
|
+
|
|
94
|
+
EXCELLENT decision:
|
|
95
|
+
{
|
|
96
|
+
"title": "Use better-sqlite3 instead of sql.js for local database",
|
|
97
|
+
"situation": "Needed a SQLite driver for a Node.js CLI that stores session data locally. Single-user, read-heavy from dashboard, occasional writes during sync.",
|
|
98
|
+
"choice": "better-sqlite3 — synchronous C++ binding with native SQLite access, no async overhead.",
|
|
99
|
+
"reasoning": "CLI runs locally with no concurrent users. Synchronous API eliminates callback complexity. WAL mode provides concurrent read access for the dashboard while CLI writes.",
|
|
100
|
+
"alternatives": [
|
|
101
|
+
{"option": "sql.js (WASM build)", "rejected_because": "3x slower for bulk inserts, entire DB in memory, no WAL support"},
|
|
102
|
+
{"option": "PostgreSQL via Docker", "rejected_because": "Violates local-first constraint — requires running a server process"}
|
|
103
|
+
],
|
|
104
|
+
"trade_offs": "Requires native compilation (node-gyp) which can fail on some systems. No browser compatibility.",
|
|
105
|
+
"revisit_when": "If multi-device sync is added or users report node-gyp build failures.",
|
|
106
|
+
"confidence": 92,
|
|
107
|
+
"evidence": ["User#3: 'We need something that works without a server'", "Assistant#4: 'better-sqlite3 with WAL mode gives concurrent reads...'"]
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
EXCELLENT learning:
|
|
111
|
+
{
|
|
112
|
+
"title": "Tailwind v4 requires @theme inline{} for CSS variable utilities",
|
|
113
|
+
"symptom": "After Tailwind v3→v4 upgrade, custom utilities like bg-primary stopped working. Classes present in HTML but no styles applied.",
|
|
114
|
+
"root_cause": "Tailwind v4 removed tailwind.config.js theme extension. CSS variables in :root are not automatically available as utilities — must be registered via @theme inline {} in the CSS file.",
|
|
115
|
+
"takeaway": "When migrating Tailwind v3→v4 with shadcn/ui: add @theme inline {} mapping CSS variables, add @custom-variant dark for class-based dark mode, replace tailwindcss-animate with tw-animate-css.",
|
|
116
|
+
"applies_when": "Any Tailwind v3→v4 migration using CSS variables for theming, especially with shadcn/ui.",
|
|
117
|
+
"confidence": 95,
|
|
118
|
+
"evidence": ["User#12: 'The colors are all gone after the upgrade'", "Assistant#13: 'Tailwind v4 requires explicit @theme inline registration...'"]
|
|
119
|
+
}
|
|
120
|
+
|
|
76
121
|
Respond with valid JSON only, wrapped in <json>...</json> tags. Do not include any other text.`;
|
|
77
122
|
/**
|
|
78
123
|
* Generate the user prompt for session analysis.
|
|
@@ -88,28 +133,37 @@ ${formattedMessages}
|
|
|
88
133
|
|
|
89
134
|
Extract insights in this JSON format:
|
|
90
135
|
{
|
|
136
|
+
"session_character": "deep_focus | bug_hunt | feature_build | exploration | refactor | learning | quick_task",
|
|
91
137
|
"summary": {
|
|
92
|
-
"title": "Brief title describing main accomplishment (max
|
|
93
|
-
"content": "2-
|
|
94
|
-
"
|
|
138
|
+
"title": "Brief title describing main accomplishment (max 80 chars)",
|
|
139
|
+
"content": "2-4 sentence narrative: what was the goal, what was done, what was the outcome. Mention the primary file or component changed.",
|
|
140
|
+
"outcome": "success | partial | abandoned | blocked",
|
|
141
|
+
"bullets": ["Each bullet names a specific artifact (file, function, endpoint) and what changed"]
|
|
95
142
|
},
|
|
96
143
|
"decisions": [
|
|
97
144
|
{
|
|
98
|
-
"title": "The specific
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
145
|
+
"title": "The specific technical choice made (max 80 chars)",
|
|
146
|
+
"situation": "What problem or requirement led to this decision point",
|
|
147
|
+
"choice": "What was chosen and how it was implemented",
|
|
148
|
+
"reasoning": "Why this choice was made — the key factors that tipped the decision",
|
|
149
|
+
"alternatives": [
|
|
150
|
+
{"option": "Name of alternative", "rejected_because": "Why it was not chosen"}
|
|
151
|
+
],
|
|
152
|
+
"trade_offs": "What downsides were accepted, what was given up",
|
|
153
|
+
"revisit_when": "Under what conditions this decision should be reconsidered (or 'N/A' if permanent)",
|
|
102
154
|
"confidence": 85,
|
|
103
|
-
"evidence": ["User#4: ...", "Assistant#5: ..."]
|
|
155
|
+
"evidence": ["User#4: quoted text...", "Assistant#5: quoted text..."]
|
|
104
156
|
}
|
|
105
157
|
],
|
|
106
158
|
"learnings": [
|
|
107
159
|
{
|
|
108
|
-
"title": "Specific
|
|
109
|
-
"
|
|
110
|
-
"
|
|
160
|
+
"title": "Specific technical discovery or gotcha (max 80 chars)",
|
|
161
|
+
"symptom": "What went wrong or was confusing — the observable behavior that triggered investigation",
|
|
162
|
+
"root_cause": "The underlying technical reason — why it happened",
|
|
163
|
+
"takeaway": "The transferable lesson — what to do or avoid in similar situations, useful outside this project",
|
|
164
|
+
"applies_when": "Conditions under which this knowledge is relevant (framework version, configuration, etc.)",
|
|
111
165
|
"confidence": 80,
|
|
112
|
-
"evidence": ["User#7: ...", "Assistant#8: ..."]
|
|
166
|
+
"evidence": ["User#7: quoted text...", "Assistant#8: quoted text..."]
|
|
113
167
|
}
|
|
114
168
|
]
|
|
115
169
|
}
|
|
@@ -119,6 +173,14 @@ Evidence should reference the labeled turns in the conversation (e.g., "User#2",
|
|
|
119
173
|
|
|
120
174
|
Respond with valid JSON only, wrapped in <json>...</json> tags. Do not include any other text.`;
|
|
121
175
|
}
|
|
176
|
+
const VALID_SESSION_CHARACTERS = new Set([
|
|
177
|
+
'deep_focus', 'bug_hunt', 'feature_build', 'exploration', 'refactor', 'learning', 'quick_task',
|
|
178
|
+
]);
|
|
179
|
+
function buildResponsePreview(text, head = 200, tail = 200) {
|
|
180
|
+
if (text.length <= head + tail + 20)
|
|
181
|
+
return text;
|
|
182
|
+
return `${text.slice(0, head)}\n...[${text.length - head - tail} chars omitted]...\n${text.slice(-tail)}`;
|
|
183
|
+
}
|
|
122
184
|
function extractJsonPayload(response) {
|
|
123
185
|
const tagged = response.match(/<json>\s*([\s\S]*?)\s*<\/json>/i);
|
|
124
186
|
if (tagged?.[1])
|
|
@@ -131,56 +193,82 @@ function extractJsonPayload(response) {
|
|
|
131
193
|
*/
|
|
132
194
|
export function parseAnalysisResponse(response) {
|
|
133
195
|
const response_length = response.length;
|
|
196
|
+
const preview = buildResponsePreview(response);
|
|
134
197
|
const jsonPayload = extractJsonPayload(response);
|
|
135
198
|
if (!jsonPayload) {
|
|
136
199
|
console.error('No JSON found in analysis response');
|
|
137
200
|
return {
|
|
138
201
|
success: false,
|
|
139
|
-
error: { error_type: 'no_json_found', error_message: 'No JSON found in analysis response', response_length },
|
|
202
|
+
error: { error_type: 'no_json_found', error_message: 'No JSON found in analysis response', response_length, response_preview: preview },
|
|
140
203
|
};
|
|
141
204
|
}
|
|
142
205
|
let parsed;
|
|
143
206
|
try {
|
|
144
207
|
parsed = JSON.parse(jsonPayload);
|
|
145
208
|
}
|
|
146
|
-
catch
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
209
|
+
catch {
|
|
210
|
+
// Attempt repair — handles trailing commas, unclosed braces, truncated output
|
|
211
|
+
try {
|
|
212
|
+
parsed = JSON.parse(jsonrepair(jsonPayload));
|
|
213
|
+
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
216
|
+
console.error('Failed to parse analysis response (after jsonrepair):', err);
|
|
217
|
+
return {
|
|
218
|
+
success: false,
|
|
219
|
+
error: { error_type: 'json_parse_error', error_message: msg, response_length, response_preview: preview },
|
|
220
|
+
};
|
|
221
|
+
}
|
|
153
222
|
}
|
|
154
223
|
if (!parsed.summary || typeof parsed.summary.title !== 'string') {
|
|
155
224
|
console.error('Invalid analysis response structure');
|
|
156
225
|
return {
|
|
157
226
|
success: false,
|
|
158
|
-
error: { error_type: 'invalid_structure', error_message: 'Missing or invalid summary field', response_length },
|
|
227
|
+
error: { error_type: 'invalid_structure', error_message: 'Missing or invalid summary field', response_length, response_preview: preview },
|
|
159
228
|
};
|
|
160
229
|
}
|
|
161
230
|
parsed.decisions = parsed.decisions || [];
|
|
162
231
|
parsed.learnings = parsed.learnings || [];
|
|
232
|
+
// Validate session_character — drop if not a recognized value
|
|
233
|
+
if (parsed.session_character && !VALID_SESSION_CHARACTERS.has(parsed.session_character)) {
|
|
234
|
+
parsed.session_character = undefined;
|
|
235
|
+
}
|
|
163
236
|
return { success: true, data: parsed };
|
|
164
237
|
}
|
|
165
238
|
// --- Prompt Quality Analysis ---
|
|
166
|
-
export const PROMPT_QUALITY_SYSTEM_PROMPT = `You are
|
|
239
|
+
export const PROMPT_QUALITY_SYSTEM_PROMPT = `You are a prompt engineering coach helping developers communicate more effectively with AI coding assistants. You review conversations and identify specific moments where better prompting would have saved time.
|
|
167
240
|
|
|
168
241
|
You will identify:
|
|
169
242
|
1. **Wasted turns**: User messages that led to clarifications, corrections, or repeated instructions because the original prompt was unclear, missing context, or too vague.
|
|
170
|
-
2. **Anti-patterns**: Recurring bad habits in the user's prompting style.
|
|
171
|
-
3. **
|
|
172
|
-
4. **
|
|
243
|
+
2. **Anti-patterns**: Recurring bad habits in the user's prompting style, with specific fixes.
|
|
244
|
+
3. **Session traits**: Higher-level behavioral patterns about how the session was structured and managed.
|
|
245
|
+
4. **Efficiency score**: A 0-100 rating of how optimally the user communicated.
|
|
246
|
+
5. **Actionable tips**: Specific improvements the user can make.
|
|
247
|
+
|
|
248
|
+
Before evaluating, mentally walk through the conversation and identify:
|
|
249
|
+
1. Each time the assistant asked for clarification that could have been avoided
|
|
250
|
+
2. Each time the user corrected the assistant's interpretation
|
|
251
|
+
3. Each time the user repeated an instruction they gave earlier
|
|
252
|
+
4. Whether the session covers too many unrelated objectives (context drift / session bloat)
|
|
253
|
+
5. Whether the user provided critical context or requirements late that should have been mentioned upfront
|
|
254
|
+
6. Whether the user discussed the plan/approach before jumping into implementation, or dove straight into code
|
|
255
|
+
These are your candidate findings. Only include them if they are genuinely actionable.
|
|
173
256
|
|
|
174
257
|
Guidelines:
|
|
175
258
|
- Focus on USER messages only — don't critique the assistant's responses
|
|
176
259
|
- A "wasted turn" is when the user had to send a follow-up message to clarify, correct, or repeat something that could have been included in the original prompt
|
|
177
260
|
- Only mark a wasted turn if the assistant explicitly asked for clarification or corrected a misunderstanding
|
|
178
|
-
- Common anti-patterns: vague instructions, missing file paths, not providing error messages, incomplete requirements, repeated instructions, not specifying what "it" refers to
|
|
179
261
|
- Be constructive, not judgmental — the goal is to help users improve
|
|
180
262
|
- Consider the context: some clarification exchanges are normal and expected
|
|
181
263
|
- A score of 100 means every user message was perfectly clear and complete
|
|
182
264
|
- A score of 50 means about half the messages could have been more efficient
|
|
183
265
|
|
|
266
|
+
Length Guidance:
|
|
267
|
+
- Max 5 wasted turns, max 3 anti-patterns, max 3 session traits, max 5 tips
|
|
268
|
+
- suggestedRewrite must be a complete, usable prompt — not vague meta-advice
|
|
269
|
+
- overallAssessment: 2-3 sentences
|
|
270
|
+
- Total response: stay under 2000 tokens
|
|
271
|
+
|
|
184
272
|
Respond with valid JSON only, wrapped in <json>...</json> tags. Do not include any other text.`;
|
|
185
273
|
export function generatePromptQualityPrompt(projectName, formattedMessages, messageCount) {
|
|
186
274
|
return `Analyze the user's prompting efficiency in this AI coding session.
|
|
@@ -200,15 +288,28 @@ Evaluate the user's prompting quality and respond with this JSON format:
|
|
|
200
288
|
"wastedTurns": [
|
|
201
289
|
{
|
|
202
290
|
"messageIndex": 5,
|
|
203
|
-
"
|
|
204
|
-
"
|
|
291
|
+
"originalMessage": "The user's original message (abbreviated if long)",
|
|
292
|
+
"whatWentWrong": "What information was missing or ambiguous that caused a follow-up",
|
|
293
|
+
"suggestedRewrite": "A concrete rewrite that includes the missing context — must be a complete, usable prompt",
|
|
294
|
+
"turnsWasted": 2
|
|
205
295
|
}
|
|
206
296
|
],
|
|
207
297
|
"antiPatterns": [
|
|
208
298
|
{
|
|
209
299
|
"name": "Vague Instructions",
|
|
300
|
+
"description": "Requests that lack specificity about what file, function, or behavior to change",
|
|
210
301
|
"count": 3,
|
|
211
|
-
"examples": ["fix it", "make it work",
|
|
302
|
+
"examples": ["User#2: 'fix it'", "User#5: 'make it work'"],
|
|
303
|
+
"fix": "Include the file path, function name, and expected vs actual behavior in the initial request"
|
|
304
|
+
}
|
|
305
|
+
],
|
|
306
|
+
"sessionTraits": [
|
|
307
|
+
{
|
|
308
|
+
"trait": "context_drift | objective_bloat | late_context | no_planning | good_structure",
|
|
309
|
+
"severity": "high | medium | low",
|
|
310
|
+
"description": "What was observed and why it matters",
|
|
311
|
+
"evidence": "User#3 switched from auth to styling, then back to auth at User#12",
|
|
312
|
+
"suggestion": "Break into separate sessions: one for auth, one for styling"
|
|
212
313
|
}
|
|
213
314
|
],
|
|
214
315
|
"tips": [
|
|
@@ -217,6 +318,13 @@ Evaluate the user's prompting quality and respond with this JSON format:
|
|
|
217
318
|
]
|
|
218
319
|
}
|
|
219
320
|
|
|
321
|
+
Session trait definitions:
|
|
322
|
+
- **context_drift**: Session covers too many unrelated objectives, causing the AI to lose context and produce lower quality output
|
|
323
|
+
- **objective_bloat**: Too many different tasks crammed into one session instead of focused, single-purpose sessions
|
|
324
|
+
- **late_context**: Critical requirements, constraints, or context provided late in the conversation that should have been mentioned upfront — causing rework or wasted turns
|
|
325
|
+
- **no_planning**: User jumped straight into implementation without discussing approach, requirements, or plan — leading to course corrections mid-session
|
|
326
|
+
- **good_structure**: Session was well-structured with clear objectives, upfront context, and logical flow (only include this if truly exemplary)
|
|
327
|
+
|
|
220
328
|
Rules:
|
|
221
329
|
- messageIndex refers to the 0-based index of the USER message, as labeled in the conversation (e.g., User#0)
|
|
222
330
|
- Only include genuinely wasted turns, not normal back-and-forth
|
|
@@ -228,31 +336,37 @@ Respond with valid JSON only, wrapped in <json>...</json> tags. Do not include a
|
|
|
228
336
|
}
|
|
229
337
|
export function parsePromptQualityResponse(response) {
|
|
230
338
|
const response_length = response.length;
|
|
339
|
+
const preview = buildResponsePreview(response);
|
|
231
340
|
const jsonPayload = extractJsonPayload(response);
|
|
232
341
|
if (!jsonPayload) {
|
|
233
342
|
console.error('No JSON found in prompt quality response');
|
|
234
343
|
return {
|
|
235
344
|
success: false,
|
|
236
|
-
error: { error_type: 'no_json_found', error_message: 'No JSON found in prompt quality response', response_length },
|
|
345
|
+
error: { error_type: 'no_json_found', error_message: 'No JSON found in prompt quality response', response_length, response_preview: preview },
|
|
237
346
|
};
|
|
238
347
|
}
|
|
239
348
|
let parsed;
|
|
240
349
|
try {
|
|
241
350
|
parsed = JSON.parse(jsonPayload);
|
|
242
351
|
}
|
|
243
|
-
catch
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
352
|
+
catch {
|
|
353
|
+
try {
|
|
354
|
+
parsed = JSON.parse(jsonrepair(jsonPayload));
|
|
355
|
+
}
|
|
356
|
+
catch (err) {
|
|
357
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
358
|
+
console.error('Failed to parse prompt quality response (after jsonrepair):', err);
|
|
359
|
+
return {
|
|
360
|
+
success: false,
|
|
361
|
+
error: { error_type: 'json_parse_error', error_message: msg, response_length, response_preview: preview },
|
|
362
|
+
};
|
|
363
|
+
}
|
|
250
364
|
}
|
|
251
365
|
if (typeof parsed.efficiencyScore !== 'number') {
|
|
252
366
|
console.error('Invalid prompt quality response: missing efficiencyScore');
|
|
253
367
|
return {
|
|
254
368
|
success: false,
|
|
255
|
-
error: { error_type: 'invalid_structure', error_message: 'Missing or invalid efficiencyScore field', response_length },
|
|
369
|
+
error: { error_type: 'invalid_structure', error_message: 'Missing or invalid efficiencyScore field', response_length, response_preview: preview },
|
|
256
370
|
};
|
|
257
371
|
}
|
|
258
372
|
parsed.efficiencyScore = Math.max(0, Math.min(100, Math.round(parsed.efficiencyScore)));
|
|
@@ -260,6 +374,7 @@ export function parsePromptQualityResponse(response) {
|
|
|
260
374
|
parsed.overallAssessment = parsed.overallAssessment || '';
|
|
261
375
|
parsed.wastedTurns = parsed.wastedTurns || [];
|
|
262
376
|
parsed.antiPatterns = parsed.antiPatterns || [];
|
|
377
|
+
parsed.sessionTraits = parsed.sessionTraits || [];
|
|
263
378
|
parsed.tips = parsed.tips || [];
|
|
264
379
|
return { success: true, data: parsed };
|
|
265
380
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/llm/prompts.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,sFAAsF;
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/llm/prompts.ts"],"names":[],"mappings":"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"}
|