-• Make links to puzzle and channel within sheet be actual links
+Ordered punch-list (aiming to complete by 2021-01-08)
+-----------------------------------------------------
-• Make /solved report to the main hunt channel
+• Add tags to the puzzle edit interface
-• Make /solved rename the puzzle's sheet to indicate its solved status
+• Make the /hunt command drop from the database any rounds that have 0
+ puzzles in them
-• Make /solved rename the puzzle's channel to include a "-solved" suffix
+Recently-proposed ideas (not yet prioritized)
+---------------------------------------------
+• Set-up an announcements Slack channel that's auto fed by email to a
+ particular email address.
-• Make /solved clear the state string for a puzzle.
+• 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).
-• Implement an /archive command to allow for easy archiving of a
- channel for a solved puzzle
+• 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).
-• Implement code to close out an entire hunt after the face
+• Allow a hunt (and perhaps a round) to have multiple URLs
-• Implement a /hunt command for giving an overview of the entire hunt,
- (like the Turbot "home" view but available in any channel)
+• Provide an "Archive channel" button in the channel when outputting
+ the message that results from /solved.
-• For "/hunt" display only unsolved puzzles by default, but also allow
- for "/hunt all" to display all puzzles
+• Would it be helpful to have some sort of "tools" command to collect
+ pointers to useful tools and allow for searching of them?
-• On the Turbot home screen allow a dropdown for Unsolved/Solved/All
- puzzles
+• Investigate what from snap2 we could incorporate into our sheets:
-• 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.
+ https://github.com/kevinychen/snap2
-• Add an (optional) drop-down at puzzle creation for selecting a known
- round for a puzzle, (or creating a new round). Ensure this mechanism
- allows for puzzles to exist in multiple rounds.
+• Watch the recent hunt workshop that had some recommendations on
+ tools and see what from that we should incorporate
-• Consider putting a round prefix into the channel name to group a
- round's puzzles in the channel list.
+• Think about writing some custom solving tools, (like Qat, or
+ Nutrimatic, or Snap2, etc.)
-• Figure out a good mechanism for linking puzzles to a meta-puzzle
- that they feed into. Is this different or the same than the round
- mechanism described above?
+• 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).
-• Implement a command to display the status of the current puzzle
- within the channel. Need a name for this command.
+Round management
+----------------
-• Extend the in-channel puzzle display to also allow editing of all
- puzzle fields
+• Select round fields by default based on the round of the puzzle for
+ the channel in which `/puzzle` is invoked.
-• Fix /puzzle dialog to reject a puzzle with the same URL as an
- existing puzzle.
+• Consider putting a round prefix into the channel name to group a
+ round's puzzles in the channel list.
-• Allow a per-user option to opt out of being auto-invited to all
- newly-created puzzle channels.
+Hunt overview commands and filters
+----------------------------------
-• Figure out what we want for tagging and searching on tags (beyond
- what's already possible with the state strings).
+• On the Turbot home screen allow a dropdown for Unsolved/Solved/All
+ puzzles
-• Decide a good plan for audio/video calls for puzzles and integrate
- that into Turbot.
+• On the Turbot home screen add a text box for a search hstring (to
+ work like the search string now available in "/hunt").
-• Inspect the CloudWatch logs for our Turbot AW Lambda during the time
- period of the active hunt, (October 24-31), find and diagnose any
- errors that occurred during that period. Users reported seeing
- "Trouble connecting" (probably during new-puzzle dialog submission)
- as well as "dispatch_failed during /state command (perhaps due to a
- state string that was very long).
+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.
-• 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).
+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
-• Come up with a better sheet template
+Sheet-related fixes
+-------------------
+
+• Add the solution to the sheet name on solved: "[TITLE] - Solved [ANSWER]"
+
+• 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.)
• Put the puzzle's name into the primary tab of the sheet
has created during the hunt. (Perhaps color the reference tabs
differently.)
+Un-prioritized items
+--------------------
+
+• 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
+ 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)