Outcome
When Hephaestus drafts feedback that needs a human decision, the people who can make that decision are
told. Proposals that nobody acts on expire with a stated reason instead of accumulating silently.
Problem
HUMAN_APPROVAL (Propose) is the default autonomy tier, and it is the tier every newly adopted practice
starts in. A practice in that tier composes real draft feedback and writes it as an approval-pending row.
Nothing tells anyone. There is no notification channel in the product at all — no mail subsystem, and the
approval package has no hooks. The queue is reachable only by an admin who happens to open the right page,
and nothing ages out.
Two failure modes follow:
- The first week looks broken. A workspace turns Hephaestus on, drafts accumulate, nobody is told, and
no developer receives anything. The product appears dead precisely when trust is being formed.
- Stale drafts are worse than no drafts. A proposal approved three weeks after the pull request merged
is noise at best. Nothing today prevents that.
What
- Notify the people who can decide when feedback is waiting: a pending count on the workspace admin
surface, and a message on a channel the workspace already uses. Digest, not per-item.
- Expire proposals after a configurable window, recorded with a typed suppression reason so an expired
draft is distinguishable from a rejected one.
- Size the queue. Show how many proposals are waiting and how old the oldest is, so an admin can tell
whether the tier is sustainable before it becomes a backlog.
Acceptance criteria
Out of scope
Outcome
When Hephaestus drafts feedback that needs a human decision, the people who can make that decision are
told. Proposals that nobody acts on expire with a stated reason instead of accumulating silently.
Problem
HUMAN_APPROVAL(Propose) is the default autonomy tier, and it is the tier every newly adopted practicestarts in. A practice in that tier composes real draft feedback and writes it as an approval-pending row.
Nothing tells anyone. There is no notification channel in the product at all — no mail subsystem, and the
approval package has no hooks. The queue is reachable only by an admin who happens to open the right page,
and nothing ages out.
Two failure modes follow:
no developer receives anything. The product appears dead precisely when trust is being formed.
is noise at best. Nothing today prevents that.
What
surface, and a message on a channel the workspace already uses. Digest, not per-item.
draft is distinguishable from a rejected one.
whether the tier is sustainable before it becomes a backlog.
Acceptance criteria
Out of scope
signal.