方案先行(aiti-plan-first)
大约 3 分钟
aiti-plan-first · 方案先行
❝ AI 开发,先方案后动手 ❞
是什么
工具条「📋 方案先行」按钮 + 短非模态下拉。推-听架构(零轮询、常态零扫描):
- 绑定向导:本轮变更出现 md(方案命名优先:design/plan/spec/rfc/方案/计划/设计 新生成即弹、绕过冷却)→ 问「这是本 session 的方案吗?」(可浏览全部 md 选择;skills/** 与 SKILL.md 等明显非方案排除)
- 失联提醒:已绑定且单轮改动 ≥ 阈值(默认 3 文件/3 op)方案未更新 → 弹提醒,一键插入「更新方案文档:@file」
- 领先提醒:未绑定 + 改了代码或任何非忽略文件 ≥ 1 → 弹「先做方案」(30min 独立冷却;写 skills 也算在改代码)
- tags 闭环:教(prompt/插入文本自带 front-matter tags 约定,含状态 tag 方案/评审中·已实施·已过时)→ AI 写(front-matter 事实源,标签可自荐不限词表)→ 自检(status/doctags 实时读文档 + followed 触发 doc-center scan)→ 手工(绑定态下拉 tags 行:chips × 移除 / 输入回车添加写回)
- 列表图标:
sessionRowLeading行前部扩展槽(pi-web 新增通用位)——绑定会话行常驻 📋 绿标;All Sessions 面板与 doc-center 🧵 会话视图同样显示 - 进入会话检查(0.3.0,方案文档里程碑编号,≠ 包版本):切会话 / 带
?session=进入 → POST /check 一次性评台账——终端桥接/页面不在场错过的会话也弹绑定向导;enter 检查评 stale 是终端桥接会话唯一自动提醒通道(其事件过不了桥) - suggest-md 路径可点击:疑似方案文档路径在提醒中是按钮,点击 openFile 开标签页核实
事件链(推-听,对 git-trace 零侵入)
pi 扩展 appendRow 台账行 → globalThis.__aitiTraceEmit?(松耦合可选链;core §6 保留口——生产者 pi 扩展装载器在扩展 ctx 体系外)
→ aiti-git-trace sink → traceBus
├─ services.trace.onOp(v2 + onOp/SSE /events) ← 本扩展进程内监听(主通道)
├─ GET /events(SSE) ← 浏览器
└─ readOps ← 跳号补洞 + 降级,非常态设计要点:冷启动种子、跳号补洞、三档降级、buffer 容量、终端桥接会话边界等。
门控(extman 功能开关)
| feature | 缺省 | 说明 |
|---|---|---|
| plan.toolbar | 开 | 工具条按钮 |
| plan.suggestMd | 开 | md 变更绑定向导 |
| plan.leadRemind | 开 | 领先提醒(未绑定开始改代码即弹先做方案) |
| plan.staleRemind | 开 | 大改未跟提醒 |
| plan.bigFiles / plan.bigOps | 3 / 3 | 「改动很多」阈值 |
| plan.mdIgnores | 空 | 追加 md 忽略(glob) |
| plan.autoCloseSuggestSec / autoCloseStaleSec / autoCloseLeadSec | 0 / 30 / 10 | 提醒自动收起秒数(向导/失联/领先;0=常驻) |