Render Verdict
court.render_verdictAnalyzes code changes and commit messages to generate structured verdicts that improve documentation clarity and adherence to conventional commit standards.
Instructions
Render the courtroom opinion for a commit message case.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| subject | Yes | Commit subject line to put on trial. | |
| body | No | Optional commit body. | |
| diff | Yes | Unified diff or patch text. | |
| pr_body | No | Optional PR description. | |
| style | No | Courtroom voice preset. | |
| language | No | Rendered verdict language. |
Implementation Reference
- src/server.ts:54-65 (registration)Tool registration for court.render_verdict.
server.registerTool( "court.render_verdict", { title: "Render Verdict", description: "Render the courtroom opinion for a commit message case.", inputSchema: toolInputShape, outputSchema: z.record(z.unknown()) }, async (args) => { const verdict = renderVerdict(courtInputSchema.parse(args)); return asToolResult(verdict, false); } - src/court/shared.ts:19-21 (handler)Handler logic for court.render_verdict, calling evaluateCourtCase.
export function renderVerdict(input: CourtInput): CourtVerdict { return evaluateCourtCase({ ...input, style: input.style ?? "judge" }); } - src/court/analyze.ts:284-309 (helper)Core logic for evaluating a court case and generating a verdict.
export function evaluateCourtCase(input: CourtInput): CourtVerdict { const style = normalizeStyle(input.style); const language = normalizeLanguage(input.language); const summary = parseDiff(input.diff); const { score, charges, findings, requiredActions, evidence } = buildFindings(input, summary); const verdict: Verdict = score >= 80 ? "approved" : score >= 60 ? "probation" : "convicted"; const rewrites = buildRewrites(input, summary); const result: CourtVerdict = { verdict, score, charges, findings, evidence, sentence: sentenceFor(verdict, language), required_actions: verdict === "approved" ? requiredActions.filter((item) => item !== "Add or cite tests that prove the change.") : requiredActions, rewritten_subject: verdict === "approved" ? undefined : rewrites.rewritten_subject, rewritten_body: verdict === "approved" ? undefined : rewrites.rewritten_body, rewritten_pr_body: verdict === "approved" ? undefined : rewrites.rewritten_pr_body, rendered_opinion: "" }; result.rendered_opinion = renderVerdictOpinion(result, style, language); return result; }