-
Notifications
You must be signed in to change notification settings - Fork 42
Expand file tree
/
Copy pathSuperpowersPromptBuilder.cs
More file actions
39 lines (30 loc) · 1.51 KB
/
Copy pathSuperpowersPromptBuilder.cs
File metadata and controls
39 lines (30 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using WebCodeCli.Domain.Domain.Model;
namespace WebCodeCli.Domain.Domain.Service;
public static class SuperpowersPromptBuilder
{
private const string LegacyQuickSkillPrefix = "$superpowers ,使用superpowers技能,";
public static string BuildContinuePrompt()
=> SuperpowersQuickActionDefaults.ContinuePrompt;
public static string BuildExecutePlanPrompt()
=> SuperpowersQuickActionDefaults.ExecutePlanPrompt;
public static string BuildSubagentExecutePlanPrompt()
=> SuperpowersQuickActionDefaults.ExecuteSubagentPlanPrompt;
public static string BuildCompleteWorktreePrompt()
=> SuperpowersQuickActionDefaults.CompleteWorktreePrompt;
public static string? BuildQuickSkillPrompt(string? input)
{
var trimmed = input?.Trim();
if (string.IsNullOrWhiteSpace(trimmed))
{
return null;
}
var normalized = trimmed.StartsWith(SuperpowersQuickActionDefaults.QuickSkillPrefix, StringComparison.Ordinal)
? trimmed
: trimmed.StartsWith(LegacyQuickSkillPrefix, StringComparison.Ordinal)
? $"{SuperpowersQuickActionDefaults.QuickSkillPrefix}{trimmed[LegacyQuickSkillPrefix.Length..]}"
: $"{SuperpowersQuickActionDefaults.QuickSkillPrefix}{trimmed}";
return normalized.Contains(SuperpowersQuickActionDefaults.PromptLanguagePolicy, StringComparison.Ordinal)
? normalized
: $"{normalized}\n\n{SuperpowersQuickActionDefaults.PromptLanguagePolicy}";
}
}