์ฝ๋ฉ ์์ด์ ํธ์ ๊ฝ์ ์ฐ๋ ์ง์ ์ค๋์์. ๊ทธ๋์ ์์ ๊ฐ๋ฐ ๋ ธํ์ฐ๋ฅผ ์คํฌ๊ณผ ESLint ํ๋ฆฌ์ ์ผ๋ก ๋ง๋ค์ด ๋์ด์.
๋ญ๊ฐ ๋ค์ด ์์ด์ ยท ์คํฌ ๊ฝ๊ธฐ ยท ESLint ์ฐ๊ธฐ ยท Oracle Design ยท ํจํค์ง ยท ๊ฐ๋ฐ
์ฌ์ด๋ฒํํฌ 2077์ '์ค๋'๋ผ๋ ์์ดํ ์ด ์์ด์. ์นฉ ํ๋ ๊ฝ์ผ๋ฉด ๋ค๋ฅธ ์ฌ๋ ์ง์์ด ํต์งธ๋ก ๋ด ๊ฒ์ด ๋ผ์. ์ด ๋ ํฌ๊ฐ ๋ฑ ๊ทธ๊ฑฐ์์. ํ ์คํธ, ์๊ฐ QA, ์์คํ ์ค๊ณ, ์์ด์ ํธ ์ค์ผ์คํธ๋ ์ด์ ์ ์คํฌ๋ก ๋ง๋ค์ด ๋์ด์. ์ฝ๋ฉ ์์ด์ ํธ์ ๊ฝ์ผ๋ฉด ๋ฐ๋ก ์จ์. ์ฝ๋ ํ์ง ๊ท์น์ ESLint ํ๋ฆฌ์ ์ผ๋ก ๋ฐ๋ก ๋นผ๋จ์ด์.
์์๋ ๊ฐ๋ฐ ์ง์ โโโถ Claude Code / Codex ์คํฌ โโโถ ์ค๊ณยท๊ตฌํยท๊ฒ์ฆ์ด ์ผ์ ํด์ ธ์
์ฝ๋ ํ์ง ๊ท์น โโโถ ์กฐํฉํ ESLint ํ๋ฆฌ์
โโโถ ์๋ํฐ๋ CI์์ ๋ฐ๋ก ์ก์์ค์
| ์์ญ | ๋ค์ด ์๋ ๊ฒ | ๋ฐฐํฌ |
|---|---|---|
| ์ฝ๋ ํ์ง | ์กฐํฉํ ESLint ํ๋ฆฌ์ , ์ง์ ๋ง๋ ๊ท์น | npm |
| ๊ฒ์ฆ | Oracle ๊ณ์ฝ, TDD, ํ๋ ํ ์คํธ, ๋ธ๋ผ์ฐ์ ยท์คํฌ๋ฆฐ์ท | ์์ด์ ํธ ํ๋ฌ๊ทธ์ธ |
| ์ค๊ณ | ํ๋ก ํธ์๋ ์์คํ ์ค๊ณ ํจํด | ์์ด์ ํธ ํ๋ฌ๊ทธ์ธ |
| ์์ด์ ํธ | ์ํฌํ๋ก ๊ทธ๋ํ ์ค๊ณ๋ ์คํ | ์์ด์ ํธ ํ๋ฌ๊ทธ์ธ |
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
agent-memory
ํจํค์ง ์์ .claude-plugin/plugin.json์ด๋ .codex-plugin/plugin.json์ด ๊ฐ์ด ๋ค์ด ์์ด์.
๋ ๋ค ๊ฐ์ skills/ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฝ์ด์. ์คํฌ ํ๋ ๋ง๋ค๋ฉด ๋ ์์ด์ ํธ๊ฐ ๊ฐ์ด ์จ์.
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
๋ ์์ธํ ๊ฑด ์ฌ๊ธฐ ์์ด์.
- ์ค์ ๋ฐฉ๋ฒ:
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
generate-workflow-docs.mjs README ๊ทธ๋ํ ์์ฝ ์์ฑ | --checkํผ์ ๋ค ํ์ง๋ ์์์. ํ
์คํธ ์์ฑยทํ์ ์ 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 |
์ค๋ช ๊ฐ๋ฅํ UI/UX ์ค๊ณ ยท ๊ณ๋ณด DESIGN.md ยท ์ฑ์ ํ ์๊ฐ ๋ฃจํ |
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๋ฅผ ์ฌ๋ฐฐ์นํ๊ฑฐ๋ ๊ท์น์ ์๋ ์น๊ฒฉํ์ง ์์ต๋๋ค.