codymaster 4.1.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.
- package/CHANGELOG.md +50 -0
- package/README.md +285 -0
- package/adapters/antigravity.js +15 -0
- package/adapters/claude-code.js +17 -0
- package/adapters/cursor.js +16 -0
- package/commands/bootstrap.md +49 -0
- package/commands/build.md +48 -0
- package/commands/content.md +48 -0
- package/commands/continuity.md +60 -0
- package/commands/debug.md +51 -0
- package/commands/demo.md +96 -0
- package/commands/deploy.md +51 -0
- package/commands/plan.md +42 -0
- package/commands/review.md +55 -0
- package/commands/track.md +46 -0
- package/commands/ux.md +46 -0
- package/dist/agent-dispatch.js +161 -0
- package/dist/chains/builtin.js +85 -0
- package/dist/continuity.js +385 -0
- package/dist/dashboard.js +926 -0
- package/dist/data.js +122 -0
- package/dist/index.js +2434 -0
- package/dist/judge.js +252 -0
- package/dist/parallel-dispatch.js +359 -0
- package/dist/parallel-quality.js +172 -0
- package/dist/skill-chain.js +258 -0
- package/install.sh +513 -0
- package/package.json +79 -0
- package/skills/.content-factory-state.json +132 -0
- package/skills/.git 2/logs/refs/heads/main +1 -0
- package/skills/.git 2/logs/refs/remotes/origin/main +1 -0
- package/skills/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
- package/skills/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
- package/skills/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
- package/skills/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
- package/skills/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
- package/skills/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
- package/skills/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
- package/skills/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
- package/skills/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
- package/skills/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
- package/skills/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
- package/skills/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
- package/skills/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
- package/skills/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
- package/skills/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
- package/skills/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
- package/skills/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
- package/skills/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
- package/skills/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
- package/skills/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
- package/skills/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
- package/skills/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
- package/skills/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
- package/skills/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
- package/skills/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
- package/skills/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
- package/skills/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
- package/skills/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
- package/skills/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
- package/skills/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
- package/skills/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
- package/skills/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
- package/skills/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
- package/skills/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
- package/skills/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
- package/skills/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
- package/skills/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
- package/skills/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
- package/skills/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
- package/skills/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
- package/skills/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
- package/skills/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
- package/skills/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
- package/skills/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
- package/skills/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
- package/skills/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
- package/skills/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
- package/skills/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
- package/skills/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
- package/skills/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
- package/skills/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
- package/skills/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
- package/skills/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
- package/skills/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
- package/skills/.git 2/refs/heads/main +1 -0
- package/skills/.git 2/refs/remotes/origin/main +1 -0
- package/skills/.pytest_cache 2/v/cache/nodeids +76 -0
- package/skills/.pytest_cache 2/v/cache/stepwise +1 -0
- package/skills/_shared/helpers.md +123 -0
- package/skills/_shared/outputs-convention.md +24 -0
- package/skills/cm-ads-tracker/SKILL.md +109 -0
- package/skills/cm-ads-tracker/evals/evals.json +55 -0
- package/skills/cm-ads-tracker/references/gtm-architecture.md +321 -0
- package/skills/cm-ads-tracker/references/industry-events.md +294 -0
- package/skills/cm-ads-tracker/references/platforms-api.md +238 -0
- package/skills/cm-ads-tracker/templates/capi-payload.md +79 -0
- package/skills/cm-ads-tracker/templates/datalayer-push.js +104 -0
- package/skills/cm-ads-tracker/templates/gtm-variables.js +56 -0
- package/skills/cm-brainstorm-idea/SKILL.md +423 -0
- package/skills/cm-code-review/SKILL.md +151 -0
- package/skills/cm-content-factory/SKILL.md +416 -0
- package/skills/cm-continuity/SKILL.md +399 -0
- package/skills/cm-dashboard/SKILL.md +533 -0
- package/skills/cm-dashboard/ui/app.js +1270 -0
- package/skills/cm-dashboard/ui/index.html +206 -0
- package/skills/cm-dashboard/ui/style.css +440 -0
- package/skills/cm-debugging/SKILL.md +412 -0
- package/skills/cm-deep-search/SKILL.md +242 -0
- package/skills/cm-design-system/SKILL.md +97 -0
- package/skills/cm-design-system/resources/halo-modern.md +40 -0
- package/skills/cm-design-system/resources/lunaris-advanced.md +40 -0
- package/skills/cm-design-system/resources/nitro-enterprise.md +39 -0
- package/skills/cm-design-system/resources/shadcn-default.md +37 -0
- package/skills/cm-dockit/README.md +100 -0
- package/skills/cm-dockit/SKILL.md +302 -0
- package/skills/cm-dockit/index.html +443 -0
- package/skills/cm-dockit/package-lock.json +1850 -0
- package/skills/cm-dockit/package.json +14 -0
- package/skills/cm-dockit/prompts/analysis.md +34 -0
- package/skills/cm-dockit/prompts/api-reference.md +24 -0
- package/skills/cm-dockit/prompts/architecture.md +21 -0
- package/skills/cm-dockit/prompts/data-flow.md +20 -0
- package/skills/cm-dockit/prompts/database.md +21 -0
- package/skills/cm-dockit/prompts/deployment.md +22 -0
- package/skills/cm-dockit/prompts/flows.md +21 -0
- package/skills/cm-dockit/prompts/jtbd.md +20 -0
- package/skills/cm-dockit/prompts/personas.md +24 -0
- package/skills/cm-dockit/prompts/sop-modules.md +40 -0
- package/skills/cm-dockit/scripts/doc-gen.sh +121 -0
- package/skills/cm-dockit/scripts/dockit-dashboard.sh +142 -0
- package/skills/cm-dockit/scripts/dockit-runner.sh +607 -0
- package/skills/cm-dockit/scripts/dockit-task.sh +166 -0
- package/skills/cm-dockit/skills/analyze-codebase.md +174 -0
- package/skills/cm-dockit/skills/api-reference.md +237 -0
- package/skills/cm-dockit/skills/changelog-guide.md +195 -0
- package/skills/cm-dockit/skills/content-guidelines.md +190 -0
- package/skills/cm-dockit/skills/sop-guide.md +184 -0
- package/skills/cm-dockit/skills/tech-docs.md +287 -0
- package/skills/cm-dockit/templates/markdown/structure.md +60 -0
- package/skills/cm-dockit/templates/vitepress-premium/.vitepress/config.mts +110 -0
- package/skills/cm-dockit/templates/vitepress-premium/.vitepress/theme/custom.css +189 -0
- package/skills/cm-dockit/templates/vitepress-premium/.vitepress/theme/index.ts +4 -0
- package/skills/cm-dockit/templates/vitepress-premium/package.json +19 -0
- package/skills/cm-dockit/templates/vitepress-premium/tests/frontend.test.ts +45 -0
- package/skills/cm-dockit/tests/runner.test.ts +66 -0
- package/skills/cm-dockit/workflows/export-markdown.md +82 -0
- package/skills/cm-dockit/workflows/generate-docs.md +68 -0
- package/skills/cm-dockit/workflows/setup-vitepress.md +181 -0
- package/skills/cm-example/SKILL.md +26 -0
- package/skills/cm-execution/SKILL.md +268 -0
- package/skills/cm-git-worktrees/SKILL.md +164 -0
- package/skills/cm-how-it-work/SKILL.md +189 -0
- package/skills/cm-identity-guard/SKILL.md +412 -0
- package/skills/cm-jtbd/SKILL.md +98 -0
- package/skills/cm-planning/SKILL.md +130 -0
- package/skills/cm-project-bootstrap/SKILL.md +161 -0
- package/skills/cm-project-bootstrap/templates/AGENTS.md +42 -0
- package/skills/cm-project-bootstrap/templates/frontend-safety.test.js +51 -0
- package/skills/cm-project-bootstrap/templates/i18n-sync.test.js +38 -0
- package/skills/cm-project-bootstrap/templates/pr-template.md +12 -0
- package/skills/cm-project-bootstrap/templates/project-identity.json +29 -0
- package/skills/cm-project-bootstrap/templates/vitest.config.js +10 -0
- package/skills/cm-quality-gate/SKILL.md +218 -0
- package/skills/cm-readit/SKILL.md +289 -0
- package/skills/cm-readit/audio-player.md +206 -0
- package/skills/cm-readit/examples/blog-reader.js +352 -0
- package/skills/cm-readit/examples/voice-cro.js +390 -0
- package/skills/cm-readit/tts-engine.md +262 -0
- package/skills/cm-readit/ui-patterns.md +362 -0
- package/skills/cm-readit/voice-cro.md +223 -0
- package/skills/cm-safe-deploy/SKILL.md +120 -0
- package/skills/cm-safe-deploy/templates/deploy.sh +89 -0
- package/skills/cm-safe-i18n/SKILL.md +473 -0
- package/skills/cm-secret-shield/SKILL.md +580 -0
- package/skills/cm-skill-chain/SKILL.md +78 -0
- package/skills/cm-skill-index/SKILL.md +318 -0
- package/skills/cm-skill-mastery/SKILL.md +169 -0
- package/skills/cm-start/SKILL.md +65 -0
- package/skills/cm-status/SKILL.md +12 -0
- package/skills/cm-tdd/SKILL.md +370 -0
- package/skills/cm-terminal/SKILL.md +177 -0
- package/skills/cm-test-gate/SKILL.md +242 -0
- package/skills/cm-ui-preview/SKILL.md +291 -0
- package/skills/cm-ux-master/DESIGN_STANDARD_TEMPLATE.md +54 -0
- package/skills/cm-ux-master/SKILL.md +114 -0
- package/skills/cro-methodology/SKILL.md +98 -0
- package/skills/cro-methodology/references/COPYWRITING.md +178 -0
- package/skills/cro-methodology/references/OBJECTIONS.md +135 -0
- package/skills/cro-methodology/references/PERSUASION.md +158 -0
- package/skills/cro-methodology/references/RESEARCH.md +220 -0
- package/skills/cro-methodology/references/funnel-analysis.md +365 -0
- package/skills/cro-methodology/references/testing-methodology.md +330 -0
package/install.sh
ADDED
|
@@ -0,0 +1,513 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# ════════════════════════════════════════════════════════════════
|
|
3
|
+
# CodyMaster Skills Kit v3.4.0 — Universal Installer
|
|
4
|
+
# Inspired by: npx skills add (vercel-labs/skills)
|
|
5
|
+
#
|
|
6
|
+
# Usage:
|
|
7
|
+
# bash install.sh Interactive menu
|
|
8
|
+
# bash install.sh --claude Claude Code (non-interactive)
|
|
9
|
+
# bash install.sh --claude --global Claude Code, user scope
|
|
10
|
+
# bash install.sh --claude --project Claude Code, project scope
|
|
11
|
+
# bash install.sh --gemini Gemini CLI
|
|
12
|
+
# bash install.sh --aider Aider
|
|
13
|
+
# bash install.sh --continue Continue.dev
|
|
14
|
+
# bash install.sh --amazon-q Amazon Q CLI (q)
|
|
15
|
+
# bash install.sh --amp Amp
|
|
16
|
+
# bash install.sh --all All detected platforms
|
|
17
|
+
# ════════════════════════════════════════════════════════════════
|
|
18
|
+
|
|
19
|
+
set -e
|
|
20
|
+
|
|
21
|
+
# ── Colors ──────────────────────────────────────────────────────
|
|
22
|
+
G='\033[0;32m'; B='\033[0;34m'; P='\033[0;35m'; O='\033[0;33m'
|
|
23
|
+
C='\033[0;36m'; R='\033[0;31m'; W='\033[1;37m'; NC='\033[0m'; BOLD='\033[1m'
|
|
24
|
+
|
|
25
|
+
REPO_URL="https://github.com/tody-agent/codymaster"
|
|
26
|
+
RAW_URL="https://raw.githubusercontent.com/tody-agent/codymaster/main"
|
|
27
|
+
VERSION="3.4.0"
|
|
28
|
+
SCOPE="user" # default scope for Claude Code
|
|
29
|
+
|
|
30
|
+
# ── i18n ────────────────────────────────────────────────────────
|
|
31
|
+
detect_lang() {
|
|
32
|
+
local lang="${LANG:-en}"
|
|
33
|
+
case "$lang" in
|
|
34
|
+
vi*|VI*) echo "vi" ;;
|
|
35
|
+
zh*|ZH*) echo "zh" ;;
|
|
36
|
+
ko*|KO*) echo "ko" ;;
|
|
37
|
+
ru*|RU*) echo "ru" ;;
|
|
38
|
+
hi*|HI*) echo "hi" ;;
|
|
39
|
+
*) echo "en" ;;
|
|
40
|
+
esac
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
LANG_CODE=$(detect_lang)
|
|
44
|
+
|
|
45
|
+
msg() {
|
|
46
|
+
local key="$1"
|
|
47
|
+
case "$LANG_CODE:$key" in
|
|
48
|
+
vi:welcome) echo "Chào mừng bạn đến với CodyMaster v${VERSION}" ;;
|
|
49
|
+
vi:tagline) echo "34+ kỹ năng AI cho Claude Code và các AI agents khác" ;;
|
|
50
|
+
vi:detecting) echo "🔍 Đang phát hiện các AI agent đã cài..." ;;
|
|
51
|
+
vi:found) echo "✅ Đã tìm thấy" ;;
|
|
52
|
+
vi:not_found) echo "❌ Không tìm thấy" ;;
|
|
53
|
+
vi:select) echo "Chọn platform để cài (nhập số, cách nhau dấu phẩy):" ;;
|
|
54
|
+
vi:scope) echo "Phạm vi cài đặt cho Claude Code:" ;;
|
|
55
|
+
vi:scope_user) echo "User (tất cả projects)" ;;
|
|
56
|
+
vi:scope_project) echo "Project (chỉ project này)" ;;
|
|
57
|
+
vi:done) echo "✅ Hoàn tất!" ;;
|
|
58
|
+
vi:onboard) echo "🎯 Bắt đầu ngay trong Claude Code:" ;;
|
|
59
|
+
vi:docs) echo "📚 Tài liệu:" ;;
|
|
60
|
+
|
|
61
|
+
zh:welcome) echo "欢迎使用 CodyMaster v${VERSION}" ;;
|
|
62
|
+
zh:tagline) echo "Claude Code 的 34+ AI 技能" ;;
|
|
63
|
+
zh:detecting) echo "🔍 检测已安装的 AI Agent..." ;;
|
|
64
|
+
zh:found) echo "✅ 已找到" ;;
|
|
65
|
+
zh:not_found) echo "❌ 未找到" ;;
|
|
66
|
+
zh:select) echo "选择要安装的平台(输入数字,逗号分隔):" ;;
|
|
67
|
+
zh:scope) echo "Claude Code 安装范围:" ;;
|
|
68
|
+
zh:scope_user) echo "用户级(所有项目)" ;;
|
|
69
|
+
zh:scope_project) echo "项目级(仅此项目)" ;;
|
|
70
|
+
zh:done) echo "✅ 完成!" ;;
|
|
71
|
+
zh:onboard) echo "🎯 在 Claude Code 中立即开始:" ;;
|
|
72
|
+
zh:docs) echo "📚 文档:" ;;
|
|
73
|
+
|
|
74
|
+
ko:welcome) echo "CodyMaster v${VERSION}에 오신 것을 환영합니다" ;;
|
|
75
|
+
ko:tagline) echo "Claude Code용 34+ AI 스킬" ;;
|
|
76
|
+
ko:detecting) echo "🔍 설치된 AI Agent 감지 중..." ;;
|
|
77
|
+
ko:found) echo "✅ 발견됨" ;;
|
|
78
|
+
ko:not_found) echo "❌ 없음" ;;
|
|
79
|
+
ko:select) echo "설치할 플랫폼 선택 (숫자, 쉼표로 구분):" ;;
|
|
80
|
+
ko:scope) echo "Claude Code 설치 범위:" ;;
|
|
81
|
+
ko:scope_user) echo "사용자 (모든 프로젝트)" ;;
|
|
82
|
+
ko:scope_project) echo "프로젝트 (이 프로젝트만)" ;;
|
|
83
|
+
ko:done) echo "✅ 완료!" ;;
|
|
84
|
+
ko:onboard) echo "🎯 Claude Code에서 바로 시작:" ;;
|
|
85
|
+
ko:docs) echo "📚 문서:" ;;
|
|
86
|
+
|
|
87
|
+
*)
|
|
88
|
+
case "$key" in
|
|
89
|
+
welcome) echo "Welcome to CodyMaster v${VERSION}" ;;
|
|
90
|
+
tagline) echo "34+ AI skills for Claude Code and other AI agents" ;;
|
|
91
|
+
detecting) echo "🔍 Detecting installed AI agents..." ;;
|
|
92
|
+
found) echo "✅ Found" ;;
|
|
93
|
+
not_found) echo "❌ Not found" ;;
|
|
94
|
+
select) echo "Select platforms to install (numbers, comma-separated):" ;;
|
|
95
|
+
scope) echo "Installation scope for Claude Code:" ;;
|
|
96
|
+
scope_user) echo "User — available across all projects (recommended)" ;;
|
|
97
|
+
scope_project) echo "Project — this project only (committed to .claude/)" ;;
|
|
98
|
+
done) echo "✅ Done!" ;;
|
|
99
|
+
onboard) echo "🎯 Get started immediately in Claude Code:" ;;
|
|
100
|
+
docs) echo "📚 Documentation:" ;;
|
|
101
|
+
esac
|
|
102
|
+
;;
|
|
103
|
+
esac
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
# ── Header ───────────────────────────────────────────────────────
|
|
107
|
+
print_header() {
|
|
108
|
+
echo ""
|
|
109
|
+
echo -e "${C}${BOLD}╔══════════════════════════════════════════════════╗${NC}"
|
|
110
|
+
echo -e "${C}${BOLD}║ 🧠 CodyMaster Skills Kit ║${NC}"
|
|
111
|
+
echo -e "${C}${BOLD}║ $(msg welcome | head -c 48 | awk '{printf "%-48s", $0}')║${NC}"
|
|
112
|
+
echo -e "${C}${BOLD}║ $(msg tagline | head -c 48 | awk '{printf "%-48s", $0}')║${NC}"
|
|
113
|
+
echo -e "${C}${BOLD}╚══════════════════════════════════════════════════╝${NC}"
|
|
114
|
+
echo ""
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
# ── Agent Detection ──────────────────────────────────────────────
|
|
118
|
+
detect_agents() {
|
|
119
|
+
echo -e "${W}$(msg detecting)${NC}"
|
|
120
|
+
echo ""
|
|
121
|
+
|
|
122
|
+
DETECTED=()
|
|
123
|
+
|
|
124
|
+
if command -v claude &>/dev/null; then
|
|
125
|
+
echo -e " ${P}${BOLD}1) 🟣 Claude Code${NC} $(msg found)"
|
|
126
|
+
DETECTED+=("claude")
|
|
127
|
+
else
|
|
128
|
+
echo -e " ${P}1) 🟣 Claude Code${NC} $(msg not_found)"
|
|
129
|
+
fi
|
|
130
|
+
|
|
131
|
+
if command -v gemini &>/dev/null; then
|
|
132
|
+
echo -e " ${C}${BOLD}2) 💎 Gemini CLI${NC} $(msg found)"
|
|
133
|
+
DETECTED+=("gemini")
|
|
134
|
+
else
|
|
135
|
+
echo -e " ${C}2) 💎 Gemini CLI${NC} $(msg not_found)"
|
|
136
|
+
fi
|
|
137
|
+
|
|
138
|
+
# Check for Cursor
|
|
139
|
+
if [ -d "$HOME/.cursor" ] || [ -d "/Applications/Cursor.app" ]; then
|
|
140
|
+
echo -e " ${B}${BOLD}3) 🔵 Cursor${NC} $(msg found)"
|
|
141
|
+
DETECTED+=("cursor")
|
|
142
|
+
else
|
|
143
|
+
echo -e " ${B}3) 🔵 Cursor${NC} $(msg not_found)"
|
|
144
|
+
fi
|
|
145
|
+
|
|
146
|
+
if command -v codex &>/dev/null; then
|
|
147
|
+
echo -e " ${O}${BOLD}4) 🟠 Codex${NC} $(msg found)"
|
|
148
|
+
DETECTED+=("codex")
|
|
149
|
+
else
|
|
150
|
+
echo -e " ${O}4) 🟠 Codex${NC} $(msg not_found)"
|
|
151
|
+
fi
|
|
152
|
+
|
|
153
|
+
if command -v opencode &>/dev/null; then
|
|
154
|
+
echo -e " ${G}${BOLD}5) 📦 OpenCode${NC} $(msg found)"
|
|
155
|
+
DETECTED+=("opencode")
|
|
156
|
+
else
|
|
157
|
+
echo -e " ${G}5) 📦 OpenCode${NC} $(msg not_found)"
|
|
158
|
+
fi
|
|
159
|
+
|
|
160
|
+
if command -v aider &>/dev/null; then
|
|
161
|
+
echo -e " ${O}${BOLD}6) 🤖 Aider${NC} $(msg found)"
|
|
162
|
+
DETECTED+=("aider")
|
|
163
|
+
else
|
|
164
|
+
echo -e " ${O}6) 🤖 Aider${NC} $(msg not_found)"
|
|
165
|
+
fi
|
|
166
|
+
|
|
167
|
+
if [ -d "$HOME/.continue" ]; then
|
|
168
|
+
echo -e " ${B}${BOLD}7) 🔗 Continue.dev${NC} $(msg found)"
|
|
169
|
+
DETECTED+=("continue")
|
|
170
|
+
else
|
|
171
|
+
echo -e " ${B}7) 🔗 Continue.dev${NC} $(msg not_found)"
|
|
172
|
+
fi
|
|
173
|
+
|
|
174
|
+
if command -v q &>/dev/null; then
|
|
175
|
+
echo -e " ${W}${BOLD}8) ☁️ Amazon Q CLI${NC} $(msg found)"
|
|
176
|
+
DETECTED+=("amazon-q")
|
|
177
|
+
else
|
|
178
|
+
echo -e " ${W}8) ☁️ Amazon Q CLI${NC} $(msg not_found)"
|
|
179
|
+
fi
|
|
180
|
+
|
|
181
|
+
if command -v amp &>/dev/null; then
|
|
182
|
+
echo -e " ${G}${BOLD}9) ⚡ Amp${NC} $(msg found)"
|
|
183
|
+
DETECTED+=("amp")
|
|
184
|
+
else
|
|
185
|
+
echo -e " ${G}9) ⚡ Amp${NC} $(msg not_found)"
|
|
186
|
+
fi
|
|
187
|
+
|
|
188
|
+
echo -e " ${W}10) 📋 Manual copy${NC} (any platform)"
|
|
189
|
+
echo ""
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
# ── Onboarding block ─────────────────────────────────────────────
|
|
193
|
+
print_onboarding() {
|
|
194
|
+
local scope="$1"
|
|
195
|
+
echo ""
|
|
196
|
+
echo -e "${G}${BOLD}╔══════════════════════════════════════════════════╗${NC}"
|
|
197
|
+
echo -e "${G}${BOLD}║ $(msg done | awk '{printf "%-48s", $0}')║${NC}"
|
|
198
|
+
echo -e "${G}${BOLD}╚══════════════════════════════════════════════════╝${NC}"
|
|
199
|
+
echo ""
|
|
200
|
+
echo -e "${W}${BOLD}$(msg onboard)${NC}"
|
|
201
|
+
echo ""
|
|
202
|
+
echo -e " ${C}/cm:demo${NC} ← Run this first! Interactive tour"
|
|
203
|
+
echo -e " ${C}/cm:plan${NC} ← Start a new feature"
|
|
204
|
+
echo -e " ${C}/cm:build${NC} ← Build with TDD"
|
|
205
|
+
echo -e " ${C}/cm:debug${NC} ← Fix a bug"
|
|
206
|
+
echo -e " ${C}/cm:review${NC} ← Code review"
|
|
207
|
+
echo -e " ${C}/cm:deploy${NC} ← Deploy safely"
|
|
208
|
+
echo ""
|
|
209
|
+
echo -e "${W}${BOLD}$(msg docs)${NC} ${C}https://cody.todyle.com/docs${NC}"
|
|
210
|
+
echo ""
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
# ── Claude Code installer ────────────────────────────────────────
|
|
214
|
+
install_claude() {
|
|
215
|
+
local scope="${1:-user}"
|
|
216
|
+
echo ""
|
|
217
|
+
echo -e "${P}${BOLD}Claude Code — Installing Cody Master${NC}"
|
|
218
|
+
echo ""
|
|
219
|
+
|
|
220
|
+
if command -v claude &>/dev/null; then
|
|
221
|
+
# Cleanup old marketplace if exists
|
|
222
|
+
claude plugin marketplace remove cody-master 2>/dev/null || true
|
|
223
|
+
echo -e " ${W}Adding marketplace...${NC}"
|
|
224
|
+
claude plugin marketplace add tody-agent/codymaster 2>/dev/null || true
|
|
225
|
+
echo -e " ${W}Installing plugin (scope: ${scope})...${NC}"
|
|
226
|
+
claude plugin install cm@codymaster --scope "$scope"
|
|
227
|
+
echo ""
|
|
228
|
+
echo -e " ${G}✅ cm installed — scope: ${scope}${NC}"
|
|
229
|
+
print_onboarding "$scope"
|
|
230
|
+
else
|
|
231
|
+
echo -e " ${R}Claude Code CLI not found. Install from: https://claude.ai/code${NC}"
|
|
232
|
+
echo ""
|
|
233
|
+
echo " Then run these commands in Claude Code:"
|
|
234
|
+
echo ""
|
|
235
|
+
echo -e " ${BOLD}1.${NC} ${C}claude plugin marketplace add tody-agent/codymaster${NC}"
|
|
236
|
+
echo -e " ${BOLD}2.${NC} ${C}claude plugin install cm@codymaster --scope ${scope}${NC}"
|
|
237
|
+
echo ""
|
|
238
|
+
echo -e " First thing after install: ${C}/cm:demo${NC}"
|
|
239
|
+
fi
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
# ── Gemini CLI installer ─────────────────────────────────────────
|
|
243
|
+
install_gemini() {
|
|
244
|
+
echo ""
|
|
245
|
+
echo -e "${C}${BOLD}Gemini CLI — Installing Cody Master${NC}"
|
|
246
|
+
echo ""
|
|
247
|
+
if command -v gemini &>/dev/null; then
|
|
248
|
+
echo -e " ${W}Trying gemini extensions install...${NC}"
|
|
249
|
+
if gemini extensions install "$REPO_URL" 2>/dev/null; then
|
|
250
|
+
echo -e " ${G}✅ Installed via Gemini extensions${NC}"
|
|
251
|
+
else
|
|
252
|
+
echo -e " ${W}Falling back to direct skills copy...${NC}"
|
|
253
|
+
install_antigravity "$HOME/.gemini/skills"
|
|
254
|
+
echo -e " ${G}✅ Skills copied to ~/.gemini/skills/${NC}"
|
|
255
|
+
echo -e " ${C}ℹ Add to your GEMINI.md: @~/.gemini/skills/*/SKILL.md${NC}"
|
|
256
|
+
fi
|
|
257
|
+
else
|
|
258
|
+
echo ""
|
|
259
|
+
echo -e " ${R}Gemini CLI not found. Install from:${NC}"
|
|
260
|
+
echo -e " ${C}https://github.com/google-gemini/gemini-cli${NC}"
|
|
261
|
+
echo ""
|
|
262
|
+
echo -e " Then run:"
|
|
263
|
+
echo -e " ${C}gemini extensions install ${REPO_URL}${NC}"
|
|
264
|
+
fi
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
# ── Aider installer ──────────────────────────────────────────────
|
|
268
|
+
install_aider() {
|
|
269
|
+
echo ""
|
|
270
|
+
echo -e "${O}${BOLD}Aider — Installing Cody Master${NC}"
|
|
271
|
+
echo ""
|
|
272
|
+
if command -v aider &>/dev/null; then
|
|
273
|
+
local target="$HOME/.aider/skills"
|
|
274
|
+
install_antigravity "$target"
|
|
275
|
+
# Create .aiderignore entry if not present
|
|
276
|
+
if [ ! -f ".aider.conf.yml" ] || ! grep -q "read:" .aider.conf.yml 2>/dev/null; then
|
|
277
|
+
echo -e " ${W}Tip: add skills context to .aider.conf.yml:${NC}"
|
|
278
|
+
echo -e " ${C}read: - ~/.aider/skills/cm-planning/SKILL.md${NC}"
|
|
279
|
+
fi
|
|
280
|
+
echo -e " ${G}✅ Skills installed to ${target}${NC}"
|
|
281
|
+
else
|
|
282
|
+
echo -e " ${R}Aider not found. Install: ${C}pip install aider-chat${NC}"
|
|
283
|
+
echo -e " Or: ${C}https://aider.chat${NC}"
|
|
284
|
+
fi
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
# ── Continue.dev installer ───────────────────────────────────────
|
|
288
|
+
install_continue() {
|
|
289
|
+
echo ""
|
|
290
|
+
echo -e "${B}${BOLD}Continue.dev — Installing Cody Master${NC}"
|
|
291
|
+
echo ""
|
|
292
|
+
local rules_dir="$HOME/.continue/rules"
|
|
293
|
+
mkdir -p "$rules_dir"
|
|
294
|
+
local count=0
|
|
295
|
+
for skill_dir in skills/*/; do
|
|
296
|
+
skill_name=$(basename "$skill_dir")
|
|
297
|
+
if [ -f "${skill_dir}SKILL.md" ]; then
|
|
298
|
+
cp "${skill_dir}SKILL.md" "${rules_dir}/${skill_name}.md"
|
|
299
|
+
count=$((count + 1))
|
|
300
|
+
fi
|
|
301
|
+
done
|
|
302
|
+
echo -e " ${G}✅ ${count} skill rules installed to ${rules_dir}${NC}"
|
|
303
|
+
echo -e " ${C}ℹ Rules are auto-loaded by Continue.dev from ~/.continue/rules/${NC}"
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
# ── Amazon Q CLI installer ───────────────────────────────────────
|
|
307
|
+
install_amazon_q() {
|
|
308
|
+
echo ""
|
|
309
|
+
echo -e "${W}${BOLD}Amazon Q CLI — Installing Cody Master${NC}"
|
|
310
|
+
echo ""
|
|
311
|
+
local target="$HOME/.aws/amazonq/skills"
|
|
312
|
+
install_antigravity "$target"
|
|
313
|
+
echo -e " ${G}✅ Skills installed to ${target}${NC}"
|
|
314
|
+
echo -e " ${W}To use in Q chat, reference skills:${NC}"
|
|
315
|
+
echo -e " ${C}q chat --context ~/.aws/amazonq/skills/cm-planning/SKILL.md${NC}"
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
# ── Amp installer ────────────────────────────────────────────────
|
|
319
|
+
install_amp() {
|
|
320
|
+
echo ""
|
|
321
|
+
echo -e "${G}${BOLD}Amp — Installing Cody Master${NC}"
|
|
322
|
+
echo ""
|
|
323
|
+
local target="$HOME/.amp/skills"
|
|
324
|
+
install_antigravity "$target"
|
|
325
|
+
echo -e " ${G}✅ Skills installed to ${target}${NC}"
|
|
326
|
+
echo -e " ${C}ℹ Reference skills in Amp via your AGENTS.md or system prompt${NC}"
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
# ── Gemini/Antigravity file copy ─────────────────────────────────
|
|
330
|
+
install_antigravity() {
|
|
331
|
+
local target="$1"
|
|
332
|
+
echo ""
|
|
333
|
+
echo -e "${G}${BOLD}Installing skills to: ${target}${NC}"
|
|
334
|
+
echo ""
|
|
335
|
+
if [ ! -d "skills" ]; then
|
|
336
|
+
echo -e "${R}Error: Run from the cody-master repo root.${NC}"
|
|
337
|
+
exit 1
|
|
338
|
+
fi
|
|
339
|
+
mkdir -p "$target"
|
|
340
|
+
local count=0
|
|
341
|
+
for skill_dir in skills/*/; do
|
|
342
|
+
skill_name=$(basename "$skill_dir")
|
|
343
|
+
if [ -f "${skill_dir}SKILL.md" ]; then
|
|
344
|
+
cp -r "$skill_dir" "${target}/${skill_name}"
|
|
345
|
+
echo -e " ${G}✅${NC} $skill_name"
|
|
346
|
+
count=$((count + 1))
|
|
347
|
+
fi
|
|
348
|
+
done
|
|
349
|
+
echo ""
|
|
350
|
+
echo -e "${G}${count} skills installed to ${target}${NC}"
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
# ── Scope selector for Claude ────────────────────────────────────
|
|
354
|
+
select_scope() {
|
|
355
|
+
echo ""
|
|
356
|
+
echo -e "${W}${BOLD}$(msg scope)${NC}"
|
|
357
|
+
echo ""
|
|
358
|
+
echo -e " ${BOLD}1)${NC} 🌐 $(msg scope_user)"
|
|
359
|
+
echo -e " ${BOLD}2)${NC} 📁 $(msg scope_project)"
|
|
360
|
+
echo ""
|
|
361
|
+
read -p " Choose (1-2, default=1): " scope_choice
|
|
362
|
+
case "${scope_choice:-1}" in
|
|
363
|
+
2) SCOPE="project" ;;
|
|
364
|
+
*) SCOPE="user" ;;
|
|
365
|
+
esac
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
# ════════════════════════════════════════════════════════════════
|
|
369
|
+
# MAIN
|
|
370
|
+
# ════════════════════════════════════════════════════════════════
|
|
371
|
+
|
|
372
|
+
print_header
|
|
373
|
+
|
|
374
|
+
# ── Non-interactive flags ────────────────────────────────────────
|
|
375
|
+
for arg in "$@"; do
|
|
376
|
+
case "$arg" in
|
|
377
|
+
--global|--user) SCOPE="user" ;;
|
|
378
|
+
--project|--local) SCOPE="project" ;;
|
|
379
|
+
esac
|
|
380
|
+
done
|
|
381
|
+
|
|
382
|
+
if [[ "$1" == "--claude" ]]; then
|
|
383
|
+
install_claude "$SCOPE"
|
|
384
|
+
exit 0
|
|
385
|
+
fi
|
|
386
|
+
|
|
387
|
+
if [[ "$1" == "--gemini" ]]; then
|
|
388
|
+
install_gemini
|
|
389
|
+
exit 0
|
|
390
|
+
fi
|
|
391
|
+
|
|
392
|
+
if [[ "$1" == "--aider" ]]; then
|
|
393
|
+
install_aider
|
|
394
|
+
exit 0
|
|
395
|
+
fi
|
|
396
|
+
|
|
397
|
+
if [[ "$1" == "--continue" ]]; then
|
|
398
|
+
install_continue
|
|
399
|
+
exit 0
|
|
400
|
+
fi
|
|
401
|
+
|
|
402
|
+
if [[ "$1" == "--amazon-q" ]]; then
|
|
403
|
+
install_amazon_q
|
|
404
|
+
exit 0
|
|
405
|
+
fi
|
|
406
|
+
|
|
407
|
+
if [[ "$1" == "--amp" ]]; then
|
|
408
|
+
install_amp
|
|
409
|
+
exit 0
|
|
410
|
+
fi
|
|
411
|
+
|
|
412
|
+
if [[ "$1" == "--all" ]]; then
|
|
413
|
+
echo -e "${W}${BOLD}Installing to all detected platforms...${NC}"
|
|
414
|
+
echo ""
|
|
415
|
+
command -v claude &>/dev/null && install_claude "$SCOPE"
|
|
416
|
+
command -v gemini &>/dev/null && install_gemini
|
|
417
|
+
command -v aider &>/dev/null && install_aider
|
|
418
|
+
[ -d "$HOME/.continue" ] && install_continue
|
|
419
|
+
command -v q &>/dev/null && install_amazon_q
|
|
420
|
+
command -v amp &>/dev/null && install_amp
|
|
421
|
+
exit 0
|
|
422
|
+
fi
|
|
423
|
+
|
|
424
|
+
# ── Interactive mode ─────────────────────────────────────────────
|
|
425
|
+
detect_agents
|
|
426
|
+
|
|
427
|
+
echo -e "${W}${BOLD}$(msg select)${NC}"
|
|
428
|
+
echo -e " ${W}(or press Enter to install for all detected: ${#DETECTED[@]} found)${NC}"
|
|
429
|
+
echo ""
|
|
430
|
+
read -p " > " platform_input
|
|
431
|
+
|
|
432
|
+
# Default: all detected
|
|
433
|
+
if [ -z "$platform_input" ] && [ ${#DETECTED[@]} -gt 0 ]; then
|
|
434
|
+
platforms=("${DETECTED[@]}")
|
|
435
|
+
else
|
|
436
|
+
IFS=',' read -ra nums <<< "$platform_input"
|
|
437
|
+
platforms=()
|
|
438
|
+
for n in "${nums[@]}"; do
|
|
439
|
+
n=$(echo "$n" | tr -d ' ')
|
|
440
|
+
case "$n" in
|
|
441
|
+
1) platforms+=("claude") ;;
|
|
442
|
+
2) platforms+=("gemini") ;;
|
|
443
|
+
3) platforms+=("cursor") ;;
|
|
444
|
+
4) platforms+=("codex") ;;
|
|
445
|
+
5) platforms+=("opencode") ;;
|
|
446
|
+
6) platforms+=("aider") ;;
|
|
447
|
+
7) platforms+=("continue") ;;
|
|
448
|
+
8) platforms+=("amazon-q") ;;
|
|
449
|
+
9) platforms+=("amp") ;;
|
|
450
|
+
10) platforms+=("manual") ;;
|
|
451
|
+
esac
|
|
452
|
+
done
|
|
453
|
+
fi
|
|
454
|
+
|
|
455
|
+
# Install for each selected platform
|
|
456
|
+
for platform in "${platforms[@]}"; do
|
|
457
|
+
case "$platform" in
|
|
458
|
+
claude)
|
|
459
|
+
select_scope
|
|
460
|
+
install_claude "$SCOPE"
|
|
461
|
+
;;
|
|
462
|
+
gemini)
|
|
463
|
+
install_gemini
|
|
464
|
+
;;
|
|
465
|
+
cursor)
|
|
466
|
+
echo ""
|
|
467
|
+
echo -e "${B}${BOLD}Cursor — Plugin Install${NC}"
|
|
468
|
+
echo -e " In Cursor Agent chat, run: ${C}/add-plugin cm${NC}"
|
|
469
|
+
;;
|
|
470
|
+
codex)
|
|
471
|
+
echo ""
|
|
472
|
+
echo -e "${O}${BOLD}Codex — Install${NC}"
|
|
473
|
+
echo -e " Tell Codex: ${C}Fetch and follow ${RAW_URL}/.codex/INSTALL.md${NC}"
|
|
474
|
+
;;
|
|
475
|
+
opencode)
|
|
476
|
+
echo ""
|
|
477
|
+
echo -e "${G}${BOLD}OpenCode — Install${NC}"
|
|
478
|
+
echo -e " Tell OpenCode: ${C}Fetch and follow ${RAW_URL}/.opencode/INSTALL.md${NC}"
|
|
479
|
+
;;
|
|
480
|
+
aider)
|
|
481
|
+
install_aider
|
|
482
|
+
;;
|
|
483
|
+
continue)
|
|
484
|
+
install_continue
|
|
485
|
+
;;
|
|
486
|
+
amazon-q)
|
|
487
|
+
install_amazon_q
|
|
488
|
+
;;
|
|
489
|
+
amp)
|
|
490
|
+
install_amp
|
|
491
|
+
;;
|
|
492
|
+
manual)
|
|
493
|
+
echo ""
|
|
494
|
+
echo -e "${W}${BOLD}Manual Copy — Any Platform${NC}"
|
|
495
|
+
echo ""
|
|
496
|
+
echo -e " ${C}# Gemini CLI${NC}"
|
|
497
|
+
echo -e " gemini extensions install ${REPO_URL}"
|
|
498
|
+
echo ""
|
|
499
|
+
echo -e " ${C}# Aider${NC}"
|
|
500
|
+
echo -e " bash install.sh --aider"
|
|
501
|
+
echo ""
|
|
502
|
+
echo -e " ${C}# Continue.dev${NC}"
|
|
503
|
+
echo -e " bash install.sh --continue"
|
|
504
|
+
echo ""
|
|
505
|
+
echo -e " ${C}# Any platform (copy)${NC}"
|
|
506
|
+
echo -e " cp -r skills/* ~/.gemini/skills/"
|
|
507
|
+
;;
|
|
508
|
+
esac
|
|
509
|
+
done
|
|
510
|
+
|
|
511
|
+
echo ""
|
|
512
|
+
echo -e "${C}$(msg docs) https://cody.todyle.com/docs${NC}"
|
|
513
|
+
echo ""
|
package/package.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "codymaster",
|
|
3
|
+
"version": "4.1.0",
|
|
4
|
+
"description": "34 Skills. Ship 10x faster. AI-powered coding skill kit for Claude, Cursor, Gemini & more.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/omisocial/codymaster.git"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://codymaster.ai",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/omisocial/codymaster/issues"
|
|
13
|
+
},
|
|
14
|
+
"bin": {
|
|
15
|
+
"cody": "dist/index.js",
|
|
16
|
+
"cm": "dist/index.js",
|
|
17
|
+
"codymaster": "dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc",
|
|
21
|
+
"prepare": "npm run build",
|
|
22
|
+
"start": "ts-node src/index.ts",
|
|
23
|
+
"test:gate": "vitest run --reporter=verbose",
|
|
24
|
+
"build:html": "node scripts/inject-header.js && node scripts/inject-footer.js && node scripts/inject-ga.js",
|
|
25
|
+
"docs:build": "cd docs && npx vitepress build && rm -rf ../public/docs && cp -r .vitepress/dist ../public/docs",
|
|
26
|
+
"docs:dev": "cd docs && npx vitepress dev",
|
|
27
|
+
"gate:secrets": "node scripts/gate-0-secrets.js",
|
|
28
|
+
"gate:syntax": "node scripts/gate-1-syntax.js",
|
|
29
|
+
"gate:dist": "node scripts/gate-5-dist-verify.js",
|
|
30
|
+
"gate:smoke": "node scripts/gate-6-smoke-test.js",
|
|
31
|
+
"gate:i18n": "node scripts/gate-3-i18n.js",
|
|
32
|
+
"deploy": "npm run gate:secrets && npm run gate:syntax && npm run test:gate && npm run gate:i18n && npm run build:html && npm run docs:build && npm run gate:dist && export $(grep -v '^#' .env | xargs) && wrangler pages deploy public && npm run gate:smoke",
|
|
33
|
+
"deploy:dry": "npm run gate:secrets && npm run gate:syntax && npm run test:gate && npm run gate:i18n && npm run build:html && npm run docs:build && npm run gate:dist && echo '✅ All gates passed. Ready to deploy.'"
|
|
34
|
+
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"ai",
|
|
37
|
+
"coding",
|
|
38
|
+
"skills",
|
|
39
|
+
"claude",
|
|
40
|
+
"cursor",
|
|
41
|
+
"gemini",
|
|
42
|
+
"vibe-coding",
|
|
43
|
+
"developer-tools",
|
|
44
|
+
"productivity",
|
|
45
|
+
"cli"
|
|
46
|
+
],
|
|
47
|
+
"author": "todyagent <aitodyle@gmail.com>",
|
|
48
|
+
"license": "ISC",
|
|
49
|
+
"type": "commonjs",
|
|
50
|
+
"files": [
|
|
51
|
+
"dist/",
|
|
52
|
+
"skills/",
|
|
53
|
+
"adapters/",
|
|
54
|
+
"commands/",
|
|
55
|
+
"README.md",
|
|
56
|
+
"CHANGELOG.md",
|
|
57
|
+
"install.sh"
|
|
58
|
+
],
|
|
59
|
+
"publishConfig": {
|
|
60
|
+
"access": "public"
|
|
61
|
+
},
|
|
62
|
+
"dependencies": {
|
|
63
|
+
"@clack/prompts": "^1.1.0",
|
|
64
|
+
"@types/node": "^25.5.0",
|
|
65
|
+
"chalk": "^5.6.2",
|
|
66
|
+
"commander": "^14.0.3",
|
|
67
|
+
"express": "^5.2.1",
|
|
68
|
+
"prompts": "^2.4.2",
|
|
69
|
+
"ts-node": "^10.9.2",
|
|
70
|
+
"typescript": "^5.9.3"
|
|
71
|
+
},
|
|
72
|
+
"devDependencies": {
|
|
73
|
+
"@types/express": "^5.0.6",
|
|
74
|
+
"@types/prompts": "^2.4.9",
|
|
75
|
+
"acorn": "^8.16.0",
|
|
76
|
+
"jsdom": "^29.0.1",
|
|
77
|
+
"vitest": "^4.1.0"
|
|
78
|
+
}
|
|
79
|
+
}
|