一键导入
craft-unblock-message
Generates contextual, humble messages designed to unblock stuck tickets. Use when a stuck ticket needs a nudge comment.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generates contextual, humble messages designed to unblock stuck tickets. Use when a stuck ticket needs a nudge comment.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Generates messages suggesting a ghost-done ticket be transitioned to Done. Helpful tone, evidence-based, always asks rather than commands.
Generates a quick morning briefing with what happened, what's stuck, and what needs attention today.
Evaluates whether epics are ready for PI or quarter planning by scoring 7 readiness dimensions.
Computes team capacity for a sprint or PI from headcount, PTO, and run-rate buffer.
Estimates completion probability for remaining work using velocity distribution and Monte Carlo-style simulation.
Annotates agent output with inline source citations to eliminate hallucination risk. Ensures every metric, claim, and ticket reference is traceable to a specific data source.
| name | craft-unblock-message |
| version | 1.0.0 |
| description | Generates contextual, humble messages designed to unblock stuck tickets. Use when a stuck ticket needs a nudge comment. |
| category | communication |
| trigger | Stuck ticket detected, blocker watcher needs a draft comment, DM wants to proactively nudge a ticket. |
| autonomy | human-in-the-loop |
| portability | universal |
| complexity | intermediate |
| type | generation |
| inputs | [{"name":"ticket_context","type":"structured-text","required":true,"description":"Ticket context: identifier, status, assignee name, days stuck, linked blockers, PR info (state, reviewers, CI status, merge conflicts), last activity date, recent comments, sprint/milestone deadline if relevant.\n"}] |
| outputs | [{"name":"message","type":"text","description":"The message ready to post as a comment on the ticket."},{"name":"confidence","type":"text","description":"High | Medium | Low with one-line reason."}] |
| model_compatibility | ["claude","gpt-4","gemini","llama-3"] |
Generate a short, contextual message designed to unblock a stuck ticket. The message uses a question-first approach: never demand action, always ask a question that surfaces the real blocker.
Every message MUST lead with a genuine question. The goal is to surface the blocker, not to demand updates or assign blame. The assignee may have a valid reason the ticket is stuck; the question invites them to share it.
From the provided ticket context, determine the single most relevant signal. Use the context-to-question mapping below.
| Context Signal | Question Template |
|---|---|
| PR awaiting review (no reviewers assigned) | "Would anyone have bandwidth to review the PR for this one?" |
| PR awaiting review (reviewers assigned, no response) | "Is the PR still waiting on feedback from the reviewers, or has something else come up?" |
| PR with changes requested | "Are the requested changes on the PR still being worked on, or is there a blocker?" |
| PR with CI failing | "Is the failing check something you need help with, or a known flaky test?" |
| PR with merge conflicts | "Do you need help rebasing, or is this waiting on another merge?" |
| Blocked by external team/dependency | "Do we have a contact on {team} who could help with this, or is there another path forward?" |
| Blocked by linked ticket | "Is {blocker_id} still the main blocker, or has the situation changed?" |
| Stale with no activity (no commits, no PR) | "Are there any open questions on this one, or a blocker that hasn't been captured yet?" |
| Recent commits but no PR | "Is this still in development, or ready for review?" |
| Last commit was many days ago | "Has work shifted elsewhere, or is there a blocker we should know about?" |
| Last comment mentions waiting on someone | "Any update from {person/team} on {what they're waiting for}?" |
| Ticket has no comments at all | "Is this still on track, or has something come up?" |
| Sprint/milestone ending soon | "With {N} days left, do you think this can land, or should we carry it over?" |
| High priority and stale | "Given the priority, is there anything blocking this that we should escalate?" |
| Unresolved review threads on PR | "Are the review threads still being discussed, or can some be resolved?" |
| Anti-Pattern | Why It's Bad | Do Instead |
|---|---|---|
| Demand action ("Please update ASAP") | Creates defensiveness | Ask if help is needed |
| Blame ("You haven't updated this") | Accusatory | State neutrally: "No activity since {date}" |
| Passive-aggressive ("Just checking in") | Generic, no value | Ask a specific question |
| Ask "Why is this late?" | Confrontational | Ask "Is there a blocker we should know about?" |
| Use dashes (-, --, em dash) | Looks robotic | Use commas or periods |
| Tag multiple people | Creates noise | Address the assignee only |
| Bullet points or lists | Too formal | Write as flowing prose |
| All caps or exclamation marks | Aggressive | Keep calm and neutral |
| Generic "Any update?" | Lazy, no context | Reference data, ask targeted question |
| "This is overdue" | Judgmental | State duration neutrally |
Good:
Bad:
Ticket: {identifier}
Assignee: {name}
Primary Signal: {context signal used}
Message:
---
{assignee_first_name}, {Sentence 1: Context + Question}
{Sentence 2: Offer of help, if applicable}
{Sentence 3: Only if critical extra context}
---
Confidence: {High | Medium | Low}
Reason: {one-line justification}
If the assignee name is unknown, use "Hi" or omit the greeting. The message body must still lead with the question.
Before delivering, verify:
If any check fails, rewrite before returning.