agentsclimarketplace

Riligar infra stripe

Skill riligar/agents-kit/.agent/skills/riligar-infra-stripe

Interactive Stripe setup wizard. Use when implementing payments. The agent will ask for keys, products, and configure everything automatically.From its SKILL.md

Install
npx -y skills add riligar/agents-kit --skill riligar-infra-stripe

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

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

8.7 KB, ~2.3k tokens by cl100k_base, as published. Nobody here has run it

Stripe Setup Wizard

Esta skill configura a integração completa do Stripe no seu projeto. O agente vai guiar você através de um setup interativo.


Setup Workflow

Quando o usuário solicitar configurar o Stripe, siga este fluxo OBRIGATÓRIO:

Step 1: Coletar Chaves

Pergunte ao usuário:

Para configurar o Stripe, preciso das suas chaves da API. Você pode encontrá-las em: https://dashboard.stripe.com/apikeys

Por favor, me forneça:

  1. Publishable Key (pklive... ou pktest...)
  2. Secret Key (sklive... ou sktest...)

Aguarde as chaves antes de prosseguir.

Step 2: Identificar Produtos

Após receber as chaves, pergunte:

Agora preciso entender seus produtos. Me diga:

  1. Tipo de cobrança: Assinatura (recorrente) ou pagamento único?
  2. Quais planos/produtos você quer oferecer?

Exemplo de resposta:

  • Assinatura mensal
  • Plano Starter: R$ 29/mês (5 projetos, suporte email)
  • Plano Pro: R$ 99/mês (ilimitado, suporte prioritário)
  • Plano Enterprise: R$ 299/mês (tudo + SLA)

Step 3: Criar Produtos no Stripe

Com as informações coletadas, gere o script para criar os produtos:

// scripts/setup-stripe-products.js
import Stripe from 'stripe'

const stripe = new Stripe('SK_KEY_AQUI')

async function setupProducts() {
    const products = [
        // Substituir com os produtos do usuário
        {
            name: 'Plano Starter',
            description: '5 projetos, suporte email',
            price: 2900, // R$ 29,00 em centavos
            interval: 'month',
            features: ['5 projetos', 'Suporte email', '1GB storage'],
        },
        {
            name: 'Plano Pro',
            description: 'Ilimitado, suporte prioritário',
            price: 9900, // R$ 99,00 em centavos
            interval: 'month',
            features: ['Projetos ilimitados', 'Suporte prioritário', '10GB storage'],
        },
    ]

    console.log('Criando produtos no Stripe...\n')

    for (const product of products) {
        const stripeProduct = await stripe.products.create({
            name: product.name,
            description: product.description,
            metadata: { features: JSON.stringify(product.features) },
        })

        const stripePrice = await stripe.prices.create({
            product: stripeProduct.id,
            unit_amount: product.price,
            currency: 'brl',
            recurring: product.interval ? { interval: product.interval } : undefined,
        })

        console.log(`✓ ${product.name}`)
        console.log(`  Product ID: ${stripeProduct.id}`)
        console.log(`  Price ID: ${stripePrice.id}\n`)
    }

    console.log('Produtos criados com sucesso!')
}

setupProducts().catch(console.error)

Instrua o usuário a executar: bun run scripts/setup-stripe-products.js

Step 4: Coletar Price IDs

Após executar o script, peça:

O script gerou os Price IDs. Por favor, me envie os IDs gerados. Exemplo: price_1ABC123...

Step 5: Configurar Ambiente

Com as chaves e Price IDs, configure os arquivos de ambiente:

Backend: .env.development e .env.production

# .env.development (chaves de teste)
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...

# .env.production (chaves de produção)
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...

Frontend: .env.development e .env.production

# .env.development
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_...

# .env.production
VITE_STRIPE_PUBLISHABLE_KEY=pk_live_...

Step 6: Configurar database

Gere a migration para adicionar campos do Stripe:

// database/schema.js - adicionar aos users
stripeCustomerId: text('stripe_customer_id').unique(),
stripeSubscriptionId: text('stripe_subscription_id').unique(),
plan: text('plan').default('free'),
subscriptionStatus: text('subscription_status'),
currentPeriodEnd: integer('current_period_end', { mode: 'timestamp' }),

Step 7: Configurar Webhook

Instrua o usuário:

Configure o webhook no Stripe Dashboard:

  1. Acesse https://dashboard.stripe.com/webhooks
  2. Clique em "Add endpoint"
  3. URL: https://seu-dominio.com/api/webhook
  4. Selecione os eventos:
    • checkout.session.completed
    • customer.subscription.updated
    • customer.subscription.deleted
    • invoice.paid
    • invoice.payment_failed
  5. Copie o "Signing secret" (whsec_...)
  6. Adicione ao .env.development e .env.production

Step 8: Gerar Código

Gere todos os arquivos necessários usando os templates de assets/:

ArquivoBaseado em
plugins/stripe.jsstripe-server.js (seção 1)
routes/billing.jsstripe-server.js (seção 2)
routes/webhook.jsstripe-server.js (seção 3)
services/billing.jsstripe-server.js (seção 4)
config/stripe-prices.jsPrice IDs coletados (Step 9)
config/plans.jsPLAN_MAP + PLAN_LIMITS (Step 9)
pages/Pricing.jsxstripe-client.js (seção 3)
components/BillingSettings.jsxstripe-client.js (seção 4)
hooks/useSubscription.jsstripe-client.js (seção 2)

Step 9: Criar Configs de Planos e Preços

A) Arquivo de preços (config/stripe-prices.js):

// config/stripe-prices.js
export const STRIPE_PRICES = {
    starter: {
        priceId: 'price_COLETADO_STARTER',
        name: 'Starter',
        price: 29,
        features: ['5 projetos', 'Suporte email', '1GB storage'],
    },
    pro: {
        priceId: 'price_COLETADO_PRO',
        name: 'Pro',
        price: 99,
        features: ['Projetos ilimitados', 'Suporte prioritário', '10GB storage'],
    },
    enterprise: {
        priceId: 'price_COLETADO_ENTERPRISE',
        name: 'Enterprise',
        price: 299,
        features: ['Tudo do Pro', 'Storage ilimitado', 'SLA garantido'],
    },
}

export const getPrice = plan => STRIPE_PRICES[plan]
export const getPriceId = plan => STRIPE_PRICES[plan]?.priceId

B) Arquivo de mapeamento e limites (config/plans.js):

// config/plans.js

// Mapeia Price IDs do Stripe para nomes de planos internos
export const PLAN_MAP = {
    price_COLETADO_STARTER: 'starter',
    price_COLETADO_PRO: 'pro',
    price_COLETADO_ENTERPRISE: 'enterprise',
}

// Define limites de features por plano
export const PLAN_LIMITS = {
    free: {
        maxFlows: 1,
        maxContacts: 100,
        // Adicione outros limites conforme necessário
    },
    starter: {
        maxFlows: 3,
        maxContacts: 500,
    },
    pro: {
        maxFlows: 15,
        maxContacts: 5000,
    },
    enterprise: {
        maxFlows: 55,
        maxContacts: Infinity,
    },
}

Checklist Final

Ao completar o setup, confirme:

  • Dependências instaladas (bun add stripe @stripe/stripe-js @stripe/react-stripe-js)
  • Chaves no .env.development e .env.production (backend e frontend)
  • Produtos criados no Stripe
  • Price IDs configurados em config/stripe-prices.js
  • PLAN_MAP e PLAN_LIMITS configurados em config/plans.js
  • Schema do database atualizado (campos Stripe na tabela users)
  • Webhook endpoint configurado no Stripe Dashboard (/api/webhook)
  • Webhook secret nos arquivos de ambiente
  • Rotas de billing funcionando (/api/billing/*)
  • Página de pricing criada (com token de auth no ky)
  • useSubscription hook com header Authorization
  • Testado com cartão 4242 4242 4242 4242

Testing Local

# Instalar Stripe CLI
brew install stripe/stripe-cli/stripe

# Login
stripe login

# Forward webhooks (ajuste a porta conforme seu backend)
stripe listen --forward-to localhost:3333/api/webhook

# Testar checkout
stripe trigger checkout.session.completed

Specialized Guides

GuideContent
stripe-elysia.mdBackend routes completas
stripe-react.mdComponentes React/Mantine
stripe-webhooks.mdHandlers de eventos
stripe-database.mdSchema Drizzle

Related Skills

  • @[.agent/skills/riligar-dev-manager]
  • @[.agent/skills/riligar-dev-dashboard]
  • @[.agent/skills/riligar-dev-auth-elysia]

What ships with it: 6 files

78.5 KB alongside SKILL.md, 2 of them executable

assets/

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.