The way I see it, a natural split is at major software boundaries:
- server (graphql server and metadata scrapers)
- client 1 (web)
- client 2 (e.g. emacs)
- client 3 (e.g. repl or command line program)
There doesn't seem to be a clear answer on what extend of upfront-planing is good or bad, even if there are complete bookshelves written about that. For now agile has won for long enough that we could already learn where it failed - as we've learned before where waterfall didn't work.
Still taking your list from above, I see no way how to reasonable start on one part, since they are interdependent. Before I could write a client, I would need at least a minimal server-side API against which to write. I personally would also prefer to first work on one client and only start others with one end-to-end piece working. For sure this will lead to follow-up discussion as how much wiggle room that first client leaves for the others, but the alternatives - the first one needs be correct at first shot or all of them can just be completely different - seem to be worse.
So for me a sequence could be:
1) Decide on "API-technology" (GraphQL, ...) and server side
implementation technology (node, some Scheme, ...). Start minimal
server-side API for ~ 3 API methods that we could agree on. That
implementation is at least in its first phase a one-person-job.
2) Decide on first client to support (where I would see advantages to first focus on the command line client), using a Scheme that we could agree on. Implementing end-to-end test cases with that server-client combo, that again being a one-person-job.
3) Now we can parallelize more:
3.a) document the status so far; this will also allow to more
easily on-board new participants
3.b) add more API methods server-side; the scope/feature discussion right now is quite fuzzy for me and - again maybe just for me - this might get much more concrete once a vertical end-2-end flow is available.
3.c) extend the first client
3.d) develop a second client (where I would see advantages to
next focus on the web client).
So in total I would see a next point for further planning once we're starting at that point 3.