Ren inbox
ren = 人 (human). Human-in-the-loop Vibe Coding workflow for Claude Code — 16 skills orchestrating the software lifecycle: intent → spec → code → verify → knowledge.
npx -y skills add HubertBiyo/ren-flow --skill ren-inboxAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
灵感收件箱 —— 两种模式。capture(默认)把日常工作里插队的需求 / 灵感随手记成一条带时间戳的 bullet,零摩擦、多窗口安全;triage(消化)跨日文件捞出所有未决项,逐条定出口(转 spec / 沉淀 note / 当场做掉 / 弃),并路由到对应 ren-* 技能。写入 .ren-flow/inbox/YYYY-MM/YYYY-MM-DD.md(月文件夹 + 一天一文件,与 journal 同构)。项目已有别的需求池系统时自动让位。触发:「记个灵感」「先记一下 inbox」「丢进收件箱」走 capture;「消化 inbox」「triage 收件箱」「整理收件箱」走 triage。
SKILL.md
8.8 KB, as published. Nobody here has run it
ren-inbox
启动必读
先 Read .ren-flow/attention.md。
inbox 不分域 —— 灵感是你一个人的捕获流,始终落在工作区根 .ren-flow/inbox/,不进 {domain}/。
这个技能干什么
把日常工作里插队的需求 / 灵感先接住,别让它打断当前活、也别丢。两种模式:
- capture(默认) —— 把一条灵感记成带时间戳的 bullet,标
⬜待消化。零摩擦、多窗口安全。触发:/ren-inbox <一句话>、「记个灵感」「先记一下 inbox」「丢进收件箱」。 - triage(消化) —— 跨所有日文件捞出
⬜待消化的未决项,逐条给出口建议并路由:够大→ren-spec/ren-roadmap、是知识→ren-note、<30min→当场做掉、不做→弃。触发:/ren-inbox 消化、「消化 inbox」「triage 收件箱」「整理收件箱」。
两层关系:capture 是随手捕获(每条一行,绝不互相覆盖);triage 是定期清账(把未决项一条条消化掉)。它和 journal 是相反时态 —— journal 记「做过的」(写完下沉),inbox 记「可能要做的」(决定前必须上浮)。所以它不取代 journal,也不取代项目已有的重型需求池 —— 见「落点判定」。
产物:.ren-flow/inbox/{YYYY-MM}/{YYYY-MM-DD}.md —— 月文件夹 + 一天一文件,结构镜像 journal。
为什么不另开 backlog 文件(核心设计)
inbox 的命门是「未决项不能沉底」。但不靠单独的 backlog 文件维护开放集,靠条目状态标:开放信号就是 ⬜ 这个方框本身(后面可带子态短词,见下),grep ⬜ .ren-flow/inbox/ 一抓就是全部未决项,跨日文件、永不沉底。结构因此能纯粹镜像 journal,一个多余文件都不加。绝不要再造 backlog.md / open.md。
抓开放集一律 grep
⬜这个方框,别 grep⬜待消化—— 那样会漏掉⬜待确认、⬜待上线这些子态。
落点判定(两种模式都先做)
读 .ren-flow/attention.md 的 inbox: 配置:
inbox: external—— 需求池由别的系统维护。ren-inbox 让位:不写,告诉用户「本工作区收件箱由原系统维护」,本技能结束。inbox: .ren-flow或未配置 —— 用.ren-flow/inbox/,继续。
capture 模式流程
1. 先读今天的文件(关键,不能跳)
Read .ren-flow/inbox/{YYYY-MM}/{YYYY-MM-DD}.md:
- 已存在 → 待会儿追加 bullet,不覆盖别的窗口已写的内容
- 不存在 → 待会儿新建(含
# {YYYY-MM-DD} ({周几})标题);月文件夹不存在则一并建
2. 取时间标识
跑 date "+%H:%M" 取当前时分作为本条记录标识。
3. 提炼成标题 +(按需)一条 detail
从用户这句话、或当前对话里冒出来的那个念头,提炼成一句话标题,定类型([需求]/[灵感]/[优化]/[bug]/[调研])。标题就一句话,够用就行,别凑字数也别硬压。
关键约束(「待产品口径」「纯数据卫生」之类)和日后 triage 要用的上下文,标题塞不下就挂一条 detail 子行,别往主行里硬塞成一长串。两层分工:
- 主行 = 一句话标题,让你一眼知道这是啥、能 grep、能扫
- detail 子行(可选,2 空格缩进)= 约束、背景、踩过的坑,triage 时不用重新追溯
短灵感一行就够,不用没事找事加 detail。
4. 写入
主行 - ⬜待消化 HH:MM [类型] 一句话标题,状态标放行首(方框一眼可见、还能 grep),追加到当天文件标题下,按时间先后排;要补上下文就在它下面挂缩进的 detail 子行。
- 文件里没有雷同条目 → 追加一条
- 有雷同(同一个念头之前记过、这次是补充)→ 就地更新,不新增
5. 给用户看一眼写入的内容
triage 模式流程
1. 捞出全部未决项
grep -rn "⬜" .ren-flow/inbox/ —— 抓方框,所有子态(待消化 / 待确认 / 待立项 / 待上线 / 待部署)一网打尽,不限今天。按类型 / 域聚一下,给用户一个清单。
2. 逐条定出口
对每条,给一个建议出口,并说一句为什么:
| 判断 | 出口 | 动作 |
|---|---|---|
| 够大 / 要排期 | ren-spec(单块)/ ren-roadmap(跨迭代) | 起规格 → 落 iterations/,回标 ✅已转(slug) |
| 是知识 / 结论 | ren-note | 沉淀 → notes/,回标 📌已沉淀(note 名) |
| <30min 小修 | 当场做掉 | 改完,回标 ✅已转(commit),记一行进 journal |
| 排查过、非 bug / 无需动作 | 收掉 | 回标 ✅已查(结论) |
| 不做了 / 过时 | 弃 | 回标 ❌弃(原因) |
用户确认后才路由 + 改标。一次消化一批可以,但每条都要落一个明确状态,不留模糊态。
3. 回写状态标(就地改,不删行)
把行首的 ⬜<子态> 改成终态标(✅已转 / ✅已查 / 📌已沉淀 / ❌弃),去向 / 原因放行尾括号((slug) / (结论) / (note名) / (原因))。保留原行作审计线索,别删 —— 日后回溯「这个灵感后来怎么了」全靠它。条目下若挂了讨论线,闭环时收成行尾括注(讨论是 scratch,用完即弃);个别值得长期留的结论转 📌已沉淀,不囤在 inbox。
4. 给用户看一眼这次消化了哪些、各自去向
状态标与子态
状态标永远在行首(紧跟 - ),方框 / 对勾一眼可见、又能 grep。分两类:开放(⬜,triage 的对象)和终态。
开放态统一是 ⬜ 方框,后缀子态短词标「卡在哪、该谁动」:
⬜待消化(默认)—— 球在我 / AI 这边:还没调研、还没给方案⬜待确认—— 球在你这边:AI 已给结论 / 方案 / 反问,等你拍板(产品口径、方案选择)才能闭环⬜待立项/⬜待上线/⬜待部署—— 已决定要做,卡在排期 / 上线 / 部署
子态只是给人看的「卡在哪」,triage 一律 grep ⬜ 全抓,不挑子态。
终态:✅已转 / ✅已查 / 📌已沉淀 / ❌弃,去向 / 原因放行尾括号(✅已转 … (74b5bac)、❌弃 … (前提不成立))。
一条条目同时「已转但还卡上线」时,行首挂开放的那个(如
⬜待上线,operative + grep 得到),已转的 commit、待办列进 detail 子行。
讨论线与文件格式
要来回拍板的条目挂讨论线、实际写入 / 重排文件需要细排版与示例时,Read references/format.md —— 讨论线写法、capture / triage 布局、文件格式示例与格式要点都在那里。日常 capture 只需记住:主行 - ⬜待消化 HH:MM [类型] 一句话标题,状态标行首、纯文字无加粗无表情。
退出条件
- 已做落点判定;
inbox: external时已让位,未误写 - capture:主行是
- ⬜待消化 HH:MM [类型] 一句话标题,状态标行首,长上下文落在 detail 子行而非堆主行,雷同已就地合并 - triage:每条处理过的都落了终态标,原行保留,已路由到对应 ren-* 技能 / 已做掉 / 已弃
- 记录写进
inbox/{YYYY-MM}/{YYYY-MM-DD}.md,月文件夹已建
容易踩的坑
- 又去造 backlog.md / open.md —— 开放集靠
⬜方框 grep,绝不另开文件 - grep 成
⬜待消化—— 会漏掉⬜待确认等子态,抓开放集只 grep⬜ - capture 没先读今天的文件就写 → 覆盖掉别的窗口已写的内容
- capture 把整段背景堆进主行 —— 主行一句话标题,上下文挂 detail 子行
- triage 把行删了 —— 必须就地改状态标、保留原行作审计线索
- triage 不给出口就放着 —— 每条必须有去向,留一堆
⬜不动 = 收件箱变垃圾堆 - 为分组而分组 —— 条目少就保持扁平时间序,
## 类型分组是 triage 攒多了才用的可选整理 - 把 journal 的活拿来这记(或反过来)—— journal 记做过的、inbox 记要做的,时态相反别混
- 项目已有重型需求池还硬记 ren-inbox ——
inbox: external让位,别造第二套