k-req
维护 `.kflow/requirements/` 下的能力愿景文档。三种模式 draft / backfill / update。触发:design 阶段起草愿景、acceptance 阶段落档,或用户说"刷新 requirements"、"补一份 req"、"先把愿景写下来"。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
维护 `.kflow/requirements/` 下的能力愿景文档。三种模式 draft / backfill / update。触发:design 阶段起草愿景、acceptance 阶段落档,或用户说"刷新 requirements"、"补一份 req"、"先把愿景写下来"。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
维护 `.kflow/architecture/` 这份只记现状的系统地图,三种模式 update / check / backfill。触发:用户说"刷新 architecture"、"做架构检查"、"补这个模块的架构文档"、"方案和代码对得上吗",或 feature 阶段需要先做架构动作。不写未来规划(走 k-roadmap)。
feature 流程阶段 3——验收闭环:对照 design 核实现 + 回写 architecture / requirement / roadmap,最后产出 {slug}-acceptance.md。触发:用户说"功能写完了验收一下"、"做最后检查"、"准备 merge"、"出验收报告"。前置依赖 k-feat-impl 完成。
feature 流程阶段 1——为新功能起草 {slug}-design.md 作为后续实现和验收的唯一输入,拍板后抽出 checklist。触发:用户说"开始设计方案"、"写 design doc"、"准备实现 XX",前提是已知道做什么、为谁、怎么算成功。
feature 流程阶段 2——按 {slug}-checklist.yaml 里 design 切好的 paradigm 维度 steps 推进,每步具体改哪个文件由 implement 自决,写完用统一格式汇报。触发:用户说"方案确认了开始实现"、"按方案写代码"、"开工"。前提是 design 已 approved 且有 checklist。遇到方案外情况要回方案谈不要硬冲。
issue 流程阶段 2——读 report + 读代码定位根因、评估风险,给用户 2-3 个修复方案让 TA 拍板。这一步不改代码。触发:用户说"分析这个 bug"、"找根因"、"定位问题",且已有 {slug}-report.md。
issue 流程阶段 3——按已确认根因和方案定点修复、验证、写 {slug}-fix-note.md 落档。两个入口:标准路径从 analyze 来,快速通道从 report 直接来。触发:用户说"开始修 bug"、"按分析修"、"动手改代码"。只动方案声明的文件,不顺手优化。
| name | k-req |
| description | 维护 `.kflow/requirements/` 下的能力愿景文档。三种模式 draft / backfill / update。触发:design 阶段起草愿景、acceptance 阶段落档,或用户说"刷新 requirements"、"补一份 req"、"先把愿景写下来"。 |
开始任何判断或动作前,先读取 .kflow/attention.md;缺失则视为骨架不完整,提示先补齐或运行 k-onboard。
.kflow/requirements/ 是项目的"能力清单"——每份描述一个能力因什么问题而产生、怎么解决、边界在哪,写成人话非技术读者也能看懂。架构文档讲"怎么搭",需求文档讲"为什么要有"。
req 是系统的能力愿景层——描述"用户需要什么、系统提供什么能力来满足"。三层时间深度用一个 status 字段区分:
draft:用户有这个需要,系统还没实现(未来愿景)current:系统正在满足(现在的能力)outdated:曾经满足过,现已移除或不再维护(过去的痕迹)draft req 可以独立于实现存在——用户说"我想要 X 能力"但还没想好什么时候做,可以先落一份 status: draft 的 req 把愿景定下来,后续 roadmap 排期、design 对齐时都有稳定参考。不做 roadmap 规划不等于不该有愿景文档。
draft → current 的主路径是 feature-acceptance:能力实现完成、验收通过后,acceptance 触发 k-req update 把 status 从 draft 改为 current,同时按实际实现刷新用户故事 / 边界(保留原始愿景不被覆盖,只在文末加变更日志)。
backfill 路径保留:已经在跑但从没写过 req 的能力,走 backfill 直接落 status: current。
不记"怎么分步实现"——那是 k-roadmap 的事。req 只回答"要什么、为什么",不回答"第几个 sprint 做、拆成几个子 feature"。
需求文档价值在扫一眼就抓到重点——用户故事在最前、痛点和解法各一段短的、边界用列表。AI 容易破坏这个特性的几种问题:
共享路径与命名约定看
.kflow/reference/shared-paths.md。一份样例看.kflow/reference/requirement-example.md——起草前读一遍对齐语气。
draft 起草愿景落 status: draft,后续 design 和 roadmap 都有稳定对齐基准draft 起草愿景(用户故事 / 痛点 / 解法 / 边界),落 status: draftupdate 升级为 current(保留愿景,追加变更日志);从未写过 req 的已存在能力 → backfill 直接落 current;已有 current req 的能力改了边界 / 用户故事 / pitch → update 刷新backfill)update)draft req 把定位定下来不适用:要写"技术上怎么搭" → k-arch;写单次 feature 方案 → k-feat-design;拍板长期规约 → k-decide;写外部"怎么用" → k-guide;大需求拆几轮做 → k-roadmap。
每次只动一份文档:
status: draftstatus: current为什么不允许多份?req 价值在每份都被读过——一次吐多份用户没精力逐份 review,最后要么粗糙合入要么放着不看。
纯内部重构 / 技术债清理 / 工具链改造不新增用户可感能力的 feature 不强制要 req。feature-design 标"本次不新增能力"即可,不要为凑一份硬写。
模式 + 目标文档 + 范围。
draft 模式:能力还没实现,凭用户素材(口述 / 产品想法 / 用户反馈)起草愿景。用户故事和痛点要真切,边界要写清楚"不管什么"——愿景的价值正在于把"要做什么"和"不做什么"的线画清楚。
一份 req 描述一个能力。用户说"把这模块的需求全写了"先问清:模块对外提供几个独立能力?每个独立能力一份不要塞一起。
共同必读:VISION.md(需求中心索引)+ requirements/ 下其他 req(判断要不要互引、有没有重复)+ 用户素材(口述 / 产品想法 / 用户反馈 / 已有 feature 散落需求描述)。
按情况读:可能承载这能力的 architecture doc(用于 implemented_by);相关已有 feature 方案;compound 沉淀(python .kflow/tools/search-yaml.py --dir .kflow/compound --query "{能力关键词}")。
draft 额外:和 roadmap 对一眼——如果已经有 roadmap 提到了这个能力,读一下了解预期的拆解方向,但 req 本身不绑定 roadmap 条目。
update 额外:当前文档全文 + last_reviewed 之后相关实现的变化(git log 粗扫 implemented_by 对应的代码模块)。
按下文"文档结构"写完整初稿不分批。用户故事 / 痛点 / 解法 / 边界四块经常有跨块矛盾(用户故事描述的场景和解法描述的路径对不上),只有放在一起才看得出来。
review 前自跑一遍。每条针对一种 AI 默认会犯的错:
自查结果简短汇报——发现问题就说怎么处理(删 / 改 / 补),不走过场。
完整初稿贴给用户。改到用户明确"可以了"。
requirements/{slug}.md,status: draft、last_reviewed 当天requirements/{slug}.md,status: current、last_reviewed 当天last_reviewed 当天;结构性改动大则文末 变更日志 加一条;draft → current 的状态升级是结构性改动,必须加变更日志requirements/VISION.md——按 status 分组列出所有 req,每条带 pitch 一句话和 status 标记---
doc_type: requirement
slug: {英文连字符;和文件名一致}
pitch: {一句话去技术化说清楚这能力,可直接当宣传素材}
status: current | draft | outdated
last_reviewed: YYYY-MM-DD
implemented_by: [] # 承载的 architecture doc slug 列表,可空
tags: []
---
# {标题 — 直接平铺说这能力是什么,不玩比喻}
## 用户故事
- 作为 {具体角色 / 处境},我希望 {能做什么},而不是 {现在怎么难受}
- ...(2-4 条,每条一行)
## 为什么需要
一段短的,讲这能力不存在时的痛点。非技术读者也能读懂。直接当宣传素材——痛点描述得越真切,对外讲这系统解决什么问题时就越有抓手。
## 怎么解决
一段短的,讲这能力大概怎么工作。**不写实现细节**——不提模块名 / 接口 / 算法。讲"用户体验上发生了什么"就够。
## 边界
- 它不管什么(哪些事情看起来相关但它不负责)
- 什么情况下别用它
- 用的前提(用户需要先做什么)
## 变更日志
- YYYY-MM-DD:{一句话描述}
doc_type: requirement / pitch / status / last_reviewed)pitch 读起来能直接当宣传词,draft 也能直接当宣传词(愿景也需要卖得出去)变更日志(含 draft → current 状态升级)| 方向 | 关系 |
|---|---|
k-arch 配合 | req 写"为什么要有"、architecture 写"怎么搭";arch doc frontmatter 用 implements: [req-slug] 反向链 |
k-brainstorm 可触发 | 磋商后愿景清晰时可触发 draft 模式起草愿景 req |
k-feat-design 可写 | design 读已有 req 对齐用户故事和边界;新能力首次设计方案化时触发 draft 模式起草愿景 req |
k-feat-accept 主路径 | 验收统一处理 req 落档:draft req 对应的能力实现完成触发 update(draft → current,保留愿景追加变更日志);从未写过 req 的能力触发 backfill(直接落 current);已有 current req 的能力改变触发 update 刷新 |
k-roadmap 配合 | req 记"要什么、为什么"、roadmap 记"怎么分步实现"。roadmap 条目可关联 req slug,但 req 不绑定具体 roadmap。draft req 不给 roadmap 压力——愿景可以先于排期存在 |
k-onboard 创建者 | onboard 建 requirements/ 空目录 + VISION.md 空骨架 |
status: current,或编造了解法细节假装已存在pitch 塞了技术黑话——宣传时抽不出来用