<!-- Authored per the the-loop:writing skill. -->
Tasks: minor Slack polish — room-declaration confirmation, ephemeral help, connector signature
Phase 4 of 4. Each task names the requirement it satisfies and the testing-plan row that proves it; the test lands with the change.
- [x] A1 — confirm the room from the dispatcher (O1).
_apply_channelcalls a new_confirm_room(target.ref)after a new declaration;_confirm_roomcallsself.openerwhen set and swallows every failure. Req: R1.1–R1.4 · Test: T2test_a_new_declaration_confirms_the_room_through_the_opener,test_a_failing_confirmation_never_undoes_the_declaration. - [x] A2 — confirm the room from the CLI (O1).
manage_channelscalls_confirm_room(work_item, config, messages)after an appliedadd-channel; opens throughbus.open_conversationonly with achannelssection; a failed result is oneerrline. Req: R1.1, R1.3 · Test: T2test_add_confirms_the_room_when_channels_are_configured. - [x] B1 —
help public(O4).verbs.wants_public_help+PUBLIC_HELP;process_replyanswers withbot.sayin the member's thread when it holds, the ephemeral otherwise;help_textnames the visible form. Req: R2.1–R2.4 · Test: T1test_help_public_is_read_from_the_first_line_only, T2test_help_public_answers_as_a_reply_everyone_can_see. - [x] C1 — pin the first-line rule (O5). No production change; the tests above plus
test_a_connectors_signature_line_does_not_change_help. Req: R3 · Test: T1, T2. - [x] D1 — docs.
docs/capabilities/channels.md(room bullet, grammar bullet, history row); the follow-ups index and file link the issue; evidence files. Deps: A1–C1.