]> git.cworth.org Git - turbot/blob - TODO
Modify multi_select_block to use accessory_block, section_block, and text_block
[turbot] / TODO
1 Ordered punch-list (aiming to complete by 2021-01-08)
2 -----------------------------------------------------
3
4 • Add the puzzle edit dialog (initially connected only to :pencil:)
5
6 • Ensure that both spreadsheet and channel are updated in response to
7   any changes.
8
9 • Rename puzzle creation command from /puzzle to /puzzle new
10
11 • Add new /puzzle giving puzzle status (and including :pencil:)
12
13 • Add new /puzzle edit as a shortcut instead of /puzzle followed by
14   clicking :pencil:
15
16 • Add /round as a shortcut for existing /hunt all <round-name> (and
17   slightly different in that it won't actually return a puzzle from
18   some other round that happens to have a name that matches this
19   round's name)
20
21 • Add "meta" as a checkbox field on puzzle creation/edit
22
23 • Tweak /hunt and /round to treat meta puzzles as special (sort them
24   first and add some META label)
25
26 • Add /tag to add/remove tags (will force to all caps and store as a
27   prefix as part of the state string for now)
28
29   Specifically, this should be "/tag TAG_NAME" or "/tag +TAG_NAME" to
30   add a tag and "/tag -TAG_NAME" to remove a tag.
31
32 Recently-proposed ideas (not yet prioritized)
33 ---------------------------------------------
34 • Set-up an announcements Slack channel that's auto fed by email to a
35   particular email address.
36
37 • Have Turbot explicitly report long state strings to the channel,
38   (since the implicit report from settting the abbreviated topic won't
39   have the whole message).
40
41 • In messages (like from /solved) don't use a raw user_name value from
42   the request, but instead some tagged version of a user ID (which
43   Slack will render as a display name).
44
45 • Allow a hunt (and perhaps a round) to have multiple URLs
46
47 • Provide an "Archive channel" button in the channel when outputting
48   the message that results from /solved.
49
50 • Would it be helpful to have some sort of "tools" command to collect
51   pointers to useful tools and allow for searching of them?
52
53 • Investigate what from snap2 we could incorporate into our sheets:
54
55   https://github.com/kevinychen/snap2
56
57 • Watch the recent hunt workshop that had some recommendations on
58   tools and see what from that we should incorporate
59
60 • Think about writing some custom solving tools, (like Qat, or
61   Nutrimatic, or Snap2, etc.)
62
63 • Fix slash commands to pass off processing to a separate Lambda and
64   then return immediately (removing the annoying "operation timeout"
65   complaints from Slack even when the command works exactly as it
66   should).
67
68 Round management
69 ----------------
70
71 • Select round fields by default based on the round of the puzzle for
72   the channel in which `/puzzle` is invoked.
73
74 • Consider putting a round prefix into the channel name to group a
75   round's puzzles in the channel list.
76
77 Hunt overview commands and filters
78 ----------------------------------
79
80 • On the Turbot home screen allow a dropdown for Unsolved/Solved/All
81   puzzles
82
83 • On the Turbot home screen add a text box for a search hstring (to
84   work like the search string now available in "/hunt").
85
86 File uploads
87 ------------
88
89 • Incorporate puzzle file uploads into the database state for each
90   puzzle. Any file uploaded to the Slack should get included
91   initially, but when editing a puzzle users can drop irrelevant files
92   or label relevant files.
93
94 Opt-in for channel invitations
95 ------------------------------
96
97 • Consider adding a user option to allow a user to opt-in to auto
98   invitation for all newly-created puzzle channels
99
100 Sheet-related fixes
101 -------------------
102
103 • Add the solution to the sheet name on solved: "[TITLE] - Solved [ANSWER]"
104
105 • Use a hunt-specific Google Drive folder for creating all the
106   sheets. (This way, we can share out the "mh2021" folder to all team
107   members so that people can browse the sheets that way if wanted, and
108   have backup access to all of them on the off chance of Slack not
109   being available.)
110
111 • Come up with a better sheet template (Nathan has got one available here:
112
113 https://docs.google.com/spreadsheets/d/1drSoyrE4gM3JaGweDkOybwXWdKPIDTfUmB1gQCYS3Uw/edit#gid=1471575838
114
115 • Put the puzzle's name into the primary tab of the sheet
116
117 • When copying tabs from the spreadsheet template, don't leave the
118   default "Copy of " text in place.
119
120 • Do something to make it more clear which tabs exist just as
121   backup/reference from the original template vs. any new tab a user
122   has created during the hunt. (Perhaps color the reference tabs
123   differently.)
124
125 Un-prioritized items
126 --------------------
127
128 • Add support for recording/displaying those who have current roles
129
130   Maybe this should just be a "Post" in the main hunt channel, (and
131   need not have any direct Turbot support?)
132
133 • Think about some way to express solve priority
134
135 Lower priority
136 --------------
137
138 • Implement code to close out an entire hunt after the fact
139
140 • Figure out what tool we want to use for shared drawing on a puzzle
141   and integrate that into Turbot, (give a command that will generate a
142   new URL and will insert that URL into the Slack topic and the list
143   of links at the top of the sheet).
144
145 • Think about using a URL shortener API for the sheet URLs (to leave
146   more room in a channel topic for state string content)