+Ordered punch-list (aiming to complete by 2021-01-08)
+-----------------------------------------------------
+
+• Make the /hunt command drop from the database any rounds that have 0
+ puzzles in them
+
Recently-proposed ideas (not yet prioritized)
---------------------------------------------
-• Set-up an announcements Slack channel that's auto fed by email to a
- particular email address.
+• Need a more direct way to ask for help and to find who needs
+ help. Something like /state but with announcements in the main
+ channel and maybe a periodic "Here's where people need help" post or
+ something like that.
+
+• Fix all message posting in Slack to avoid limits, (breaking big
+ messages (is it 100 blocks? need to check) into multiple smaller
+ messages).
• 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).
+• Allow a hunt (and perhaps a round) to have multiple URLs
-Round management
-----------------
+• Would it be helpful to have some sort of "tools" command to collect
+ pointers to useful tools and allow for searching of them?
-• Add a /round command which is identical to /hunt except that it acts
- on only the puzzles in the same round(s) as the current puzzle.
+• Investigate what from snap2 we could incorporate into our sheets:
-• Select round fields by default based on the round of the puzzle for
- the channel in which `/puzzle` is invoked.
+ https://github.com/kevinychen/snap2
-• Consider putting a round prefix into the channel name to group a
- round's puzzles in the channel list.
+• Watch the recent hunt workshop that had some recommendations on
+ tools and see what from that we should incorporate
-Meta-puzzle support
--------------------
+• Think about writing some custom solving tools, (like Qat, or
+ Nutrimatic, or Snap2, etc.)
+
+• Fix slash commands to pass off processing to a separate Lambda and
+ then return immediately (removing the annoying "operation timeout"
+ complaints from Slack even when the command works exactly as it
+ should).
+
+• Hunt creation should set the hunt channel's topic (we recently added
+ this for hunt editing at least)
+
+• The Turbot Home view and the /hunt output should emit the hunt links
+ and state string (similar to how puzzle links and state strings are
+ already implemented).
+
+Round management
+----------------
-• 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?
+• Select round fields by default based on the round of the puzzle for
+ the channel in which `/puzzle` is invoked.
Hunt overview commands and filters
----------------------------------
• On the Turbot home screen add a text box for a search hstring (to
work like the search string now available in "/hunt").
-• 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
------------
initially, but when editing a puzzle users can drop irrelevant files
or label relevant files.
-Opt-out of channel invitations
+Opt-in for channel invitations
------------------------------
-• Consider adding a user option to allow a user to opt-in to auto
- invitation for all newly-created puzzle channels
+• Consider adding a user option to allow a user to opt-out of the auto
+ invitation for all newly-created puzzle channels, (we have a
+ hard-coded list inside Turbot right now called
+ AUTO_INVITE_DENY_LIST)
Sheet-related fixes
-------------------
-• Use a hunt-specific Google Drive folder for creating all the
- sheets. (This way, we can share out the "mh2021" folder to all team
- members so that people can browse the sheets that way if wanted, and
- have backup access to all of them on the off chance of Slack not
- being available.)
-
-• 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
• Add support for recording/displaying those who have current roles
+ Maybe this should just be a "Post" in the main hunt channel, (and
+ need not have any direct Turbot support?)
+
• 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