You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: "How much you leverage AI/automation for large-scale changes",
26
+
description: "How much you rely on AI agents and tools for generating code",
27
27
longDescription:
28
-
'How "agentic" your workflow looks, driven by large commits and chunky PRs. Higher scores indicate more automation-heavy changes.',
28
+
"How much of your output comes from AI-assisted generation versus manual edits. Higher scores indicate more agent-driven, multi-file changes.",
29
29
lowLabel: "Manual",
30
30
highLabel: "AI-Heavy",
31
31
},
32
32
guardrail_strength: {
33
33
name: "Guardrails",
34
34
shortName: "Guard",
35
-
description: "How early and consistently tests/CI/docs appear in your workflow",
35
+
description: "How closely tests, CI, and docs follow your AI-generated changes",
36
36
longDescription:
37
-
"How much you stabilize work with tests, CI, and docs early in the lifecycle. Higher scores mean guardrails appear sooner and more consistently.",
37
+
"How quickly guardrails appear after AI-generated code lands. Higher scores mean tests, CI, and docs show up alongside or right after the AI output.",
38
38
lowLabel: "Light",
39
39
highLabel: "Rigorous",
40
40
},
41
41
iteration_loop_intensity: {
42
42
name: "Iteration",
43
43
shortName: "Iter",
44
-
description: "How quickly you cycle through fix-forward loops after changes",
44
+
description: "How often you run prompt-fix-run loops to refine AI output",
45
45
longDescription:
46
-
'How often you run rapid "generate → run → fix → run" cycles. Higher scores mean faster, denser iteration loops.',
46
+
'How often you cycle through "prompt → run → fix → run" loops after AI-generated changes. Higher scores mean faster, denser iteration.',
47
47
lowLabel: "Stable",
48
48
highLabel: "Rapid",
49
49
},
50
50
planning_signal: {
51
51
name: "Planning",
52
52
shortName: "Plan",
53
-
description: "How much upfront structure (issues, specs, docs-first) appears",
53
+
description: "How much structure you define before prompting AI to generate code",
54
54
longDescription:
55
-
"How much intent and structure appear up front: linked issues, structured commits, and docs-first patterns. Higher scores indicate more planning.",
55
+
"How much upfront structure shapes your AI workflow: specs, linked issues, and docs-first patterns. Higher scores mean prompts follow plans, not the other way around.",
56
56
lowLabel: "Emergent",
57
57
highLabel: "Structured",
58
58
},
59
59
surface_area_per_change: {
60
60
name: "Surface Area",
61
61
shortName: "Scope",
62
-
description: "How many subsystems your typical change touches",
62
+
description: "How many parts of the codebase your typical prompt or change touches",
63
63
longDescription:
64
-
"How broad each unit of work is across subsystems. Higher scores mean typical changes span more areas of the codebase.",
64
+
"How broad each unit of work is across the codebase. Higher scores mean your prompts and changes span multiple subsystems at once.",
65
65
lowLabel: "Narrow",
66
66
highLabel: "Wide",
67
67
},
68
68
shipping_rhythm: {
69
69
name: "Rhythm",
70
70
shortName: "Rhythm",
71
-
description: "Your shipping pattern — steady vs bursty",
"Bursty versus steady shipping over time. Higher scores indicate bursty sessions with gaps; lower scores indicate a steadier cadence.",
73
+
"How your coding sessions are distributed over time. Higher scores indicate intense vibe coding sessions followed by quiet stretches; lower scores indicate a steadier cadence.",
Copy file name to clipboardExpand all lines: apps/web/src/inngest/functions/analyze-repo.ts
+17-15Lines changed: 17 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -65,13 +65,13 @@ export function toNarrativeFallback(params: {
65
65
summary: `Analyzed ${metrics.total_commits} commits over ${metrics.active_days} active days.`,
66
66
sections: [
67
67
{
68
-
title: "Build rhythm",
69
-
content: `Median gap between commits: ${metrics.hours_between_commits_p50.toFixed(1)}h. Burstiness score: ${metrics.burstiness_score.toFixed(2)}.`,
68
+
title: "Coding session rhythm",
69
+
content: `Median gap between commits: ${metrics.hours_between_commits_p50.toFixed(1)}h. Session intensity (burstiness): ${metrics.burstiness_score.toFixed(2)}.`,
"NOT product-specific like 'Admin Portal Development' or 'Feature Implementation'",
234
235
"",
235
236
"CONTENT RULES:",
236
237
"- Never infer intent, skill, or code quality. Avoid speculation and motivational language.",
237
238
"- Every claim must cite at least one specific metric name and value (e.g. burstiness_score=0.42).",
238
239
"- Each section must include evidence: 2-6 commit SHAs that support the section.",
239
-
"- Provide a concise tagline (<=60 characters) that describes the developer's vibe. This will be displayed on the share card and must remain observational.",
240
+
"- Provide a concise tagline (<=60 characters) that describes the developer's vibe coding style. This will be displayed on the share card and must remain observational.",
@@ -295,7 +297,7 @@ export async function generateNarrativeWithLLM(params: {
295
297
"Commit lines (oldest→newest, compact):",
296
298
...commitLines,
297
299
"",
298
-
"Produce a concise narrative about the SOFTWARE ENGINEERING PATTERNS observed: development phases, iteration loops, stabilization patterns, testing rhythm. Do NOT describe what was built - only HOW it was built from an engineering perspective. Prefer 4-6 sections.",
300
+
"Produce a concise narrative about the AI-ASSISTED CODING PATTERNS observed: prompt-iterate loops, agentic vs manual phases, session rhythm, guardrail timing, and scope of changes. Do NOT describe what was built - only HOW it was built and how AI tools shaped the workflow. Prefer 4-6 sections.",
Copy file name to clipboardExpand all lines: apps/web/src/lib/profile-narrative.ts
+20-18Lines changed: 20 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -75,20 +75,20 @@ export function toProfileNarrativeFallback(params: {
75
75
.join(", ");
76
76
77
77
return{
78
-
summary: `Across ${totalRepos} repositories and ${totalCommits} commits, you demonstrate a ${persona.name}coding style with ${persona.confidence} confidence.`,
78
+
summary: `Across ${totalRepos} repositories and ${totalCommits} commits, your AI-assisted coding workflow maps to the ${persona.name}persona with ${persona.confidence} confidence.`,
79
79
sections: [
80
80
{
81
-
title: "Your Coding Identity",
82
-
content: `Your aggregated profile shows you as a ${persona.name}. ${persona.tagline}. This pattern emerges consistently across your analyzed repositories.`,
81
+
title: "Vibe Coding Identity",
82
+
content: `Your aggregated profile identifies you as a ${persona.name}. ${persona.tagline}. This pattern emerges consistently across your analyzed repositories.`,
83
83
},
84
84
{
85
-
title: "Dominant Trait",
86
-
content: `Your strongest characteristic is ${dominantAxis[0].replace(/_/g," ")} with a score of ${dominantAxis[1].score}/100. ${dominantAxis[1].why[0]??""}`,
85
+
title: "Strongest Signal",
86
+
content: `Your most pronounced trait is ${dominantAxis[0].replace(/_/g," ")} with a score of ${dominantAxis[1].score}/100. ${dominantAxis[1].why[0]??""}`,
87
87
},
88
88
{
89
89
title: "Repository Breakdown",
90
90
content: repoSummary
91
-
? `Your style varies across projects: ${repoSummary}${repoBreakdown.length>3 ? ` and ${repoBreakdown.length-3} more` : ""}.`
91
+
? `Your vibe coding style varies across projects: ${repoSummary}${repoBreakdown.length>3 ? ` and ${repoBreakdown.length-3} more` : ""}.`
92
92
: "No repository breakdown available.",
93
93
},
94
94
],
@@ -124,27 +124,29 @@ export async function generateProfileNarrativeWithLLM(params: {
124
124
const{ provider, apiKey, model, profile }=params;
125
125
126
126
constsystemPrompt=[
127
-
"You write a personalized narrative about a developer's SOFTWARE ENGINEERING PATTERNS based on their aggregated profile data.",
128
-
"The profile is computed from multiple repository analyses and represents their overall coding identity.",
127
+
"You write a personalized narrative about a developer's AI-ASSISTED CODING WORKFLOW based on their aggregated vibe coding profile.",
128
+
"The profile measures how developers work with AI coding tools (Claude, Copilot, Cursor, etc.) across multiple repositories.",
129
129
"",
130
130
"PRIVACY RULES (CRITICAL - VIOLATION MEANS FAILURE):",
131
131
"- NEVER mention project names, product names, or repository names",
132
132
"- NEVER infer or mention what products, apps, or features the developer builds",
133
133
"- NEVER reference business domains, industries, or product categories",
134
134
"- Repository identifiers (Repo1, Repo2, etc.) are anonymized - do not try to interpret them",
135
-
"- Focus ONLY on: development rhythm, iteration patterns, testing approach, code organization, shipping cadence",
135
+
"- Focus ONLY on: AI-assisted workflow patterns, prompt-iterate loops, guardrail habits, session rhythm",
136
136
"",
137
137
"ALLOWED TOPICS:",
138
-
"- How they iterate (small vs large commits, batch vs continuous)",
139
-
"- Testing rhythm (when tests appear, test coverage patterns)",
0 commit comments