From 01ef7b71ad45338427c61722dbbee4fb19759661 Mon Sep 17 00:00:00 2001
From: Carl Worth <cworth@cworth.org>
Date: Mon, 28 Dec 2020 09:49:20 -0700
Subject: [PATCH] Rework the TODO list to capture recent-discussed priorities

Thanks, Nathan!
---
 TODO | 114 +++++++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 80 insertions(+), 34 deletions(-)

diff --git a/TODO b/TODO
index 6589b33..56fe242 100644
--- a/TODO
+++ b/TODO
@@ -1,11 +1,37 @@
-• Add support for recroding/displaying those who have current roles
+Low-hanging fruit
+-----------------
+
+[These are not highest priority, but are so easy that they are worth
+not delaying until after bigger features below.]
+
+• Fix /puzzle dialog to reject a puzzle with the same URL as an
+  existing puzzle.
 
 • Make /solved clear the state string for a puzzle.
 
-• Implement an /archive command to allow for easy archiving of a
-  channel for a solved puzzle
+Round management
+----------------
 
-• Implement code to close out an entire hunt after the fact
+• Add a /round command to create a new round. This is like a puzzle in
+  that it has its own channel, but different in that it doesn't accept
+  a solution, etc.
+
+• 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.
+
+• 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)
@@ -20,16 +46,11 @@
   string that will search through puzzle names, puzzle IDs, puzzle
   URLs, and state strings.
 
-• 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.
-
-• Consider putting a round prefix into the channel name to group a
-  round's puzzles in the channel list.
+• Figure out what we want for tagging and searching on tags (beyond
+  what's already possible with the state strings).
 
-• 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?
+Editing puzzle fields
+---------------------
 
 • Implement a command to display the status of the current puzzle
   within the channel. Need a name for this command.
@@ -37,34 +58,33 @@
 • Extend the in-channel puzzle display to also allow editing of all
   puzzle fields
 
-• Fix /puzzle dialog to reject a puzzle with the same URL as an
-  existing puzzle.
-
-• Allow a per-user option to opt out of being auto-invited to all
-  newly-created puzzle channels.
-
-• Figure out what we want for tagging and searching on tags (beyond
-  what's already possible with the state strings).
-
-• Decide a good plan for audio/video calls for puzzles and integrate
-  that into Turbot.
+• 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).
 
-• Inspect the CloudWatch logs for our Turbot AWS 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-out of channel invitations
+------------------------------
+
+• Drop the auto-invitation of all hunt members to every new channel.
+
+• Announce all newly-created puzzles in the main hunt channel, (so
+  that hunt members can easily click to join).
+
+• 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
 
@@ -78,4 +98,30 @@
   has created during the hunt. (Perhaps color the reference tabs
   differently.)
 
+Un-prioritized items
+--------------------
+
+• Add support for recording/displaying those who have current roles
+
+• Decide a good plan for audio/video calls for puzzles and integrate
+  that into Turbot.
+
+• Inspect the CloudWatch logs for our Turbot AWS 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).
+
 • 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).
-- 
2.45.2