Often an organization is faced with a need to implement more complex approval processes than simply putting something to a vote.
Sometimes you may want to create a “double-approval” where one group must vote to approve an action, and if that is approved, a second group must also vote to confirm the action.
For example, the Aragon Fundraising template has multiple stakeholder groups, an executive body that represents the team as well as a group which represents patrons. At present some actions require a member of the board to propose a change to the projects patrons. But for sensitive changes (perhaps upgrades), it might be wise to have both groups vote to approve the change.
Similarly, the approvals app can be used to create moderation policies where a small group or set of individuals is required to sign-off on any proposal before it is voted on. An example of this might be the AGP process itself, which relies on the Aragon Association board to review proposals before they are voted on by ANT holders. With the approvals app we could have users submit votes directly to the organization, which would sit as pending until they are reviewed and either approved or rejected. When they are approved they would be passed to the voting app.
Similarly, the proposed improvement to the Nest DAO uses a similar flow anyone to submit a proposals, but an Aragon Association account is required to moderate which (and when) proposals get voted on. This type of process can be quite effective in encoding processes where votes should be batched for convinces, or reviewed to ensure that each proposal meets some requirements.
Multiple moderators can be assigned, with only a single moderator required to approve a proposal. A stakeholder group can elect or remove moderators via vote, ensuring that so long as there is a at least one honest moderator, stakeholders are the final authority.
The Approvals app is available on rinkeby right now, and can be seen installed in the nest test org. It was developed during a A1 hackathon, and could use a bit of frontend polish to match the new design system styles. Code is available here: GitHub - aragonone/approvals