@@ -6,16 +6,36 @@ Developers report completed work via slash commands. The bot also pulls merged/o
66
77## Features
88
9+ ### Commands
10+
911- ` /report ` (or ` /rpt ` ) — Developers report work items via Slack
1012- ` /fetch-mrs ` — Pull merged and open GitLab MRs for the current calendar week
1113- ` /generate-report ` (or ` /gen ` ) — Generate a team markdown file (or boss ` .eml ` draft) and upload it to Slack
12- - ` /list ` — View this week's items
14+ - ` /list ` — View this week's items with inline edit/delete actions
1315- ` /check ` — Managers: list team members who have not reported this week
1416- ` /nudge [@name] ` — Managers: send reminder DMs (missing members by default)
17+ - ` /retrospective ` — Managers: analyze recent corrections and suggest glossary/guide improvements
1518- ` /help ` — Show all commands and example usage
19+
20+ ### Report Generation
21+
1622- Two report modes: ** team** (author per line) and ** boss** (authors grouped by category)
1723- Manager-only permissions for report generation and MR fetching
1824- ** Weekly nudge** — Automatically DMs team members on a configurable day to remind them to report
25+ - ** Welcome message** — New channel members receive an intro message explaining how to use the bot
26+
27+ ### Agentic AI (Closed-Loop Classification)
28+
29+ The LLM classifier improves itself over time through a feedback loop:
30+
31+ - ** Parallel batch classification** — Items are classified concurrently via goroutines (~ 3x speedup)
32+ - ** Classification history** — Every LLM decision is persisted with confidence scores for auditability
33+ - ** Correction capture** — Manager corrections (via edit modal or uncertainty buttons) are stored and fed back into future prompts
34+ - ** Auto-growing glossary** — When the same correction appears 2+ times, a deterministic glossary rule is created automatically
35+ - ** Uncertainty sampling** — Low-confidence items are surfaced to the manager with interactive section buttons after report generation
36+ - ** Retrospective analysis** — ` /retrospective ` uses the LLM to find correction patterns and suggest glossary terms or guide updates
37+
38+ See [ docs/agentic-features-overview.md] ( docs/agentic-features-overview.md ) for a detailed overview.
1939
2040## Quick Start
2141
@@ -29,7 +49,9 @@ Developers report completed work via slash commands. The bot also pulls merged/o
2949 - ` files:write `
3050 - ` im:write ` (for Friday nudge DMs)
3151 - ` users:read ` (to resolve full names for managers/team members)
32- 4 . Under ** Slash Commands** , create these commands:
52+ 4 . Under ** Event Subscriptions** , subscribe to these bot events:
53+ - ` member_joined_channel ` (sends welcome message to new members)
54+ 5 . Under ** Slash Commands** , create these commands:
3355
3456 | Command | Description |
3557 | ---| ---|
@@ -40,10 +62,11 @@ Developers report completed work via slash commands. The bot also pulls merged/o
4062 | ` /gen ` | Alias of ` /generate-report ` |
4163 | ` /list ` | List this week's work items |
4264 | ` /check ` | List team members missing reports |
43- | ` /nudge [@name] ` | Send reminder DMs |
65+ | ` /nudge ` | Send reminder DMs |
66+ | ` /retrospective ` | Analyze corrections and suggest improvements |
4467 | ` /help ` | Show help and usage |
4568
46- 5 . Install the app to your workspace
69+ 6 . Install the app to your workspace
4770
4871### 2. Configure
4972
@@ -289,8 +312,7 @@ Requires the `im:write` bot token scope in your Slack app.
289312
290313# # Permissions
291314
292- Manager commands (`/fetch-mrs`, `/generate-report`, `/check`) are restricted to Slack full names listed in `manager`.
293- Manager commands include : ` /fetch-mrs` , `/generate-report`, `/check`, `/nudge`.
315+ Manager commands (`/fetch-mrs`, `/generate-report`, `/check`, `/nudge`, `/retrospective`) are restricted to Slack full names listed in `manager`.
294316
295317# # Report Structure
296318
@@ -304,14 +326,17 @@ Report sections and sub-sections are sourced from the previous generated team re
304326
305327```
306328reportbot/
307- main.go Entry point
308- config.go YAML + env var loading, permission check
309- models.go WorkItem, GitLabMR types, calendar week helper
310- db.go SQLite schema and CRUD operations
311- llm.go LLM integration (Anthropic + OpenAI), categorization
312- gitlab.go GitLab API client for fetching merged MRs
313- report.go Markdown report generation (team/boss modes)
314- slack.go Slack Socket Mode bot and slash command handlers
315- nudge.go Weekly reminder scheduler and DM sender
316- Dockerfile Multi-stage Docker build
329+ main.go Entry point
330+ config.go YAML + env var loading, permission check
331+ models.go WorkItem, GitLabMR types, calendar week helper
332+ db.go SQLite schema and CRUD (work_items, classification_history, corrections)
333+ llm.go LLM integration (Anthropic + OpenAI), parallel batch classification, retrospective analysis
334+ glossary.go Glossary loading, auto-growth from corrections
335+ gitlab.go GitLab API client for fetching merged MRs
336+ report.go Markdown/EML report file generation
337+ report_builder.go Template parsing, LLM classification pipeline, merge logic
338+ slack.go Slack Socket Mode bot, slash commands, correction capture, uncertainty sampling
339+ nudge.go Weekly reminder scheduler and DM sender
340+ Dockerfile Multi-stage Docker build
341+ docs/ Architecture diagrams and feature documentation
317342```
0 commit comments