feat(protocol): add Proposal0020 to revamp the security council - #22010
feat(protocol): add Proposal0020 to revamp the security council#22010ggonzalez94 wants to merge 9 commits into
Conversation
…e proposals Sibling of BuildProposal for proposals whose actions the Aragon DAO executes directly (SignerList, multisig plugins, EncryptionRegistry) — the DAO Controller holds no permissions on those contracts, so the Execute path cannot carry them. Provides print (actions for the DAO UI calldata form), l1dryrun (fork rehearsal with baseline/post-state hooks), and verify (byte-compares an on-chain proposal against the built actions) modes, plus a proposal:verify pnpm alias. Adds the EncryptionRegistry to LibL1Addrs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Restructures the Security Council from 9 members to 5 (removing Chainbound, Halborn, Drew Van der Werff, Toni Wahrstaetter and Gattaca; retaining Taiko Labs, L2BEAT, Aragon and Nethermind; adding Gustavo Gonzalez as an independent member), lowers the standard proposal threshold from 5/9 to 3/5 and the emergency threshold from 7/9 to 4/5, and drops SignerList minSignerListLength from 8 to 4. The new seat is currently Taiko Labs' appointed encryption agent; Taiko Labs must rotate agents before execution (documented in the spec, simulated by the dryrun, and asserted in checkPostState). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Generated via P=0020 pnpm proposal; the six actions to paste into the DAO UI, validated on a mainnet fork (end state: 5 members, 3/5 standard, 4/5 emergency). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Keeps the base to the same two modes as BuildProposal (print and dryrun) rather than introducing new repo-wide tooling alongside a council change. Confirming that a UI-created proposal matches the repo is now a manual getProposal comparison against the generated action.md, documented in the proposal spec. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Nothing consumed it and no other proposal carries one — the DAO UI collects the metadata fields through its own form and pins them. The exact text to paste now lives in a 'DAO UI fields' section of Proposal0020.md, keeping a single source of truth. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 52a52277ca
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
🐋 DeepSeek Code Review🟡 Warnings
🔵 Suggestions
🟢 What Looks Good
Automatically triggered on PR update • model: |
In-depth review of Proposal0020I reviewed this PR by independently deriving the required on-chain changes from the deployed contract code, verifying every byte of the committed actions, checking live mainnet state, and running the fork dryrun end-to-end. Verdict: the proposal is correct and executable as specified. The six actions are exactly the minimal set the deployed contracts require, the committed calldata is byte-exact, every baseline assumption matches mainnet state, and What I verified1. Goal → minimal action set, derived independently from deployed code. I pulled the verified sources of all target contracts from Etherscan — SignerList impl
This matches the six actions in 2. Script and calldata. I recomputed all six calldata blobs from the function signatures with an independent encoder — byte-identical to 3. Mainnet state (checked live). 4. Fork dryrun. 5. Semantic claims in the comments/spec — confirmed against deployed code:
FindingsF1 — Should fix: the documented pre-approval verification command fails
but (verified working against mainnet proposal 21). F2 — Should fix: stale
|
#22013) Co-authored-by: Claude <dong77@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude <dong77@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Restructures the Security Council from 9 members to 5 according to the Board meeting decision and lowers the standard proposal threshold to 3/5 and the emergency threshold to 4/5. This PR adds the Proposal0020 spec and its forge script, which prints the six actions to paste into the Taiko DAO UI; the proposal itself has not been submitted yet.
These actions execute directly from the Aragon DAO rather than through
controller.taiko.eth, which holds no permissions on the governance contracts — soBuildProposaldoesn't apply, hence theBuildDirectProposalbase that future signer and threshold changes can reuse.Full specification, the exact actions and their mandatory ordering, prerequisites and post-execution steps: Proposal0020.md