--- name: ticket-executor description: Execute Lesstime project tickets systematically - updates MCP statuses, follows project conventions, and logs learnings for self-improvement --- # Ticket Executor Skill ## Purpose Execute Lesstime project tickets end-to-end: read the ticket, implement the fix, update MCP status, and log learnings. ## Workflow ### 1. Receive Ticket - Get ticket ID, title, description, tags (Backend/Frontend), priority, and current status - Understand the scope from the title and description ### 2. Set Status to "En cours" (ID: 2) - Use MCP `update-task` with `statusId: 2` before starting work - MCP endpoint: `http://project.malio-dev.fr/_mcp` - Auth: `Bearer 7e8b410a5b79b5c0432951dcee3a3a81e0731e86d9f70d8784ec079a2b759c64` ### 3. Analyze & Implement Based on tag: - **Backend**: Check `src/Entity/`, `src/State/`, `src/Controller/`, `src/Security/`, `config/` - **Frontend**: Check `frontend/components/`, `frontend/composables/`, `frontend/pages/`, `frontend/services/` Conventions to follow: - PHP: `declare(strict_types=1)`, Symfony + PSR-12, API Platform patterns - Frontend: TypeScript strict, `useApi()` composable, 4 spaces indent - See CLAUDE.md for full conventions ### 4. Verify - For Backend: `make php-cs-fixer-allow-risky` if PHP changed - For Frontend: check TypeScript types, no `any` - Read modified files to confirm correctness ### 5. Set Status to "Terminé" (ID: 5) - Use MCP `update-task` with `statusId: 5` after successful implementation ### 6. Log Learnings Append to `.claude/skills/ticket-executor/LEARNINGS.md`: - What worked well - Patterns discovered - Gotchas encountered - Time-saving shortcuts found ## MCP Session Management The MCP HTTP transport requires a session. To call tools: ```bash # Initialize session (get Mcp-Session-Id from response header) curl -si -X POST http://project.malio-dev.fr/_mcp \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"claude","version":"1.0"}}}' # Call tool (use Mcp-Session-Id from init response) curl -s -X POST http://project.malio-dev.fr/_mcp \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -H "Mcp-Session-Id: " \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"update-task","arguments":{"id":,"statusId":}}}' ``` ## Status IDs - 1 = A faire - 2 = En cours - 3 = Bloqué - 4 = En attente de validation - 5 = Terminé ## Learnings Integration Before each ticket, read `LEARNINGS.md` to apply previous insights. After each ticket, append new learnings. This creates a feedback loop that improves execution quality over time. ## Parallel Execution Rules - Independent tickets (no shared files) can run in parallel via worktree agents - Tickets modifying the same files must run sequentially - Always verify no merge conflicts after parallel execution