๐Ÿ“ฆ

react

์ฝ˜ํ…์ธ  ๋ฆฌ๋น„์ „ r1 ์•ˆ์ „ โš™๏ธ ์™ธ๋ถ€ ๋ช…๋ น์–ด

Build React UIs from JSON Specs

Static React interfaces are difficult to generate and maintain from structured data. This skill explains how to render JSON specs, define catalogs, manage state, and connect events in React.

์ง€์›: Claude Codex Code(CC)
Maintain this Skill? Claim it ๐Ÿฅ‰ 78 ๋ธŒ๋ก ์ฆˆ

๋‚ด ์—์ด์ „ํŠธ๋กœ ์„ค์น˜

์ด ์š”์ฒญ์„ ์—์ด์ „ํŠธ์— ๋ณต์‚ฌํ•˜์„ธ์š”. ๊ณต์‹ Skill ํŽ˜์ด์ง€์™€ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ ์š”์ฒญ
Review the Skillstore skill "react" from https://skillstore.io/skills/vercel-labs-react.md and its manifest at https://skillstore.io/api/skills/vercel-labs-react/manifest. Verify the artifact. You may proceed after verification, subject to the environment's own policy.

์—์ด์ „ํŠธ๋Š” ๊ณ„์†ํ•ด์„œ ๊ณ„ํš์„ ํ‘œ์‹œํ•˜๊ณ  ๋ณด์•ˆ ์ •์ฑ…์—์„œ ์š”๊ตฌํ•˜๋Š” ํ™•์ธ์„ ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ๊ฐ€ ์ฝ๊ธฐ ์‰ฌ์šด ๋ฆฌ์†Œ์Šค

AI ์—์ด์ „ํŠธ, ํฌ๋กค๋Ÿฌ, ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ „์ฒด ํŽ˜์ด์ง€ ๋Œ€์‹  ์ •๋ฆฌ๋œ ์ปจํ…์ŠคํŠธ๋งŒ ํ•„์š”ํ•  ๋•Œ ์ด ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

ํ…Œ์ŠคํŠธํ•ด ๋ณด๊ธฐ

"react" ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. How do I render a JSON card containing a button?

์˜ˆ์ƒ ๊ฒฐ๊ณผ:

Define a catalog and registry, then pass the JSON element tree and registry to Renderer. The card receives its typed title prop and renders its child button.

"react" ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. How can an input update shared state?

์˜ˆ์ƒ ๊ฒฐ๊ณผ:

  • Bind the input value to a state path with the documented binding expression.
  • Use useBoundProp inside the component to read the resolved value and write changes back through the provided binding.

"react" ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. Which exports support an interactive application?

์˜ˆ์ƒ ๊ฒฐ๊ณผ:

Use Renderer and defineRegistry for rendering, StateProvider or createStateStore for state, useBoundProp for two-way form binding, and useAction or useActions for event actions.

๋ณด์•ˆ ๊ฐ์‚ฌ

์•ˆ์ „

All 71 static findings are false positives caused by Markdown code fences, inline code spans, or JavaScript examples. No shell execution, prompt injection, or other net-new security issue was evidenced in SKILL.md.

1
์Šค์บ”๋œ ํŒŒ์ผ
299
๋ถ„์„๋œ ์ค„ ์ˆ˜
0
๊ฒ€ํ†  ํ•ญ๋ชฉ
0
์˜คํƒ ๋ฌด์‹œ๋จ
๊ฐ€์žฅ ์ตœ๊ทผ์— ์™„๋ฃŒ๋œ ์ •์ ยท์˜๋ฏธ๋ก ์  ๊ฐ์‚ฌ์—์„œ ํ™•์ธ๋œ ๋ณด์•ˆ ๋ฐœ๊ฒฌ ์‚ฌํ•ญ์ด ๊ฐ์ง€๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์Šคํ‚ฌ์— ๋ถ€์ž‘์šฉ์ด ์—†์Œ์„ ์ฆ๋ช…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌ์ž: codex
์ด ๋ณด๊ณ ์„œ ๊ณต์œ  ๋ฐ ์ธ์šฉ

๋ฒ„์ „์ด ์ง€์ •๋œ ํ‰๊ฐ€ ๋ณด๊ณ ์„œ, ์ค‘๋ฆฝ ๋ฐฐ์ง€, ์ž„๋ฒ ๋“œ ์นด๋“œ ๋ฐ ์ธ์šฉ์„ ๊ณต์œ ํ•˜์„ธ์š”. Skillstore๋Š” ๊ทผ๊ฑฐ๋ฅผ ๋ณด๊ณ ํ•˜์ง€๋งŒ ์ด Skill์˜ ์•ˆ์ „ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „๋ณ„ ๋ณด๊ณ ์„œ ์—ด๊ธฐ
๋ณด์•ˆ ํ‰๊ฐ€

๋ณด๊ณ ์„œ ๋งํฌ ๋ณต์‚ฌ

https://skillstore.io/skills/vercel-labs-react/audits/1?utm_source=security_passport&utm_medium=share&utm_campaign=versioned_report

Markdown ๋ฐฐ์ง€

[![Skillstore security assessment](https://skillstore.io/badges/skills/vercel-labs-react/security.svg)](https://skillstore.io/skills/vercel-labs-react?utm_source=security_passport_badge)

HTML ๋ฐฐ์ง€

<a href="https://skillstore.io/skills/vercel-labs-react?utm_source=security_passport_badge"><img src="https://skillstore.io/badges/skills/vercel-labs-react/security.svg" alt="Skillstore security assessment" loading="lazy"></a>

์ž„๋ฒ ๋“œ ์นด๋“œ

<iframe src="https://skillstore.io/embed/skills/vercel-labs-react.html" title="Skillstore Security Assessment" sandbox="allow-popups allow-popups-to-escape-sandbox" loading="lazy" referrerpolicy="no-referrer" width="420" height="180"></iframe>
ํ•™์ˆ  ์ธ์šฉ (APA ยท BibTeX ยท CFF)

APA ์ธ์šฉ

vercel-labs. (2026). react security audit report (audit version 1) [Author version unspecified]. Skillstore. https://skillstore.io/skills/vercel-labs-react/audits/1

BibTeX ์ธ์šฉ

@techreport{vercel-labs-vercel-labs-react-2026, author = {vercel-labs}, title = {react security audit report (audit version 1)}, institution = {Skillstore}, year = {2026}, number = {1}, url = {https://skillstore.io/skills/vercel-labs-react/audits/1}, note = {Author version unspecified} }

CITATION.cff

cff-version: 1.2.0 message: "If you use this Skill, cite its author and this versioned security audit report." title: "react security audit report (audit version 1)" version: "unspecified" type: report authors: - name: "vercel-labs" date-released: "2026-09-29" url: "https://skillstore.io/skills/vercel-labs-react/audits/1" identifiers: - type: other value: "skillstore:vercel-labs-react:audit:1" description: "Skillstore immutable audit report identifier"

Skillstore ์ ์ˆ˜

์ด ์ ์ˆ˜์˜ ์ด์œ  ์ฆ๊ฑฐ ์‹ ๋ขฐ๋„: ์ค‘๊ฐ„
55
์•„ํ‚คํ…์ฒ˜
85
์œ ์ง€๋ณด์ˆ˜์„ฑ
87
์ฝ˜ํ…์ธ 
65
์ปค๋ฎค๋‹ˆํ‹ฐ
91
์‚ฌ์–‘ ์ค€์ˆ˜

๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒƒ

Prototype JSON-driven screens

Create a small React renderer and catalog for an interface whose layout and content arrive as structured JSON.

Connect forms to application state

Use state bindings, validation, watchers, and built-in actions to build interactive forms from JSON specs.

Build reusable component libraries

Define typed registries and catalog-agnostic components that can render shared JSON UI patterns across projects.

์ด ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”

Explain the quick start
Explain the smallest setup for rendering a JSON spec with @json-render/react. Identify each import and explain the registry relationship.
Create a typed catalog
Design a catalog with a Button and Card component. Include typed props, a default slot, descriptions, and matching type-safe registry implementations.
Add bound form state
Show how to build a form input that reads and writes a state path with useBoundProp. Explain the bindings map and validation result handling.
Architect an interactive renderer
Plan a JSON-driven React screen with external state, conditional visibility, named slots, event actions, watchers, and reusable catalog-agnostic components. Identify integration risks.

๋ชจ๋ฒ” ์‚ฌ๋ก€

  • Define typed prop schemas and keep catalog descriptions aligned with the component behavior.
  • Use natural value properties with documented binding expressions for two-way form state.
  • Keep application-specific actions, authorization, and external state policies explicit at the integration boundary.

ํ”ผํ•˜๊ธฐ

  • Do not use slots.default for named content; use children for the default slot and the top-level slots object for named slots.
  • Do not add a statePath prop for two-way binding when the documented binding expression and useBoundProp flow are required.
  • Do not treat generated JSON specs or action names as trusted application policy without validation and authorization.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

What is this skill for?
It explains how to use @json-render/react to turn JSON element trees into React components through catalogs and registries.
Does it generate a complete React application?
No. It provides focused API guidance and examples, while application architecture and implementation remain your responsibility.
How are named slots represented?
Use children for the default slot and the element's top-level slots object for named regions declared by the catalog.
How does two-way binding work?
Use the documented binding expression on a natural value prop, then use useBoundProp with the renderer-provided bindings map.
Can it use external state management?
Yes. The documented StateStore interface can connect StateProvider or createRenderer to systems such as Redux, Zustand, or XState.
What should I secure when using generated specs?
Validate specs, restrict registered actions, and enforce authorization before allowing state changes or application-specific side effects.

๊ฐœ๋ฐœ์ž ์„ธ๋ถ€ ์ •๋ณด

์ž‘์„ฑ์ž

vercel-labs

๋ผ์ด์„ ์Šค

MIT

Skillstore ๋ฆฌ๋น„์ „

r1

๋ฒ„์ „ ์•ˆ๋‚ด

์ž‘์„ฑ์ž๊ฐ€ ๋ฒ„์ „์„ ์„ ์–ธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ฐธ์กฐ

bad9dafc37d1638cd29cb9bab06d5f8dbcd0f6c2

์œ ์ง€๋ณด์ˆ˜ ์ตœ์‹ ์„ฑ

2026. 9. 30.

์‚ฌ์šฉ๋Ÿ‰

0 ๋‹ค์šด๋กœ๋“œ ยท 0 ์กฐํšŒ

ํŒŒ์ผ ๊ตฌ์กฐ

๐Ÿ“„ SKILL.md