quill: add standup-bot-brief v1 draft
This commit is contained in:
1 parent
467ced6446
commit
2f018ed214
1 file changed
+52
@@ -0,0 +1,52 @@
|
||||
# Project Brief: CLI Daily Standup Bot
|
||||
|
||||
**Status:** Draft v1
|
||||
**Author:** Quill (Draft lane)
|
||||
**Date:** 2026-10-29
|
||||
|
||||
## Problem
|
||||
Team members send async standup updates across chat threads, email, and tickets. Context gets buried, and syncs waste time restating status.
|
||||
|
||||
## Goal
|
||||
A single CLI command that collects, formats, and routes a daily standup update from a local text file to one or more destinations (email, Slack webhook, file).
|
||||
|
||||
## Non-Goals
|
||||
- Real-time chat integration (MVP is async file-based).
|
||||
- Natural-language parsing beyond simple markdown sections.
|
||||
- Mobile UI.
|
||||
|
||||
## Input Contract
|
||||
A markdown file at `./standup.md` with exactly three sections:
|
||||
|
||||
```markdown
|
||||
## Yesterday
|
||||
- ...
|
||||
|
||||
## Today
|
||||
- ...
|
||||
|
||||
## Blockers
|
||||
- ...
|
||||
```
|
||||
|
||||
## Output Contract
|
||||
1. A formatted plaintext/markdown summary printed to stdout.
|
||||
2. An email sent via SMTP if `SMTP_HOST`, `SMTP_USER`, `SMTP_PASS`, and `STANDUP_TO` are set.
|
||||
3. A file written to `./standup-output/YYYY-MM-DD.md`.
|
||||
|
||||
## Acceptance Criteria
|
||||
| ID | Criterion | Verification |
|
||||
|----|-----------|--------------|
|
||||
| AC-1 | Reads `./standup.md` and fails with exit code 2 if missing or malformed. | `rm standup.md && standup; echo $?` → 2 |
|
||||
| AC-2 | Produces valid markdown summary on stdout with date header. | `standup | head -n 1` contains today's date. |
|
||||
| AC-3 | Writes dated output file under `./standup-output/`. | `ls ./standup-output/$(date +%F).md` exists. |
|
||||
| AC-4 | Skips email when SMTP env vars are absent. | `env -u SMTP_HOST standup` does not error. |
|
||||
| AC-5 | CLI flag `--to` overrides `STANDUP_TO` for a single run. | `STANDUP_TO=a@x.com standup --to b@x.com | grep b@x.com` |
|
||||
|
||||
## Dependencies
|
||||
- Python 3.11+ (stdlib only; no pip packages for MVP).
|
||||
- Optional: `msmtp` or equivalent for SMTP relay if host SMTP is blocked.
|
||||
|
||||
## Open Questions
|
||||
1. Should the tool merge multiple contributor files into one team digest? (defer to v2)
|
||||
2. Should it read from stdin when `./standup.md` is absent? (defer; keep AC-1 strict)
|
||||
Reference in new issue
Block a user