SuperAPI AI 工具集

openspec-journal

通用与其它

查看项目

更新于 10-16 07:27

技能介绍

用途:为 OpenSpec 变更维护只追加的交互日志 openspec/changes/<change>/journal.jsonl,把每次关键交互写成一行结构化历史,作为可跨上下文压缩、跨长时间工作的会话日志,而非完整对话记录或可选叙述。

主要能力:提供固定事件词表与字段校验;支持记录事件、查看日志(show,可加 --limit N)、诊断(doctor)以及输出权威事件名到必填字段对照表(--schema)。事件描述已发生之事,例如在 openspec new change <name> 成功后再记录 change.created。

使用方式:运行随技能附带的脚本,路径为技能目录下 SKILL.md 旁的 scripts/openspec-journal.py,不要在产品仓库的 scripts/ 下查找。保持产品仓库为工作目录,以便脚本找到 openspec/changes/。命令:python3 <skill-dir>/scripts/openspec-journal.py <change> <event> [k=v ...];python3 <skill-dir>/scripts/openspec-journal.py <change> show [--limit N];python3 <skill-dir>/scripts/openspec-journal.py <change> doctor;python3 <skill-dir>/scripts/openspec-journal.py --schema。无参数运行可查看完整用法约定。

默认纪律:当工作目录位于某个 OpenSpec 变更内时,每个用户轮次前后各写一次,无论文件是否变化。开始前记录 turn.start input="<不超过200字符的请求转述>";结束后记录 turn.end output="<变更、决定或回答内容>"。先写输入可防止事后合理化,纯问答轮次同样适用。

限制:input/output 超过200字符会被拒绝(退出码2),应改写更短,长内容移入 design.md 或 ADR 并指向它。--input-file/--output-file 路径必须位于变更目录下;变更名 . 与 archive 被拒绝;保留字段 ts、event、phase 不能通过 k=v 伪造。写入被拒(退出码1用法错误、退出码2校验错误)不会静默吞掉,需向调用方暴露脚本原始错误以便修正后重试。另有 precompact 钩子脚本在宿主触发压缩前生命周期钩子时发出 context.compacted,自身静默失败且不阻塞压缩,每个宿主配置一次,技能不直接调用。完成条件为事件被接受(退出码0),show/doctor 则返回所需输出。