skills/capture-work-items/SKILL.md
Capture requirements, bugs, or issues from free-form input into structured, persistent artifacts. Use when user wants to record a work item quickly without deep validation.
npx skillsauth add nesnilnehc/ai-cortex capture-work-itemsInstall 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.
从自由格式的输入中捕获需求、错误或问题,并将其转化为结构化、持久性的产品。提供快速结构化记录,无需“分析需求”执行的深度验证。将输出路径与项目文档结构(例如项目文档模板)保持一致,并包括治理状态跟踪。
首要目标:将用户提供的需求、错误或问题描述转换为具有所有必填字段的结构化工作项,并将其保留到项目约定路径中。
成功标准(必须满足所有要求):
状态:已捕获strategic_goal_id,映射到项目 strategic-goals 中的某一目标(依据 ADR 20260417-unified-value-driven-prioritization-model 决策 3.4)priority: unset,等待 prioritize-backlog 批量评分prioritize-backlog验收测试:某人或下游系统是否可以阅读产品并理解完整的工作项目并在不提出澄清问题的情况下采取行动?
本技能负责:
本技能不负责:
转交点:当产品被持久化并且用户确认后,如果项目需要更深入的验证,则移交给“分析需求”,或者移交给流程管理/里程碑进行规划。
backlog-item 的 path_pattern(默认:docs/process-management/project-board/backlog/YYYY-MM-DD-{slug}.md 或 fallback docs/backlog/YYYY-MM-DD-{slug}.md;项目可覆盖为聚合式)upstream_ref(应指向上游 roadmap 条目或 requirement):在产出制品的 frontmatter emit parent: <upstream_ref>注:默认情况保留 §3 路径检测逻辑(docs/process-management/ 存在否决定 canonical vs fallback),但若项目在 ARTIFACT_NORMS.md 声明了显式 path_pattern,以项目声明为准。
使用解析规范(或合同默认值)选择输出路径:
|状况 |输出路径|
| :--- | :--- |
| docs/process-management/ 存在 | docs/process-management/project-board/待办/YYYY-MM-DD-<slug>.md |
|否则 | docs/待办/YYYY-MM-DD-<slug>.md |
如果子目录不存在,则创建它们。今天使用“YYYY-MM-DD”; <slug> 是标题中的 kebab-case。
开始时宣布:“我正在使用捕获工作项技能来记录此工作项。”
将输入分类为:
从输入中提取可用字段。按类型划分的必填字段:
|类型 |必填字段 | | :--- | :--- | |要求|标题、问题/需求、验收标准、strategic_goal_id | |错误|标题、描述、重现步骤、预期与实际、严重性、strategic_goal_id | |问题 |标题、描述、类型(任务|改进|问题)、strategic_goal_id |
strategic_goal_id 说明:
docs/project-overview/strategic-goals.md,呈现可选目标列表给用户design-strategic-goals对于任何缺少的必填字段,请询问用户一次一个问题。不要推断或猜测。
status: capture与用户确认产品已编写且完整。除非用户明确请求,否则不要提交版本控制。
捕获结束时(单项或批量),执行以下 suggest 动作:
priority: unset 的条目总数"Backlog 当前有 N 个未定优先级的条目。建议在下次 planning 前运行
prioritize-backlog批量评分。此技能不会自动调用 —— 由用户决定时机(批量评分在有对照组时质量更高)。"
prioritize-backlog(理由见 ADR 2 决策 3.7.1:两技能节律不同,强行链式破坏评分质量)带有 YAML front-matter 的结构化工作项 Markdown 文件。模板如下。
---
artifact_type: backlog-item
created_by: capture-work-items
lifecycle: living
type: requirement
date: YYYY-MM-DD
status: captured
priority: unset
strategic_goal_id: [goal-N]
source: [user|meeting|email]
trace_id: optional
---
# [Title]
## Problem / Need
[Who has what problem; no solution language]
## Acceptance Criteria
- [ ] [Criterion 1]
- [ ] [Criterion 2]
## Notes
[Optional]
---
artifact_type: backlog-item
created_by: capture-work-items
lifecycle: living
type: bug
date: YYYY-MM-DD
status: captured
priority: unset
strategic_goal_id: [goal-N]
severity: [critical|major|minor]
---
# [Title]
## Description
[What goes wrong]
## Steps to Reproduce
1. ...
2. ...
## Expected vs Actual
- **Expected**: ...
- **Actual**: ...
## Environment
[Optional]
---
artifact_type: backlog-item
created_by: capture-work-items
lifecycle: living
type: issue
subtype: [task|improvement|question]
date: YYYY-MM-DD
status: captured
priority: unset
strategic_goal_id: [goal-N]
---
# [Title]
## Description
[Content]
该技能仅设置“状态:捕获”。下游流程(里程碑、升级迭代任务、运行检查点)可能会更新为:“分类”、“进行中”、“完成”、“阻止”、“取消”。
strategic-goals.md 不存在时 halt 并建议先运行 design-strategic-goals,不得留空或推断。不要做这些(其他技能可以处理它们):
何时停止并交接:
priority: unsetprioritize-backlog(但未自动执行)待办/子目录某人或下游系统是否可以阅读产品并理解完整的工作项目并在不提出澄清问题的情况下采取行动?
如果否:必填字段不完整。返回提示阶段。
如果是:捕获完成。根据需要进行交接。
用户:“当我在密码字段中使用特殊字符时,登录页面显示 500。”
代理宣布:“我正在使用捕获工作项技能来记录此工作项。”
分类:分类为错误。
摘录:存在标题和描述;重现步骤、预期与实际、严重性缺失。
提示(一次一个):
特工:“重现这个的具体步骤是什么?”
用户:“1. 转到 /login 2. 输入任意用户名 3. 输入带有 @ 或 # 的密码 4. 单击“登录””
特工:“你的预期与实际发生的情况有何不同?”
用户:“预期:正常登录或验证错误。实际:500 内部服务器错误。”
特工:“您会分配什么严重程度:严重、严重还是轻微?”
用户:“少校。”
持久:检测到路径 - docs/process-management/ 存在。写入“docs/process-management/project-board/待办/2026-03-06-login-500-special-chars.md”。
确认:“已写入。您想要调整任何内容还是移交分类?”
用户:“我们需要更好的错误消息。”
代理宣布:“我正在使用捕获工作项技能来记录此工作项。”
分类:分类为要求(可能是问题;代理选择要求作为默认的“需要”)。
摘录:标题可推导(“更好的错误消息”);缺少问题/需求和验收标准。
提示:
代理:“谁遇到了这个问题?当前的错误消息到底出了什么问题?”
用户:“我们的 API 用户得到的是通用的‘出了问题’,但没有任何可操作的信息。”
特工:“‘完成’会是什么样子——至少有一个具体的验收标准?”
用户:“错误响应应包括代码(例如 ERR_001)和一条简短的人类可读消息,解释出现的问题。”
持续:检测到路径 - docs/process-management/ 不存在。写入“docs/待办/2026-03-06-better-error-messages.md”。
移交建议:“这可能受益于分析需求的更深入验证。仅继续捕获,还是移交进行全面分析?”
用户:“暂时只捕获。”
确认:“已书面。准备好后交给分诊。”
用户:“两件事:1)更新自述文件安装部分。2)添加 CONTRIBUTING.md。”
特工宣布:“我正在使用捕获工作项技能。我看到两个单独的工作项。我将一次捕获它们一个。”
第 1 项 — 类型:问题(任务)。标题:“更新自述文件安装部分”。描述:来自上下文。保留为“2026-03-06-update-readme-install.md”。
第 2 项 — 类型:问题(任务)。标题:“添加 CONTRIBUTING.md”。描述:来自上下文。保留为“2026-03-06-add-contributing.md”。
确认:“两个项目均已捕获。如果需要,请检查并调整。”
development
Generate an LLM agent test suite (golden cases, mock-LLM unit tests, evaluator harness) from an agent implementation and its agent-test contract. Use when an agent has no tests, or a contract exists but the test code is missing.
development
After code changes, auto-detect the project's build system and local deployment method for a given directory, then build the project and restart its locally-deployed environment (Docker Compose / systemd / process manager). Never assumes — asks only when detection is ambiguous. Caches detected commands per project in .cortex/redeploy-local.yaml; re-invocations on the same project skip re-scanning until signal files change, the cache expires (30 days), or the skill version bumps.
tools
Publish a NATS message conforming to a cross-team contract, using NATS MCP tools. Authors the contract on first use if missing. Reads project-level cache (.cortex/nats.yaml) to avoid re-prompting basics across sessions.
tools
Drain pending NATS messages from a producer contract via NATS MCP tools (default batch / drain-style). Applies Tolerant Reader semantics and per-message ack/nak/term, returning aggregated stats. Reads project-level cache (.cortex/nats.yaml) to avoid re-prompting.