Staff Handbook Commands And Workflow
Command
| Command | Notes |
|---|---|
/handbook | Opens the category menu. |
/handbook search:<keyword> | Searches visible handbook pages when search is enabled. |
The command name and search option wording come from
staff_handbook_lang.json5. Discord must receive the updated command structure
after you rename either value.
Browsing Workflow
- A staff member runs
/handbook. - AthenaBot checks the command permission and global role or user allowlist.
- The plugin shows categories available to that staff member.
- The staff member chooses a category and then a situation.
- The page shows its summary, steps, action guidance, evidence requirements, notes, and links.
- Back returns to the category and Main Menu returns to all categories.
Previous and next buttons appear when the number of visible options exceeds
ui.max_visible_options.
Search Workflow
Search checks these visible fields for the entered text:
- Category labels and descriptions
- Page labels, descriptions, titles, and summaries
- Steps, action guidance, evidence requirements, and notes
- Link labels and URLs
The search is case-insensitive and returns up to search.max_results. Search
never exposes a category or page the member cannot view.
Access Rules
| Rule | Effect |
|---|---|
permissions.handbook_command | Athena permission needed to run /handbook. |
permissions.handbook_components | Athena permission needed to use menus and buttons. |
access.allowed_role_ids / allowed_user_ids | Global allowlist for opening and using the handbook. |
access.senior_role_ids / senior_user_ids | Grants access to items with senior_only: true. |
Category required_role_ids / required_user_ids | Restricts one category. |
Page required_role_ids / required_user_ids | Restricts one page. |
If both required lists on an item are empty, the item is available to anyone who passes the global checks. A matching user ID or one matching role grants access when an item has restrictions.
Expected Discord Behavior
- Replies are private by default.
- Only the member who opened a menu can use its controls.
- Hidden pages do not appear in menus, counts, or search results.
- Invalid content is skipped and logged once so other valid pages remain usable.
- Custom emoji names in configured text resolve through AthenaBot.