43 lines
1.3 KiB
Markdown
43 lines
1.3 KiB
Markdown
# WhisperGate
|
|
|
|
Rule-based no-reply gate for OpenClaw.
|
|
|
|
## What it does
|
|
|
|
WhisperGate adds a deterministic gate **before model selection**:
|
|
|
|
1. If message is not from Discord → skip gate
|
|
2. If sender is in bypass user list → skip gate
|
|
3. If message ends with configured end-symbol → skip gate
|
|
4. Otherwise switch this turn to a no-reply model/provider
|
|
|
|
The no-reply provider returns `NO_REPLY` for any input.
|
|
|
|
---
|
|
|
|
## Repo layout
|
|
|
|
- `plugin/` — OpenClaw plugin (before_model_resolve hook)
|
|
- `no-reply-api/` — OpenAI-compatible minimal API that always returns `NO_REPLY`
|
|
- `docs/` — rollout and configuration notes
|
|
- `scripts/` — smoke/dev/helper checks
|
|
- `Makefile` — common dev commands (`make check`, `make check-rules`, `make test-api`, `make up`)
|
|
- `CHANGELOG.md` — milestone summary
|
|
|
|
---
|
|
|
|
## Development plan (incremental commits)
|
|
|
|
- [x] Task 1: project docs + structure
|
|
- [x] Task 2: no-reply API MVP
|
|
- [x] Task 3: plugin MVP with rule chain
|
|
- [x] Task 4: sample config + quick verification scripts
|
|
- [x] Task 5: plugin rule extraction + hardening
|
|
- [x] Task 6: containerization + compose
|
|
- [x] Task 7: plugin usage notes
|
|
- [x] Task 8: sender normalization + TTL + one-shot decision
|
|
- [x] Task 9: auth-aware no-reply API
|
|
- [x] Task 10: smoke test helpers
|
|
- [x] Task 11: plugin structure checker
|
|
- [x] Task 12: rollout checklist
|