Skip to content
Development
Skill

/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

From plugin
pagokit
708 skills1 agent8 commands5 hooks

Claude Code

$ npx -y skills add Hainrixz/agente-pagokit --skill project-analyzer --agent claude-code

SKILL.md

project-analyzer.SKILL.md
name: project-analyzer
description: 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-specialist to consume.
when_to_use: |
  - Beginning of /pagokit:start, before asking the user any questions
  - When integration-specialist needs to know stack + ORM + deploy target before writing files
  - When /pagokit:doctor audits an existing integration
allowed-tools: Read, Glob, Grep, Bash(ls *), Bash(cat *)

<!-- Copyright (c) 2026 Enrique Rocha (@soyenriquerocha) · tododeia.com · id er-fee52fa9 -->

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:

  • `package.json` (Node.js / Bun ecosystem)
  • `pyproject.toml`, `requirements.txt`, `Pipfile` (Python)
  • `composer.json` (PHP)
  • `Gemfile` (Ruby)
  • `go.mod` (Go)
  • `*.csproj`, `*.fsproj` (.NET)

2. **Framework signal** — look at dependencies:

  • `next` → `nextjs-app-router` if `app/` directory exists, else `nextjs-pages-router`
  • `express` → `express`
  • `@nestjs/core` → `nestjs`
  • `fastapi` → `fastapi`
  • `django` → `django`
  • `flask` → `flask`
  • `laravel/framework` → `laravel`
  • Rails: presence of `Gemfile` + `config/application.rb`
  • Default to `unknown` if no clear signal.

3. **ORM** — look at deps + presence of schema files:

  • `@prisma/client` + `prisma/schema.prisma` → `prisma`
  • `drizzle-orm` + `drizzle.config.*` → `drizzle`
  • `sqlalchemy` + `alembic.ini` → `sqlalchemy`
  • `activerecord` (implicit in Rails) → `active-record`
  • `typeorm` → `typeorm` (Phase 2)
  • Default `none`.

4. **Deploy target** — look at config files (read existence, not contents):

  • `vercel.json` or `.vercel/` → `vercel`
  • `railway.toml`, `railway.json` → `railway`
  • `render.yaml` → `render`
  • `fly.toml` → `fly`
  • `Procfile` (and no other PaaS file) → `heroku`
  • `amplify.yml` → `aws-amplify`
  • `wrangler.toml`, `wrangler.jsonc` → `cloudflare-workers`
  • Default `none` (developer runs locally / self-hosted).

5. **Route files** — Glob for:

  • `app/**/route.{ts,js}` (Next.js App Router)
  • `pages/api/**/*.{ts,js}` (Next.js Pages Router)
  • `routes/*.{js,ts,php,rb}`
  • `urls.py`, `main.py`, `app.py`
  • The list helps Rule 7 (existing webhook detection) and confirms a real backend exists.

6. **DB schema** — Glob for:

  • `prisma/schema.prisma`
  • `drizzle/schema.{ts,js}` or `**/schema/*.ts`
  • `alembic/versions/*.py`
  • `db/schema.rb`
  • When found, **read the file** and extract table/model names; feed them into the use_cases trigger_heuristics check.

7. **README + CLAUDE.md** — read both to extract a one-sentence product description. Use this for:

  • Product type guess (saas / ecommerce / digital_goods / donations / marketplace).
  • 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 de

Read more
@hainrixz
Ships withpagokit

Claude Code plugin that picks and implements the right payment method for your app — from your terminal. 42 providers, 136 payment rails, and deterministic validators that block insecure payment code as it is written.

708 skills1 agent
Get the whole plugin

Stars on GitHub

Momentum

stars in total
70
Star history of Hainrixz/agente-pagokit on GitHub, a chart by star-history.com

Other skills on pagokit.

doctor

doctor

Audits an existing PagoKit integration in the current project against the generated per-provider checklist, so it covers every…

@hainrixz@hainrixzInstall Skill
integration-builder

integration-builder

Composes a complete payment integration by resolving capability fragments against the chosen provider's catalog entry, then emits…

@hainrixz@hainrixzInstall Skill
payment-advisor

payment-advisor

Recommends the single best payment provider for the user's project after a short interactive wizard, then hands off to the…

@hainrixz@hainrixzInstall Skill
payment-migrator

payment-migrator

Plans and executes a migration from one payment provider to another without downtime. Establishes what cannot move (stored card…

@hainrixz@hainrixzInstall Skill
subscription-lifecycle

subscription-lifecycle

Covers everything after the subscription is created — trials, proration on upgrade and downgrade, dunning and retry schedules,…

@hainrixz@hainrixzInstall Skill
tax-advisor

tax-advisor

Explains what a merchant owes the tax authority once a payment succeeds, and whether a merchant of record removes that…

@hainrixz@hainrixzInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills13d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react4d252k
@facebook@facebookInstall Skill

Questions about project-analyzer.

Which coding agents can use project-analyzer?
project-analyzer installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.