Recently-proposed ideas (not yet prioritized) --------------------------------------------- • Set-up an announcements Slack channel that's auto fed by email to a particular email address. • Have Turbot explicitly report long state strings to the channel, (since the implicit report from settting the abbreviated topic won't have the whole message). • In messages (like from /solved) don't use a raw user_name value from the request, but instead some tagged version of a user ID (which Slack will render as a display name). Round management ---------------- • Select round fields by default based on the round of the puzzle for the channel in which `/puzzle` is invoked. • Consider putting a round prefix into the channel name to group a round's puzzles in the channel list. Meta-puzzle support ------------------- • Figure out a good mechanism for linking puzzles to a meta-puzzle that they feed into. Is this different or the same as the round mechanism described above? Hunt overview commands and filters ---------------------------------- • Implement a /hunt command for giving an overview of the entire hunt, (like the Turbot "home" view but available in any channel) • For "/hunt" display only unsolved puzzles by default, but also allow for "/hunt all" to display all puzzles • On the Turbot home screen allow a dropdown for Unsolved/Solved/All puzzles • For both "/hunt" and the Turbot home screen allow for a search string that will search through puzzle names, puzzle IDs, puzzle URLs, and state strings. • Figure out what we want for tagging and searching on tags (beyond what's already possible with the state strings). Editing puzzle fields --------------------- • Implement a command to display the status of the current puzzle within the channel. Need a name for this command. • Extend the in-channel puzzle display to also allow editing of all puzzle fields • Implement an /archive command to allow for easy archiving of a channel for a solved puzzle (but make sure archived puzzles still show up in global hunt/round views). • Ensure that both spreadsheet and channel are updated in response to any changes. File uploads ------------ • Incorporate puzzle file uploads into the database state for each puzzle. Any file uploaded to the Slack should get included initially, but when editing a puzzle users can drop irrelevant files or label relevant files. Opt-out of channel invitations ------------------------------ • Consider adding a user option to allow a user to opt-in to auto invitation for all newly-created puzzle channels Sheet-related fixes ------------------- • Have linked spreadsheets go into a specific Google Drive folder • Come up with a better sheet template • Put the puzzle's name into the primary tab of the sheet • When copying tabs from the spreadsheet template, don't leave the default "Copy of " text in place. • Do something to make it more clear which tabs exist just as backup/reference from the original template vs. any new tab a user has created during the hunt. (Perhaps color the reference tabs differently.) Un-prioritized items -------------------- • Add support for recording/displaying those who have current roles • Think about some way to express solve priority Lower priority -------------- • Implement code to close out an entire hunt after the fact • Figure out what tool we want to use for shared drawing on a puzzle and integrate that into Turbot, (give a command that will generate a new URL and will insert that URL into the Slack topic and the list of links at the top of the sheet). • Think about using a URL shortener API for the sheet URLs (to leave more room in a channel topic for state string content)