summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-02-12 22:23:45 +0200
committerPaul Buetow <paul@buetow.org>2026-02-12 22:23:45 +0200
commit61e3f0be5f13d4bde1344fb46cca606354a233cd (patch)
treea9e547cca1796c48dac445c351539de2329ab8ac /internal
parent76ea4208c520879c4a89d74483783b6cfb3af3ed (diff)
feat: add design_prompt meta-prompt for implementation planningv0.21.0
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'internal')
-rw-r--r--internal/promptstore/default_prompts.go31
-rw-r--r--internal/promptstore/store_test.go6
2 files changed, 32 insertions, 5 deletions
diff --git a/internal/promptstore/default_prompts.go b/internal/promptstore/default_prompts.go
index acfbe9a..f8edefc 100644
--- a/internal/promptstore/default_prompts.go
+++ b/internal/promptstore/default_prompts.go
@@ -6,8 +6,8 @@ import (
)
// DefaultPrompts returns the built-in meta-prompts for prompt management.
-// These prompts help users create and update prompts interactively using Claude's
-// access to conversation context.
+// These prompts help users create, update, delete, and design prompts interactively
+// using Claude's access to conversation context.
func DefaultPrompts() []Prompt {
now := time.Now()
@@ -181,5 +181,32 @@ Ask me to confirm the deletion of '{{prompt_name}}'.`,
Created: now,
Updated: now,
},
+ {
+ Name: "design_prompt",
+ Title: "Design New Prompt from Scratch",
+ Description: "Interactively design a brand new prompt template through guided questions. Claude will help you define the purpose, arguments, message flow, and metadata step by step, show a preview, and wait for approval before saving.",
+ Arguments: []PromptArgument{},
+ Messages: []PromptMessage{
+ {
+ Role: "user",
+ Content: MessageContent{
+ Type: "text",
+ Text: `I want to design a brand new prompt template from scratch.
+
+Please ask me:
+1) What should this prompt do? (describe the task/purpose in 1-2 sentences)
+2) What arguments does it need? (if any - use {{argument}} syntax)
+3) Prompt name (lowercase, underscores only), title, and tags
+
+Then show me a preview and save it after I approve.
+
+Keep questions brief and focused.`,
+ },
+ },
+ },
+ Tags: []string{"meta", "prompt-management", "interactive", "creation"},
+ Created: now,
+ Updated: now,
+ },
}
}
diff --git a/internal/promptstore/store_test.go b/internal/promptstore/store_test.go
index 2c95ad7..1ec784a 100644
--- a/internal/promptstore/store_test.go
+++ b/internal/promptstore/store_test.go
@@ -84,9 +84,9 @@ func TestJSONLStore_List(t *testing.T) {
t.Fatalf("List() error = %v", err)
}
- // Should have all prompts (7 user + 3 built-ins)
- if len(prompts) != 10 {
- t.Errorf("List() got %d prompts, want 10 (7 user + 3 built-ins)", len(prompts))
+ // Should have all prompts (7 user + 4 built-ins)
+ if len(prompts) != 11 {
+ t.Errorf("List() got %d prompts, want 11 (7 user + 4 built-ins)", len(prompts))
}
// No cursor for full list