feat(antigravity): 为 Antigravity 平台提供 hooks.json 支持,实现工作流状态注入与收尾守卫
Author: wang93weiCreated Sep 3, 2026Updated Sep 3, 2026
Feature Description
目前 Trellis 在架构上将 Antigravity 归类为无 Hook 的主工作流平台(例如在 .agent/workflows/start.md 中说明:This platform has no session-start hook, so manually load the equivalent compact context...,且 trellis init --antigravity 仅生成了 .agent/workflows/ 和 .agent/skills/)。
但事实上,Google Antigravity(CLI / IDE / 2.0)规范中具备完善的生命周期 Hook 系统(通过项目根目录的 .agent/hooks.json 或 .agents/hooks.json 进行配置)。
希望 Trellis CLI 在执行 trellis init --antigravity 或 trellis update 时,能够为 Antigravity 提供官方的 hooks.json 模板与适配脚本,建议支持以下两个关键生命周期事件:
PreInvocation(每轮状态注入):- 每次模型推理前触发,执行类似
inject-workflow-state.py的脚本。 - 通过返回
{"injectSteps": [{"ephemeralMessage": "<workflow-state:...>"}]},在每轮 prompt 中动态注入当前任务阶段指引,与 Claude Code (settings.json) / Cursor (hooks.json) 平台的自动化体验对齐。
- 每次模型推理前触发,执行类似
Stop(任务生命周期收尾守卫):- 当 Agent 执行完毕准备停止(
terminationReason: "model_stop")时触发。 - 若当前仍有任务处于
in_progress状态且未归档 / 未写入 Session Journal,可通过返回{"decision": "continue", "reason": "Trellis 任务尚未归档并记录日志,请在结束前执行 finish-work 闭环..."}阻止停机,强制 Agent 完成任务闭环。
- 当 Agent 执行完毕准备停止(
Motivation
- 痛点:目前在 Antigravity 环境下,由于完全缺乏主动 Hook 的上下文注入与终止拦截,全靠 Agent 或开发者手动执行
/start、/finish-work。在实际开发中,Agent 在完成代码编写与 Git 提交后,极易遗漏后续的 Checklist 回填、task.py archive归档以及add_session.py会话日志记录,导致任务长期在.trellis/tasks/中处于in_progress挂起状态。 - 价值:补齐 Antigravity 的
hooks.json支持后,能真正实现多平台体验的一致性,确保 Antigravity 下的 Trellis 自动化任务生命周期严格闭环。
Alternatives Considered
- 纯静态规则(Rules):在
AGENTS.md/GEMINI.md中静态写死规范,但无法动态感知task.py current的实时任务状态与分支上下文,且容易被多轮对话冲淡。 - 纯人工手动管理:每轮会话人工手动执行
python3 .trellis/scripts/get_context.py或手动提醒 Agent 收尾,使用成本高且容易遗漏。
Source: mindfold-ai/Trellis