feat: expand magic prompts coverage and split generation prompts (#835)
- Add configurable visible/instructions prompt families for commit/PR generation, PR checks/comments flows, and git conflict resolution helpers. - Refactor prompt sending to explicit visible + synthetic parts instead of newline-based splitting, with legacy override migration for old keys. - Polish Magic Prompts settings UX with grouped sidebar entries, tooltip-based descriptions, AI icon, and validation that visible prompts cannot be empty across web and VS Code runtimes.
This commit is contained in:
committed by
GitHub
parent
2e5b02e753
commit
5f0d1623ae
@@ -29,6 +29,7 @@ import { useContextStore } from '@/stores/contextStore';
|
||||
import { useUIStore } from '@/stores/useUIStore';
|
||||
import { useGitHubAuthStore } from '@/stores/useGitHubAuthStore';
|
||||
import { opencodeClient } from '@/lib/opencode/client';
|
||||
import { renderMagicPrompt } from '@/lib/magicPrompts';
|
||||
import { createWorktreeSessionForNewBranch } from '@/lib/worktreeSessionCreator';
|
||||
import { generateBranchSlug } from '@/lib/git/branchNameGenerator';
|
||||
import type { GitHubIssue, GitHubIssueComment, GitHubIssuesListResult, GitHubIssueSummary } from '@/lib/api/types';
|
||||
@@ -450,42 +451,10 @@ export function GitHubIssuePickerDialog({
|
||||
}
|
||||
}
|
||||
|
||||
const visiblePromptText = 'Review this issue using the provided issue context: title, body, labels, assignees, comments, metadata.';
|
||||
const instructionsText = `Review this issue using the provided issue context.
|
||||
|
||||
Process:
|
||||
- First classify the issue type (bug / feature request / question/support / refactor / ops) and state it as: Type: <one label>.
|
||||
- Gather any needed repository context (code, config, docs) to validate assumptions.
|
||||
- After gathering, if anything is still unclear or cannot be verified, do not speculate—state what’s missing and ask targeted questions.
|
||||
|
||||
Output rules:
|
||||
- Compact output; pick ONE template below and omit the others.
|
||||
- No emojis. No code snippets. No fenced blocks.
|
||||
- Short inline code identifiers allowed.
|
||||
- Reference evidence with file paths and line ranges when applicable; if exact lines aren’t available, cite the file and say “approx” + why.
|
||||
- Keep the entire response under ~300 words.
|
||||
|
||||
Templates (choose one):
|
||||
Bug:
|
||||
- Summary (1-2 sentences)
|
||||
- Likely cause (max 2)
|
||||
- Repro/diagnostics needed (max 3)
|
||||
- Fix approach (max 4 steps)
|
||||
- Verification (max 3)
|
||||
|
||||
Feature:
|
||||
- Summary (1-2 sentences)
|
||||
- Requirements (max 4)
|
||||
- Unknowns/questions (max 4)
|
||||
- Proposed plan (max 5 steps)
|
||||
- Verification (max 3)
|
||||
|
||||
Question/Support:
|
||||
- Summary (1-2 sentences)
|
||||
- Answer/guidance (max 6 lines)
|
||||
- Missing info (max 4)
|
||||
|
||||
Do not implement changes until I confirm; end with: “Next actions: <1 sentence>”.`;
|
||||
const visiblePromptText = await renderMagicPrompt('github.issue.review.visible', {
|
||||
issue_number: String(issue.number),
|
||||
});
|
||||
const instructionsText = await renderMagicPrompt('github.issue.review.instructions');
|
||||
const contextText = buildIssueContextText({ repo: issueRes.repo, issue, comments });
|
||||
|
||||
void opencodeClient.sendMessage({
|
||||
|
||||
Reference in New Issue
Block a user