2.9 KiB
2.9 KiB
name, description
| name | description |
|---|---|
| ticket-executor | 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-taskwithstatusId: 2before 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-riskyif 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-taskwithstatusId: 5after 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:
# Initialize session (get Mcp-Session-Id from response header)
curl -si -X POST http://project.malio-dev.fr/_mcp \
-H "Authorization: Bearer <token>" \
-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 <token>" \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: <session-id>" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"update-task","arguments":{"id":<taskId>,"statusId":<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