edsger 0.2.12 → 0.2.14
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.
|
@@ -179,6 +179,21 @@ async function prepareDesignContext(mcpServerUrl, mcpToken, featureId, checklist
|
|
|
179
179
|
feedbacksContext.feedbacks.forEach((fb, idx) => {
|
|
180
180
|
logInfo(` ${idx + 1}. [${fb.feedback_type}] ${fb.title} (priority: ${fb.priority}, resolved: ${fb.is_resolved || false})`);
|
|
181
181
|
logInfo(` Content: ${fb.content.substring(0, 150)}...`);
|
|
182
|
+
if (fb.target_type) {
|
|
183
|
+
logInfo(` 🎯 Target Type: ${fb.target_type}`);
|
|
184
|
+
}
|
|
185
|
+
if (fb.document_type) {
|
|
186
|
+
logInfo(` 📄 Document: ${fb.document_type}`);
|
|
187
|
+
}
|
|
188
|
+
if (fb.line_number) {
|
|
189
|
+
logInfo(` 📏 Line: ${fb.line_number}`);
|
|
190
|
+
}
|
|
191
|
+
else if (fb.line_range_start && fb.line_range_end) {
|
|
192
|
+
logInfo(` 📏 Lines: ${fb.line_range_start}-${fb.line_range_end}`);
|
|
193
|
+
}
|
|
194
|
+
if (fb.context_snippet) {
|
|
195
|
+
logInfo(` Referenced: ${fb.context_snippet.substring(0, 100)}...`);
|
|
196
|
+
}
|
|
182
197
|
});
|
|
183
198
|
}
|
|
184
199
|
}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { PipelinePhaseOptions } from '../types/pipeline.js';
|
|
6
6
|
export type { PipelinePhaseOptions };
|
|
7
|
-
export type FeedbackType = 'requirement' | 'constraint' | 'preference' | 'context' | 'quality_criteria';
|
|
7
|
+
export type FeedbackType = 'requirement' | 'constraint' | 'preference' | 'context' | 'quality_criteria' | 'issue' | 'suggestion';
|
|
8
|
+
export type FeedbackTargetType = 'phase' | 'line' | 'range';
|
|
9
|
+
export type DocumentType = 'technical_design' | 'code' | 'test_case' | 'user_story';
|
|
8
10
|
export interface Feedback {
|
|
9
11
|
id: string;
|
|
10
12
|
feature_id: string | null;
|
|
@@ -21,6 +23,12 @@ export interface Feedback {
|
|
|
21
23
|
created_by: string;
|
|
22
24
|
created_at: string;
|
|
23
25
|
updated_at: string;
|
|
26
|
+
target_type?: FeedbackTargetType | null;
|
|
27
|
+
document_type?: DocumentType | null;
|
|
28
|
+
line_number?: number | null;
|
|
29
|
+
line_range_start?: number | null;
|
|
30
|
+
line_range_end?: number | null;
|
|
31
|
+
context_snippet?: string | null;
|
|
24
32
|
}
|
|
25
33
|
export interface FeedbacksContext {
|
|
26
34
|
phase: string;
|
|
@@ -99,6 +99,14 @@ export function formatFeedbacksForContext(context) {
|
|
|
99
99
|
if (grouped.quality_criteria && grouped.quality_criteria.length > 0) {
|
|
100
100
|
sections.push(`## ✅ Quality Criteria\n\n${formatFeedbacksList(grouped.quality_criteria)}`);
|
|
101
101
|
}
|
|
102
|
+
// Issues
|
|
103
|
+
if (grouped.issue && grouped.issue.length > 0) {
|
|
104
|
+
sections.push(`## 🐛 Issues to Address\n\n${formatFeedbacksList(grouped.issue)}`);
|
|
105
|
+
}
|
|
106
|
+
// Suggestions
|
|
107
|
+
if (grouped.suggestion && grouped.suggestion.length > 0) {
|
|
108
|
+
sections.push(`## 💭 Suggestions\n\n${formatFeedbacksList(grouped.suggestion)}`);
|
|
109
|
+
}
|
|
102
110
|
const phaseDisplay = context.phase.replace(/_/g, '-');
|
|
103
111
|
return `
|
|
104
112
|
---
|
|
@@ -130,7 +138,32 @@ function formatFeedbacksList(feedbacks) {
|
|
|
130
138
|
return sorted
|
|
131
139
|
.map((feedback, idx) => {
|
|
132
140
|
const priorityBadge = getPriorityBadge(feedback.priority);
|
|
133
|
-
|
|
141
|
+
// Build context metadata section
|
|
142
|
+
let contextInfo = '';
|
|
143
|
+
// Document type
|
|
144
|
+
if (feedback.document_type) {
|
|
145
|
+
const docTypeDisplay = feedback.document_type
|
|
146
|
+
.split('_')
|
|
147
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
148
|
+
.join(' ');
|
|
149
|
+
contextInfo += `\n**Document**: ${docTypeDisplay}`;
|
|
150
|
+
}
|
|
151
|
+
// Target type
|
|
152
|
+
if (feedback.target_type && feedback.target_type !== 'phase') {
|
|
153
|
+
contextInfo += `\n**Target Type**: ${feedback.target_type}`;
|
|
154
|
+
}
|
|
155
|
+
// Build line reference info if available
|
|
156
|
+
if (feedback.line_number) {
|
|
157
|
+
contextInfo += `\n**Line**: ${feedback.line_number}`;
|
|
158
|
+
}
|
|
159
|
+
else if (feedback.line_range_start && feedback.line_range_end) {
|
|
160
|
+
contextInfo += `\n**Lines**: ${feedback.line_range_start}-${feedback.line_range_end}`;
|
|
161
|
+
}
|
|
162
|
+
// Context snippet
|
|
163
|
+
if (feedback.context_snippet) {
|
|
164
|
+
contextInfo += `\n**Referenced Content**:\n\`\`\`\n${feedback.context_snippet}\n\`\`\``;
|
|
165
|
+
}
|
|
166
|
+
return `### ${idx + 1}. ${feedback.title} ${priorityBadge}\n\n${feedback.content}${contextInfo}\n`;
|
|
134
167
|
})
|
|
135
168
|
.join('\n');
|
|
136
169
|
}
|