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