agentsclimarketplace

Persona local dev loop

Skill jeremylongshore/claude-code-plugins-plus-skills/plugins/saas-packs/persona-pack/skills/persona-local-dev-loop

'Local development with Persona sandbox, ngrok for webhooks, mock verifications.From its SKILL.md

Install
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill persona-local-dev-loop

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

2.9 KB, 618 tokens by cl100k_base, as published. Nobody here has run it

persona local dev loop | sed 's/\b(.)/\u\1/g'

Overview

Sandbox testing with test inquiry templates, ngrok tunnel for webhook testing, mock API responses for CI.

Prerequisites

  • Completed persona-install-auth setup
  • Valid Persona API key (sandbox or production)

Instructions

Step 1: Set Up Sandbox Environment

set -euo pipefail
# Use sandbox API key for all development
echo 'PERSONA_API_KEY=persona_sandbox_xxxxxxxx' > .env
echo 'PERSONA_API_VERSION=2023-01-05' >> .env

Step 2: Expose Local Webhooks with ngrok

# Terminal 1: Start your webhook server
npm run dev  # localhost:3000

# Terminal 2: Tunnel with ngrok
ngrok http 3000
# Copy the HTTPS URL and configure in Persona Dashboard > Webhooks

Step 3: Create Test Inquiries

import os, requests

HEADERS = {
    "Authorization": f"Bearer {os.environ['PERSONA_API_KEY']}",
    "Persona-Version": "2023-01-05",
}

# Create inquiry with sandbox template
resp = requests.post("https://withpersona.com/api/v1/inquiries", headers=HEADERS, json={
    "data": {
        "attributes": {
            "inquiry-template-id": "itmpl_YOUR_SANDBOX_TEMPLATE",
            "reference-id": f"test-{int(time.time())}",
        }
    }
})
print(f"Test inquiry: {resp.json()['data']['id']}")

Step 4: Mock API Responses for CI

import { vi } from 'vitest';

const mockPersonaApi = {
  createInquiry: vi.fn().mockResolvedValue({
    data: { id: 'inq_test_123', attributes: { status: 'created', 'session-token': 'tok_xxx' } },
  }),
  getInquiry: vi.fn().mockResolvedValue({
    data: { id: 'inq_test_123', attributes: { status: 'completed' } },
  }),
};

Output

  • Sandbox environment configured for development
  • ngrok tunnel for webhook testing
  • Test inquiry creation workflow
  • Mock API responses for unit tests

Error Handling

ErrorCauseSolution
Webhook not receivedngrok URL not configuredUpdate webhook URL in Dashboard
Sandbox key rejectedUsing production keyVerify key starts with persona_sandbox_
Template not foundWrong environmentTemplates are per-environment

Resources

Next Steps

Apply SDK patterns: persona-sdk-patterns

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.