Why: I1 WP2 - one explicit action field outranks the four legacy
action keys (Handler, metadata.blueprint, command-id, workflow
IntentID) so hosts migrate to a single derivation path.
Evidence: go vet clean; go test ./... all ok, including declared
action winning the Start command and kind/id validation rejections.
Impact: IntentSpec gains Action (command/workflow/blueprint/handler);
Candidate carries it through; actionOf prefers it, then blueprint,
then Handler, then auto. Legacy keys keep working.
Refs: Documents proposal 2026-10-07-agent-stack-n1q1i1-plans.md I1 WP2
Why: I1 WP2 - one explicit action field outranks the four legacy
action keys (Handler, metadata.blueprint, command-id, workflow
IntentID) so hosts migrate to a single derivation path.
Evidence: go vet clean; go test ./... all ok, including declared
action winning the Start command and kind/id validation rejections.
Impact: IntentSpec gains Action (command/workflow/blueprint/handler);
Candidate carries it through; actionOf prefers it, then blueprint,
then Handler, then auto. Legacy keys keep working.
Refs: Documents proposal 2026-10-07-agent-stack-n1q1i1-plans.md I1 WP2
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
I1 WP2:spec.action 显式声明(四键统一的首选来源)
改动
IntentSpec.Action(可选,loader 的 DisallowUnknownFields 自动注册):kind 必须是command/workflow/blueprint/handler、id 非空,违规则 fail-closed。Candidate.Action随候选透传;actionOf推导顺序定为:spec.action → metadata.blueprint → Handler → auto。四种旧动作键全部继续可用(兼容期),新配置应统一走 action。验证
go test ./...6 包全 ok:显式声明胜端到端(Start 命令携带 workflow 键)、非法 kind 与空 id 拒绝、既有推导路径不回归。主任务:Dev 仓
feature/agent-stack-i1。