#599·Trellis

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 --antigravitytrellis update 时,能够为 Antigravity 提供官方的 hooks.json 模板与适配脚本,建议支持以下两个关键生命周期事件:

  1. PreInvocation(每轮状态注入)
    • 每次模型推理前触发,执行类似 inject-workflow-state.py 的脚本。
    • 通过返回 {"injectSteps": [{"ephemeralMessage": "<workflow-state:...>"}]},在每轮 prompt 中动态注入当前任务阶段指引,与 Claude Code (settings.json) / Cursor (hooks.json) 平台的自动化体验对齐。
  2. Stop(任务生命周期收尾守卫)
    • 当 Agent 执行完毕准备停止(terminationReason: "model_stop")时触发。
    • 若当前仍有任务处于 in_progress 状态且未归档 / 未写入 Session Journal,可通过返回 {"decision": "continue", "reason": "Trellis 任务尚未归档并记录日志,请在结束前执行 finish-work 闭环..."} 阻止停机,强制 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

  1. 纯静态规则(Rules):在 AGENTS.md / GEMINI.md 中静态写死规范,但无法动态感知 task.py current 的实时任务状态与分支上下文,且容易被多轮对话冲淡。
  2. 纯人工手动管理:每轮会话人工手动执行 python3 .trellis/scripts/get_context.py 或手动提醒 Agent 收尾,使用成本高且容易遗漏。