图 10-1状态落在哪:三个区
图 10-1 · 路径与文件名取自 pause-safely.md、session-pickup.md、orchestrate.md 与 show-me-your-work/SKILL.md 原文。
10-2脚本清单
| 文件 | 作用 | 被谁调用 |
bootstrap.ts | 检查与安装 Bun 依赖(commander 等),比对 package.json 与 bun.lock 生成 sha256 缓存 key | 安装期 |
check-plan.mjs | 校验多阶段计划的 Markdown 结构(LANES, SUB_BLOCKS, PROGRAM_H3 等 9 块检查) | multi-phase-plan |
orch/orch.ts + store.ts | 编排状态仓 CLI(TS + Commander),带 .orch.lock 互斥锁与临时文件重命名原子写。配有单元测试 | orchestrate 剧本 |
watch-pr/ 套件 | 轮询 PR 状态与合并安全策略(cli/github/policy/render/types 共 5 个 TS 文件,配 4 个测试与 fake) | babysit、shipping |
worktree-audit.sh | 只读盘点所有 worktree 的磁盘大小、合并状态、脏代码、PR 状态与关联 transcript(Bash 脚本) | worktree-cleanup |
show-me-your-work/scripts/log.sh | 原子追加决策行到 decisions.tsv,清洗制表符并防止 Excel/TSV 公式注入(=,+,-,@) | show-me-your-work |
10-3这一层透露的设计取舍
取舍
状态极少且人可读
没有数据库、没有外部守护进程。全是 TSV / JSON / Markdown 平面文件,人能直接 cat,git 能直接 diff。
取舍
写入加锁与防注入
store.ts 采用带 PID 的临时文件原子覆盖(rename);log.sh 对公式起始符加单引号转义,防止审计者打开表格时被注入攻击。
取舍
深度绑定 Cursor 宿主
区 2 硬编码在 ~/.cursor/projects/<slug>/agent-transcripts/ 与 ~/.cursor/rules/pstack-models.mdc。换宿主这一层代码必须重构。
本层的检验问题:为什么 pause-safely 宁可把恢复说明写在 /tmp/<slug>-resume.md 里,也不写进当前对话?
因为长任务遭遇上下文压缩(compaction)时,对话历史会被截断或丢失细节,而落盘文件能完好保留。
下一站是回顾页:把十层串成一次真实调用。