Problem
The instrumented skills emit lifecycle events whose information the harness hook channel now carries mechanically. input.received is starved in practice (28:6 under Claude, 5:0 under Rovo) while hook-emitted turn.started carries the same signal reliably, and skill.progress duplicates turn.* recency in the lane-view fold. The redundant emits cost tokens on every instrumented run and widen the agent-compliance surface for no fleet-view gain.
Context
The #985 findings ratify a two-channel design: hooks carry the session lifecycle (session.*, turn.*); skills emit only what hooks cannot know — work semantics. The slimmed per-skill set is skill.started, skill.completed, artifact.written/pr.created where applicable, and input.requested with its ask payload.
Proposed solution
Retire input.received from the declared vocabulary and remove its emits; remove skill.progress emit instructions from the four instrumented skills (create-pr, implement-plan, respond-to-review, review-branch) while keeping the type declared as optional step-level detail; slim the emit-event skill's vocabulary reference to match; and drop the input.received case from the fleet-view lane-view fold, where the resume state already derives from the relayed turn.started.
Acceptance criteria
Must have
Problem
The instrumented skills emit lifecycle events whose information the harness hook channel now carries mechanically.
input.receivedis starved in practice (28:6 under Claude, 5:0 under Rovo) while hook-emittedturn.startedcarries the same signal reliably, andskill.progressduplicatesturn.*recency in the lane-view fold. The redundant emits cost tokens on every instrumented run and widen the agent-compliance surface for no fleet-view gain.Context
The #985 findings ratify a two-channel design: hooks carry the session lifecycle (
session.*,turn.*); skills emit only what hooks cannot know — work semantics. The slimmed per-skill set isskill.started,skill.completed,artifact.written/pr.createdwhere applicable, andinput.requestedwith its ask payload.Proposed solution
Retire
input.receivedfrom the declared vocabulary and remove its emits; removeskill.progressemit instructions from the four instrumented skills (create-pr,implement-plan,respond-to-review,review-branch) while keeping the type declared as optional step-level detail; slim the emit-event skill's vocabulary reference to match; and drop theinput.receivedcase from the fleet-view lane-view fold, where the resume state already derives from the relayedturn.started.Acceptance criteria
Must have
skill.started,skill.completed,artifact.written/pr.createdwhere applicable, andinput.requested.input.receivedis removed from the declared vocabulary and no skill emits it.