Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计未展示

wtf.write-taskwtf 写任务

Agent Skill

wtf.write-task 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

689

周安装

29

GitHub Stars

3

下载量

241
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:wtf.write-task(wtf 写任务)
来源仓库:https://github.com/xiduzo/wtf
仓库路径:skills/wtf.write-task
安装命令:
npx skills add https://github.com/xiduzo/wtf --skill wtf.write-task
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/xiduzo/wtf --skill wtf.write-task

简介

wtf.write-task 用于查找、检索和筛选相关信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中支持任务拆分与描述。
  • 通过 npx 命令从指定 GitHub 仓库安装并使用。
  • 安装前需确认权限范围、维护状态,注意是否触发联网或文件读写。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Write Task

Create a GitHub Task issue — the implementable unit of work. Core value: derives Gherkin scenarios directly from the parent Feature's Acceptance Criteria, so nothing gets lost in translation.

Process

0. GitHub CLI setup

Run the setup check from ../references/gh-setup.md. Stop if gh is not installed or not authenticated. Note whether the extensions are available — this determines whether native sub-issue and dependency links are created in step 10.

Skip this step if invoked from wtf.feature-to-tasks or wtf.write-feature (the orchestrator already ran it), or on re-invocations within the same session (e.g. "Write next Task" loop in step 11).

1. Identify the parent Feature

Search for recent open issues with label feature to populate options. Call AskUserQuestion with question: "Which Feature does this Task belong to?", header: "Feature", and options pre-filled with 1–2 likely open Feature issue references inferred from GitHub search (e.g. recent open issues labeled feature).

Fetch the Feature, then find its parent Epic via the sub-issue hierarchy:

gh issue view <feature_number>                                         # ACs, edge cases, user stories
gh sub-issue list <feature_number> --relation parent                   # find parent Epic number
gh issue view <epic_number>                                            # Goal, Context

If the Epic number was passed in as context (e.g. from an orchestrator), skip the gh sub-issue list call and use it directly.

2. Name the task

If a task description was passed in from the orchestrator (e.g. from wtf.feature-to-tasks step 3 or wtf.write-feature step 11), present it directly as the proposal without offering source options:

"Here's the task I'll write: *[task description]*. Does this look right, or would you like to adjust it?"

If invoked from wtf.write-feature or wtf.feature-to-tasks context but no description was pre-filled, call AskUserQuestion with:

  • question: "How would you like to define this task?"
  • header: "Task source"
  • options: [{label: "Propose from ACs", description: "Let me propose a task based on the Feature ACs (default)"}, {label: "Describe myself", description: "I'll describe the task myself"}]
  • Propose from ACs → based on the Feature's Acceptance Criteria, existing tasks, and the Proposed Tasks checklist from the Feature body, propose the next concrete unimplemented task. State it clearly and ask: "Does this task look right, or would you like to adjust it?"
  • Describe myself → ask: "What is this task implementing?" (one sentence)

If invoked standalone (no Feature context), ask directly: "What is this task implementing?" (one sentence — e.g. "Add date range filter to search API")

3. Clarify ambiguity before proceeding

Critically assess whether you have enough information to define a single, focused, implementable task. Cross-check the user's input against the Feature's Acceptance Criteria, Edge Cases, and the Epic's Goal.

Topics that may require clarification (in priority order):

  • Exact scope, entry/exit points
  • Data contracts and error handling
  • User roles and permissions
  • Performance requirements
  • Which Aggregate(s) does this Task modify or query?
  • What invariants must hold after the change?
  • What domain Events does this Task emit?
  • If this Task touches an integration boundary, which Bounded Contexts are involved?

Apply ../references/questioning-style.md throughout — one question at a time, AskUserQuestion with research-inferred options, skip what the Feature/Epic/codebase already resolve. Stop when you have enough to write a complete draft — do not invent answers or assume away ambiguity.

4. Explore the codebase and wiki

Use the Agent tool to search the codebase for:

  • Files and modules this task will touch (Impacted Areas)
  • Existing patterns that inform Technical Approach
  • Current interfaces at the integration point
  • Existing tests covering adjacent behavior
  • Dependencies (other tasks or systems that must exist first)
  • The Aggregate classes or modules relevant to this task — note their invariant-enforcement logic
  • Any existing domain Event definitions to reuse rather than invent

Also fetch any relevant wiki pages or in-repo glossary docs for this task's Bounded Context — check docs/glossary.md, GitHub wiki pages matching the context name, or any ADR files. Use these to verify Ubiquitous Language terms before writing Gherkin scenarios. If no wiki or glossary exists, proceed without comment.

Cross-feature dependency scan: Fetch the sibling Features from the Epic's Feature Breakdown checklist (already fetched above), then fetch the Proposed Tasks checklist from each sibling Feature's issue body:

# For each sibling Feature number extracted from the Epic's Feature Breakdown:
gh issue view <sibling_feature_number> --json number,title,body

Extract the task names and issue numbers (where linked) from each Feature's Proposed Tasks section. Then fetch the full body of any already-created sibling tasks to understand their scope:

gh issue list --label task --state open --json number,title,body

Filter this list client-side to tasks whose body references a sibling Feature number. Note any whose scope overlaps with or must precede this task. Keep these candidate dependencies in mind for step 5.

5. Vertical slice assessment

Run Stage 1 of ../references/scope-gates.md on the codebase findings from step 4. The Task-specific bar: touches every layer needed for one observable, user-facing behavior end-to-end (e.g. DB schema → service logic → API → UI) and is independently shippable without another unmerged task.

Evaluate:

  • Passes → proceed.
  • Too broad → propose smaller slices and confirm with the user.
  • Has dependencies → identify them explicitly, including tasks from sibling Features in the same Epic (surfaced in step 4):

- Tasks this task depends on (must be merged first — check if the code path exists yet; these may belong to the same Feature or a different Feature in the Epic) - Tasks that depend on this task (will be blocked until this merges)

For each cross-feature dependency found, state explicitly: "Task #X (in Feature #Y) must be completed first because [reason]." This makes the inter-feature ordering visible before committing to it.

Document all dependencies in the draft with GitHub issue references. For cross-feature deps, annotate the reason inline:

## Dependencies

- Depends on #42 (Feature #12 — payment aggregate must exist before settlement status can be read)
- Blocks #51 (Feature #15 — notification email requires this task's event to be emitted)

6. Ask about contracts

Call AskUserQuestion with question: "Are there specific API contracts, events, or data schemas I should know about?", header: "Contracts", and options pre-filled with 1–2 contract names or event names inferred from the codebase (e.g. existing API routes or domain events found in step 4). Include {label: "None — proceed without", description: "Skip this section"} as an option if nothing was found.

Use the answer to fill Contracts & Interfaces. Apply domain event naming rules from ../references/ddd-writing-rules.md — past-tense domain names, named from the domain's perspective. If "none", stub events with the domain Event names derived in step 3 rather than leaving them blank.

7. Generate Gherkin from Feature ACs

For each Acceptance Criterion in the parent Feature:

  • Write at least one Scenario (happy path)
  • Write a failure or edge case Scenario if the Feature listed one

Reference the contracts gathered in step 6 when writing scenarios — use the exact domain Event names, API operation names, and field names from those contracts in Given/When/Then steps so the scenarios align precisely with the implementation contracts.

Gherkin rules (vocabulary rules from ../references/ddd-writing-rules.md):

  • Scenarios describe observable outcomes — not internal state
  • Given/When/Then must be concrete and specific, not abstract
  • Each scenario must survive internal refactors — it tests behavior, not implementation
  • Use only Ubiquitous Language in steps — never reference implementation details (no "database row", "REST call", "HTTP 200", "mock", "table", "JSON field")
  • Domain actors appear in Given steps ("Given a Fulfilment Manager has an open Purchase Order")
  • Domain Events appear in When steps where they trigger behavior ("When the PaymentSettled event is received")
  • Business outcomes appear in Then steps ("Then the Order is marked as Fulfilled") — not system states ("Then the orders table has status = 'fulfilled'")

8. Draft the Task

Before drafting, verify .github/ISSUE_TEMPLATE/TASK.md exists. If missing, ask the user (per ../references/questioning-style.md) whether to run /wtf.setup or cancel — then halt either way.

Use the issue body structure from @.github/ISSUE_TEMPLATE/TASK.md (ignore the YAML frontmatter — use only the markdown body below the second --- delimiter). Fill in all sections with the gathered context. Replace the placeholder Gherkin scenarios with the ones generated in step 7.

Section-specific guidance:

  • Design Reference: Link the Figma frame if one exists; otherwise write "N/A — no design for this task."
  • Observability: Fill Logs, Metrics, and Alerts from the codebase patterns found in step 4. If the task has no production observability requirements, state "None required for this task" rather than leaving blank.
  • Rollout: Fill Feature flag, Backward compatibility, and Data migration only if applicable; otherwise write "N/A" for each.

9. Scope gate

Run Stage 2 of ../references/scope-gates.md on the written draft. Step 5 catches tasks that cannot ship alone; this step catches tasks that are simply too large.

Task-level split signals (heuristics — use judgement, not rigid thresholds):

  • More than 4 Gherkin scenarios covering distinct, independently shippable user journeys — not multiple failure modes for the same behavior (four ways a payment validation can fail is one behavior, not four tasks).
  • The Impacted Areas list spans more than 3–4 unrelated modules (e.g. API layer, database schema, frontend component, and a background job all bundled together).
  • The Technical Approach describes more than 5 distinct implementation steps that could each be merged separately without breaking anything.
  • The task contains both a schema/data migration and user-facing behavior — migrations are typically safer as a separate prior task.

Split strategy by signal:

  • Migration + behavior → propose the migration as task A and the behavior as task B; task B depends on task A.
  • Broad modules → split along deployment boundaries (backend task + frontend task, or data-layer + service-layer).
  • Too many Gherkin scenarios → split by user journey, keeping each task's scenarios tightly grouped around one observable outcome.

If no signals fire, proceed to user review. If one or more fire, follow the Stage 2 procedure: state the signals, explain the risk (large tasks increase review friction, merge conflict surface, and rollback complexity), propose a concrete split using the matching strategy, and call AskUserQuestion with the keep/split/stop options.

On Split it → return to step 2 with the chosen focused task description as the seed, reusing the same parent Feature. Carry forward codebase findings from step 4.

10. Review with user

Show the draft. Pay specific attention to Gherkin. Then call AskUserQuestion with question: "Do the scenarios cover everything from the Feature ACs?", header: "Review", and options: [{label: "Yes — looks complete", description: "Proceed with issue creation"}, {label: "Missing edge cases", description: "I want to add more scenarios"}, {label: "Other changes", description: "I want to adjust something else"}].

Apply edits, then proceed.

11. Create the issue and link to Feature

Note: Write each body to a temp file with the Write tool, then use --body-file to avoid shell quoting issues with multi-line content.

Title generation: Spawn a subagent using the claude-haiku-4-5-20251001 model to generate a concise title from the task description. Pass in the task description and ask for a short title (no prefix emoji/label needed — that is added below). If the subagent returns nothing usable, derive the title directly from the one-sentence task description provided in step 2.

Create the Task issue:

# Ensure the label exists before creating the issue
gh label create task --color e4e669 --description "Implementable vertical slice of a Feature" 2>/dev/null || true

gh issue create --title "🛠 Task: <title>" --body-file /tmp/wtf.task-$(date +%s)-body.md --label "task"

Print the Task issue URL and number.

Native relationships: If gh-sub-issue-available (from step 0), link this Task as a child of its Feature:

gh sub-issue add <feature_number> <task_number>

If gh-issue-dependency-available, create a blocking link for each dependency identified in step 5:

# For each issue this Task depends on (same Feature or sibling Feature):
gh issue-dependency add <task_number> --blocked-by <blocker_number>

If either extension is unavailable, warn the user — do not write relationship references into the issue body.

12. Offer to continue

Count remaining tasks by fetching the Feature's Proposed Tasks checklist (named items without issue numbers) and comparing against already-created child tasks via the sub-issue hierarchy:

gh sub-issue list <feature_number>

Subtract created task count from total named items in the Proposed Tasks list to get remaining. Mention how many remain.

Call AskUserQuestion with:

  • question: "What's next?"
  • header: "Next step"
  • options: [{label: "Design this Task", description: "Add design coverage for this Task now (default)"}, {label: "Write next Task", description: "Write the next Task for this Feature (N remaining)"}, {label: "Write a Feature", description: "Write a new Feature for the same Epic"}, {label: "Stop here", description: "Exit — no further action"}]

*(Replace N with actual count.)*

  • Design this Task → follow the wtf.design-task process, opening with: "Continue with task #<task_number>".
  • Write next Task → restart from step 2, reusing the same Feature. If the Feature's Proposed Tasks list has named-but-uncreated items, propose the next one as the default.
  • Write a Feature → proceed with wtf.write-feature, passing the Epic number in as context.
  • Stop here → exit.
Suggest clearing context before continuing if the conversation has grown long.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.03%
按下载量换算87

Claude

28.63%
按下载量换算69

Cursor

18.52%
按下载量换算45

Gemini CLI

10.17%
按下载量换算25

安全审计

暂无安全审计结果可展示。

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills