My previous workflow looked like this:

- In MuseScore create way more parts than you need. This serves as a temporary work space.

- Save tons of files. E.g. if I'm working on "Composition_00341" I save bunch of files like "Compo_00341_{DATE}_AUDIO", "Compo_00341_{DATE}_ALL_PARTS", "Compo_00341_{DATE}_VIOLIN_I", "Compo_00341_{DATE}_SLIDES". They all have different purposes, such as one having optimized audio playback, the other for all parts, others for single parts, and one for 1920x1080 screens (to make a score video), etc.

- Use your notation software for your benefit. If you need more space, use large paper sizes (such as A0 etc), add more parts, add colors, add notes, leave more space between parts for more notes, add more measure numbers (so you can reference them in your notes) etc... I also use quirky, personal notation for my own purposes that I remove out in the final draft. E.g. I don't like seeing 8va, 8vb lines, or alto clef, so I only use F and G clefs with 8 or 15 on-top/bottom to simulate 8va/8vb/alto clef. Ultimately, these need to be removed since musicians prefer 8va/8vb/alto clef (e.g. for viola). Also some musicians (such as flutists) prefer seeing tons of ledger lines instead of 8va, so you need to think about these things, but while I'm composing I want to see an octave G-clef (G clef with 8 on top). It's easy to fix these things in MuseScore with a few clicks.

My new workflow is like this, most of this is still work in progress but I really really like it as it makes me very productive not just as a composer but also as a notation engraver:

- Custom python script. Use musicxml [1], mido [2] and lilypond [3]. They all serve different purposes.

- First, I start my compositions with sketching some ideas in MuseScore, or real-life in piano, this is just the old-school centuries old workflow. As most musicians would agree, usually there is no replacement to playing an idea on the piano, or sitting down and listening to it in your head. Philip Glass says that making music is the same activity as listening to music (except in your head!).

- Second, write parts of the composition into this script. I like this script checking certain things I don't want to make mistakes in and are too time consuming to check one note at a time (which is likely the best way to do this). For example, counterpoint. I also (occasionally) use 12-tone rows (or other forms of Serialism) and this can be checked too. Ultimately, these matter as much as you want them to matter. I also like using some "algorithmic composition" ideas, to quickly mock up some form I think about and generate a composition with that to test it out. You can use it as a battleground of sorts.

- Third, this script generates 3 main things:

- - A MIDI file for audio playback. Now, I personally think MIDI is absolutely horrendous and imho anything other than keyboard instruments (namely piano, organ, celesta, and harpsichord) sounds unusable (unusable = more confusing than not listening to it in the first place). This is fine for my purposes, as you can work on orchestration later in MuseScore/lilypond. This is just the pre-alpha draft.

- - A lilypond file. This generates a PDF. This can be the final PDF you give to the musician(s), or you can generate it through MuseScore.

- - A musicxml file. This can be used to import your music into MuseScore. You want to do this if you further want to work on your notation in MuseScore, or use MuseScore playback. Another option is to customize the lilypond file. Now, I know that some composers prefer using lilypond, I personally like MuseScore better.

[1] https://pypi.org/project/musicxml/

[2] https://mido.readthedocs.io/en/latest/

[3] http://lilypond.org/