api-design

검토 · 59
Registry 색인

Design and review predictable public APIs for TypeScript, JavaScript, React, and React Native libraries. Use when shaping exported functions, classes, hooks, options objects, event and listener APIs, error behavior, naming, cross-platform abstractions, or JS-only packages. Pair w

Verified installs0
스타161
버전1.0.0
품질63/100 · 유망
신뢰59/100 · Do not auto-install
감사74/100 · 검토 필요

공급 자산 프로필

디자인 및 크리에이티브 제작

Design assets, images, video, audio, multimodal media, presentation, and creative production skills.

트랙 보기

시나리오

디자인 및 크리에이티브

I need my agent to produce design assets, UI directions, presentations, or creative media workflows.

Agent 적합도

Claude Code + CLI + Codex

Codex, Claude Code, Cursor, CLI 또는 맞춤형 Agent에 적합합니다.

설치

준비됨

npx skills add margelo/react-native-skills --skill api-design

유지보수

최신

마지막 푸시 후 1일

위험

검토 필요

라이선스가 명확하지 않습니다

GitHub 품질

161

63/100 품질 · 67/100 신뢰

커버리지 태그

디자인디자인 및 크리에이티브디자인 및 크리에이티브agent-skill

검토 메모

라이선스가 명확하지 않습니다 · Permission surface may require sandboxing

Agent 채택 스코어카드

신뢰, 감사, 설치 준비 상태를 한눈에 확인하세요

이 점수는 공개 저장소 메타데이터, OpenAgentSkill 검토 신호, 유지보수 최신성, 설치 준비 상태를 결합합니다. 후보 선정 신호일 뿐, 사람의 검토를 대체하지 않습니다.

품질

유망
63

유용한 후보이지만 채택 전에 대안과 비교하세요.

신뢰

Do not auto-install
59

Trust Score v5 found insufficient evidence for agent installation. Treat this as discovery material, not an executable recommendation.

감사

검토 필요
74

설치 준비 상태, 보안 메타데이터, 유지보수 및 채택 위험에 대한 기계 판독형 검토입니다.

OpenAgentSkill 신뢰 점수 v5

설치 전 사람 검토

Choose a stronger alternative or inspect the source manually before any install attempt.

CodexClaude CodeCursorOpenAgentSkill CLI

스타

GitHub 스타 161

저장소 활동

스타 161, 포크 7

유지보수

마지막 푸시 후 1일

라이선스

알 수 없음

설치

npx skills add margelo/react-native-skills --skill api-design

설치 안전성

표준 패키지 또는 런타임 설치 경로

권한 범위

shell or command execution, filesystem or document access

Agent 결과

아직 Agent 결과 데이터가 없습니다

문서

README/SKILL.md 맥락이 충분합니다

위험 요약

프로덕션 전 검토

  • Repository license is detected as 'Unknown', raising compliance concerns about reuse and redistribution.
  • Financial research output is not financial advice; require human review before any live investment decision.
  • 라이선스가 명확하지 않습니다
  • Quality score needs review

설치 준비 상태

설치 경로 사용 가능

  • 설치 경로를 사용할 수 있습니다
  • 저장소 근거를 사용할 수 있습니다
  • 라이선스가 명확하지 않습니다
  • 아직 Agent 검증 결과 근거가 없습니다

Agent 읽기용 메타데이터

이 스킬의 기계 판독형 의사결정 데이터.

이 블록 또는 포함된 JSON을 사용해 Agent가 이 스킬을 설치할지, 대안을 고를지, 먼저 사람의 검토를 요청할지 판단할 수 있습니다.

JSON 열기

적합한 작업

  • GitHub automation 워크플로
  • Claude Code 팀
  • builders willing to evaluate younger projects
  • Inspect repository metadata

적합한 Agent

CodexClaude CodeCursorOpenAgentSkill CLICLI

설치 결정

명령어
npx skills add margelo/react-native-skills --skill api-design
정책
검토
사람 검토

신뢰와 위험

신뢰
59/100
감사
74/100
위험 수준
검토 필요

결과 루프

엔드포인트
/api/agent/outcome
이벤트 ID
resolve
결과
5

설치 명령어

npx skills add margelo/react-native-skills --skill api-design

사용하지 말아야 할 경우

  • 벤더 지원 SLA가 필요한 팀
  • production agents without a repository review
  • Repository license is detected as 'Unknown', raising compliance concerns about reuse and redistribution.
  • 고위험 권한 힌트: Shell 또는 명령 실행
  • 라이선스가 명확하지 않습니다

Agent 안전 v2

42/100 · 자동 설치 피하기

실험적검토

Sparse or mixed signals. Useful for discovery, but not for autonomous installation.

Test manually in an isolated workspace and compare against safer alternatives.

API로 해결

높음

Shell 또는 명령 실행

Skill 메타데이터가 터미널, CLI, Shell, 하위 프로세스 또는 명령 실행 워크플로를 참조합니다.

중간

Browser automation

Skill may drive a browser or interact with web pages.

중간

네트워크 접근

Skill은 원격 페이지, API, 저장소 또는 외부 서비스에 접근할 수 있습니다.

중간

파일 시스템 접근

Skill은 프로젝트 파일, 문서, 생성 산출물 또는 로컬 작업 공간 상태를 읽거나 쓸 수 있습니다.

  • 고위험 권한 힌트: Shell 또는 명령 실행
  • 라이선스가 명확하지 않습니다

설치 대상

Agent 워크플로에 이 스킬 설치

공개 설치 엔드포인트에서 명령어, 안전 체크리스트, 대상 프롬프트와 정규 링크를 가져옵니다.

skill install

OpenAgentSkill CLI

Resolve policy, run the source installer safely, and report a verified install receipt.

$ npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install margelo-api-design

Agent 해결 계획

설치 전에 Agent가 적합성을 검증하게 하세요.

Resolve API는 최우선 스킬, 대안, 안전 정책, 감사 메모, 설치 대상 및 Agent가 페이지를 스크래핑하지 않고 사용할 수 있는 프롬프트를 반환합니다.

텍스트 계획 열기

Agent가 확인할 항목

  • Resolve API에서 작업 적합도와 대안을 확인합니다.
  • 감사 점수, 신뢰 점수 및 안전 정책 경고를 확인합니다.
  • Codex, Claude Code, Cursor 또는 CLI의 설치 대상 호환성을 확인합니다.

프롬프트 복사

Task: Use api-design in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20api-design%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/margelo-api-design/install
Install command: npx skills add margelo/react-native-skills --skill api-design
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.

Agent 핸드오프

또 다른 디렉터리 페이지 대신 설치 경로를 Agent에게 제공합니다.

공개 설치 엔드포인트에서 명령어, 안전 체크리스트, 대상 프롬프트와 정규 링크를 가져옵니다.

설치 API 열기

Agent 프롬프트

Use api-design for this task. Review https://www.openagentskill.com/api/skills/margelo-api-design/install, then install with: npx skills add margelo/react-native-skills --skill api-design

Registry 메타데이터

자동 스킬 선택을 위한 Agent 읽기용 프로필.

Registry API를 통해 동일한 결정, 신뢰, 감사, 사용 사례, 설치 신호를 제공하므로 Agent가 UI를 스크래핑하지 않고도 순위를 매길 수 있습니다.

Manifest 열기

Agent 적합도

63/100

GitHub automation

플랫폼

Claude Code

감사 보고서

검토 필요 · 74/100

설치 준비 상태, 보안 메타데이터, 유지보수 및 채택 위험에 대한 기계 판독형 검토입니다.

감사 보고서 보기평가 보고서 보기

Agent 결정 패널

Fallback candidate for GitHub automation

먼저 이 스킬로 프로토타입을 만들고 대체 후보를 준비하세요.

63
준비 상태
프로토타입
단계

스택 내 역할

대체 후보

주요 적합도

GitHub automation

신뢰 라벨

먼저 프로토타입

설치 경로

명령어 준비됨

사용 시점

  • GitHub automation 워크플로
  • Claude Code 팀
  • builders willing to evaluate younger projects

근거

  • 최근 저장소 활동
  • 설치 명령 또는 GitHub 저장소를 사용할 수 있습니다
  • 품질 프로필 63/100
  • OpenAgentSkill 상호작용 2건

먼저 검토

  • Repository license is detected as 'Unknown', raising compliance concerns about reuse and redistribution.

구현 경로

  1. 1샌드박스 Agent에 설치하고 GitHub automation 작업을 처음부터 끝까지 한 번 실행하세요.
  2. 2Compare output quality, latency, and failure behavior against at least one alternative.
  3. 3Promote it into production only after reviewing repository permissions, license, and maintenance signals.

신뢰 프로필

Do not auto-install

Trust Score v5 found insufficient evidence for agent installation. Treat this as discovery material, not an executable recommendation.

59
OpenAgentSkill 신뢰 점수

GitHub 채택도

정보

GitHub 스타 161

스타/포크 활동

확인

스타 161, 포크 7; 현재 메타데이터에서 이슈 활동을 확인할 수 없습니다

최근 유지보수

통과

마지막 푸시 후 1일

라이선스 명확성

확인

알 수 없음

긍정 신호

  • AI 검토 승인됨
  • 설치 경로를 사용할 수 있습니다
  • 저장소 근거를 사용할 수 있습니다
  • 최근 유지보수된 저장소
  • 설치 명령에서 뚜렷한 고위험 패턴이 발견되지 않았습니다
  • 결과 루프는 준비되었지만 첫 실제 Agent 실행이 필요합니다

설치 전 검토

  • Repository license is detected as 'Unknown', raising compliance concerns about reuse and redistribution.
  • Financial research output is not financial advice; require human review before any live investment decision.
  • 라이선스가 명확하지 않습니다
  • Quality score needs review
  • Permission surface needs review: shell or command execution, filesystem or document access
  • Stars/forks activity: 161 stars, 7 forks; issue activity unavailable in current metadata
  • License clarity: Unknown
  • Permission surface: shell or command execution, filesystem or document access
  • 아직 실제 Agent 결과 보고서가 없습니다
  • 무인 설치 전에 사람 검토가 필요합니다

권장 작업

Choose a stronger alternative or inspect the source manually before any install attempt.

품질 프로필

유망 Agent 워크플로용 후보

유용한 후보이지만 채택 전에 대안과 비교하세요.

63
GitHub 스타
161
최신성
1일 전
설치 준비됨
라이선스
알 수 없음
설치 전 검토: Repository license is detected as 'Unknown', raising compliance concerns about reuse and redistribution.

워크플로 적합도

이 스킬을 사용할 시나리오

워크플로 적합도

완전한 워크플로에 추가

대안 후보

설치 전 비교

이 작업에 적합할 수 있는 유사 스킬입니다.

모두 비교

개요

--- name: api-design description: Design and review predictable public APIs for TypeScript, JavaScript, React, and React Native libraries. Use when shaping exported functions, classes, hooks, options objects, event and listener APIs, error behavior, naming, cross-platform abstractions, or JS-only packages. Pair with build-nitro-modules when the library is backed by Nitro. ---

# API Design

Use this skill before implementation or when reviewing a public API surface. Target explicit types, stable semantics, and no irrelevant internals in the public contract.

If the library is a Nitro Module, use this skill for the public TypeScript and React API shape first, then use `build-nitro-modules` for Nitro-specific spec, native-state, and binding constraints. If the library is JS-only, React-only, or React Native JS-only, stay in this skill.

## Workflow

1. Sketch the user-facing TypeScript API before implementing internals. 2. Write 2-3 realistic call-site examples, including error and cleanup paths. 3. Check the surface against the rules below. 4. Verify the exported TypeScript with the repo's typecheck/lint/docs tooling before treating the API as done. 5. Implement only after the public shape is coherent and verified.

## API Freshness

Before choosing public API shape, dependency APIs, platform capabilities, or implementation strategy, verify current official sources instead of relying on trained memory. Library, React, React Native, platform, and tooling APIs evolve quickly.

- Prefer official docs, source repositories, release notes, changelogs, package READMEs, and current package metadata. - Look for `llms.txt` or `llms-full.txt` on official docs sites when available, and use those as compact current context. - Treat remembered API details as a starting hypothesis only. If current docs or source disagree, follow the current docs/source and mention the change when relevant. - Avoid designing against stale blog posts, old snippets, or outdated trained assumptions when an official current source is available.

## API Shape Rules

- Prefer a single source of truth. Do not split related state across booleans and dependent values when one typed value can express the state. Prefer `timeoutMs?: number` over `enableTimeout: boolean` plus `timeoutMs?: number`. - Use option objects or named structs once a function has 3 or more parameters, parameters of the same primitive type, or values that are likely to grow. - Keep APIs specific instead of accepting every possible input shape. A millisecond timeout should be a `number`, not `number | string | bigint | object | null`. - Avoid giant "does everything" objects. Split by domain or lifecycle when responsibilities differ. - Before simplifying or redesigning an API, inventory the workflows the feature is supposed to support. Do not silently drop a workflow, such as a live session API, because a one-shot path is easier to implement. Split workflows into separate APIs when needed. - Prefer literal unions, discriminated unions, interfaces, and typed option groups when the valid states are known. In TypeScript libraries, prefer string literal unions over runtime `enum`s unless consumers need a runtime value. - Avoid untyped dictionaries, boolean clusters, stringly typed commands, and loosely shaped events when the valid states are known. - Do not model a binary option as an optional two-case string union such as `'enabled' | 'disabled'`. If omitted means "use the default" and provided means true/false, use an optional boolean and document the default. - Do not represent multiple object states as one interface full of optional fields. Use a discriminated union, inheritance, or separate variant interfaces so impossible field combinations are unrepresentable. - Keep related fields together on the variant where they are required. If `barcode` and `barcodeType` only make sense together, both should be nonoptional on `ScannedBarcode`, not optional on a generic `ScannedData`. - If you create variant interfaces, use them in the actual public type. Do not define `RecognizedTextDataType` and `RecognizedBarcodeDataType` but keep `recognizedDataTypes: RecognizedDataType[]` where `RecognizedDataType` still contains every variant field as optional. - Use `undefined` or optional fields for absence. Use `null` only when "explicit none" means something different from "not provided". - Prefer discriminated unions for state machines, loading states, and result variants. - Model user intent separately from resolved state when negotiation is involved. For example, an ordered array of constraint objects can express priorities, while a resolved config object reports what the platform actually selected. - For complex negotiation, prefer ranked constraints or preference objects over exposing a combinatorial support matrix. Let callers describe intent, resolve the closest working configuration internally, and expose the resolved configuration through a return value, callback, or explicit resolver method. - Expose common presets as `as const satisfies Record<string, Type>` objects. Keep the accepted type structural so users can provide their own values. - Do not expose ambient facts the caller already knows, such as a `platform` field that only repeats `Platform.OS`, unless the API can return data produced by a different platform than the current runtime. - Do not freeze today's platform support matrix into the type shape. Prefer runtime capability fields such as `availableTextTypes: []` or `supportedFormats: []` over separate platform-specific types or static exclusions. This lets newer native capabilities become available without redesigning the JS API. - Prefer one unified options object. Avoid `ios`/`android` option bags and platform-prefixed methods unless the concepts are genuinely platform-only and cannot be described as a cross-platform capability or no-op. - Classify configuration fields as either requirements or preferences. Throw when a requirement cannot be met. Treat preferences as best-effort when the feature can still perform its core job, such as quality, guidance UI, high-frame-rate tracking, auto-zoom, or a wider scan area. Document best-effort fields and expose capabilities or resolved configuration when callers need to know what was applied. - Split by stable semantic capability when capabilities have different options, results, or futures. For example, barcode scanning and text scanning may deserve separate `BarcodeScanner` and `TextScanner` APIs even when one native API happens to implement both today. A platform that lacks text scanning should fail `createTextScanner()` or report `isTextScannerAvailable: false`, not force text-specific fields to be nullable on a generic scanner used for barcode scanning. - Runtime availability should describe whether a stable capability exists today, not permanently restrict the API shape to the current platform matrix. If Android gains text scanning later, the existing `TextScanner` capability should become available without changing barcode APIs or broadening nullable result types. - Keep capability discovery separate from object contracts. Use capability fields to decide whether a workflow can be created or which optional preferences may apply. Once a factory returns a specific session/resource object, its baseline methods should be guaranteed by construction; otherwise return a narrower type or fail creation instead of making callers check `can*` before every normal method. - Splitting workflows should reduce runtime capability checks. Do not keep broad capability flags only to compensate for one oversized object. For example, a one-shot scanner and an app-owned live scanner can be separate APIs; if the live scanner implementation guarantees zoom, photo capture, or region control, those can be part of the live scanner contract instead of nullable properties plus `can*` checks inherited from a one-shot backend. - Encode lifecycle transitions in the API object graph. If commands are valid only after `configure`, `connect`, `start`, or another lifecycle transition, expose those commands on a handle returned by that transition, not on the parent object with "maybe active" checks. For example, `session.configure(device, outputs)` can return a `Controller` that owns `setZoom(...)` and `focusTo(...)`; the `Session` owns graph configuration and start/stop. - Avoid stale-state APIs. If reconfiguration changes the native resource a command targets, return a new handle and invalidate or dispose the old one. Callers should not be able to accidentally call a command on a parent object that no longer knows which configured device/output it applies to. - Use callbacks or returned resolved objects for post-negotiation facts. If an output, controller, or session config becomes meaningful only after connection, provide `onConfigured`, a returned controller/config, or an explicit `resolve...(...)` method rather than forcing callers to poll nullable properties. - For Nitro-backed imperative APIs, treat the public HybridObject as the API by default. Do not add JS wrappers that pre-parse inputs, translate enum/string shapes, normalize one public format into another, or otherwise make JS call a different API than the generated Nitro spec. Put the intended public shape directly in the Nitro spec and native implementation. - When "all" is a meaningful requested value, model it explicitly instead of using `undefined` as a hidden command. For example, prefer `targetFormats: 'all' | BarcodeFormat[]` or `TargetBarcodeFormat = BarcodeFormat | 'all'` when the implementation benefits from a concrete value. - Do not return half-initialized objects that require a separate `prepare()`, `initialize()`, or `load()` call before normal use. If setup is required, make the factory async and resolve with a ready object. Keep lifecycle methods for real repeatable transitions such as `start()`/`stop()`, not construction readiness. - For larger libraries, expose one small public root or factory that creates stateful domain objects. Keep object construction, async setup, I/O, and validation behind factory methods instead of forcing callers through static functions or half-ready instances. - Return `undefined` only for normal domain absence, and document exactly when it occurs. Do not use optional returns as an unstated error path; throw or reject when an operation fails. - Decide whether returned data is a plain value or a resource. Use plain structs/interfaces for small immutable data whose fields are cheap and semantically complete. Use classes/objects/resources when the value owns native state, needs lazy expensive access, can grow behavior, or should expose methods later. - Choose data representations by semantics first, then performance. Use `string` for decoded text payloads. Use `ArrayBuffer` or byte-oriented objects for raw binary, opaque bytes, media, or large data where zero-copy access is part of the contract.

### Variant Example

Avoid nullable clusters when an object can be in several distinct states:

```typescript interface ScannedData { position: Point text?: string barcode?: string barcodeType?: BarcodeType face?: Rect } ```

Prefer a base type plus variants with nonoptional state-specific fields:

```typescript interface ScannedData { position: Point }

interface ScannedText extends ScannedData { text: string }

interface ScannedBarcode extends ScannedData { barcode: string barcodeType: BarcodeType }

interface ScannedFace extends ScannedData { face: Rect }

type ScannedResult = ScannedText | ScannedBarcode | ScannedFace ```

## Public API Organization

- Split public surfaces into focused files or modules and re-export them from a clear package entry point. Do not create catch-all files that contain a feature's main object plus every enum, option, result, event, and helper type. - Default to one exported public type per file. Group multiple exported types in one file only when they form one tightly coupled log

기술 세부 사항

버전
1.0.0
라이선스
Unknown
최근 업데이트
2026년 8월 21일
게시일
2026년 8월 21일

결정 스냅샷

대체 후보

63
준비됨
프로토타입
단계

최근 저장소 활동

감사

설치 검토

설치 및 채택 검토

74
검토 필요
보안
71/100
유지보수
100/100
설치
92/100
전체 감사 열기평가 보고서 보기

Agent 검증 증거

Agent 검증 증거

Resolve, 검토, 설치 및 한 번의 제한된 실행 후 결과 보고서입니다.

0
검증됨
Needs first agent run자동 설치: 먼저 검토최근: 알 수 없음
성공률
최근 실패
결과
0
출력 품질
실패
0
관련 없음
0
설치
0
위험 차단
0
설정 필요
0
프로덕션
0

아직 Agent 결과 데이터가 없습니다. 첫 실행은 /api/agent/outcome을 통해 성공, 설정 필요, 위험 차단, 실패 또는 비관련 결과를 보고할 수 있습니다.

설치

Agent 워크플로에 추가

무료 오픈 소스. 프로덕션 Agent에 설치하기 전에 보고서를 검토하세요.

성장 루프

공유 키트

X

api-design용 시나리오 기반 초안입니다. X에 수동으로 게시할 수 있습니다.

큐레이터 노트
A practical pick for design or creative work:

api-design: Design and review predictable public APIs for TypeScript, JavaScript, React, and React Native libraries. Use when shaping e...

161 stars

https://www.openagentskill.com/skills/margelo-api-design?ref=x
X 초안 열기
선택 사항: 설치 명령이 포함된 답글
Listing + install path for api-design:
https://www.openagentskill.com/skills/margelo-api-design?ref=x

Install: npx skills add margelo/react-native-skills --skill api-design

등록 출처

Registry 색인

소유권 주장 가능

이 등록은 공개 소스에서 색인되었으며 유지보수자 소유권 주장이 승인될 때까지 공식으로 표시되지 않습니다.

제작자
margelo
색인 주체
OpenAgentSkill 커뮤니티 인덱스

귀속은 공개 저장소 또는 제작자 프로필에 연결됩니다. 제작자는 등록을 주장하여 소유권 신호를 업데이트할 수 있습니다.

이 스킬 소유권 주장

소유자 소유권 주장

이 스킬 등록 소유권 주장

이 Registry 색인 등록은 margelo에게 귀속되어 있지만 아직 공식으로 표시되지 않았습니다. 소유권을 주장하면 확인된 소유자 신호가 추가되어 이후 출시, 설치 및 감사 업데이트를 더 신뢰할 수 있습니다.

크리에이터 백링크 키트

README에 증거 배지 추가

개발자가 저장소를 평가하는 위치에 정규 등록, 현재 신뢰 및 감사 신호, 실제 Agent-Proven 증거를 표시합니다.

[![Listed on OpenAgentSkill](https://www.openagentskill.com/api/badge/margelo-api-design?metric=listed&label=Listed)](https://www.openagentskill.com/skills/margelo-api-design)
[![OpenAgentSkill Trust](https://www.openagentskill.com/api/badge/margelo-api-design?metric=trust&label=Trust)](https://www.openagentskill.com/skills/margelo-api-design)
[![OpenAgentSkill Audit](https://www.openagentskill.com/api/badge/margelo-api-design?metric=audit&label=Audit)](https://www.openagentskill.com/skills/margelo-api-design/audit)
[![Agent Proven](https://www.openagentskill.com/api/badge/margelo-api-design?metric=proven&label=Agent%20Proven)](https://www.openagentskill.com/skills/margelo-api-design)

작성자

M

margelo

@margelo

플랫폼 적합도

상태 신호

GitHub 스타
161
품질 점수
38/100
최근 GitHub 푸시
2026년 8월 21일
프레임워크 힌트
알 수 없음
OpenAgentSkill 조회수
2
설치 명령 복사
0
외부 클릭
0

커뮤니티 신호

이 스킬이 Agent 워크플로에 유용한지 알려 주세요. 집계된 피드백은 시간이 지날수록 순위를 개선합니다.

신뢰와 안전

Do not auto-install

59
  • GitHub 채택도GitHub 스타 161정보
  • 스타/포크 활동스타 161, 포크 7; 현재 메타데이터에서 이슈 활동을 확인할 수 없습니다확인
  • 최근 유지보수마지막 푸시 후 1일통과
  • 라이선스 명확성알 수 없음확인
  • README/SKILL.md 완성도메타데이터에 충분한 사용 및 워크플로 맥락이 포함되어 있습니다통과
  • 의존성/런타임 위험network or browser surface통과