prr-kit 1.1.3 → 1.2.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/LICENSE +1 -1
- package/README.md +260 -235
- package/docs/assets/banner.svg +30 -248
- package/docs/assets/how-it-works.svg +87 -0
- package/package.json +60 -60
- package/src/core/agents/prr-master.agent.yaml +18 -7
- package/src/core/tasks/clear.md +140 -0
- package/src/core/tasks/help.md +15 -13
- package/src/core/workflows/clear/workflow.md +6 -0
- package/src/core/workflows/help/workflow.md +6 -0
- package/src/core/workflows/party-mode/steps/step-01-load-reviewers.md +35 -24
- package/src/core/workflows/party-mode/steps/step-02-discussion.md +45 -25
- package/src/core/workflows/party-mode/workflow.md +2 -2
- package/src/prr/agents/architecture-reviewer.agent.yaml +65 -45
- package/src/prr/agents/business-reviewer.agent.yaml +66 -0
- package/src/prr/agents/general-reviewer.agent.yaml +64 -48
- package/src/prr/agents/performance-reviewer.agent.yaml +65 -45
- package/src/prr/agents/security-reviewer.agent.yaml +67 -43
- package/src/prr/config-template.yaml +97 -0
- package/src/prr/data/stacks/actix.md +55 -0
- package/src/prr/data/stacks/alpine.md +47 -0
- package/src/prr/data/stacks/android.md +53 -0
- package/src/prr/data/stacks/angular.md +96 -0
- package/src/prr/data/stacks/ansible.md +55 -0
- package/src/prr/data/stacks/apollo.md +54 -0
- package/src/prr/data/stacks/astro.md +48 -0
- package/src/prr/data/stacks/aws-cdk.md +55 -0
- package/src/prr/data/stacks/axum.md +56 -0
- package/src/prr/data/stacks/babylonjs.md +55 -0
- package/src/prr/data/stacks/bash.md +53 -0
- package/src/prr/data/stacks/bevy.md +53 -0
- package/src/prr/data/stacks/bootstrap.md +52 -0
- package/src/prr/data/stacks/bun.md +55 -0
- package/src/prr/data/stacks/cpp.md +57 -0
- package/src/prr/data/stacks/csharp.md +95 -0
- package/src/prr/data/stacks/css.md +55 -0
- package/src/prr/data/stacks/cypress.md +53 -0
- package/src/prr/data/stacks/d3.md +53 -0
- package/src/prr/data/stacks/deno.md +49 -0
- package/src/prr/data/stacks/django.md +92 -0
- package/src/prr/data/stacks/docker.md +79 -0
- package/src/prr/data/stacks/drizzle.md +54 -0
- package/src/prr/data/stacks/dynamodb.md +55 -0
- package/src/prr/data/stacks/electron.md +44 -0
- package/src/prr/data/stacks/elixir.md +53 -0
- package/src/prr/data/stacks/expo.md +53 -0
- package/src/prr/data/stacks/expressjs.md +82 -0
- package/src/prr/data/stacks/fastapi.md +88 -0
- package/src/prr/data/stacks/fastify.md +60 -0
- package/src/prr/data/stacks/fiber.md +55 -0
- package/src/prr/data/stacks/firebase.md +43 -0
- package/src/prr/data/stacks/flask.md +46 -0
- package/src/prr/data/stacks/flutter.md +75 -0
- package/src/prr/data/stacks/gin.md +57 -0
- package/src/prr/data/stacks/github-actions.md +71 -0
- package/src/prr/data/stacks/go.md +88 -0
- package/src/prr/data/stacks/godot.md +56 -0
- package/src/prr/data/stacks/graphql.md +76 -0
- package/src/prr/data/stacks/grpc.md +56 -0
- package/src/prr/data/stacks/haskell.md +48 -0
- package/src/prr/data/stacks/helm.md +54 -0
- package/src/prr/data/stacks/hono.md +54 -0
- package/src/prr/data/stacks/htmx.md +38 -0
- package/src/prr/data/stacks/java.md +87 -0
- package/src/prr/data/stacks/jest-vitest.md +87 -0
- package/src/prr/data/stacks/jquery.md +50 -0
- package/src/prr/data/stacks/junit.md +53 -0
- package/src/prr/data/stacks/kotlin.md +89 -0
- package/src/prr/data/stacks/kubernetes.md +148 -0
- package/src/prr/data/stacks/langchain.md +56 -0
- package/src/prr/data/stacks/laravel.md +56 -0
- package/src/prr/data/stacks/libgdx.md +46 -0
- package/src/prr/data/stacks/lit.md +49 -0
- package/src/prr/data/stacks/love2d.md +51 -0
- package/src/prr/data/stacks/lua.md +51 -0
- package/src/prr/data/stacks/mobx.md +54 -0
- package/src/prr/data/stacks/mongodb.md +85 -0
- package/src/prr/data/stacks/monogame.md +51 -0
- package/src/prr/data/stacks/mysql.md +57 -0
- package/src/prr/data/stacks/nestjs.md +95 -0
- package/src/prr/data/stacks/nextjs.md +88 -0
- package/src/prr/data/stacks/nginx.md +55 -0
- package/src/prr/data/stacks/node.md +56 -0
- package/src/prr/data/stacks/nuxtjs.md +91 -0
- package/src/prr/data/stacks/openai-api.md +54 -0
- package/src/prr/data/stacks/opengl.md +54 -0
- package/src/prr/data/stacks/phaser.md +54 -0
- package/src/prr/data/stacks/phoenix.md +55 -0
- package/src/prr/data/stacks/php.md +56 -0
- package/src/prr/data/stacks/playwright.md +86 -0
- package/src/prr/data/stacks/postgresql.md +60 -0
- package/src/prr/data/stacks/prisma.md +81 -0
- package/src/prr/data/stacks/pygame.md +52 -0
- package/src/prr/data/stacks/pytest.md +53 -0
- package/src/prr/data/stacks/python.md +94 -0
- package/src/prr/data/stacks/pytorch.md +54 -0
- package/src/prr/data/stacks/qwik.md +50 -0
- package/src/prr/data/stacks/rails.md +48 -0
- package/src/prr/data/stacks/react-native.md +77 -0
- package/src/prr/data/stacks/react.md +104 -0
- package/src/prr/data/stacks/redis.md +76 -0
- package/src/prr/data/stacks/redux.md +107 -0
- package/src/prr/data/stacks/remix.md +51 -0
- package/src/prr/data/stacks/rust.md +88 -0
- package/src/prr/data/stacks/sass.md +51 -0
- package/src/prr/data/stacks/scala.md +50 -0
- package/src/prr/data/stacks/scikit-learn.md +53 -0
- package/src/prr/data/stacks/sequelize.md +54 -0
- package/src/prr/data/stacks/socket-io.md +54 -0
- package/src/prr/data/stacks/solidity.md +53 -0
- package/src/prr/data/stacks/solidjs.md +45 -0
- package/src/prr/data/stacks/spring-boot.md +92 -0
- package/src/prr/data/stacks/sql.md +85 -0
- package/src/prr/data/stacks/sqlite.md +55 -0
- package/src/prr/data/stacks/styled-components.md +51 -0
- package/src/prr/data/stacks/supabase.md +57 -0
- package/src/prr/data/stacks/svelte.md +77 -0
- package/src/prr/data/stacks/sveltekit.md +54 -0
- package/src/prr/data/stacks/swift.md +61 -0
- package/src/prr/data/stacks/tailwindcss.md +10 -0
- package/src/prr/data/stacks/tanstack-query.md +48 -0
- package/src/prr/data/stacks/tauri.md +52 -0
- package/src/prr/data/stacks/terraform.md +53 -0
- package/src/prr/data/stacks/three.md +53 -0
- package/src/prr/data/stacks/trpc.md +49 -0
- package/src/prr/data/stacks/typeorm.md +40 -0
- package/src/prr/data/stacks/typescript.md +83 -0
- package/src/prr/data/stacks/unity.md +61 -0
- package/src/prr/data/stacks/unreal.md +58 -0
- package/src/prr/data/stacks/vite.md +48 -0
- package/src/prr/data/stacks/vue3.md +95 -0
- package/src/prr/data/stacks/vulkan.md +53 -0
- package/src/prr/data/stacks/wasm.md +49 -0
- package/src/prr/data/stacks/webpack.md +48 -0
- package/src/prr/data/stacks/zig.md +51 -0
- package/src/prr/data/stacks/zustand.md +56 -0
- package/src/prr/workflows/1-discover/select-pr/steps/step-05-confirm.md +1 -0
- package/src/prr/workflows/1-discover/select-pr/workflow.md +1 -1
- package/src/prr/workflows/2-analyze/collect-pr-context/steps/step-01-analyze-files.md +334 -0
- package/src/prr/workflows/2-analyze/collect-pr-context/steps/step-02-collect-sources.md +451 -0
- package/src/prr/workflows/2-analyze/collect-pr-context/steps/step-03-build-knowledge-base.md +337 -0
- package/src/prr/workflows/2-analyze/collect-pr-context/workflow.md +123 -0
- package/src/prr/workflows/2-analyze/describe-pr/steps/step-02-classify.md +12 -6
- package/src/prr/workflows/2-analyze/describe-pr/steps/step-03-walkthrough.md +59 -1
- package/src/prr/workflows/3-review/architecture-review/checklist.md +4 -0
- package/src/prr/workflows/3-review/architecture-review/instructions.xml +32 -4
- package/src/prr/workflows/3-review/architecture-review/workflow.yaml +17 -18
- package/src/prr/workflows/3-review/business-review/checklist.md +27 -0
- package/src/prr/workflows/3-review/business-review/instructions.xml +153 -0
- package/src/prr/workflows/3-review/business-review/workflow.yaml +17 -0
- package/src/prr/workflows/3-review/general-review/checklist.md +5 -1
- package/src/prr/workflows/3-review/general-review/instructions.xml +39 -8
- package/src/prr/workflows/3-review/general-review/workflow.yaml +17 -18
- package/src/prr/workflows/3-review/performance-review/checklist.md +3 -1
- package/src/prr/workflows/3-review/performance-review/instructions.xml +10 -3
- package/src/prr/workflows/3-review/performance-review/workflow.yaml +17 -18
- package/src/prr/workflows/3-review/security-review/checklist.md +2 -1
- package/src/prr/workflows/3-review/security-review/instructions.xml +8 -3
- package/src/prr/workflows/3-review/security-review/workflow.yaml +18 -19
- package/src/prr/workflows/4-improve/improve-code/workflow.yaml +17 -18
- package/src/prr/workflows/6-report/generate-report/steps/step-01-collect.md +9 -2
- package/src/prr/workflows/6-report/generate-report/steps/step-02-organize.md +28 -7
- package/src/prr/workflows/6-report/generate-report/steps/step-03-write.md +6 -4
- package/src/prr/workflows/6-report/generate-report/templates/review-report.template.md +124 -78
- package/src/prr/workflows/6-report/post-comments/steps/step-01-format.md +104 -13
- package/src/prr/workflows/6-report/post-comments/steps/step-02-post.md +92 -21
- package/src/prr/workflows/6-report/post-comments/workflow.md +6 -0
- package/src/prr/workflows/quick/workflow.md +138 -32
- package/src/prr/workflows/0-setup/collect-project-context/steps/step-01-scan-configs.md +0 -106
- package/src/prr/workflows/0-setup/collect-project-context/steps/step-02-extract-rules.md +0 -131
- package/src/prr/workflows/0-setup/collect-project-context/steps/step-03-ask-context.md +0 -194
- package/src/prr/workflows/0-setup/collect-project-context/steps/step-04-save-context.md +0 -161
- package/src/prr/workflows/0-setup/collect-project-context/workflow.md +0 -58
package/docs/assets/banner.svg
CHANGED
|
@@ -1,265 +1,47 @@
|
|
|
1
|
-
<svg width="1200" height="
|
|
2
|
-
<defs>
|
|
3
|
-
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
-
<stop offset="0%" style="stop-color:#0d1117"/>
|
|
5
|
-
<stop offset="100%" style="stop-color:#161b22"/>
|
|
6
|
-
</linearGradient>
|
|
7
|
-
<linearGradient id="accent" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
8
|
-
<stop offset="0%" style="stop-color:#a855f7"/>
|
|
9
|
-
<stop offset="100%" style="stop-color:#3b82f6"/>
|
|
10
|
-
</linearGradient>
|
|
11
|
-
<filter id="glow" x="-20%" y="-200%" width="140%" height="500%">
|
|
12
|
-
<feGaussianBlur stdDeviation="4" result="blur"/>
|
|
13
|
-
<feMerge>
|
|
14
|
-
<feMergeNode in="blur"/>
|
|
15
|
-
<feMergeNode in="SourceGraphic"/>
|
|
16
|
-
</feMerge>
|
|
17
|
-
</filter>
|
|
18
|
-
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
|
|
19
|
-
<path d="M 40 0 L 0 0 0 40" fill="none" stroke="#ffffff" stroke-width="0.3" opacity="0.04"/>
|
|
20
|
-
</pattern>
|
|
21
|
-
<pattern id="dots" width="20" height="20" patternUnits="userSpaceOnUse">
|
|
22
|
-
<circle cx="1" cy="1" r="1" fill="#ffffff" opacity="0.06"/>
|
|
23
|
-
</pattern>
|
|
24
|
-
</defs>
|
|
1
|
+
<svg width="1200" height="280" viewBox="0 0 1200 280" xmlns="http://www.w3.org/2000/svg">
|
|
25
2
|
|
|
26
3
|
<!-- Background -->
|
|
27
|
-
<rect width="1200" height="
|
|
28
|
-
<rect width="1200" height="340" fill="url(#grid)"/>
|
|
29
|
-
<rect x="800" y="0" width="400" height="340" fill="url(#dots)"/>
|
|
4
|
+
<rect width="1200" height="280" fill="#000000"/>
|
|
30
5
|
|
|
31
|
-
<!--
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<!-- Left vertical accent bar -->
|
|
40
|
-
<rect x="64" y="60" width="3" height="220" fill="url(#accent)" opacity="0.8" filter="url(#glow)"/>
|
|
41
|
-
|
|
42
|
-
<!-- Magnifying glass icon -->
|
|
43
|
-
<g transform="translate(100, 108)">
|
|
44
|
-
<circle cx="28" cy="28" r="26" fill="none" stroke="url(#accent)" stroke-width="3" opacity="0.9"/>
|
|
45
|
-
<circle cx="28" cy="28" r="18" fill="none" stroke="url(#accent)" stroke-width="1.5" opacity="0.3"/>
|
|
46
|
-
<line x1="47" y1="47" x2="62" y2="62" stroke="url(#accent)" stroke-width="4" stroke-linecap="round" opacity="0.9"/>
|
|
47
|
-
<line x1="18" y1="23" x2="38" y2="23" stroke="#a855f7" stroke-width="2" stroke-linecap="round" opacity="0.6"/>
|
|
48
|
-
<line x1="18" y1="30" x2="32" y2="30" stroke="#3b82f6" stroke-width="2" stroke-linecap="round" opacity="0.6"/>
|
|
49
|
-
<line x1="18" y1="37" x2="36" y2="37" stroke="#a855f7" stroke-width="2" stroke-linecap="round" opacity="0.4"/>
|
|
6
|
+
<!-- Icon -->
|
|
7
|
+
<g transform="translate(80, 90)">
|
|
8
|
+
<circle cx="40" cy="40" r="32" fill="none" stroke="#ffffff" stroke-width="3"/>
|
|
9
|
+
<line x1="65" y1="65" x2="86" y2="86" stroke="#ffffff" stroke-width="4" stroke-linecap="round"/>
|
|
10
|
+
<line x1="26" y1="34" x2="54" y2="34" stroke="#ffffff" stroke-width="2.5" stroke-linecap="round" opacity="0.45"/>
|
|
11
|
+
<line x1="26" y1="42" x2="48" y2="42" stroke="#ffffff" stroke-width="2.5" stroke-linecap="round" opacity="0.45"/>
|
|
12
|
+
<line x1="26" y1="50" x2="52" y2="50" stroke="#ffffff" stroke-width="2.5" stroke-linecap="round" opacity="0.45"/>
|
|
50
13
|
</g>
|
|
51
14
|
|
|
52
|
-
<!--
|
|
53
|
-
<text x="
|
|
54
|
-
font-
|
|
15
|
+
<!-- Title -->
|
|
16
|
+
<text x="200" y="138"
|
|
17
|
+
font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
18
|
+
font-size="58" font-weight="700" letter-spacing="-2" fill="#ffffff">
|
|
55
19
|
PR Review Kit
|
|
56
20
|
</text>
|
|
57
21
|
|
|
58
|
-
<!--
|
|
59
|
-
<
|
|
60
|
-
|
|
61
|
-
<!-- Subtitle -->
|
|
62
|
-
<text x="492" y="175" text-anchor="middle"
|
|
22
|
+
<!-- Tagline -->
|
|
23
|
+
<text x="200" y="176"
|
|
63
24
|
font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
64
|
-
font-size="
|
|
65
|
-
|
|
25
|
+
font-size="17" font-weight="400" fill="#555555" letter-spacing="0.2">
|
|
26
|
+
What if your AI actually understood your codebase before reviewing?
|
|
66
27
|
</text>
|
|
67
28
|
|
|
68
|
-
<!--
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
<
|
|
72
|
-
<circle cx="14" cy="12" r="4" fill="#a855f7"/>
|
|
73
|
-
<text x="24" y="16" font-family="monospace" font-size="10" fill="#c9b8f5">Claude Code</text>
|
|
74
|
-
</g>
|
|
75
|
-
|
|
76
|
-
<!-- Cursor -->
|
|
77
|
-
<g transform="translate(304, 200)">
|
|
78
|
-
<rect width="64" height="24" rx="12" fill="#21262d" stroke="#3b82f6" stroke-width="1" opacity="0.9"/>
|
|
79
|
-
<circle cx="14" cy="12" r="4" fill="#3b82f6"/>
|
|
80
|
-
<text x="24" y="16" font-family="monospace" font-size="10" fill="#93c5fd">Cursor</text>
|
|
81
|
-
</g>
|
|
82
|
-
|
|
83
|
-
<!-- Windsurf -->
|
|
84
|
-
<g transform="translate(376, 200)">
|
|
85
|
-
<rect width="76" height="24" rx="12" fill="#21262d" stroke="#06b6d4" stroke-width="1" opacity="0.9"/>
|
|
86
|
-
<circle cx="14" cy="12" r="4" fill="#06b6d4"/>
|
|
87
|
-
<text x="24" y="16" font-family="monospace" font-size="10" fill="#67e8f9">Windsurf</text>
|
|
88
|
-
</g>
|
|
89
|
-
|
|
90
|
-
<!-- GitHub Copilot -->
|
|
91
|
-
<g transform="translate(460, 200)">
|
|
92
|
-
<rect width="110" height="24" rx="12" fill="#21262d" stroke="#2da44e" stroke-width="1" opacity="0.9"/>
|
|
93
|
-
<circle cx="14" cy="12" r="4" fill="#2da44e"/>
|
|
94
|
-
<text x="24" y="16" font-family="monospace" font-size="10" fill="#7ee8a2">GitHub Copilot</text>
|
|
95
|
-
</g>
|
|
96
|
-
|
|
97
|
-
<!-- Gemini CLI -->
|
|
98
|
-
<g transform="translate(578, 200)">
|
|
99
|
-
<rect width="82" height="24" rx="12" fill="#21262d" stroke="#4285f4" stroke-width="1" opacity="0.9"/>
|
|
100
|
-
<circle cx="14" cy="12" r="4" fill="#4285f4"/>
|
|
101
|
-
<text x="24" y="16" font-family="monospace" font-size="10" fill="#93b4fb">Gemini CLI</text>
|
|
102
|
-
</g>
|
|
103
|
-
|
|
104
|
-
<!-- ── IDE Badges Row 2 ── -->
|
|
105
|
-
<!-- Cline -->
|
|
106
|
-
<g transform="translate(192, 232)">
|
|
107
|
-
<rect width="50" height="20" rx="10" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
108
|
-
<circle cx="11" cy="10" r="3.5" fill="#ef4444"/>
|
|
109
|
-
<text x="19" y="14" font-family="monospace" font-size="9" fill="#8b949e">Cline</text>
|
|
110
|
-
</g>
|
|
111
|
-
|
|
112
|
-
<!-- Roo -->
|
|
113
|
-
<g transform="translate(249, 232)">
|
|
114
|
-
<rect width="70" height="20" rx="10" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
115
|
-
<circle cx="11" cy="10" r="3.5" fill="#f97316"/>
|
|
116
|
-
<text x="19" y="14" font-family="monospace" font-size="9" fill="#8b949e">Roo Cline</text>
|
|
117
|
-
</g>
|
|
118
|
-
|
|
119
|
-
<!-- Kiro -->
|
|
120
|
-
<g transform="translate(326, 232)">
|
|
121
|
-
<rect width="46" height="20" rx="10" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
122
|
-
<circle cx="11" cy="10" r="3.5" fill="#f59e0b"/>
|
|
123
|
-
<text x="19" y="14" font-family="monospace" font-size="9" fill="#8b949e">Kiro</text>
|
|
124
|
-
</g>
|
|
125
|
-
|
|
126
|
-
<!-- OpenCode -->
|
|
127
|
-
<g transform="translate(379, 232)">
|
|
128
|
-
<rect width="74" height="20" rx="10" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
129
|
-
<circle cx="11" cy="10" r="3.5" fill="#8b5cf6"/>
|
|
130
|
-
<text x="19" y="14" font-family="monospace" font-size="9" fill="#8b949e">OpenCode</text>
|
|
131
|
-
</g>
|
|
132
|
-
|
|
133
|
-
<!-- Antigravity -->
|
|
134
|
-
<g transform="translate(460, 232)">
|
|
135
|
-
<rect width="82" height="20" rx="10" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
136
|
-
<circle cx="11" cy="10" r="3.5" fill="#4285f4"/>
|
|
137
|
-
<text x="19" y="14" font-family="monospace" font-size="9" fill="#8b949e">Antigravity</text>
|
|
138
|
-
</g>
|
|
139
|
-
|
|
140
|
-
<!-- Auggie -->
|
|
141
|
-
<g transform="translate(549, 232)">
|
|
142
|
-
<rect width="56" height="20" rx="10" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
143
|
-
<circle cx="11" cy="10" r="3.5" fill="#06b6d4"/>
|
|
144
|
-
<text x="19" y="14" font-family="monospace" font-size="9" fill="#8b949e">Auggie</text>
|
|
145
|
-
</g>
|
|
146
|
-
|
|
147
|
-
<!-- Codex -->
|
|
148
|
-
<g transform="translate(612, 232)">
|
|
149
|
-
<rect width="52" height="20" rx="10" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
150
|
-
<circle cx="11" cy="10" r="3.5" fill="#10b981"/>
|
|
151
|
-
<text x="19" y="14" font-family="monospace" font-size="9" fill="#8b949e">Codex</text>
|
|
152
|
-
</g>
|
|
29
|
+
<!-- Pills -->
|
|
30
|
+
<g transform="translate(200, 204)">
|
|
31
|
+
<rect width="130" height="28" rx="14" fill="none" stroke="#ffffff" stroke-width="1.2"/>
|
|
32
|
+
<text x="65" y="19" text-anchor="middle" font-family="monospace" font-size="11" fill="#ffffff">Stack-aware</text>
|
|
153
33
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
<rect width="50" height="20" rx="10" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
157
|
-
<circle cx="11" cy="10" r="3.5" fill="#ec4899"/>
|
|
158
|
-
<text x="19" y="14" font-family="monospace" font-size="9" fill="#8b949e">Crush</text>
|
|
159
|
-
</g>
|
|
34
|
+
<rect x="142" width="120" height="28" rx="14" fill="none" stroke="#333333" stroke-width="1.2"/>
|
|
35
|
+
<text x="202" y="19" text-anchor="middle" font-family="monospace" font-size="11" fill="#555555">Context-first</text>
|
|
160
36
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
<g transform="translate(192, 260)">
|
|
164
|
-
<rect width="50" height="20" rx="10" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
165
|
-
<circle cx="11" cy="10" r="3.5" fill="#6366f1"/>
|
|
166
|
-
<text x="19" y="14" font-family="monospace" font-size="9" fill="#8b949e">iFlow</text>
|
|
37
|
+
<rect x="274" width="136" height="28" rx="14" fill="none" stroke="#333333" stroke-width="1.2"/>
|
|
38
|
+
<text x="342" y="19" text-anchor="middle" font-family="monospace" font-size="11" fill="#555555">Any AI tool</text>
|
|
167
39
|
</g>
|
|
168
40
|
|
|
169
|
-
<!--
|
|
170
|
-
<
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
</g>
|
|
175
|
-
|
|
176
|
-
<!-- QwenCoder -->
|
|
177
|
-
<g transform="translate(330, 260)">
|
|
178
|
-
<rect width="76" height="20" rx="10" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
179
|
-
<circle cx="11" cy="10" r="3.5" fill="#f97316"/>
|
|
180
|
-
<text x="19" y="14" font-family="monospace" font-size="9" fill="#8b949e">QwenCoder</text>
|
|
181
|
-
</g>
|
|
182
|
-
|
|
183
|
-
<!-- Rovo Dev -->
|
|
184
|
-
<g transform="translate(413, 260)">
|
|
185
|
-
<rect width="68" height="20" rx="10" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
186
|
-
<circle cx="11" cy="10" r="3.5" fill="#0052cc"/>
|
|
187
|
-
<text x="19" y="14" font-family="monospace" font-size="9" fill="#8b949e">Rovo Dev</text>
|
|
188
|
-
</g>
|
|
189
|
-
|
|
190
|
-
<!-- Trae -->
|
|
191
|
-
<g transform="translate(488, 260)">
|
|
192
|
-
<rect width="46" height="20" rx="10" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
193
|
-
<circle cx="11" cy="10" r="3.5" fill="#84cc16"/>
|
|
194
|
-
<text x="19" y="14" font-family="monospace" font-size="9" fill="#8b949e">Trae</text>
|
|
195
|
-
</g>
|
|
196
|
-
|
|
197
|
-
<!-- ── Right side: review flow diagram ── -->
|
|
198
|
-
<g transform="translate(820, 60)" opacity="0.85">
|
|
199
|
-
<!-- SP -->
|
|
200
|
-
<rect x="0" y="0" width="80" height="30" rx="6" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
201
|
-
<text x="40" y="20" text-anchor="middle" font-family="monospace" font-size="12" fill="#a855f7" font-weight="600">SP</text>
|
|
202
|
-
|
|
203
|
-
<!-- Arrow SP→DP -->
|
|
204
|
-
<line x1="80" y1="15" x2="108" y2="15" stroke="#30363d" stroke-width="1.5"/>
|
|
205
|
-
<polygon points="108,11 116,15 108,19" fill="#30363d"/>
|
|
206
|
-
|
|
207
|
-
<!-- DP -->
|
|
208
|
-
<rect x="116" y="0" width="80" height="30" rx="6" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
209
|
-
<text x="156" y="20" text-anchor="middle" font-family="monospace" font-size="12" fill="#3b82f6" font-weight="600">DP</text>
|
|
210
|
-
|
|
211
|
-
<!-- Vertical from DP -->
|
|
212
|
-
<line x1="156" y1="30" x2="156" y2="56" stroke="#30363d" stroke-width="1.5"/>
|
|
213
|
-
<line x1="28" y1="56" x2="276" y2="56" stroke="#30363d" stroke-width="1.5"/>
|
|
214
|
-
|
|
215
|
-
<!-- GR -->
|
|
216
|
-
<line x1="28" y1="56" x2="28" y2="76" stroke="#30363d" stroke-width="1.5"/>
|
|
217
|
-
<rect x="-12" y="76" width="80" height="28" rx="6" fill="#21262d" stroke="#a855f7" stroke-width="1" opacity="0.8"/>
|
|
218
|
-
<text x="28" y="94" text-anchor="middle" font-family="monospace" font-size="11" fill="#a855f7">GR</text>
|
|
219
|
-
|
|
220
|
-
<!-- SR -->
|
|
221
|
-
<line x1="108" y1="56" x2="108" y2="76" stroke="#30363d" stroke-width="1.5"/>
|
|
222
|
-
<rect x="68" y="76" width="80" height="28" rx="6" fill="#21262d" stroke="#ef4444" stroke-width="1" opacity="0.8"/>
|
|
223
|
-
<text x="108" y="94" text-anchor="middle" font-family="monospace" font-size="11" fill="#ef4444">SR</text>
|
|
224
|
-
|
|
225
|
-
<!-- PR -->
|
|
226
|
-
<line x1="196" y1="56" x2="196" y2="76" stroke="#30363d" stroke-width="1.5"/>
|
|
227
|
-
<rect x="156" y="76" width="80" height="28" rx="6" fill="#21262d" stroke="#f59e0b" stroke-width="1" opacity="0.8"/>
|
|
228
|
-
<text x="196" y="94" text-anchor="middle" font-family="monospace" font-size="11" fill="#f59e0b">PR</text>
|
|
229
|
-
|
|
230
|
-
<!-- AR -->
|
|
231
|
-
<line x1="276" y1="56" x2="276" y2="76" stroke="#30363d" stroke-width="1.5"/>
|
|
232
|
-
<rect x="236" y="76" width="80" height="28" rx="6" fill="#21262d" stroke="#06b6d4" stroke-width="1" opacity="0.8"/>
|
|
233
|
-
<text x="276" y="94" text-anchor="middle" font-family="monospace" font-size="11" fill="#06b6d4">AR</text>
|
|
234
|
-
|
|
235
|
-
<!-- Converge lines -->
|
|
236
|
-
<line x1="28" y1="104" x2="28" y2="132" stroke="#30363d" stroke-width="1.5"/>
|
|
237
|
-
<line x1="108" y1="104" x2="108" y2="132" stroke="#30363d" stroke-width="1.5"/>
|
|
238
|
-
<line x1="196" y1="104" x2="196" y2="132" stroke="#30363d" stroke-width="1.5"/>
|
|
239
|
-
<line x1="276" y1="104" x2="276" y2="132" stroke="#30363d" stroke-width="1.5"/>
|
|
240
|
-
<line x1="28" y1="132" x2="276" y2="132" stroke="#30363d" stroke-width="1.5"/>
|
|
241
|
-
<line x1="152" y1="132" x2="152" y2="152" stroke="#30363d" stroke-width="1.5"/>
|
|
242
|
-
|
|
243
|
-
<!-- RR -->
|
|
244
|
-
<rect x="112" y="152" width="80" height="30" rx="6" fill="#21262d" stroke="#22c55e" stroke-width="1"/>
|
|
245
|
-
<text x="152" y="172" text-anchor="middle" font-family="monospace" font-size="12" fill="#22c55e" font-weight="600">RR</text>
|
|
246
|
-
|
|
247
|
-
<!-- Arrow RR→PC -->
|
|
248
|
-
<line x1="192" y1="167" x2="220" y2="167" stroke="#30363d" stroke-width="1.5"/>
|
|
249
|
-
<polygon points="220,163 228,167 220,171" fill="#30363d"/>
|
|
250
|
-
|
|
251
|
-
<!-- PC -->
|
|
252
|
-
<rect x="228" y="152" width="80" height="30" rx="6" fill="#21262d" stroke="#8b949e" stroke-width="1"/>
|
|
253
|
-
<text x="268" y="172" text-anchor="middle" font-family="monospace" font-size="12" fill="#8b949e" font-weight="600">PC</text>
|
|
254
|
-
|
|
255
|
-
<!-- Labels -->
|
|
256
|
-
<text x="16" y="-10" font-family="monospace" font-size="10" fill="#484f58">Select PR</text>
|
|
257
|
-
<text x="120" y="-10" font-family="monospace" font-size="10" fill="#484f58">Describe</text>
|
|
258
|
-
<text x="0" y="122" font-family="monospace" font-size="9" fill="#484f58">Reviews</text>
|
|
259
|
-
<text x="112" y="202" font-family="monospace" font-size="10" fill="#484f58">Report</text>
|
|
260
|
-
<text x="232" y="202" font-family="monospace" font-size="10" fill="#484f58">Post</text>
|
|
261
|
-
</g>
|
|
41
|
+
<!-- Command block -->
|
|
42
|
+
<rect x="820" y="104" width="280" height="52" rx="4" fill="#0d0d0d"/>
|
|
43
|
+
<text x="840" y="126" font-family="monospace" font-size="11" fill="#444444">$ npx prr-kit init</text>
|
|
44
|
+
<line x1="840" y1="134" x2="1084" y2="134" stroke="#222222" stroke-width="1"/>
|
|
45
|
+
<text x="840" y="148" font-family="monospace" font-size="11" fill="#777777">/prr-quick</text>
|
|
262
46
|
|
|
263
|
-
<!-- Bottom accent line -->
|
|
264
|
-
<rect x="0" y="337" width="1200" height="3" fill="url(#accent)" opacity="0.4"/>
|
|
265
47
|
</svg>
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
<svg width="1200" height="240" viewBox="0 0 1200 240" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
|
|
3
|
+
<!-- Background -->
|
|
4
|
+
<rect width="1200" height="240" fill="#000000"/>
|
|
5
|
+
|
|
6
|
+
<!-- Title -->
|
|
7
|
+
<text x="600" y="38" text-anchor="middle"
|
|
8
|
+
font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
9
|
+
font-size="18" font-weight="700" fill="#ffffff" letter-spacing="-0.3">How It Works</text>
|
|
10
|
+
|
|
11
|
+
<!-- ══════════ PIPELINE ══════════ -->
|
|
12
|
+
|
|
13
|
+
<!-- 01 Select PR -->
|
|
14
|
+
<g transform="translate(40, 62)">
|
|
15
|
+
<rect width="130" height="76" rx="5" fill="#0d0d0d"/>
|
|
16
|
+
<text x="65" y="22" text-anchor="middle" font-family="monospace" font-size="8" fill="#333333" letter-spacing="2">01</text>
|
|
17
|
+
<text x="65" y="48" text-anchor="middle" font-family="monospace" font-size="22" fill="#ffffff" font-weight="700">SP</text>
|
|
18
|
+
<text x="65" y="66" text-anchor="middle" font-family="-apple-system, 'Segoe UI', sans-serif" font-size="11" fill="#555555">Select PR</text>
|
|
19
|
+
</g>
|
|
20
|
+
|
|
21
|
+
<line x1="170" y1="100" x2="196" y2="100" stroke="#2a2a2a" stroke-width="1.5"/>
|
|
22
|
+
<polygon points="196,96 204,100 196,104" fill="#2a2a2a"/>
|
|
23
|
+
|
|
24
|
+
<!-- 02 Describe PR -->
|
|
25
|
+
<g transform="translate(204, 62)">
|
|
26
|
+
<rect width="130" height="76" rx="5" fill="#0d0d0d"/>
|
|
27
|
+
<text x="65" y="22" text-anchor="middle" font-family="monospace" font-size="8" fill="#333333" letter-spacing="2">02</text>
|
|
28
|
+
<text x="65" y="48" text-anchor="middle" font-family="monospace" font-size="22" fill="#ffffff" font-weight="700">DP</text>
|
|
29
|
+
<text x="65" y="66" text-anchor="middle" font-family="-apple-system, 'Segoe UI', sans-serif" font-size="11" fill="#555555">Describe PR</text>
|
|
30
|
+
</g>
|
|
31
|
+
|
|
32
|
+
<!-- dashed arrow = auto -->
|
|
33
|
+
<line x1="334" y1="100" x2="354" y2="100" stroke="#2a2a2a" stroke-width="1.5" stroke-dasharray="4,3"/>
|
|
34
|
+
<polygon points="354,96 362,100 354,104" fill="#2a2a2a"/>
|
|
35
|
+
<text x="348" y="92" text-anchor="middle" font-family="monospace" font-size="8" fill="#333333">auto</text>
|
|
36
|
+
|
|
37
|
+
<!-- 03 Collect Context (highlighted) -->
|
|
38
|
+
<g transform="translate(362, 50)">
|
|
39
|
+
<rect width="186" height="100" rx="5" fill="#0d0d0d" stroke="#ffffff" stroke-width="1.2"/>
|
|
40
|
+
<text x="12" y="20" font-family="monospace" font-size="8" fill="#333333" letter-spacing="1">03</text>
|
|
41
|
+
<text x="93" y="52" text-anchor="middle" font-family="monospace" font-size="15" fill="#ffffff" font-weight="700">Collect Context</text>
|
|
42
|
+
<text x="93" y="72" text-anchor="middle" font-family="monospace" font-size="9" fill="#444444">Reads your actual project config</text>
|
|
43
|
+
<text x="93" y="88" text-anchor="middle" font-family="monospace" font-size="9" fill="#333333">→ pr-context.yaml</text>
|
|
44
|
+
</g>
|
|
45
|
+
|
|
46
|
+
<line x1="548" y1="100" x2="568" y2="100" stroke="#2a2a2a" stroke-width="1.5"/>
|
|
47
|
+
<polygon points="568,96 576,100 568,104" fill="#2a2a2a"/>
|
|
48
|
+
|
|
49
|
+
<!-- 04 Deep Review (mystery) -->
|
|
50
|
+
<g transform="translate(576, 50)">
|
|
51
|
+
<rect width="222" height="100" rx="5" fill="#0d0d0d"/>
|
|
52
|
+
<text x="12" y="20" font-family="monospace" font-size="8" fill="#333333" letter-spacing="1">04</text>
|
|
53
|
+
<text x="111" y="52" text-anchor="middle" font-family="-apple-system, 'Segoe UI', sans-serif" font-size="13" fill="#cccccc" font-weight="600">Deep Review</text>
|
|
54
|
+
<text x="111" y="72" text-anchor="middle" font-family="monospace" font-size="9" fill="#444444">Security · Perf · Arch · Bugs</text>
|
|
55
|
+
<text x="111" y="88" text-anchor="middle" font-family="monospace" font-size="9" fill="#333333">structured findings per concern</text>
|
|
56
|
+
</g>
|
|
57
|
+
|
|
58
|
+
<line x1="798" y1="100" x2="818" y2="100" stroke="#2a2a2a" stroke-width="1.5"/>
|
|
59
|
+
<polygon points="818,96 826,100 818,104" fill="#2a2a2a"/>
|
|
60
|
+
|
|
61
|
+
<!-- 05 Report -->
|
|
62
|
+
<g transform="translate(826, 62)">
|
|
63
|
+
<rect width="130" height="76" rx="5" fill="#0d0d0d"/>
|
|
64
|
+
<text x="65" y="22" text-anchor="middle" font-family="monospace" font-size="8" fill="#333333" letter-spacing="2">05</text>
|
|
65
|
+
<text x="65" y="48" text-anchor="middle" font-family="monospace" font-size="22" fill="#ffffff" font-weight="700">RR</text>
|
|
66
|
+
<text x="65" y="66" text-anchor="middle" font-family="-apple-system, 'Segoe UI', sans-serif" font-size="11" fill="#555555">Report</text>
|
|
67
|
+
</g>
|
|
68
|
+
|
|
69
|
+
<line x1="956" y1="100" x2="976" y2="100" stroke="#2a2a2a" stroke-width="1.5"/>
|
|
70
|
+
<polygon points="976,96 984,100 976,104" fill="#2a2a2a"/>
|
|
71
|
+
|
|
72
|
+
<!-- 06 Post Comments (optional, dimmed) -->
|
|
73
|
+
<g transform="translate(984, 62)" opacity="0.4">
|
|
74
|
+
<rect width="130" height="76" rx="5" fill="#0d0d0d"/>
|
|
75
|
+
<text x="65" y="22" text-anchor="middle" font-family="monospace" font-size="8" fill="#333333" letter-spacing="2">06</text>
|
|
76
|
+
<text x="65" y="48" text-anchor="middle" font-family="monospace" font-size="22" fill="#ffffff" font-weight="700">PC</text>
|
|
77
|
+
<text x="65" y="66" text-anchor="middle" font-family="-apple-system, 'Segoe UI', sans-serif" font-size="11" fill="#555555">Post Comments</text>
|
|
78
|
+
</g>
|
|
79
|
+
<text x="1049" y="153" text-anchor="middle" font-family="monospace" font-size="8" fill="#333333">optional</text>
|
|
80
|
+
|
|
81
|
+
<!-- ══════════ Quick mode ══════════ -->
|
|
82
|
+
<rect x="40" y="178" width="400" height="30" rx="4" fill="#0d0d0d"/>
|
|
83
|
+
<text x="56" y="198" font-family="monospace" font-size="10" fill="#555555">Quick mode: </text>
|
|
84
|
+
<text x="136" y="198" font-family="monospace" font-size="10" fill="#ffffff">/prr-quick</text>
|
|
85
|
+
<text x="208" y="198" font-family="monospace" font-size="10" fill="#333333"> — one command, full pipeline</text>
|
|
86
|
+
|
|
87
|
+
</svg>
|
package/package.json
CHANGED
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "prr-kit",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "AI-driven Pull Request Review Kit — structured agent workflows for thorough, consistent code review",
|
|
5
|
-
"main": "tools/cli/prr-cli.js",
|
|
6
|
-
"bin": {
|
|
7
|
-
"prr-kit": "tools/prr-npx-wrapper.js",
|
|
8
|
-
"pr-review": "tools/prr-npx-wrapper.js"
|
|
9
|
-
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"prr:install": "node tools/cli/prr-cli.js install",
|
|
12
|
-
"prr:uninstall": "node tools/cli/prr-cli.js uninstall",
|
|
13
|
-
"prr:status": "node tools/cli/prr-cli.js status",
|
|
14
|
-
"test": "node test/test-agent-schema.js && node test/test-installation-components.js",
|
|
15
|
-
"test:schemas": "node test/test-agent-schema.js",
|
|
16
|
-
"test:install": "node test/test-installation-components.js",
|
|
17
|
-
"lint": "eslint . --ext .js,.cjs,.mjs --max-warnings=0"
|
|
18
|
-
},
|
|
19
|
-
"engines": {
|
|
20
|
-
"node": ">=20.0.0"
|
|
21
|
-
},
|
|
22
|
-
"files": [
|
|
23
|
-
"src/",
|
|
24
|
-
"tools/",
|
|
25
|
-
"docs/assets/"
|
|
26
|
-
],
|
|
27
|
-
"keywords": [
|
|
28
|
-
"code-review",
|
|
29
|
-
"pull-request",
|
|
30
|
-
"ai",
|
|
31
|
-
"agent",
|
|
32
|
-
"workflow",
|
|
33
|
-
"claude",
|
|
34
|
-
"cursor",
|
|
35
|
-
"windsurf",
|
|
36
|
-
"github",
|
|
37
|
-
"gitlab"
|
|
38
|
-
],
|
|
39
|
-
"repository": {
|
|
40
|
-
"type": "git",
|
|
41
|
-
"url": "git+https://github.com/mrquangthai278/prr-kit.git"
|
|
42
|
-
},
|
|
43
|
-
"homepage": "https://github.com/mrquangthai278/prr-kit#readme",
|
|
44
|
-
"bugs": {
|
|
45
|
-
"url": "https://github.com/mrquangthai278/prr-kit/issues"
|
|
46
|
-
},
|
|
47
|
-
"license": "MIT",
|
|
48
|
-
"dependencies": {
|
|
49
|
-
"@clack/prompts": "^0.10.0",
|
|
50
|
-
"chalk": "^4.1.2",
|
|
51
|
-
"commander": "^14.0.0",
|
|
52
|
-
"csv-parse": "^6.1.0",
|
|
53
|
-
"fs-extra": "^11.3.0",
|
|
54
|
-
"glob": "^11.0.3",
|
|
55
|
-
"yaml": "^2.7.0"
|
|
56
|
-
},
|
|
57
|
-
"devDependencies": {
|
|
58
|
-
"eslint": "^9.0.0"
|
|
59
|
-
}
|
|
60
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "prr-kit",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "AI-driven Pull Request Review Kit — structured agent workflows for thorough, consistent code review",
|
|
5
|
+
"main": "tools/cli/prr-cli.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"prr-kit": "tools/prr-npx-wrapper.js",
|
|
8
|
+
"pr-review": "tools/prr-npx-wrapper.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"prr:install": "node tools/cli/prr-cli.js install",
|
|
12
|
+
"prr:uninstall": "node tools/cli/prr-cli.js uninstall",
|
|
13
|
+
"prr:status": "node tools/cli/prr-cli.js status",
|
|
14
|
+
"test": "node test/test-agent-schema.js && node test/test-installation-components.js",
|
|
15
|
+
"test:schemas": "node test/test-agent-schema.js",
|
|
16
|
+
"test:install": "node test/test-installation-components.js",
|
|
17
|
+
"lint": "eslint . --ext .js,.cjs,.mjs --max-warnings=0"
|
|
18
|
+
},
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">=20.0.0"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"src/",
|
|
24
|
+
"tools/",
|
|
25
|
+
"docs/assets/"
|
|
26
|
+
],
|
|
27
|
+
"keywords": [
|
|
28
|
+
"code-review",
|
|
29
|
+
"pull-request",
|
|
30
|
+
"ai",
|
|
31
|
+
"agent",
|
|
32
|
+
"workflow",
|
|
33
|
+
"claude",
|
|
34
|
+
"cursor",
|
|
35
|
+
"windsurf",
|
|
36
|
+
"github",
|
|
37
|
+
"gitlab"
|
|
38
|
+
],
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "git+https://github.com/mrquangthai278/prr-kit.git"
|
|
42
|
+
},
|
|
43
|
+
"homepage": "https://github.com/mrquangthai278/prr-kit#readme",
|
|
44
|
+
"bugs": {
|
|
45
|
+
"url": "https://github.com/mrquangthai278/prr-kit/issues"
|
|
46
|
+
},
|
|
47
|
+
"license": "MIT",
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"@clack/prompts": "^0.10.0",
|
|
50
|
+
"chalk": "^4.1.2",
|
|
51
|
+
"commander": "^14.0.0",
|
|
52
|
+
"csv-parse": "^6.1.0",
|
|
53
|
+
"fs-extra": "^11.3.0",
|
|
54
|
+
"glob": "^11.0.3",
|
|
55
|
+
"yaml": "^2.7.0"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"eslint": "^9.0.0"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -4,7 +4,7 @@ agent:
|
|
|
4
4
|
name: "PRR Master"
|
|
5
5
|
title: "PR Review Master Orchestrator"
|
|
6
6
|
icon: "🔍"
|
|
7
|
-
capabilities: "PR discovery, review orchestration, report generation, workflow routing, git operations"
|
|
7
|
+
capabilities: "PR discovery, review orchestration, report generation, workflow routing, git operations, MCP tool integration, RAG context enrichment"
|
|
8
8
|
hasSidecar: false
|
|
9
9
|
|
|
10
10
|
persona:
|
|
@@ -18,22 +18,25 @@ agent:
|
|
|
18
18
|
- For security-sensitive changes: always recommend security review
|
|
19
19
|
- For performance-critical code: always recommend performance review
|
|
20
20
|
- Keep track of which reviews have been completed in the session
|
|
21
|
+
- If MCP tools are available (Confluence, Jira, Linear, Figma, etc.), use them during context collection to enrich review quality
|
|
22
|
+
- If RAG tools are available, query for similar patterns and past decisions to provide richer context
|
|
23
|
+
- Always gracefully degrade: if external tools are unavailable, proceed with local context only — never block the review
|
|
24
|
+
- When a PM MCP is available, extract issue key from branch name and fetch acceptance criteria to use as review checklist
|
|
21
25
|
|
|
22
26
|
critical_actions:
|
|
23
|
-
- "
|
|
27
|
+
- "Context is collected AUTOMATICALLY after Describe PR — no manual context collection needed"
|
|
24
28
|
- "Run [SP] Select PR FIRST before any review — never review without knowing the exact branch/diff"
|
|
25
29
|
- "After Select PR, suggest running [DP] Describe PR to understand scope before diving into review"
|
|
30
|
+
- "Context collection happens automatically after DP — it's always fresh and PR-specific"
|
|
26
31
|
- "Track completed reviews and remind user of remaining uncompleted review types"
|
|
27
32
|
- "For PRs touching auth, API keys, or user data: always suggest [SR] Security Review"
|
|
33
|
+
- "For feature PRs and PRs with data migration: always run [BR] Business Review to assess user impact and deployment risk"
|
|
34
|
+
- "Business Review runs LAST in the pipeline — it synthesizes technical findings into business language"
|
|
28
35
|
|
|
29
36
|
menu:
|
|
30
37
|
- trigger: "QR or fuzzy match on quick"
|
|
31
38
|
exec: "{project-root}/_prr/prr/workflows/quick/workflow.md"
|
|
32
|
-
description: "[QR] Quick Review: Full pipeline
|
|
33
|
-
|
|
34
|
-
- trigger: "CP or fuzzy match on collect-project-context"
|
|
35
|
-
exec: "{project-root}/_prr/prr/workflows/0-setup/collect-project-context/workflow.md"
|
|
36
|
-
description: "[CP] Collect Project Context: Scan configs, extract rules, ask domain — run once per project"
|
|
39
|
+
description: "[QR] Quick Review: Full pipeline — select → describe → collect context → review → report"
|
|
37
40
|
|
|
38
41
|
- trigger: "SP or fuzzy match on select-pr"
|
|
39
42
|
exec: "{project-root}/_prr/prr/workflows/1-discover/select-pr/workflow.md"
|
|
@@ -59,6 +62,10 @@ agent:
|
|
|
59
62
|
workflow: "{project-root}/_prr/prr/workflows/3-review/architecture-review/workflow.yaml"
|
|
60
63
|
description: "[AR] Architecture Review: SOLID, layering, coupling, consistency with codebase"
|
|
61
64
|
|
|
65
|
+
- trigger: "BR or fuzzy match on business-review"
|
|
66
|
+
workflow: "{project-root}/_prr/prr/workflows/3-review/business-review/workflow.yaml"
|
|
67
|
+
description: "[BR] Business Review: User impact, business risk, feature completeness, data safety, observability"
|
|
68
|
+
|
|
62
69
|
- trigger: "IC or fuzzy match on improve-code"
|
|
63
70
|
workflow: "{project-root}/_prr/prr/workflows/4-improve/improve-code/workflow.yaml"
|
|
64
71
|
description: "[IC] Improve Code: Concrete inline code suggestions with before/after fixes"
|
|
@@ -78,3 +85,7 @@ agent:
|
|
|
78
85
|
- trigger: "HH or fuzzy match on help"
|
|
79
86
|
exec: "{project-root}/_prr/core/tasks/help.md"
|
|
80
87
|
description: "[HH] Help: Show review workflow guide and available commands"
|
|
88
|
+
|
|
89
|
+
- trigger: "CL or fuzzy match on clear or clean or reset"
|
|
90
|
+
exec: "{project-root}/_prr/core/tasks/clear.md"
|
|
91
|
+
description: "[CL] Clear: Remove context files and/or review reports from output folder"
|