<!-- Authored per the the-loop:writing skill. -->
Tasks: every comment the-loop finishes with says so on the comment
The last spec artifact (requirements → design → testing plan → tasks). A DAG of implementation tasks derived from the approved design and testing plan.
Task list
[x] 1. The outcome → reaction table
cli/the_loop/webhook/dispatcher.py:ACK_STATES, built from the sameSETTLED_*constantsSETTLED_OUTCOMESis built from, mappingcontrol-executed → started·completed,control-rejected/control-ambiguous → errorand the suppressed family →started; scope refusals deliberately absent- Depends on: none
- Requirements: R1.2, R1.3, R1.4
- Test: T1 (red→green)
[x] 2.
_settleacknowledgescli/the_loop/webhook/dispatcher.py:_settlegains a keyword-onlyacknowledge=Trueand, afterdeduper.mark_settled, postsACK_STATES.get(outcome)through the existing reactor; docstring states the record-then-decorate order and the never-raises contract it leans on- Depends on: 1
- Requirements: R1.1, R2.1, R2.2, R2.5, R3.1
- Test: T2, T3, T4, T5, T6, T12 (red→green)
[x] 3. The two sites that must stay silent
cli/the_loop/webhook/dispatcher.py:_reject_controlgainsacknowledge=Trueand passes it through to_settle;_refuse_scopecalls it withacknowledge=False(issue-322 R2.6);_dispatch_one's paused branch settles withacknowledge=Falsebecause the worker around it already reacted- Depends on: 2
- Requirements: R2.3, R2.4
- Test: T7, T10 (red→green)
[x] 4. The silent paths stay silent, the delivered branch stays as it was
cli/tests/test_reactions_integration.py: duplicate delivery, invented linkage and spawn-policy drop post nothing;enabled: falsesilences the new acknowledgements; issue-84's four existing scenarios pass unchanged- Depends on: 3
- Requirements: R2.3, R2.5
- Test: T8, T9, T11
[x] 5. Documentation
docs/config/cli/routing-options.md: reactions cover both branches, with R1.3's tabledocs/capabilities/webhook-triggers.md: the acknowledgement rule and a history rowevidence/documentation.md: the capability docs reviewed, with the reason for each left unedited- Depends on: 3
- Requirements: R5.1, R5.2
- Test: T14
[x] 6. Gates
make lint format-check typecheckand the full suite green;evidence/self-review.md,evidence/critic-review.md,evidence/security-review.md,evidence/final-validation.md,evidence/pull-requests.md- Depends on: 4, 5
- Requirements: all
- Test: T13, T15