Skip to main content

chainsafe-solidity-architect

Architectural guidance for designing Solidity contracts and EVM systems at ChainSafe (Sygma bridge and broader crypto work). Use whenever the user starts a new contract, designs a contract system, picks an upgrade strategy (immutable / UUPS / Transparent / Diamond), chooses access control (Ownable vs AccessControl, multi-sig, timelocks), designs reentrancy posture, plans a deployment, or writes an ADR for Solidity work. EVEN IF the user does not say "architecture" — triggers on "design a contract", "Sygma bridge architecture", "upgrade strategy", "UUPS or Transparent", "multi-sig setup", "access control design", "reentrancy strategy", "audit plan", "deployment plan", "bridge invariants", "cross-chain replay", "storage layout upgradeable". Every Solidity decision is a security decision. Do NOT use for line-level Solidity (use chainsafe-solidity-developer) or PR review (use chainsafe-solidity-reviewer).

معلومات المصدر

المستودع
ChainSafe/engineering-handbook
آخر نشاط في المصدر
٢٠ يوليو ٢٠٢٦ في ١١:٤٤
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٧
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
chainsafe-solidity-architect
description
Architectural guidance for designing Solidity contracts and EVM systems at ChainSafe (Sygma bridge and broader crypto work). Use whenever the user starts a new contract, designs a contract system, picks an upgrade strategy (immutable / UUPS / Transparent / Diamond), chooses access control (Ownable vs AccessControl, multi-sig, timelocks), designs reentrancy posture, plans a deployment, or writes an ADR for Solidity work. EVEN IF the user does not say "architecture" — triggers on "design a contract", "Sygma bridge architecture", "upgrade strategy", "UUPS or Transparent", "multi-sig setup", "access control design", "reentrancy strategy", "audit plan", "deployment plan", "bridge invariants", "cross-chain replay", "storage layout upgradeable". Every Solidity decision is a security decision. Do NOT use for line-level Solidity (use chainsafe-solidity-developer) or PR review (use chainsafe-solidity-reviewer).
metadata
{"type":"role-workflow","language":"solidity","role":"architect","source":"languages/solidity/architect.md","authored-via":"anthropic-skills:skill-creator (2026-05-27)"}
# Solidity Architect Use this when designing Solidity systems at ChainSafe — Sygma-shaped work or any contract. **Every decision here is a security decision.** The reviewer skill is HARD FAIL tier. Architecture that doesn't anticipate that will get blocked. Full reference: [`languages/solidity/architect.md`](../../languages/solidity/architect.md). ## Key Solidity-specific decisions ### Project layout - Foundry preferred for new projects. Hardhat only where entrenched. - `src/` (Foundry) or `contracts/` (Hardhat), grouped by domain (`bridge/`, `tokens/`, `governance/`). - `test/` for tests, `script/` for deploy/ops, `lib/` for vendored libraries (OpenZeppelin, Solady, Solmate). - `foundry.toml` / `hardhat.config.ts` at the root. ### Upgrade strategy (binding for the contract's life) - **Immutable.** No upgrade path. Simplest and safest; locks in mistakes forever. **Default unless you have a concrete reason for upgradeability.** - **UUPS** (Universal Upgradeable Proxy Standard). Logic contract holds the upgrade method; requires authorization for `upgradeTo`. - **Transparent proxy.** Admin/user separation in the proxy; familiar from OpenZeppelin tooling. - **Diamond (EIP-2535).** Multi-facet, modular; more surface to audit. Migrating between upgrade strategies is itself a migration risk. Pick once. ### Access control - **OpenZeppelin `AccessControl`** for role-based authorization in most cases. - **`Ownable` only for genuinely-single-owner cases.** Owner-key compromise is total compromise. - **Multi-sig (Gnosis Safe)** for any production deployment's privileged operations. Single-key control of production = finding. - **Timelocks** on upgrades and parameter changes. Gives stakeholders time to react. ### Reentrancy posture - **Checks-Effects-Interactions** pattern, rigid. State changes before external calls. - **OpenZeppelin `ReentrancyGuard`** on every external function that calls untrusted contracts. - **Pull over push** for payments where reasonable. ### External calls - Address every call's failure mode (revert, wrong return, reentrancy). - `.transfer` and `.send` deprecated; use `.call{value:}("")` and check return. - Approval-then-transfer for ERC-20: be aware of the classic approval race; use `safeIncreaseAllowance` / `safeDecreaseAllowance`. ### Bridge-specific (Sygma) - Consistent state across chains — what invariant is the bridge maintaining? - Replay protection via nonces, domain separators, or both. - Failure mode for destination chain — what happens if delivery fails or is censored? - Slashing / signer-set rotation — how do signer changes propagate? ## ADR template for Solidity work - Upgrade strategy — immutable / UUPS / Transparent / Diamond. Justify. - Access control model — roles, granting, renouncing, multi-sig vs EOA. - External-call surface — which functions, reentrancy posture. - Storage layout — slot map for upgradeable; gap pattern. - Audit plan — when, by whom, recurring vs pre-deploy. - Test coverage commitments — unit, fuzz, invariant, formal verification. - Invariants impacted — deep links into `.invariants`. ## Anti-patterns at design time - Owner key controls production contracts. Use a multi-sig. - Upgrade path with no timelock. - State changes after external calls. - `tx.origin` for authorization. - Unbounded loops over caller-controlled data (gas griefing). - Custom math instead of OpenZeppelin / Solady. - `assembly` blocks without inline justification. ## Related - Full reference: [`languages/solidity/architect.md`](../../languages/solidity/architect.md) - Sister roles: `chainsafe-solidity-developer`, `chainsafe-solidity-reviewer` (HARD FAIL tier) - Workflow: `chainsafe-research-plan-implement`
عرض على GitHub