Part of #903.
Problem
Code Mower needs a minimal Slack app surface and an authentication boundary that can acknowledge quickly without dispatching work inline.
Scope
Add a manifest template plus raw-body HMAC verification, five-minute replay rejection, URL verification, strict body/field bounds, three-second receipt acknowledgement, and offline fixtures. Keep the implementation transport-neutral and route accepted envelopes to a durable interface.
Dependencies
Acceptance criteria
Code Mower delivery
Produce exactly one independently reviewable PR for this issue. Record the named builder, keep one writer on the branch, run focused tests and applicable full checks, obtain an independent Code Mower review against the exact current head, resolve every P0/P1/P2 finding, and pass normal CI plus code-mower/gate. Update the parent epic with PR/head, review, validation, outcome, and safe metadata-only upload evidence. Do not put credentials, source, diffs, prompts, transcripts, private context, task/message prose, or raw provider output in cloud data.
Part of #903.
Problem
Code Mower needs a minimal Slack app surface and an authentication boundary that can acknowledge quickly without dispatching work inline.
Scope
Add a manifest template plus raw-body HMAC verification, five-minute replay rejection, URL verification, strict body/field bounds, three-second receipt acknowledgement, and offline fixtures. Keep the implementation transport-neutral and route accepted envelopes to a durable interface.
Dependencies
Acceptance criteria
Code Mower delivery
Produce exactly one independently reviewable PR for this issue. Record the named builder, keep one writer on the branch, run focused tests and applicable full checks, obtain an independent Code Mower review against the exact current head, resolve every P0/P1/P2 finding, and pass normal CI plus
code-mower/gate. Update the parent epic with PR/head, review, validation, outcome, and safe metadata-only upload evidence. Do not put credentials, source, diffs, prompts, transcripts, private context, task/message prose, or raw provider output in cloud data.