codymaster 4.4.4 → 4.5.1
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/CHANGELOG.md +33 -0
- package/README.md +29 -14
- package/commands/demo.md +1 -1
- package/dist/context-bus.js +70 -0
- package/dist/context-db.js +265 -0
- package/dist/continuity.js +12 -0
- package/dist/file-watcher.js +79 -0
- package/dist/index.js +152 -1
- package/dist/l0-indexer.js +158 -0
- package/dist/mcp-context-server.js +400 -0
- package/dist/migrate-json-to-sqlite.js +126 -0
- package/dist/skill-chain.js +19 -3
- package/dist/token-budget.js +108 -0
- package/dist/uri-resolver.js +203 -0
- package/package.json +7 -1
- package/skills/_shared/helpers.md +50 -14
- package/skills/cm-autopilot/SKILL.md +29 -0
- package/skills/cm-autopilot/scripts/autopilot.py +190 -0
- package/skills/cm-continuity/SKILL.md +90 -28
- package/skills/cm-quality-gate/SKILL.md +11 -1
- package/skills/cm-safe-deploy/SKILL.md +38 -2
- package/skills/cm-security-gate/SKILL.md +158 -34
- package/skills/cm-skill-chain/SKILL.md +47 -1
- package/skills/cm-start/SKILL.md +11 -2
- package/skills/cm-test-gate/SKILL.md +3 -0
- package/skills/boxme-git-config/SKILL.md +0 -56
- package/skills/boxme-local-dev/SKILL.md +0 -66
- package/skills/jobs-to-be-done/SKILL.md +0 -266
- package/skills/jobs-to-be-done/references/case-studies.md +0 -154
- package/skills/jobs-to-be-done/references/competitive-strategy.md +0 -280
- package/skills/jobs-to-be-done/references/diagnostics.md +0 -158
- package/skills/jobs-to-be-done/references/innovation-process.md +0 -392
- package/skills/jobs-to-be-done/references/organizational-change.md +0 -328
- package/skills/marketplace-report-crawler/SKILL.md +0 -176
- package/skills/marketplace-report-crawler/config/accounts.json +0 -41
- package/skills/marketplace-report-crawler/config/report-types.json +0 -422
- package/skills/marketplace-report-crawler/config/sessions.json +0 -3
- package/skills/marketplace-report-crawler/scripts/ab-wrapper.sh +0 -102
- package/skills/marketplace-report-crawler/scripts/browser-actions/lazada/lazada-actions.js +0 -114
- package/skills/marketplace-report-crawler/scripts/browser-actions/shopee/shopee-actions.js +0 -94
- package/skills/marketplace-report-crawler/scripts/browser-actions/tiktok/tiktok-actions.js +0 -272
- package/skills/marketplace-report-crawler/scripts/crawl-runner.js +0 -281
- package/skills/marketplace-report-crawler/scripts/session-check.sh +0 -72
- package/skills/marketplace-report-crawler/scripts/session-manager.sh +0 -349
- package/skills/marketplace-report-crawler/scripts/setup-folders.sh +0 -83
- package/skills/medical-research/SKILL.md +0 -194
- package/skills/medical-research/scripts/evidence_checker.py +0 -288
- package/skills/mom-test/SKILL.md +0 -267
- package/skills/mom-test/references/avoiding-bad-data.md +0 -221
- package/skills/mom-test/references/case-studies.md +0 -306
- package/skills/mom-test/references/commitment-advancement.md +0 -219
- package/skills/mom-test/references/finding-conversations.md +0 -251
- package/skills/mom-test/references/processing-learning.md +0 -256
- package/skills/mom-test/references/question-patterns.md +0 -198
- package/skills/pandasai-analytics/SKILL.md +0 -251
- package/skills/release-it/SKILL.md +0 -235
- package/skills/release-it/references/anti-patterns.md +0 -279
- package/skills/release-it/references/capacity-planning.md +0 -285
- package/skills/release-it/references/chaos-engineering.md +0 -325
- package/skills/release-it/references/deployment-strategies.md +0 -331
- package/skills/release-it/references/observability.md +0 -301
- package/skills/release-it/references/stability-patterns.md +0 -355
- package/skills/skill-creator-ultra/.agents/workflows/skill-audit.md +0 -37
- package/skills/skill-creator-ultra/.agents/workflows/skill-compare.md +0 -34
- package/skills/skill-creator-ultra/.agents/workflows/skill-export.md +0 -51
- package/skills/skill-creator-ultra/.agents/workflows/skill-generate.md +0 -39
- package/skills/skill-creator-ultra/.agents/workflows/skill-scaffold.md +0 -52
- package/skills/skill-creator-ultra/.agents/workflows/skill-simulate.md +0 -25
- package/skills/skill-creator-ultra/.agents/workflows/skill-stats.md +0 -31
- package/skills/skill-creator-ultra/.agents/workflows/skill-validate.md +0 -25
- package/skills/skill-creator-ultra/README.md +0 -1242
- package/skills/skill-creator-ultra/SKILL.md +0 -388
- package/skills/skill-creator-ultra/agents/analyzer.md +0 -274
- package/skills/skill-creator-ultra/agents/comparator.md +0 -202
- package/skills/skill-creator-ultra/agents/grader.md +0 -223
- package/skills/skill-creator-ultra/assets/eval_review.html +0 -146
- package/skills/skill-creator-ultra/eval-viewer/generate_review.py +0 -471
- package/skills/skill-creator-ultra/eval-viewer/viewer.html +0 -1325
- package/skills/skill-creator-ultra/examples/example_anthropic_frontend.md +0 -109
- package/skills/skill-creator-ultra/examples/example_anthropic_pdf.md +0 -116
- package/skills/skill-creator-ultra/examples/example_api_docs.md +0 -189
- package/skills/skill-creator-ultra/examples/example_db_migration.md +0 -253
- package/skills/skill-creator-ultra/examples/example_git_commit.md +0 -111
- package/skills/skill-creator-ultra/install.ps1 +0 -289
- package/skills/skill-creator-ultra/install.sh +0 -313
- package/skills/skill-creator-ultra/phases/phase1_interview.md +0 -202
- package/skills/skill-creator-ultra/phases/phase2_extract.md +0 -55
- package/skills/skill-creator-ultra/phases/phase3_detect.md +0 -57
- package/skills/skill-creator-ultra/phases/phase4_generate.md +0 -543
- package/skills/skill-creator-ultra/phases/phase5_test.md +0 -319
- package/skills/skill-creator-ultra/phases/phase6_eval.md +0 -301
- package/skills/skill-creator-ultra/phases/phase7_iterate.md +0 -103
- package/skills/skill-creator-ultra/phases/phase8_optimize.md +0 -113
- package/skills/skill-creator-ultra/resources/advanced_patterns.md +0 -499
- package/skills/skill-creator-ultra/resources/anti_patterns.md +0 -376
- package/skills/skill-creator-ultra/resources/blueprints.md +0 -498
- package/skills/skill-creator-ultra/resources/checklist.md +0 -243
- package/skills/skill-creator-ultra/resources/composition_cookbook.md +0 -291
- package/skills/skill-creator-ultra/resources/description_optimization.md +0 -90
- package/skills/skill-creator-ultra/resources/eval_guide.md +0 -133
- package/skills/skill-creator-ultra/resources/industry_questions.md +0 -189
- package/skills/skill-creator-ultra/resources/interview_questions.md +0 -200
- package/skills/skill-creator-ultra/resources/pattern_detection.md +0 -200
- package/skills/skill-creator-ultra/resources/prompt_engineering.md +0 -531
- package/skills/skill-creator-ultra/resources/schemas.md +0 -430
- package/skills/skill-creator-ultra/resources/script_integration.md +0 -593
- package/skills/skill-creator-ultra/resources/scripts_guide.md +0 -339
- package/skills/skill-creator-ultra/resources/skill_template.md +0 -124
- package/skills/skill-creator-ultra/resources/skill_writing_guide.md +0 -634
- package/skills/skill-creator-ultra/resources/versioning_guide.md +0 -193
- package/skills/skill-creator-ultra/scripts/ci_eval.py +0 -200
- package/skills/skill-creator-ultra/scripts/package_skill.py +0 -165
- package/skills/skill-creator-ultra/scripts/simulate_skill.py +0 -398
- package/skills/skill-creator-ultra/scripts/skill_audit.py +0 -611
- package/skills/skill-creator-ultra/scripts/skill_compare.py +0 -265
- package/skills/skill-creator-ultra/scripts/skill_export.py +0 -334
- package/skills/skill-creator-ultra/scripts/skill_scaffold.py +0 -403
- package/skills/skill-creator-ultra/scripts/skill_stats.py +0 -339
- package/skills/skill-creator-ultra/scripts/validate_skill.py +0 -411
- package/skills/tailwind-mastery/SKILL.md +0 -229
- package/skills/vercel-react-best-practices/AGENTS.md +0 -3373
- package/skills/vercel-react-best-practices/README.md +0 -123
- package/skills/vercel-react-best-practices/SKILL.md +0 -143
- package/skills/vercel-react-best-practices/rules/_sections.md +0 -46
- package/skills/vercel-react-best-practices/rules/_template.md +0 -28
- package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
- package/skills/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
- package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
- package/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -38
- package/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -80
- package/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -51
- package/skills/vercel-react-best-practices/rules/async-parallel.md +0 -28
- package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
- package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -59
- package/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
- package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
- package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
- package/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -50
- package/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
- package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
- package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
- package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
- package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
- package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
- package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
- package/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
- package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
- package/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -50
- package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
- package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
- package/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -37
- package/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
- package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
- package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
- package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
- package/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -26
- package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
- package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
- package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
- package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
- package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
- package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
- package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
- package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
- package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
- package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
- package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
- package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
- package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
- package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
- package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
- package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
- package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
- package/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -44
- package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
- package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
- package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
- package/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +0 -64
- package/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
- package/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +0 -59
- package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
- package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
- package/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
- package/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
- package/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -76
- package/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
- package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -142
- package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
- package/skills/vercel-react-best-practices/rules/server-serialization.md +0 -38
- package/skills/web-design-guidelines/SKILL.md +0 -39
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
# Example: git-commit-formatter (🟢 Đơn giản — Complexity 4)
|
|
2
|
-
|
|
3
|
-
> **Nguồn cảm hứng:** Conventional Commits spec + Anthropic's atomic skill design.
|
|
4
|
-
> **Mức độ:** Đơn giản — chỉ cần SKILL.md, không cần resources hay scripts.
|
|
5
|
-
> **Tham khảo:** Anthropic's `frontend-design` skill cũng chỉ 43 dòng, không resources.
|
|
6
|
-
|
|
7
|
-
## 📂 Cấu trúc
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
skills/git-commit-formatter/
|
|
11
|
-
├── SKILL.md ← 1 file duy nhất, đủ cho skill đơn giản
|
|
12
|
-
└── README.md ← Hướng dẫn cài đặt
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## 📄 File 1: SKILL.md
|
|
18
|
-
|
|
19
|
-
```markdown
|
|
20
|
-
---
|
|
21
|
-
name: git-commit-formatter
|
|
22
|
-
description: |
|
|
23
|
-
Định dạng commit Git theo chuẩn Conventional Commits (feat, fix, docs,
|
|
24
|
-
style, refactor, test, chore). Dùng khi user nói "commit", "commit message",
|
|
25
|
-
"viết commit", "conventional commit", "format commit", hoặc khi staged
|
|
26
|
-
changes đang chờ commit. KHÔNG dùng cho: tạo PR, viết changelog, review code.
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
# Goal
|
|
30
|
-
|
|
31
|
-
Sinh commit message chuẩn Conventional Commits từ staged changes,
|
|
32
|
-
đảm bảo nhất quán và dễ trace trong lịch sử Git.
|
|
33
|
-
|
|
34
|
-
# Instructions
|
|
35
|
-
|
|
36
|
-
1. Chạy `git diff --cached --stat` → xem danh sách files staged.
|
|
37
|
-
2. Chạy `git diff --cached` → đọc nội dung thay đổi chi tiết.
|
|
38
|
-
3. Phân tích thay đổi → xác định type phù hợp nhất:
|
|
39
|
-
- **feat** = tính năng mới
|
|
40
|
-
- **fix** = sửa lỗi
|
|
41
|
-
- **docs** = chỉ tài liệu
|
|
42
|
-
- **style** = format, không thay đổi logic
|
|
43
|
-
- **refactor** = tái cấu trúc, không thêm feature hay fix bug
|
|
44
|
-
- **test** = thêm/sửa test
|
|
45
|
-
- **chore** = bảo trì (deps, config, CI)
|
|
46
|
-
4. Xác định scope — module/component chính bị ảnh hưởng.
|
|
47
|
-
- Nếu thay đổi ≤ 3 files cùng module → scope = tên module
|
|
48
|
-
- Nếu thay đổi > 3 files hoặc cross-module → bỏ scope
|
|
49
|
-
5. Viết description ≤ 72 ký tự, bắt đầu bằng chữ thường.
|
|
50
|
-
6. Nếu breaking change → thêm `!` sau type: `feat!: description`
|
|
51
|
-
7. Đề xuất: `git commit -m "<type>(<scope>): <description>"`
|
|
52
|
-
|
|
53
|
-
# Examples
|
|
54
|
-
|
|
55
|
-
## Ví dụ 1: Thêm tính năng đăng nhập
|
|
56
|
-
**Input:** Staged: `src/auth/login.ts`, `src/auth/login.test.ts`
|
|
57
|
-
**Output:** `git commit -m "feat(auth): add login functionality with unit tests"`
|
|
58
|
-
|
|
59
|
-
## Ví dụ 2: Sửa lỗi giao diện
|
|
60
|
-
**Input:** Staged: `src/components/Header.tsx` (sửa 3 dòng CSS)
|
|
61
|
-
**Output:** `git commit -m "fix(ui): resolve header alignment issue on mobile"`
|
|
62
|
-
|
|
63
|
-
## Ví dụ 3: Cập nhật tài liệu
|
|
64
|
-
**Input:** Staged: `README.md`, `docs/setup.md`
|
|
65
|
-
**Output:** `git commit -m "docs: update setup instructions and readme"`
|
|
66
|
-
|
|
67
|
-
# Constraints
|
|
68
|
-
|
|
69
|
-
- Dòng commit đầu tiên ≤ 72 ký tự — Git và GitHub truncate nếu dài hơn
|
|
70
|
-
- Bắt đầu description bằng chữ thường — convention chuẩn, không capitalize
|
|
71
|
-
- Không kết thúc bằng dấu chấm — tiết kiệm ký tự, convention chuẩn
|
|
72
|
-
- Dùng tiếng Anh cho description — trừ khi user yêu cầu tiếng Việt
|
|
73
|
-
- Chọn type chính xác nhất — nếu vừa feat vừa fix, tách thành 2 commits
|
|
74
|
-
|
|
75
|
-
<!-- Generated by Skill Creator Ultra v1.0 -->
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## 📄 File 2: README.md
|
|
81
|
-
|
|
82
|
-
```markdown
|
|
83
|
-
# 🔧 Git Commit Formatter
|
|
84
|
-
|
|
85
|
-
> Sinh commit message chuẩn Conventional Commits từ staged changes.
|
|
86
|
-
|
|
87
|
-
## ⚙️ Cài đặt
|
|
88
|
-
|
|
89
|
-
### Antigravity (Global)
|
|
90
|
-
cp -r git-commit-formatter ~/.gemini/antigravity/skills/
|
|
91
|
-
|
|
92
|
-
## 🚀 Dùng thử
|
|
93
|
-
Mở chat mới, nói: "commit đi" hoặc "viết commit message"
|
|
94
|
-
|
|
95
|
-
## 📦 Nguồn gốc
|
|
96
|
-
> Generated by Skill Creator Ultra v1.0
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
## 🔍 Phân tích: Tại sao skill này tốt?
|
|
102
|
-
|
|
103
|
-
| Tiêu chí | Đánh giá | Ghi chú |
|
|
104
|
-
|---|---|---|
|
|
105
|
-
| **Description "pushy"** | ✅ | Liệt kê 6 trigger phrases + 3 anti-triggers |
|
|
106
|
-
| **Atomic Logic** | ✅ | 1 skill = 1 việc (chỉ commit, không PR/changelog) |
|
|
107
|
-
| **Examples** | ✅ 3 cái | Happy path + edge case + minimal |
|
|
108
|
-
| **Explain The Why** | ✅ | "≤ 72 ký tự — Git truncate nếu dài hơn" |
|
|
109
|
-
| **Error Recovery** | ⚠️ Thiếu | Có thể thêm: "Nếu không có staged files → hỏi user" |
|
|
110
|
-
| **SKILL.md < 500 dòng** | ✅ | ~70 dòng |
|
|
111
|
-
| **Không cần resources** | ✅ | Đúng cho skill đơn giản |
|
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
# ============================================================
|
|
2
|
-
# 🧠 Skill Creator Ultra — One-Click Installer (Windows)
|
|
3
|
-
# Supports: Antigravity, Claude Code, Cursor, Windsurf,
|
|
4
|
-
# Cline, GitHub Copilot, OpenClaw
|
|
5
|
-
# ============================================================
|
|
6
|
-
|
|
7
|
-
$ErrorActionPreference = "Stop"
|
|
8
|
-
|
|
9
|
-
$REPO_URL = "https://github.com/marketingjuliancongdanh79-pixel/skill-generator.git"
|
|
10
|
-
$SKILL_NAME = "skill-creator-ultra"
|
|
11
|
-
$TMP_DIR = "$env:TEMP\$SKILL_NAME-install"
|
|
12
|
-
$VERSION = "1.1.0"
|
|
13
|
-
|
|
14
|
-
function Write-Header {
|
|
15
|
-
Write-Host ""
|
|
16
|
-
Write-Host "🧠 Skill Creator Ultra v$VERSION — Installer" -ForegroundColor Cyan
|
|
17
|
-
Write-Host ("═" * 48) -ForegroundColor Cyan
|
|
18
|
-
Write-Host ""
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function Write-Success { param($msg) Write-Host "✅ $msg" -ForegroundColor Green }
|
|
22
|
-
function Write-Error2 { param($msg) Write-Host "❌ $msg" -ForegroundColor Red }
|
|
23
|
-
function Write-Info { param($msg) Write-Host "ℹ️ $msg" -ForegroundColor Blue }
|
|
24
|
-
|
|
25
|
-
function Test-GitInstalled {
|
|
26
|
-
try { git --version | Out-Null; return $true }
|
|
27
|
-
catch {
|
|
28
|
-
Write-Error2 "Git is not installed. Download from https://git-scm.com"
|
|
29
|
-
return $false
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function Get-Repo {
|
|
34
|
-
if (Test-Path $TMP_DIR) {
|
|
35
|
-
Write-Info "Updating existing download..."
|
|
36
|
-
Push-Location $TMP_DIR
|
|
37
|
-
git pull --quiet 2>$null
|
|
38
|
-
Pop-Location
|
|
39
|
-
} else {
|
|
40
|
-
Write-Info "Downloading Skill Creator Ultra..."
|
|
41
|
-
git clone --quiet $REPO_URL $TMP_DIR 2>$null
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function Install-To {
|
|
46
|
-
param($TargetDir, $PlatformName)
|
|
47
|
-
|
|
48
|
-
$parentDir = Split-Path $TargetDir -Parent
|
|
49
|
-
if (-not (Test-Path $parentDir)) {
|
|
50
|
-
New-Item -ItemType Directory -Path $parentDir -Force | Out-Null
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (Test-Path $TargetDir) {
|
|
54
|
-
Write-Info "Removing old installation..."
|
|
55
|
-
Remove-Item $TargetDir -Recurse -Force
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
Copy-Item $TMP_DIR $TargetDir -Recurse
|
|
59
|
-
Remove-Item "$TargetDir\.git" -Recurse -Force -ErrorAction SilentlyContinue
|
|
60
|
-
|
|
61
|
-
Write-Success "Installed to: $TargetDir"
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
# Bridge/Rule file creators
|
|
65
|
-
function New-ClaudeBridge {
|
|
66
|
-
$claudeMd = "CLAUDE.md"
|
|
67
|
-
$bridge = @"
|
|
68
|
-
|
|
69
|
-
## Skill Creator Ultra
|
|
70
|
-
When user asks to "create skill", "turn workflow into skill", or "automate this":
|
|
71
|
-
- Read ``.claude/commands/$SKILL_NAME/SKILL.md``
|
|
72
|
-
- Follow the 8 Phase pipeline
|
|
73
|
-
- Reference resources/ for templates and best practices
|
|
74
|
-
"@
|
|
75
|
-
|
|
76
|
-
if (Test-Path $claudeMd) {
|
|
77
|
-
$content = Get-Content $claudeMd -Raw
|
|
78
|
-
if ($content -notmatch "Skill Creator Ultra") {
|
|
79
|
-
Add-Content $claudeMd $bridge
|
|
80
|
-
Write-Success "Appended bridge to existing CLAUDE.md"
|
|
81
|
-
} else {
|
|
82
|
-
Write-Info "CLAUDE.md already has Skill Creator Ultra bridge"
|
|
83
|
-
}
|
|
84
|
-
} else {
|
|
85
|
-
Set-Content $claudeMd $bridge
|
|
86
|
-
Write-Success "Created CLAUDE.md with bridge"
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function New-CursorRule {
|
|
91
|
-
$rulesDir = ".cursor\rules"
|
|
92
|
-
New-Item -ItemType Directory -Path $rulesDir -Force | Out-Null
|
|
93
|
-
|
|
94
|
-
$rule = @"
|
|
95
|
-
---
|
|
96
|
-
description: Create AI Skills from ideas or workflows using 8-phase pipeline
|
|
97
|
-
globs:
|
|
98
|
-
alwaysApply: false
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
When user requests "create skill", "turn workflow into skill", or "automate":
|
|
102
|
-
- Read ``.cursor/rules/skill-creator-ultra/SKILL.md``
|
|
103
|
-
- Follow 8 Phase pipeline
|
|
104
|
-
- Reference resources/ for templates and best practices
|
|
105
|
-
"@
|
|
106
|
-
|
|
107
|
-
Set-Content "$rulesDir\$SKILL_NAME.mdc" $rule
|
|
108
|
-
Write-Success "Created Cursor rule file"
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
function New-WindsurfRule {
|
|
112
|
-
$rulesDir = ".windsurf\rules"
|
|
113
|
-
New-Item -ItemType Directory -Path $rulesDir -Force | Out-Null
|
|
114
|
-
|
|
115
|
-
$rule = @"
|
|
116
|
-
---
|
|
117
|
-
trigger: manual
|
|
118
|
-
description: Create AI Skills from ideas or workflows using 8-phase pipeline
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
When user requests "create skill", "turn workflow into skill", or "automate":
|
|
122
|
-
- Read ``.windsurf/rules/skill-creator-ultra/SKILL.md``
|
|
123
|
-
- Follow 8 Phase pipeline
|
|
124
|
-
"@
|
|
125
|
-
|
|
126
|
-
Set-Content "$rulesDir\$SKILL_NAME.md" $rule
|
|
127
|
-
Write-Success "Created Windsurf rule file"
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
function New-CopilotInstructions {
|
|
131
|
-
$githubDir = ".github"
|
|
132
|
-
New-Item -ItemType Directory -Path $githubDir -Force | Out-Null
|
|
133
|
-
$instructions = "$githubDir\copilot-instructions.md"
|
|
134
|
-
|
|
135
|
-
$text = @"
|
|
136
|
-
|
|
137
|
-
## Skill Creator Ultra
|
|
138
|
-
When user requests "create skill" or "automate this":
|
|
139
|
-
- Read ``.github/$SKILL_NAME/SKILL.md``
|
|
140
|
-
- Follow 8 Phase pipeline
|
|
141
|
-
"@
|
|
142
|
-
|
|
143
|
-
if (Test-Path $instructions) {
|
|
144
|
-
$content = Get-Content $instructions -Raw
|
|
145
|
-
if ($content -notmatch "Skill Creator Ultra") {
|
|
146
|
-
Add-Content $instructions $text
|
|
147
|
-
Write-Success "Appended to copilot-instructions.md"
|
|
148
|
-
} else {
|
|
149
|
-
Write-Info "copilot-instructions.md already configured"
|
|
150
|
-
}
|
|
151
|
-
} else {
|
|
152
|
-
Set-Content $instructions $text
|
|
153
|
-
Write-Success "Created copilot-instructions.md"
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
# Platform installers
|
|
158
|
-
function Install-AntigravityGlobal {
|
|
159
|
-
$target = "$env:USERPROFILE\.gemini\antigravity\skills\$SKILL_NAME"
|
|
160
|
-
Install-To $target "Antigravity (Global)"
|
|
161
|
-
Write-Host ""
|
|
162
|
-
Write-Info "Open a new Antigravity chat and say: 'tạo skill mới'"
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
function Install-AntigravityWorkspace {
|
|
166
|
-
$target = ".agent\skills\$SKILL_NAME"
|
|
167
|
-
Install-To $target "Antigravity (Workspace)"
|
|
168
|
-
Write-Host ""
|
|
169
|
-
Write-Info "Open a new Antigravity chat and say: 'tạo skill mới'"
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
function Install-ClaudeCode {
|
|
173
|
-
$target = "$env:USERPROFILE\.claude\commands\$SKILL_NAME"
|
|
174
|
-
Install-To $target "Claude Code (Global)"
|
|
175
|
-
New-ClaudeBridge
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
function Install-Cursor {
|
|
179
|
-
$target = ".cursor\rules\$SKILL_NAME"
|
|
180
|
-
Install-To $target "Cursor"
|
|
181
|
-
New-CursorRule
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
function Install-Windsurf {
|
|
185
|
-
$target = ".windsurf\rules\$SKILL_NAME"
|
|
186
|
-
Install-To $target "Windsurf"
|
|
187
|
-
New-WindsurfRule
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
function Install-Cline {
|
|
191
|
-
$target = ".clinerules\$SKILL_NAME"
|
|
192
|
-
Install-To $target "Cline"
|
|
193
|
-
Write-Host ""
|
|
194
|
-
Write-Info "Add to Cline Settings → Custom Instructions:"
|
|
195
|
-
Write-Host ' When user requests "create skill" or "automate":'
|
|
196
|
-
Write-Host " - Read .clinerules/$SKILL_NAME/SKILL.md"
|
|
197
|
-
Write-Host " - Follow 8 Phase pipeline"
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
function Install-Copilot {
|
|
201
|
-
$target = ".github\$SKILL_NAME"
|
|
202
|
-
Install-To $target "GitHub Copilot"
|
|
203
|
-
New-CopilotInstructions
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
function Install-OpenClaw {
|
|
207
|
-
Write-Host ""
|
|
208
|
-
Write-Info "OpenClaw uses System Prompt — cannot auto-install."
|
|
209
|
-
Write-Host ""
|
|
210
|
-
Write-Host " Manual steps:"
|
|
211
|
-
Write-Host " 1. Open SKILL.md from: $TMP_DIR\SKILL.md"
|
|
212
|
-
Write-Host " 2. Copy contents into your Agent's System Prompt"
|
|
213
|
-
Write-Host " 3. Optionally upload resources/ to knowledge base"
|
|
214
|
-
Write-Host ""
|
|
215
|
-
Write-Success "Files downloaded to: $TMP_DIR"
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
function Install-All {
|
|
219
|
-
Install-AntigravityGlobal; Write-Host ""
|
|
220
|
-
Install-ClaudeCode; Write-Host ""
|
|
221
|
-
Install-Cursor; Write-Host ""
|
|
222
|
-
Install-Windsurf; Write-Host ""
|
|
223
|
-
Install-Cline; Write-Host ""
|
|
224
|
-
Install-Copilot; Write-Host ""
|
|
225
|
-
Install-OpenClaw
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
# Menu
|
|
229
|
-
function Show-Menu {
|
|
230
|
-
Write-Host " 1) 🟢 Google Antigravity (Global — all projects)" -ForegroundColor Green
|
|
231
|
-
Write-Host " 2) 🟢 Google Antigravity (Workspace — this project)" -ForegroundColor Green
|
|
232
|
-
Write-Host " 3) 🟣 Claude Code" -ForegroundColor Magenta
|
|
233
|
-
Write-Host " 4) 🔵 Cursor" -ForegroundColor Blue
|
|
234
|
-
Write-Host " 5) 🟠 Windsurf" -ForegroundColor Yellow
|
|
235
|
-
Write-Host " 6) 🟤 Cline" -ForegroundColor DarkYellow
|
|
236
|
-
Write-Host " 7) ⚫ GitHub Copilot"
|
|
237
|
-
Write-Host " 8) 🐾 OpenClaw"
|
|
238
|
-
Write-Host " 9) 📦 Install ALL platforms" -ForegroundColor Cyan
|
|
239
|
-
Write-Host " 0) ❌ Exit"
|
|
240
|
-
Write-Host ""
|
|
241
|
-
$choice = Read-Host "Choose platform (0-9)"
|
|
242
|
-
return $choice
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
# Main
|
|
246
|
-
function Main {
|
|
247
|
-
param($DirectChoice)
|
|
248
|
-
|
|
249
|
-
Write-Header
|
|
250
|
-
|
|
251
|
-
if (-not (Test-GitInstalled)) { exit 1 }
|
|
252
|
-
|
|
253
|
-
if ($DirectChoice) {
|
|
254
|
-
$choice = $DirectChoice
|
|
255
|
-
} else {
|
|
256
|
-
$choice = Show-Menu
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
Write-Host ""
|
|
260
|
-
Get-Repo
|
|
261
|
-
Write-Host ""
|
|
262
|
-
|
|
263
|
-
switch ($choice) {
|
|
264
|
-
"1" { Install-AntigravityGlobal }
|
|
265
|
-
"2" { Install-AntigravityWorkspace }
|
|
266
|
-
"3" { Install-ClaudeCode }
|
|
267
|
-
"4" { Install-Cursor }
|
|
268
|
-
"5" { Install-Windsurf }
|
|
269
|
-
"6" { Install-Cline }
|
|
270
|
-
"7" { Install-Copilot }
|
|
271
|
-
"8" { Install-OpenClaw }
|
|
272
|
-
"9" { Install-All }
|
|
273
|
-
"0" { Write-Host "Bye!"; exit 0 }
|
|
274
|
-
default { Write-Error2 "Invalid choice"; exit 1 }
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
Write-Host ""
|
|
278
|
-
Write-Host ("═" * 48) -ForegroundColor Cyan
|
|
279
|
-
Write-Success "Skill Creator Ultra v$VERSION installed!"
|
|
280
|
-
Write-Host ("═" * 48) -ForegroundColor Cyan
|
|
281
|
-
Write-Host ""
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
# Run — support direct choice via argument
|
|
285
|
-
if ($args.Count -gt 0) {
|
|
286
|
-
Main -DirectChoice $args[0]
|
|
287
|
-
} else {
|
|
288
|
-
Main
|
|
289
|
-
}
|
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# ============================================================
|
|
3
|
-
# 🧠 Skill Creator Ultra — One-Click Installer
|
|
4
|
-
# Supports: Antigravity, Claude Code, Cursor, Windsurf,
|
|
5
|
-
# Cline, GitHub Copilot, OpenClaw
|
|
6
|
-
# ============================================================
|
|
7
|
-
|
|
8
|
-
set -e
|
|
9
|
-
|
|
10
|
-
REPO_URL="https://github.com/marketingjuliancongdanh79-pixel/skill-generator.git"
|
|
11
|
-
SKILL_NAME="skill-creator-ultra"
|
|
12
|
-
TMP_DIR="/tmp/$SKILL_NAME-install"
|
|
13
|
-
VERSION="1.1.0"
|
|
14
|
-
|
|
15
|
-
# Colors
|
|
16
|
-
RED='\033[0;31m'
|
|
17
|
-
GREEN='\033[0;32m'
|
|
18
|
-
YELLOW='\033[1;33m'
|
|
19
|
-
BLUE='\033[0;34m'
|
|
20
|
-
PURPLE='\033[0;35m'
|
|
21
|
-
CYAN='\033[0;36m'
|
|
22
|
-
NC='\033[0m' # No Color
|
|
23
|
-
BOLD='\033[1m'
|
|
24
|
-
|
|
25
|
-
print_header() {
|
|
26
|
-
echo ""
|
|
27
|
-
echo -e "${BOLD}${CYAN}🧠 Skill Creator Ultra v${VERSION} — Installer${NC}"
|
|
28
|
-
echo -e "${CYAN}════════════════════════════════════════════${NC}"
|
|
29
|
-
echo ""
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
print_success() {
|
|
33
|
-
echo -e "${GREEN}✅ $1${NC}"
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
print_error() {
|
|
37
|
-
echo -e "${RED}❌ $1${NC}"
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
print_info() {
|
|
41
|
-
echo -e "${BLUE}ℹ️ $1${NC}"
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
# Check git is installed
|
|
45
|
-
check_git() {
|
|
46
|
-
if ! command -v git &> /dev/null; then
|
|
47
|
-
print_error "Git is not installed. Please install Git first."
|
|
48
|
-
echo " → macOS: brew install git"
|
|
49
|
-
echo " → Ubuntu: sudo apt install git"
|
|
50
|
-
echo " → Fedora: sudo dnf install git"
|
|
51
|
-
exit 1
|
|
52
|
-
fi
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
# Clone or update repo
|
|
56
|
-
clone_repo() {
|
|
57
|
-
if [ -d "$TMP_DIR" ]; then
|
|
58
|
-
print_info "Updating existing download..."
|
|
59
|
-
cd "$TMP_DIR" && git pull --quiet
|
|
60
|
-
else
|
|
61
|
-
print_info "Downloading Skill Creator Ultra..."
|
|
62
|
-
git clone --quiet "$REPO_URL" "$TMP_DIR"
|
|
63
|
-
fi
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
# Install to a specific path
|
|
67
|
-
install_to() {
|
|
68
|
-
local target_dir="$1"
|
|
69
|
-
local platform_name="$2"
|
|
70
|
-
|
|
71
|
-
# Create parent directory if needed
|
|
72
|
-
mkdir -p "$(dirname "$target_dir")"
|
|
73
|
-
|
|
74
|
-
# Remove old installation if exists
|
|
75
|
-
if [ -d "$target_dir" ]; then
|
|
76
|
-
print_info "Removing old installation..."
|
|
77
|
-
rm -rf "$target_dir"
|
|
78
|
-
fi
|
|
79
|
-
|
|
80
|
-
# Copy files (exclude .git)
|
|
81
|
-
cp -r "$TMP_DIR" "$target_dir"
|
|
82
|
-
rm -rf "$target_dir/.git"
|
|
83
|
-
|
|
84
|
-
print_success "Installed to: $target_dir"
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
# Create bridge/rule files for platforms that need them
|
|
88
|
-
create_bridge_claude() {
|
|
89
|
-
local project_dir="${1:-.}"
|
|
90
|
-
local claude_md="$project_dir/CLAUDE.md"
|
|
91
|
-
|
|
92
|
-
local bridge_text="
|
|
93
|
-
## Skill Creator Ultra
|
|
94
|
-
When user asks to \"create skill\", \"turn workflow into skill\", or \"automate this\":
|
|
95
|
-
- Read \`.claude/commands/$SKILL_NAME/SKILL.md\`
|
|
96
|
-
- Follow the 8 Phase pipeline
|
|
97
|
-
- Reference resources/ for templates and best practices
|
|
98
|
-
"
|
|
99
|
-
|
|
100
|
-
if [ -f "$claude_md" ]; then
|
|
101
|
-
if ! grep -q "Skill Creator Ultra" "$claude_md"; then
|
|
102
|
-
echo "$bridge_text" >> "$claude_md"
|
|
103
|
-
print_success "Appended bridge to existing CLAUDE.md"
|
|
104
|
-
else
|
|
105
|
-
print_info "CLAUDE.md already has Skill Creator Ultra bridge"
|
|
106
|
-
fi
|
|
107
|
-
else
|
|
108
|
-
echo "$bridge_text" > "$claude_md"
|
|
109
|
-
print_success "Created CLAUDE.md with bridge"
|
|
110
|
-
fi
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
create_rule_cursor() {
|
|
114
|
-
local rules_dir="${1:-.cursor/rules}"
|
|
115
|
-
mkdir -p "$rules_dir"
|
|
116
|
-
|
|
117
|
-
cat > "$rules_dir/$SKILL_NAME.mdc" << 'RULE'
|
|
118
|
-
---
|
|
119
|
-
description: Create AI Skills from ideas or workflows using 8-phase pipeline
|
|
120
|
-
globs:
|
|
121
|
-
alwaysApply: false
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
When user requests "create skill", "turn workflow into skill", or "automate":
|
|
125
|
-
- Read `.cursor/rules/skill-creator-ultra/SKILL.md`
|
|
126
|
-
- Follow 8 Phase pipeline
|
|
127
|
-
- Reference resources/ for templates and best practices
|
|
128
|
-
RULE
|
|
129
|
-
|
|
130
|
-
print_success "Created Cursor rule file"
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
create_rule_windsurf() {
|
|
134
|
-
local rules_dir="${1:-.windsurf/rules}"
|
|
135
|
-
mkdir -p "$rules_dir"
|
|
136
|
-
|
|
137
|
-
cat > "$rules_dir/$SKILL_NAME.md" << 'RULE'
|
|
138
|
-
---
|
|
139
|
-
trigger: manual
|
|
140
|
-
description: Create AI Skills from ideas or workflows using 8-phase pipeline
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
When user requests "create skill", "turn workflow into skill", or "automate":
|
|
144
|
-
- Read `.windsurf/rules/skill-creator-ultra/SKILL.md`
|
|
145
|
-
- Follow 8 Phase pipeline
|
|
146
|
-
RULE
|
|
147
|
-
|
|
148
|
-
print_success "Created Windsurf rule file"
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
create_instructions_cline() {
|
|
152
|
-
echo ""
|
|
153
|
-
print_info "For Cline, add this to Settings → Custom Instructions:"
|
|
154
|
-
echo ""
|
|
155
|
-
echo ' When user requests "create skill" or "automate":'
|
|
156
|
-
echo " - Read .clinerules/$SKILL_NAME/SKILL.md"
|
|
157
|
-
echo " - Follow 8 Phase pipeline"
|
|
158
|
-
echo ""
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
create_instructions_copilot() {
|
|
162
|
-
local github_dir="${1:-.github}"
|
|
163
|
-
local instructions="$github_dir/copilot-instructions.md"
|
|
164
|
-
|
|
165
|
-
mkdir -p "$github_dir"
|
|
166
|
-
|
|
167
|
-
local copilot_text="
|
|
168
|
-
## Skill Creator Ultra
|
|
169
|
-
When user requests \"create skill\" or \"automate this\":
|
|
170
|
-
- Read \`.github/$SKILL_NAME/SKILL.md\`
|
|
171
|
-
- Follow 8 Phase pipeline
|
|
172
|
-
"
|
|
173
|
-
|
|
174
|
-
if [ -f "$instructions" ]; then
|
|
175
|
-
if ! grep -q "Skill Creator Ultra" "$instructions"; then
|
|
176
|
-
echo "$copilot_text" >> "$instructions"
|
|
177
|
-
print_success "Appended to existing copilot-instructions.md"
|
|
178
|
-
else
|
|
179
|
-
print_info "copilot-instructions.md already has Skill Creator Ultra"
|
|
180
|
-
fi
|
|
181
|
-
else
|
|
182
|
-
echo "$copilot_text" > "$instructions"
|
|
183
|
-
print_success "Created copilot-instructions.md"
|
|
184
|
-
fi
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
# Platform installers
|
|
188
|
-
install_antigravity_global() {
|
|
189
|
-
local target="$HOME/.gemini/antigravity/skills/$SKILL_NAME"
|
|
190
|
-
install_to "$target" "Antigravity (Global)"
|
|
191
|
-
echo ""
|
|
192
|
-
print_info "Open a new Antigravity chat and say: \"tạo skill mới\""
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
install_antigravity_workspace() {
|
|
196
|
-
local target=".agent/skills/$SKILL_NAME"
|
|
197
|
-
install_to "$target" "Antigravity (Workspace)"
|
|
198
|
-
echo ""
|
|
199
|
-
print_info "Open a new Antigravity chat and say: \"tạo skill mới\""
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
install_claude() {
|
|
203
|
-
local target="$HOME/.claude/commands/$SKILL_NAME"
|
|
204
|
-
install_to "$target" "Claude Code (Global)"
|
|
205
|
-
create_bridge_claude "."
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
install_cursor() {
|
|
209
|
-
local target=".cursor/rules/$SKILL_NAME"
|
|
210
|
-
install_to "$target" "Cursor"
|
|
211
|
-
create_rule_cursor ".cursor/rules"
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
install_windsurf() {
|
|
215
|
-
local target=".windsurf/rules/$SKILL_NAME"
|
|
216
|
-
install_to "$target" "Windsurf"
|
|
217
|
-
create_rule_windsurf ".windsurf/rules"
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
install_cline() {
|
|
221
|
-
local target=".clinerules/$SKILL_NAME"
|
|
222
|
-
install_to "$target" "Cline"
|
|
223
|
-
create_instructions_cline
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
install_copilot() {
|
|
227
|
-
local target=".github/$SKILL_NAME"
|
|
228
|
-
install_to "$target" "GitHub Copilot"
|
|
229
|
-
create_instructions_copilot ".github"
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
install_openclaw() {
|
|
233
|
-
echo ""
|
|
234
|
-
print_info "OpenClaw uses System Prompt — cannot auto-install."
|
|
235
|
-
echo ""
|
|
236
|
-
echo " Manual steps:"
|
|
237
|
-
echo " 1. Open SKILL.md from: $TMP_DIR/SKILL.md"
|
|
238
|
-
echo " 2. Copy contents into your Agent's System Prompt"
|
|
239
|
-
echo " 3. Optionally upload resources/ to knowledge base"
|
|
240
|
-
echo ""
|
|
241
|
-
print_success "Files downloaded to: $TMP_DIR"
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
install_all() {
|
|
245
|
-
install_antigravity_global
|
|
246
|
-
echo ""
|
|
247
|
-
install_claude
|
|
248
|
-
echo ""
|
|
249
|
-
install_cursor
|
|
250
|
-
echo ""
|
|
251
|
-
install_windsurf
|
|
252
|
-
echo ""
|
|
253
|
-
install_cline
|
|
254
|
-
echo ""
|
|
255
|
-
install_copilot
|
|
256
|
-
echo ""
|
|
257
|
-
install_openclaw
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
# Show menu
|
|
261
|
-
show_menu() {
|
|
262
|
-
echo -e " ${GREEN}1${NC}) 🟢 Google Antigravity ${BOLD}(Global — all projects)${NC}"
|
|
263
|
-
echo -e " ${GREEN}2${NC}) 🟢 Google Antigravity ${BOLD}(Workspace — this project)${NC}"
|
|
264
|
-
echo -e " ${PURPLE}3${NC}) 🟣 Claude Code"
|
|
265
|
-
echo -e " ${BLUE}4${NC}) 🔵 Cursor"
|
|
266
|
-
echo -e " ${YELLOW}5${NC}) 🟠 Windsurf"
|
|
267
|
-
echo -e " ${RED}6${NC}) 🟤 Cline"
|
|
268
|
-
echo -e " 7) ⚫ GitHub Copilot"
|
|
269
|
-
echo -e " 8) 🐾 OpenClaw"
|
|
270
|
-
echo -e " ${CYAN}9${NC}) 📦 ${BOLD}Install ALL platforms${NC}"
|
|
271
|
-
echo -e " 0) ❌ Exit"
|
|
272
|
-
echo ""
|
|
273
|
-
read -p "Choose platform (0-9): " choice < /dev/tty
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
# Main
|
|
277
|
-
main() {
|
|
278
|
-
print_header
|
|
279
|
-
check_git
|
|
280
|
-
|
|
281
|
-
# If argument provided, use it directly
|
|
282
|
-
if [ -n "$1" ]; then
|
|
283
|
-
choice="$1"
|
|
284
|
-
else
|
|
285
|
-
show_menu
|
|
286
|
-
fi
|
|
287
|
-
|
|
288
|
-
echo ""
|
|
289
|
-
clone_repo
|
|
290
|
-
echo ""
|
|
291
|
-
|
|
292
|
-
case $choice in
|
|
293
|
-
1) install_antigravity_global ;;
|
|
294
|
-
2) install_antigravity_workspace ;;
|
|
295
|
-
3) install_claude ;;
|
|
296
|
-
4) install_cursor ;;
|
|
297
|
-
5) install_windsurf ;;
|
|
298
|
-
6) install_cline ;;
|
|
299
|
-
7) install_copilot ;;
|
|
300
|
-
8) install_openclaw ;;
|
|
301
|
-
9) install_all ;;
|
|
302
|
-
0) echo "Bye!" && exit 0 ;;
|
|
303
|
-
*) print_error "Invalid choice" && exit 1 ;;
|
|
304
|
-
esac
|
|
305
|
-
|
|
306
|
-
echo ""
|
|
307
|
-
echo -e "${CYAN}════════════════════════════════════════════${NC}"
|
|
308
|
-
print_success "Skill Creator Ultra v${VERSION} installed!"
|
|
309
|
-
echo -e "${CYAN}════════════════════════════════════════════${NC}"
|
|
310
|
-
echo ""
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
main "$@"
|