Ok I will take a quick whack at this:
- algorithm is oriented toward fulfilling community priorities
- technical and non-technical work is measured
- all current contributors are to be rewarded
Create a system to form community priorities with output data that can be easily fed into the greater evaluation process. This may need a strong human participation component.
Use a prediction market to identify which clients and projects will have the most impact in 1 year. Then add instrumentation to the active mainnet and testnets, and measure which dapps and clients are impactful now.
From that combined list, create a list of software module dependencies, then create a list of contributors to each, to generate a list of GitHub IDs.
Separately, foster the emergence of TCR lists of events, papers, ideas, and important non-software, non-hosted-on-GitHub work done in the community, then generate a list of contributors from that data.
Once the master list of contributors is established, generate baseline scores of contributions from the the work done. Baseline is weighted according to the established community priorities. Next, create an incentivized subjective evaluation process. From the aggregated baseline and subjective scoring, generate an allocation of ether to each.
Create a reasonable claims process, and affix some kind of reasonable time lock or disbursement schedule.