engineering-intelligence 0.2.0 → 0.3.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/README.md +4 -0
- package/dist/cli/index.js +24 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/templates.d.ts +1 -1
- package/dist/templates.js +2 -2
- package/dist/templates.js.map +1 -1
- package/dist/visualizer/index.d.ts +2 -0
- package/dist/visualizer/index.d.ts.map +1 -0
- package/dist/visualizer/index.js +599 -0
- package/dist/visualizer/index.js.map +1 -0
- package/package.json +2 -2
- package/templates/canonical/agents/change-agent.md +58 -1
- package/templates/canonical/agents/engineering-orchestrator.md +69 -3
- package/templates/canonical/agents/knowledge-agent.md +59 -2
- package/templates/canonical/agents/quality-agent.md +59 -2
- package/templates/canonical/rules/engineering-intelligence.md +42 -13
- package/templates/canonical/skills/architecture-review-engine/SKILL.md +112 -3
- package/templates/canonical/skills/change-detection-engine/SKILL.md +82 -7
- package/templates/canonical/skills/change-history-engine/SKILL.md +125 -5
- package/templates/canonical/skills/context-sync-engine/SKILL.md +116 -9
- package/templates/canonical/skills/deep-project-knowledge-extractor/SKILL.md +171 -5
- package/templates/canonical/skills/engineering-change-review/SKILL.md +145 -9
- package/templates/canonical/skills/engineering-intelligence-skill/SKILL.md +168 -0
- package/templates/canonical/skills/graph-engine/SKILL.md +134 -14
- package/templates/canonical/skills/impact-analysis-engine/SKILL.md +125 -11
- package/templates/canonical/skills/incremental-sync-engine/SKILL.md +75 -10
- package/templates/canonical/skills/initialize-intelligence-skill/SKILL.md +130 -0
- package/templates/canonical/skills/knowledge-base-validator/SKILL.md +92 -7
- package/templates/canonical/skills/knowledge-sync-engine/SKILL.md +77 -8
- package/templates/canonical/skills/memory-sync-engine/SKILL.md +70 -8
- package/templates/canonical/skills/refactoring-planner/SKILL.md +143 -2
- package/templates/canonical/skills/testing-intelligence-engine/SKILL.md +119 -3
- package/templates/canonical/workflows/analyze-impact.md +25 -3
- package/templates/canonical/workflows/engineering-intelligence.md +20 -3
- package/templates/canonical/workflows/initialize-engineering-intelligence.md +30 -3
- package/templates/canonical/workflows/map-architecture.md +17 -6
- package/templates/canonical/workflows/review-engineering-change.md +26 -2
- package/templates/canonical/workflows/sync-engineering-intelligence.md +20 -2
- package/templates/canonical/skills/engineering-intelligence/SKILL.md +0 -21
- package/templates/canonical/skills/initialize-engineering-intelligence/SKILL.md +0 -32
|
@@ -0,0 +1,599 @@
|
|
|
1
|
+
import { SKILL_NAMES, AGENT_NAMES, WORKFLOW_NAMES } from "../templates.js";
|
|
2
|
+
const SKILL_CATALOG = {
|
|
3
|
+
"initialize-intelligence-skill": {
|
|
4
|
+
name: "Initialize Intelligence",
|
|
5
|
+
category: "initialization",
|
|
6
|
+
description: "Creates evidence-backed project intelligence baseline",
|
|
7
|
+
usedBy: ["engineering-intelligence-skill"],
|
|
8
|
+
dependsOn: ["deep-project-knowledge-extractor", "knowledge-base-validator", "graph-engine", "change-history-engine"],
|
|
9
|
+
},
|
|
10
|
+
"engineering-intelligence-skill": {
|
|
11
|
+
name: "Engineering Intelligence",
|
|
12
|
+
category: "implementation",
|
|
13
|
+
description: "Executes engineering changes with full lifecycle",
|
|
14
|
+
usedBy: [],
|
|
15
|
+
dependsOn: ["initialize-intelligence-skill", "change-detection-engine", "impact-analysis-engine", "testing-intelligence-engine", "incremental-sync-engine", "change-history-engine"],
|
|
16
|
+
},
|
|
17
|
+
"deep-project-knowledge-extractor": {
|
|
18
|
+
name: "Knowledge Extractor",
|
|
19
|
+
category: "initialization",
|
|
20
|
+
description: "Produces evidence-based project documentation",
|
|
21
|
+
usedBy: ["initialize-intelligence-skill"],
|
|
22
|
+
dependsOn: [],
|
|
23
|
+
},
|
|
24
|
+
"knowledge-base-validator": {
|
|
25
|
+
name: "Knowledge Validator",
|
|
26
|
+
category: "review",
|
|
27
|
+
description: "Validates docs against source evidence",
|
|
28
|
+
usedBy: ["initialize-intelligence-skill", "incremental-sync-engine"],
|
|
29
|
+
dependsOn: ["deep-project-knowledge-extractor"],
|
|
30
|
+
},
|
|
31
|
+
"graph-engine": {
|
|
32
|
+
name: "Graph Engine",
|
|
33
|
+
category: "analysis",
|
|
34
|
+
description: "Builds evidence-backed architecture graphs",
|
|
35
|
+
usedBy: ["initialize-intelligence-skill", "impact-analysis-engine", "incremental-sync-engine"],
|
|
36
|
+
dependsOn: [],
|
|
37
|
+
},
|
|
38
|
+
"impact-analysis-engine": {
|
|
39
|
+
name: "Impact Analysis",
|
|
40
|
+
category: "analysis",
|
|
41
|
+
description: "Determines direct and indirect change impact",
|
|
42
|
+
usedBy: ["engineering-intelligence-skill", "incremental-sync-engine"],
|
|
43
|
+
dependsOn: ["change-detection-engine", "graph-engine"],
|
|
44
|
+
},
|
|
45
|
+
"change-detection-engine": {
|
|
46
|
+
name: "Change Detection",
|
|
47
|
+
category: "analysis",
|
|
48
|
+
description: "Resolves change scope from diffs or proposals",
|
|
49
|
+
usedBy: ["impact-analysis-engine", "incremental-sync-engine", "engineering-change-review"],
|
|
50
|
+
dependsOn: [],
|
|
51
|
+
},
|
|
52
|
+
"incremental-sync-engine": {
|
|
53
|
+
name: "Incremental Sync",
|
|
54
|
+
category: "sync",
|
|
55
|
+
description: "Synchronizes only affected intelligence artifacts",
|
|
56
|
+
usedBy: ["engineering-intelligence-skill"],
|
|
57
|
+
dependsOn: ["change-detection-engine", "impact-analysis-engine", "graph-engine", "knowledge-sync-engine", "memory-sync-engine", "context-sync-engine"],
|
|
58
|
+
},
|
|
59
|
+
"testing-intelligence-engine": {
|
|
60
|
+
name: "Testing Intelligence",
|
|
61
|
+
category: "implementation",
|
|
62
|
+
description: "Determines risk-based testing needs",
|
|
63
|
+
usedBy: ["engineering-intelligence-skill"],
|
|
64
|
+
dependsOn: ["impact-analysis-engine"],
|
|
65
|
+
},
|
|
66
|
+
"knowledge-sync-engine": {
|
|
67
|
+
name: "Knowledge Sync",
|
|
68
|
+
category: "sync",
|
|
69
|
+
description: "Updates knowledge-base documents",
|
|
70
|
+
usedBy: ["incremental-sync-engine"],
|
|
71
|
+
dependsOn: ["impact-analysis-engine"],
|
|
72
|
+
},
|
|
73
|
+
"memory-sync-engine": {
|
|
74
|
+
name: "Memory Sync",
|
|
75
|
+
category: "sync",
|
|
76
|
+
description: "Maintains durable engineering memory",
|
|
77
|
+
usedBy: ["incremental-sync-engine"],
|
|
78
|
+
dependsOn: ["impact-analysis-engine"],
|
|
79
|
+
},
|
|
80
|
+
"context-sync-engine": {
|
|
81
|
+
name: "Context Sync",
|
|
82
|
+
category: "sync",
|
|
83
|
+
description: "Maintains AI navigation context maps",
|
|
84
|
+
usedBy: ["incremental-sync-engine"],
|
|
85
|
+
dependsOn: ["impact-analysis-engine", "graph-engine"],
|
|
86
|
+
},
|
|
87
|
+
"change-history-engine": {
|
|
88
|
+
name: "Change History",
|
|
89
|
+
category: "implementation",
|
|
90
|
+
description: "Records validated engineering work",
|
|
91
|
+
usedBy: ["initialize-intelligence-skill", "engineering-intelligence-skill"],
|
|
92
|
+
dependsOn: ["impact-analysis-engine"],
|
|
93
|
+
},
|
|
94
|
+
"architecture-review-engine": {
|
|
95
|
+
name: "Architecture Review",
|
|
96
|
+
category: "review",
|
|
97
|
+
description: "Reviews architecture quality and health",
|
|
98
|
+
usedBy: ["refactoring-planner"],
|
|
99
|
+
dependsOn: ["graph-engine"],
|
|
100
|
+
},
|
|
101
|
+
"refactoring-planner": {
|
|
102
|
+
name: "Refactoring Planner",
|
|
103
|
+
category: "planning",
|
|
104
|
+
description: "Plans safe, incremental refactoring",
|
|
105
|
+
usedBy: ["engineering-intelligence-skill"],
|
|
106
|
+
dependsOn: ["graph-engine", "architecture-review-engine"],
|
|
107
|
+
},
|
|
108
|
+
"engineering-change-review": {
|
|
109
|
+
name: "Change Review",
|
|
110
|
+
category: "review",
|
|
111
|
+
description: "Reviews changes for quality before completion",
|
|
112
|
+
usedBy: ["engineering-intelligence-skill"],
|
|
113
|
+
dependsOn: ["change-detection-engine"],
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
const CATEGORY_COLORS = {
|
|
117
|
+
initialization: "#6366f1",
|
|
118
|
+
implementation: "#22c55e",
|
|
119
|
+
analysis: "#f59e0b",
|
|
120
|
+
sync: "#06b6d4",
|
|
121
|
+
review: "#ef4444",
|
|
122
|
+
planning: "#a855f7",
|
|
123
|
+
};
|
|
124
|
+
const CATEGORY_LABELS = {
|
|
125
|
+
initialization: "Initialization",
|
|
126
|
+
implementation: "Implementation",
|
|
127
|
+
analysis: "Analysis",
|
|
128
|
+
sync: "Synchronization",
|
|
129
|
+
review: "Review & Validation",
|
|
130
|
+
planning: "Planning",
|
|
131
|
+
};
|
|
132
|
+
const WORKFLOW_CATALOG = [
|
|
133
|
+
{
|
|
134
|
+
name: "initialize-engineering-intelligence",
|
|
135
|
+
type: "read-write",
|
|
136
|
+
description: "Initialize project intelligence baseline",
|
|
137
|
+
steps: [
|
|
138
|
+
{ name: "Discover", skill: "deep-project-knowledge-extractor" },
|
|
139
|
+
{ name: "Extract", skill: "deep-project-knowledge-extractor" },
|
|
140
|
+
{ name: "Validate", skill: "knowledge-base-validator" },
|
|
141
|
+
{ name: "Build Graphs", skill: "graph-engine" },
|
|
142
|
+
{ name: "Record", skill: "change-history-engine" },
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: "engineering-intelligence",
|
|
147
|
+
type: "read-write",
|
|
148
|
+
description: "Full implementation lifecycle",
|
|
149
|
+
steps: [
|
|
150
|
+
{ name: "Detect Change", skill: "change-detection-engine" },
|
|
151
|
+
{ name: "Analyze Impact", skill: "impact-analysis-engine" },
|
|
152
|
+
{ name: "Implement", skill: "engineering-intelligence-skill" },
|
|
153
|
+
{ name: "Test", skill: "testing-intelligence-engine" },
|
|
154
|
+
{ name: "Sync", skill: "incremental-sync-engine" },
|
|
155
|
+
{ name: "Record", skill: "change-history-engine" },
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
name: "map-architecture",
|
|
160
|
+
type: "read-only",
|
|
161
|
+
description: "Build architecture graphs",
|
|
162
|
+
steps: [{ name: "Build Graphs", skill: "graph-engine" }],
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: "analyze-impact",
|
|
166
|
+
type: "read-only",
|
|
167
|
+
description: "Write impact report",
|
|
168
|
+
steps: [
|
|
169
|
+
{ name: "Detect Change", skill: "change-detection-engine" },
|
|
170
|
+
{ name: "Analyze Impact", skill: "impact-analysis-engine" },
|
|
171
|
+
],
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
name: "sync-engineering-intelligence",
|
|
175
|
+
type: "read-only",
|
|
176
|
+
description: "Sync affected intelligence",
|
|
177
|
+
steps: [
|
|
178
|
+
{ name: "Detect Change", skill: "change-detection-engine" },
|
|
179
|
+
{ name: "Analyze Impact", skill: "impact-analysis-engine" },
|
|
180
|
+
{ name: "Sync", skill: "incremental-sync-engine" },
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
name: "review-engineering-change",
|
|
185
|
+
type: "read-only",
|
|
186
|
+
description: "Review changes and write findings",
|
|
187
|
+
steps: [
|
|
188
|
+
{ name: "Detect Change", skill: "change-detection-engine" },
|
|
189
|
+
{ name: "Review", skill: "engineering-change-review" },
|
|
190
|
+
],
|
|
191
|
+
},
|
|
192
|
+
];
|
|
193
|
+
export function generateDashboardHTML() {
|
|
194
|
+
const skillCards = Object.entries(SKILL_CATALOG)
|
|
195
|
+
.map(([id, info]) => {
|
|
196
|
+
const color = CATEGORY_COLORS[info.category] ?? "#888";
|
|
197
|
+
const deps = info.dependsOn.length > 0
|
|
198
|
+
? info.dependsOn.map((d) => `<span class="dep-tag">${SKILL_CATALOG[d]?.name ?? d}</span>`).join("")
|
|
199
|
+
: '<span class="dep-none">None</span>';
|
|
200
|
+
const consumers = info.usedBy.length > 0
|
|
201
|
+
? info.usedBy.map((u) => `<span class="dep-tag">${SKILL_CATALOG[u]?.name ?? u}</span>`).join("")
|
|
202
|
+
: '<span class="dep-none">Standalone</span>';
|
|
203
|
+
return `<div class="skill-card" data-category="${info.category}">
|
|
204
|
+
<div class="skill-header">
|
|
205
|
+
<span class="skill-badge" style="background:${color}">${CATEGORY_LABELS[info.category]}</span>
|
|
206
|
+
<h3>${info.name}</h3>
|
|
207
|
+
</div>
|
|
208
|
+
<p class="skill-desc">${info.description}</p>
|
|
209
|
+
<div class="skill-id"><code>${id}</code></div>
|
|
210
|
+
<div class="skill-deps">
|
|
211
|
+
<div class="dep-row"><span class="dep-label">Depends on:</span>${deps}</div>
|
|
212
|
+
<div class="dep-row"><span class="dep-label">Used by:</span>${consumers}</div>
|
|
213
|
+
</div>
|
|
214
|
+
</div>`;
|
|
215
|
+
})
|
|
216
|
+
.join("\n");
|
|
217
|
+
const workflowCards = WORKFLOW_CATALOG.map((wf) => {
|
|
218
|
+
const steps = wf.steps
|
|
219
|
+
.map((step, i) => {
|
|
220
|
+
const color = CATEGORY_COLORS[SKILL_CATALOG[step.skill]?.category ?? "analysis"] ?? "#888";
|
|
221
|
+
return `<div class="wf-step">
|
|
222
|
+
<div class="step-num">${i + 1}</div>
|
|
223
|
+
<div class="step-body">
|
|
224
|
+
<div class="step-name">${step.name}</div>
|
|
225
|
+
<div class="step-skill" style="color:${color}">${SKILL_CATALOG[step.skill]?.name ?? step.skill}</div>
|
|
226
|
+
</div>
|
|
227
|
+
</div>`;
|
|
228
|
+
})
|
|
229
|
+
.join('<div class="step-arrow">→</div>');
|
|
230
|
+
const typeBadge = wf.type === "read-only"
|
|
231
|
+
? '<span class="wf-badge wf-readonly">Read-Only</span>'
|
|
232
|
+
: '<span class="wf-badge wf-readwrite">Read-Write</span>';
|
|
233
|
+
return `<div class="wf-card">
|
|
234
|
+
<div class="wf-header">
|
|
235
|
+
${typeBadge}
|
|
236
|
+
<h3>${wf.name}</h3>
|
|
237
|
+
<p>${wf.description}</p>
|
|
238
|
+
</div>
|
|
239
|
+
<div class="wf-pipeline">${steps}</div>
|
|
240
|
+
</div>`;
|
|
241
|
+
}).join("\n");
|
|
242
|
+
const agentCards = [
|
|
243
|
+
{ name: "Engineering Orchestrator", role: "Classifies requests, routes work, coordinates agents", skills: "All skills", color: "#6366f1" },
|
|
244
|
+
{ name: "Change Agent", role: "Implements code changes, adds tests, collects evidence", skills: "engineering-intelligence-skill, testing-intelligence-engine", color: "#22c55e" },
|
|
245
|
+
{ name: "Quality Agent", role: "Validates correctness, runs tests, reviews architecture", skills: "engineering-change-review, testing-intelligence-engine", color: "#ef4444" },
|
|
246
|
+
{ name: "Knowledge Agent", role: "Maintains all intelligence artifacts", skills: "All sync engines, graph-engine, change-history-engine", color: "#06b6d4" },
|
|
247
|
+
].map((agent) => `<div class="agent-card">
|
|
248
|
+
<div class="agent-icon" style="background:${agent.color}">${agent.name.charAt(0)}</div>
|
|
249
|
+
<div class="agent-body">
|
|
250
|
+
<h3>${agent.name}</h3>
|
|
251
|
+
<p>${agent.role}</p>
|
|
252
|
+
<div class="agent-skills"><strong>Skills:</strong> ${agent.skills}</div>
|
|
253
|
+
</div>
|
|
254
|
+
</div>`).join("\n");
|
|
255
|
+
const artifactTree = `
|
|
256
|
+
<div class="tree">
|
|
257
|
+
<div class="tree-node root">knowledge-base/<span class="tree-count">16 documents</span></div>
|
|
258
|
+
<div class="tree-node root">.engineering-intelligence/
|
|
259
|
+
<div class="tree-node">memory/<span class="tree-count">5 documents</span></div>
|
|
260
|
+
<div class="tree-node">context/<span class="tree-count">6 maps</span></div>
|
|
261
|
+
<div class="tree-node">events/<span class="tree-count">5 guides</span></div>
|
|
262
|
+
<div class="tree-node">graph/<span class="tree-count">4 JSON + 1 map</span></div>
|
|
263
|
+
<div class="tree-node">reports/<span class="tree-count">IMP-*/REV-* reports</span></div>
|
|
264
|
+
</div>
|
|
265
|
+
<div class="tree-node root">.changes/<span class="tree-count">CHG-* records</span></div>
|
|
266
|
+
</div>`;
|
|
267
|
+
const categoryFilters = Object.entries(CATEGORY_LABELS)
|
|
268
|
+
.map(([id, label]) => `<button class="filter-btn active" data-filter="${id}" style="--btn-color:${CATEGORY_COLORS[id]}">${label}</button>`)
|
|
269
|
+
.join("\n");
|
|
270
|
+
return `<!DOCTYPE html>
|
|
271
|
+
<html lang="en">
|
|
272
|
+
<head>
|
|
273
|
+
<meta charset="UTF-8">
|
|
274
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
275
|
+
<title>Engineering Intelligence — Dashboard</title>
|
|
276
|
+
<style>
|
|
277
|
+
:root {
|
|
278
|
+
--bg: #0a0a0f;
|
|
279
|
+
--surface: #12121a;
|
|
280
|
+
--surface-hover: #1a1a26;
|
|
281
|
+
--border: #2a2a3a;
|
|
282
|
+
--text: #e4e4ef;
|
|
283
|
+
--text-dim: #8888a0;
|
|
284
|
+
--accent: #6366f1;
|
|
285
|
+
--radius: 12px;
|
|
286
|
+
--glass: rgba(18, 18, 26, 0.8);
|
|
287
|
+
}
|
|
288
|
+
* { margin:0; padding:0; box-sizing:border-box; }
|
|
289
|
+
body {
|
|
290
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
291
|
+
background: var(--bg);
|
|
292
|
+
color: var(--text);
|
|
293
|
+
line-height: 1.6;
|
|
294
|
+
min-height: 100vh;
|
|
295
|
+
}
|
|
296
|
+
.container { max-width: 1400px; margin: 0 auto; padding: 2rem; }
|
|
297
|
+
|
|
298
|
+
/* Header */
|
|
299
|
+
.header {
|
|
300
|
+
text-align: center;
|
|
301
|
+
padding: 3rem 0 2rem;
|
|
302
|
+
border-bottom: 1px solid var(--border);
|
|
303
|
+
margin-bottom: 2rem;
|
|
304
|
+
}
|
|
305
|
+
.header h1 {
|
|
306
|
+
font-size: 2.5rem;
|
|
307
|
+
font-weight: 800;
|
|
308
|
+
background: linear-gradient(135deg, #6366f1, #a855f7, #06b6d4);
|
|
309
|
+
-webkit-background-clip: text;
|
|
310
|
+
-webkit-text-fill-color: transparent;
|
|
311
|
+
background-clip: text;
|
|
312
|
+
margin-bottom: 0.5rem;
|
|
313
|
+
}
|
|
314
|
+
.header p { color: var(--text-dim); font-size: 1.1rem; }
|
|
315
|
+
.header .stats {
|
|
316
|
+
display: flex;
|
|
317
|
+
justify-content: center;
|
|
318
|
+
gap: 2rem;
|
|
319
|
+
margin-top: 1.5rem;
|
|
320
|
+
}
|
|
321
|
+
.stat {
|
|
322
|
+
background: var(--surface);
|
|
323
|
+
border: 1px solid var(--border);
|
|
324
|
+
border-radius: var(--radius);
|
|
325
|
+
padding: 1rem 1.5rem;
|
|
326
|
+
text-align: center;
|
|
327
|
+
}
|
|
328
|
+
.stat-num { font-size: 2rem; font-weight: 700; color: var(--accent); }
|
|
329
|
+
.stat-label { font-size: 0.85rem; color: var(--text-dim); }
|
|
330
|
+
|
|
331
|
+
/* Tabs */
|
|
332
|
+
.tabs {
|
|
333
|
+
display: flex;
|
|
334
|
+
gap: 0.5rem;
|
|
335
|
+
margin-bottom: 2rem;
|
|
336
|
+
border-bottom: 1px solid var(--border);
|
|
337
|
+
padding-bottom: 0;
|
|
338
|
+
}
|
|
339
|
+
.tab {
|
|
340
|
+
padding: 0.75rem 1.5rem;
|
|
341
|
+
background: transparent;
|
|
342
|
+
border: none;
|
|
343
|
+
color: var(--text-dim);
|
|
344
|
+
cursor: pointer;
|
|
345
|
+
font-size: 1rem;
|
|
346
|
+
border-bottom: 2px solid transparent;
|
|
347
|
+
transition: all 0.2s;
|
|
348
|
+
}
|
|
349
|
+
.tab:hover { color: var(--text); }
|
|
350
|
+
.tab.active { color: var(--accent); border-bottom-color: var(--accent); }
|
|
351
|
+
.tab-content { display: none; }
|
|
352
|
+
.tab-content.active { display: block; }
|
|
353
|
+
|
|
354
|
+
/* Filter buttons */
|
|
355
|
+
.filters { display: flex; gap: 0.5rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
|
|
356
|
+
.filter-btn {
|
|
357
|
+
padding: 0.4rem 1rem;
|
|
358
|
+
border-radius: 20px;
|
|
359
|
+
border: 1px solid var(--btn-color);
|
|
360
|
+
background: transparent;
|
|
361
|
+
color: var(--btn-color);
|
|
362
|
+
cursor: pointer;
|
|
363
|
+
font-size: 0.85rem;
|
|
364
|
+
transition: all 0.2s;
|
|
365
|
+
}
|
|
366
|
+
.filter-btn.active { background: var(--btn-color); color: white; }
|
|
367
|
+
.filter-btn:hover { opacity: 0.8; }
|
|
368
|
+
|
|
369
|
+
/* Skill cards */
|
|
370
|
+
.skill-grid {
|
|
371
|
+
display: grid;
|
|
372
|
+
grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
|
|
373
|
+
gap: 1rem;
|
|
374
|
+
}
|
|
375
|
+
.skill-card {
|
|
376
|
+
background: var(--surface);
|
|
377
|
+
border: 1px solid var(--border);
|
|
378
|
+
border-radius: var(--radius);
|
|
379
|
+
padding: 1.25rem;
|
|
380
|
+
transition: all 0.2s;
|
|
381
|
+
}
|
|
382
|
+
.skill-card:hover { background: var(--surface-hover); border-color: var(--accent); transform: translateY(-2px); }
|
|
383
|
+
.skill-card.hidden { display: none; }
|
|
384
|
+
.skill-header { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.5rem; }
|
|
385
|
+
.skill-badge {
|
|
386
|
+
padding: 0.2rem 0.6rem;
|
|
387
|
+
border-radius: 6px;
|
|
388
|
+
font-size: 0.7rem;
|
|
389
|
+
font-weight: 600;
|
|
390
|
+
color: white;
|
|
391
|
+
text-transform: uppercase;
|
|
392
|
+
letter-spacing: 0.05em;
|
|
393
|
+
white-space: nowrap;
|
|
394
|
+
}
|
|
395
|
+
.skill-header h3 { font-size: 1.1rem; }
|
|
396
|
+
.skill-desc { color: var(--text-dim); font-size: 0.9rem; margin-bottom: 0.75rem; }
|
|
397
|
+
.skill-id { margin-bottom: 0.75rem; }
|
|
398
|
+
.skill-id code { background: var(--bg); padding: 0.2rem 0.5rem; border-radius: 4px; font-size: 0.8rem; color: var(--accent); }
|
|
399
|
+
.skill-deps { font-size: 0.85rem; }
|
|
400
|
+
.dep-row { margin-bottom: 0.4rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem; }
|
|
401
|
+
.dep-label { color: var(--text-dim); font-weight: 500; margin-right: 0.3rem; }
|
|
402
|
+
.dep-tag { background: var(--bg); padding: 0.15rem 0.5rem; border-radius: 4px; font-size: 0.75rem; }
|
|
403
|
+
.dep-none { color: var(--text-dim); font-size: 0.75rem; font-style: italic; }
|
|
404
|
+
|
|
405
|
+
/* Workflow cards */
|
|
406
|
+
.wf-grid { display: flex; flex-direction: column; gap: 1.5rem; }
|
|
407
|
+
.wf-card {
|
|
408
|
+
background: var(--surface);
|
|
409
|
+
border: 1px solid var(--border);
|
|
410
|
+
border-radius: var(--radius);
|
|
411
|
+
padding: 1.5rem;
|
|
412
|
+
transition: border-color 0.2s;
|
|
413
|
+
}
|
|
414
|
+
.wf-card:hover { border-color: var(--accent); }
|
|
415
|
+
.wf-header { margin-bottom: 1rem; }
|
|
416
|
+
.wf-header h3 { font-size: 1.1rem; margin-bottom: 0.25rem; }
|
|
417
|
+
.wf-header p { color: var(--text-dim); font-size: 0.9rem; }
|
|
418
|
+
.wf-badge {
|
|
419
|
+
display: inline-block;
|
|
420
|
+
padding: 0.2rem 0.6rem;
|
|
421
|
+
border-radius: 6px;
|
|
422
|
+
font-size: 0.7rem;
|
|
423
|
+
font-weight: 600;
|
|
424
|
+
text-transform: uppercase;
|
|
425
|
+
margin-bottom: 0.5rem;
|
|
426
|
+
}
|
|
427
|
+
.wf-readonly { background: #1e3a5f; color: #60a5fa; }
|
|
428
|
+
.wf-readwrite { background: #1a3d2a; color: #4ade80; }
|
|
429
|
+
.wf-pipeline {
|
|
430
|
+
display: flex;
|
|
431
|
+
align-items: center;
|
|
432
|
+
gap: 0.5rem;
|
|
433
|
+
overflow-x: auto;
|
|
434
|
+
padding: 0.5rem 0;
|
|
435
|
+
}
|
|
436
|
+
.wf-step {
|
|
437
|
+
display: flex;
|
|
438
|
+
align-items: center;
|
|
439
|
+
gap: 0.5rem;
|
|
440
|
+
background: var(--bg);
|
|
441
|
+
padding: 0.75rem 1rem;
|
|
442
|
+
border-radius: 8px;
|
|
443
|
+
min-width: fit-content;
|
|
444
|
+
}
|
|
445
|
+
.step-num {
|
|
446
|
+
width: 24px;
|
|
447
|
+
height: 24px;
|
|
448
|
+
border-radius: 50%;
|
|
449
|
+
background: var(--accent);
|
|
450
|
+
color: white;
|
|
451
|
+
display: flex;
|
|
452
|
+
align-items: center;
|
|
453
|
+
justify-content: center;
|
|
454
|
+
font-size: 0.75rem;
|
|
455
|
+
font-weight: 700;
|
|
456
|
+
flex-shrink: 0;
|
|
457
|
+
}
|
|
458
|
+
.step-name { font-size: 0.85rem; font-weight: 600; }
|
|
459
|
+
.step-skill { font-size: 0.75rem; }
|
|
460
|
+
.step-arrow { color: var(--text-dim); font-size: 1.2rem; flex-shrink: 0; }
|
|
461
|
+
|
|
462
|
+
/* Agent cards */
|
|
463
|
+
.agent-grid {
|
|
464
|
+
display: grid;
|
|
465
|
+
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
|
466
|
+
gap: 1rem;
|
|
467
|
+
}
|
|
468
|
+
.agent-card {
|
|
469
|
+
background: var(--surface);
|
|
470
|
+
border: 1px solid var(--border);
|
|
471
|
+
border-radius: var(--radius);
|
|
472
|
+
padding: 1.25rem;
|
|
473
|
+
display: flex;
|
|
474
|
+
gap: 1rem;
|
|
475
|
+
transition: all 0.2s;
|
|
476
|
+
}
|
|
477
|
+
.agent-card:hover { border-color: var(--accent); transform: translateY(-2px); }
|
|
478
|
+
.agent-icon {
|
|
479
|
+
width: 48px;
|
|
480
|
+
height: 48px;
|
|
481
|
+
border-radius: 12px;
|
|
482
|
+
display: flex;
|
|
483
|
+
align-items: center;
|
|
484
|
+
justify-content: center;
|
|
485
|
+
font-size: 1.4rem;
|
|
486
|
+
font-weight: 700;
|
|
487
|
+
color: white;
|
|
488
|
+
flex-shrink: 0;
|
|
489
|
+
}
|
|
490
|
+
.agent-body h3 { font-size: 1rem; margin-bottom: 0.25rem; }
|
|
491
|
+
.agent-body p { color: var(--text-dim); font-size: 0.85rem; margin-bottom: 0.5rem; }
|
|
492
|
+
.agent-skills { font-size: 0.8rem; color: var(--text-dim); }
|
|
493
|
+
|
|
494
|
+
/* Artifact tree */
|
|
495
|
+
.tree { padding: 1rem; }
|
|
496
|
+
.tree-node {
|
|
497
|
+
padding: 0.5rem 0 0.5rem 1.5rem;
|
|
498
|
+
border-left: 2px solid var(--border);
|
|
499
|
+
position: relative;
|
|
500
|
+
font-family: 'JetBrains Mono', 'Fira Code', monospace;
|
|
501
|
+
font-size: 0.9rem;
|
|
502
|
+
}
|
|
503
|
+
.tree-node::before {
|
|
504
|
+
content: '';
|
|
505
|
+
position: absolute;
|
|
506
|
+
left: -2px;
|
|
507
|
+
top: 50%;
|
|
508
|
+
width: 12px;
|
|
509
|
+
height: 2px;
|
|
510
|
+
background: var(--border);
|
|
511
|
+
}
|
|
512
|
+
.tree-node.root {
|
|
513
|
+
border-left: none;
|
|
514
|
+
padding-left: 0;
|
|
515
|
+
font-weight: 600;
|
|
516
|
+
color: var(--accent);
|
|
517
|
+
margin-top: 0.75rem;
|
|
518
|
+
}
|
|
519
|
+
.tree-node.root::before { display: none; }
|
|
520
|
+
.tree-count {
|
|
521
|
+
color: var(--text-dim);
|
|
522
|
+
font-weight: 400;
|
|
523
|
+
font-size: 0.8rem;
|
|
524
|
+
margin-left: 0.5rem;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
/* Responsive */
|
|
528
|
+
@media (max-width: 768px) {
|
|
529
|
+
.header h1 { font-size: 1.8rem; }
|
|
530
|
+
.header .stats { flex-wrap: wrap; }
|
|
531
|
+
.skill-grid { grid-template-columns: 1fr; }
|
|
532
|
+
.agent-grid { grid-template-columns: 1fr; }
|
|
533
|
+
.wf-pipeline { flex-wrap: wrap; }
|
|
534
|
+
}
|
|
535
|
+
</style>
|
|
536
|
+
</head>
|
|
537
|
+
<body>
|
|
538
|
+
<div class="container">
|
|
539
|
+
<div class="header">
|
|
540
|
+
<h1>Engineering Intelligence OS</h1>
|
|
541
|
+
<p>Graph-backed engineering intelligence toolkit</p>
|
|
542
|
+
<div class="stats">
|
|
543
|
+
<div class="stat"><div class="stat-num">${SKILL_NAMES.length}</div><div class="stat-label">Skills</div></div>
|
|
544
|
+
<div class="stat"><div class="stat-num">${AGENT_NAMES.length}</div><div class="stat-label">Agents</div></div>
|
|
545
|
+
<div class="stat"><div class="stat-num">${WORKFLOW_NAMES.length}</div><div class="stat-label">Workflows</div></div>
|
|
546
|
+
<div class="stat"><div class="stat-num">37+</div><div class="stat-label">Artifacts</div></div>
|
|
547
|
+
</div>
|
|
548
|
+
</div>
|
|
549
|
+
|
|
550
|
+
<div class="tabs">
|
|
551
|
+
<button class="tab active" data-tab="skills">Skills</button>
|
|
552
|
+
<button class="tab" data-tab="workflows">Workflows</button>
|
|
553
|
+
<button class="tab" data-tab="agents">Agents</button>
|
|
554
|
+
<button class="tab" data-tab="artifacts">Artifacts</button>
|
|
555
|
+
</div>
|
|
556
|
+
|
|
557
|
+
<div class="tab-content active" id="skills">
|
|
558
|
+
<div class="filters">${categoryFilters}</div>
|
|
559
|
+
<div class="skill-grid">${skillCards}</div>
|
|
560
|
+
</div>
|
|
561
|
+
|
|
562
|
+
<div class="tab-content" id="workflows">
|
|
563
|
+
<div class="wf-grid">${workflowCards}</div>
|
|
564
|
+
</div>
|
|
565
|
+
|
|
566
|
+
<div class="tab-content" id="agents">
|
|
567
|
+
<div class="agent-grid">${agentCards}</div>
|
|
568
|
+
</div>
|
|
569
|
+
|
|
570
|
+
<div class="tab-content" id="artifacts">
|
|
571
|
+
<h2 style="margin-bottom:1rem;">Generated Artifact Structure</h2>
|
|
572
|
+
<p style="color:var(--text-dim);margin-bottom:1rem;">These artifacts are generated and maintained by the AI IDE agent after installation.</p>
|
|
573
|
+
${artifactTree}
|
|
574
|
+
</div>
|
|
575
|
+
</div>
|
|
576
|
+
|
|
577
|
+
<script>
|
|
578
|
+
document.querySelectorAll('.tab').forEach(tab => {
|
|
579
|
+
tab.addEventListener('click', () => {
|
|
580
|
+
document.querySelectorAll('.tab').forEach(t => t.classList.remove('active'));
|
|
581
|
+
document.querySelectorAll('.tab-content').forEach(c => c.classList.remove('active'));
|
|
582
|
+
tab.classList.add('active');
|
|
583
|
+
document.getElementById(tab.dataset.tab).classList.add('active');
|
|
584
|
+
});
|
|
585
|
+
});
|
|
586
|
+
document.querySelectorAll('.filter-btn').forEach(btn => {
|
|
587
|
+
btn.addEventListener('click', () => {
|
|
588
|
+
btn.classList.toggle('active');
|
|
589
|
+
const active = [...document.querySelectorAll('.filter-btn.active')].map(b => b.dataset.filter);
|
|
590
|
+
document.querySelectorAll('.skill-card').forEach(card => {
|
|
591
|
+
card.classList.toggle('hidden', !active.includes(card.dataset.category));
|
|
592
|
+
});
|
|
593
|
+
});
|
|
594
|
+
});
|
|
595
|
+
</script>
|
|
596
|
+
</body>
|
|
597
|
+
</html>`;
|
|
598
|
+
}
|
|
599
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/visualizer/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "engineering-intelligence",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Install graph-backed engineering intelligence skills, agents, and workflows for AI coding IDEs.",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Install and visualize graph-backed engineering intelligence skills, agents, and workflows for AI coding IDEs.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"engineering-intelligence": "./dist/cli/index.js"
|
|
@@ -5,4 +5,61 @@ description: Implements scoped engineering changes after impact analysis and pro
|
|
|
5
5
|
|
|
6
6
|
# Change Agent
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Responsible for the implementation phase of engineering work. Receives a validated impact report and produces code changes with evidence for downstream quality and knowledge agents.
|
|
9
|
+
|
|
10
|
+
## Responsibilities
|
|
11
|
+
|
|
12
|
+
1. **Read context** — Consume the impact report, relevant intelligence, and graph artifacts
|
|
13
|
+
2. **Implement changes** — Edit only the files necessary for the request
|
|
14
|
+
3. **Add tests** — Write tests proportional to risk level
|
|
15
|
+
4. **Collect evidence** — Document exactly what changed, what was tested, and what needs attention
|
|
16
|
+
|
|
17
|
+
## Implementation Checklist
|
|
18
|
+
|
|
19
|
+
Before writing code:
|
|
20
|
+
- [ ] Impact report exists and has been read
|
|
21
|
+
- [ ] Relevant knowledge-base docs reviewed
|
|
22
|
+
- [ ] Architecture decisions and coding patterns from memory consulted
|
|
23
|
+
- [ ] Dangerous areas near the change identified
|
|
24
|
+
|
|
25
|
+
During implementation:
|
|
26
|
+
- [ ] Only necessary files are modified
|
|
27
|
+
- [ ] Existing patterns and conventions are followed
|
|
28
|
+
- [ ] Error handling is appropriate
|
|
29
|
+
- [ ] New code is at the correct abstraction level
|
|
30
|
+
|
|
31
|
+
After implementation:
|
|
32
|
+
- [ ] Tests added for new/changed behavior
|
|
33
|
+
- [ ] Tests executed and results recorded
|
|
34
|
+
- [ ] List of changed files and areas prepared
|
|
35
|
+
|
|
36
|
+
## Evidence Collection
|
|
37
|
+
|
|
38
|
+
Prepare this handoff for the Quality Agent and Knowledge Agent:
|
|
39
|
+
|
|
40
|
+
```markdown
|
|
41
|
+
## Change Evidence
|
|
42
|
+
|
|
43
|
+
### Files Changed
|
|
44
|
+
| File | Action | Description |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
|
|
47
|
+
### Tests
|
|
48
|
+
| Test | Result | Coverage |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
|
|
51
|
+
### Areas Requiring Attention
|
|
52
|
+
- <fragile changes, untested paths, uncertainty>
|
|
53
|
+
|
|
54
|
+
### Validation Commands Run
|
|
55
|
+
| Command | Result |
|
|
56
|
+
|---|---|
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Rules
|
|
60
|
+
|
|
61
|
+
- Never implement without an impact report
|
|
62
|
+
- Follow existing patterns from `.engineering-intelligence/memory/coding-patterns.md`
|
|
63
|
+
- Test proportionally — more tests for higher risk
|
|
64
|
+
- Record honest results — failures are valuable information
|
|
65
|
+
- Return concrete change evidence, not vague summaries
|