commit
免费Handle git commits with auto-staging, targeted pre-commit formatting, and Conventional Commit messages. Use when the user says commit it, commit this, commit changes, save my changes, or similar git commit requests.
中文简介正在准备中。当前显示原文说明。
Verifies a POST-EXECUTION mainnet (or other network) smart-contract deployment PR for this repo: confirms every deployed contract is listed in the PR description, that the on-chain verified source (and its dependencies) matches the codebase via `sol2uml diff`, that constructor args and the initialize tx match the Foundry script, and that the on-chain governance proposal matches the script's actions. Use when asked to review, verify, audit, or sign off on an executed deployment PR. Invoke explicitly with /verify-deployment-pr <PR#>.
中文简介正在准备中。当前显示原文说明。
实测评分 未实测
查看安装方法安装前可以查看交给 AI 代理的指令内容。
READ-ONLY audit of an already-executed deployment PR. Never broadcast a transaction,
never edit files, never re-run the live deployment. All on-chain data comes from the
block explorer (via sol2uml/Etherscan) or a read-only RPC.
contracts/: cd contracts.contracts/.env with PROVIDER_URL and ETHERSCAN_API_KEY:
grep -oE '^(PROVIDER_URL|ETHERSCAN_API_KEY)=' .env. Source it for shell use:
set -a; . ./.env; set +a (so $ETHERSCAN_API_KEY is available to sol2uml).
ETHERSCAN_API_KEY → checks 2/3/4 can't run → STOP and report the blocker.gh authenticated (gh auth status). If absent, ask the user to paste the
PR body + deployed-address list rather than failing.sol2uml on PATH (command -v sol2uml). If absent: npm i -g sol2uml.gh pr view "$PR" --json headRefName,state,mergeCommitgit rev-parse --abbrev-ref HEAD and git status --porcelainheadRefName, OR — if the PR is already
merged — that the checkout contains its merge commit
(git merge-base --is-ancestor <mergeCommit> HEAD).gh pr checkout <PR>
(or git checkout <headRefName> / git stash) and re-run. Do not verify against the
wrong code.PR=$1. gh pr view "$PR" --json title,body,files,baseRefName,headRefName,state,url.git diff --name-only origin/master...HEAD -- 'contracts/scripts/deploy/**/*.s.sol'
(or read the PR files). Ignore 000_Example.s.sol. The folder under
scripts/deploy/<network>/ gives the network (mainnet, base, hyperevm,
…) — use it for sol2uml --network <net> and map it to the chain deployment file
(build/deployments-1.json, -8453.json, -999.json, etc.)._execute(), enumerate every contract creation (new <Contract>(args))
and every _recordDeployment("<KEY>", address(...), type(<Contract>).name) call.
Resolve <KEY> → address from the matching entry in the chain deployment JSON's
contracts array (.name, .implementation). The JSON field is named
implementation even for proxies and non-implementation contracts. If a newly
recorded key is absent from the committed JSON, mark checks 1/3/4 ❌.AbstractDeployScript("<ID>").
Resolve its proposalId, tsDeployment, and tsGovernance from the matching entry
in the chain deployment JSON's executions array. Build expected governance actions
from _buildGovernanceProposal() calls to
govProposal.action(target, "signature(types)", abi.encode(args)).
If proposalId is 0/absent while governance is expected, mark check 5 ⚠️
("no proposalId recorded — resolve from on-chain Governor events or ask the deployer").[{key, contractType, address, constructorArgs, proposalId, network, deployScript}].Checks 2/3/4 are per-address and independent — fan them out with parallel Task
sub-agents (one per deployed contract) when there are several; otherwise run inline.
Each check yields: status (✅ pass / ⚠️ needs-human / ❌ fail), one-line evidence, a
details block, and a confidence (High/Med/Low). Absence of evidence is ⚠️/❌, never ✅.
1 — All deployed contracts listed in the PR description
2 — Verified on-chain code (and dependencies) matches the codebase
contracts/:
sol2uml diff <address> .,node_modules --network <net> --apiKey "$ETHERSCAN_API_KEY"
This downloads the explorer-verified source for the address and diffs it (and its
dependencies) against the local checkout.*Proxy addresses run the same diff against the proxy
source; expect the standard proxy to match.3 — Constructor arguments are correct
new <Contract>(args)) corresponding to each
_recordDeployment in _execute() and resolve constants/addresses used by it.[].4 — The initialize / interaction tx matches the deploy script
_execute() performs a post-deploy call — typically a proxy
initialize(...)/_initialize(...) — locate the corresponding on-chain
tx (explorer tx list for the proxy address, or the proxy's deployment receipt) and
confirm the arguments match the Foundry script.5 — Governance proposal matches the deploy script
pnpm ops proposal --id,
it parses the id as a float and overflows on real (77-digit) proposalIds. Use the
GovernorSix (addresses.mainnet.GovernorSix) ABI with the id as a BigNumber:
g.state(id) and g.getActions(id) -> (targets, values, signatures, calldatas)
(calldatas are selector-stripped — the signature is a separate string)._buildGovernanceProposal(): resolve every target through
constants or resolver.resolve("<KEY>") and the chain deployment JSON, keep the
signature passed to govProposal.action, and evaluate the corresponding abi.encode
arguments to compare against each on-chain calldata.state: Executed for a fully-executed deploy; Pending/Active/
Queued is normal when reviewing before execution — flag it but it is not a failure.6 — Smoke tests after fork execution — SKIPPED (per project decision). Mark N/A.
Verdict = VERIFIED only if checks 2,3,4,5 are ✅ (check 1 may be ⚠️ if the sole gap is documentation; check 4 may be ⚠️ if there is genuinely no init/interaction call). Any ❌ in 2–5, or an unresolved ⚠️, → BLOCKERS FOUND. Emit the report:
# Deployment PR Verification — #<PR> (<title>)
Verified against: <branch>@<short-sha>
Foundry script(s): <list> | Network: <net> | Proposal: <proposalId>
Verdict: <VERIFIED | BLOCKERS FOUND>
- [<✅|⚠️|❌>] 1. All deployed contracts listed in PR description — <evidence> (conf)
- [<✅|⚠️|❌>] 2. Verified code (+deps) matches codebase (sol2uml diff) — <evidence> (conf)
- [<✅|⚠️|❌>] 3. Constructor args correct — <evidence> (conf)
- [<✅|⚠️|❌>] 4. Initialize/interaction tx matches deploy script — <evidence> (conf)
- [<✅|⚠️|❌>] 5. Governance proposal matches deploy script — <evidence> (conf)
- [⏭️] 6. Smoke tests — skipped (N/A)
## Details
### 2. sol2uml diff <per-address: address, clean/diff, differing files>
### 3. Constructor args <per-address: Foundry-script args vs on-chain args>
### 4. Initialize tx <tx hash, decoded args vs Foundry-script args>
### 5. Proposal diff <on-chain getActions vs script actions, or "identical">
## Human still owes (manual)
- Off-chain Safe/multisig follow-ups noted in the Foundry script.
- That the PR's stated intent matches the on-chain effect (judgment).
- Anything marked ⚠️ above.
sol2uml diff, run from contracts/ and source .env first so $ETHERSCAN_API_KEY
is set; use --network matching the deploy folder (base→base, hyperevm→hyperevm, etc.).*Proxy against
the proxy contract, not the impl.sol2uml diff (no file differences) is the pass signal for check 2; treat any
reported file difference as ❌ pending human review, not a warning.proposalId is 0/absent, do not fabricate one — mark check 5 ⚠️ and ask the deployer.deployments/<network>/*.json remains a Talos compatibility registry, not the source
of truth for Foundry deployment execution. Use build/deployments-<chainId>.json for
Foundry-recorded names, addresses, and execution metadata.还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Handle git commits with auto-staging, targeted pre-commit formatting, and Conventional Commit messages. Use when the user says commit it, commit this, commit changes, save my changes, or similar git commit requests.
中文简介正在准备中。当前显示原文说明。
Generate Foundry fork tests for contracts that need real on-chain integration coverage. Use when the user asks for fork tests, mainnet or chain fork coverage, or integration tests against live protocol state.
中文简介正在准备中。当前显示原文说明。
Reorganize Foundry test files (*.t.sol) for readability and consistency without changing semantics. Use when the user asks to organize, reorder, clean up, tidy, or reformat a test file's structure.
中文简介正在准备中。当前显示原文说明。
Generate Foundry smoke tests that validate deployment health using DeployManager/Resolver against real on-chain state with pending governance applied. Use when the user asks for smoke tests, deployment verification tests, or post-deploy health checks.
中文简介正在准备中。当前显示原文说明。
Develop, modify, review, and maintain standalone Talos actions in contracts/tasks/actions, including chain guardrails, contract bindings, transaction safety, schedules, action catalogues, and Talos documentation. Use when adding an action, changing an action’s behavior or parameters, updating a Talos schedule, or maintaining action runtime support.
中文简介正在准备中。当前显示原文说明。
Generate Foundry unit tests for a contract using this repository's conventions, structure, and naming. Use when the user asks for unit tests, Foundry tests, concrete tests, or fuzz tests.
中文简介正在准备中。当前显示原文说明。