feat(agentic): allow zero-variable template plans

Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
Virgil 2026-04-01 13:47:26 +00:00
parent 49e13613d2
commit 6b0de57496
2 changed files with 20 additions and 3 deletions

View file

@ -198,9 +198,6 @@ func (s *PrepSubsystem) templateCreatePlan(ctx context.Context, _ *mcp.CallToolR
if templateName == "" {
return nil, TemplateCreatePlanOutput{}, core.E("templateCreatePlan", "template is required", nil)
}
if input.Variables == nil {
return nil, TemplateCreatePlanOutput{}, core.E("templateCreatePlan", "variables are required", nil)
}
definition, err := loadPlanTemplateDefinition(templateName, input.Variables)
if err != nil {

View file

@ -111,6 +111,26 @@ func TestTemplate_HandleTemplateCreatePlan_Good(t *testing.T) {
assert.Equal(t, "new-feature", stringValue(plan.Context["template"]))
}
func TestTemplate_HandleTemplateCreatePlan_Good_NoVariables(t *testing.T) {
subsystem := testPrepWithPlatformServer(t, nil, "")
result := subsystem.handleTemplateCreatePlan(context.Background(), core.NewOptions(
core.Option{Key: "template", Value: "api-consistency"},
))
require.True(t, result.OK)
output, ok := result.Value.(TemplateCreatePlanOutput)
require.True(t, ok)
assert.True(t, output.Success)
assert.NotEmpty(t, output.Plan.Slug)
assert.Equal(t, "API Consistency Audit", output.Plan.Title)
assert.Equal(t, "draft", output.Plan.Status)
plan, err := readPlan(PlansRoot(), output.Plan.Slug)
require.NoError(t, err)
assert.Equal(t, "api-consistency", stringValue(plan.Context["template"]))
assert.Empty(t, plan.Context["variables"])
}
func TestTemplate_HandleTemplateCreatePlan_Bad(t *testing.T) {
subsystem := testPrepWithPlatformServer(t, nil, "")
result := subsystem.handleTemplateCreatePlan(context.Background(), core.NewOptions(