Automated summary
Coordinates zkp2p-contracts deployment changes across six separately approved boundaries, from source changes through stable publication.
Strengths
- Enforces separate authorization for staging, production, RC, and stable publication
- Pins deployment work to an explicitly fetched canonical main ref
- Requires hard cutovers and cleanup of retired routes, permissions, and exports
- Delegates package releases to the zkp2p-contracts-publish skill
Limitations
- Highly specific to the zkp2p-contracts repository and its Foundry deployment tooling
- Assumes access to the repo, deployment artifacts, and target networks
- The provided text cuts off mid-sentence on RC publication
Use when shipping or deploying zkp2p-contracts changes and you need to coordinate separately approved deployment boundaries.
Do not use for other repositories, generic CI/CD deployments, or code changes that do not involve contract deployment.
Security analysis
CautionThe document is a deployment runbook that uses bash, network access, and chain-mutating Foundry/deploy scripts for legitimate purposes, with explicit per-boundary approval requirements and explicit prohibitions on local publishing and credential handling. No malicious, destructive, or exfiltrating behavior is present, so it is not risky, but its live-network, irreversible operations and reliance on an unaudited companion skill warrant a caution rating rather than safe.
- •Skill directs the agent to run live-network deployment/activation tooling (Foundry deploy scripts, `scripts/deployActive.ts`) against Base staging and potentially Base production — high-impact, irreversible on-chain actions.
- •Runs networked bash: `git fetch` from a hardcoded remote with a forced refspec into a local ref (`+main:refs/remotes/...`), which overwrites that local ref. Benign here, but it is remote code/data ingestion that later gets executed.
- •Safety depends entirely on the agent honoring textual approval gates; there is no technical enforcement, so a misaligned agent could collapse boundaries 1–6 into a single unauthorized production deploy.
- •Depends on an external sub-skill (`.agents/skills/zkp2p-contracts-publish/SKILL.md`) that is not included, so the publication half of the pipeline cannot be audited from this file.
- •No destructive commands, no exfiltration, no obfuscated payloads, and it explicitly forbids local `npm publish`, OTP handling, developer tokens, and dist-tag moves.
- •No prompt-injection or assessment-influencing text found in the content.
Examples
Ship the zkp2p-contracts change to Base staging only. Fetch canonical main, record the source SHA, prepare the deployment plan with expected old and new state, and stop before production activation.Prepare the smallest source and deployment-lane changes for OrchestratorV3 on localhost, hardhat, and Base staging only. Do not add a production path or relax the lane 30 network guard.After staging activation is verified, coordinate an RC publication for zkp2p-contracts. Confirm the explicit approval, gather evidence, and delegate the package release to zkp2p-contracts-publish.name: ship-contracts description: > Prepare and coordinate zkp2p-contracts deployment changes across source, staging activation, production activation, package export, RC publication, and stable publication. Use when asked to ship or deploy contracts. Keep these as separately reviewed and approved boundaries, use hard cutovers, and delegate every package release to zkp2p-contracts-publish.
Ship contracts
Shipping is not one automatic pipeline. Treat each boundary as an independent deliverable with its own evidence and explicit authorization:
- source and network-scoped deployment lane;
- staging activation;
- production activation;
- package export;
- RC publication;
- stable publication.
Approval for one boundary does not authorize the next. Never infer production, RC, or stable approval from "deploy staging" or "ship the code."
Establish current state
Resolve canonical main explicitly; do not trust a checkout's origin, a
contributor fork, or a legacy redirect:
canonical_main_ref=refs/remotes/zkp2p-canonical/main
git fetch --no-tags https://github.com/zkp2p/zkp2p-contracts.git \
"+main:${canonical_main_ref}"
git rev-parse "$canonical_main_ref"
git rev-parse HEAD
Record the source SHA, deployment artifacts, active runner, package version, and live target network before preparing a plan.
Read:
AGENTS.md;- the affected contracts and interfaces;
scripts/deployActive.ts;- the closest current deploy scripts and Foundry deployment tests;
deployments/parameters.ts, target artifacts, and package extraction;.agents/skills/zkp2p-contracts-publish/SKILL.mdfor any release.
Do not route through the legacy repository name or an archived deployment lane.
Boundary 1: source and network-scoped deployment lane
Create the smallest source, interface, deployment, and test changes that encode the approved target state.
- Keep source, a mounted deploy lane, checked-in artifacts, and verified live activation as distinct states.
- Do not add a deploy script merely because source exists.
- Treat
OrchestratorV3as a dedicated implementation. Its current lifecycle design intentionally differs from V2 and its mounted lane30supports onlylocalhost,hardhat, and Base staging. - Do not add Base production to lane
30, relax its network guard, or infer a production path from Base-staging artifacts without a separately reviewed and approved production design. - Remove retired active routes, permissions, exports, and aliases in the same hard cutover.
- Do not add rollback compatibility to a one-way verifier or nullifier migration.
Numbered deploy metadata is immutable identity only when current tooling
requires it. Before retaining an inactive numbered script, prove from
scripts/deployActive.ts, its skip logic, network guards, deployment tests,
and package export that it cannot execute or surface as active state. If the
active runner loads it and the proof is absent, remove or disable the active
lane rather than documenting intent.
Validate with the smallest Foundry and deployment checks required by
AGENTS.md. Source preparation must not mutate a live network.
Boundary 2: staging activation
Require explicit approval naming Base staging and the exact source SHA.
Before activation:
- verify deployer, chain ID, RPC, parameters, expected old state, and expected new state;
- for lane
30, resolve the expectedOrchestratorV3,UnifiedPaymentVerifierV3, lifecycle hook, stake vault, chargeback policy, verifier/nullifier, registries, ownership, and prior-orchestrator state from current source and artifacts; - simulate or run the closest local deployment test;
- show every deploy, registry, permission, ownership, and governance action;
- define post-deploy reads that prove the hard cut.
After activation, verify on-chain state and record addresses, transaction hashes, ownership, permissions, and artifacts. Do not publish an RC automatically.
Boundary 3: production activation
Require a separate explicit approval naming Base production, exact source SHA, and governance/deployer path. Re-run state and simulation checks against production immediately before submission.
The current V3 lifecycle lane skips Base production. Production activation requires a focused network-scoped implementation and review; do not remove the guard or reuse staging artifacts as a shortcut.
Fail closed on chain, address, signer, ownership, permission, or expected-state mismatch. Do not reuse staging approval. Do not publish a package automatically.
Boundary 4: package export
Package extraction is a source artifact boundary, not publication. Confirm:
- exported ABIs match canonical source;
- each network's addresses match that network's deployment artifacts;
- Base-staging V3 lifecycle addresses remain distinct from Base production exports and claims;
- source ABI exports required by current package/release policy may exist without an address on another network, but must never imply activation there;
- consumer-visible changes are documented and tested.
Run package build, tests, release verification, and dry-run packing without publishing.
Boundaries 5 and 6: publication
Delegate both RC and stable requests to
.agents/skills/zkp2p-contracts-publish/SKILL.md.
- Require separate approval for RC publication.
- Require another separate approval for stable publication.
- Derive the release line and candidate from current package and repository release policy.
- Never run local
npm publish, request an OTP, use a developer token, or move a dist-tag as this skill. - If the trusted workflow does not implement the requested stable path, stop and request a focused release-policy/workflow PR. Do not improvise a local stable release.
Handoff
For each boundary, report:
- exact source commit and network/package target;
- actions prepared versus actions executed;
- approval obtained for that boundary;
- focused validation and current CI;
- addresses, transactions, artifacts, package candidate, or release URL;
- the next boundary, explicitly marked unapproved until the user authorizes it.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/ship-zkp2p-contracts-ms9wny2r/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/ship-zkp2p-contracts-ms9wny2r' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/ship-zkp2p-contracts-ms9wny2r/download' --output '.skill-downloads/ship-zkp2p-contracts-ms9wny2r/SKILL.md.part' && mv '.skill-downloads/ship-zkp2p-contracts-ms9wny2r/SKILL.md.part' '.skill-downloads/ship-zkp2p-contracts-ms9wny2r/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/ship-zkp2p-contracts-ms9wny2r/SKILL.md' && test -s '.skill-downloads/ship-zkp2p-contracts-ms9wny2r/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/ship-contracts' && cp -R '.skill-downloads/ship-zkp2p-contracts-ms9wny2r' '.claude/skills/ship-contracts'Codex
test -f '.skill-downloads/ship-zkp2p-contracts-ms9wny2r/SKILL.md' && test -s '.skill-downloads/ship-zkp2p-contracts-ms9wny2r/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/ship-contracts' && cp -R '.skill-downloads/ship-zkp2p-contracts-ms9wny2r' '.agents/skills/ship-contracts'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/ship-zkp2p-contracts-ms9wny2r'openskills read 'ship-zkp2p-contracts-ms9wny2r'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/ship-zkp2p-contracts-ms9wny2r/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
Configure a Chat Channel with SecretRefs
DevOps
Set up chat channels using non-interactive commands, with secrets only as SecretRefs. Covers gather, mutate, repair, and prove steps for reliable delivery.
Investigate ClickHouse CI Failures
DevOps
Investigate a ClickHouse CI failure end-to-end from a PR or S3 report URL. Fetches failed tests, classifies flaky vs real regression, and checks for existing issues/fixes.
Ansible PR Review
DevOps
Reviews an Ansible PR following the project's standardized process, including changelog checks, test coverage validation, and feedback tracking.