]> git.cworth.org Git - turbot/blob - TODO
Add notes on how to update the Google sheets credentials
[turbot] / TODO
1 Ordered punch-list (aiming to complete by 2021-01-08)
2 -----------------------------------------------------
3
4 • Make the /hunt command drop from the database any rounds that have 0
5   puzzles in them
6
7 Recently-proposed ideas (not yet prioritized)
8 ---------------------------------------------
9 • Need a more direct way to ask for help and to find who needs
10   help. Something like /state but with announcements in the main
11   channel and maybe a periodic "Here's where people need help" post or
12   something like that.
13
14 • Fix all message posting in Slack to avoid limits, (breaking big
15   messages (is it 100 blocks? need to check) into multiple smaller
16   messages).
17
18 • Have Turbot explicitly report long state strings to the channel,
19   (since the implicit report from settting the abbreviated topic won't
20   have the whole message).
21
22 • Allow a hunt (and perhaps a round) to have multiple URLs
23
24 • Would it be helpful to have some sort of "tools" command to collect
25   pointers to useful tools and allow for searching of them?
26
27 • Investigate what from snap2 we could incorporate into our sheets:
28
29   https://github.com/kevinychen/snap2
30
31 • Watch the recent hunt workshop that had some recommendations on
32   tools and see what from that we should incorporate
33
34 • Think about writing some custom solving tools, (like Qat, or
35   Nutrimatic, or Snap2, etc.)
36
37 • Fix slash commands to pass off processing to a separate Lambda and
38   then return immediately (removing the annoying "operation timeout"
39   complaints from Slack even when the command works exactly as it
40   should).
41
42 • Hunt creation should set the hunt channel's topic (we recently added
43   this for hunt editing at least)
44
45 • The Turbot Home view and the /hunt output should emit the hunt links
46   and state string (similar to how puzzle links and state strings are
47   already implemented).
48
49 Round management
50 ----------------
51
52 • Select round fields by default based on the round of the puzzle for
53   the channel in which `/puzzle` is invoked.
54
55 Hunt overview commands and filters
56 ----------------------------------
57
58 • On the Turbot home screen allow a dropdown for Unsolved/Solved/All
59   puzzles
60
61 • On the Turbot home screen add a text box for a search hstring (to
62   work like the search string now available in "/hunt").
63
64 File uploads
65 ------------
66
67 • Incorporate puzzle file uploads into the database state for each
68   puzzle. Any file uploaded to the Slack should get included
69   initially, but when editing a puzzle users can drop irrelevant files
70   or label relevant files.
71
72 Opt-in for channel invitations
73 ------------------------------
74
75 • Consider adding a user option to allow a user to opt-out of the auto
76   invitation for all newly-created puzzle channels, (we have a
77   hard-coded list inside Turbot right now called
78   AUTO_INVITE_DENY_LIST)
79
80 Sheet-related fixes
81 -------------------
82
83 • Do something to make it more clear which tabs exist just as
84   backup/reference from the original template vs. any new tab a user
85   has created during the hunt. (Perhaps color the reference tabs
86   differently.)
87
88 Un-prioritized items
89 --------------------
90
91 • Add support for recording/displaying those who have current roles
92
93   Maybe this should just be a "Post" in the main hunt channel, (and
94   need not have any direct Turbot support?)
95
96 • Think about some way to express solve priority
97
98 Lower priority
99 --------------
100
101 • Figure out what tool we want to use for shared drawing on a puzzle
102   and integrate that into Turbot, (give a command that will generate a
103   new URL and will insert that URL into the Slack topic and the list
104   of links at the top of the sheet).
105
106 • Think about using a URL shortener API for the sheet URLs (to leave
107   more room in a channel topic for state string content)