KAN-73: Explain and validate MCP ticket description format #178

Merged
Twyco merged 1 commits from feature/KAN-73-mcp-description-contract into main 2026-10-15 07:06:06 +00:00
Owner

MCP clients previously received no description format contract, so task checkboxes could be stored in descriptions and force the entire ticket description into source mode. This change advertises the shared Tiptap Markdown contract in initialize, every ticket-writing tool, and the description/acceptance_criteria schemas. Criteria belong exclusively in the structured checklist.

All three description-writing paths now reject incompatible Markdown before any ticket mutation. Existing descriptions and checklist IDs survive updates that omit description. A shared frontend/backend contract and compatibility corpus cover supported formatting, nested task checkboxes, tables, HTML, images, code examples, reference links, and unsafe destinations. The PHP check uses the existing CommonMark/URI libraries without adding a runtime or dependency.

Validation: 161 affected PHPUnit tests passed (1087 assertions); Pint, frontend ESLint, types:check, and production build passed. Browser regression checks verified formatted MCP example content in the WYSIWYG editor and detail preview, plus unchanged legacy tasklist source. Known build warnings concern existing Inter font asset paths.

Based on feature/KAN-72-complete-mcp-ticket-editing at 9ed8d0c6cc (PR #177), because this extends its update_ticket tool. Target remains that original base branch.

Production acceptance remains pending merge/deployment: reconnect the Production Kanban Git MCP and verify initialize/tools/list metadata and valid/invalid writes on a dedicated test ticket. The current connected production interface still serves the earlier metadata; this PR does not deploy it.

MCP clients previously received no description format contract, so task checkboxes could be stored in descriptions and force the entire ticket description into source mode. This change advertises the shared Tiptap Markdown contract in initialize, every ticket-writing tool, and the description/acceptance_criteria schemas. Criteria belong exclusively in the structured checklist. All three description-writing paths now reject incompatible Markdown before any ticket mutation. Existing descriptions and checklist IDs survive updates that omit description. A shared frontend/backend contract and compatibility corpus cover supported formatting, nested task checkboxes, tables, HTML, images, code examples, reference links, and unsafe destinations. The PHP check uses the existing CommonMark/URI libraries without adding a runtime or dependency. Validation: 161 affected PHPUnit tests passed (1087 assertions); Pint, frontend ESLint, types:check, and production build passed. Browser regression checks verified formatted MCP example content in the WYSIWYG editor and detail preview, plus unchanged legacy tasklist source. Known build warnings concern existing Inter font asset paths. Based on feature/KAN-72-complete-mcp-ticket-editing at 9ed8d0c6cc08e9ab80d8f7219e86b27baa02ae8e (PR #177), because this extends its update_ticket tool. Target remains that original base branch. Production acceptance remains pending merge/deployment: reconnect the Production Kanban Git MCP and verify initialize/tools/list metadata and valid/invalid writes on a dedicated test ticket. The current connected production interface still serves the earlier metadata; this PR does not deploy it.
Twyco changed target branch from feature/KAN-72-complete-mcp-ticket-editing to main 2026-10-15 07:05:05 +00:00
Twyco added 1 commit 2026-10-15 07:05:05 +00:00
Twyco merged commit 811dbf7fa4 into main 2026-10-15 07:06:06 +00:00
Twyco deleted branch feature/KAN-73-mcp-description-contract 2026-10-15 07:06:08 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: PetschStudios/KanbanGit#178