@exaudeus/workrail 0.2.5-beta.8 → 0.4.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/package.json
CHANGED
|
@@ -8,6 +8,11 @@
|
|
|
8
8
|
"User has the MR title, purpose, and any relevant ticket numbers.",
|
|
9
9
|
"The agent has access to file-reading tools."
|
|
10
10
|
],
|
|
11
|
+
"clarificationPrompts": [
|
|
12
|
+
"Provide the associated ticket ID(s)/link(s) and paste full text if possible.",
|
|
13
|
+
"Provide links (or attach) any dev plan, design/architecture doc, or BRD relevant to this MR.",
|
|
14
|
+
"Provide the code diff (paste content or give a file path)."
|
|
15
|
+
],
|
|
11
16
|
"metaGuidance": [
|
|
12
17
|
"The ultimate goal is to assist, not replace, a human reviewer. The human owns the final merge decision.",
|
|
13
18
|
"All feedback should be constructive and actionable. Explain the 'why' behind suggestions.",
|
|
@@ -58,7 +63,8 @@
|
|
|
58
63
|
"**[Standard]:** For typical features or bug fixes. This uses the full, multi-phase review process.",
|
|
59
64
|
"**[High-Risk]:** For major architectural changes or features touching sensitive code. This follows the full process with maximum diligence."
|
|
60
65
|
],
|
|
61
|
-
"functionReferences": ["initReviewDoc()", "logRevision()"]
|
|
66
|
+
"functionReferences": ["initReviewDoc()", "logRevision()"],
|
|
67
|
+
"requireConfirmation": true
|
|
62
68
|
},
|
|
63
69
|
{
|
|
64
70
|
"id": "phase-1-context",
|
|
@@ -79,7 +85,7 @@
|
|
|
79
85
|
{
|
|
80
86
|
"id": "phase-1a-llm-context-gathering",
|
|
81
87
|
"title": "Phase 1a: Comprehensive Context Gathering",
|
|
82
|
-
"prompt": "To perform a thorough review, I need more than just the code diff. Please provide the following:\n\n1. **
|
|
88
|
+
"prompt": "To perform a thorough review, I need more than just the code diff. Please provide the following:\n\n1. **Ticket(s):** Link(s) and, if possible, paste the full text (requirements, acceptance criteria).\n2. **Dev/Design Docs:** Dev plan; design/architecture docs; and any BRD or decision records relevant to this MR.\n3. **Technical Context:** If this change relies on other parts of the codebase, provide relevant code snippets or file contents; include coding standards or module conventions if available.\n\nI will synthesize this information to build a comprehensive context for my review.\n\n**Confirmation & Gating:**\n- After you confirm that I have the right context (or explicitly instruct me to skip), I will set `contextGatheringComplete = true` or `skipContextGathering = true` accordingly.\n- I will not proceed to deeper analysis until one of these is set.",
|
|
83
89
|
"agentRole": "You are a context-aware analyst ensuring you have all necessary information before starting a deep review.",
|
|
84
90
|
"guidance": ["A high-quality review depends on high-quality context. The more information provided here, the more accurate the review will be."],
|
|
85
91
|
"runCondition": { "var": "complexity", "not_equals": "Trivial" },
|
|
@@ -95,9 +101,10 @@
|
|
|
95
101
|
"Scope strictly to moduleRoot and changed files plus immediate neighbors.",
|
|
96
102
|
"Cap per-file neighbors and graph size to avoid noise; prefer edges directly related to the diff.",
|
|
97
103
|
"Write full details to the live doc; in chat, keep output minimal.",
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
104
|
+
"Small Multiples: for each changed symbol, render mini path lines (≤6 nodes) for top 1–2 inbound and 1–2 outbound paths; width ≤100; highlight changed as [*name*]; tag HOT where applicable.",
|
|
105
|
+
"Path Lists with Aliasing: collapse repeated subpaths using deterministic aliases (A1, A2, ...); reuse aliases across paths; append an 'Alias Legend' listing alias → full subpath.",
|
|
106
|
+
"Ordering: HOT-first, then shortest path, then alphabetical; depth ≤2; dedupe identical paths.",
|
|
107
|
+
"Caps: ≤5 anchors; ≤8 total paths; ≤12 nodes across all small multiples; if exceeded, render 'Adjacency Summary' with per-edge counts instead.",
|
|
101
108
|
"Flow Anchors: map entrypoints to changed symbols; table 'Anchor | Type | Target Symbol | Notes'; cap ≤5 anchors.",
|
|
102
109
|
"Hot-Path ranking: score edges (diff touch, anchor, ticket keyword, test ref); tag HOT if score ≥ threshold; prefer HOT paths in ASCII output.",
|
|
103
110
|
"Legend in doc: [*name*]=changed; HOT=high-impact; 'A -> B'=calls; 'Route -> Handler'; 'Job -> Worker'.",
|
|
@@ -164,7 +171,7 @@
|
|
|
164
171
|
"guidance": [
|
|
165
172
|
"Targets: naming clarity; small readability/style inconsistencies; redundant comments; commented/dead code; import/order polish; safe micro-perf; test naming/structure.",
|
|
166
173
|
"Quotas: if majorIssuesFound==true aim 5–8 (cap 12); else aim 8–12 (cap 15); ≤3 per category; 1–2 lines each; dedupe; group by file; prefix 'Nit:'.",
|
|
167
|
-
"
|
|
174
|
+
"MUST add ready-to-copy MR comments for the top 3 nits (file:line, short title, 1–2 line rationale, optional tiny diff); log the revision.",
|
|
168
175
|
"Append Nit grouped by file: 'path:line — nit text'."
|
|
169
176
|
],
|
|
170
177
|
"runCondition": { "var": "analysisDepth", "equals": 4 },
|
|
@@ -232,10 +239,11 @@
|
|
|
232
239
|
"Dedupe: identical path:line + similar text → keep one; if overlap with Hygiene/Patterns, keep in the most specific section and cross-reference in the other.",
|
|
233
240
|
"Caps: ≤15 total; ≤3 per category; if exceeded, append a single 'More items omitted due to caps.' line.",
|
|
234
241
|
"Cross-link any existing MR comments to their nit rows (e.g., 'MR: MR-##').",
|
|
242
|
+
"If fewer than 3 Nit MR comments exist overall, create minimal ready-to-copy MR comments for the highest-signal remaining nits to reach 3 (file:line, short title, 1–2 line rationale, optional tiny diff).",
|
|
235
243
|
"Chat: minimal recap with doc path and counts; full details live in the doc."
|
|
236
244
|
],
|
|
237
245
|
"runCondition": { "and": [ { "var": "complexity", "not_equals": "Trivial" }, { "or": [ { "var": "contextGatheringComplete", "equals": true }, { "var": "skipContextGathering", "equals": true } ] } ] },
|
|
238
|
-
"functionReferences": ["upsertSection()", "logRevision()"],
|
|
246
|
+
"functionReferences": ["appendMRComment()", "upsertSection()", "logRevision()"],
|
|
239
247
|
"requireConfirmation": false
|
|
240
248
|
},
|
|
241
249
|
{
|
|
@@ -251,6 +259,7 @@
|
|
|
251
259
|
"Risk Heatmap table: rows 'Risk | Area | Likelihood(L/M/H) | Impact(L/M/H) | Mitigation(≤1 line)'; sort by Impact desc then Likelihood desc; cap ≤6 rows; add 'omitted due to caps' line if needed.",
|
|
252
260
|
"Dedupe patches and MR comments; ensure every Critical/Major has either a patch or a copy-ready MR comment.",
|
|
253
261
|
"If any Critical/Major lacks an MR comment, generate a minimal ready-to-copy comment (file:line, short title, 1–2 line rationale, optional tiny diff snippet).",
|
|
262
|
+
"Ensure at least 3 Nit MR comments exist overall; if fewer, create minimal Nit MR comments for the top remaining nits to reach 3.",
|
|
254
263
|
"Group MR comments by file and dedupe similar entries; add a 'Missing Comments Summary' note if any comments were auto-added.",
|
|
255
264
|
"Cross-link each MR comment to its related Proposed Patch when applicable ('See Proposed Patch: <title>').",
|
|
256
265
|
"Keep all caps deterministic; if any list exceeds its cap, add a single trailing 'More items omitted due to caps.' line."
|