mirror of
https://github.com/whekin/household-bot.git
synced 2026-03-31 17:34:03 +00:00
* feat(WHE-15): bootstrap bun workspace with app and package scaffolds * chore(WHE-17): switch workspace typecheck to tsgo * chore(WHE-16): configure oxlint and oxfmt no-semicolon style * chore: address CodeRabbit review feedback * chore: apply coderabbit fixes and add review script * docs: add ADR decision metadata
1.9 KiB
1.9 KiB
HOUSEBOT-005: Anonymous Feedback Flow
Summary
Allow members to submit anonymous household feedback to the bot via DM, then repost sanitized messages to a configured topic.
Goals
- Protect sender identity in group output.
- Reduce conflict by neutralizing wording.
- Prevent abuse with rate limits and blocklist controls.
Non-goals
- Anonymous reactions.
- Admin identity reveal path.
Scope
- In: DM intake, sanitize/rewrite, posting, moderation guardrails.
- Out: full moderation panel UI.
Interfaces and Contracts
- Bot command in DM:
/anon <message>(or conversational prompt flow). - Use-case:
PostAnonymousMessage. - Result includes posted message id and moderation outcome.
Domain Rules
- Sender identity is never included in reposted content.
- Per-user cooldown and daily cap enforced.
- Blocklisted phrases reject or request rewrite.
Data Model Changes
anonymous_messages:household_idsubmitted_by_member_id(internal only)raw_textsanitized_textmoderation_statusposted_message_id- timestamps
Security and Privacy
- Internal sender reference is never exposed via group features.
- PII minimization and retention policy documented.
- Abuse logging without public reveal.
Observability
- Submission volume metrics.
- Rejection/acceptance rate metrics.
- Error logs for rewrite or post failures.
Edge Cases and Failure Modes
- Message too short/too long.
- Spam bursts.
- Telegram post failure after rewrite.
Test Plan
- Unit:
- moderation and cooldown policy
- anonymization invariants
- Integration:
- DM ingestion to repost pipeline
- E2E:
- anonymous submission lifecycle in test group
Acceptance Criteria
- DM to group repost works end-to-end.
- Sender is hidden in group output.
- Rate limit and blocklist enforced.
- Sanitization pipeline tested.
Rollout Plan
- Start with strict moderation thresholds and tune based on false positives.