recall 用于从带上下文的提交历史中重建开发脉络,并以简报形式呈现。它在会话开始、恢复工作或切换分支时运行,支持三种调用方式。
用途:帮助开发者快速了解当前分支正在做什么、已做哪些决策、排除了哪些方案、存在哪些约束,以及还有哪些进行中的改动。
主要能力:
- 默认模式(无参数):先检测分支状态,区分当前分支、默认分支与父分支(优先上游跟踪分支,否则按提交距离找最近本地分支,最后回退默认分支)。再按场景收集原始材料:功能分支有提交、功能分支无提交、默认分支、默认分支有未提交改动。随后提取匹配 ^(intent|decision|rejected|constraint|learned)( 的行动行,按优先级合成输出:活跃意图、当前方案、已排除方案、约束、经验、进行中工作。若意图发生转向,会同时显示原意图与当前意图。
- 作用域查询(recall <scope>):跨全仓库历史按前缀匹配查询某作用域,例如 auth 可匹配 auth-tokens、auth-library;按行动类型分组、组内按时间排序。
- 行动加作用域查询(recall <action>(<scope>)):查询某作用域下的特定行动类型,输出扁平时间列表并附提交主题作为出处。
必要用法:常用命令包括 git branch --show-current 检测当前分支、git rev-parse --abbrev-ref @{upstream} 找上游分支、git log ${BASE_BRANCH}..HEAD --format="%H%n%s%n%b%n---COMMIT_END---" 收集提交、git log --all --grep="(${SCOPE}" --format="%H%n%s%n%b%n---COMMIT_END---" 做作用域查询,以及用 grep -E "^(intent|decision|rejected|constraint|learned)(${SCOPE}" 提取行动行。
适用场景:续接他人或自己此前的工作、新会话开局、切换分支、在动手做重要决策前检查某作用域已排除的方案与约束。
限制:输出完全基于提交与 diff 中实际存在的内容,不做推断或补全;若历史只有常规提交而无行动行,则只能依据提交主题给出有限的近况概览,并会明确说明信号质量不足;若查询无匹配则直接说明。材料未提供收费、价格、平台等其他信息。