X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=TODO;h=cbc22644936ab4ede2e310a5da337a9f10ebcdab;hb=ac83e42a735ae1098ebcec783b5f816369eb3917;hp=da13ce62b1e02a1169e08d823e433136eaded615;hpb=4bd6b54853a3af52ac9a5952891de4cd2c3c1386;p=turbot diff --git a/TODO b/TODO index da13ce6..cbc2264 100644 --- a/TODO +++ b/TODO @@ -1,71 +1,90 @@ +Ordered punch-list (aiming to complete by 2021-01-08) +----------------------------------------------------- + +• Add the puzzle edit dialog (initially connected only to :pencil:) + +• Ensure that both spreadsheet and channel are updated in response to + any changes. + +• Rename puzzle creation command from /puzzle to /puzzle new + +• Add new /puzzle giving puzzle status (and including :pencil:) + +• Add new /puzzle edit as a shortcut instead of /puzzle followed by + clicking :pencil: + +• Add /round as a shortcut for existing /hunt all (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) + +• Add "meta" as a checkbox field on puzzle creation/edit + +• Tweak /hunt and /round to treat meta puzzles as special (sort them + first and add some META label) + +• Make `/puzzle` for a meta puzzle also display the names/answers of + all puzzles in the round. + +• Add /tag to add/remove tags (will force to all caps and store as a + prefix as part of the state string for now) + + Specifically, this should be "/tag TAG_NAME" or "/tag +TAG_NAME" to + add a tag and "/tag -TAG_NAME" to remove a tag. + Recently-proposed ideas (not yet prioritized) --------------------------------------------- • Set-up an announcements Slack channel that's auto fed by email to a particular email address. -Low-hanging fruit ------------------ +• 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? + +• Investigate what from snap2 we could incorporate into our sheets: -[These are not highest priority, but are so easy that they are worth -not delaying until after bigger features below.] + https://github.com/kevinychen/snap2 -• Fix /puzzle dialog to reject a puzzle with the same URL as an - existing puzzle. +• Watch the recent hunt workshop that had some recommendations on + tools and see what from that we should incorporate -• Make /solved clear the state string for a puzzle. +• 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). Round management ---------------- -• 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. +• 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). +• 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 ------------ @@ -75,7 +94,7 @@ 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 @@ -84,9 +103,17 @@ Opt-out of channel invitations Sheet-related fixes ------------------- -• Have linked spreadsheets go into a specific Google Drive folder +• 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.) -• Come up with a better sheet template +• 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 @@ -103,15 +130,8 @@ 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). + 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 @@ -120,8 +140,10 @@ 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)