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.