.claude/skills/clickup-task-description/SKILL.md
Generate a post-implementation QA handoff comment for a completed backend feature. Use this skill whenever a developer has finished implementing backend work and needs to write a comment to post on the ClickUp card to inform QA of what was built and what to verify. Trigger when the user says things like "write a QA comment", "write the comment for this card", "post-implementation comment", "handoff to QA", "write a ClickUp comment", "help me document what I did for QA", or "write a ticket description for this backend change". Also trigger when the user says "write the description for this subtask" or "write a card comment" after finishing implementation. Reads the relevant source files to understand what was built and produces a concise developer-to-QA handoff note.
npx skillsauth add guidodinello/claude-dotfiles post-implementation-handoff-commentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You're writing a post-implementation comment to be posted on the ClickUp card after the code is done. The audience is QA — they need to know what was shipped and what to verify, without reading the code. This is a developer-to-QA handoff note, not a ticket spec.
If the user hasn't pointed you at specific files, find them. Try origin/develop
first; fall back to origin/main if that ref doesn't exist:
git diff --name-only origin/develop...HEAD 2>/dev/null || git diff --name-only origin/main...HEAD
Look for changes in:
src/Fifty410/{Entity}/App/Controllers/src/Fifty410/{Entity}/Domain/Actions/src/Fifty410/{Entity}/App/Resources/src/Fifty410/{Entity}/Domain/Models/database/migrations/routes/api.phpdatabase/seeders/ (only if changed)tests/Feature/ (if present — test names map directly to behaviors)Read them in parallel. Extract:
From controllers and routes:
From resources:
From action files (this is the most important source for understanding what the code actually does):
whereNot, where, whereHas condition tells you what gets excluded and why — each one is something QA should verifywhere('patient_id', $patient->id)) — isolation from other users' data is something QA should verifyFrom feature test files (if present):
it('...') description is a behavior the endpoint must satisfy — translate test names into plain English for QAFrom migrations and seeders:
Use this exact template. Output it as a markdown code block (```markdown) so
the user can copy-paste it directly into ClickUp.
## Summary
One sentence. What was implemented and what endpoint exposes it.
## What was done
- **Migration:** Added `column_name` (type) [and `column_name` (type)] columns. _(omit if no migration)_
- **Seeder:** Updated to populate [fields]. _(omit if no seeder change)_
- **Model/Resource:** [Fields] are declared on the model and included in the API response. _(omit if no model/resource change)_
- **Endpoint:** Added `METHOD /api/path/{param}` (authenticated), which returns:
```json
{
"data": [
{
"id": 1,
"field_from_resource": "realistic example value"
}
]
}
---
## Guidelines
- **QA audience**: no instructions to run migrations, seeders, or artisan commands — they test the live endpoint only.
- **JSON example**: use realistic placeholder values, not generic `"string"` or `null`. Make it clear they're illustrative.
- **Multiple endpoints**: add one **Endpoint** bullet per endpoint.
- **Omit sections that don't apply**: if no migration changed, skip that bullet entirely.
- **This is a handoff note, not a spec**: write as if you're briefing your QA colleague on what just shipped. Confident, specific, no fluff.
## Reference output
This is the gold-standard output — calibrate tone, length, and depth of the
acceptance criteria section against this:
---
````markdown
## Summary
Added `GET /api/symptoms/{id}/biomarkers` endpoint that returns the patient's latest lab result for each biomarker associated with a given symptom, ordered by severity (Critical → Abnormal → Normal).
## What was done
- **Endpoint:** Added `GET /api/symptoms/{symptom}/biomarkers` (authenticated), which returns:
```json
{
"data": [
{
"id": 12,
"lab_id": 5,
"name": "Progesterone",
"result": "5.0",
"type": "Numeric",
"unit": "mg/dL",
"interpretation": "Normal",
"loinc_slug": "2839-9",
"min_range_value": 4.0,
"max_range_value": 5.6,
"is_above_max_range": false,
"is_below_min_range": false,
"product": {
"id": 3,
"slug": "hormone-longevity",
"display_name": "Hormone & Longevity",
"description": "Panel covering hormonal and longevity markers",
"price_in_cents": 0,
"image_url": null,
"tag": null,
"characteristics": []
},
"biomarker": {
"id": 1,
"name": "Progesterone",
"description": "A steroid hormone involved in the menstrual cycle",
"loinc_slug": "2839-9",
"weight": 1
},
"created_at": "2026-01-20T00:00:00+00:00",
"updated_at": "2026-01-20T00:00:00+00:00"
}
]
}
development
Writes React components without unnecessary useEffect. Use when creating/reviewing React components, refactoring effects, or when code uses useEffect to transform data or handle events.
development
Show a Claude Code usage report — model token breakdown, estimated costs, top projects, and session patterns. Delegates to the stats-analyzer subagent (Haiku) to avoid polluting the main context with raw data.
development
Use this skill whenever the user wants to write, refine, or break down a subtask for a software ticket — especially backend endpoints, frontend components, or API integrations. Trigger when the user shares a user story, acceptance criteria, or ticket scope and asks for a subtask, refinement card, or implementation breakdown. Also trigger when the user says things like "help me refine this", "write a subtask for X", "break this down", or "create a card for the endpoint / component / feature". This skill produces structured, audience-appropriate subtask write-ups for developers, PMs, and QAs alike.
development
Run the full quality pipeline (type-check, linting, tests) via the quality-checker subagent. Returns a concise summary of issues without flooding the main context with raw output.