@su-record/vibe 2.9.40 → 2.10.2
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 +28 -12
- package/README.en.md +2 -3
- package/README.md +33 -27
- package/agents/{teams/figma → figma}/figma-analyst.md +2 -2
- package/agents/research/{best-practices-agent.md → best-practices.md} +1 -1
- package/agents/research/{codebase-patterns-agent.md → codebase-patterns.md} +1 -1
- package/agents/research/{framework-docs-agent.md → framework-docs.md} +1 -1
- package/agents/research/{security-advisory-agent.md → security-advisory.md} +1 -1
- package/agents/teams/research-team.md +4 -4
- package/agents/teams/review-debate-team.md +2 -2
- package/agents/teams/security-team.md +4 -4
- package/dist/cli/auth.d.ts +0 -1
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +1 -18
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/collaborator.d.ts +3 -3
- package/dist/cli/collaborator.js +4 -4
- package/dist/cli/collaborator.js.map +1 -1
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +0 -1
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/init.d.ts +3 -4
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +15 -20
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/remove.d.ts.map +1 -1
- package/dist/cli/commands/remove.js +2 -7
- package/dist/cli/commands/remove.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +10 -10
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.js +1 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/postinstall/claude-agents.d.ts +3 -1
- package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
- package/dist/cli/postinstall/claude-agents.js +47 -9
- package/dist/cli/postinstall/claude-agents.js.map +1 -1
- package/dist/cli/postinstall/constants.d.ts +5 -0
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +165 -23
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/cursor-skills.js +2 -2
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +26 -24
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/setup/LegacyMigration.d.ts +3 -3
- package/dist/cli/setup/LegacyMigration.d.ts.map +1 -1
- package/dist/cli/setup/LegacyMigration.js +3 -5
- package/dist/cli/setup/LegacyMigration.js.map +1 -1
- package/dist/cli/setup/ProjectSetup.d.ts +18 -8
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
- package/dist/cli/setup/ProjectSetup.js +70 -19
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/dist/cli/setup.d.ts +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +1 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/utils/cli-detector.d.ts +0 -7
- package/dist/cli/utils/cli-detector.d.ts.map +1 -1
- package/dist/cli/utils/cli-detector.js +0 -95
- package/dist/cli/utils/cli-detector.js.map +1 -1
- package/dist/cli/utils.d.ts +1 -1
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +1 -2
- package/dist/cli/utils.js.map +1 -1
- package/dist/infra/lib/OrchestrateWorkflow.js +1 -1
- package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -1
- package/dist/infra/lib/memory/MemoryStorage.d.ts +1 -1
- package/dist/infra/lib/memory/MemoryStorage.d.ts.map +1 -1
- package/dist/infra/lib/memory/MemoryStorage.js +2 -3
- package/dist/infra/lib/memory/MemoryStorage.js.map +1 -1
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js +4 -4
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -1
- package/dist/infra/orchestrator/parallelResearch.js +4 -4
- package/dist/infra/orchestrator/parallelResearch.js.map +1 -1
- package/hooks/scripts/__tests__/pre-tool-guard.test.js +1 -1
- package/hooks/scripts/clone-extract.js +712 -0
- package/hooks/scripts/clone-refine.js +510 -0
- package/hooks/scripts/clone-to-scss.js +275 -0
- package/hooks/scripts/clone-validate.js +280 -0
- package/hooks/scripts/codex-notify.js +49 -0
- package/hooks/scripts/command-log.js +1 -1
- package/hooks/scripts/lib/dispatcher.js +2 -3
- package/hooks/scripts/lib/scope-from-spec.js +2 -4
- package/hooks/scripts/llm-orchestrate.js +2 -7
- package/hooks/scripts/prompt-dispatcher.js +3 -3
- package/hooks/scripts/step-counter.js +1 -1
- package/hooks/scripts/utils.js +5 -10
- package/package.json +2 -1
- package/skills/agents-md/SKILL.md +2 -0
- package/skills/arch-guard/SKILL.md +2 -0
- package/skills/brand-assets/SKILL.md +1 -0
- package/skills/capability-loop/SKILL.md +2 -0
- package/skills/characterization-test/SKILL.md +2 -0
- package/skills/chub-usage/SKILL.md +1 -0
- package/skills/claude-md-guide/SKILL.md +2 -0
- package/skills/clone/SKILL.md +361 -0
- package/skills/commerce-patterns/SKILL.md +1 -0
- package/skills/commit-push-pr/SKILL.md +1 -0
- package/skills/context7-usage/SKILL.md +1 -0
- package/skills/{vibe-contract → contract}/SKILL.md +7 -8
- package/skills/create-prd/SKILL.md +1 -0
- package/skills/design-audit/SKILL.md +1 -0
- package/skills/design-critique/SKILL.md +1 -0
- package/skills/design-distill/SKILL.md +1 -0
- package/skills/design-normalize/SKILL.md +1 -0
- package/skills/design-polish/SKILL.md +1 -0
- package/skills/design-teach/SKILL.md +2 -0
- package/skills/devlog/SKILL.md +1 -0
- package/skills/{vibe-docs → docs}/SKILL.md +8 -8
- package/skills/e2e-commerce/SKILL.md +1 -0
- package/skills/event-comms/SKILL.md +1 -0
- package/skills/event-ops/SKILL.md +1 -0
- package/skills/event-planning/SKILL.md +1 -0
- package/skills/exec-plan/SKILL.md +2 -0
- package/skills/{vibe-figma → figma}/SKILL.md +4 -3
- package/skills/{vibe-figma-convert → figma-convert}/SKILL.md +4 -3
- package/skills/{vibe-figma-extract → figma-extract}/SKILL.md +4 -3
- package/skills/git-worktree/SKILL.md +1 -0
- package/skills/handoff/SKILL.md +2 -0
- package/skills/{vibe-interview → interview}/SKILL.md +16 -16
- package/skills/parallel-research/SKILL.md +2 -0
- package/skills/{vibe-plan → plan}/SKILL.md +9 -9
- package/skills/prioritization-frameworks/SKILL.md +1 -0
- package/skills/priority-todos/SKILL.md +2 -0
- package/skills/{vibe-regress → regress}/SKILL.md +5 -6
- package/skills/rob-pike/SKILL.md +2 -0
- package/skills/seo-checklist/SKILL.md +1 -0
- package/skills/{vibe-spec → spec}/SKILL.md +14 -14
- package/skills/{vibe-spec-review → spec-review}/SKILL.md +8 -9
- package/skills/systematic-debugging/SKILL.md +2 -0
- package/skills/techdebt/SKILL.md +2 -0
- package/skills/{vibe-test → test}/SKILL.md +19 -19
- package/skills/tool-fallback/SKILL.md +1 -0
- package/skills/typescript-advanced-types/SKILL.md +1 -0
- package/skills/ui-ux-pro-max/SKILL.md +1 -0
- package/skills/user-personas/SKILL.md +1 -0
- package/skills/vercel-react-best-practices/SKILL.md +1 -0
- package/skills/vibe/SKILL.md +288 -0
- package/{commands/vibe.analyze.md → skills/vibe.analyze/SKILL.md} +2 -0
- package/skills/vibe.clone/SKILL.md +117 -0
- package/{commands/vibe.contract.md → skills/vibe.contract/SKILL.md} +3 -1
- package/{commands/vibe.docs.md → skills/vibe.docs/SKILL.md} +3 -1
- package/{commands/vibe.event.md → skills/vibe.event/SKILL.md} +2 -0
- package/{commands/vibe.figma.md → skills/vibe.figma/SKILL.md} +25 -23
- package/{commands/vibe.harness.md → skills/vibe.harness/SKILL.md} +2 -0
- package/{commands/vibe.reason.md → skills/vibe.reason/SKILL.md} +2 -0
- package/{commands/vibe.regress.md → skills/vibe.regress/SKILL.md} +5 -3
- package/{commands/vibe.review.md → skills/vibe.review/SKILL.md} +2 -0
- package/{commands/vibe.run.md → skills/vibe.run/SKILL.md} +5 -1
- package/{commands/vibe.scaffold.md → skills/vibe.scaffold/SKILL.md} +2 -0
- package/{commands/vibe.spec.md → skills/vibe.spec/SKILL.md} +36 -34
- package/{commands/vibe.test.md → skills/vibe.test/SKILL.md} +8 -6
- package/{commands/vibe.trace.md → skills/vibe.trace/SKILL.md} +7 -0
- package/{commands/vibe.utils.md → skills/vibe.utils/SKILL.md} +2 -0
- package/{commands/vibe.verify.md → skills/vibe.verify/SKILL.md} +4 -2
- package/skills/video-production/SKILL.md +1 -0
- package/vibe/rules/principles/dual-harness-doctrine.md +50 -0
- /package/agents/{teams/figma → figma}/figma-architect.md +0 -0
- /package/agents/{teams/figma → figma}/figma-auditor.md +0 -0
- /package/agents/{teams/figma → figma}/figma-builder.md +0 -0
- /package/skills/{vibe-docs → docs}/templates/architecture.md +0 -0
- /package/skills/{vibe-docs → docs}/templates/behavioral-principles.md +0 -0
- /package/skills/{vibe-docs → docs}/templates/readme.md +0 -0
- /package/skills/{vibe-docs → docs}/templates/release-notes.md +0 -0
- /package/skills/{vibe-figma → figma}/rubrics/extraction-checklist.md +0 -0
- /package/skills/{vibe-figma → figma}/templates/component-index.md +0 -0
- /package/skills/{vibe-figma → figma}/templates/component-spec.md +0 -0
- /package/skills/{vibe-figma → figma}/templates/figma-handoff.md +0 -0
- /package/skills/{vibe-figma → figma}/templates/remapped-tree.md +0 -0
- /package/skills/{vibe-figma-convert → figma-convert}/rubrics/conversion-rules.md +0 -0
- /package/skills/{vibe-figma-convert → figma-convert}/templates/component.md +0 -0
- /package/skills/{vibe-figma-extract → figma-extract}/rubrics/image-rules.md +0 -0
- /package/skills/{vibe-interview → interview}/checklists/api.md +0 -0
- /package/skills/{vibe-interview → interview}/checklists/feature.md +0 -0
- /package/skills/{vibe-interview → interview}/checklists/library.md +0 -0
- /package/skills/{vibe-interview → interview}/checklists/mobile.md +0 -0
- /package/skills/{vibe-interview → interview}/checklists/webapp.md +0 -0
- /package/skills/{vibe-interview → interview}/checklists/website.md +0 -0
- /package/skills/{vibe-regress → regress}/templates/bug.md +0 -0
- /package/skills/{vibe-regress → regress}/templates/test-jest.md +0 -0
- /package/skills/{vibe-regress → regress}/templates/test-vitest.md +0 -0
package/CLAUDE.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# VIBE
|
|
2
2
|
|
|
3
|
-
> Source code for `@su-record/vibe` npm package. Modify files in THIS repository only — never the installed copies (`~/.claude/`, `~/.
|
|
3
|
+
> Source code for `@su-record/vibe` npm package. Modify files in THIS repository only — never the installed copies (`~/.claude/`, `~/.codex/`, `~/.vibe/`).
|
|
4
4
|
>
|
|
5
5
|
> **File-to-CLI mapping:**
|
|
6
6
|
> - `CLAUDE.md` — **Claude Code** (100% supported) · **content SSOT**
|
|
7
|
-
> - `AGENTS.md` — **
|
|
7
|
+
> - `AGENTS.md` — **Codex** (100% supported)
|
|
8
8
|
>
|
|
9
9
|
> `AGENTS.md` is regenerated from this file via `/vibe.docs agent`. Edit here first.
|
|
10
10
|
|
|
@@ -55,11 +55,14 @@ No `console.log` in commits · No hardcoded strings/numbers · No commented-out
|
|
|
55
55
|
| Path | Purpose |
|
|
56
56
|
|---|---|
|
|
57
57
|
| `~/.vibe/config.json` | Global credentials, models (0o600) |
|
|
58
|
-
| `.vibe/config.json` | Project stacks, capabilities — Claude/
|
|
58
|
+
| `.vibe/config.json` | Project stacks, capabilities — Claude/Codex 공용 SSOT |
|
|
59
59
|
| `.claude/settings.local.json` | Claude Code hooks (auto-generated, don't commit) |
|
|
60
|
-
|
|
|
60
|
+
| `~/.codex/config.toml` | Codex `notify` (turn-complete lifecycle hook, auto-installed) |
|
|
61
61
|
|
|
62
|
-
Legacy: 기존 `.claude/vibe
|
|
62
|
+
Legacy: 기존 `.claude/vibe/` 는 런타임에 자동 인식되며 `vibe init`/`update` 시 `.vibe/` 로 이동한다.
|
|
63
|
+
|
|
64
|
+
### Dual-Harness Doctrine
|
|
65
|
+
하네스 차이는 경로가 아니라 **인지 방식**(CC=추론 / Codex=직역)에 있다. 원칙: **암묵적 동작에 의존하지 않는다 — 추론은 `/vibe` 디스패처가 앞단에서, skill 본문은 전부 명시적으로.** ("명시성 공통분모 + 추론 앞단"). Hook은 의도별 매핑: 라이프사이클 → Codex `config.toml notify`, 행동 가드 → AGENTS.md soft-hook(직역이라 신뢰성↑). 전문: `vibe/rules/principles/dual-harness-doctrine.md`.
|
|
63
66
|
|
|
64
67
|
### Gotchas
|
|
65
68
|
- `better-sqlite3` WAL mode — synchronous API
|
|
@@ -69,17 +72,30 @@ Legacy: 기존 `.claude/vibe/`·`.coco/vibe/` 는 런타임에 자동 인식되
|
|
|
69
72
|
|
|
70
73
|
## Workflow
|
|
71
74
|
|
|
72
|
-
`/vibe
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
`/vibe` is the **single slash entry point**. Natural-language requirement (+ optional URL/image/PDF/file attachments) → vibe analyzes intent, designs a pipeline of `/vibe.*` skills, shows a preview, gets one approval, then chains them. `ultrawork` keyword skips the approval gate.
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
/vibe "<requirement>" [+ 📎 attachments]
|
|
79
|
+
→ Intent classification (new feature / figma-driven / clone / resume / review / regress / contract / scaffold / docs / analyze / harness / test / utils)
|
|
80
|
+
→ Smart Resume detection (.vibe/{interviews,plans,specs,features}/)
|
|
81
|
+
→ Pipeline preview + 1-time approval (skipped on `ultrawork`)
|
|
82
|
+
→ Sequential SlashCommand chain
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Advanced (explicit phase) commands** — still available for power users when you know exactly which phase to run:
|
|
86
|
+
- `/vibe.spec` — interview → plan → spec → review orchestration
|
|
87
|
+
- `/vibe.figma` — Figma ↔ code (UI track)
|
|
88
|
+
- `/vibe.run` — SPEC-driven implementation
|
|
89
|
+
- `/vibe.verify` — implementation vs SPEC verification
|
|
90
|
+
- `/vibe.regress` — regression test auto-evolution. Auto-registers on `/vibe.verify` failure; `generate` produces preventive tests; `cluster` promotes recurring patterns.
|
|
76
91
|
- `/vibe.contract` — API contract drift detection. Compares the contract extracted from the SPEC against the implementation; P1 drift auto-propagates to `/vibe.regress`.
|
|
77
|
-
- `/vibe.
|
|
92
|
+
- `/vibe.trace` — Requirements Traceability Matrix
|
|
93
|
+
- `/vibe.test` — vibe self-test across the CC ↔ Codex harnesses. Subcommands: `parity` (static), `report` (runtime), `compare` (diff). P1 drift auto-propagates to `/vibe.regress`. Recommended before every release.
|
|
78
94
|
|
|
79
95
|
| Task Size | Approach |
|
|
80
96
|
|---|---|
|
|
81
97
|
| 1–2 files | Plan Mode |
|
|
82
|
-
| 3+ files | `/vibe.spec` |
|
|
98
|
+
| 3+ files | `/vibe "<requirement>"` (or `/vibe.spec` if you want to start at SPEC phase explicitly) |
|
|
83
99
|
|
|
84
100
|
## Magic Keywords
|
|
85
101
|
|
|
@@ -104,6 +120,6 @@ Legacy: 기존 `.claude/vibe/`·`.coco/vibe/` 는 런타임에 자동 인식되
|
|
|
104
120
|
|
|
105
121
|
**Include**: `.vibe/{plans,specs,features,todos,research,regressions,contracts,recipes,anti-patterns,config.json,constitution.md}`, `CLAUDE.md`
|
|
106
122
|
**Vibe-global (not project-local)**: `~/.vibe/test-reports/` — `/vibe.test` artifacts live with the vibe install, not with the project
|
|
107
|
-
**Exclude**: `~/.claude/{rules,commands,agents,skills}/`, `.claude/settings.local.json`, `.
|
|
123
|
+
**Exclude**: `~/.claude/{rules,commands,agents,skills}/`, `.claude/settings.local.json`, `.vibe/{memories,checkpoints,metrics}/`
|
|
108
124
|
|
|
109
125
|
<!-- VIBE:END -->
|
package/README.en.md
CHANGED
|
@@ -158,7 +158,7 @@ Three layers of defense on every tool call:
|
|
|
158
158
|
| **Standard** | `vibe init` selects by stack | Stack/capability support | figma, design-audit, techdebt |
|
|
159
159
|
| **Optional** | Explicit `/skill` only | Reference, wrappers | chub-usage, context7 |
|
|
160
160
|
|
|
161
|
-
**Multi-LLM** — Claude orchestrates, GPT reasons, Gemini researches. Auto-routes by availability. Works Claude-only by default.
|
|
161
|
+
**Multi-LLM** — Claude orchestrates, GPT reasons, Gemini researches. Auto-routes by availability. Works Claude-only by default.
|
|
162
162
|
|
|
163
163
|
**Stack detection** — Auto-detects 24 frameworks (Next.js, Django, Rails, Go, Rust, Flutter, and more) and applies framework-specific rules and skills.
|
|
164
164
|
|
|
@@ -177,8 +177,7 @@ Three layers of defense on every tool call:
|
|
|
177
177
|
| CLI | Status |
|
|
178
178
|
|-----|--------|
|
|
179
179
|
| [Claude Code](https://claude.ai/code) | Full support |
|
|
180
|
-
|
|
|
181
|
-
| [Codex](https://github.com/openai/codex) | Plugin |
|
|
180
|
+
| [Codex](https://github.com/openai/codex) | Full support (`~/.codex/`, AGENTS.md + config.toml notify) |
|
|
182
181
|
| [Cursor](https://cursor.sh) | Agents + Rules |
|
|
183
182
|
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | Agents + Skills |
|
|
184
183
|
|
package/README.md
CHANGED
|
@@ -18,36 +18,42 @@ vibe init
|
|
|
18
18
|
|
|
19
19
|
## 워크플로우
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
**진입점 하나.** 자연어 요구사항만 던지세요. vibe가 의도를 분석해서 파이프라인을 설계하고, 한 번만 승인받고, 자동 실행합니다.
|
|
22
22
|
|
|
23
23
|
```
|
|
24
|
-
/vibe
|
|
24
|
+
/vibe "커피 브랜드 랜딩 페이지" [+ 📎 figma URL / 이미지 / PDF / 파일]
|
|
25
25
|
|
|
|
26
26
|
v
|
|
27
|
-
|
|
28
|
-
|
|
|
27
|
+
Intent 분류 ─── new feature? figma-driven? clone? resume? review? regress? ...
|
|
28
|
+
|
|
|
29
29
|
v
|
|
30
|
-
|
|
30
|
+
Smart Resume ─── .vibe/{interviews,plans,specs,features}/ 감지
|
|
31
31
|
|
|
|
32
32
|
v
|
|
33
|
-
|
|
33
|
+
파이프라인 설계 ─── /vibe.spec → /vibe.figma → /vibe.run → /vibe.verify → /vibe.trace
|
|
34
34
|
|
|
|
35
35
|
v
|
|
36
|
-
|
|
36
|
+
1회 승인 게이트 (ultrawork 키워드 있으면 skip)
|
|
37
37
|
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
/vibe.run (로직) /vibe.figma (UI)
|
|
41
|
-
SPEC 기반 구현 Figma 디자인 ↔ 코드
|
|
42
|
-
12개 에이전트 리뷰 읽기 또는 쓰기
|
|
43
|
-
| |
|
|
44
|
-
v v
|
|
45
|
-
/vibe.verify ──── /vibe.trace ──── 완료
|
|
38
|
+
v
|
|
39
|
+
순차 실행 ─── 각 phase 완료 시 다음으로
|
|
46
40
|
```
|
|
47
41
|
|
|
48
|
-
|
|
42
|
+
**예시:**
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
/vibe "패럴랙스 웹사이트 만들어줘"
|
|
46
|
+
/vibe "https://figma.com/file/abc 로 로그인 페이지"
|
|
47
|
+
/vibe "로그인 회귀 테스트 다시 통과시켜줘"
|
|
48
|
+
/vibe "이 SPEC 리뷰만" + 📎 .vibe/specs/login.md
|
|
49
|
+
/vibe "결제 API" ultrawork # 승인 게이트 skip
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Smart Resume** — 아무 단계에서나 멈추고 나중에 돌아오세요. `/vibe`는 `.vibe/` 디렉토리에서 진행 상황을 감지하고 "이어서?" 제안합니다.
|
|
53
|
+
|
|
54
|
+
**ultrawork** — `ultrawork` 키워드를 붙이면 승인 게이트와 모든 중단점을 skip하고 자동 실행합니다.
|
|
49
55
|
|
|
50
|
-
**
|
|
56
|
+
**Advanced** — 정확히 어느 phase 실행할지 알면 `/vibe.spec`, `/vibe.figma`, `/vibe.run`, `/vibe.verify`, `/vibe.trace` 등을 직접 호출할 수 있습니다.
|
|
51
57
|
|
|
52
58
|
---
|
|
53
59
|
|
|
@@ -65,7 +71,7 @@ vibe init
|
|
|
65
71
|
claude
|
|
66
72
|
|
|
67
73
|
# 워크플로우 실행
|
|
68
|
-
/vibe
|
|
74
|
+
/vibe "사용자 인증 추가"
|
|
69
75
|
```
|
|
70
76
|
|
|
71
77
|
---
|
|
@@ -117,13 +123,13 @@ claude
|
|
|
117
123
|
| **Standard** | `vibe init`이 스택별 선택 | 스택/역할 지원 | figma, design-audit, techdebt |
|
|
118
124
|
| **Optional** | 명시적 `/skill` 호출만 | 레퍼런스, 래퍼 | chub-usage, context7 |
|
|
119
125
|
|
|
120
|
-
**멀티 LLM** — Claude가 오케스트레이션, GPT가 추론, Gemini가 리서치. 가용 모델에 따라 자동 라우팅. 기본값은 Claude 단독.
|
|
126
|
+
**멀티 LLM** — Claude가 오케스트레이션, GPT가 추론, Gemini가 리서치. 가용 모델에 따라 자동 라우팅. 기본값은 Claude 단독.
|
|
121
127
|
|
|
122
128
|
**스택 감지** — 24개 프레임워크 자동 감지 (Next.js, Django, Rails, Go, Rust, Flutter 등) 후 프레임워크별 규칙과 스킬 적용.
|
|
123
129
|
|
|
124
130
|
**세션 메모리** — 결정, 제약, 목표가 SQLite + FTS5 검색으로 세션 간 유지.
|
|
125
131
|
|
|
126
|
-
**Smart Resume** — `.last-feature` 포인터가 마지막 작업을 추적. 인자 없이 `/vibe
|
|
132
|
+
**Smart Resume** — `.last-feature` 포인터가 마지막 작업을 추적. 인자 없이 `/vibe`를 호출하면 중단된 위치를 보여주거나 진행 중 feature 목록을 제시.
|
|
127
133
|
|
|
128
134
|
---
|
|
129
135
|
|
|
@@ -132,8 +138,7 @@ claude
|
|
|
132
138
|
| CLI | 상태 |
|
|
133
139
|
|-----|------|
|
|
134
140
|
| [Claude Code](https://claude.ai/code) | 전체 지원 |
|
|
135
|
-
|
|
|
136
|
-
| [Codex](https://github.com/openai/codex) | 플러그인 |
|
|
141
|
+
| [Codex](https://github.com/openai/codex) | 전체 지원 (`~/.codex/`, AGENTS.md + config.toml notify) |
|
|
137
142
|
| [Cursor](https://cursor.sh) | 에이전트 + 룰 |
|
|
138
143
|
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | 에이전트 + 스킬 |
|
|
139
144
|
|
|
@@ -143,11 +148,12 @@ claude
|
|
|
143
148
|
|
|
144
149
|
| 명령어 | 용도 |
|
|
145
150
|
|--------|------|
|
|
146
|
-
| `/vibe
|
|
147
|
-
| `/vibe.
|
|
148
|
-
| `/vibe.
|
|
149
|
-
| `/vibe.
|
|
150
|
-
| `/vibe.
|
|
151
|
+
| `/vibe` | **메인 진입점** — 자연어 요구사항 → 동적 파이프라인 설계 → 1회 승인 → 자동 체인 실행 |
|
|
152
|
+
| `/vibe.spec` | (advanced) 인터뷰, 기획, SPEC, 리뷰 phase 명시적 호출 |
|
|
153
|
+
| `/vibe.run` | (advanced) SPEC 기반 구현 |
|
|
154
|
+
| `/vibe.figma` | (advanced) Figma ↔ 코드 (읽기 또는 쓰기, 3가지 모드) |
|
|
155
|
+
| `/vibe.verify` | (advanced) 구현이 SPEC에 맞는지 검증 |
|
|
156
|
+
| `/vibe.trace` | (advanced) 요구사항 추적 매트릭스 |
|
|
151
157
|
|
|
152
158
|
---
|
|
153
159
|
|
|
@@ -187,7 +187,7 @@ node "[LLM_SCRIPT]" gemini orchestrate-json \
|
|
|
187
187
|
```
|
|
188
188
|
/vibe.spec "login feature"
|
|
189
189
|
|
|
190
|
-
→ best-practices
|
|
190
|
+
→ best-practices execution (3 LLMs parallel):
|
|
191
191
|
- Claude: "Research authentication best practices: OAuth, JWT, session"
|
|
192
192
|
- GPT: "Architecture patterns for auth: repository, service layer"
|
|
193
193
|
- Gemini: "Latest auth trends: passkey, WebAuthn, passwordless"
|
|
@@ -200,7 +200,7 @@ node "[LLM_SCRIPT]" gemini orchestrate-json \
|
|
|
200
200
|
```text
|
|
201
201
|
/vibe.spec "payment feature"
|
|
202
202
|
|
|
203
|
-
→ security-advisory
|
|
203
|
+
→ security-advisory execution (3 LLMs parallel):
|
|
204
204
|
- Claude: "Research security for payment processing. Check PCI-DSS, OWASP."
|
|
205
205
|
- GPT: "CVE lookup for payment libraries, known exploits"
|
|
206
206
|
- Gemini: "Latest payment security advisories, recent breaches"
|
|
@@ -36,26 +36,26 @@
|
|
|
36
36
|
```text
|
|
37
37
|
TeamCreate(team_name="research-{feature}", description="Research collaboration for {feature}")
|
|
38
38
|
|
|
39
|
-
Task(team_name="research-{feature}", name="best-practices", subagent_type="best-practices
|
|
39
|
+
Task(team_name="research-{feature}", name="best-practices", subagent_type="best-practices",
|
|
40
40
|
prompt="리서치 팀 리더. 10개 병렬 리서치 결과를 종합하세요.
|
|
41
41
|
리서치 결과: {all_research_results}
|
|
42
42
|
역할: 패턴/안티패턴 종합, 팀원 간 충돌 해결, 최종 통합 요약 작성.
|
|
43
43
|
TaskList를 확인하고 작업을 claim하세요. 팀원에게 SendMessage로 검증을 요청하세요.
|
|
44
44
|
모든 작업 완료 후 최종 요약을 작성하세요.")
|
|
45
45
|
|
|
46
|
-
Task(team_name="research-{feature}", name="security-advisory", subagent_type="security-advisory
|
|
46
|
+
Task(team_name="research-{feature}", name="security-advisory", subagent_type="security-advisory",
|
|
47
47
|
prompt="리서치 팀 보안 담당. 리서치 결과: {all_research_results}
|
|
48
48
|
역할: 보안 관점에서 모든 권장사항 검증.
|
|
49
49
|
보안 리스크 발견 시 best-practices에게 SendMessage로 알리세요.
|
|
50
50
|
TaskList에서 보안 관련 작업을 claim하세요.")
|
|
51
51
|
|
|
52
|
-
Task(team_name="research-{feature}", name="codebase-patterns", subagent_type="codebase-patterns
|
|
52
|
+
Task(team_name="research-{feature}", name="codebase-patterns", subagent_type="codebase-patterns",
|
|
53
53
|
prompt="리서치 팀 코드베이스 담당. 리서치 결과: {all_research_results}
|
|
54
54
|
역할: 권장사항이 기존 코드 패턴과 호환되는지 검증.
|
|
55
55
|
비호환 발견 시 best-practices에게 SendMessage로 알리세요.
|
|
56
56
|
TaskList에서 호환성 관련 작업을 claim하세요.")
|
|
57
57
|
|
|
58
|
-
Task(team_name="research-{feature}", name="framework-docs", subagent_type="framework-docs
|
|
58
|
+
Task(team_name="research-{feature}", name="framework-docs", subagent_type="framework-docs",
|
|
59
59
|
prompt="리서치 팀 문서 담당. 리서치 결과: {all_research_results}
|
|
60
60
|
역할: 최신 API/문서와 권장사항 대조 검증.
|
|
61
61
|
폐기/변경된 API 발견 시 best-practices에게 SendMessage로 알리세요.
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
## 사용 스킬
|
|
21
21
|
|
|
22
22
|
- `/vibe.review` (Phase 4.5: Review Debate)
|
|
23
|
-
- `
|
|
23
|
+
- `spec-review` skill (Step 3.5: SPEC Debate)
|
|
24
24
|
- `/vibe.run` (Review Team: 구현 후 리뷰)
|
|
25
25
|
|
|
26
26
|
## 워크플로우
|
|
@@ -75,7 +75,7 @@ Task(team_name="review-debate-{feature}", name="simplicity-reviewer", subagent_t
|
|
|
75
75
|
TaskList에서 복잡도/단순화 관련 이슈를 claim하세요.")
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
### SPEC Review 컨텍스트 (
|
|
78
|
+
### SPEC Review 컨텍스트 (spec-review)
|
|
79
79
|
|
|
80
80
|
spawn 패턴은 동일하되, prompt의 입력이 다름:
|
|
81
81
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|------|------|-------|
|
|
9
9
|
| security-reviewer (리더) | OWASP Top 10 검증, 보안 이슈 우선순위 결정 | Sonnet |
|
|
10
10
|
| data-integrity-reviewer | 데이터 무결성, 트랜잭션 관리, 입력 검증 | Sonnet |
|
|
11
|
-
| security-advisory
|
|
11
|
+
| security-advisory | 사용 라이브러리 CVE 확인, 보안 패치 확인 | Haiku |
|
|
12
12
|
| tester | 보안 테스트 케이스 작성, 침투 테스트 시나리오 검증 | Haiku |
|
|
13
13
|
|
|
14
14
|
## 활성화 조건
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
|
24
24
|
├──→ security-reviewer: OWASP Top 10 검증 + 합의 주도
|
|
25
25
|
├──→ data-integrity-reviewer: 데이터 흐름 + 입력 검증
|
|
26
|
-
├──→ security-advisory
|
|
26
|
+
├──→ security-advisory: CVE 스캔 + 의존성 검사
|
|
27
27
|
└──→ tester: 보안 테스트 케이스 작성
|
|
28
28
|
|
|
|
29
29
|
[SendMessage 교차 보고]
|
|
@@ -51,7 +51,7 @@ Task(team_name="security-{feature}", name="data-integrity-reviewer", subagent_ty
|
|
|
51
51
|
Role: Check transaction management, input validation, data sanitization.
|
|
52
52
|
Report findings to security-reviewer.")
|
|
53
53
|
|
|
54
|
-
Task(team_name="security-{feature}", name="security-advisory
|
|
54
|
+
Task(team_name="security-{feature}", name="security-advisory", subagent_type="security-advisory",
|
|
55
55
|
prompt="Security team advisory specialist. Check dependencies for {feature}.
|
|
56
56
|
Role: Scan for known CVEs in project dependencies. Check security advisories.
|
|
57
57
|
Report critical findings to security-reviewer.")
|
|
@@ -69,7 +69,7 @@ Task(team_name="security-{feature}", name="tester", subagent_type="tester",
|
|
|
69
69
|
```text
|
|
70
70
|
security-reviewer → data-integrity-reviewer: "POST /users에서 입력 검증 확인 요청. SQL injection 가능성"
|
|
71
71
|
data-integrity-reviewer → security-reviewer: "입력 검증 없음 확인. parameterized query도 미사용. P1"
|
|
72
|
-
security-advisory
|
|
72
|
+
security-advisory → security-reviewer: "jsonwebtoken@8.x에 CVE-2024-xxxxx. jose로 마이그레이션 필요"
|
|
73
73
|
tester → security-reviewer: "auth bypass 테스트: admin 엔드포인트에 일반 토큰으로 접근 성공. P1"
|
|
74
74
|
security-reviewer → broadcast: "P1 3건 발견. merge 차단. 수정 후 재검증 필요"
|
|
75
75
|
```
|
package/dist/cli/auth.d.ts
CHANGED
|
@@ -23,7 +23,6 @@ export declare function formatClaudeCodeStatus(status: ClaudeCodeStatus): string
|
|
|
23
23
|
export declare function formatAuthMethods(auths: LLMAuthStatus[], cliInstalled?: boolean): string;
|
|
24
24
|
/**
|
|
25
25
|
* 통합 LLM/CLI 상태 포맷터 (status / init / update / upgrade 공용)
|
|
26
|
-
* - Coding Agent: coco
|
|
27
26
|
* - LLM CLI (vibe 멀티-오케스트레이션에서 호출 가능): Claude Code, Codex, Gemini
|
|
28
27
|
* - LLM API Key (직접 호출용): GPT, Gemini
|
|
29
28
|
*/
|
package/dist/cli/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI3E;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAe/C;AAID;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,UAAQ,GAAG,gBAAgB,CAsCvE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAWvE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAYxF;AAaD
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI3E;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAe/C;AAID;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,UAAQ,GAAG,gBAAgB,CAsCvE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAWvE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAYxF;AAaD;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAuBxC"}
|
package/dist/cli/auth.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
5
|
import { readGlobalConfig } from '../infra/lib/config/GlobalConfigManager.js';
|
|
6
|
-
import { detectClaudeCli,
|
|
6
|
+
import { detectClaudeCli, detectCodexCli, detectGeminiCli } from './utils/cli-detector.js';
|
|
7
7
|
/**
|
|
8
8
|
* LLM 인증 상태 확인 (config.json 우선, process.env fallback)
|
|
9
9
|
*/
|
|
@@ -106,13 +106,11 @@ function formatLlmCliRow(installed, authenticated) {
|
|
|
106
106
|
}
|
|
107
107
|
/**
|
|
108
108
|
* 통합 LLM/CLI 상태 포맷터 (status / init / update / upgrade 공용)
|
|
109
|
-
* - Coding Agent: coco
|
|
110
109
|
* - LLM CLI (vibe 멀티-오케스트레이션에서 호출 가능): Claude Code, Codex, Gemini
|
|
111
110
|
* - LLM API Key (직접 호출용): GPT, Gemini
|
|
112
111
|
*/
|
|
113
112
|
export function formatLLMStatus() {
|
|
114
113
|
const claudeCli = detectClaudeCli();
|
|
115
|
-
const cocoCli = detectCocoCli();
|
|
116
114
|
const codexCli = detectCodexCli();
|
|
117
115
|
const geminiCli = detectGeminiCli();
|
|
118
116
|
const apiStatus = getLLMAuthStatus();
|
|
@@ -121,22 +119,7 @@ export function formatLLMStatus() {
|
|
|
121
119
|
const geminiRow = formatLlmCliRow(geminiCli.installed, geminiCli.authenticated);
|
|
122
120
|
const gptKey = apiStatus.gpt.length > 0 ? '✓ Key' : '⬚ —';
|
|
123
121
|
const geminiKey = apiStatus.gemini.length > 0 ? '✓ Key' : '⬚ —';
|
|
124
|
-
const cocoLines = ['Coding Agent:'];
|
|
125
|
-
if (!cocoCli.installed) {
|
|
126
|
-
cocoLines.push(' coco ⬚ Not installed');
|
|
127
|
-
}
|
|
128
|
-
else if (!cocoCli.authenticated) {
|
|
129
|
-
cocoLines.push(' coco ✓ Installed, ⚠ No auth (run: coco auth)');
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
cocoLines.push(` coco ✓ Usable · active: ${cocoCli.activeVendor}`);
|
|
133
|
-
if (cocoCli.methods && cocoCli.methods.length > 0) {
|
|
134
|
-
cocoLines.push(` methods: ${cocoCli.methods.join(', ')}`);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
122
|
return [
|
|
138
|
-
...cocoLines,
|
|
139
|
-
'',
|
|
140
123
|
'LLM CLI (orchestration):',
|
|
141
124
|
` Claude Code ${claudeRow}`,
|
|
142
125
|
` Codex (GPT) ${codexRow}`,
|
package/dist/cli/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
/**
|
|
5
5
|
* 협업자 자동 설치 설정
|
|
6
6
|
*
|
|
7
|
-
* @param harnessDir '.claude' | '.
|
|
8
|
-
*
|
|
9
|
-
* harnessDir 은 README/안내 문구에서 CLI 이름(Claude Code vs
|
|
7
|
+
* @param harnessDir '.claude' | '.codex' (기본값: '.claude')
|
|
8
|
+
* 공통 setup.sh 는 `.vibe/` (SSOT) 에 저장.
|
|
9
|
+
* harnessDir 은 README/안내 문구에서 CLI 이름(Claude Code vs Codex) 결정용.
|
|
10
10
|
*/
|
|
11
11
|
export declare function setupCollaboratorAutoInstall(projectRoot: string, harnessDir?: string): void;
|
|
12
12
|
//# sourceMappingURL=collaborator.d.ts.map
|
package/dist/cli/collaborator.js
CHANGED
|
@@ -6,14 +6,14 @@ import fs from 'fs';
|
|
|
6
6
|
/**
|
|
7
7
|
* 협업자 자동 설치 설정
|
|
8
8
|
*
|
|
9
|
-
* @param harnessDir '.claude' | '.
|
|
10
|
-
*
|
|
11
|
-
* harnessDir 은 README/안내 문구에서 CLI 이름(Claude Code vs
|
|
9
|
+
* @param harnessDir '.claude' | '.codex' (기본값: '.claude')
|
|
10
|
+
* 공통 setup.sh 는 `.vibe/` (SSOT) 에 저장.
|
|
11
|
+
* harnessDir 은 README/안내 문구에서 CLI 이름(Claude Code vs Codex) 결정용.
|
|
12
12
|
*/
|
|
13
13
|
export function setupCollaboratorAutoInstall(projectRoot, harnessDir = '.claude') {
|
|
14
14
|
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
15
15
|
const coreDir = path.join(projectRoot, '.vibe');
|
|
16
|
-
const cliLabel = harnessDir === '.
|
|
16
|
+
const cliLabel = harnessDir === '.codex' ? 'Codex' : 'Claude Code';
|
|
17
17
|
// 1. Node.js 프로젝트: package.json 정리
|
|
18
18
|
if (fs.existsSync(packageJsonPath)) {
|
|
19
19
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collaborator.js","sourceRoot":"","sources":["../../src/cli/collaborator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAC1C,WAAmB,EACnB,aAAqB,SAAS;IAE9B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,UAAU,KAAK,
|
|
1
|
+
{"version":3,"file":"collaborator.js","sourceRoot":"","sources":["../../src/cli/collaborator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CA2C/B;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAyBjC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}
|
|
@@ -15,7 +15,6 @@ VIBE - Personalized AI Agent (Claude Code exclusive)
|
|
|
15
15
|
Commands:
|
|
16
16
|
vibe setup 셋업 위자드 (인증, 설정 한번에)
|
|
17
17
|
vibe init [project] 프로젝트 초기화 (.claude/ 대상)
|
|
18
|
-
vibe init --coco 프로젝트 초기화 (.coco/ 대상)
|
|
19
18
|
vibe init --codex 프로젝트 초기화 (.codex/ + AGENTS.md)
|
|
20
19
|
vibe init --gemini 프로젝트 초기화 (.gemini/ + GEMINI.md)
|
|
21
20
|
vibe update 설정 업데이트
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCX,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAErD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,MAAM,GAAyC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAClF,IAAI,aAAa,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/C,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,UAAU;IACV,MAAM,aAAa,GAAG,aAAa;QACjC,CAAC,CAAC,KAAK,WAAW,EAAE;QACpB,CAAC,CAAC,uCAAuC,CAAC;IAE5C,OAAO,CAAC,GAAG,CAAC;gBACE,WAAW,CAAC,OAAO;;WAExB,aAAa;EACtB,aAAa,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;EAC7D,eAAe,EAAE;GAChB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -9,10 +9,10 @@ import { CliOptions } from '../types.js';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare function updateCursorGlobalAssets(detectedStacks?: string[], options?: CliOptions): void;
|
|
11
11
|
/**
|
|
12
|
-
* 스택 + capability 기반 로컬 스킬 설치 (.claude/skills/
|
|
12
|
+
* 스택 + capability 기반 로컬 스킬 설치 (.claude/skills/)
|
|
13
13
|
* init, update 공용
|
|
14
14
|
*
|
|
15
|
-
* @param harnessDir '.claude'
|
|
15
|
+
* @param harnessDir '.claude' (기본값: '.claude')
|
|
16
16
|
*/
|
|
17
17
|
export declare function installLocalSkills(projectRoot: string, stackTypes: string[], capabilities?: string[], harnessDir?: string): void;
|
|
18
18
|
/**
|
|
@@ -28,9 +28,8 @@ export declare function installLanguageRules(projectRoot: string, stackTypes: st
|
|
|
28
28
|
* @param projectName 새 프로젝트 디렉토리 이름 (생략 시 cwd 사용)
|
|
29
29
|
* @param target 초기화 대상 하네스.
|
|
30
30
|
* - 'cc' → `.claude/` + CLAUDE.md (기본)
|
|
31
|
-
* - 'coco' → `.coco/` + AGENTS.md
|
|
32
31
|
* - 'codex' → `.codex/` + AGENTS.md
|
|
33
32
|
* - 'gemini' → `.gemini/` + GEMINI.md
|
|
34
33
|
*/
|
|
35
|
-
export declare function init(projectName?: string, target?: 'cc' | '
|
|
34
|
+
export declare function init(projectName?: string, target?: 'cc' | 'codex' | 'gemini'): Promise<void>;
|
|
36
35
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoCzC;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,GAAE,MAAM,EAAO,EAC7B,OAAO,GAAE,UAA8B,GACtC,IAAI,CA+BN;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,YAAY,GAAE,MAAM,EAAO,EAC3B,UAAU,GAAE,MAAkB,GAC7B,IAAI,CAYN;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,GAAE,MAAkB,GAC7B,IAAI,CA8BN;AAmBD;;;;;;;;GAQG;AACH,wBAAsB,IAAI,CACxB,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,GAAE,IAAI,GAAG,OAAO,GAAG,QAAe,GACvC,OAAO,CAAC,IAAI,CAAC,CA2Sf"}
|