Synthèse automatique
Guide la construction d'un récepteur de webhooks Ramp vérifié et idempotent, avec validation HMAC-SHA256 sur le corps brut, acquittement rapide, traitement durable et réconciliation.
Points forts
- Couvre tout le cycle de vie de l'abonnement, y compris le flux de challenge `pending_verification` à renvoyer et soumettre avant activation.
- Impose la vérification de `X-Ramp-Signature` sur les octets bruts avec comparaison à temps constant, avant tout parsing.
- Rend explicites les contraintes d'exploitation : réponse sous 10 secondes, jusqu'à 10 tentatives, réutilisation du même ID d'événement, livraison hors ordre.
- Fournit une matrice de tests concrète (doublons, signature invalide, rotation de secret, échec de file) et un job de réconciliation planifié.
Limites
- Suppose un accès approuvé à l'API Ramp (sandbox ou production) et la documentation officielle à jour ; le skill ne fournit pas les schémas d'endpoints.
- Limité aux outils fichiers (Read, Glob, Grep, Write, Edit) : il ne déploie rien et n'appelle aucune API Ramp lui-même.
- Le tableau de gestion d'erreurs est tronqué dans le document, donc certains cas doivent être re-vérifiés dans les docs officielles.
À utiliser lorsqu'il faut implémenter ou durcir un endpoint webhook Ramp pour des événements de transaction, facture, remboursement ou demande de dépense.
À éviter pour une intégration Ramp en lecture par polling REST classique, ou pour des webhooks d'un autre fournisseur que Ramp.
Analyse de sécurité
SûrThe skill is a procedural guide for building a Ramp webhook receiver. Its allowed tools are limited to local file inspection and editing (Read, Glob, Grep, Write, Edit); there is no shell, network, or credential-exfiltration instruction anywhere. Guidance emphasizes raw-body HMAC verification with constant-time comparison, secret-manager storage, explicit owner approval before live operations, and treating unresolved vendor behavior as a stop condition. Writes are scoped to approved local drafts/artifacts with rollback boundaries, so no meaningful execution risk is present.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Add a Ramp webhook receiver to our Node service: verify X-Ramp-Signature against the exact raw request body, dedupe by X-Ramp-Webhook-ID, durably enqueue, and only then return 2xx within 10 seconds.Verify Ramp signature handling in our handler — some deliveries get rejected. Review the code and make sure it hashes the unparsed raw body with HMAC-SHA256 using the subscription secret and compares in constant time.Walk me through completing the pending_verification challenge for our Ramp bill.updated subscription, then write tests for duplicate events, out-of-order delivery, invalid signatures, and secret rotation.name: ramp-webhooks-events description: >- Build a verified, idempotent Ramp webhook receiver with raw-body HMAC validation, fast acknowledgement, durable processing, and reconciliation. Use when handling transaction, bill, reimbursement, spend-request, or other Ramp events. Trigger with "Ramp webhooks" or "verify Ramp signature". allowed-tools: Read,Glob,Grep,Write,Edit version: 2.0.0 argument-hint: "[integration-or-environment]" model: inherit effort: high author: Jeremy Longshore jeremy@intentsolutions.io license: MIT compatibility: Requires current Ramp Developer API documentation and approved access for any live financial, card, identity, accounting, application, or configuration change tags: [saas, ramp, webhooks, events, idempotency]
Ramp Webhook Verification and Processing
Overview
Verify authenticity before parsing, acknowledge only after durable receipt, and treat each event as a notification to reconcile current resource state. Design for retries, duplicates, and out-of-order delivery.
Prerequisites
- Identify the Ramp application, environment, business entities, affected data and workflows, accountable owner, and rollback boundary.
- Read
references/official-docs.mdand re-check endpoint schemas, scopes, limits, and support status before a live operation. - Use synthetic fixtures or Ramp sandbox until production access and business effects are explicitly approved.
- Prepare approved secret storage and a sanitized evidence location.
Current Contract
- New subscriptions begin
pending_verification; Ramp sends a challenge that must be returned and submitted to activate the subscription. - Business deliveries include
X-Ramp-Webhook-IDandX-Ramp-Signature; the latter is HMAC-SHA256 of the exact raw request body using the subscription secret. - Receivers must respond within 10 seconds. Ramp retries 429, 5xx, timeouts, and connection errors up to 10 total attempts with exponential backoff and jitter.
- The same event ID is reused across retries, and events may arrive out of order.
Instructions
-
Select only documented event types and underlying read scopes; register an HTTPS endpoint and store the returned webhook secret in an approved secret manager.
-
Complete the challenge flow and record subscription ID, state, business, events, scopes, endpoint, secret version, and owner without logging the secret.
-
Capture exact raw bytes, verify
X-Ramp-Signaturewith constant-time comparison, validate expected event/business, then deduplicate by stable event ID. -
Durably enqueue the verified event before returning 2xx within 10 seconds; process asynchronously and fetch current resource state when business action needs full or ordered data.
-
Test duplicates, invalid signature, unknown event, out-of-order events, 429/5xx retry, secret rotation, queue failure, and scheduled API reconciliation.
Tool Discipline
- Use Glob to locate candidate code, manifests, fixtures, and evidence without widening scope.
- Use Grep to find relevant endpoints, fields, permissions, identifiers, errors, and stale assumptions.
- Use Read to inspect the smallest required local files and authoritative evidence.
- Use Write only for a new approved local draft, test, configuration, or evidence artifact.
- Use Edit only for a bounded approved change with a known rollback.
- Local file tools do not authorize a Ramp operation or replace owner approval.
Approval Boundaries
Application/security owners approve endpoint and secret handling; data/finance owners approve subscribed objects and downstream actions. Production mock events require care because live receivers can process them as real activity.
Output
A subscription inventory, challenge receipt, raw-body verification design, event ledger, durable queue, retry and dedupe tests, reconciliation job, rotation plan, and monitoring.
Error Handling
| Condition | Response | |---|---| | Signature differs after parsing | Verify the original bytes before middleware mutation or JSON reserialization. | | Processing exceeds 10 seconds | Persist the verified event and acknowledge; move business work to an asynchronous consumer. | | An older event arrives after a newer one | Fetch current object state and apply a monotonic business transition rather than trusting arrival order. |
Examples
Example 1
Receive transactions.ready_to_sync, verify and enqueue it, fetch current transaction state, and create one idempotent ERP work item.
Example 2
Rotate a subscription secret while proving invalid signatures fail and duplicate event IDs never duplicate effects.
Validation
- Pending verification reaches active state through the documented challenge.
- Invalid signatures and unexpected business/event types fail before processing.
- Durable receipt, 2xx timing, duplicate, retry, and out-of-order behavior are proven.
- Periodic reconciliation detects events missed during extended downtime.
Resources
- Official documentation and contract notes
- Re-check the dated contract and current OpenAPI schema before any live request.
- Treat unresolved vendor behavior, authority, or financial state as a stop condition.
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 annexesCe 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.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/verified-ramp-webhook-receiver-mtz9jqq1/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/verified-ramp-webhook-receiver-mtz9jqq1' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/verified-ramp-webhook-receiver-mtz9jqq1/download' --output '.skill-downloads/verified-ramp-webhook-receiver-mtz9jqq1/SKILL.md.part' && mv '.skill-downloads/verified-ramp-webhook-receiver-mtz9jqq1/SKILL.md.part' '.skill-downloads/verified-ramp-webhook-receiver-mtz9jqq1/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.
Environnement déclaré par l’auteur : Requires current Ramp Developer API documentation and approved access for any live financial, card, identity, accounting, application, or configuration change
Outils déclarés par l’auteur (à vérifier dans votre agent) : Read,Glob,Grep,Write,Edit
Extrait original : Prerequisites
- Identify the Ramp application, environment, business entities, affected data and workflows, accountable owner, and rollback boundary.
- Read
references/official-docs.mdand re-check endpoint schemas, scopes, limits, and support status before a live operation. - Use synthetic fixtures or Ramp sandbox until production access and business effects are explicitly approved.
- Prepare approved secret storage and a sanitized evidence location.
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/verified-ramp-webhook-receiver-mtz9jqq1/SKILL.md' && test -s '.skill-downloads/verified-ramp-webhook-receiver-mtz9jqq1/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/ramp-webhooks-events' && cp -R '.skill-downloads/verified-ramp-webhook-receiver-mtz9jqq1' '.claude/skills/ramp-webhooks-events'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’OpenSkillsopenskills install './.skill-downloads/verified-ramp-webhook-receiver-mtz9jqq1'openskills read 'verified-ramp-webhook-receiver-mtz9jqq1'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 syncMode 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/verified-ramp-webhook-receiver-mtz9jqq1/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.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.