CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

pleaseai/portone

포트원(PortOne) 결제 연동 코드 생성 및 검토 플러그인. V1/V2 API를 지원하며, MCP 서버를 통해 최신 문서와 예시 코드를 활용합니다.

Quality

76%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Medium

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

Quality

Content

67%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, highly actionable guide whose standout strengths are the anti-hallucination MCP-first workflow, executable code examples, and meticulous webhook verification detail (raw-body ordering, Buffer decoding, Express 4 async error forwarding). Its main weaknesses are padded generic sections (basic secret hygiene, common error lists, testing advice) and the absence of any billing-key code example despite billing being a core advertised payment type.

Suggestions

Cut the Security Considerations, Error Handling, and Testing sections down to PortOne-specific points only (webhook signature verification, listSharedTestChannels for test channels) and drop generic advice like env-var/.gitignore management and common card-error lists that Claude already knows.

Add an explicit validation step to the numbered Integration Workflow (e.g., "5. 검증: integration-validator 에이전트로 스키마 대조") so the sequence embeds its checkpoint instead of referencing it only in the intro.

Add a short billing-key issuance/subscription-charge code example (or fold the Common Integration Patterns prose flows into it), since 빌링키/정기결제 are prominent trigger terms with no executable example.

DimensionReasoningScore

Conciseness

The core sections (Do Not Trust Internal Knowledge, MCP Tools Usage, Version Selection, webhook raw-body handling) are dense and high-value, but roughly 50 of 290 lines are generic knowledge Claude already has — Security Considerations ("API Secret은 절대 클라이언트에 노출하지 않음", "환경 변수로 관리 (.env 파일)", "커밋에서 제외 (.gitignore)"), common error cases ("카드 한도 초과", "네트워크 오류"), and generic testing advice. This matches 'mostly efficient but includes some unnecessary explanation'; it is not 4 because these are whole padded sections rather than minor instances, and not 2 because the majority of the body teaches genuinely non-obvious, PortOne-specific behavior.

3 / 5

Actionability

Highly concrete: exact MCP tool names with parameter options ("framework: react, html 중 선택", "pg: toss, nice, inicis 등"), copy-paste-ready payment request code, server-SDK verification code, and a complete webhook handler including signature verification. It is not 5 because the billing-key/subscription flow — a headline payment type and a frontmatter trigger ("빌링키", "정기결제") — is described only in prose with no code example; not 3 because the provided code is fully executable, not pseudocode.

4 / 5

Workflow Clarity

A clear 4-step integration sequence (환경 파악 → 예시 코드 조회 → 코드 생성 → 웹훅 연동) is reinforced by explicit verification requirements scattered across the document: "검증이 필요하면 integration-validator 에이전트를 사용한다", mandatory server-side payment verification, and mandatory webhook signature verification. It is not 5 because the numbered workflow itself contains no explicit validation step — the validator checkpoint lives outside the sequence; not 3 because checkpoints are explicitly stated in the document rather than missing or merely implicit.

4 / 5

Progressive Disclosure

A single-file skill (no references/, scripts/, or assets/ exist) with well-organized, clearly headed sections that appropriately defer detail to the MCP tools ("mcp__portone__readPortoneV2FrontendCode ... 공식 예시가 단일 출처다") rather than inlining API reference material — the MCP server is the progressive-disclosure layer here. It is not 5 because at ~290 lines the MCP tools catalog and the full webhook handler could live in reference files to keep SKILL.md a leaner overview; not 3 because no content is a wall of text, buried, or clearly misplaced.

4 / 5

Total

15

/

20

Passed

Description

76%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong trigger-focused description with excellent bilingual keyword coverage and an explicit use-when clause, but weak on the capability side: it never states concretely what the skill does beyond providing generic 'guidance' for integration. Enumerating the concrete capabilities (payment code generation, webhook verification, billing-key flows, V1/V2 version handling) would raise both specificity and completeness.

Suggestions

Replace "Provides comprehensive guidance for V1 and V2 API integration" with concrete actions, e.g. "Generates and validates PortOne payment integration code (frontend/backend SDK setup, webhook signature verification, billing-key issuance) for both V1 and V2 APIs."

State the covered payment types in the what-clause (단건결제/빌링결제/본인인증) so the scope of the guidance is explicit rather than implied by trigger terms.

DimensionReasoningScore

Specificity

The only 'what' statements are "needs guidance on implementing payment functionality with PortOne" and "Provides comprehensive guidance for V1 and V2 API integration" — generic guidance/integration language with no concrete actions (e.g., generating payment code, verifying webhooks, issuing billing keys), matching the anchor that names the domain but offers only generic actions. It is not 3 because no concrete, specific action beyond 'integration' is enumerated; not 1 because the domain (PortOne payment integration) is clearly named.

2 / 5

Completeness

Both parts are explicitly present: an explicit trigger clause ("This skill should be used when the user asks about ... or needs guidance on implementing payment functionality") and a what ("Provides comprehensive guidance for V1 and V2 API integration"). It is not 5 because the 'what' is generic ('comprehensive guidance') rather than concretely describing what the skill does; not 3 because both what and when are explicitly stated, satisfying the anchor above.

4 / 5

Trigger Term Quality

Rich bilingual coverage of natural phrases users would actually say: "포트원 연동", "PortOne integration", "결제 연동", "PG 연동", "billing key", "빌링키", "정기결제", "웹훅", "payment API" — synonyms across Korean and English for the same concepts. This matches the comprehensive-synonyms anchor; no common variation is missing.

5 / 5

Distinctiveness Conflict Risk

PortOne is a specific named service and the trigger terms (빌링키, PG 연동, PortOne integration) carve out a clear niche with minimal conflict risk against other skills. Terms like "payment API" and "웹훅" are broad on their own, but they are anchored in an explicitly PortOne-specific context.

5 / 5

Total

16

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Reviewed

On this page