feat(agentic): add RFC compatibility aliases

Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
Virgil 2026-03-31 15:52:31 +00:00
parent 51f05bf789
commit f45e8552ab
4 changed files with 24 additions and 0 deletions

View file

@ -269,6 +269,11 @@ func (s *PrepSubsystem) registerContentTools(server *mcp.Server) {
Description: "Generate content for a stored batch specification.",
}, s.contentBatchGenerate)
mcp.AddTool(server, &mcp.Tool{
Name: "content_batch",
Description: "Generate content for a stored batch specification using the legacy MCP alias.",
}, s.contentBatchGenerate)
mcp.AddTool(server, &mcp.Tool{
Name: "content_brief_create",
Description: "Create a reusable content brief for later generation work.",

View file

@ -245,6 +245,11 @@ func (s *PrepSubsystem) registerPlanTools(server *mcp.Server) {
Description: "Create a plan using the slug-based compatibility surface described by the platform RFC.",
}, s.planCreateCompat)
mcp.AddTool(server, &mcp.Tool{
Name: "plan_read",
Description: "Read a plan using the legacy plain-name MCP alias.",
}, s.planRead)
mcp.AddTool(server, &mcp.Tool{
Name: "plan_get",
Description: "Read a plan by slug with progress details and full phases.",
@ -255,11 +260,21 @@ func (s *PrepSubsystem) registerPlanTools(server *mcp.Server) {
Description: "List plans using the compatibility surface with slug and progress summaries.",
}, s.planListCompat)
mcp.AddTool(server, &mcp.Tool{
Name: "plan_update",
Description: "Update a plan using the legacy plain-name MCP alias.",
}, s.planUpdate)
mcp.AddTool(server, &mcp.Tool{
Name: "plan_update_status",
Description: "Update a plan lifecycle status by slug.",
}, s.planUpdateStatusCompat)
mcp.AddTool(server, &mcp.Tool{
Name: "plan_delete",
Description: "Delete a plan using the legacy plain-name MCP alias.",
}, s.planDelete)
mcp.AddTool(server, &mcp.Tool{
Name: "plan_archive",
Description: "Archive a plan by slug without deleting the local record.",

View file

@ -217,8 +217,10 @@ func (s *PrepSubsystem) OnStartup(ctx context.Context) core.Result {
c.Action("sprint.update", s.handleSprintUpdate).Description = "Update a tracked platform sprint by slug"
c.Action("sprint.archive", s.handleSprintArchive).Description = "Archive a tracked platform sprint by slug"
c.Action("content.generate", s.handleContentGenerate).Description = "Generate content using the platform content pipeline"
c.Action("content.batch", s.handleContentBatchGenerate).Description = "Start or continue batch content generation"
c.Action("content.batch.generate", s.handleContentBatchGenerate).Description = "Start or continue batch content generation"
c.Action("content.batch_generate", s.handleContentBatchGenerate).Description = "Start or continue batch content generation"
c.Action("content_batch", s.handleContentBatchGenerate).Description = "Start or continue batch content generation"
c.Action("content.brief.create", s.handleContentBriefCreate).Description = "Create a reusable content brief"
c.Action("content.brief_create", s.handleContentBriefCreate).Description = "Create a reusable content brief"
c.Action("content.brief.get", s.handleContentBriefGet).Description = "Read a content brief by ID or slug"

View file

@ -500,8 +500,10 @@ func TestPrep_OnStartup_Good_RegistersContentActions(t *testing.T) {
require.True(t, s.OnStartup(context.Background()).OK)
assert.True(t, c.Action("content.generate").Exists())
assert.True(t, c.Action("content.batch").Exists())
assert.True(t, c.Action("content.batch.generate").Exists())
assert.True(t, c.Action("content.batch_generate").Exists())
assert.True(t, c.Action("content_batch").Exists())
assert.True(t, c.Action("content.brief.create").Exists())
assert.True(t, c.Action("content.brief.get").Exists())
assert.True(t, c.Action("content.brief.list").Exists())