]> git.cworth.org Git - turbot/blobdiff - TODO
Put a message into the channel when a user edits a puzzle
[turbot] / TODO
diff --git a/TODO b/TODO
index 50f86dde6028996f4dbbc7f0d7bbdb3fbf8e1110..20387a6694ee20bf15ffebc1d78a337490675612 100644 (file)
--- a/TODO
+++ b/TODO
-• Make /solved report to the main hunt channel
+Ordered punch-list (aiming to complete by 2021-01-08)
+-----------------------------------------------------
 
 
-• Make /solved clear the state string for a puzzle.
+• Add new /puzzle edit as a shortcut instead of /puzzle followed by
+  clicking :pencil:
 
 
-• Implement an /archive command to allow for easy archiving of a
-  channel for a solved puzzle
+• Add /round as a shortcut for existing /hunt all <round-name> (and
+  slightly different in that it won't actually return a puzzle from
+  some other round that happens to have a name that matches this
+  round's name)
 
 
-• Implement code to close out an entire hunt after the fact
+• Add "meta" as a checkbox field on puzzle creation/edit
 
 
-• Implement a /hunt command for giving an overview of the entire hunt,
-  (like the Turbot "home" view but available in any channel)
+• Tweak /hunt and /round to treat meta puzzles as special (sort them
+  first and add some META label)
 
 
-• For "/hunt" display only unsolved puzzles by default, but also allow
-  for "/hunt all" to display all puzzles
+• Make `/puzzle` for a meta puzzle also display the names/answers of
+  all puzzles in the round.
 
 
-• On the Turbot home screen allow a dropdown for Unsolved/Solved/All
-  puzzles
+• Add /tag to add/remove tags (will force to all caps and store as a
+  prefix as part of the state string for now)
 
 
-• 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.
+  Specifically, this should be "/tag TAG_NAME" or "/tag +TAG_NAME" to
+  add a tag and "/tag -TAG_NAME" to remove a tag.
 
 
-• 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.
+• Make the /hunt command drop from the database any rounds that have 0
+  puzzles in them
 
 
-• Consider putting a round prefix into the channel name to group a
-  round's puzzles in the channel list.
+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).
+
+• Allow a hunt (and perhaps a round) to have multiple URLs
+
+• Provide an "Archive channel" button in the channel when outputting
+  the message that results from /solved.
+
+• Would it be helpful to have some sort of "tools" command to collect
+  pointers to useful tools and allow for searching of them?
 
 
-• 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?
+• Investigate what from snap2 we could incorporate into our sheets:
 
 
-• Implement a command to display the status of the current puzzle
-  within the channel. Need a name for this command.
+  https://github.com/kevinychen/snap2
 
 
-• Extend the in-channel puzzle display to also allow editing of all
-  puzzle fields
+• Watch the recent hunt workshop that had some recommendations on
+  tools and see what from that we should incorporate
 
 
-• Fix /puzzle dialog to reject a puzzle with the same URL as an
-  existing puzzle.
+• Think about writing some custom solving tools, (like Qat, or
+  Nutrimatic, or Snap2, etc.)
 
 
-• Allow a per-user option to opt out of being auto-invited to all
-  newly-created puzzle channels.
+• 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).
 
 
-• Figure out what we want for tagging and searching on tags (beyond
-  what's already possible with the state strings).
+Round management
+----------------
 
 
-• Decide a good plan for audio/video calls for puzzles and integrate
-  that into Turbot.
+• Select round fields by default based on the round of the puzzle for
+  the channel in which `/puzzle` is invoked.
 
 
-• 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).
+• Consider putting a round prefix into the channel name to group a
+  round's puzzles in the channel list.
+
+Hunt overview commands and filters
+----------------------------------
+
+• On the Turbot home screen allow a dropdown for Unsolved/Solved/All
+  puzzles
+
+• On the Turbot home screen add a text box for a search hstring (to
+  work like the search string now available in "/hunt").
+
+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.
 
 
 • 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
+
+Sheet-related fixes
+-------------------
+
+• Add the solution to the sheet name on solved: "[TITLE] - Solved [ANSWER]"
 
 
-• Come up with a better sheet template
+• 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 (Nathan has got one available here:
+
+https://docs.google.com/spreadsheets/d/1drSoyrE4gM3JaGweDkOybwXWdKPIDTfUmB1gQCYS3Uw/edit#gid=1471575838
 
 • Put the puzzle's name into the primary tab of the sheet
 
 
 • Put the puzzle's name into the primary tab of the sheet
 
   has created during the hunt. (Perhaps color the reference tabs
   differently.)
 
   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
 • 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)