Correction d'issues snarkVM avec TDD

VérifiéPrudence

Corrigez les issues GitHub ou les commentaires de review dans snarkVM en utilisant le développement piloté par les tests. Inclut investigation, planification et implémentation avec validation finale.

Spar Skills Guide Bot
DeveloppementAvancé
08/03/2026
Claude Code
#rust#tdd#github-issues#pr-review#snarkvm

Recommandé pour

Synthèse automatique

Guide un workflow de développement piloté par les tests pour corriger un ticket GitHub ou les commentaires de revue d'une PR dans snarkVM, de la récupération du contexte jusqu'à la validation finale.

Points forts

  • Impose une porte d'approbation explicite (AskUserQuestion) sur un plan tabulaire avant toute modification de code.
  • Boucle TDD stricte : écrire le test qui échoue, vérifier l'échec, corriger au minimum, vérifier le succès.
  • Cartographie les symptômes vers les bons crates (console, circuit, synthesizer, algorithms) et rappelle la synchronisation console/circuit.
  • Traite explicitement les désaccords avec un relecteur au lieu d'ignorer silencieusement les retours.

Limites

  • Dépend fortement du dépôt snarkVM et du skill compagnon snarkvm-github (scripts de fetch, workspace .claude/workspace) : inutilisable tel quel ailleurs.
  • Suppose une toolchain Rust locale et des cycles de compilation/test longs sur un projet cryptographique volumineux.
  • Ne couvre pas l'audit de sécurité (renvoie vers snarkvm-review) et ne commit jamais sans demande explicite.
Quand l'utiliser

À utiliser lorsqu'on veut corriger un bug ou une demande de fonctionnalité issue d'un ticket snarkVM, ou répondre point par point à des commentaires de revue de PR.

Quand l'éviter

À éviter pour une revue de sécurité, pour simplement récupérer du contexte GitHub, ou pour du code hors snarkVM.

Analyse de sécurité

Prudence
Score qualité80/100

No destructive, exfiltration, obfuscation, or safety-disabling behavior. The skill uses Bash and network-backed helper scripts for a legitimate TDD workflow on snarkVM, but it depends on external scripts and cargo test execution that run untrusted-ish code, so it warrants caution rather than safe.

Points d'attention
  • •Delegates execution to external shell scripts in a sibling skill directory ($SKILL_DIR/scripts/fetch-issue.sh, fetch-pr.sh, refresh-threads.sh) whose contents are not included, creating an opaque/supply-chain dependency that executes with Bash.
  • •Runs cargo build/test commands which execute reproducer/project code in the workspace.
  • •Setup uses ${BASH_SOURCE[0]}, which is unreliable when snippets are run inline by an agent and could resolve SKILL_DIR incorrectly.
  • •Writes files under .claude/workspace (state/handoff files).
Comment cette analyse est faite

Exemples

Fix an issue
/snarkvm-fix issue 2534 — the parser rejects valid transition inputs, please reproduce, plan, and fix with a failing test first.
Address PR review comments
/snarkvm-fix pr 3012 — resolve the unresolved review threads, show me a plan before changing anything.
Reviewer disagreement
fix PR feedback on #3105, but one reviewer asks to change the serialization format — push back with evidence before implementing that part.

name: snarkvm-fix description: | Fix GitHub issues or PR review feedback in snarkVM using TDD workflow. WHEN: User says "fix issue", "fix #123", "fix pr", "fix PR feedback", "address review comments", "resolve review threads", or wants to fix a bug/feature request from GitHub issues or address reviewer requests. WHEN NOT: Doing security review (use snarkvm-review), fetching context only (use snarkvm-github), or working on non-snarkVM code. allowed-tools: Bash, Read, Write, Grep, Glob, Task, AskUserQuestion

Fix Issue or PR Feedback

Fix snarkVM GitHub issues or PR review comments using test-driven development.

Usage

/snarkvm-fix issue <number>
/snarkvm-fix pr <number>

Setup

MODE="${ARGUMENTS%% *}"   # "issue" or "pr"
NUM="${ARGUMENTS#* }"     # the number
WS=".claude/workspace"
SKILL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../snarkvm-github" && pwd)"

1. Load Context

For issues:

if [[ ! -f "$WS/state-issue-$NUM.md" ]]; then
  "$SKILL_DIR/scripts/fetch-issue.sh" "$NUM"
fi

Review: $WS/state-issue-$NUM.md and recent comments.

For PRs:

if [[ ! -f "$WS/state-pr-$NUM.md" ]]; then
  "$SKILL_DIR/scripts/fetch-pr.sh" "$NUM"
fi
"$SKILL_DIR/scripts/refresh-threads.sh" "$NUM"

Review: $WS/state-pr-$NUM.md, $WS/unresolved-pr-$NUM.json, and $WS/handoff-pr-$NUM.md if present.

2. Investigate

For issues — search for related code. Answer:

  1. What is the expected vs actual behavior?
  2. Where does the code path go wrong?
  3. What are the edge cases?

For PRs — analyze each unresolved comment:

| # | Path:Line | Reviewer | Request | Type | Risk | |---|-----------|----------|---------|------|------|

Where to look:

  • Console type bugs -> console/ (types, program, network)
  • Circuit bugs -> circuit/ (must stay in sync with console)
  • Synthesizer bugs -> synthesizer/ (program execution, VM, process)
  • Crypto bugs -> algorithms/ (Poseidon, Marlin, Polycommit)
  • Serialization bugs -> check ToBytes/FromBytes/Serialize/Deserialize impls

Think hard. Do not proceed until you understand the root cause or each request.

3. Plan (APPROVAL REQUIRED)

Present a concrete plan:

| # | Location | Change | Test | Risk | |---|----------|--------|------|------|

Use AskUserQuestion to get explicit approval before proceeding.

4. Implement (TDD)

For each change:

  1. Write failing test that reproduces the bug or covers the new behavior
  2. Verify it fails: cargo test -p <crate> -- test_name --nocapture
  3. Implement minimal fix — match existing code style
  4. Verify it passes: cargo test -p <crate> -- test_name --nocapture

For pure style/nit fixes (no behavioral change), batch them without tests.

5. Final Validation

Validate affected crates per AGENTS.md.

6. Report

**Target**: #NUM — [title]
**Root cause**: [brief explanation]
**Fix**: [what changed and why]
**Test**: [what the test verifies]
**Files changed**:
- path/to/file.rs — [change description]

Do not commit unless explicitly asked.

Handling Disagreements (PR mode)

If you disagree with a review comment:

  1. Explain your reasoning with evidence
  2. Propose an alternative if applicable
  3. Use AskUserQuestion to discuss before proceeding

Never silently ignore review feedback.

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/fix-snarkvm-issues-with-tdd-workflow-mmh8qqmp/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/fix-snarkvm-issues-with-tdd-workflow-mmh8qqmp' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/fix-snarkvm-issues-with-tdd-workflow-mmh8qqmp/download' --output '.skill-downloads/fix-snarkvm-issues-with-tdd-workflow-mmh8qqmp/SKILL.md.part' && mv '.skill-downloads/fix-snarkvm-issues-with-tdd-workflow-mmh8qqmp/SKILL.md.part' '.skill-downloads/fix-snarkvm-issues-with-tdd-workflow-mmh8qqmp/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.

Outils déclarés par l’auteur (à vérifier dans votre agent) : Bash, Read, Write, Grep, Glob, Task, AskUserQuestion

Extrait original : Setup
MODE="${ARGUMENTS%% *}"   # "issue" or "pr"
NUM="${ARGUMENTS#* }"     # the number
WS=".claude/workspace"
SKILL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../snarkvm-github" && pwd)"

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/fix-snarkvm-issues-with-tdd-workflow-mmh8qqmp/SKILL.md' && test -s '.skill-downloads/fix-snarkvm-issues-with-tdd-workflow-mmh8qqmp/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/snarkvm-fix' && cp -R '.skill-downloads/fix-snarkvm-issues-with-tdd-workflow-mmh8qqmp' '.claude/skills/snarkvm-fix'

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/fix-snarkvm-issues-with-tdd-workflow-mmh8qqmp'

openskills read 'fix-snarkvm-issues-with-tdd-workflow-mmh8qqmp'

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/fix-snarkvm-issues-with-tdd-workflow-mmh8qqmp/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