์ฝ๋ฉ ์์ด์ ํธ์ ๊ฝ์ ์ฐ๋ ์ง์ ์ค๋์์. ๊ทธ๋์ ์์ ๊ฐ๋ฐ ๋ ธํ์ฐ๋ฅผ ์คํฌ๊ณผ ESLint ํ๋ฆฌ์ ์ผ๋ก ๋ง๋ค์ด ๋์ด์.
๋ญ๊ฐ ๋ค์ด ์์ด์ ยท ์คํฌ ๊ฝ๊ธฐ ยท ESLint ์ฐ๊ธฐ ยท Oracle Design ยท ํจํค์ง ยท ๊ฐ๋ฐ
์ฌ์ด๋ฒํํฌ 2077์ '์ค๋'๋ผ๋ ์์ดํ ์ด ์์ด์. ์นฉ ํ๋ ๊ฝ์ผ๋ฉด ๋ค๋ฅธ ์ฌ๋ ์ง์์ด ํต์งธ๋ก ๋ด ๊ฒ์ด ๋ผ์. ์ด ๋ ํฌ๊ฐ ๋ฑ ๊ทธ๊ฑฐ์์. ํ ์คํธ, ์๊ฐ QA, ์์คํ ์ค๊ณ, ์์ด์ ํธ ์ค์ผ์คํธ๋ ์ด์ ์ ์คํฌ๋ก ๋ง๋ค์ด ๋์ด์. ์ฝ๋ฉ ์์ด์ ํธ์ ๊ฝ์ผ๋ฉด ๋ฐ๋ก ์จ์. ์ฝ๋ ํ์ง ๊ท์น์ ESLint ํ๋ฆฌ์ ์ผ๋ก ๋ฐ๋ก ๋นผ๋จ์ด์.
์์๋ ๊ฐ๋ฐ ์ง์ โโโถ Claude Code / Codex ์คํฌ โโโถ ์ค๊ณยท๊ตฌํยท๊ฒ์ฆ์ด ์ผ์ ํด์ ธ์
์ฝ๋ ํ์ง ๊ท์น โโโถ ์กฐํฉํ ESLint ํ๋ฆฌ์
โโโถ ์๋ํฐ๋ CI์์ ๋ฐ๋ก ์ก์์ค์
| ์์ญ | ๋ค์ด ์๋ ๊ฒ | ๋ฐฐํฌ |
|---|---|---|
| ์ฝ๋ ํ์ง | ์กฐํฉํ ESLint ํ๋ฆฌ์ , ์ง์ ๋ง๋ ๊ท์น | npm |
| ๊ฒ์ฆ | Oracle ๊ณ์ฝ, TDD, ํ๋ ํ ์คํธ, ๋ธ๋ผ์ฐ์ ยท์คํฌ๋ฆฐ์ท | ์์ด์ ํธ ํ๋ฌ๊ทธ์ธ |
| ์ค๊ณ | ํ๋ก ํธ์๋ ์์คํ ํจํด, Figma ์ ํยท๋๋ฉ ๋์์ธ | ์์ด์ ํธ ํ๋ฌ๊ทธ์ธ |
| ์์ด์ ํธ | ์ํฌํ๋ก ๊ทธ๋ํ ์ค๊ณ๋ ์คํ | ์์ด์ ํธ ํ๋ฌ๊ทธ์ธ |
Claude Code๋ ๋ ์ค์ด๋ฉด ๋๋์.
/plugin marketplace add lodado/shareds
/plugin install vibe-coding-helper@my-vibe-coding-helper
vibe-coding-helper ์๋ฆฌ์ ์ํ๋ ํ๋ฌ๊ทธ์ธ ์ด๋ฆ์ ๋ฃ์ผ๋ฉด ๋ผ์.
vibe-coding-helper
frontend-oracle-design
agent-graph-engineering
frontend-system-design
test
frontend-visual-qa
frontend-interface-design
ux-flow-diagram
agent-memory
ํจํค์ง ์์ .claude-plugin/plugin.json์ด๋ .codex-plugin/plugin.json์ด ๊ฐ์ด ๋ค์ด ์์ด์.
๋ ๋ค ๊ฐ์ skills/ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฝ์ด์. ์คํฌ ํ๋ ๋ง๋ค๋ฉด ๋ ์์ด์ ํธ๊ฐ ๊ฐ์ด ์จ์.
ux-flow-diagram runs only when explicitly invoked as
$ux-flow-diagram. It reads Figma Prototype reactions, bounded codebase traces,
requirements, or an existing Flow IR and produces evidence-aware JSON, Markdown,
and Mermaid. Ordinary design or coding requests do not activate it. It never
modifies Prototype connections; FigJam export requires a separate explicit request.
The Figma design skill separately creates approved Prototype connections while building interactive designs and verifies them by reading the reactions back.
์ค์ ๊ธฐ์ค: 2026-09-18
base ํ๋ฆฌ์ ์ ๊น๊ณ , ๊ทธ ์์ ํ์ํ ๊ฒ๋ง ์น์ผ๋ฉด ๋ผ์.
// eslint.config.mjs
import base from '@lodado/eslint-config'
import react from '@lodado/eslint-config/react'
import a11y from '@lodado/eslint-config/a11y'
import quality from '@lodado/eslint-config/quality'
import localRules from '@lodado/eslint-config/local-rules'
export default [...base, ...react, ...a11y, ...quality, ...localRules]์ธ ์ ์๋ ํ๋ฆฌ์ ์ด์์.
.(base) react next a11y turbo local-rules testing query quality fsd strict-types functional interaction
ํ๋ฌ๊ทธ์ธ์ ํจํค์ง ์์กด์ฑ์ผ๋ก ํจ๊ป ์ค์น๋์ง๋ง, ๊ท์น์ ํด๋น ํ๋ฆฌ์ ์ importํด์ผ ์ผ์ ธ์.
base: disable ์ฌ์ ยท๊ท์น๋ช ์ ์๊ตฌํ๊ณ , ์ฌ์ฉํ์ง ์๋ disable์ ์ค๋ฅ๋ก ์ก์์.react: effect ์ค์ฉ ๊ฒ์ฌ์ ๋ํด purityยทimmutabilityยทrefsยทstatic-components์ exhaustive-deps๋ฅผ ์ค๋ฅ๋ก ๊ฒ์ฌํด์. ๋ฆฌ์ค๋ยทfetchยทobserverยทํ์ด๋จธ ๋์๋ ๊ฒฝ๊ณ ํด์.strict-types: ์ฒ๋ฆฌํ์ง ์์ Promise, Promise ์ค์ฉ,any์ ์ ํ, ๋ถํ์ํ ์กฐ๊ฑด, ๋๋ฝ๋ union ๋ถ๊ธฐ๋ฅผ ํ์ ์ ๋ณด๋ก ๊ฒ์ฌํด์.functional:domain/,selectors/,reducers/์๋ TypeScript์*.pure.ts๊ณ์ฐ ์ฝ๋์ ๋ณ๊ฒฝยทI/Oยท์๊ฐ/๋์ ์ ๊ทผ์ ์ ํํด์. ํ ์คํธ๋ ์ ์ธํ๋ฉฐ.mtsยท.cts๋ ์ง์ํด์.
strict-types์ functional์ tsconfig๊ฐ ํ์ํ๊ณ ์ ํํด์ ์ถ๊ฐํด์.
Next.js์์๋ base โ next โ react ์์๋ก ํฉ์ณ React์ ์๊ฒฉํ ๊ท์น์ ์ ์งํด์.
์์ ์์ญ ๋ฐ์ I/OยทReact ์ฝ๋๊น์ง ๊ธ์งํ์ง ์์ผ๋ฉฐ, ESLint๊ฐ ์์ ํ ์์์ฑ์ ์ฆ๋ช
ํ์ง๋ ์์์.
๋ ์์ธํ ๊ฑด ์ฌ๊ธฐ ์์ด์.
- ์ค์ ๋ฐฉ๋ฒ:
eslint-setup์คํฌ quality๊ฐ AI ์ฝ๋์์ ๋ญ ๋ง๋์ง: SonarJS AI quality ๊ท์น
npm ๋ฐฐํฌ๋ ์์ง์ด์์. ์ง๊ธ์ ์ด ๋ ํฌ๋ฅผ ์ํฌ์คํ์ด์ค๋ก ๊ฐ์ ธ๋ค ์ฐ๋ฉด ๋ผ์.
frontend-oracle-design์ ์ด ๋ ํฌ์์ ์ ์ผ ํฐ ์คํฌ์ด์์.
ํ ์ค๋ก ๋งํ๋ฉด ๊ตฌํ ์์ฑ๊ธฐ๊ฐ ์๋๋ผ ๊ฒ์ฆ ํ๋ค์ค์์.
์์ด์ ํธํํ ๊ธฐ๋ฅ์ ์ํค๋ฉด ๋ณดํต ์ด๋์. ์ ๋งคํ ๋ถ๋ถ์ ์๊ธฐ ๋ง์๋๋ก ์ ํด์. ํ ์คํธ๋ ํต๊ณผํ๋ค๊ณ ํ๋๋ฐ ๋ญ ํต๊ณผํ๋์ง ๋ชฐ๋ผ์. ๋์ค์ ๋ณด๋ฉด ์๊ตฌ์ฌํญ์ด ์ฌ์ฉ ๋ฐ๋์ด ์์ด์.
Oracle์ ๊ทธ๊ฑธ ๋ง์์. ์ ํ์ง ์์ ์ ์ฑ ์ ์ ํ๊ธฐ ์ ๊น์ง ์งํ ์ ํด์. ์น์ธ๋ ๊ณ์ฝ์ ํ์ผ๋ก ์ ๊ทธ๊ณ , ์คํ ๊ฒฐ๊ณผ๋ ์ ๋ถ ์์ฅ์ ๋จ๊ฒจ์.
์์ฒญ
โ
โโ Low โโโถ low-fast-path: ๊ธฐ์กด ๋ ํฌ ๊ฒ์ฆ๋ง
โ
โโ Medium / High
โ
โผ
โ DEFINE Outcome BriefยทSource Registryยท๊ณ์ฝ ํ ์์ฑ + ์ฌ์ฉ์ ํ์ธ
โ
โผ
โก LOCK ์น์ธํ ์นด๋์ ์ ์ฑ
์ถ์ฒ์ ๋ด์ฉ ์ง๋ฌธ ๊ณ ์
โ
โผ
โข PROVE VALID_RED๋ก ๊ธฐ๋ฅ ๋ถ์กฑ ๋๋ฌธ์ ์คํจํ๋์ง ์ฆ๋ช
โ
โผ
โฃ BUILD ์ต์ ๊ตฌํ, GREEN, ์คํ ์ฆ๊ฑฐ์ ledger ๊ธฐ๋ก
โ
โผ
โค REVIEW ํ์ค์ ๋
๋ฆฝ ๋ฆฌ๋ทฐ 1๋ช
, High-risk๋ ๋
๋ฆฝ ๋ฆฌ๋ทฐ 2๋ช
๊ณผ join
โ
โผ
โฅ CERTIFY lockยท์ฆ๊ฑฐยทreview receipt๋ฅผ ์ฌ๊ฒ์ฌํด REVIEW_VERIFIED
์ ์ถ๊ตฌ
POLICY_GAP โโโถ ์ฌ๋์ ์ ์ฑ
๊ฒฐ์ ๋๊ธฐ
PRODUCT_DEFECT โโโถ BUILD
EVIDENCE_GAP/HARNESS_DEFECT โโโถ ์ฆ๊ฑฐ๋ง ๋ณด์ ํ ๋ค BUILD
FAIL โโโถ ์ฅ๋ถ ์ /ํ๋ฅผ ๊ตฌ๋ถํด ์ ์ง
์ด๊ฑด ์ฌ๋์ด ์ฝ๋ 6๋จ๊ณ ์ด์ ํ๋ฉด์ด์์. ์ค์ Controller๋ ์ฌ์ฉ์ ์น์ธ, ์คํจ ์ฆ๋ช ๊ณผ ๊ตฌํ, ์๊ฐ ์ฆ๊ฑฐ ๋๊ธฐ, ํ์ค/High-risk ๋ฆฌ๋ทฐ, ์ฅ๋ถ ์ ํ ์ ์ง๋ฅผ ๋ณ๋ Node๋ก ์ ์งํด์. ์ ํํ NodeยทEdgeยทfallbackยทterminal ์์ ์ ์ฒด ๊ทธ๋ํ๋ ํจํค์ง README๊ฐ ์๋ณธ JSON์์ ์๋์ผ๋ก ์์ฑํฉ๋๋ค.
- ์ ์ฑ ์ถ์ฒ๋ ์น์ธ๋ ๋ฌธ์์์. ๊ธฐ์กด ์ฝ๋๋ ํ์ฌ ๋ธ๋ผ์ฐ์ ๋์์ ์ฆ๊ฑฐ์ผ ๋ฟ ๊ทผ๊ฑฐ๊ฐ ์๋์์
- ์นด๋ ์น์ธ ์ ์๋ production ์ฝ๋๋ฅผ ๋ชป ๊ฑด๋๋ ค์
- ์ ์ฑ ์ด ๋ฐ๋๋ฉด ์ ๊ธด ํ์ผ์ ๊ณ ์น๋ ๊ฒ ์๋๋ผ ์ revision์ ๋ง๋ค์ด์
- assertion ์ฝํ,
test.skip, ์์ sleep์ ๊ธ์ง์์ - ๋ณด๊ณ ํ ๋ ๋ง๋ก ํ์ง ์๊ณ runId๋ฅผ ์ธ์ฉํด์
| ์ํ | ๋ป |
|---|---|
ORACLE_READY |
์นด๋ ์ ๊ฐ์ด์. ๊ตฌํ ๋ค์ด๊ฐ๋ ๋ผ์ |
IMPLEMENTED_GREEN |
๊ตฌํ ๊ฒ์ฆ์ ํต๊ณผํ์ง๋ง ์๊ฐ ์ฆ๊ฑฐ ๋๊ธฐ๋ฉด ์ฌ๊ธฐ์ ์ฌ๊ฐํด์. ์ต์ข ์๋ฃ๋ ์๋์์ |
REVIEW_VERIFIED |
๋ฆฌ๋ทฐ finding๊น์ง ๋ฐ์ํ๊ณ ์ฌํต๊ณผํ์ด์ |
NEEDS_DECISION |
๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊พธ๋ ์ ์ฑ ์ด ๋ฏธ๊ฒฐ์ด์์. ์ง๋ฌธ์ ๋ฑ์ด์ |
FAIL |
ํ๊ฒฝยทํ๋ค์ค ๋ฌธ์ ๋ ์์ฐ ์์ง์ผ๋ก ํ์ ๋ถ๊ฐ์์ |
ํผ๋๋ฐฑ์ ์์ธ๋ณ๋ก ๋๋ ์ ์์ฐ์ ์จ์. ์์ฐ ๋ค ์ฐ๋ฉด BUDGET_EXHAUSTED๋ก ๋ฉ์ถฐ์.
| ๋ถ๋ฅ | ์์ฐ | ์ฒ๋ฆฌ |
|---|---|---|
POLICY_GAP |
2 | ์ง๋ฌธ ์ถ๋ ฅํ๊ณ NEEDS_DECISION |
HARNESS_DEFECT |
2 | ํ ์คํธ ํ๋ค์ค๋ง ๋ณด์ ํด์ |
PRODUCT_DEFECT |
3 | VALID_RED ๋ค์ ๊ตฌํ์ ๊ณ ์ณ์ |
EVIDENCE_GAP |
- | ์ ๊ธด ๋ฒ์ ์์์ ๋งคํ์ ์ฑ์์ |
ENVIRONMENT_DEFECT |
- | production ์ ๊ฑด๋๋ฆฌ๊ณ FAIL |
NON_ORACLE_OPINION |
- | ๊ธฐ๋ก๋ง ํ๊ณ ์๋ฃ๋ฅผ ๋ง์ง ์์์ |
ํ์ ์ ๋ง์ด ์๋๋ผ ์คํฌ๋ฆฝํธ๊ฐ ํด์.
oracle-verify.mjs card | red | evidence | findings | review | scan
oracle-lock.mjs create | verify
oracle-run.mjs init | status | exec | transition | budget | review-packet | review-brief
generate-workflow-docs.mjs README ๊ทธ๋ํ ์์ฝ ์์ฑ | --checkreview-brief๋ ํ์ฌ ๋ฆฌ๋ทฐ ๊ทผ๊ฑฐ์์ ์ฌ์ฉ์ ๋ชฉํยท์ฐจ๋จ ํญ๋ชฉยท๋ฏธ์๋ฃ ์ฆ๊ฑฐยท๋น์ฐจ๋จ ์๊ฒฌ์ ๋ชจ์
์ฝ๊ธฐ ์ ์ฉ ์์ฝ์
๋๋ค. ์๋ณธ ์นด๋ยท๋ฆฌ๋ทฐ ์
๋ ฅ์ด๋ ์น์ธ ์ ์ฐจ๋ฅผ ๋์ฒดํ์ง ์์ต๋๋ค.
ํผ์ ๋ค ํ์ง๋ ์์์. ํ
์คํธ ์์ฑยทํ์ ์ test,
์คํฌ๋ฆฐ์ท์ด๋ ๋ธ๋ผ์ฐ์ ๋ frontend-visual-qa,
๊ธฐ๋ฅ๋ณ ๊ตฌํ ์ ํ์ง๋ frontend-system-design์ด ๊ฐ์ ธ๊ฐ์.
์์ธํ ๊ฑด ์คํฌ ๋ฌธ์์ ์์ด์.
npm์ผ๋ก ๋๊ฐ ๊ฒ๋ค์ด์์.
| ํจํค์ง | ์ค๋ช |
|---|---|
@lodado/eslint-config |
ํ์ํ ๊ฒ๋ง ์ผ๋ ์กฐํฉํ ํ๋ฆฌ์ |
@lodado/eslint-plugin-local-rules |
์ฌ๋ฌ ํ๋ก์ ํธ์์ ๊ฐ์ด ์ฐ๋ ๊ท์น |
์์ด์ ํธ์ ๊ฝ๋ ํ๋ฌ๊ทธ์ธ์ด์์.
| ํ๋ฌ๊ทธ์ธ | ์ค๋ช |
|---|---|
vibe-coding-helper |
ESLint ๋์ ์ด๋ ๋ ํฌ ์ปจ๋ฒค์ |
frontend-oracle-design |
์ํ๋ ๊ธฐ๋ฐ Oracle ๊ณ์ฝ, TDD, ๊ทผ๊ฑฐ, ๋ฆฌ๋ทฐ |
agent-graph-engineering |
์์ด์ ํธ ์ํฌํ๋ก ๊ทธ๋ํ ์ค๊ณ๋ ์คํ |
frontend-system-design |
์ ์๋ ค์ง ํ๋ก ํธ์๋ ๋ฌธ์ ์ ์ค๊ณ ํจํด |
test |
Oracle ๊ธฐ๋ฐ ๊ฒฐ์ ๋ก ์ ํ๋ ํ ์คํธ |
frontend-visual-qa |
์คํฌ๋ฆฐ์ท ๋น๊ต๋ ์ง์ ๋ธ๋ผ์ฐ์ QA |
frontend-interface-design |
$reference-driven-figma-design: HCIยท๋ ํผ๋ฐ์ค ๋น๊ต โ ๋ฌํ ์์ด์ดํ๋ ์ ์ค๋ช
โ ํธ์ง ๊ฐ๋ฅ Figma ๋์์ธ |
pnpm ์ํฌ์คํ์ด์ค๋ Turborepo๋ก ๊ตด๋ฌ๊ฐ์.
pnpm install
pnpm lint
pnpm test
pnpm changesetmain์ด๋ dev์ pushํ๊ฑฐ๋ PR ์ฌ๋ฆฌ๋ฉด lint๋ test๊ฐ ๋์์.
npm ๋ฆด๋ฆฌ์ค๋ ์กฐ๊ฑด์ด ๋ ๊ฐ์์. ๋ ํฌ ๋ณ์ ENABLE_NPM_RELEASE๊ฐ true์ฌ์ผ ํ๊ณ , @lodado/*๋ฅผ ๋ฐฐํฌํ ์ ์๋ NPM_TOKEN์ด ์์ด์ผ ํด์.
blog-voice-cloner๋ ํ๊ตญ์ดยท์์ด ๋ธ๋ก๊ทธ ๋ฌธ์ฒด๋ฅผ ๊ทผ๊ฑฐ์ ํจ๊ป ๋ถ์ํ๊ณ , ์์ฑ์๋ณ ๊ธฐ๊ฐ ํ๋กํ์ ์ ์ฅํ๋ฉฐ, ์ ๋ด์ฉ์ ๋ฌธ์ฒด๋ฅผ ์ ์ฉํ๋ ์คํฌ์ ๋๋ค. ์๋ฌธ ๋ด์ฉ๊ณผ ์์ฑ ๋ด์ฉ์ ๋ถ๋ฆฌํ๊ณ ์๋ฏธยท์ค๋ณตยท๊ณผ์ ๋ชจ๋ฐฉ์ ๊ฒํ ํฉ๋๋ค. Python 3.10+ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ๋ฐ์ด๋ฉฐ ์น ์์ง์ ํธ์คํธ ๋๊ตฌ๋ก ์ํํฉ๋๋ค.
Agent Memory ํจํค์ง๋ recall โ ์์
โ log โ ์ ํ์ TIL/generalize โ ๊ฒํ ๋ ๊ท์น ์น๊ฒฉ ๋ฃจํ๋ฅผ ์ ๊ณตํฉ๋๋ค. 6๊ฐ ์คํฌ์ Claude, Codex, jcode, Cursor, ๊ณต์ฉ .agents ๊ฒฝ๋ก์ ์ค์นํ ์ ์์ต๋๋ค. ๊ธฐ์กด Vault๋ฅผ ์ฌ๋ฐฐ์นํ๊ฑฐ๋ ๊ท์น์ ์๋ ์น๊ฒฉํ์ง ์์ต๋๋ค.