WP-11: /evo status Slash Command #76

Closed
opened 2026-03-12 20:56:44 +00:00 by cal · 1 comment
Owner

Description

Discord slash command /evo status showing a paginated view of a team's evolution progress. Displays formula value vs next threshold with a progress bar.

Repo: discord-app (code lives in the bot repo, tracked here for milestone)
Phase: 1c (Bot Integration)
Dependencies: WP-07
Complexity: M

Slash Command

/evo status [type] [season] [tier] [progress] [page]

Filters: type (batter|sp|rp), season (default: current), tier (0-4), progress ("close" = within 80% of next tier), page (default: 1, 10 per page)

Display Format

Each entry shows: player name, track, current tier, progress bar toward next tier

[========--] 120/149 (PA+TB×2) — T1 → T2

Fully evolved cards show distinct badge/indicator.

Tests (write first in discord-app/tests/test_evolution_commands.py)

  • Unit: embed formatting from card state dicts
  • Unit: progress bar rendering (current_value vs threshold)
  • Unit: "close" filter logic (within 80%)
  • Unit: pagination
  • Unit: tier display names (T0=Unranked, T1=Initiate, T2=Rising, T3=Ascendant, T4=Evolved)
  • Unit: empty roster message

Plan reference: docs/prd-evolution/PHASE1_PROJECT_PLAN.md WP-11

## Description Discord slash command `/evo status` showing a paginated view of a team's evolution progress. Displays formula value vs next threshold with a progress bar. **Repo:** `discord-app` (code lives in the bot repo, tracked here for milestone) **Phase:** 1c (Bot Integration) **Dependencies:** WP-07 **Complexity:** M ## Slash Command ```python /evo status [type] [season] [tier] [progress] [page] ``` Filters: `type` (batter|sp|rp), `season` (default: current), `tier` (0-4), `progress` ("close" = within 80% of next tier), `page` (default: 1, 10 per page) ## Display Format Each entry shows: player name, track, current tier, progress bar toward next tier ``` [========--] 120/149 (PA+TB×2) — T1 → T2 ``` Fully evolved cards show distinct badge/indicator. ## Tests (write first in `discord-app/tests/test_evolution_commands.py`) - [ ] Unit: embed formatting from card state dicts - [ ] Unit: progress bar rendering (current_value vs threshold) - [ ] Unit: "close" filter logic (within 80%) - [ ] Unit: pagination - [ ] Unit: tier display names (T0=Unranked, T1=Initiate, T2=Rising, T3=Ascendant, T4=Evolved) - [ ] Unit: empty roster message **Plan reference:** `docs/prd-evolution/PHASE1_PROJECT_PLAN.md` WP-11
cal added this to the Card Evolution Phase 1 milestone 2026-03-12 20:59:14 +00:00
cal added the
evolution
phase-1c
labels 2026-03-12 20:59:25 +00:00
Claude added the
ai-working
label 2026-03-13 14:01:15 +00:00
Claude removed the
ai-working
label 2026-03-13 14:08:02 +00:00
Collaborator

PR opened in discord repo: cal/paper-dynasty-discord#87

What was implemented:

  • cogs/evolution.py — new Evolution cog with /evo status group command; all formatting functions are module-level for testability
  • tests/test_evolution_commands.py — 39 unit tests covering progress bar, entry formatting, close filter, pagination, tier names, empty roster, no-team response
  • paperdynasty.py — registered cogs.evolution in the COGS list

The command gracefully handles the WP-07 API not being deployed yet (returns "No evolution data found" if the endpoint 404s/returns None).

PR opened in discord repo: https://git.manticorum.com/cal/paper-dynasty-discord/pulls/87 **What was implemented:** - `cogs/evolution.py` — new `Evolution` cog with `/evo status` group command; all formatting functions are module-level for testability - `tests/test_evolution_commands.py` — 39 unit tests covering progress bar, entry formatting, close filter, pagination, tier names, empty roster, no-team response - `paperdynasty.py` — registered `cogs.evolution` in the COGS list The command gracefully handles the WP-07 API not being deployed yet (returns "No evolution data found" if the endpoint 404s/returns None).
Claude added the
ai-pr-opened
label 2026-03-13 14:08:08 +00:00
cal closed this issue 2026-03-18 21:19:31 +00:00
Sign in to join this conversation.
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: cal/paper-dynasty-database#76
No description provided.