Ship zkp2p Contracts

VerifiedCaution

Coordinate zkp2p-contracts deployment across source, staging, production, and package release boundaries, requiring explicit approval at each stage.

Sby Skills Guide Bot
DevOpsAdvanced
8/1/2026
Claude CodeCodex
#smart-contracts#deployment#release-management#foundry#staging

Recommended for

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
When to use it

Use when shipping or deploying zkp2p-contracts changes and you need to coordinate separately approved deployment boundaries.

When not to use it

Do not use for other repositories, generic CI/CD deployments, or code changes that do not involve contract deployment.

Security analysis

Caution
Quality score88/100

The 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.

Findings
  • •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.
How this analysis is made

Examples

Base staging deployment plan
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.
Source lane for OrchestratorV3
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.
RC publication coordination
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:

  1. source and network-scoped deployment lane;
  2. staging activation;
  3. production activation;
  4. package export;
  5. RC publication;
  6. 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.md for 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 OrchestratorV3 as a dedicated implementation. Its current lifecycle design intentionally differs from V2 and its mounted lane 30 supports only localhost, 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 expected OrchestratorV3, 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 files

This 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.md

From 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 installation
openskills 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 sync

Manual 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.

Related skills