Can start without another proposed step.
From the empty source, create the complete standalone Foundry project: initial configuration including foundry.toml with bytecode_hash=none, pinned ordinary-file vendored dependencies without submodules, src/VolatilityGuardHook.sol, src/VolatilityGuardToken.sol and test/ suites. This serial complete-project writer supplies all missing setup; later stages preserve accepted setup.
Implement and locally simulate the requested guard, factory launch and seeded-pool interactions without broadcasting. Verify canonical Sepolia PoolManager 0xe03a1074c86cfedd5c142c4f04f1a1536e203543 and existing verified periphery; no deployed helper or discretionary admin powers. Export implementation-derived ABIs to docs/abi/VolatilityGuardHook.json and docs/abi/VolatilityGuardToken.json.
Produce docs/architecture.md, docs/threat-model.md, docs/integration.md, docs/contract-validation.md and README.md. Document actual APIs, errors, units, pool key, verified periphery ABIs/addresses and quote/swap/liquidity recipes; docs/integration.md also supplies reproducible deployment parameters for the generated manifest. README covers offline commands and operational responsibilities.
Review consumes these files and the system-generated launch.json; the later frontend consumes the same pinned source/docs and verified deployment handoff. Do not pre-invent ABIs.
Acceptance criteria
Hook isolates every PoolId, supports arbitrary currencies and bounded observation ring/TWAP plus EWMA volatility, adaptive price-deviation limits and rolling volume budgets resistant to split swaps. Implement NORMAL/WARMUP/GUARDED/RECOVERY, stale/low-liquidity handling and deterministic recovery; LP exits and initialization/warmup stay possible. Explain how recovery works when reverts cannot persist breaker transitions.
Authenticate canonical PoolManager callbacks and accounting; never trust sender/hookData identity. Specify/test both directions, exact input/output, units, signed amounts, rounding, bounded execution and caps; prevent unauthorized callbacks/reentrancy and accounting inconsistencies. No extra admin behavior. Every token/hookAdmin/treasury/LP owner is 0x09ec38170e94532eddb57c69dfc4f1fdcd0d4a60.
VolatilityGuardToken is Volatility Guard Lab (VGL), 18 decimals, no constructor args; fixed 10^27 base units minted to deployer with no mint backdoor. Preserve 80% LP, 10% treasury, 10% contributors, 1h contributor lock and 30% per-wallet cap; document allocation enforcement and units for policy/manifest review.
Pool pairs VGL with native ETH (zero address), static fee 3000, tickSpacing 60, initial sqrtPriceX96 792281625142643375935439503360000 (0.00000001 ETH/VGL). Factory seeds up to 8e26 VGL units and ZERO ETH; derive widest aligned token-only range from opening price/spacing and round liquidity down. Simulate initialization, seeding, ETH-first buys, reverse trades after ETH accrual and LP exits through actual contract interactions.
Run offline forge build, forge test and forge fmt --check with pinned/vendored ordinary dependencies. Include meaningful success/failure, fuzz, invariant and stress tests covering accounting, isolation, manipulation, split volume, unauthorized callbacks, reentrancy, stale history, edge values, recovery and LP exits. Record actual test counts, fuzz/invariant settings, gas, contract sizes, failures and limitations; surface undeployable bytecode as blocking.
ABI exports match implemented contracts. Architecture/threat-model/integration docs specify real public actions, telemetry/events, exact ordered pool key, existing verified quote/router/position-manager addresses and ABIs, allowances, slippage, native-value handling, liquidity/exit recipes, permissions, decoded errors, assumptions and operational risks. Document supported position discovery without assuming a position ID in the later handoff.
Provide reproducible factory deployment inputs and evidence suitable for generated launch.json review under Sepolia univ4_hook policy v2; validate hook address permission bits, constructor/code hashes, owners, supply/allocation/lock/cap, token-only range, liquidity rounding and configured gas ceiling. No keys, broadcasts, extra helper deployment, discretionary powers, new funding or mainnet authorization.
The generated launch.json is a later control-plane deliverable, not this worker's output. Supply contract names, getHookPermissions values, pool and decimal sqrtPriceX96 for kind=univ4_hook; notes must fit 4000 characters. Supply/allocation/ownership are policy inputs, not extra manifest fields; document their implementation and policy assumptions separately in docs/integration.md.