详情

首页手游攻略 outstanding-items:AI Agent 工具实践指南

outstanding-items:AI Agent 工具实践指南

佚名 2026-09-30 09:00:04

真正理解outstanding-items,要从它处理的任务开始:外包你的记忆——一种精心策划的工作体验,一个可安装的 OpenAI 和 Claude Code 插件,带有一个用户拥有的分类帐。对数据与知识处理任务来说,数据结构、更新策略和可追溯性会决定结果是否可信往往决定它能否落地,不能只用安装成功来判断。试跑可以从用一份规模可控且答案已知的数据集试跑开始,并把模式兼容、增量更新、查询结果和来源追踪写进验收记录。我会把它列入需要保留数据来路与变更记录的使用者的候选清单,而不是仅凭项目介绍直接纳入生产。

EthanSK/outstanding-items 项目截图 1

优秀项目

外包你的记忆——精心策划的工作体验。

Codex 和 Claude Code 的可安装插件,可以保留您所要求的所有内容的列表,一次只为您提供一件事 - 而且,故意,仅此而已。

它保存着列表。 你可以自由交谈——包括与特工当前正在做的事情无关的旁白——并且每一项都被永久的 ID 捕获。列表本身不参与对话:它位于分类帐中,并且在本地编辑器中,您可以一键打开。

它向您展示一件事。 每个回合都会以两行或三行建议结束,该建议直接从它认为您下一步应该做的单个项目开始,加上指向其他所有内容的链接。没有标题可以读过去。它在最终响应中出现一次,因此进度喋喋不休永远不会变成同一列表的三个副本 - 并且没有“完成”部分,没有计数,也没有可以浏览的项目墙。

它策划,策划提出。 这句话是给你的建议,第一步很小,如果有帮助的话,还有一个理由。 您决定,然后开始。

Rule #1 — the outstanding items belong to you

账本是您的记录,而不是代理的工作队列。列出、排序、排名、同步或推荐项目绝不授权代理启动、恢复、继续、调查、研究、准备、做前期工作、调度、路由或完成它。只有您命名特定项目的新鲜、明确的指示才能做到这一点。 “将此添加到未完成的项目”意味着添加它,而不是其他。

网址:https://ethansk.github.io/outstanding-items/

状态

工作,并且目的简单。这是一个基于开放代理技能格式构建的仅限技能的插件,带有一个小型可选本地编辑器:一个规范的 SKILL.md 操作合约、八个重点参考文献和一个标准库 HTML 分类账 UI。 OpenAI的插件格式和Claude Code的插件格式打包在同一个文件夹中。故意不支持直接独立安装,因此每个线束都有一个发现路径,并且无法显示重复副本。安装插件不会启动任何内容,也不会打开任何端口。在 Git 项目聊天中,其规范的每个聊天 JSON 账本默认位于项目忽略的 .outstanding-items/ 目录下;可以明确禁用项目存储。当您打开“完整未完成项目”视图时,一个仅环回进程会编辑该任务的规范 JSON 文件;它不是跨任务服务或数据库。该技能仍然不会授予代理人对您的工作的任何权力。它可能会在本地记录真正有用的跨任务关系,但该链接永远不会授权联系或更改其他任务;即使发送仅内存增量也需要单独的显式指令和非唤醒传送机制。

它实际上做了什么

行为 你所看到的
多请求跟踪 每个请求都会获得一个永久的 OI-n 密钥以及可见的 P0–P3 优先级,例如 OI-12-P1。
接受不相关的旁白 “提醒我询问设计频道”是在任务中捕获的,从未因偏离主题而被拒绝。
无需佣金即可捕获 添加到列表中的内容会被记录、确认并保留,直到您另有说明为止。
没有丢失的松散末端 您的任何具体的未解决的审查、决策、输入、验证或后续行动都会自动捕获为代理。该代理人仍然从未发明过填充物或投机项目。
严格来源徽章 您 意味着您明确要求提供该分类帐条目。自动捕获的正常工作请求就是Agent;将徽章悬停在上面会让人想起导致其被捕获的具体讨论点。
每回合一脚 最终响应末尾有两到三行:一个建议的项目、一行关于该项目的可选行以及指向其余项目的链接。评论和进度消息保持干净。
聊天中没有其他内容 没有计数、没有部分、没有提醒、没有完成列表、没有“+7 更多”。只需点击一下即可查看完整分类账,而不是滚动一下。
划掉的“完成”组 已完成和已取消的项目会移至编辑器底部并被删除,因此您无需每次都阅读即可审核发生的情况。
自动完成对账 每次账本交互都会检查记录的证据并将真正完成的工作移至“完成”。已完成的代理项目永远不会仅仅为了要求多余的接受而保持开放状态。
诚实的身份标签 requested / in-progress / implemented / verified 是四种不同数量的证明,技能可能不会四舍五入。
非许可证的标签 in-progress 记录启动它的指令。当回合结束时,许可也结束。
有意提醒 故意停放的东西被标记为 reminder——可见,从未启动,从未悄然退休,从未被打扰。
卡住和你的之间的真正区别 需要您点击、按键或批准的内容是 waiting-on-you,并具有确切的操作。 blocked 是为真正的外墙保留的。
给你一个建议 一个项目、一个可能的小第一步、一句推理——然后就等着了。忽略它,下次它会选择其他内容,或者什么也不说。
规范项目-聊天账本 在Git项目中,默认每个聊天都会获得一个私有的.outstanding-items/<task-id>/outstanding-items.json,目录添加到.gitignore。显式标志会关闭项目存储。
可编辑完整未完成项目 安静的本地列表:单击任务文本进行编辑,拖动或使用键盘控件设置持久的手动位置,并使用临时撤消操作检查其是否完成。已完成的项目保留在底部。
显式 P0–P3 优先级 每个可见引用都以 P0、P1、P2 或 P3 结尾。在编辑器中更改它;自动排序在可操作性之后和新近度之前使用它。
简单明了的细节披露 将小插入符号悬停或聚焦在拖动夹点上方(或点击它),一个独立的注释就会恢复功能、问题、风险和准确的决定,而无需假设您记住了该任务。
在 Codex 中打开一项 使用紧凑的 ↗ 操作打开一个新的 Codex 任务,其中包含该项目的已保存上下文和未发送的简单说明请求以及下一个操作。
可审计的所有权转让 将工作转移到另一个任务会在此处保留其状态和注释作为只读历史记录,而不是假装它已完成。
注册相关任务 有用的关系可以通过标题加上稳定的 ID 存储在本地。它不接触任何东西;单独授权的仅内存增量仍然不会启动任何内容。

真正的页脚看起来像这样——每轮一次,在最终响应的末尾:

**OI-5-P1 Add rate-limit docs to the handbook** `You` — planned
Draft the limits table first, about twenty minutes; nothing else is waiting on it.
[Full outstanding items](http://127.0.0.1:PORT/?token=LOCAL_TOKEN)

这就是全部事情。其中一项(它认为您下一步应该做的一项)是一个可选行,说明如何开始以及为什么开始,以及指向其他所有内容的链接。其他九项,你停放的提醒,以及你完成的一切都还在那里;它们在编辑器中,而不是在您的聊天中。

该链接与本地编辑器打印的 URL 完全相同。如果没有运行编辑器,则该行根本不存在 - 该技能不会发明 URL 来填充空间:

**OI-8-P0 Approve the staging deploy** `You` — waiting-on-you
Click approve in the deploy UI; it is the one thing left that only you can do.

当仍有正在进行的工作时,页脚始终会命名一项。忽略一项建议会转向另一项可操作的项目;在考虑了每一个替代方案之后,最好的仍处于开放状态的项目将返回有用的当前第一步。被阻止的父级永远不会产生沉默:分类帐捕获其最近的有用先决条件、解决方法、决策或明智的 time/condition-bound 检查作为单独的 代理 项目,然后从该可操作的边界进行建议。它不会发明忙碌的工作或假装可以加速外部等待。

如果分类账根本没有未清项目,代理首先检查当前请求、结果、阻碍、决策和未经验证的结果,以了解您仍然需要查看的任何具体内容。真正的松散结局被添加为代理。只有真正的空列表才会显示 **No outstanding items**;代理人发明填充物不仅仅是为了避免诚实的结果。

OI-n 部分是永久性的。没有任何东西被重新编号,所以你十回合前所做的参考仍然指向同一件事。可见的后缀是该项目的当前优先级,因此当其优先级更改而不创建新项目时,OI-5-P2 变为 OI-5-P0。为了兼容性,工具仍然接受稳定的 OI-5 引用。如果您想要聊天中的整个列表,请提出要求 - 您可以在答案中获得一次,并且页脚保留一行。

在 Codex 中,推荐的项目可以以仅悬停的 ↗ 结尾:其故意不存在的目标包含该项目的完整说明。悬停即可阅读;单击不会打开文件。仅当用户确认其主机显示目标文本时才使用此选项。单独的完整未清项目链接仍会打开可编辑分类帐。

完整的突出项目是编辑器,而不是原始文件

因为页脚命名了一项,所以完整未完成的项是其其余部分所在的位置 - 一个私有的本地 HTML 视图,而不是一个巨大的 Markdown 或 JSON 文件。积极的工作位于优秀下。静止时,紧凑的复合引用 (OI-12-P1) 位于任务文本上方的细元数据行中,回收单独的 ID 列会浪费的宽度。真正的复选框位于内容旁边。 P0–P3 后缀是可访问的内联控件:P0 最高,P2 中性默认值,P3 最低。更改它会更新相同的项目,而不是重命名其永久 OI-n 密钥。当来源已知时,一个微小的 You 或 Agent 药丸会立即在文本后面流动,因此它不会保留单独的列或强制提前换行。 你刻意严格:只有当你明确要求将该特定事物添加到未完成项目中时,它才会出现。如果您只是请求或讨论基础工作并且代理自动捕获它,则该药丸是代理。将鼠标悬停在药丸上以回忆导致捕获的确切讨论点 - 例如,“一名特工添加了此内容,因为部署仍需要您的批准。”较旧的项目保留诚实的缺失触发数据,而不是接收发明的历史记录。单击文本创建内联编辑器;在该交互之前不存在空白输入。自动项目按照可操作状态合理排序,然后是 P0→P3 优先级,然后是最新相关性,因此高优先级对等项不会被埋没。使用重新排序夹点拖动或使用键盘移动控件设置持久的手动位置;自动调节不会影响所选的时间段。检查任务是否完成会将其移动到底部并显示带有撤消的临时小吃栏。

整行不再在悬停时触发项目详细信息。一个小插入符位于现有拖动夹点上方,使用相同的操作列而不是从任务文本中获取宽度。将光标悬停或通过键盘聚焦插入符号可预览该项目的 ID、友好状态短语和简短的操作优先说明;在悬停不可用的地方单击或点击它。双击该行以保持同一注释打开,或聚焦任务文本并按 Alt+Enter。固定解释的行为类似于非模式对话框:通过右上角按钮或使用 Escape 关闭它,然后正常双击其文本以选择它,而不激活下面的项目。在指针打开对话框后,Escape 还会清除双击选择,而不是让任务看起来集中进行编辑;键盘打开的对话框保留键盘焦点。单击任务文本仍可编辑。解释使用命令式 Git 提交主题样式 — Write a LinkedIn post…,而不是 This is the idea to… — 并假设您可能会在几个月后返回而没有任务上下文。每条注释都列出了特征或表面、具体问题或结果、有用的利害关系以及仍然需要的确切决定或行动;它解释领域术语,而不是依赖旧的项目编号、任务标题或记住的架构。在该字段存在之前保存的项目以项目标题开始回退,并且每行的文本都呈现为文本,而不是标记。

悬停预览和展开的注释显示添加项目的时间,及其完整日期、本地时间、秒数和时区。新的捕获可以节省一次时间;编辑、重新排序、完成或重新打开项目会保留它。未记录创建时间的较旧项目会这样说,而不是显示猜测的日期。

活动行还可以在现有控件列中保持紧凑的 ↗ 在 Codex 中打开 操作可见,因此它不会向任务文本添加宽度,并且不依赖于发现仅悬停控件。更安静的拖动和键盘移动控件仍然会在悬停或焦点时显示。该操作将打开一个新的正常 Codex 任务,其中包含仅包含该项目已保存上下文的预填充提示,要求简单的解释和单个下一个操作,并明确告诉 Codex 在此停止。不会自动发送提示,不会更改分类帐,并且已完成或传输的行不会显示操作。

仍然只有一个账本:任务拥有的 outstanding-items.json。 UI 通过绑定到 127.0.0.1 的令牌保护服务器读取并原子写入该文件;它不会在 HTML 或浏览器存储中存储任何副本。它的私有连接记录通过正常重新启动保留相同的本地 URL,因此旧选项卡会重新连接,而不是因 Failed to fetch 而死亡。服务器对其通用 HTML、CSS 和 JavaScript 进行快照和指纹识别,并在启动时对其本地 Python 运行时进行指纹识别;更高版本的 start 替换旧的 UI 或服务器行为,而不是在插件刷新后静默重用它。代理端更改会更新相同的 JSON,并且打开的页面会在两秒内注意到新的修订。如果两个编辑竞争,陈旧的编辑将被拒绝并重新加载,而不是覆盖新的工作。每当特工接触该分类账时,它还会检查记录的证据,并将真正经过验证或故意丢弃的项目移至“完成”。它不会仅仅为了要求您接受它已经拥有的证据而将已完成的 代理 项目保持打开状态。

当您显式地将所有权转移给另一个任务时,原始记录保留在 JSON 中,其状态和证据不变。它们进入折叠的只读 其他地方拥有 部分,保留活动计数,并显示目标任务标题、稳定 task/session ID 和移交日期。在 Codex 上,当任务重命名时,本地编辑器会按照精确的 ID 刷新缓存的目标标题;它从不读取任务的轮次、唤醒它或向其发送消息。

通用的 HTML、CSS 和 JavaScript 附带该技能,因此当数据更改时不需要重新生成页面。迁移的 Markdown 账本将作为冻结源快照保留,然后不再更新。请参见数据模型和编辑器操作。

对于项目支持的聊天,代理在第一次捕获之前解析分类帐:

python3 ledger_ui.py project-ledger --project-root /path/to/project --task-id <stable-task-id>

默认情况下,项目存储处于打开状态。该命令将聊天分开,创建私有 0700 目录和 0600 分类帐,并将 /.outstanding-items/ 附加到根 .gitignore 一次。 --no-project-storage 是显式选择退出并且不写入任何内容。当项目后来进入范围时,现有的规范分类账不会被悄悄复制,因为两个分类账会比一个旧位置更糟糕。

谁拥有什么

这是整个项目围绕的部分,因此值得直言不讳。

信号 它是否授权代理启动?
该项目在列表中 不。
该项目在上一轮被建议作为下一步行动 不。
该项目具有最高优先级,或排序到顶部 不。
该商品标记为 in-progress、planned 或 implemented 不。
相关任务发送了有关它的增量 不,这是一次内存更新,并这么说。
显然是下一个、旧的、紧急的或阻塞其他一切 不。
您说“将此添加到未完成的项目中”或“记住此” 不。
客服人员对列表进行了整理、排序或总结 不。
你说“现在开始OI-4-P1” 是的——那一项。

完整的决策表以及推理和困难案例位于 references/authority.md 中。

状态标签

使账本值得信任的另一件事是:该技能可能不会要求它没有攀登的梯级。

标签 手段 所需证据
requested 你在某个时候想要它。没有任何决定或开始。 没有任何。这不是开始的指令。
planned 存在并阐述了一种方法。一切都没有改变。 方法一言以蔽之。
in-progress 您明确表示要启动此项目,并且现在正在处理该项目。 您自己的开始说明,写在注释中。
implemented 改变已经做出,但尚未证明有效。 代理在此任务中执行的编辑或操作。
verified 事实证明,这一改变是有效的。 命令输出、通过检查或您现在观察到的确认,或者已保存在规范项目中并立即检查的确切完成证据。
waiting-on-you 它需要你亲自:一次新闻、一次批准、一次选择、一份证书、一次接受。 确切的动作,写在祈使句中。
blocked 在尝试了范围内的每条安全路线之后,真正的外部僵局。 阻止者和已经尝试过的事情。
reminder 有意提醒:故意停车,无执行请求,无截止日期。 没有任何。它会等到你给它一个。
dropped 故意不做。 谁决定的,为什么。

implemented 永远不会成为 verified 因为某些东西“应该”起作用。这里的大部分工作由三个区别完成:

  • 标签不是许可证。 in-progress 是对您授权的轮次的描述。当该回合结束时,许可也随之结束——恢复需要你再说一遍。
  • waiting-on-you 不是 blocked。 “已阻止”读作“无事可做”,并被忽略一周。如果唯一缺少的是你的点击、你的按键或你的“是”,分类帐就会这样说并告诉你到底要按什么。
  • reminder 不是一个被忽视的请求。 它是故意停放的,因此它保持可见并且永远不会自行退出。普通的、可操作的工作是第一位的;如果提醒是唯一活动的未完成项目,则它可以是推荐,而无需更改状态或开始任何操作。

完整定义、转换和反模式:references/status-labels.md。

外包你的记忆——精心策划的工作体验

技能的后半部分,以及页脚为一行的原因。账本知道什么是未完成的;策展决定哪些单品值得放在您面前——提供给您,由您决定。

**OI-4-P1 Focus ring on interactive elements** `You`
About twenty minutes, and you already have that file open.
[Full outstanding items](http://127.0.0.1:PORT/?token=LOCAL_TOKEN)

这个选择的内容——作为判断来衡量,而不是作为分数:

称重 含义
依赖关系 完成这件事会让其他事情成为可能吗?有什么东西已经在等待了吗?
势头 你已经进入这个文件、这个想法、这种心情了吗?重新启动是昂贵的部分。
努力对抗价值 最小的事情却能带来真正的回报。二十分钟的结果胜过三小时的里程碑。
您的可用性 你现在可以拿起它吗?永远不会建议屏蔽父级;其捕获的可操作先决条件或后续措施可能是。有些事情很可能需要你的批准。
紧迫性 仅实际后果。年龄并不紧迫,列表的长度也不是。
负载 你现在携带的是什么。经过长时间的推动,诚实的建议是最小的有用的重启,措辞没有压力。
自主性 这是你的决定。这条线提供的是一个行动,而不是对你一周的判断。

以及防止它成为生产力讲座的规则:

  • 它提出建议,然后等待。 建议绝不是代理执行的计划,也绝不是开始的许可。
  • 一项,一小步,一句话。 没有框架,没有分数,没有编号计划,没有亚军,没有计数。
  • 这是写给你的。 关于助理将继续做什么的台词不是你的下一步行动,也是不允许的。
  • 它永远不会编辑账本。 没有任何东西会被丢弃、重新排序、合并、隐藏或取消优先级,因为它不是被选择的东西。未建议的项目与原来一样开放。
  • 你的优先事项获胜。说出你想要什么,它就会立即停止,并且没有反建议。
  • 校准,不自信。如果是千钧一发,它会这样说——并将替代方案留在编辑器中,而不是将该行变成菜单。
  • 重复之前旋转。 忽略它,下一回合将考虑另一个可操作的项目。一旦考虑了每一个替代方案,最好的仍然开放的项目可以返回更新的第一步。它永远不会自行启动。
  • 保留可操作的边界。 如果父项被阻止,则捕获最近的诚实解锁或未来检查作为其自己的项目。 **No outstanding items** 是为真正空的活动账本保留的。

称重、措辞以及应拒收的情况:references/next-action.md。

相关任务,无需唤醒任何东西

如果另一个对话应该知道您的其中一个项目,该技能会注册一次——可见的标题加上稳定的 ID——并准备一个仅内存增量:一个更改,附加措辞,用一行简单的文字说明它不授权任何实施,也不启动任何内容。

它只会通过一种不会在目的地开始转弯的机制来传递该注释。如果唯一可用的工具可以唤醒、恢复或分派该对话,则增量会被标记为 prepared (not sent) 并交给您 - 因为作为指令到达的注释会将其他人的积压工作变成未经授权的工作。

注册表架构、交付门、循环预防和故障措辞:references/related-tasks.md。

安装

该存储库是两个插件系统的市场。在任一线束中安装相同的打包技能:

法典插件

codex plugin marketplace add EthanSK/outstanding-items
codex plugin add outstanding-items@outstanding-items

安装后启动一个新的 Codex 任务,以便它获取捆绑的技能。

刷新本地开发副本

对此存储库进行任何连贯的本地更改(包括您在代理任务之外进行的更改)后,一个命令会验证存储库,在需要时将此结帐注册为本地市场,安装缓存无效的副本,逐字节恢复创作的清单,并验证已安装的版本:

python3 scripts/sync_plugin_dev.py

每当您、他们或其他代理在本地更改任何内容时,存储库代理都会在启动并运行此命令时检查工作树,然后再完成。使用 --dry-run 检查确切的流量。在验证插件后,该命令还会删除任何清单拥有的旧版独立 Codex 副本。修改过的或无主的文件永远不会被删除;如果无法证明旧的手动副本可以安全删除,该命令将停止并解释原因。 Codex 在新任务中加载刷新的插件技能,而不是追溯至执行重新安装的任务中。

对于 Git 支持的市场版本,请在重新安装之前刷新其快照:

codex plugin marketplace upgrade outstanding-items
codex plugin add outstanding-items@outstanding-items

插件清单没有自我更新 URL。市场刷新和插件安装是单独的操作,这就是本地开发命令显式执行这两项必需检查的原因。

克劳德代码插件

claude plugin marketplace add EthanSK/outstanding-items
claude plugin install outstanding-items@outstanding-items --scope user

运行 /reload-plugins 或启动新的 Claude Code 会话。 Claude 在其插件命名空间下公开了捆绑技能。

删除旧的独立安装

仅插件包之前的版本包含直接安装程序。如果该旧副本仍然存在,请在安装插件后将其删除:

sh scripts/uninstall.sh --dry-run --target codex
sh scripts/uninstall.sh --target codex

它仅删除清单列出的旧文件,其哈希值仍与旧版本安装的内容匹配,然后删除目录仅当它们为空时。您手动添加或编辑的文件将被单独保留并报告。如果清单丢失,它会拒绝猜测。新安装使用上面的插件命令;没有独立的安装路径。

不请自来就让它着火

利用从 description 字段中发现技能,这就是触发短语被写入其中的原因。为了使调用更加可靠,请在全局代理指令中添加规则。这是可选的;没有它,该技能就可以发挥作用。

法典 — 附加到 ~/.codex/AGENTS.md:

## Outstanding items
Use the `outstanding-items` skill in any task with more than one request.
The outstanding items belong to me. Capture asides even when they are unrelated,
automatically add every concrete unresolved thing I still need to review, decide, provide, verify, or return to as `Agent`,
check for such loose ends before saying there are no outstanding items, and never invent filler when nothing remains,
use `You` only when I explicitly asked to add that entry to Outstanding Items
(a normal work request captured automatically is `Agent`),
store the exact discussion point that caused each known-origin capture,
keep the ledger silently while you work, and end the final response of each turn
with one compact recommendation: the single item you think I should do next,
immediately followed by its compact `You` or `Agent` source marker,
at most one line about it, and nothing else — no list, no counts, no reminders,
no Done section. Never put it in commentary or progress messages. When a local
ledger UI is running, put **Full outstanding items** on the footer's last line
using the exact URL it printed; with no live UI, write no link at all. Do not
rotate away from a suggestion I ignored or declined while another actionable
item exists; after every alternative has been considered, return the best
still-open item with a current first step. Anything needing my click, key, or approval is
`waiting-on-you`, not `blocked`. Never start, resume, investigate, research,
prepare, do pre-work for, dispatch, route, hand off, continue, or complete an
item unless my current message names it and tells you to. That authority ends
with the response turn. If I ask for the whole list, give it to me in the answer
and keep the footer to one line. In a Git-project task, create or resolve the
per-chat ledger under `.outstanding-items/<task-id>/`, add `/.outstanding-items/`
to the project's `.gitignore`, and keep project storage on unless I explicitly
opt out.

克劳德代码 - 附加到 ~/.claude/CLAUDE.md:

## Outstanding items
Use the `outstanding-items` skill in any session with more than one request.
The list is mine. Maintain it silently while you work and end the final response
of each turn with one compact recommendation naming a single suggested item
with its compact `You` or `Agent` source marker immediately after it
— never in commentary or progress messages, and never as a list, a count, or a
Done section. Use `You` only when I explicitly asked to add that entry to
Outstanding Items; a normal work request captured automatically is `Agent`.
Store the exact discussion point that caused each known-origin capture.
Link a running local UI as **Full outstanding items** on the
footer's last line, never label an item `verified` without evidence you observed
in this session, and never label something `blocked` when it is really waiting on
me. Being on the list, being suggested, or being labelled `in-progress` is never
permission to work on something — only my current message naming the item is, and
that authority ends with the response turn. For a Git-project session, create or
resolve the per-chat ledger under `.outstanding-items/<task-id>/`, add
`/.outstanding-items/` to `.gitignore`, and keep project storage on unless I
explicitly opt out.

准备粘贴的副本位于 examples/global-rules/ 中。存储库级集成示例:AGENTS.md 和 CLAUDE.md。

检查一下

sh scripts/check.sh              # validate this repository
sh scripts/check.sh --installed  # also validate the copies in your home directory

check.sh 只需要 sh 和 python3。它验证所需文件、frontmatter 和 YAML 基础知识、内部链接、站点基本路径、资产完整性、合成 ID 隐私规则、诚实守卫、紧凑页脚合约(每个记录的页脚必须是一个建议项目,最多一个链接,并且没有计数、部分或完成条目)以及所有权和权限合约,包括状态、排名或跨任务增量可能会被误认为是权限。它还执行 Markdown 迁移、JSON 验证、原子 edit/check/reorder 操作、过时修订拒绝、令牌门控和外部 JSON 刷新。没有第三方依赖项,也不会发出出站网络请求。

这不做什么

简单地说,因为这些是人们得出的假设:

  • 它不会授予代理人对您的工作的权力。账本中的任何内容以及技能中所写的任何内容都不是开始某事的许可。
  • 安装不运行后台守护程序。没有什么安排。可选的完整未完成项目视图启动一个显式的每账本环回过程,ledger_ui.py stop 结束它而不触及数据。
  • 它不创建跨任务消息总线。没有代理、没有队列、没有收件箱——增量永远不会唤醒它所描述的对话。
  • 它不创建持久数据库。唯一持久的分类帐是一个普通的 JSON 文件,位于您批准的路径中; UI 是该文件的实时视图,而不是其他存储。
  • 它不保证自动调用。线束决定何时从描述中加载技能。全球规则使其更有可能发生,但不确定。
  • 它本身不会发现其他对话。如果背带中没有任务工具,它会显示 registered (manual) 并为您提供要携带的文本。
  • 该插件工具和网站不会产生项目拥有的出站应用程序请求,并且不会添加任何分析或第三方运行时依赖项。您的代理和工具仍可能使用其现有的模型、任务或文件系统工具;该项目不会隐藏或替换这些调用。
  • 它在安装过程中不会读取您现有的任务,并且它永远不会编辑未安装的技能。
  • 它不知道你有什么胃口。该建议是根据您在此任务中所说的内容做出的判断。它会在重复之前轮流选择多个选项,而不是对你生活中最重要的事情的预测、时间表或主张。

存储库布局

路径 目的
.agents/plugins/marketplace.json OpenAI 存储库的市场目录。
.claude-plugin/marketplace.json 存储库的 Claude Code 市场目录。
plugins/outstanding-items/.codex-plugin/plugin.json OpenAI 插件清单。
plugins/outstanding-items/.claude-plugin/plugin.json 克劳德代码插件清单。
plugins/outstanding-items/skills/outstanding-items/SKILL.md 规范的运营合同,第一条规则。单一事实来源。
plugins/outstanding-items/skills/outstanding-items/references/ 七个一级参考:权限、状态标签、选择一项、积压工件、完整未完成项目操作、相关任务、工作示例。
plugins/outstanding-items/skills/outstanding-items/assets/ 通用本地账本 HTML、CSS 和 JavaScript。它不包含用户数据。
plugins/outstanding-items/skills/outstanding-items/scripts/ledger_ui.py 标准库 JSON 迁移、验证、突变和环回编辑器运行时。
plugins/outstanding-items/skills/outstanding-items/agents/openai.yaml OpenAI技能接口元数据;克劳德·科德忽略了它。
scripts/sync_plugin_dev.py 一命令检查、缓存破坏的本地插件重新安装可恢复源版本。
scripts/uninstall.sh 旧版独立安装的清单范围清理。
scripts/check.sh 存储库和安装验证。
scripts/serve.sh 网站的本地预览。
tests/run_tests.sh, tests/run_checks.py, tests/test_ledger_ui.py 确定性合同和端到端账本检查。仅限 Python 标准库。
docs/ GitHub 页面站点。没有构建步骤,没有运行时依赖性。
examples/ 综合规范的 JSON 分类帐、其遗留迁移固定装置、工作记录、增量消息和全局规则。
AGENTS.md / CLAUDE.md 每个线束的集成说明和示例。

隐私和安全

  • 技能记录仅标题和简短说明。指示永远不要将秘密、令牌、凭证、文件内容或个人标识符复制到分类帐或工件中。
  • 规范的 JSON 账本是工作内存。在Git项目中,默认每个聊天都有一个单独的.outstanding-items/<task-id>/目录,并将/.outstanding-items/添加到根.gitignore; --no-project-storage 在任何项目写入之前选择退出。非项目聊天在创建持久文件之前仍然会询问。真实账本及其 .ledger-ui-* 运行时文件永远不会提交。
  • 此存储库中任何位置的每个任务 ID 和会话 ID 都是合成的,并且包含文字字符串 EXAMPLE。检查会强制执行此操作,因此真实标识符不能在不被注意的情况下粘贴。
  • 跨任务增量进行一次更改,并且没有上下文转储:从不包含整个账本,从不文件内容,从不凭证,从不标识符。
  • 旧版清理脚本仅删除哈希匹配的清单条目。修改过的文件和无法识别的文件仍然存在;清单丢失会停止删除而不是猜测。它验证路径边界,拒绝符号链接遍历,并且从不递归删除。
  • 该网站不提供任何分析、cookie、CDN 字体,也没有第三方请求。可选的账本浏览器仅与其受令牌保护的 127.0.0.1 服务器通信,不使用浏览器存储。在 Codex 上,该服务器可能会在禁用远程插件同步的情况下运行短暂的本地 codex app-server 标题查找;它仅请求确切传输任务 IDs 的当前名称。

适应它

分叉它并改变四件事:

  1. SKILL.md 中的 description — 触发短语决定技能何时加载。把你自己的词汇放进去(“把它放在清单上”,“下一件事情”)。
  2. 状态标签 — 如果您的工作有不同的管道,请替换表格。保留请求/实现/验证的拆分,将 waiting-on-you 与 blocked 分开,并保持每个标签具有描述性;这些是阻止乐观报道和无声拖延的部分。如果您希望分类帐通过名称来称呼您,请重命名标签 - waiting-on-ada 也可以读取,它只需在 SKILL.md 和引用之间保持一致即可。
  3. 阈值 — 当账本移入其自己的 JSON 文件时,编辑器(7 个未清项目/总共 20 个)位于 SKILL.md 和 references/backlog-artifact.md 中。无论您设置什么,页脚都会保留一项。
  4. 建议对您意味着什么 — references/next-action.md 中的称重是有意为之的。如果你的工作需要截止日期来主导,或者除非你要求,否则你宁愿什么也看不到,请在那里说出来。

不该改变的内容:规则#1。如果您重写所有权模型,使列表条目、状态或排名暗示许可,那么这将不再是同一个工具,并且 tests/run_checks.py 中的检查会如此说明。

然后运行sh scripts/check.sh。这些检查是结构性的,因此在您重写散文后它们仍然有效。

发展

sh scripts/check.sh                   # everything: shell, JS, and the checks below
sh tests/run_tests.sh                 # the deterministic checks on their own
python3 tests/run_checks.py --list    # list individual checks
python3 tests/run_checks.py -v        # verbose
sh scripts/serve.sh                   # preview docs/ at http://127.0.0.1:8099/

一切都是来自标准库的 POSIX sh 加上 python3 - 没有构建步骤,没有 包管理器,没有网络。如果您想输入 ./scripts/check.sh,请运行 chmod +x scripts/*.sh tests/*.sh 一次。

该网站也没有构建步骤:docs/ 完全按照承诺提供服务。的 账本动画渐进增强,页面完整可读 JavaScript 关闭 - 检查将交互数据与 静态后备,因此两者不会分开。

将公共文档视为每个用户可见更改的一部分。回顾两者 README.md 和 docs/ 相同更改,更新以公开解释为准 更改,并在某一表面不需要编辑时记录审核。发布后, 等待 GitHub 页面构建并根据提交的内容验证实时 HTTPS 页面 docs/ 文件;成功的推送本身并不能证明发布。

每周更新检查

一周后,代理会在首次使用技能时检查配置的公共源,并使用共享本地租约来避免重复检查。当有更新可用时,它会解释更改并询问您是否首先需要它。它仅在您同意后安装,保留本地编辑并尊重选择退出。拒绝或忽略该优惠会使您已掌握的技能保持不变。没有安装后台进程。 date/lease 帮助程序需要 Python 3;没有它仍然可以使用该技能。复制安装需要一个值得信赖的安装基线;插件安装使用其主机更新程序。参见更新过程。

点击查看更多
推荐专题
热门阅读