About jp-executor
jp-executor is a skill for implementing Juspay payment integrations in an existing codebase from PRD, architecture, and task checklist artifacts. It follows checklist dependencies, verifies API details against fetched documentation, and records progress.
Key features
- 01Checklist-driven integration work
- 02Documentation-grounded API implementation
- 03Conditional webhook and database setup
- 04Credential and secret handling
- 05Split-repository task handoff
- 06Integration status and summary tracking
Use cases
- 01Building a Juspay integration from approved design artifacts
- 02Implementing only the backend or frontend tasks assigned to one repository
- 03Adding required webhook or payment data-model work
- 04Tracking implementation progress for handoff and review
MCP support
It can use docs-mcp to fetch authoritative Juspay documentation and juspay-mcp for credential provisioning or dashboard-related data, with manual-input fallbacks.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ juspay/ merchant-skills --skill jp-executorAfter installing, type/jp-executorin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/integration-stage-tracking.mdjuspay-docs-mcp.mdjuspay-mcp.mdsplit-integration.mdsteps/step-01-init.mdstep-02-credentials.mdstep-03-core.mdstep-04-webhook.mdstep-05-data-model.mdstep-06-native-setup.mdstep-07-portal-config.mdstep-08-test.mdstep-09-summary.mdDetails
From the project READMEJP Executor
You implement a Juspay payment integration directly in the codebase, driven by the upstream planning artifacts in {doc_workspace}: the jp-prd PRD, the jp-architecture design, and its task-checklist.md. You walk the checklist in dependency order, grounding every code/field/method name in re-fetched docs (never memory), and write each task's status back as you go.
Conventions
- Bare paths resolve from skill root;
{skill-root}is this skill's install dir;{project-root}is the project working dir. - Doc-grounding. At implementation time, re-fetch the authoritative Juspay doc pages (recorded in the architecture doc) via
docs-mcpfor exact method/class/field names — never code from memory. - SDK/headless hard gate. No client payment-method code is written until that method's
processpayload page is fetched in-session and its exact request shape is in hand. - Secrets boundary. Credentials (API keys, webhook auth) live only in memory and
.env/secret stores — never in the PRD, architecture doc, logs, or command output. - Debuggability default. Provider/API failures preserve the full provider error body by default for logs/internal handling (subject to secret/PAN redaction), not a collapsed generic message.
- Workspace.
{doc_workspace}is{project-root}/docs/juspay/— readsprd.md,architecture.md, andtask-checklist.mdfrom the upstream skills; writes integration code into the user's codebase, updates taskstatusintask-checklist.mdas it goes, and writes a summary back to{doc_workspace}. In split-repo runs it also reads an incominghandoff-<this_side>.md(if present) and writes the portablehandoff-<other_side>.md. - No config of our own. No settings file, no language/name resolution; reads only the user's repo and the upstream artifacts.
- Production enforced. Always target the production environment; don't ask which environment to use or offer sandbox. Only use a non-production environment if the user explicitly and unpromptedly requests it. Keep key type/stage aligned with the configured host (see
steps/step-02-credentials.md). - Split-repo aware. Build only
side ∈ {this_side, shared}tasks;other_sidetasks are not implemented here — they're carried intohandoff-<other_side>.mdfor the other repo's agent. If an incominghandoff-<this_side>.mdexists, build this side to its contract and verify conformance. Seereferences/split-integration.md. - Stage tracking. This skill owns the
backendandfrontendfunnel phases, keyed to what this run actually builds —startedinsteps/step-01-init.md, terminal insteps/step-09-summary.md, viajuspay_track_integration_stage(fire-and-forget, never blocking). Seereferences/integration-stage-tracking.md.
On Activation
Briefly orient the user: this skill implements a Juspay integration from the jp-prd PRD and jp-architecture design. There is no settings file. Then load ./steps/step-01-init.md, which gates on those inputs.
Execution
Read fully and follow: ./steps/step-01-init.md. The step chain:
step-01-init.md— hard gate (architecture + task-checklist required), parse checklist → queue, codebase re-scan, juspay-mcp mode pickup. (always)step-02-credentials.md— credentials into.env(provision via juspay-mcp or manual dashboard). (adapts to what's needed)step-03-core.md— re-fetch docs, validation layer (if constrained fields), SDK install, core integration + order-status reconciliation. (always)step-04-webhook.md— webhook handler (signature + idempotency). (only if awebhooktask exists)step-05-data-model.md— order/payment schema. (only if adbtask exists)step-06-native-setup.md— mobile native SDK setup. (only on native surfaces)step-07-portal-config.md— dashboard configuration (webhook/return URL) with nav paths + deep links. (only ifmanual-dashboardtasks exist)step-08-test.md— minimal liveness smoke, then hand off tojp-validatefor thorough, stack-aware testing. (only iftesttasks exist)step-09-summary.md— persistent integration summary; finalize checklist statuses. (always)
Thorough testing lives in the dedicated
jp-validateskill (detects the repo's test stack and replicates it, risk-prioritized payment coverage, writestest-report.md). This executor does a liveness smoke and points to it; runjp-validateafter the build.
Steps are conditional. Each non-universal step opens with an APPLICABILITY gate and self-skips when the task-checklist.md (authoritative) and architecture.md contain no work of its kind — no webhook task → no webhook handler; web/API surface → no native setup; nothing to set in the dashboard → no portal step. The executor does only what this integration needs, never manufacturing webhook/DB/native/portal work an integration doesn't require. In a split run, "has an X task" means an X task for this side (side ∈ {this_side, shared}); other_side tasks are already marked skipped in step 1 and never trigger a step here.
This is action-oriented, not a facilitation: implement, but checkpoint before risky/external actions (credential provisioning, DB schema changes, portal configuration, starting the server/tests).
juspay-mcpis auth-guarded; not every developer has dashboard access. The access flow (ask access → log in or manual Q&A) and provenance/reuse rules are inreferences/juspay-mcp.md. Everyjuspay-mcp-derived datum has a manual-input fallback so the flow never blocks.