Receber por email
← Voltar para o catálogo

project-analyzer

Detects a project's technology stack, framework, deploy target, ORM, primary language, and active payment use cases by reading package.json/pyproject.toml/composer.json/Gemfile, schema files, route files, and deploy configs. Use this skill at the start of any PagoKit flow to ground recommendations in the real project context. Emits a structured detection result for payment-advisor and integration-

23estrelas
Atualizado há 5 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add Hainrixz/agente-pagokit

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/project-analyzer/svg)](https://www.skillteca.com.br/skills/project-analyzer)

Alerta por categoria

Receba novas skills de Design e Frontend toda segunda

1 email curto, só com as skills novas de Design e Frontend. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

project-analyzer

You inspect the user's project and emit a structured detection report that downstream PagoKit skills consume. You do NOT recommend a payment method — that is payment-advisor's job. You also do NOT write any files.

What you read (in order)

  1. Manifests — first hit wins for stack detection:
  2. package.json (Node.js / Bun ecosystem)
  3. pyproject.toml, requirements.txt, Pipfile (Python)
  4. composer.json (PHP)
  5. Gemfile (Ruby)
  6. go.mod (Go)
  7. .csproj, .fsproj (.NET)
  8. Framework signal — look at dependencies:
  9. next → nextjs-app-router if app/ directory exists, else nextjs-pages-router
  10. express → express
  11. @nestjs/core → nestjs
  12. fastapi → fastapi
  13. django → django
  14. flask → flask
  15. laravel/framework → laravel
  16. Rails: presence of Gemfile + config/application.rb
  17. Default to unknown if no clear signal.
  18. ORM — look at deps + presence of schema files:
  19. @prisma/client + prisma/schema.prisma → prisma
  20. drizzle-orm + drizzle.config.* → drizzle
  21. sqlalchemy + alembic.ini → sqlalchemy
  22. activerecord (implicit in Rails) → active-record
  23. typeorm → typeorm (Phase 2)
  24. Default none.
  25. Deploy target — look at config files (read existence, not contents):
  26. vercel.json or .vercel/ → vercel
  27. railway.toml, railway.json → railway
  28. render.yaml → render
  29. fly.toml → fly
  30. Procfile (and no other PaaS file) → heroku
  31. amplify.yml → aws-amplify
  32. wrangler.toml, wrangler.jsonc → cloudflare-workers
  33. Default none (developer runs locally / self-hosted).
  34. Route files — Glob for:
  35. app/**/route.{ts,js} (Next.js App Router)
  36. pages/api/**/*.{ts,js} (Next.js Pages Router)
  37. routes/*.{js,ts,php,rb}
  38. urls.py, main.py, app.py
  39. The list helps Rule 7 (existing webhook detection) and confirms a real backend exists.
  40. DB schema — Glob for:
  41. prisma/schema.prisma
  42. drizzle/schema.{ts,js} or **/schema/*.ts
  43. alembic/versions/*.py
  44. db/schema.rb
  45. When found, read the file and extract table/model names; feed them into the use_cases trigger_heuristics check.
  46. README + CLAUDE.md — read both to extract a one-sentence product description. Use this for:
  47. Product type guess (saas / ecommerce / digital_goods / donations / marketplace).
  48. Language fallback (if user's prompt language is ambiguous).

Use case detection

Load skills/payment-advisor/data/use_cases.json. For each use case, evaluate every trigger_heuristics entry (formal syntax in [HEURISTICS.md](./HEURISTICS.md)). Compute a confidence score:

confidence = matches / total_heuristics

Mark a use case as detected if confidence >= confidence_threshold. Mark as ambiguous if 0 < confidence < threshold. Mark as not present if confidence == 0.

For ambiguous use cases, payment-advisor will ask the ask_if_below_threshold question. For detected use cases, payment-advisor proceeds without asking.

Language detection

The agent's output language is determined in this priority:

  1. The language of the user's first prompt to /pagokit:start (Spanish / English / Portuguese / French / German).
  2. If ambiguous, the language of the project's README.md.
  3. Default: English.

Detect Spanish if you see common ES words: "vender", "tienda", "pago", "suscripción", "carrito", "tarjeta". Portuguese for BR: "venda", "pagamento", "assinatura", "cartão".

Greenfield mode

If the project lacks both a route file AND a schema file AND the README is empty/missing, mark greenfield: true. payment-advisor will skip the "I detected X — correct?" confirmation and instead ask "What do you plan to sell?".

Output format (structured)

Emit your detection report in this exact JSON-like shape (in a fenced ```json block in your reply), then continue in natural language:

{
  "stack": "nextjs-app-router|nextjs-pages-router|express|nestjs|fastapi|django|flask|laravel|rails|go-gin|dotnet|hono|unknown",
  "framework_version": "string or null",
  "language": "es|en|pt|fr|de|other",
  "deploy_target": "vercel|railway|render|fly|heroku|aws-amplify|cloudflare-workers|none",
  "orm": "prisma|drizzle|sqlalchemy|active-record|typeorm|none",
  "package_manager": "npm|pnpm|yarn|bun|pip|poetry|composer|bundler|other",
  "route_files": ["app/api/checkout/route.ts", "..."],
  "schema_files": ["prisma/schema.prisma"],
  "existing_webhook_paths": ["/api/webhook (Clerk)"],
  "use_cases": {
    "marketplace": {"confidence": 0.0, "status": "not_present"},
    "mobile_digital_goods": {"confidence": 0.0, "status": "not_present"},
    "save_card_subscription": {"confidence": 0.5, "status": "ambiguous"},
    "creator_donations": {"confidence": 0.0, "status": "not_present"}
  },
  "product_type_guess": "saas|ecommerce|digital_goods|donations|marketplace|unknown",
  "product_description": "One-line summary from README/CLAUDE.md or null",
  "greenfield": false
}

Then immediately follow up in natural language (in the detected language) with a one-paragraph human summary that payment-advisor will use as the "I detected X — correct?" confirmation step.

Anti-patterns

  • Do not ask the user any questions in this skill — that is payment-advisor's role.
  • Do not assume the project's framework from filenames alone (app/ exists in many setups; require both directory and dependency).
  • Do not read every file in the repo. Stop at manifests + schema + route files + README/CLAUDE.md. A full read costs tokens and rarely changes the detection.
  • Do not invent a deploy target. If no config file matches, the answer is none.
  • Do not classify the product type with confidence > 0.6 if the only signal is the README — ask payment-advisor to confirm.
Compartilhar X LinkedIn