Aiko Chat

挂钩(Hooks)

phase-guard 写门禁 — 三种宿主形态、五阶段白名单、vibe 站下与写后校验

挂钩是挂在工具调用上的拦截器。Aiko SDD 的核心挂钩是 phase-guard:在 SDD 会话里按工作流阶段约束"现在能写什么文件"。

判定逻辑

  1. openspec/changes/<id>/.aiko.yamlphase:(open/design/build/verify/archive)
  2. 写入目标落在具体 change 目录 → 用该 change 自己的状态;否则按 .aiko.yaml mtime 最近的活跃 change 管辖(多 change 并行不串)
  3. 按阶段白名单判定:open/design 只许写规格产物(proposal/design/tasks/specs/检查点),build 起才放行源码(full 流程还要五字段决策齐备),archive 后封笔
  4. .aiko.yaml 每次写入(init/set/transition)后都过 schema 校验,坏文件当场报错

三种宿主形态

宿主形态拦截方式
ClaudePreToolUse hook(settings.jsonexit code 拦截
Codexmanaged hook(requirements.tomlpermissionDecision: deny JSON
opencodeplugintool.execute.before throw

三者共享同一份 aiko-hook-guard.sh 判定逻辑;codex/opencode 的会话模式走 ~/.aiko/agent-guard/<provider>-<id>.mode 文件。

vibe 站下

vibe(自由编程)会话里 AIKO_SDD_MODE=vibe,phase-guard 全阶段放行——门禁只在 SDD 会话生效。模式在会话创建时确定,不可中途切换。

其他挂钩

UserPromptSubmit(提示前处理)等用户级挂钩放 ~/.aiko/claude-auth/settings.json。插件也可携带自己的挂钩(见 智能体插件)。

On this page