@su-record/vibe 3.2.6 → 3.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +5 -2
- package/README.en.md +1 -1
- package/README.md +1 -1
- package/agents/build-error-resolver.md +1 -1
- package/agents/code-reviewer.md +1 -1
- package/agents/e2e-tester.md +1 -1
- package/agents/event/event-ops.md +1 -1
- package/agents/event/event-planner.md +1 -1
- package/agents/implementer.md +1 -1
- package/agents/security-reviewer.md +1 -1
- package/agents/tester.md +1 -1
- package/agents/ui/design-reviewer.md +1 -1
- package/agents/ui/design-system-gen.md +1 -1
- package/dist/cli/commands/info.d.ts +9 -0
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +32 -0
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/info.test.js +34 -1
- package/dist/cli/commands/info.test.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts +18 -0
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +60 -2
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/upgrade.test.js +51 -1
- package/dist/cli/commands/upgrade.test.js.map +1 -1
- package/dist/cli/generate-release-notes.js +8 -6
- package/dist/cli/generate-release-notes.js.map +1 -1
- package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
- package/dist/cli/postinstall/claude-agents.js +3 -1
- package/dist/cli/postinstall/claude-agents.js.map +1 -1
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +27 -21
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/tests/curated-release-notes.test.js +55 -1
- package/dist/tests/curated-release-notes.test.js.map +1 -1
- package/dist/tools/release/releaseNotes.d.ts +22 -0
- package/dist/tools/release/releaseNotes.d.ts.map +1 -1
- package/dist/tools/release/releaseNotes.js +45 -0
- package/dist/tools/release/releaseNotes.js.map +1 -1
- package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -3
- package/hooks/scripts/__tests__/code-check-detectors.test.js +58 -0
- package/hooks/scripts/code-check.js +7 -0
- package/package.json +2 -2
- package/skills/vibe/SKILL.md +27 -86
- package/skills/vibe/references/routing-examples.md +85 -0
- package/skills/vibe.agents-md/SKILL.md +12 -10
- package/skills/vibe.analyze/SKILL.md +22 -211
- package/skills/vibe.analyze/references/mode1-feature.md +81 -0
- package/skills/vibe.analyze/references/mode2-document.md +50 -0
- package/skills/vibe.analyze/references/mode3-website.md +47 -0
- package/skills/vibe.analyze/references/mode4-quality.md +35 -0
- package/skills/vibe.analyze/references/output-templates.md +2 -2
- package/skills/vibe.brand-assets/SKILL.md +2 -2
- package/skills/vibe.brand-assets/references/mobile-assets.md +6 -0
- package/skills/vibe.capability-loop/SKILL.md +14 -80
- package/skills/vibe.capability-loop/references/escalate.md +86 -0
- package/skills/vibe.chub-usage/SKILL.md +3 -132
- package/skills/vibe.clone/SKILL.md +43 -358
- package/skills/vibe.clone/references/phase-commands.md +118 -0
- package/skills/vibe.clone/references/setup-and-layout.md +34 -0
- package/skills/vibe.clone/references/verification-loops.md +64 -0
- package/skills/vibe.commit-push-pr/SKILL.md +10 -4
- package/skills/vibe.context7-usage/SKILL.md +3 -99
- package/skills/vibe.continue/SKILL.md +17 -7
- package/skills/{vibe.handoff → vibe.continue}/agents/context-summarizer.md +1 -1
- package/skills/{vibe.handoff → vibe.continue}/agents/document-writer.md +1 -1
- package/skills/{vibe.handoff → vibe.continue}/agents/state-collector.md +1 -1
- package/skills/{vibe.handoff → vibe.continue}/agents/verifier.md +1 -1
- package/skills/{vibe.handoff/rubrics/completeness.md → vibe.continue/references/handoff-completeness.md} +1 -1
- package/skills/{vibe.handoff/templates → vibe.continue/references}/handoff.md +37 -2
- package/skills/vibe.contract/SKILL.md +4 -27
- package/skills/vibe.create-prd/SKILL.md +8 -1
- package/skills/vibe.design/SKILL.md +18 -5
- package/skills/vibe.design/references/design-context.md +184 -0
- package/skills/vibe.design-refine/SKILL.md +7 -0
- package/skills/vibe.design-review/SKILL.md +7 -0
- package/skills/vibe.design-teach/SKILL.md +2 -175
- package/skills/vibe.devlog/SKILL.md +14 -11
- package/skills/vibe.devlog/references/auto-push.md +10 -0
- package/skills/vibe.docs/SKILL.md +27 -198
- package/skills/vibe.docs/references/agent.md +55 -0
- package/skills/vibe.docs/references/arch.md +28 -0
- package/skills/vibe.docs/references/codemaps.md +17 -0
- package/skills/vibe.docs/references/diagram.md +24 -0
- package/skills/vibe.docs/references/guide.md +23 -0
- package/skills/vibe.docs/references/readme.md +45 -0
- package/skills/vibe.docs/references/release.md +31 -0
- package/skills/vibe.documentation-provider/SKILL.md +22 -0
- package/skills/vibe.documentation-provider/references/chub.md +141 -0
- package/skills/vibe.documentation-provider/references/context7.md +107 -0
- package/skills/vibe.educational-content/SKILL.md +7 -0
- package/skills/vibe.event/SKILL.md +47 -146
- package/skills/vibe.event/references/comms.md +173 -0
- package/skills/vibe.event/references/operations.md +208 -0
- package/skills/vibe.event/references/orchestration-legacy.md +97 -0
- package/skills/vibe.event/references/planning.md +145 -0
- package/skills/vibe.event-comms/SKILL.md +3 -165
- package/skills/vibe.event-ops/SKILL.md +3 -200
- package/skills/vibe.event-planning/SKILL.md +3 -137
- package/skills/vibe.figma/SKILL.md +26 -692
- package/skills/vibe.figma/references/branch1-read-convention.md +82 -0
- package/skills/vibe.figma/references/branch2-read-standalone.md +69 -0
- package/skills/vibe.figma/references/branch3-write.md +122 -0
- package/skills/vibe.figma/references/core-implementation.md +453 -0
- package/skills/vibe.git-worktree/SKILL.md +2 -6
- package/skills/vibe.git-worktree/references/troubleshooting.md +9 -0
- package/skills/vibe.handoff/SKILL.md +2 -103
- package/skills/vibe.harness/SKILL.md +17 -12
- package/skills/vibe.image/SKILL.md +8 -1
- package/skills/vibe.llm/SKILL.md +8 -1
- package/skills/vibe.loop/SKILL.md +9 -11
- package/skills/vibe.loop/references/install-adapters.md +10 -0
- package/skills/vibe.presentation/SKILL.md +7 -0
- package/skills/vibe.prioritization/SKILL.md +7 -0
- package/skills/vibe.priority-todos/SKILL.md +2 -57
- package/skills/vibe.react-best-practices/SKILL.md +1 -1
- package/skills/vibe.reason/SKILL.md +9 -2
- package/skills/vibe.regress/SKILL.md +6 -28
- package/skills/vibe.regress/templates/{test-jest.md → test-template.md} +1 -0
- package/skills/vibe.review/SKILL.md +62 -52
- package/skills/vibe.review/references/priority-todos.md +66 -0
- package/skills/vibe.review/references/ui-ux-review.md +39 -0
- package/skills/vibe.run/SKILL.md +63 -660
- package/skills/vibe.run/references/arch-guard.md +178 -0
- package/skills/vibe.run/references/e2e-and-autofix.md +40 -0
- package/skills/vibe.run/references/exec-plan.md +145 -0
- package/skills/vibe.run/references/guidelines-and-tools.md +84 -0
- package/skills/vibe.run/references/parallel-agents.md +44 -60
- package/skills/vibe.run/references/process-steps.md +179 -0
- package/skills/vibe.run/references/restraint.md +66 -0
- package/skills/vibe.run/references/ultrawork-mode.md +1 -1
- package/skills/vibe.scaffold/SKILL.md +9 -13
- package/skills/vibe.scaffold/references/clean-architecture.md +17 -0
- package/skills/vibe.spec/SKILL.md +13 -9
- package/skills/vibe.spec/references/legacy-artifacts.md +6 -0
- package/skills/vibe.test/SKILL.md +93 -70
- package/skills/vibe.test/references/report-template.md +101 -0
- package/skills/vibe.tool-fallback/SKILL.md +10 -32
- package/skills/vibe.tool-fallback/references/external-llm.md +10 -0
- package/skills/vibe.tool-fallback/references/file-lookup.md +9 -0
- package/skills/vibe.tool-fallback/references/web-search.md +11 -0
- package/skills/vibe.trace/SKILL.md +2 -264
- package/skills/vibe.ui-ux-pro-max/SKILL.md +1 -3
- package/skills/vibe.ui-ux-pro-max/references/charts-and-data.md +7 -0
- package/skills/vibe.user-personas/SKILL.md +8 -1
- package/skills/vibe.verify/SKILL.md +30 -4
- package/skills/vibe.verify/references/trace-mode.md +271 -0
- package/vibe/rules/principles/dual-harness-doctrine.md +10 -9
- package/skills/vibe.regress/templates/test-vitest.md +0 -30
- /package/skills/{vibe.design-teach/rubrics → vibe.design/references}/brand-personality.md +0 -0
- /package/skills/{vibe.design-teach → vibe.design}/templates/design-context.json +0 -0
- /package/skills/{vibe.context7-usage/rubrics/when-to-use.md → vibe.documentation-provider/references/context7-when-to-use.md} +0 -0
- /package/skills/{vibe.event-ops/rubrics → vibe.event/references}/contingency.md +0 -0
- /package/skills/{vibe.event-ops/templates/d-day-checklist.md → vibe.event/references/d-day-checklist-template.md} +0 -0
- /package/skills/{vibe.event-comms/templates/email-invite.md → vibe.event/references/email-invite-template.md} +0 -0
- /package/skills/{vibe.event-planning/templates/event-plan.md → vibe.event/references/event-plan-template.md} +0 -0
- /package/skills/{vibe.event-comms/templates/sns-post.md → vibe.event/references/sns-post-template.md} +0 -0
- /package/skills/{vibe.event-planning/rubrics → vibe.event/references}/timeline.md +0 -0
- /package/skills/{vibe.priority-todos/templates/todo-board.md → vibe.review/references/todo-board-template.md} +0 -0
- /package/skills/{vibe.priority-todos/rubrics/prioritization.md → vibe.review/references/todo-prioritization.md} +0 -0
package/skills/vibe.llm/SKILL.md
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vibe.llm
|
|
3
|
-
description:
|
|
3
|
+
description: provider별 사용 가능 모델이 바뀌었거나 현재 claude/openai/gemini/zai 모델 목록과 vibe model SSOT를 갱신할 때 사용한다.
|
|
4
4
|
argument-hint: "list | refresh"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# /vibe.llm
|
|
9
9
|
|
|
10
|
+
## 완료 기준
|
|
11
|
+
|
|
12
|
+
- [ ] 각 provider의 모델 조회가 성공 또는 명시적 실패로 기록되어 있다.
|
|
13
|
+
- [ ] model SSOT가 조회 결과와 일치한다.
|
|
14
|
+
- [ ] 중복 model ID가 없다.
|
|
15
|
+
- [ ] SSOT 검증 명령이 통과한다.
|
|
16
|
+
|
|
10
17
|
현재 시점 기준으로 각 LLM provider(claude, openai API+oauth, gemini, zai)의
|
|
11
18
|
**사용 가능한 모델을 최신화**하고, vibe 가 쓰는 **모델 SSOT(`~/.vibe/config.json` models)**를 갱신한다.
|
|
12
19
|
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vibe.loop
|
|
3
|
-
description:
|
|
3
|
+
description: 반복 작업을 자율 goal loop로 설계·설치·실행하고 결정론적 gate로 완료를 판정해야 할 때 사용한다.
|
|
4
4
|
argument-hint: "design | install | run | status | list [loop-name]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# /vibe.loop
|
|
9
9
|
|
|
10
|
+
## 완료 기준
|
|
11
|
+
|
|
12
|
+
- [ ] loop 정의에 ANCHOR, ACT, JUDGE, RECORD가 모두 있다.
|
|
13
|
+
- [ ] JUDGE가 exit code, 파일 상태 또는 ledger 값으로 판정된다.
|
|
14
|
+
- [ ] stuck 조건과 max_iterations가 명시되어 있다.
|
|
15
|
+
- [ ] 실행 결과가 pass, stuck, max_iterations 중 하나로 기록된다.
|
|
16
|
+
|
|
10
17
|
**Loop Engineering** — 사람이 프롬프트하는 대신, 에이전트에게 프롬프트하는 루프를 설계한다.
|
|
11
18
|
|
|
12
19
|
> 루프의 완료 판정은 모델의 자기 보고가 아니라 **결정론적 게이트**(run-ledger `verifyPassed`, 테스트 exit code)가 내린다.
|
|
@@ -55,16 +62,7 @@ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index
|
|
|
55
62
|
|
|
56
63
|
## install — 스케줄 연결
|
|
57
64
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
| 환경 | 명령 |
|
|
61
|
-
|------|------|
|
|
62
|
-
| Claude Code (세션 루프) | `/loop <interval> "/vibe.loop run <name>"` |
|
|
63
|
-
| Claude Code (클라우드 루틴) | `/schedule` 로 cron `<schedule>` + 프롬프트 `/vibe.loop run <name>` 등록 |
|
|
64
|
-
| OS cron 폴백 | `<schedule> cd <project> && claude -p "/vibe.loop run <name>" --permission-mode acceptEdits` |
|
|
65
|
-
| Codex | Automations 탭에 `<schedule>` + `$vibe.loop run <name>` 등록 |
|
|
66
|
-
|
|
67
|
-
`trigger: manual` 루프는 install 불필요 — run만 안내한다.
|
|
65
|
+
`install` 호출에서만 `references/install-adapters.md`를 읽어 현재 하네스의 명령을 제시한다. `design`, `run`, `status`, `list` 호출은 읽지 않는다. `trigger: manual` 루프는 install 없이 run만 안내한다.
|
|
68
66
|
|
|
69
67
|
## run — 1회 반복 실행 (핵심)
|
|
70
68
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Loop Install Adapters
|
|
2
|
+
|
|
3
|
+
Load only for `vibe.loop install`. Never register a schedule without the user's decision.
|
|
4
|
+
|
|
5
|
+
| 환경 | 명령 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| Claude Code (세션 루프) | `/loop <interval> "/vibe.loop run <name>"` |
|
|
8
|
+
| Claude Code (클라우드 루틴) | `/schedule`로 cron `<schedule>` + prompt `/vibe.loop run <name>` 등록 |
|
|
9
|
+
| OS cron fallback | `<schedule> cd <project> && claude -p "/vibe.loop run <name>" --permission-mode acceptEdits` |
|
|
10
|
+
| Codex | Automations에 `<schedule>` + `$vibe.loop run <name>` 등록 |
|
|
@@ -10,6 +10,13 @@ user-invocable: true
|
|
|
10
10
|
|
|
11
11
|
# Presentation Builder
|
|
12
12
|
|
|
13
|
+
## 완료 기준
|
|
14
|
+
|
|
15
|
+
- [ ] 요청된 16:9 HTML slide deck이 존재한다.
|
|
16
|
+
- [ ] 모든 slide가 1920×1080 viewport에서 overflow 없이 렌더링된다.
|
|
17
|
+
- [ ] 인용한 사실에 source가 연결되어 있다.
|
|
18
|
+
- [ ] PDF 요청 시 PDF 파일이 생성되어 있다.
|
|
19
|
+
|
|
13
20
|
소스 데이터 → 디자인 시스템 적용 LLM → HTML 슬라이드덱 → 1920×1080 PDF.
|
|
14
21
|
|
|
15
22
|
## 핵심 원칙
|
|
@@ -10,6 +10,13 @@ chain-next: [vibe.create-prd]
|
|
|
10
10
|
|
|
11
11
|
# Prioritization Frameworks Reference
|
|
12
12
|
|
|
13
|
+
## Done Criteria
|
|
14
|
+
|
|
15
|
+
- [ ] 선택한 framework와 선택 근거가 기록되어 있다.
|
|
16
|
+
- [ ] 모든 평가 대상에 framework의 필수 입력값이 있다.
|
|
17
|
+
- [ ] 정의된 산식으로 점수가 계산되어 있다.
|
|
18
|
+
- [ ] 최종 정렬 순서와 동점 처리 기준이 명시되어 있다.
|
|
19
|
+
|
|
13
20
|
> Based on the Product Frameworks Compendium from [Product Compass](https://www.productcompass.pm/p/the-product-frameworks-compendium) by Pawel Huryn (MIT License).
|
|
14
21
|
|
|
15
22
|
A reference guide to help you select and apply the right prioritization framework for your context.
|
|
@@ -1,66 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vibe.priority-todos
|
|
3
|
+
description: Use when TODOs or review findings must be organized by P1/P2/P3; compatibility alias for vibe.review priority-todos mode.
|
|
3
4
|
user-invocable: false
|
|
4
5
|
invocation: [auto]
|
|
5
6
|
tier: standard
|
|
6
|
-
description: "Priority-based TODO management (P1/P2/P3). Auto-activates when managing tasks, reviewing issues, or organizing work by priority."
|
|
7
7
|
triggers: [todo list, task management, P1, P2, P3, priority todos, organize tasks]
|
|
8
8
|
priority: 60
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
## Pre-check (K1)
|
|
14
|
-
|
|
15
|
-
> Do you need structured priority tracking? For 1-2 item task lists, use inline TODOs. This system is for multi-issue tracking across reviews and sessions.
|
|
16
|
-
|
|
17
|
-
## Priority Definitions
|
|
18
|
-
|
|
19
|
-
| Priority | Meaning | Action | Examples |
|
|
20
|
-
|----------|---------|--------|----------|
|
|
21
|
-
| P1 | **Blocks merge** | Fix immediately | Security vulnerability, data loss risk, production incident |
|
|
22
|
-
| P2 | **Should fix** | Fix before PR | Performance issue, missing tests, architecture violation |
|
|
23
|
-
| P3 | **Backlog** | Fix when time permits | Code style, refactoring suggestion, documentation |
|
|
24
|
-
|
|
25
|
-
## Directory Structure
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
.vibe/todos/
|
|
29
|
-
├── P1-security-sql-injection.md
|
|
30
|
-
├── P2-perf-n1-query.md
|
|
31
|
-
├── P3-style-extract-helper.md
|
|
32
|
-
├── index.md # Summary table with counts/status
|
|
33
|
-
└── done/ # Archived completed items
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Workflow
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
vibe.review (skill) → Creates P1/P2/P3 todo files + updates index.md
|
|
40
|
-
↓
|
|
41
|
-
Fix P1 first (blocks merge)
|
|
42
|
-
↓
|
|
43
|
-
Fix P2 before PR (warning only)
|
|
44
|
-
↓
|
|
45
|
-
P3 → backlog (weekly review)
|
|
46
|
-
↓
|
|
47
|
-
Mark done → moves to done/ with date prefix
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Todo File Format
|
|
51
|
-
|
|
52
|
-
Each file follows: `# [P1] Title` → Summary → Priority Justification → Location (file:line) → Suggested Fix → Checklist (fix, test, review, merge).
|
|
53
|
-
|
|
54
|
-
## Rules
|
|
55
|
-
|
|
56
|
-
- P1 exists → merge is **blocked**
|
|
57
|
-
- P2 → warning only, recommended to resolve
|
|
58
|
-
- P3 → no blocking, backlog
|
|
59
|
-
- Weekly cleanup: review and archive completed items
|
|
60
|
-
|
|
61
|
-
## Done Criteria (K4)
|
|
62
|
-
|
|
63
|
-
- [ ] All P1 items resolved before merge
|
|
64
|
-
- [ ] P2 items reviewed and either resolved or documented
|
|
65
|
-
- [ ] index.md reflects current state
|
|
66
|
-
- [ ] Completed items archived to `done/` directory
|
|
11
|
+
Load `vibe.review` in priority-todos mode and preserve all arguments.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: vibe.react-best-practices
|
|
3
3
|
invocation: [auto]
|
|
4
4
|
tier: core
|
|
5
|
-
description: "React/Next.js performance
|
|
5
|
+
description: "Use when implementing or reviewing React/Next.js code where Vercel performance pitfalls, rendering behavior, or bundle efficiency must be checked."
|
|
6
6
|
triggers: [react, next.js, vercel, react performance, re-render, rendering waterfall]
|
|
7
7
|
priority: 60
|
|
8
8
|
---
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vibe.reason
|
|
3
|
-
description:
|
|
3
|
+
description: 복잡한 문제에서 가설·근거·트레이드오프를 구조화해 결론을 내려야 할 때 체계적 reasoning framework를 적용한다.
|
|
4
4
|
argument-hint: "problem description"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# /vibe.reason
|
|
9
9
|
|
|
10
|
+
## 완료 기준
|
|
11
|
+
|
|
12
|
+
- [ ] 문제, 제약, 판단 기준이 명시되어 있다.
|
|
13
|
+
- [ ] 각 핵심 주장에 근거 또는 명시된 가정이 연결되어 있다.
|
|
14
|
+
- [ ] 검토한 대안과 탈락 이유가 기록되어 있다.
|
|
15
|
+
- [ ] 결론이 판단 기준에 따라 재현 가능하게 도출되어 있다.
|
|
16
|
+
|
|
10
17
|
Apply 9-step reasoning framework to complex problems.
|
|
11
18
|
|
|
12
19
|
## Usage
|
|
@@ -15,7 +22,7 @@ Apply 9-step reasoning framework to complex problems.
|
|
|
15
22
|
/vibe.reason "problem description"
|
|
16
23
|
```
|
|
17
24
|
|
|
18
|
-
> **⏱️ Timer**:
|
|
25
|
+
> **⏱️ Timer**: Query the system clock at START and record the result as `{start_time}`.
|
|
19
26
|
|
|
20
27
|
## When to Use
|
|
21
28
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vibe.regress
|
|
3
|
-
description:
|
|
3
|
+
description: Use when a reproduced bug must be registered, turned into a preventive test, or clustered into a recurring root-cause pattern.
|
|
4
4
|
argument-hint: "register | generate | list | import | cluster [args]"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
@@ -48,31 +48,8 @@ The `regress` skill performs registration, generation, and clustering.
|
|
|
48
48
|
|
|
49
49
|
## Storage Format
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
slug: login-jwt-expiry-off-by-one
|
|
54
|
-
symptom: "JWT expiry cuts off one second early"
|
|
55
|
-
root-cause-tag: timezone
|
|
56
|
-
fix-commit: abc1234
|
|
57
|
-
test-path: src/auth/__tests__/login.regression.test.ts
|
|
58
|
-
status: open | test-generated | resolved
|
|
59
|
-
registered: 2026-04-14
|
|
60
|
-
feature: login
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## Reproduction
|
|
64
|
-
1. ...
|
|
65
|
-
|
|
66
|
-
## Root cause
|
|
67
|
-
...
|
|
68
|
-
|
|
69
|
-
## Fix
|
|
70
|
-
...
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
ARGUMENTS: $ARGUMENTS
|
|
51
|
+
회귀 항목의 저장 위치와 frontmatter 스키마는 아래 **Storage Contract** 절이 SSOT다.
|
|
52
|
+
`root-cause-tag` 허용값 목록도 그쪽에만 둔다 — 두 곳에 두면 한쪽이 조용히 낡는다.
|
|
76
53
|
|
|
77
54
|
## Bundled implementation
|
|
78
55
|
|
|
@@ -142,7 +119,7 @@ Clustering depends on this, so use **only the predefined set**:
|
|
|
142
119
|
Most calls are automatic; manual use is rare (bugs found outside `/vibe.verify`, or production incidents).
|
|
143
120
|
|
|
144
121
|
**Steps**:
|
|
145
|
-
1.
|
|
122
|
+
1. Query the system clock for today's date
|
|
146
123
|
2. `git log -1 --format=%H` for current commit hash (fix-commit candidate)
|
|
147
124
|
3. Conversation extracts:
|
|
148
125
|
- Reproduction steps (Given/When/Then)
|
|
@@ -163,7 +140,8 @@ Most calls are automatic; manual use is rare (bugs found outside `/vibe.verify`,
|
|
|
163
140
|
- Sibling `__tests__/` next to the implementation file, OR
|
|
164
141
|
- The project's existing test dir (vitest config `test.include`)
|
|
165
142
|
4. File name: `<original-file>.regression.test.ts`
|
|
166
|
-
5. Body: render `templates/test-
|
|
143
|
+
5. Body: render `templates/test-template.md`; set `{{TEST_RUNNER_IMPORT}}` to the Vitest import below or an empty string for Jest globals:
|
|
144
|
+
- Vitest: `import { describe, it, expect{{EXTRA_IMPORTS}} } from 'vitest';`
|
|
167
145
|
6. Update bug frontmatter: `test-path`, `status: test-generated`
|
|
168
146
|
7. **Run the test immediately** — should fail (if not yet fixed) or pass (if fixed). Record outcome in frontmatter.
|
|
169
147
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vibe.review
|
|
3
|
-
description:
|
|
3
|
+
description: Use when changed code or a SPEC needs a pre-merge review for defects, security risks, boundary mismatches, and zero remaining P1 findings.
|
|
4
4
|
argument-hint: "PR number, branch name, or file path"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
@@ -18,9 +18,10 @@ user-invocable: true
|
|
|
18
18
|
/vibe.review src/api/ # Review specific path
|
|
19
19
|
/vibe.review --race # Multi-LLM race mode (GPT + Antigravity)
|
|
20
20
|
/vibe.review --race security # Race mode for specific review type
|
|
21
|
+
/vibe.review priority-todos # Organize findings/tasks as P1/P2/P3 TODOs
|
|
21
22
|
```
|
|
22
23
|
|
|
23
|
-
> **⏱️ Timer**:
|
|
24
|
+
> **⏱️ Timer**: Query the system clock at START and record the result as `{start_time}`.
|
|
24
25
|
|
|
25
26
|
## Codex Plugin Integration
|
|
26
27
|
|
|
@@ -30,7 +31,9 @@ user-invocable: true
|
|
|
30
31
|
> CODEX_AVAILABLE=$(node "{{VIBE_PATH}}/hooks/scripts/codex-detect.js" 2>/dev/null || echo "unavailable")
|
|
31
32
|
> ```
|
|
32
33
|
>
|
|
33
|
-
> `available`이면
|
|
34
|
+
> `available`이면 Codex 플러그인의 review/rescue 명령을 사용하고, `unavailable`이면 GPT+Antigravity Race 모드로 동작한다.
|
|
35
|
+
>
|
|
36
|
+
> ⚠️ **명령 이름을 가정하지 않는다.** 과거 본문은 `/codex:review`·`/codex:rescue` 를 고정 호출했으나, 이는 특정 플러그인 설치본에만 존재하는 표면이다. 실제 사용 가능한 명령을 확인한 뒤 쓰고, 없으면 Race 모드로 폴백한다 — 존재하지 않는 슬래시 명령을 실행하려 시도하지 않는다.
|
|
34
37
|
|
|
35
38
|
## Race Mode (v2.6.9)
|
|
36
39
|
|
|
@@ -40,9 +43,11 @@ user-invocable: true
|
|
|
40
43
|
|
|
41
44
|
## File Reading Policy (Mandatory)
|
|
42
45
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
+
> 규칙은 **전체 읽기**이지 특정 도구 이름이 아니다. 하네스가 제공하는 파일 읽기 수단을 쓴다 — Claude Code 는 `Read` 도구, Codex 는 셸(`cat`/`sed -n`) 등. 도구 이름이 없다고 규칙을 건너뛰지 않는다.
|
|
47
|
+
|
|
48
|
+
- **소스코드 파일**: 리뷰 대상 파일은 전체를 읽은 후 리뷰한다 (검색 결과만 훑어보고 판단 금지)
|
|
49
|
+
- **검색 도구 사용 제한**: grep/ripgrep 류는 **파일 위치 탐색**에만 쓴다. 내용 파악과 리뷰는 전체 읽기로 한다
|
|
50
|
+
- **에이전트 실행 시**: 프롬프트에 "대상 파일을 전체 읽은 후 분석하라"를 포함한다
|
|
46
51
|
- **부분 읽기 금지**: Grep 결과의 주변 몇 줄만 보고 판단하지 말 것. 전체 맥락을 파악해야 정확한 리뷰 가능
|
|
47
52
|
|
|
48
53
|
## Priority System
|
|
@@ -81,7 +86,7 @@ user-invocable: true
|
|
|
81
86
|
- "All items must be verified" → Only P1 is mandatory, P2/P3 are best-effort
|
|
82
87
|
- "Found one more issue" (repeated) → Only report P1s not mentioned in previous review
|
|
83
88
|
- Forcing code changes for P3 issues → P3 goes to TODO files only, never force code changes
|
|
84
|
-
- Infinite retries on auto-fix failure →
|
|
89
|
+
- Infinite retries on auto-fix failure → **escalation ladder**: 최초 시도 → 재시도 1회 → (Codex 플러그인 있으면) Codex Rescue 1회 → TODO. 같은 방식으로 계속 재시도하지 않는다
|
|
85
90
|
|
|
86
91
|
## Process
|
|
87
92
|
|
|
@@ -113,16 +118,25 @@ Detect project tech stack FIRST before launching reviewers.
|
|
|
113
118
|
| demo / prototype | >5 또는 prototype | correctness + security + data-integrity **3종** |
|
|
114
119
|
| production | 무관 | 아래 Core Reviewers 전체 (기존 기본 동작 — 불변) |
|
|
115
120
|
|
|
116
|
-
**Spawn
|
|
121
|
+
**Spawn one reviewer per focus, as concurrently as the harness allows** — a `code-reviewer` instance per focus plus `security-reviewer`, each scoped to the changed files.
|
|
122
|
+
|
|
123
|
+
호출 계약(하네스 무관): "에이전트 `{agent}` 를 인자 `Review {FILES} — focus: {focus}` 로 실행한다"
|
|
117
124
|
|
|
118
125
|
```
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
126
|
+
run agent code-reviewer args: "Review {FILES} — focus: correctness"
|
|
127
|
+
run agent code-reviewer args: "Review {FILES} — focus: data-integrity"
|
|
128
|
+
run agent code-reviewer args: "Review {FILES} — focus: performance"
|
|
129
|
+
run agent code-reviewer args: "Review {FILES} — focus: architecture"
|
|
130
|
+
run agent security-reviewer args: "Review {FILES} for vulnerabilities"
|
|
124
131
|
```
|
|
125
132
|
|
|
133
|
+
| 하네스 | 실행 방식 |
|
|
134
|
+
|---|---|
|
|
135
|
+
| Claude Code | 네이티브 서브에이전트를 **한 메시지에 모두** 스폰 (동시 실행) |
|
|
136
|
+
| Codex | 동시 슬롯 한도 내에서 스폰하고, 남는 focus 는 **순차 실행**한다 |
|
|
137
|
+
|
|
138
|
+
> **동시 슬롯이 focus 수보다 적으면 focus 를 버리지 말고 순차로 돌린다.** 커버리지가 동시성보다 우선이다 — 리뷰 축을 조용히 빠뜨리면 P1 을 놓친다. 스킵한 focus 가 있으면 최종 보고에 명시한다.
|
|
139
|
+
|
|
126
140
|
Stack-specific focus (`idioms`) is added when the diff touches that stack's files. Collect all results, then dedupe/merge findings before Phase 3.
|
|
127
141
|
|
|
128
142
|
**Core Reviewers (Always Run — parallel `code-reviewer` instances, one per focus, plus `security-reviewer`):**
|
|
@@ -142,45 +156,13 @@ Stack-specific focus (`idioms`) is added when the diff touches that stack's file
|
|
|
142
156
|
|-------|-----------|
|
|
143
157
|
| code-reviewer (focus: idioms) | Language/framework files in diff (.py / .ts / .tsx / Gemfile rails / package.json react) — prompt states the detected stack |
|
|
144
158
|
|
|
145
|
-
### Phase 2.5: UI/UX Review Agents (
|
|
159
|
+
### Phase 2.5: UI/UX Review Agents (조건부)
|
|
146
160
|
|
|
147
161
|
> **활성화 조건**: 변경된 파일 중 UI 파일 존재 (`.tsx`, `.jsx`, `.vue`, `.svelte`, `.html`, `.css`, `.scss`)
|
|
148
|
-
> **비활성화**: `.vibe/config.json
|
|
149
|
-
|
|
150
|
-
**기존 Phase 2 리뷰 에이전트와 병렬 실행 — `design-reviewer` 인스턴스 3개 (관점별):**
|
|
151
|
-
|
|
152
|
-
| Agent (관점) | Role | Output |
|
|
153
|
-
|-------|------|--------|
|
|
154
|
-
| ⑥ design-reviewer (UX 준수) | UX 가이드라인 준수 검증 | P1/P2/P3 findings |
|
|
155
|
-
| ⑦ design-reviewer (접근성) | WCAG 2.1 AA 접근성 감사 | P1/P2/P3 findings |
|
|
156
|
-
| ⑧ design-reviewer (안티패턴) | UI 안티패턴 + 디자인 시스템 일관성 | P1/P2/P3 findings |
|
|
157
|
-
|
|
158
|
-
**실행 방법 — 기존 Phase 2 에이전트와 병렬 실행:**
|
|
159
|
-
|
|
160
|
-
```text
|
|
161
|
-
# ⑥ UX 준수 검증 (Haiku)
|
|
162
|
-
Task(subagent_type="design-reviewer",
|
|
163
|
-
prompt="Review UI files for UX guideline compliance: {changed_ui_files}. Use core_ui_search against ux-guidelines and web-interface domains.")
|
|
164
|
-
|
|
165
|
-
# ⑦ 접근성 감사 (Haiku)
|
|
166
|
-
Task(subagent_type="design-reviewer",
|
|
167
|
-
prompt="Audit UI files for WCAG 2.1 AA compliance: {changed_ui_files}.")
|
|
168
|
-
|
|
169
|
-
# ⑧ 안티패턴 검출 (Haiku)
|
|
170
|
-
Task(subagent_type="design-reviewer",
|
|
171
|
-
prompt="Detect UI anti-patterns in: {changed_ui_files}. Check against MASTER.md if exists at .vibe/design-system/{project}/MASTER.md.")
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
#### Visual P1 Baseline
|
|
162
|
+
> **비활성화**: `.vibe/config.json` 에 `"uiUxAnalysis": false`
|
|
175
163
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
- v1 범위: hex 컬러 드리프트만 P1 후보. spacing / font 드리프트는 Phase 2+ 에서 추가.
|
|
179
|
-
- 안티패턴 검출(⑧) 은 `DESIGN.md §7` 의 "DON'T" 항목을 우선 규칙으로 사용한다.
|
|
180
|
-
|
|
181
|
-
**findings 통합**: ⑥⑦⑧ findings를 기존 findings[]와 병합 → P1/P2/P3 통합 정렬
|
|
182
|
-
|
|
183
|
-
**⑦ Critical finding 에스컬레이션**: design-reviewer(접근성)의 P1 finding은 Review Debate(Phase 4.5)에 자동 포함
|
|
164
|
+
조건에 걸리면 `references/ui-ux-review.md` 를 읽어 `design-reviewer` 3개 관점을 Phase 2 와 병렬 실행한다.
|
|
165
|
+
UI 파일이 없으면 이 Phase 전체를 건너뛴다 — reference 도 읽지 않는다.
|
|
184
166
|
|
|
185
167
|
### Phase 2.7: Boundary Mismatch Detection (Integration Coherence)
|
|
186
168
|
|
|
@@ -241,7 +223,7 @@ After agent results:
|
|
|
241
223
|
|
|
242
224
|
### Auto-Fix 실패 시 Codex Rescue (Codex 플러그인 활성화 시)
|
|
243
225
|
|
|
244
|
-
P1/P2 auto-fix
|
|
226
|
+
P1/P2 auto-fix 가 **재시도 1회까지 실패**하면(= 시도 2회), TODO 로 내리기 전에 Codex 에 **1회** 위임한다 — escalation ladder SSOT: 위 Anti-Patterns:
|
|
245
227
|
|
|
246
228
|
```
|
|
247
229
|
/codex:rescue "Fix {priority} issue: {issue-description}. File: {file-path}"
|
|
@@ -266,8 +248,8 @@ Save **remaining** findings to `.vibe/todos/`:
|
|
|
266
248
|
> Read `references/output-template.md` for the full Fix Workflow prompt template.
|
|
267
249
|
|
|
268
250
|
- Wait for user's choice before proceeding
|
|
269
|
-
- If user chooses VIBE → wait for
|
|
270
|
-
- If user chooses Plan Mode →
|
|
251
|
+
- If user chooses VIBE → wait for the user to invoke the `vibe.spec` skill
|
|
252
|
+
- If user chooses Plan Mode → enter the harness's plan/read-only mode if it has one (Claude Code: plan mode). **하네스에 등가 모드가 없으면**(Codex 등) 모드 전환 대신 "계획만 제시하고 사용자 승인 전까지 파일을 수정하지 않는다"를 그대로 지킨다 — 없는 모드를 호출하려 시도하지 않는다.
|
|
271
253
|
|
|
272
254
|
## Core Tools (Code Analysis)
|
|
273
255
|
|
|
@@ -297,6 +279,34 @@ Before completing review, check P1-critical items (P2/P3 are best-effort). Score
|
|
|
297
279
|
|
|
298
280
|
> Read `references/quality-gate.md` for the full weighted checklist, score grades, merge decision matrix, auto-fix capability matrix, forbidden-patterns table, and output requirements.
|
|
299
281
|
|
|
282
|
+
## Priority TODO Mode
|
|
283
|
+
|
|
284
|
+
For `priority-todos` mode, or when review findings must be persisted as a
|
|
285
|
+
P1/P2/P3 board, read `references/priority-todos.md`. Preserve its priority
|
|
286
|
+
definitions, index/update behavior, output paths, and completion criteria.
|
|
287
|
+
|
|
300
288
|
---
|
|
301
289
|
|
|
302
290
|
ARGUMENTS: $ARGUMENTS
|
|
291
|
+
|
|
292
|
+
## 리뷰어 스케일링
|
|
293
|
+
|
|
294
|
+
Stakes SSOT는 `vibe/rules/loop-contract.md` Stakes 표다.
|
|
295
|
+
|
|
296
|
+
| stakes | 변경 파일 | reviewer set |
|
|
297
|
+
|---|---|---|
|
|
298
|
+
| demo | ≤5 | correctness + security 2종 |
|
|
299
|
+
| demo / prototype | >5 또는 prototype | correctness + security + data-integrity 3종 |
|
|
300
|
+
| production | any | Core Reviewers 전체 |
|
|
301
|
+
|
|
302
|
+
Production Core Reviewers는 `security-reviewer`와 `code-reviewer`의 다음 focus를 모두 유지한다: `focus: correctness`, `focus: data-integrity`, `focus: performance`, `focus: architecture`, `focus: complexity`, `focus: git-history`, `focus: test-coverage`.
|
|
303
|
+
|
|
304
|
+
## Done Criteria
|
|
305
|
+
|
|
306
|
+
- [ ] Every finding has P1/P2/P3 severity and `file:line` evidence.
|
|
307
|
+
- [ ] Duplicate findings are merged into one canonical item.
|
|
308
|
+
- [ ] Relevant tests and static checks pass for modified files.
|
|
309
|
+
- [ ] A MERGE READY result has zero P1 findings.
|
|
310
|
+
- [ ] Manual items are persisted in the specified TODO artifact.
|
|
311
|
+
|
|
312
|
+
ARGUMENTS: $ARGUMENTS
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: priority-todos-reference
|
|
3
|
+
user-invocable: false
|
|
4
|
+
invocation: [auto]
|
|
5
|
+
tier: standard
|
|
6
|
+
description: "Priority-based TODO management (P1/P2/P3). Auto-activates when managing tasks, reviewing issues, or organizing work by priority."
|
|
7
|
+
triggers: [todo list, task management, P1, P2, P3, priority todos, organize tasks]
|
|
8
|
+
priority: 60
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Priority-Based Todo Management
|
|
12
|
+
|
|
13
|
+
## Pre-check (K1)
|
|
14
|
+
|
|
15
|
+
> Do you need structured priority tracking? For 1-2 item task lists, use inline TODOs. This system is for multi-issue tracking across reviews and sessions.
|
|
16
|
+
|
|
17
|
+
## Priority Definitions
|
|
18
|
+
|
|
19
|
+
| Priority | Meaning | Action | Examples |
|
|
20
|
+
|----------|---------|--------|----------|
|
|
21
|
+
| P1 | **Blocks merge** | Fix immediately | Security vulnerability, data loss risk, production incident |
|
|
22
|
+
| P2 | **Should fix** | Fix before PR | Performance issue, missing tests, architecture violation |
|
|
23
|
+
| P3 | **Backlog** | Fix when time permits | Code style, refactoring suggestion, documentation |
|
|
24
|
+
|
|
25
|
+
## Directory Structure
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
.vibe/todos/
|
|
29
|
+
├── P1-security-sql-injection.md
|
|
30
|
+
├── P2-perf-n1-query.md
|
|
31
|
+
├── P3-style-extract-helper.md
|
|
32
|
+
├── index.md # Summary table with counts/status
|
|
33
|
+
└── done/ # Archived completed items
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Workflow
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
vibe.review (skill) → Creates P1/P2/P3 todo files + updates index.md
|
|
40
|
+
↓
|
|
41
|
+
Fix P1 first (blocks merge)
|
|
42
|
+
↓
|
|
43
|
+
Fix P2 before PR (warning only)
|
|
44
|
+
↓
|
|
45
|
+
P3 → backlog (weekly review)
|
|
46
|
+
↓
|
|
47
|
+
Mark done → moves to done/ with date prefix
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Todo File Format
|
|
51
|
+
|
|
52
|
+
Each file follows: `# [P1] Title` → Summary → Priority Justification → Location (file:line) → Suggested Fix → Checklist (fix, test, review, merge).
|
|
53
|
+
|
|
54
|
+
## Rules
|
|
55
|
+
|
|
56
|
+
- P1 exists → merge is **blocked**
|
|
57
|
+
- P2 → warning only, recommended to resolve
|
|
58
|
+
- P3 → no blocking, backlog
|
|
59
|
+
- Weekly cleanup: review and archive completed items
|
|
60
|
+
|
|
61
|
+
## Done Criteria (K4)
|
|
62
|
+
|
|
63
|
+
- [ ] All P1 items resolved before merge
|
|
64
|
+
- [ ] P2 items reviewed and either resolved or documented
|
|
65
|
+
- [ ] index.md reflects current state
|
|
66
|
+
- [ ] Completed items archived to `done/` directory
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Phase 2.5 — UI/UX Review Agents
|
|
2
|
+
|
|
3
|
+
> vibe.review SKILL.md Phase 2.5 에서 **변경 파일에 UI 파일이 있을 때만** 로드한다.
|
|
4
|
+
> UI 변경이 없는 리뷰(백엔드·CLI·설정만 변경)는 이 파일을 읽지 않는다.
|
|
5
|
+
|
|
6
|
+
### Phase 2.5: UI/UX Review Agents (Auto-triggered)
|
|
7
|
+
|
|
8
|
+
> **활성화 조건**: 변경된 파일 중 UI 파일 존재 (`.tsx`, `.jsx`, `.vue`, `.svelte`, `.html`, `.css`, `.scss`)
|
|
9
|
+
> **비활성화**: `.vibe/config.json`에 `"uiUxAnalysis": false` 설정
|
|
10
|
+
|
|
11
|
+
**기존 Phase 2 리뷰 에이전트와 병렬 실행 — `design-reviewer` 인스턴스 3개 (관점별):**
|
|
12
|
+
|
|
13
|
+
| Agent (관점) | Role | Output |
|
|
14
|
+
|-------|------|--------|
|
|
15
|
+
| ⑥ design-reviewer (UX 준수) | UX 가이드라인 준수 검증 | P1/P2/P3 findings |
|
|
16
|
+
| ⑦ design-reviewer (접근성) | WCAG 2.1 AA 접근성 감사 | P1/P2/P3 findings |
|
|
17
|
+
| ⑧ design-reviewer (안티패턴) | UI 안티패턴 + 디자인 시스템 일관성 | P1/P2/P3 findings |
|
|
18
|
+
|
|
19
|
+
**실행 방법 — 기존 Phase 2 에이전트와 병렬 실행:**
|
|
20
|
+
|
|
21
|
+
Use the harness's native collaboration capability for these independent
|
|
22
|
+
`design-reviewer` workers. Claude Code maps them to Task/Agent; Codex maps them
|
|
23
|
+
to native collaboration. Inherit the session model by default and run them
|
|
24
|
+
concurrently when capacity permits:
|
|
25
|
+
|
|
26
|
+
- UX compliance: review `{changed_ui_files}` against UX and web-interface guidance.
|
|
27
|
+
- Accessibility: audit `{changed_ui_files}` for WCAG 2.1 AA compliance.
|
|
28
|
+
- Anti-patterns: inspect `{changed_ui_files}` and compare with `.vibe/design-system/{project}/MASTER.md` when present.
|
|
29
|
+
|
|
30
|
+
#### Visual P1 Baseline
|
|
31
|
+
|
|
32
|
+
- 프로젝트 루트에 `DESIGN.md` 가 존재하면 **시각 P1 의 1 차 baseline** 으로 사용한다 (§2 Color Palette / §7 Do's & Don'ts).
|
|
33
|
+
- `DESIGN.md` 부재 시 기존 폴백을 사용 (WCAG 2.1 AA + `MASTER.md` + design-review(audit 모드) 기본 5 차원).
|
|
34
|
+
- v1 범위: hex 컬러 드리프트만 P1 후보. spacing / font 드리프트는 Phase 2+ 에서 추가.
|
|
35
|
+
- 안티패턴 검출(⑧) 은 `DESIGN.md §7` 의 "DON'T" 항목을 우선 규칙으로 사용한다.
|
|
36
|
+
|
|
37
|
+
**findings 통합**: ⑥⑦⑧ findings를 기존 findings[]와 병합 → P1/P2/P3 통합 정렬
|
|
38
|
+
|
|
39
|
+
**⑦ Critical finding 에스컬레이션**: design-reviewer(접근성)의 P1 finding은 Review Debate(Phase 4.5)에 자동 포함
|