# Counter Rollout Handoff

This task-local workflow deploys `Counter`, calls `incBy(initialIncrement)`, and
checks `x()`. Its `developmentNetwork` is `gtDev`; release verification targets
the networks in `releaseTargetNetworks`, currently `gtProd`.

CREATE2 salts are provided by SmartFlow's built-in CREATE2 resolver. Generated
tasks should record resolver inputs in `create2-requests.json`, resolver outputs
in `create2-results.json`, and network-scoped salt and expected-address values in
`parameters.yaml`. A release network must derive or mine its own values against
that network's factory and initCodeHash; it must not copy an invalid development
salt merely because the deployment instance has the same `saveAs`.
The example request uses `leadingZeroBytes: 4`, which means generated deployment
addresses should start with `0x00000000`.

Execute the complete manifest once on `gtDev`, then write a pending
`contractInfo.pending.<executionId>.json` candidate. Run same-execution business
verification, then promote that candidate with `workflow:commit-contract-info`.
CheckCode reads the resulting formal registry and conditionally syncs UUPS
metadata; it never promotes a candidate.
Business `check` steps remain separate: they prove initialization and configured
state, while CheckCode proves bytecode and proxy implementation consistency.

Release verification derives `gtProd` parameters using the policies in
`parameters.schema.json`, runs one full-network fork simulation, and records the
qualified fingerprint in `release.json`. Admin final simulation locks a
per-transaction authority plan. Execute advances ordered operator segments and,
when needed, appends the following external segment to one cumulative package;
reconciliation resumes each later operator segment before business verify and
registry commit complete ahead of the independent CheckCode audit.
