@su-record/vibe 2.9.40 → 2.10.0

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 (126) hide show
  1. package/CLAUDE.md +18 -5
  2. package/README.md +31 -24
  3. package/agents/{teams/figma → figma}/figma-analyst.md +2 -2
  4. package/agents/research/{best-practices-agent.md → best-practices.md} +1 -1
  5. package/agents/research/{codebase-patterns-agent.md → codebase-patterns.md} +1 -1
  6. package/agents/research/{framework-docs-agent.md → framework-docs.md} +1 -1
  7. package/agents/research/{security-advisory-agent.md → security-advisory.md} +1 -1
  8. package/agents/teams/research-team.md +4 -4
  9. package/agents/teams/review-debate-team.md +2 -2
  10. package/agents/teams/security-team.md +4 -4
  11. package/dist/cli/postinstall/claude-agents.d.ts +3 -1
  12. package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
  13. package/dist/cli/postinstall/claude-agents.js +47 -9
  14. package/dist/cli/postinstall/claude-agents.js.map +1 -1
  15. package/dist/cli/postinstall/constants.d.ts +5 -0
  16. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  17. package/dist/cli/postinstall/constants.js +165 -23
  18. package/dist/cli/postinstall/constants.js.map +1 -1
  19. package/dist/cli/postinstall/cursor-skills.js +2 -2
  20. package/dist/cli/postinstall/main.d.ts.map +1 -1
  21. package/dist/cli/postinstall/main.js +19 -10
  22. package/dist/cli/postinstall/main.js.map +1 -1
  23. package/dist/infra/lib/OrchestrateWorkflow.js +1 -1
  24. package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -1
  25. package/dist/infra/lib/telemetry/SkillTelemetry.test.js +4 -4
  26. package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -1
  27. package/dist/infra/orchestrator/parallelResearch.js +4 -4
  28. package/dist/infra/orchestrator/parallelResearch.js.map +1 -1
  29. package/hooks/scripts/clone-extract.js +712 -0
  30. package/hooks/scripts/clone-refine.js +510 -0
  31. package/hooks/scripts/clone-to-scss.js +275 -0
  32. package/hooks/scripts/clone-validate.js +280 -0
  33. package/hooks/scripts/step-counter.js +1 -1
  34. package/package.json +2 -1
  35. package/skills/agents-md/SKILL.md +2 -0
  36. package/skills/arch-guard/SKILL.md +2 -0
  37. package/skills/brand-assets/SKILL.md +1 -0
  38. package/skills/capability-loop/SKILL.md +2 -0
  39. package/skills/characterization-test/SKILL.md +2 -0
  40. package/skills/chub-usage/SKILL.md +1 -0
  41. package/skills/claude-md-guide/SKILL.md +2 -0
  42. package/skills/clone/SKILL.md +361 -0
  43. package/skills/commerce-patterns/SKILL.md +1 -0
  44. package/skills/commit-push-pr/SKILL.md +1 -0
  45. package/skills/context7-usage/SKILL.md +1 -0
  46. package/skills/{vibe-contract → contract}/SKILL.md +7 -8
  47. package/skills/create-prd/SKILL.md +1 -0
  48. package/skills/design-audit/SKILL.md +1 -0
  49. package/skills/design-critique/SKILL.md +1 -0
  50. package/skills/design-distill/SKILL.md +1 -0
  51. package/skills/design-normalize/SKILL.md +1 -0
  52. package/skills/design-polish/SKILL.md +1 -0
  53. package/skills/design-teach/SKILL.md +2 -0
  54. package/skills/devlog/SKILL.md +1 -0
  55. package/skills/{vibe-docs → docs}/SKILL.md +5 -5
  56. package/skills/e2e-commerce/SKILL.md +1 -0
  57. package/skills/event-comms/SKILL.md +1 -0
  58. package/skills/event-ops/SKILL.md +1 -0
  59. package/skills/event-planning/SKILL.md +1 -0
  60. package/skills/exec-plan/SKILL.md +2 -0
  61. package/skills/{vibe-figma → figma}/SKILL.md +4 -3
  62. package/skills/{vibe-figma-convert → figma-convert}/SKILL.md +4 -3
  63. package/skills/{vibe-figma-extract → figma-extract}/SKILL.md +4 -3
  64. package/skills/git-worktree/SKILL.md +1 -0
  65. package/skills/handoff/SKILL.md +2 -0
  66. package/skills/{vibe-interview → interview}/SKILL.md +16 -16
  67. package/skills/parallel-research/SKILL.md +2 -0
  68. package/skills/{vibe-plan → plan}/SKILL.md +9 -9
  69. package/skills/prioritization-frameworks/SKILL.md +1 -0
  70. package/skills/priority-todos/SKILL.md +2 -0
  71. package/skills/{vibe-regress → regress}/SKILL.md +5 -6
  72. package/skills/rob-pike/SKILL.md +2 -0
  73. package/skills/seo-checklist/SKILL.md +1 -0
  74. package/skills/{vibe-spec → spec}/SKILL.md +14 -14
  75. package/skills/{vibe-spec-review → spec-review}/SKILL.md +8 -9
  76. package/skills/systematic-debugging/SKILL.md +2 -0
  77. package/skills/techdebt/SKILL.md +2 -0
  78. package/skills/{vibe-test → test}/SKILL.md +12 -12
  79. package/skills/tool-fallback/SKILL.md +1 -0
  80. package/skills/typescript-advanced-types/SKILL.md +1 -0
  81. package/skills/ui-ux-pro-max/SKILL.md +1 -0
  82. package/skills/user-personas/SKILL.md +1 -0
  83. package/skills/vercel-react-best-practices/SKILL.md +1 -0
  84. package/skills/vibe/SKILL.md +266 -0
  85. package/{commands/vibe.analyze.md → skills/vibe.analyze/SKILL.md} +2 -0
  86. package/skills/vibe.clone/SKILL.md +117 -0
  87. package/{commands/vibe.contract.md → skills/vibe.contract/SKILL.md} +3 -1
  88. package/{commands/vibe.docs.md → skills/vibe.docs/SKILL.md} +3 -1
  89. package/{commands/vibe.event.md → skills/vibe.event/SKILL.md} +2 -0
  90. package/{commands/vibe.figma.md → skills/vibe.figma/SKILL.md} +25 -23
  91. package/{commands/vibe.harness.md → skills/vibe.harness/SKILL.md} +2 -0
  92. package/{commands/vibe.reason.md → skills/vibe.reason/SKILL.md} +2 -0
  93. package/{commands/vibe.regress.md → skills/vibe.regress/SKILL.md} +5 -3
  94. package/{commands/vibe.review.md → skills/vibe.review/SKILL.md} +2 -0
  95. package/{commands/vibe.run.md → skills/vibe.run/SKILL.md} +3 -1
  96. package/{commands/vibe.scaffold.md → skills/vibe.scaffold/SKILL.md} +2 -0
  97. package/{commands/vibe.spec.md → skills/vibe.spec/SKILL.md} +36 -34
  98. package/{commands/vibe.test.md → skills/vibe.test/SKILL.md} +4 -2
  99. package/{commands/vibe.trace.md → skills/vibe.trace/SKILL.md} +7 -0
  100. package/{commands/vibe.utils.md → skills/vibe.utils/SKILL.md} +2 -0
  101. package/{commands/vibe.verify.md → skills/vibe.verify/SKILL.md} +4 -2
  102. package/skills/video-production/SKILL.md +1 -0
  103. /package/agents/{teams/figma → figma}/figma-architect.md +0 -0
  104. /package/agents/{teams/figma → figma}/figma-auditor.md +0 -0
  105. /package/agents/{teams/figma → figma}/figma-builder.md +0 -0
  106. /package/skills/{vibe-docs → docs}/templates/architecture.md +0 -0
  107. /package/skills/{vibe-docs → docs}/templates/behavioral-principles.md +0 -0
  108. /package/skills/{vibe-docs → docs}/templates/readme.md +0 -0
  109. /package/skills/{vibe-docs → docs}/templates/release-notes.md +0 -0
  110. /package/skills/{vibe-figma → figma}/rubrics/extraction-checklist.md +0 -0
  111. /package/skills/{vibe-figma → figma}/templates/component-index.md +0 -0
  112. /package/skills/{vibe-figma → figma}/templates/component-spec.md +0 -0
  113. /package/skills/{vibe-figma → figma}/templates/figma-handoff.md +0 -0
  114. /package/skills/{vibe-figma → figma}/templates/remapped-tree.md +0 -0
  115. /package/skills/{vibe-figma-convert → figma-convert}/rubrics/conversion-rules.md +0 -0
  116. /package/skills/{vibe-figma-convert → figma-convert}/templates/component.md +0 -0
  117. /package/skills/{vibe-figma-extract → figma-extract}/rubrics/image-rules.md +0 -0
  118. /package/skills/{vibe-interview → interview}/checklists/api.md +0 -0
  119. /package/skills/{vibe-interview → interview}/checklists/feature.md +0 -0
  120. /package/skills/{vibe-interview → interview}/checklists/library.md +0 -0
  121. /package/skills/{vibe-interview → interview}/checklists/mobile.md +0 -0
  122. /package/skills/{vibe-interview → interview}/checklists/webapp.md +0 -0
  123. /package/skills/{vibe-interview → interview}/checklists/website.md +0 -0
  124. /package/skills/{vibe-regress → regress}/templates/bug.md +0 -0
  125. /package/skills/{vibe-regress → regress}/templates/test-jest.md +0 -0
  126. /package/skills/{vibe-regress → regress}/templates/test-vitest.md +0 -0
@@ -1,10 +1,10 @@
1
1
  ---
2
- name: vibe-interview
2
+ name: interview
3
+ description: 도메인 요구사항 인터뷰 본체 — type별 체크리스트(website/webapp/mobile/api/library/feature)로 사용자가 stop 할 때까지 루프.
4
+ when_to_use: /vibe.spec orchestrator의 Phase 1에서 호출. 직접 호출 금지.
5
+ user-invocable: false
3
6
  tier: core
4
- description: "Iteratively interview the user to gather ALL required and optional requirements for a new project or feature. Loops until the user explicitly stops. Uses type-specific domain checklists (website, webapp, mobile, api, library, feature) so nothing is missed. Must use this skill when the user says '만들자', '개발하자', '신규 기능', '무엇을 만들', 'let's build', 'new feature', or starts describing a product idea without a plan yet."
5
- triggers: [만들자, 개발하자, 기획하자, 신규 기능, 새 프로젝트, "무엇을 만들", "무엇을 개발", 아이디어, 인터뷰, interview, requirements, "let's build", "new feature", "new project"]
6
- priority: 95
7
- chain-next: [vibe-plan]
7
+ chain-next: [plan]
8
8
  ---
9
9
 
10
10
  # vibe.interview — Domain Requirements Interview
@@ -20,7 +20,7 @@ chain-next: [vibe-plan]
20
20
 
21
21
  **Skip when**:
22
22
  - Small bug fix on an existing project
23
- - `.vibe/plans/{feature}.md` already exists (→ only update via `vibe-plan`)
23
+ - `.vibe/plans/{feature}.md` already exists (→ only update via `plan`)
24
24
 
25
25
  ## Core Loop
26
26
 
@@ -53,7 +53,7 @@ chain-next: [vibe-plan]
53
53
  4. Save collected results
54
54
  .vibe/interviews/{feature}.md
55
55
 
56
- 5. chain-next: vibe-plan
56
+ 5. chain-next: plan
57
57
  ```
58
58
 
59
59
  ## Step 0: Git Branch (MANDATORY)
@@ -101,7 +101,7 @@ What kind of project is this?
101
101
  Read the checklist file for the detected type:
102
102
 
103
103
  ```
104
- Read skills/vibe-interview/checklists/{type}.md
104
+ Read skills/interview/checklists/{type}.md
105
105
  ```
106
106
 
107
107
  The checklist is divided into a **Required** section and an **Optional** section. Each item has the following structure:
@@ -269,9 +269,9 @@ This pointer is used by /vibe.spec (no args) for Smart Resume.
269
269
  No-op if the value is already the same.
270
270
  ```
271
271
 
272
- ## Step 5: Chain to vibe-plan
272
+ ## Step 5: Chain to plan
273
273
 
274
- After the interview is complete, the `vibe-plan` skill is automatically activated to refine the results into a structured plan.
274
+ After the interview is complete, the `plan` skill is automatically activated to refine the results into a structured plan.
275
275
 
276
276
  ```
277
277
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
@@ -283,7 +283,7 @@ After the interview is complete, the `vibe-plan` skill is automatically activate
283
283
  Optional: 12/14
284
284
  Discovered: 3
285
285
 
286
- vibe-plan skill is starting plan creation...
286
+ → plan skill is starting plan creation...
287
287
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
288
288
  ```
289
289
 
@@ -293,7 +293,7 @@ After the interview is complete, the `vibe-plan` skill is automatically activate
293
293
  - Prompting the user to stop before Required items are complete
294
294
  - Ignoring a user's answer and moving on to the next question
295
295
  - Missing areas not in the checklist (use `discovered`)
296
- - Writing the plan in PTCF/EARS/Phase structure here (that is refined by vibe-plan; the actual spec is written by /vibe.spec)
296
+ - Writing the plan in PTCF/EARS/Phase structure here (that is refined by plan; the actual spec is written by /vibe.spec)
297
297
  - Ending with 10 shallow questions (keep going until the user explicitly stops)
298
298
  - Providing only multiple-choice options without allowing free input
299
299
 
@@ -347,12 +347,12 @@ Claude: ⚠️ All required items complete. 10 optional items will be marked as
347
347
  ✅ Interview complete!
348
348
  📄 .vibe/interviews/parallax-website.md
349
349
 
350
- vibe-plan skill is starting plan creation...
350
+ → plan skill is starting plan creation...
351
351
  ```
352
352
 
353
353
  ## Related
354
354
 
355
- - **Next**: `vibe-plan` — refine interview results into a structured plan
356
- - **After plan**: `vibe-spec` (skill) → generates SPEC → then `/vibe.run` (logic) + `/vibe.figma` (UI track) in parallel
355
+ - **Next**: `plan` — refine interview results into a structured plan
356
+ - **After plan**: `spec` (skill) → generates SPEC → then `/vibe.run` (logic) + `/vibe.figma` (UI track) in parallel
357
357
  - **Templates**: `~/.claude/vibe/templates/plan-template.md`
358
- - **Checklists**: `skills/vibe-interview/checklists/{type}.md`
358
+ - **Checklists**: `skills/interview/checklists/{type}.md`
@@ -1,5 +1,7 @@
1
1
  ---
2
2
  name: parallel-research
3
+ user-invocable: false
4
+ invocation: [auto]
3
5
  tier: standard
4
6
  description: "Parallel research with 4 specialized agents (best-practices, framework-docs, codebase-patterns, security-advisory) running simultaneously. Use when facing unfamiliar technology, choosing between libraries/frameworks, designing architecture for a new feature, or investigating security implications. Must use this skill when user asks 'how should we build X', 'which library for Y', or when starting work on a complex feature with unknown requirements. Not for simple lookups — use web search directly for those."
5
7
  triggers: [parallel research, complex feature, technology selection, architecture design, security critical]
@@ -1,10 +1,10 @@
1
1
  ---
2
- name: vibe-plan
2
+ name: plan
3
+ description: 인터뷰 결과 → 사람이 읽는 기획서(vision document) 정제 본체. /vibe.spec → 코드, /vibe.figma → UI 스토리보드의 입력.
4
+ when_to_use: interview 완료 후 또는 /vibe.spec Phase 2에서 체인. 직접 호출 금지.
5
+ user-invocable: false
3
6
  tier: core
4
- description: "Refine a vibe-interview result into a human-readable markdown 기획서 (planning document). The plan is a vision document that downstream skills/commands use: /vibe.spec consumes it for code implementation, /vibe.figma uses it for UI storyboards. Must use this skill after vibe-interview completes, or when the user has raw interview notes and wants a structured plan document."
5
- triggers: [기획서, 기획서 작성, plan document, 기획 정리, "interview 정리", refine plan]
6
- priority: 90
7
- chain-next: [vibe-spec, vibe-figma]
7
+ chain-next: [spec, figma]
8
8
  ---
9
9
 
10
10
  # vibe.plan — Interview → Plan Document Refinement
@@ -13,12 +13,12 @@ chain-next: [vibe-spec, vibe-figma]
13
13
 
14
14
  ## When to Use
15
15
 
16
- - `vibe-interview` has just completed and `.vibe/interviews/{feature}.md` exists
16
+ - `interview` has just completed and `.vibe/interviews/{feature}.md` exists
17
17
  - The user requests "write me a plan document" or "clean up the interview"
18
18
  - Need to convert an external PRD/wireframe into the vibe plan document format
19
19
 
20
20
  **Skip condition**:
21
- - If this skill is called directly without an interview → chain to `vibe-interview` first (no chain-prev; inform the user)
21
+ - If this skill is called directly without an interview → chain to `interview` first (no chain-prev; inform the user)
22
22
 
23
23
  ## Core Flow
24
24
 
@@ -55,7 +55,7 @@ Read .vibe/interviews/{feature-name}.md
55
55
  Extract `type`, `status`, `requiredCollected`, `optionalCollected`, etc. from the frontmatter.
56
56
 
57
57
  **Validation**:
58
- - If the file does not exist → guide the user to run `vibe-interview` first.
58
+ - If the file does not exist → guide the user to run `interview` first.
59
59
  - `status: partial` + Required items incomplete → apply **AI-Driven Gap Filling**:
60
60
 
61
61
  ### AI-Driven Gap Filling
@@ -249,6 +249,6 @@ Where would you like to start?
249
249
 
250
250
  ## Related
251
251
 
252
- - **Prev**: `vibe-interview` — requirements collection (implicit chain-prev)
252
+ - **Prev**: `interview` — requirements collection (implicit chain-prev)
253
253
  - **Next**: `/vibe.spec` (code spec), `/vibe.figma` (UI design)
254
254
  - **Template**: `~/.claude/vibe/templates/plan-template.md`
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  name: prioritization-frameworks
3
+ invocation: [auto, chain]
3
4
  tier: standard
4
5
  description: "Reference guide to 9 prioritization frameworks with formulas, when-to-use guidance, and templates — RICE, ICE, Kano, MoSCoW, Opportunity Score, and more."
5
6
  triggers: [prioritize, prioritization, rice, ice, kano, moscow, opportunity score]
@@ -1,5 +1,7 @@
1
1
  ---
2
2
  name: priority-todos
3
+ user-invocable: false
4
+ invocation: [auto]
3
5
  tier: standard
4
6
  description: "Priority-based TODO management (P1/P2/P3). Auto-activates when managing tasks, reviewing issues, or organizing work by priority."
5
7
  triggers: [todo, priority, P1, P2, P3, task management, issue, organize]
@@ -1,10 +1,9 @@
1
1
  ---
2
- name: vibe-regress
2
+ name: regress
3
+ description: 회귀 테스트 자동 진화 본체 — 버그 등록 → 예방 테스트 생성 → 반복 패턴 클러스터 → git fix 커밋 import. 저장소 .vibe/regressions/.
4
+ when_to_use: /vibe.regress 진입점 / /vibe.verify 실패 시 체인. 직접 호출 금지.
5
+ user-invocable: false
3
6
  tier: core
4
- description: "Regression test auto-evolution. Registers bugs (auto from /vibe.verify failures or manual), generates preventive vitest/jest files from bug records, clusters repeated patterns (3+ same root-cause-tag) into shared tests, and imports historical `fix:` commits from git log. Storage: .vibe/regressions/<slug>.md. Must use this skill when user runs /vibe.regress, when /vibe.verify produces a failure, or when the user says 'don't let this happen again' / 'regression test' / '회귀 테스트'."
5
- triggers: [regress, regression, "회귀", "다시는", "반복 버그", "fix commit"]
6
- priority: 70
7
- chain-next: []
8
7
  ---
9
8
 
10
9
  # vibe.regress — Regression Auto-Evolution
@@ -134,7 +133,7 @@ cart-stock-race-double-deduct cart concurrency open 1d
134
133
  When `/vibe.verify` fails it calls:
135
134
 
136
135
  ```
137
- Load skill `vibe-regress` with: register --from-verify
136
+ Load skill `regress` with: register --from-verify
138
137
  <feature>: {feature-name}
139
138
  <scenario>: {failed-scenario}
140
139
  <error>: {error-message}
@@ -1,5 +1,7 @@
1
1
  ---
2
2
  name: rob-pike
3
+ user-invocable: false
4
+ invocation: [auto]
3
5
  tier: core
4
6
  description: "Rob Pike's 5 Rules — block premature optimization. Auto-activates on optimize, slow, performance, cache, parallelize keywords."
5
7
  triggers: [optimize, slow, performance, cache, parallelize, bottleneck, speed up, faster, latency, benchmark]
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  name: seo-checklist
3
+ invocation: [auto]
3
4
  tier: core
4
5
  description: "SEO gotchas for web development — easy-to-miss items that hurt search ranking. Covers meta tags, Open Graph, structured data (JSON-LD), sitemap, robots.txt, canonical URLs, and Naver/Google-specific requirements. Use when building or reviewing any public-facing web page, landing page, or marketing site. Must use this skill when user mentions SEO, search ranking, meta tags, or when deploying a web app that needs to be discoverable."
5
6
  triggers: [seo, search, meta, sitemap, schema, structured data, og, opengraph, google, naver]
@@ -1,10 +1,10 @@
1
1
  ---
2
- name: vibe-spec
2
+ name: spec
3
+ description: PTCF 구조 SPEC 한 문서 작성 — parallel research (GPT/Gemini/Claude agents), ambiguity scan, 100-point quality gate. plan 파일 입력 → .vibe/specs/{feature}.md + .vibe/features/{feature}.feature 생성.
4
+ when_to_use: vibe.spec orchestrator의 Phase 3에서 호출. 직접 호출 금지 — /vibe.spec 사용.
5
+ user-invocable: false
3
6
  tier: core
4
- description: "Create an AI-executable PTCF-structured SPEC document through conversational requirements gathering, parallel research (GPT/Gemini/Claude agents), PTCF writing, ambiguity scan, and 100-point quality gate (loops until perfect or stuck). Produces .vibe/specs/{feature}.md + matching .vibe/features/{feature}.feature (BDD). Must use this skill when the user says 'write spec', 'create spec', '/vibe.spec', or when a plan document exists and is ready for code specification."
5
- triggers: [spec, SPEC, 명세, "코드 명세", "구현 명세", "write spec", "create spec", PTCF]
6
- priority: 85
7
- chain-next: [vibe-spec-review]
7
+ chain-next: [spec-review]
8
8
  ---
9
9
 
10
10
  # vibe.spec — Specification Agent
@@ -29,7 +29,7 @@ When `ultrawork` (or `ulw`) is included, automatically chains:
29
29
 
30
30
  [1] SPEC Creation (this command)
31
31
 
32
- [2] Auto: Load skill `vibe-spec-review` (chain-next from this skill)
32
+ [2] Auto: Load skill `spec-review` (chain-next from this skill)
33
33
 
34
34
  [3] Auto: /vibe.run "{feature}" ultrawork
35
35
  ```
@@ -483,10 +483,10 @@ node "[LLM_SCRIPT]" gemini orchestrate-json "Security advisories for passkey aut
483
483
 
484
484
  | Claude Agent | Role | Source |
485
485
  |--------------|------|--------|
486
- | `best-practices-agent` | Best practices for [feature] + [stack] | WebSearch |
487
- | `framework-docs-agent` | Latest docs via context7 | context7 MCP |
488
- | `codebase-patterns-agent` | Similar patterns in existing codebase | Glob, Grep |
489
- | `security-advisory-agent` | Security advisories for [feature] | WebSearch |
486
+ | `best-practices` | Best practices for [feature] + [stack] | WebSearch |
487
+ | `framework-docs` | Latest docs via context7 | context7 MCP |
488
+ | `codebase-patterns` | Similar patterns in existing codebase | Glob, Grep |
489
+ | `security-advisory` | Security advisories for [feature] | WebSearch |
490
490
 
491
491
  **Total: 4 GPT/Gemini calls (Bash) + 4 Claude agents (Task) = 8 parallel research tasks**
492
492
 
@@ -954,7 +954,7 @@ Stuck? (score == prev_score)
954
954
  ├─ Interactive: ask user → fill values OR "proceed" OR "abort"
955
955
  └─ ultrawork: record gaps as TODO → proceed
956
956
 
957
- Score == 100 (or user-approved) → SPEC Draft Complete → Handoff to vibe-spec-review skill
957
+ Score == 100 (or user-approved) → SPEC Draft Complete → Handoff to spec-review skill
958
958
  ```
959
959
 
960
960
  #### 7.4 Auto-Fix for Low Score
@@ -977,7 +977,7 @@ After SPEC draft is complete (score ≥ 95):
977
977
  **If `ultrawork` mode:**
978
978
  - ❌ DO NOT show handoff message
979
979
  - ❌ DO NOT ask for confirmation
980
- - ✅ Immediately load skill `vibe-spec-review` with feature `{feature-name}` (chain-next)
980
+ - ✅ Immediately load skill `spec-review` with feature `{feature-name}` (chain-next)
981
981
  - ✅ After review passes, immediately proceed to `/vibe.run "{feature-name}" ultrawork`
982
982
 
983
983
  **If normal mode:**
@@ -995,10 +995,10 @@ Output the handoff message:
995
995
  ⏱️ Completed: {getCurrentTime result}
996
996
 
997
997
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
998
- ⚠️ NEXT STEP: Run SPEC review (vibe-spec-review skill)
998
+ ⚠️ NEXT STEP: Run SPEC review (spec-review skill)
999
999
 
1000
1000
  Option 1 (same session):
1001
- Load skill `vibe-spec-review` with feature `{feature-name}`
1001
+ Load skill `spec-review` with feature `{feature-name}`
1002
1002
  (or natural language: "spec review")
1003
1003
 
1004
1004
  Option 2 (recommended for large context):
@@ -1,17 +1,16 @@
1
1
  ---
2
- name: vibe-spec-review
2
+ name: spec-review
3
+ description: SPEC 품질 리뷰 본체 — GPT/Gemini 크로스 검증, 100-point gate, Race Review(수렴 종료), Codex 적대 리뷰, 사용자 체크포인트.
4
+ when_to_use: spec 완료 후 또는 /vibe.spec Phase 4에서 체인. 직접 호출 금지.
5
+ user-invocable: false
3
6
  tier: core
4
- description: "Review and enhance an existing SPEC with GPT/Gemini cross-validation. Runs 100-point quality gate (loop until perfect or stuck), Race Review with convergence-based termination (no round cap), optional Codex adversarial review, Review Debate Team, and final user checkpoint. Must use this skill after vibe-spec completes, or when the user says 'review spec', '스펙 리뷰'."
5
- triggers: ["spec review", "review spec", "SPEC 리뷰", "명세 리뷰", race review]
6
- priority: 80
7
- chain-next: []
8
7
  ---
9
8
 
10
- # vibe-spec-review — SPEC Quality Review
9
+ # spec-review — SPEC Quality Review
11
10
 
12
11
  Review and enhance SPEC with GPT/Gemini cross-validation.
13
12
 
14
- **Purpose:** Run this skill after `vibe-spec` to ensure accurate review execution. For large contexts, invoke in a new session.
13
+ **Purpose:** Run this skill after `spec` to ensure accurate review execution. For large contexts, invoke in a new session.
15
14
 
16
15
  ---
17
16
 
@@ -20,7 +19,7 @@ Review and enhance SPEC with GPT/Gemini cross-validation.
20
19
  This skill is automatically called in Phase 4 of the `/vibe.spec` orchestrator. If direct invocation is needed:
21
20
 
22
21
  ```
23
- Load skill `vibe-spec-review` with feature: "feature-name"
22
+ Load skill `spec-review` with feature: "feature-name"
24
23
  ```
25
24
 
26
25
  Or via natural language trigger: "스펙 리뷰", "review spec", "명세 리뷰".
@@ -57,7 +56,7 @@ If the value is already the same, no-op.
57
56
  ```
58
57
  /vibe.spec "feature" → SPEC created (Phase 3)
59
58
 
60
- Phase 4: vibe-spec-review skill (this) → Quality validation + GPT/Gemini review
59
+ Phase 4: spec-review skill (this) → Quality validation + GPT/Gemini review
61
60
 
62
61
  /vibe.run "feature"
63
62
  ```
@@ -1,5 +1,7 @@
1
1
  ---
2
2
  name: systematic-debugging
3
+ user-invocable: false
4
+ invocation: [auto]
3
5
  tier: core
4
6
  description: "Enforce reproduce-first, root-cause-first, failing-test-first debugging. Auto-activates on bug, error, fail, broken, crash, flaky keywords."
5
7
  triggers: [bug, error, fail, broken, crash, flaky, not working, regression, unexpected, stack trace, exception, debug]
@@ -1,5 +1,7 @@
1
1
  ---
2
2
  name: techdebt
3
+ user-invocable: false
4
+ invocation: [auto, chain]
3
5
  tier: core
4
6
  description: "Technical debt cleanup — detect and fix duplicate code, console.log, unused imports, any types, etc. Recommended before session end. Activates on techdebt, cleanup, debt keywords."
5
7
  triggers: [techdebt, cleanup, debt, unused imports, console.log, dead code]
@@ -1,13 +1,12 @@
1
1
  ---
2
- name: vibe-test
2
+ name: test
3
+ description: vibe 자가검진 본체 — 대상 harness(~/.claude/~/.coco)의 모든 command/skill/hook/agent 프로빙 → pass/fail 리포트 → ~/.vibe/test-reports/.
4
+ when_to_use: /vibe.test 진입점에서 체인 호출. 직접 호출 금지.
5
+ user-invocable: false
3
6
  tier: core
4
- description: "Self-test vibe by probing every command/skill/hook/agent in a target harness install dir (~/.claude or ~/.coco) and writing a pass/fail report to ~/.vibe/test-reports/. Takes an optional harness argument (cc|coco); empty = current harness. Must use this skill when user runs /vibe.test, when verifying a vibe install before release, or when the user says 'self-test', 'harness 점검', 'vibe 건강'."
5
- triggers: [test, self-test, "vibe 건강", "harness 점검", "자가검진"]
6
- priority: 70
7
- chain-next: []
8
7
  ---
9
8
 
10
- # vibe-test — Self-Test
9
+ # test — Self-Test
11
10
 
12
11
  Probe every shipped vibe surface in one install dir and emit a pass/fail report.
13
12
 
@@ -39,7 +38,7 @@ All probes are **structural or test-based** — no interactive command is ever a
39
38
  | Category | Source | Check |
40
39
  |---|---|---|
41
40
  | commands | `<install>/commands/*.md` | file readable · frontmatter parses · `description` present · body references a skill (`Load skill \`...\``) if it delegates |
42
- | skills | `<install>/skills/*/SKILL.md` | frontmatter parses · required fields (`name`, `description`) · `triggers` array non-empty · body non-empty |
41
+ | skills | `<install>/skills/*/SKILL.md` | frontmatter parses · required fields (`name`, `description`, `invocation`) · `invocation` `{command, auto, chain}` and non-empty · if `invocation` includes `auto` then `triggers` non-empty · if includes `command` then matching `commands/{vibe.X}.md` or `Load skill <name>` reference exists · if includes `chain` then another skill lists it in `chain-next` · body non-empty |
43
42
  | hooks | repo `hooks/scripts/*.js` | for each script with a matching `__tests__/<name>.test.js`, run `npx vitest run <test> --reporter=json` and parse pass/fail counts |
44
43
  | agents | `<install>/agents/*.md` | file readable · frontmatter parses · required fields (`name`, `description`) |
45
44
 
@@ -68,8 +67,8 @@ Written to `~/.vibe/test-reports/<YYYYMMDD-HHmm>-<harness>.{json,md}`. Exact sch
68
67
  { "name": "vibe.test", "status": "pass" }
69
68
  ],
70
69
  "skills": [
71
- { "name": "vibe-test", "status": "pass" },
72
- { "name": "vibe-spec", "status": "fail", "error": "frontmatter: triggers array is empty" }
70
+ { "name": "test", "status": "pass" },
71
+ { "name": "spec", "status": "fail", "error": "invocation includes `auto` but triggers array is empty" }
73
72
  ],
74
73
  "hooks": [
75
74
  { "name": "pre-tool-guard", "status": "pass", "tests": "38/38" },
@@ -82,7 +81,7 @@ Written to `~/.vibe/test-reports/<YYYYMMDD-HHmm>-<harness>.{json,md}`. Exact sch
82
81
  "failed": [
83
82
  {
84
83
  "category": "skills",
85
- "name": "vibe-spec",
84
+ "name": "spec",
86
85
  "error": "frontmatter: triggers array is empty"
87
86
  }
88
87
  ]
@@ -111,7 +110,7 @@ Written to `~/.vibe/test-reports/<YYYYMMDD-HHmm>-<harness>.{json,md}`. Exact sch
111
110
 
112
111
  ## Failures
113
112
 
114
- - **skills / vibe-spec** — frontmatter: triggers array is empty
113
+ - **skills / spec** — invocation includes `auto` but triggers array is empty
115
114
  - **agents / explorer** — agent file not found
116
115
  ```
117
116
 
@@ -127,7 +126,7 @@ If `failed` is empty, replace the Failures section with `_All probes passed._`.
127
126
  6. **Ensure** `~/.vibe/test-reports/` exists (`mkdir -p`, dir mode `0o700` — consistent with `~/.vibe/config.json`).
128
127
  7. **Write** `<ts>-<harness>.json` and `<ts>-<harness>.md`.
129
128
  8. **Print** the Markdown summary to the console.
130
- 9. **If `summary.failed > 0`**, load skill `vibe-regress` with `subcommand: register --from-test` and pass the failed entries. P1 = any probe with `status: fail`.
129
+ 9. **If `summary.failed > 0`**, load skill `regress` with `subcommand: register --from-test` and pass the failed entries. P1 = any probe with `status: fail`.
131
130
 
132
131
  ## Done Criteria
133
132
 
@@ -138,3 +137,4 @@ If `failed` is empty, replace the Failures section with `_All probes passed._`.
138
137
  - [ ] Markdown summary printed to console after the run
139
138
  - [ ] Reports land in `~/.vibe/test-reports/`, never in project-local `.vibe/`
140
139
  - [ ] `failed.length > 0` → auto-invokes `/vibe.regress register --from-test`
140
+ - [ ] `invocation` field invariants enforced per skill (`command` / `auto` / `chain` validity)
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  name: tool-fallback
3
+ invocation: [auto]
3
4
  tier: optional
4
5
  description: "Tool failure fallback strategies with circuit breaker. Auto-activates on API errors, search failures, timeouts, 429, 5xx, overloaded errors."
5
6
  triggers: [API error, search failure, timeout, 429, 5xx, overloaded, fallback, circuit breaker]
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  name: typescript-advanced-types
3
+ invocation: [auto]
3
4
  tier: core
4
5
  description: "TypeScript advanced type system master guide. Covers Generics, Conditional Types, Mapped Types, Template Literals, Utility Types. Activates for complex type logic, reusable type utilities, and compile-time type safety."
5
6
  sections:
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  name: ui-ux-pro-max
3
+ invocation: [command]
3
4
  tier: standard
4
5
  description: "UI/UX design intelligence with bold aesthetic direction. Searchable database: 50+ styles, 97 color palettes, 57 font pairings, 99 UX guidelines, 25 chart types across 9 stacks (React, Vue, Svelte, Angular, Astro, Next.js, Flutter, Swift, Kotlin). Use when building any UI component, choosing color schemes, selecting typography, applying design patterns, or reviewing UX compliance. Must use this skill when user builds frontend — pages, components, dashboards, or landing pages — to ensure design quality beyond generic AI output."
5
6
  ---
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  name: user-personas
3
+ invocation: [auto, chain]
3
4
  tier: standard
4
5
  description: "Create refined user personas from research data — 3 personas with JTBD, pains, gains, and unexpected insights."
5
6
  triggers: [persona, user persona, user profile, user segment, user research]
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  name: vercel-react-best-practices
3
+ invocation: [auto]
3
4
  tier: core
4
5
  description: "React/Next.js performance gotchas from Vercel engineering. Non-intuitive pitfalls that LLMs commonly miss."
5
6
  triggers: [react, next.js, performance, optimization, vercel, component, rendering]