@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.
Files changed (160) hide show
  1. package/CLAUDE.md +5 -2
  2. package/README.en.md +1 -1
  3. package/README.md +1 -1
  4. package/agents/build-error-resolver.md +1 -1
  5. package/agents/code-reviewer.md +1 -1
  6. package/agents/e2e-tester.md +1 -1
  7. package/agents/event/event-ops.md +1 -1
  8. package/agents/event/event-planner.md +1 -1
  9. package/agents/implementer.md +1 -1
  10. package/agents/security-reviewer.md +1 -1
  11. package/agents/tester.md +1 -1
  12. package/agents/ui/design-reviewer.md +1 -1
  13. package/agents/ui/design-system-gen.md +1 -1
  14. package/dist/cli/commands/info.d.ts +9 -0
  15. package/dist/cli/commands/info.d.ts.map +1 -1
  16. package/dist/cli/commands/info.js +32 -0
  17. package/dist/cli/commands/info.js.map +1 -1
  18. package/dist/cli/commands/info.test.js +34 -1
  19. package/dist/cli/commands/info.test.js.map +1 -1
  20. package/dist/cli/commands/upgrade.d.ts +18 -0
  21. package/dist/cli/commands/upgrade.d.ts.map +1 -1
  22. package/dist/cli/commands/upgrade.js +60 -2
  23. package/dist/cli/commands/upgrade.js.map +1 -1
  24. package/dist/cli/commands/upgrade.test.js +51 -1
  25. package/dist/cli/commands/upgrade.test.js.map +1 -1
  26. package/dist/cli/generate-release-notes.js +8 -6
  27. package/dist/cli/generate-release-notes.js.map +1 -1
  28. package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
  29. package/dist/cli/postinstall/claude-agents.js +3 -1
  30. package/dist/cli/postinstall/claude-agents.js.map +1 -1
  31. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  32. package/dist/cli/postinstall/constants.js +27 -21
  33. package/dist/cli/postinstall/constants.js.map +1 -1
  34. package/dist/tests/curated-release-notes.test.js +55 -1
  35. package/dist/tests/curated-release-notes.test.js.map +1 -1
  36. package/dist/tools/release/releaseNotes.d.ts +22 -0
  37. package/dist/tools/release/releaseNotes.d.ts.map +1 -1
  38. package/dist/tools/release/releaseNotes.js +45 -0
  39. package/dist/tools/release/releaseNotes.js.map +1 -1
  40. package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -3
  41. package/hooks/scripts/__tests__/code-check-detectors.test.js +58 -0
  42. package/hooks/scripts/code-check.js +7 -0
  43. package/package.json +2 -2
  44. package/skills/vibe/SKILL.md +27 -86
  45. package/skills/vibe/references/routing-examples.md +85 -0
  46. package/skills/vibe.agents-md/SKILL.md +12 -10
  47. package/skills/vibe.analyze/SKILL.md +22 -211
  48. package/skills/vibe.analyze/references/mode1-feature.md +81 -0
  49. package/skills/vibe.analyze/references/mode2-document.md +50 -0
  50. package/skills/vibe.analyze/references/mode3-website.md +47 -0
  51. package/skills/vibe.analyze/references/mode4-quality.md +35 -0
  52. package/skills/vibe.analyze/references/output-templates.md +2 -2
  53. package/skills/vibe.brand-assets/SKILL.md +2 -2
  54. package/skills/vibe.brand-assets/references/mobile-assets.md +6 -0
  55. package/skills/vibe.capability-loop/SKILL.md +14 -80
  56. package/skills/vibe.capability-loop/references/escalate.md +86 -0
  57. package/skills/vibe.chub-usage/SKILL.md +3 -132
  58. package/skills/vibe.clone/SKILL.md +43 -358
  59. package/skills/vibe.clone/references/phase-commands.md +118 -0
  60. package/skills/vibe.clone/references/setup-and-layout.md +34 -0
  61. package/skills/vibe.clone/references/verification-loops.md +64 -0
  62. package/skills/vibe.commit-push-pr/SKILL.md +10 -4
  63. package/skills/vibe.context7-usage/SKILL.md +3 -99
  64. package/skills/vibe.continue/SKILL.md +17 -7
  65. package/skills/{vibe.handoff → vibe.continue}/agents/context-summarizer.md +1 -1
  66. package/skills/{vibe.handoff → vibe.continue}/agents/document-writer.md +1 -1
  67. package/skills/{vibe.handoff → vibe.continue}/agents/state-collector.md +1 -1
  68. package/skills/{vibe.handoff → vibe.continue}/agents/verifier.md +1 -1
  69. package/skills/{vibe.handoff/rubrics/completeness.md → vibe.continue/references/handoff-completeness.md} +1 -1
  70. package/skills/{vibe.handoff/templates → vibe.continue/references}/handoff.md +37 -2
  71. package/skills/vibe.contract/SKILL.md +4 -27
  72. package/skills/vibe.create-prd/SKILL.md +8 -1
  73. package/skills/vibe.design/SKILL.md +18 -5
  74. package/skills/vibe.design/references/design-context.md +184 -0
  75. package/skills/vibe.design-refine/SKILL.md +7 -0
  76. package/skills/vibe.design-review/SKILL.md +7 -0
  77. package/skills/vibe.design-teach/SKILL.md +2 -175
  78. package/skills/vibe.devlog/SKILL.md +14 -11
  79. package/skills/vibe.devlog/references/auto-push.md +10 -0
  80. package/skills/vibe.docs/SKILL.md +27 -198
  81. package/skills/vibe.docs/references/agent.md +55 -0
  82. package/skills/vibe.docs/references/arch.md +28 -0
  83. package/skills/vibe.docs/references/codemaps.md +17 -0
  84. package/skills/vibe.docs/references/diagram.md +24 -0
  85. package/skills/vibe.docs/references/guide.md +23 -0
  86. package/skills/vibe.docs/references/readme.md +45 -0
  87. package/skills/vibe.docs/references/release.md +31 -0
  88. package/skills/vibe.documentation-provider/SKILL.md +22 -0
  89. package/skills/vibe.documentation-provider/references/chub.md +141 -0
  90. package/skills/vibe.documentation-provider/references/context7.md +107 -0
  91. package/skills/vibe.educational-content/SKILL.md +7 -0
  92. package/skills/vibe.event/SKILL.md +47 -146
  93. package/skills/vibe.event/references/comms.md +173 -0
  94. package/skills/vibe.event/references/operations.md +208 -0
  95. package/skills/vibe.event/references/orchestration-legacy.md +97 -0
  96. package/skills/vibe.event/references/planning.md +145 -0
  97. package/skills/vibe.event-comms/SKILL.md +3 -165
  98. package/skills/vibe.event-ops/SKILL.md +3 -200
  99. package/skills/vibe.event-planning/SKILL.md +3 -137
  100. package/skills/vibe.figma/SKILL.md +26 -692
  101. package/skills/vibe.figma/references/branch1-read-convention.md +82 -0
  102. package/skills/vibe.figma/references/branch2-read-standalone.md +69 -0
  103. package/skills/vibe.figma/references/branch3-write.md +122 -0
  104. package/skills/vibe.figma/references/core-implementation.md +453 -0
  105. package/skills/vibe.git-worktree/SKILL.md +2 -6
  106. package/skills/vibe.git-worktree/references/troubleshooting.md +9 -0
  107. package/skills/vibe.handoff/SKILL.md +2 -103
  108. package/skills/vibe.harness/SKILL.md +17 -12
  109. package/skills/vibe.image/SKILL.md +8 -1
  110. package/skills/vibe.llm/SKILL.md +8 -1
  111. package/skills/vibe.loop/SKILL.md +9 -11
  112. package/skills/vibe.loop/references/install-adapters.md +10 -0
  113. package/skills/vibe.presentation/SKILL.md +7 -0
  114. package/skills/vibe.prioritization/SKILL.md +7 -0
  115. package/skills/vibe.priority-todos/SKILL.md +2 -57
  116. package/skills/vibe.react-best-practices/SKILL.md +1 -1
  117. package/skills/vibe.reason/SKILL.md +9 -2
  118. package/skills/vibe.regress/SKILL.md +6 -28
  119. package/skills/vibe.regress/templates/{test-jest.md → test-template.md} +1 -0
  120. package/skills/vibe.review/SKILL.md +62 -52
  121. package/skills/vibe.review/references/priority-todos.md +66 -0
  122. package/skills/vibe.review/references/ui-ux-review.md +39 -0
  123. package/skills/vibe.run/SKILL.md +63 -660
  124. package/skills/vibe.run/references/arch-guard.md +178 -0
  125. package/skills/vibe.run/references/e2e-and-autofix.md +40 -0
  126. package/skills/vibe.run/references/exec-plan.md +145 -0
  127. package/skills/vibe.run/references/guidelines-and-tools.md +84 -0
  128. package/skills/vibe.run/references/parallel-agents.md +44 -60
  129. package/skills/vibe.run/references/process-steps.md +179 -0
  130. package/skills/vibe.run/references/restraint.md +66 -0
  131. package/skills/vibe.run/references/ultrawork-mode.md +1 -1
  132. package/skills/vibe.scaffold/SKILL.md +9 -13
  133. package/skills/vibe.scaffold/references/clean-architecture.md +17 -0
  134. package/skills/vibe.spec/SKILL.md +13 -9
  135. package/skills/vibe.spec/references/legacy-artifacts.md +6 -0
  136. package/skills/vibe.test/SKILL.md +93 -70
  137. package/skills/vibe.test/references/report-template.md +101 -0
  138. package/skills/vibe.tool-fallback/SKILL.md +10 -32
  139. package/skills/vibe.tool-fallback/references/external-llm.md +10 -0
  140. package/skills/vibe.tool-fallback/references/file-lookup.md +9 -0
  141. package/skills/vibe.tool-fallback/references/web-search.md +11 -0
  142. package/skills/vibe.trace/SKILL.md +2 -264
  143. package/skills/vibe.ui-ux-pro-max/SKILL.md +1 -3
  144. package/skills/vibe.ui-ux-pro-max/references/charts-and-data.md +7 -0
  145. package/skills/vibe.user-personas/SKILL.md +8 -1
  146. package/skills/vibe.verify/SKILL.md +30 -4
  147. package/skills/vibe.verify/references/trace-mode.md +271 -0
  148. package/vibe/rules/principles/dual-harness-doctrine.md +10 -9
  149. package/skills/vibe.regress/templates/test-vitest.md +0 -30
  150. /package/skills/{vibe.design-teach/rubrics → vibe.design/references}/brand-personality.md +0 -0
  151. /package/skills/{vibe.design-teach → vibe.design}/templates/design-context.json +0 -0
  152. /package/skills/{vibe.context7-usage/rubrics/when-to-use.md → vibe.documentation-provider/references/context7-when-to-use.md} +0 -0
  153. /package/skills/{vibe.event-ops/rubrics → vibe.event/references}/contingency.md +0 -0
  154. /package/skills/{vibe.event-ops/templates/d-day-checklist.md → vibe.event/references/d-day-checklist-template.md} +0 -0
  155. /package/skills/{vibe.event-comms/templates/email-invite.md → vibe.event/references/email-invite-template.md} +0 -0
  156. /package/skills/{vibe.event-planning/templates/event-plan.md → vibe.event/references/event-plan-template.md} +0 -0
  157. /package/skills/{vibe.event-comms/templates/sns-post.md → vibe.event/references/sns-post-template.md} +0 -0
  158. /package/skills/{vibe.event-planning/rubrics → vibe.event/references}/timeline.md +0 -0
  159. /package/skills/{vibe.priority-todos/templates/todo-board.md → vibe.review/references/todo-board-template.md} +0 -0
  160. /package/skills/{vibe.priority-todos/rubrics/prioritization.md → vibe.review/references/todo-prioritization.md} +0 -0
@@ -1,12 +1,19 @@
1
1
  ---
2
2
  name: vibe.llm
3
- description: Refresh available models for claude/openai(api+oauth)/gemini/zai as of now and update the vibe model SSOT
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: Loop engineering design, install, and run autonomous goal loops whose completion is judged by deterministic gates, not self-report
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
- # 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
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 gotchas from Vercel engineering. Non-intuitive pitfalls that LLMs commonly miss."
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: Apply systematic reasoning framework to complex problems
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**: Call `getCurrentTime` tool at the START. Record the result as `{start_time}`.
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: Regression test auto-evolution register bugs, generate preventive tests, cluster patterns
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
- ```markdown
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. `getCurrentTime` for today's date
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-vitest.md` or `templates/test-jest.md`
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
 
@@ -11,6 +11,7 @@
11
11
  * in the source record change.
12
12
  */
13
13
 
14
+ {{TEST_RUNNER_IMPORT}}
14
15
  {{IMPORTS_FROM_SUT}}
15
16
 
16
17
  describe('regression: {{SYMPTOM_SHORT}}', () => {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: vibe.review
3
- description: Multi-agent parallel code review with priority-based findings
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**: Call `getCurrentTime` tool at the START. Record the result as `{start_time}`.
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`이면 `/codex:review`, `/codex:rescue` 자동 호출. `unavailable`이면 기존 GPT+Antigravity Race 모드로 동작.
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
- - **소스코드 파일**: 리뷰 대상 파일은 반드시 `Read` 도구로 전체 파일을 읽은 리뷰할 (Grep으로 훑어보기 금지)
44
- - **Grep 사용 제한**: 파일 위치 탐색(어떤 파일에 있는지 찾기)에만 사용. 파일 내용 파악 및 리뷰에는 반드시 Read 사용
45
- - **에이전트 spawn 시**: 프롬프트에 "대상 파일을 Read 도구로 전체 읽은 후 분석하라"를 반드시 포함할
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 → max 1 retry then move to TODO
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 the reviewers as concurrent native subagents in ONE message** — one `code-reviewer` instance per focus plus `security-reviewer`, each scoped to the changed files:
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
- Task (code-reviewer): "Review [FILES] — focus: correctness" (concurrent)
120
- Task (code-reviewer): "Review [FILES] — focus: data-integrity" (concurrent)
121
- Task (code-reviewer): "Review [FILES] — focus: performance" (concurrent)
122
- Task (code-reviewer): "Review [FILES] — focus: architecture" (concurrent)
123
- Task (security-reviewer): "Review [FILES] for vulnerabilities" (concurrent)
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 (Auto-triggered)
159
+ ### Phase 2.5: UI/UX Review Agents (조건부)
146
160
 
147
161
  > **활성화 조건**: 변경된 파일 중 UI 파일 존재 (`.tsx`, `.jsx`, `.vue`, `.svelte`, `.html`, `.css`, `.scss`)
148
- > **비활성화**: `.vibe/config.json`에 `"uiUxAnalysis": false` 설정
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
- - 프로젝트 루트에 `DESIGN.md` 존재하면 **시각 P1 1 차 baseline** 으로 사용한다 (§2 Color Palette / §7 Do's & Don'ts).
177
- - `DESIGN.md` 부재 기존 폴백을 사용 (WCAG 2.1 AA + `MASTER.md` + design-review(audit 모드) 기본 5 차원).
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 **3실패** 시, Codex에 위임:
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 `/vibe.spec` command
270
- - If user chooses Plan Mode → proceed with EnterPlanMode
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)에 자동 포함