]> git.cworth.org Git - turbot/blob - TODO
Rework the TODO list to capture recent-discussed priorities
[turbot] / TODO
1 Low-hanging fruit
2 -----------------
3
4 [These are not highest priority, but are so easy that they are worth
5 not delaying until after bigger features below.]
6
7 • Fix /puzzle dialog to reject a puzzle with the same URL as an
8   existing puzzle.
9
10 • Make /solved clear the state string for a puzzle.
11
12 Round management
13 ----------------
14
15 • Add a /round command to create a new round. This is like a puzzle in
16   that it has its own channel, but different in that it doesn't accept
17   a solution, etc.
18
19 • Add an (optional) drop-down at puzzle creation for selecting a known
20   round for a puzzle, (or creating a new round). Ensure this mechanism
21   allows for puzzles to exist in multiple rounds.
22
23 • Consider putting a round prefix into the channel name to group a
24   round's puzzles in the channel list.
25
26 Meta-puzzle support
27 -------------------
28
29 • Figure out a good mechanism for linking puzzles to a meta-puzzle
30   that they feed into. Is this different or the same as the round
31   mechanism described above?
32
33 Hunt overview commands and filters
34 ----------------------------------
35
36 • Implement a /hunt command for giving an overview of the entire hunt,
37   (like the Turbot "home" view but available in any channel)
38
39 • For "/hunt" display only unsolved puzzles by default, but also allow
40   for "/hunt all" to display all puzzles
41
42 • On the Turbot home screen allow a dropdown for Unsolved/Solved/All
43   puzzles
44
45 • For both "/hunt" and the Turbot home screen allow for a search
46   string that will search through puzzle names, puzzle IDs, puzzle
47   URLs, and state strings.
48
49 • Figure out what we want for tagging and searching on tags (beyond
50   what's already possible with the state strings).
51
52 Editing puzzle fields
53 ---------------------
54
55 • Implement a command to display the status of the current puzzle
56   within the channel. Need a name for this command.
57
58 • Extend the in-channel puzzle display to also allow editing of all
59   puzzle fields
60
61 • Implement an /archive command to allow for easy archiving of a
62   channel for a solved puzzle (but make sure archived puzzles still
63   show up in global hunt/round views).
64
65 File uploads
66 ------------
67
68 • Incorporate puzzle file uploads into the database state for each
69   puzzle. Any file uploaded to the Slack should get included
70   initially, but when editing a puzzle users can drop irrelevant files
71   or label relevant files.
72
73 Opt-out of channel invitations
74 ------------------------------
75
76 • Drop the auto-invitation of all hunt members to every new channel.
77
78 • Announce all newly-created puzzles in the main hunt channel, (so
79   that hunt members can easily click to join).
80
81 • Consider adding a user option to allow a user to opt-in to auto
82   invitation for all newly-created puzzle channels
83
84 Sheet-related fixes
85 -------------------
86
87 • Have linked spreadsheets go into a specific Google Drive folder
88
89 • Come up with a better sheet template
90
91 • Put the puzzle's name into the primary tab of the sheet
92
93 • When copying tabs from the spreadsheet template, don't leave the
94   default "Copy of " text in place.
95
96 • Do something to make it more clear which tabs exist just as
97   backup/reference from the original template vs. any new tab a user
98   has created during the hunt. (Perhaps color the reference tabs
99   differently.)
100
101 Un-prioritized items
102 --------------------
103
104 • Add support for recording/displaying those who have current roles
105
106 • Decide a good plan for audio/video calls for puzzles and integrate
107   that into Turbot.
108
109 • Inspect the CloudWatch logs for our Turbot AWS Lambda during the time
110   period of the active hunt, (October 24-31), find and diagnose any
111   errors that occurred during that period. Users reported seeing
112   "Trouble connecting" (probably during new-puzzle dialog submission)
113   as well as "dispatch_failed during /state command (perhaps due to a
114   state string that was very long).
115
116 • Think about some way to express solve priority
117
118 Lower priority
119 --------------
120
121 • Implement code to close out an entire hunt after the fact
122
123
124 • Figure out what tool we want to use for shared drawing on a puzzle
125   and integrate that into Turbot, (give a command that will generate a
126   new URL and will insert that URL into the Slack topic and the list
127   of links at the top of the sheet).