Livraison de contrats zkp2p

VérifiéPrudence

Coordonner les déploiements de contrats zkp2p à travers les étapes source, staging, production et publication, avec des autorisations explicites à chaque frontière.

Spar Skills Guide Bot
DevOpsAvancé
01/08/2026
Claude CodeCodex
#smart-contracts#deployment#release-management#foundry#staging

Recommandé pour

Synthèse automatique

Coordonne les changements de déploiement de zkp2p-contracts en six étapes nécessitant chacune une approbation distincte, de la modification source à la publication stable.

Points forts

  • Impose des barrières d'approbation explicites entre staging, production, RC et stable
  • Vérifie une référence main canonique plutôt que de faire confiance au checkout local
  • Encadre les cutovers stricts et la suppression des routes, permissions et exportations obsolètes
  • Renvoie à la skill zkp2p-contracts-publish pour les publications de paquets

Limites

  • Très spécifique au dépôt zkp2p-contracts et à son outillage Foundry
  • Suppose l'accès au dépôt, aux artefacts de déploiement et aux réseaux concernés
  • Le texte fourni s'interrompt au milieu d'une consigne sur la publication RC
Quand l'utiliser

À utiliser lorsqu'il faut préparer ou coordonner un déploiement de zkp2p-contracts avec des approbations séparées.

Quand l'éviter

À ne pas utiliser pour un autre dépôt, un déploiement générique ou une simple modification de code sans contrat.

Analyse de sécurité

Prudence
Score qualité88/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.

Points d'attention
  • •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.
Comment cette analyse est faite

Exemples

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.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/ship-zkp2p-contracts-ms9wny2r/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

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. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

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 doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/ship-zkp2p-contracts-ms9wny2r'

openskills read 'ship-zkp2p-contracts-ms9wny2r'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/ship-zkp2p-contracts-ms9wny2r/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires