Skip to content

docs: add multisig signing process doc, fix docs index and dead links (EXSC-711) - #2126

Draft
0xDEnYO wants to merge 2 commits into
mainfrom
docs/multisig-signing-process
Draft

docs: add multisig signing process doc, fix docs index and dead links (EXSC-711)#2126
0xDEnYO wants to merge 2 commits into
mainfrom
docs/multisig-signing-process

Conversation

@0xDEnYO

@0xDEnYO 0xDEnYO commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Which Linear task belongs to this PR?

https://linear.app/lifi-linear/issue/EXSC-711

Why did I implement it this way?

The repo documents contracts thoroughly but the processes around them — how a change gets deployed, audited, proposed to the multisig, signed and executed — live in people's heads, in Slack threads, and partially in .agents/commands/multisig-rollout.md. This adds docs/MultisigSigningProcess.md describing the process as it exists today, not as we would like it to be. Everything in it was verified against the code on main; it cites script paths and function names rather than line numbers, which rot.

The check table carries an explicit "Enforced by" column mapping each rule to the script or workflow that enforces it. That was deliberate: it makes the difference between "we have a convention" and "the system enforces a convention" visible at a glance, and it makes gaps obvious rather than implicit.

There is an honest section on what the signer still has to verify manually. It would have been easy to write a doc that implies the tooling covers more than it does; that would be worse than no doc.

Housekeeping included because it is the same edit surface: docs/README.md was missing several process docs that already exist, and the root README.md linked ./conventions.md — a file that no longer exists — in four separate places, now pointed at .agents/rules/.

A short "planned improvements" section at the end is clearly marked as proposal-stage and not yet implemented, so the doc does not read as describing features we do not have.

Governance impact (rule 105): documentation only. No change to any script, workflow, Safe threshold, timelock delay, role, or transaction authorization path.

Checklist before requesting a review

Checklist for reviewer (DO NOT DEPLOY and contracts BEFORE CHECKING THIS!!!)

  • I have checked that any arbitrary calls to external contracts are validated and or restricted
  • I have checked that any privileged calls (i.e. storage modifications) are validated and or restricted
  • I have ensured that any new contracts have had AT A MINIMUM 1 preliminary audit conducted on by <company/auditor>

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f0af976b-8f32-4225-8d93-5f601a04c3ba

📥 Commits

Reviewing files that changed from the base of the PR and between 9f8dcfc and d54f5fd.

📒 Files selected for processing (1)
  • docs/MultisigSigningProcess.md

Walkthrough

Changes

Multisig process reference

Layer / File(s) Summary
Architecture and proposal lifecycle
docs/MultisigSigningProcess.md
Documents roles, storage, governance configuration, deployment logging, proposal creation, timelock wrapping, and proposal states.
Signing, execution, and reconciliation
docs/MultisigSigningProcess.md
Describes confirmation, Safe execution, timelock execution, receipt updates, and reconciliation tooling.
Controls, emergency paths, and tooling
docs/MultisigSigningProcess.md
Lists automated and manual checks, emergency workflows, related scripts, workflows, and planned improvements.

Documentation navigation updates

Layer / File(s) Summary
Documentation links and indexes
README.md, docs/README.md
Updates coding-rule links, facet entries, process links, and guide ordering.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested labels: AuditNotRequired

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main documentation updates and link fixes in the PR.
Description check ✅ Passed The description follows the template, includes the Linear task, rationale, and both checklists, with clear scope and governance notes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/multisig-signing-process

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/MultisigSigningProcess.md`:
- Around line 14-17: Revise the governance descriptions in
MultisigSigningProcess.md, including the direct-broadcast section and the flows
around diamondCut, pause, and unpause, so Safe multisig and timelock controller
usage are mandatory for production and never presented as bypassable. Clearly
label direct EOA, omitted-timelock, and pause paths as non-production or
explicitly authorized break-glass procedures, document their enforced guards,
and state that unpause may bypass only the delay while Safe threshold/quorum
remains mandatory.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: bf45c4f8-8ce6-486d-89eb-2f1d255185bd

📥 Commits

Reviewing files that changed from the base of the PR and between 358c2b9 and 9f8dcfc.

📒 Files selected for processing (3)
  • README.md
  • docs/MultisigSigningProcess.md
  • docs/README.md

Comment thread docs/MultisigSigningProcess.md Outdated
…eak-glass (EXSC-711)

Addresses CodeRabbit review on PR #2126: the doc described
SEND_PROPOSALS_DIRECTLY_TO_DIAMOND, the untimelocked deployUpgradesToSAFE
diamondCut, pause, and unpause without making clear that none of them weaken
Safe governance on a live production diamond. Each is now scoped to
bring-up/legacy/break-glass with its enforced guard named, and unpause states
that only minDelay is bypassed while Safe threshold/quorum stays mandatory.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant