oh-my-customcode 1.1.106 → 1.1.107
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/README.md +8 -9
- package/dist/cli/index.js +227 -191
- package/dist/index.js +220 -138
- package/package.json +1 -1
- package/templates/.claude/hooks/hooks.json +0 -10
- package/templates/.claude/hooks/scripts/claude-md-reinject.sh +7 -1
- package/templates/.claude/hooks/scripts/cost-cap-advisor.sh +107 -52
- package/templates/.claude/hooks/scripts/session-env-check.sh +0 -8
- package/templates/.claude/hooks/scripts/session-reflection.sh +60 -15
- package/templates/.claude/hooks/scripts/stuck-detector.sh +110 -14
- package/templates/.claude/rules/MAY-optimization.md +1 -1
- package/templates/.claude/rules/MUST-agent-design.md +1 -1
- package/templates/.claude/rules/SHOULD-memory-integration.md +1 -1
- package/templates/.claude/rules/SHOULD-verification-ladder.md +9 -0
- package/templates/.claude/settings.json +0 -10
- package/templates/.claude/skills/intent-detection/patterns/agent-triggers.yaml +0 -8
- package/templates/.claude/skills/pipeline/workflows/auto-dev.yaml +3 -1
- package/templates/CLAUDE.md +1 -1
- package/templates/CLAUDE.md.en +1 -1
- package/templates/CLAUDE.md.ko +1 -1
- package/templates/README.md +4 -4
- package/templates/guides/external-tools/ecc-absorption-decisions.md +2 -0
- package/templates/guides/multi-provider-exec/README.md +7 -18
- package/templates/manifest.json +3 -3
- package/templates/workflows/auto-dev.yaml +3 -1
- package/templates/.claude/hooks/scripts/rtk-intercept.sh +0 -77
- package/templates/.claude/skills/rtk-exec/SKILL.md +0 -199
- package/templates/.claude/skills/rtk-exec/scripts/rtk-wrapper.cjs +0 -377
package/templates/README.md
CHANGED
|
@@ -48,11 +48,11 @@ templates/
|
|
|
48
48
|
├── manifest.json # 배포 컴포넌트 카운트 및 메타데이터
|
|
49
49
|
├── .claude/
|
|
50
50
|
│ ├── agents/ # 에이전트 정의 파일 (*.md, 50개)
|
|
51
|
-
│ ├── skills/ # 스킬 모듈 (각 디렉토리에 SKILL.md,
|
|
51
|
+
│ ├── skills/ # 스킬 모듈 (각 디렉토리에 SKILL.md, 114개)
|
|
52
52
|
│ ├── rules/ # 전역 규칙 (R000–R023, 23개)
|
|
53
53
|
│ ├── hooks/
|
|
54
54
|
│ │ ├── hooks.json # 훅 이벤트 설정 (PreToolUse/PostToolUse 등)
|
|
55
|
-
│ │ └── scripts/ # 훅 셸 스크립트 (
|
|
55
|
+
│ │ └── scripts/ # 훅 셸 스크립트 (41개)
|
|
56
56
|
│ ├── contexts/ # 컨텍스트 설정 파일 (ecomode 등)
|
|
57
57
|
│ └── ontology/ # Ontology-RAG 지식 그래프
|
|
58
58
|
└── guides/ # 레퍼런스 문서 디렉토리 (56개)
|
|
@@ -87,7 +87,7 @@ CI의 `verify-template-sync.sh`가 소스와 templates/ 간 일치를 검증합
|
|
|
87
87
|
| System | 4 |
|
|
88
88
|
| Agora | 1 |
|
|
89
89
|
|
|
90
|
-
### Skills (
|
|
90
|
+
### Skills (114)
|
|
91
91
|
|
|
92
92
|
`.claude/skills/*/SKILL.md` — 재사용 가능한 스킬 모듈.
|
|
93
93
|
|
|
@@ -116,7 +116,7 @@ CI의 `verify-template-sync.sh`가 소스와 templates/ 간 일치를 검증합
|
|
|
116
116
|
|
|
117
117
|
각 디렉토리는 단일 토픽에 대한 best practices, 튜토리얼, 또는 설계 가이드를 담습니다. 에이전트가 작업 중 참조합니다 (R006 관심사 분리).
|
|
118
118
|
|
|
119
|
-
### Hooks (
|
|
119
|
+
### Hooks (41)
|
|
120
120
|
|
|
121
121
|
`.claude/hooks/scripts/*.sh` — 라이프사이클 훅 스크립트.
|
|
122
122
|
|
|
@@ -183,6 +183,8 @@ v1.1.29(#1484)에서 제거되었습니다.
|
|
|
183
183
|
|
|
184
184
|
DEFER 기간 동안의 cross-tool integration 우회 경로:
|
|
185
185
|
|
|
186
|
+
아래 대안과 use case 범위는 당시 결정 이력으로 보존합니다. RTK 프로젝트 통합은 v1.1.107에서 퇴역하므로 RTK proxy skill을 현재 실행 경로로 사용하지 마십시오. 이 기록의 효과 범위를 현재 버전에서 새로 실측했다는 뜻은 아닙니다.
|
|
187
|
+
|
|
186
188
|
- **RTK proxy skill**: 기존 infra 활용, Cursor 등에서 oh-my-customcode skill 호출
|
|
187
189
|
- **Codex/Gemini exec skill**: 외부 LLM executor를 skill로 래핑, harness 종속성 없음
|
|
188
190
|
|
|
@@ -8,18 +8,13 @@ Inspired by OpenHarness's provider profile switching pattern, adapted for oh-my-
|
|
|
8
8
|
|
|
9
9
|
## Provider Matrix
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|----------|-------|---------------|-------|-----------|
|
|
13
|
-
| RTK (proxy) | `rtk-exec` | `rtk` CLI | Configurable | Token-optimized output, cost reduction |
|
|
11
|
+
v1.1.107에서는 사용자 결정에 따라 프로젝트 RTK 통합과 공개 `rtk-exec` 스킬을 퇴역합니다. 이 가이드의 RTK 실행 예시·추천을 사용하지 마십시오. 머신에 별도로 설치한 RTK 바이너리는 이 변경으로 제거하지 않습니다.
|
|
14
12
|
|
|
15
13
|
## Availability Detection
|
|
16
14
|
|
|
17
15
|
The `session-env-check.sh` hook (SessionStart) auto-detects available providers:
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
[SessionStart] Checking external CLI availability...
|
|
21
|
-
rtk: ✓ available
|
|
22
|
-
```
|
|
17
|
+
RTK availability 점검과 상태 출력은 퇴역합니다. Codex·Gemini 등 나머지 CLI availability 점검은 기존 session hook 계약을 유지합니다.
|
|
23
18
|
|
|
24
19
|
Providers are opt-in — missing CLIs are silently skipped.
|
|
25
20
|
|
|
@@ -27,15 +22,11 @@ Providers are opt-in — missing CLIs are silently skipped.
|
|
|
27
22
|
|
|
28
23
|
### Direct Invocation
|
|
29
24
|
|
|
30
|
-
|
|
31
|
-
/rtk-exec "List files matching pattern X"
|
|
32
|
-
```
|
|
25
|
+
공개 `/rtk-exec` 명령은 제거됩니다. 이 문서에서 다른 provider의 실행 스킬이나 자동 대체 명령을 새로 지정하지 않습니다.
|
|
33
26
|
|
|
34
27
|
### Provider Selection Guide
|
|
35
28
|
|
|
36
|
-
|
|
37
|
-
|------|---------------------|-----------|
|
|
38
|
-
| Token-heavy batch operations | rtk-exec | Compressed output reduces context cost |
|
|
29
|
+
기존 RTK 추천 항목은 제거됩니다. provider를 선택할 때는 사용 가능한 스킬의 실제 계약과 CLI 설정을 확인하십시오.
|
|
39
30
|
|
|
40
31
|
### Integration with Existing Skills
|
|
41
32
|
|
|
@@ -49,18 +40,16 @@ Providers are opt-in — missing CLIs are silently skipped.
|
|
|
49
40
|
| Aspect | Multi-Model Routing | Multi-Provider Exec |
|
|
50
41
|
|--------|--------------------|--------------------|
|
|
51
42
|
| Scope | Claude model selection | Cross-provider execution |
|
|
52
|
-
| Models | haiku / sonnet / opus |
|
|
43
|
+
| Models | haiku / sonnet / opus | 명시적으로 선택한 외부 provider의 모델 |
|
|
53
44
|
| Mechanism | `model` frontmatter field | Exec skill invocation |
|
|
54
|
-
| Use case | Cost/quality optimization within Claude |
|
|
45
|
+
| Use case | Cost/quality optimization within Claude | 명시적으로 선택한 외부 provider 실행 |
|
|
55
46
|
| Guide | `guides/multi-model-routing/` | `guides/multi-provider-exec/` |
|
|
56
47
|
|
|
57
48
|
## Configuration
|
|
58
49
|
|
|
59
50
|
No global configuration required. Each exec skill reads its own CLI configuration:
|
|
60
51
|
|
|
61
|
-
|
|
62
|
-
|-------|-------------|
|
|
63
|
-
| rtk-exec | RTK proxy running on localhost |
|
|
52
|
+
RTK 전용 설정 연결은 제거됩니다. 이 변경은 다른 CLI의 사용자 설정을 삭제하지 않습니다.
|
|
64
53
|
|
|
65
54
|
## Limitations
|
|
66
55
|
|
package/templates/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.1.
|
|
3
|
-
"lastUpdated": "2026-
|
|
2
|
+
"version": "1.1.107",
|
|
3
|
+
"lastUpdated": "2026-10-06",
|
|
4
4
|
"omcustomMinClaudeCode": "2.1.121",
|
|
5
5
|
"omcustomMinClaudeCodeReason": "Sensitive-path direct Write/Edit on .claude/** under bypassPermissions (R010 deprecation, #1101)",
|
|
6
6
|
"components": [
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"name": "skills",
|
|
21
21
|
"path": ".claude/skills",
|
|
22
22
|
"description": "Reusable skill modules (includes slash commands)",
|
|
23
|
-
"files":
|
|
23
|
+
"files": 114
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"name": "guides",
|
|
@@ -1446,9 +1446,11 @@ steps:
|
|
|
1446
1446
|
re-running step d then step e, re-staging, and re-running this assertion.
|
|
1447
1447
|
|
|
1448
1448
|
Version decision (semver) — PATCH-PREFERRED policy (post-1.0.0):
|
|
1449
|
+
- The user's explicit version or bump-level judgment takes precedence. Approval to remove a feature or change hooks is not approval for a major or minor version.
|
|
1449
1450
|
- No existing tags → v0.1.0
|
|
1450
1451
|
- Previous tag exists → DEFAULT to patch. When in doubt, patch — do NOT reflexively bump minor for rule/doc/skill edits.
|
|
1451
1452
|
- patch (DEFAULT): rule/doc/skill/config/wiki/workflow changes, bugfixes, hardening, CC-compat notes — the vast majority of this project's changes
|
|
1453
|
+
- Public skill/agent/integration additions and removals follow this repository's PATCH-PREFERRED lifecycle policy, including RTK integration and /rtk-exec retirement. Names, files, or counts appearing or disappearing alone do not justify a major or minor bump.
|
|
1452
1454
|
- minor: ONLY a new user-facing capability that changes HOW the harness is used — a new
|
|
1453
1455
|
workflow axis, a new command surface users must learn, or a contract other components
|
|
1454
1456
|
depend on. NOT "a file was added under .claude/skills/ or .claude/agents/".
|
|
@@ -1460,7 +1462,7 @@ steps:
|
|
|
1460
1462
|
baseline rate of change, NOT a minor signal. If a version bump would follow
|
|
1461
1463
|
mechanically from "a new file exists", it is patch. Ask instead: does a user's
|
|
1462
1464
|
workflow change because of this?
|
|
1463
|
-
- major:
|
|
1465
|
+
- major: actual compatibility breaks in existing CLI flags or public APIs, or an explicit major milestone declaration (e.g., v1.0.0). Skill/agent/integration lifecycle changes alone are excluded; the user's explicit version or bump-level judgment takes precedence.
|
|
1464
1466
|
- Previous tag is ahead of source version (e.g., tag v0.136.1, package.json 0.136.0): use next available skip-version (0.136.2)
|
|
1465
1467
|
|
|
1466
1468
|
2. Release notes via omcustom-release-notes skill
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# RTK Auto-Intercept Hook
|
|
3
|
-
# Trigger: PreToolUse (Bash matcher)
|
|
4
|
-
# Purpose: Transparently rewrite CLI commands through RTK proxy
|
|
5
|
-
# Protocol: stdin JSON → stdout modified JSON, exit 0 always
|
|
6
|
-
|
|
7
|
-
set -euo pipefail
|
|
8
|
-
|
|
9
|
-
input=$(cat)
|
|
10
|
-
|
|
11
|
-
# Only intercept Bash tool calls
|
|
12
|
-
tool_name=$(printf '%s\n' "$input" | jq -r '.tool // empty' 2>/dev/null || echo "")
|
|
13
|
-
if [ "$tool_name" != "Bash" ]; then
|
|
14
|
-
printf '%s\n' "$input"
|
|
15
|
-
exit 0
|
|
16
|
-
fi
|
|
17
|
-
|
|
18
|
-
# Check RTK availability
|
|
19
|
-
RTK_AVAILABLE=false
|
|
20
|
-
STATUS_FILE="/tmp/.claude-env-status-${PPID}"
|
|
21
|
-
if [ -f "$STATUS_FILE" ] && grep -q "rtk=available" "$STATUS_FILE" 2>/dev/null; then
|
|
22
|
-
RTK_AVAILABLE=true
|
|
23
|
-
elif command -v rtk >/dev/null 2>&1; then
|
|
24
|
-
RTK_AVAILABLE=true
|
|
25
|
-
fi
|
|
26
|
-
|
|
27
|
-
if [ "$RTK_AVAILABLE" != "true" ]; then
|
|
28
|
-
printf '%s\n' "$input"
|
|
29
|
-
exit 0
|
|
30
|
-
fi
|
|
31
|
-
|
|
32
|
-
# Extract command
|
|
33
|
-
cmd=$(printf '%s\n' "$input" | jq -r '.tool_input.command // empty' 2>/dev/null || echo "")
|
|
34
|
-
if [ -z "$cmd" ]; then
|
|
35
|
-
printf '%s\n' "$input"
|
|
36
|
-
exit 0
|
|
37
|
-
fi
|
|
38
|
-
|
|
39
|
-
# Skip if already using rtk
|
|
40
|
-
if echo "$cmd" | grep -qE '^rtk\b'; then
|
|
41
|
-
printf '%s\n' "$input"
|
|
42
|
-
exit 0
|
|
43
|
-
fi
|
|
44
|
-
|
|
45
|
-
# Skip complex commands (pipes, redirections, background, subshells, semicolons with multiple commands)
|
|
46
|
-
if echo "$cmd" | grep -qE '[|><&]|;\s*\w'; then
|
|
47
|
-
printf '%s\n' "$input"
|
|
48
|
-
exit 0
|
|
49
|
-
fi
|
|
50
|
-
|
|
51
|
-
# RTK-supported command prefixes
|
|
52
|
-
RTK_CMDS="ls find tree du cat head tail wc grep rg git cargo npm pnpm bun pip pytest vitest jest rspec eslint tsc ruff docker kubectl"
|
|
53
|
-
|
|
54
|
-
# Extract first word of command (skip env var assignments like FOO=bar)
|
|
55
|
-
first_word=$(echo "$cmd" | sed 's/^[A-Z_]*=[^ ]* //' | awk '{print $1}')
|
|
56
|
-
|
|
57
|
-
# Check if command is RTK-supported
|
|
58
|
-
SUPPORTED=false
|
|
59
|
-
for rtk_cmd in $RTK_CMDS; do
|
|
60
|
-
if [ "$first_word" = "$rtk_cmd" ]; then
|
|
61
|
-
SUPPORTED=true
|
|
62
|
-
break
|
|
63
|
-
fi
|
|
64
|
-
done
|
|
65
|
-
|
|
66
|
-
if [ "$SUPPORTED" != "true" ]; then
|
|
67
|
-
printf '%s\n' "$input"
|
|
68
|
-
exit 0
|
|
69
|
-
fi
|
|
70
|
-
|
|
71
|
-
# Rewrite command with rtk prefix
|
|
72
|
-
new_cmd="rtk $cmd"
|
|
73
|
-
echo "[RTK] Intercepted: $cmd → $new_cmd" >&2
|
|
74
|
-
|
|
75
|
-
# Output modified JSON
|
|
76
|
-
printf '%s\n' "$input" | jq --arg new_cmd "$new_cmd" '.tool_input.command = $new_cmd'
|
|
77
|
-
exit 0
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: rtk-exec
|
|
3
|
-
description: Execute CLI commands through RTK proxy for token-optimized output
|
|
4
|
-
scope: core
|
|
5
|
-
argument-hint: "<command> [args...] [--gain] [--version] [--init]"
|
|
6
|
-
user-invocable: true
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# RTK Exec Skill
|
|
10
|
-
|
|
11
|
-
Execute CLI commands through the RTK (Rust Token Killer) proxy to reduce LLM token consumption by 60-90%. RTK is a CLI command proxy — it wraps existing shell commands and compresses their output using smart filtering, grouping, truncation, and deduplication.
|
|
12
|
-
|
|
13
|
-
> **Important**: RTK is NOT an AI prompt tool. It is a CLI output compressor. You pass it a regular shell command and it returns compressed output.
|
|
14
|
-
|
|
15
|
-
## Options
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
<command> [args...] Required. CLI command to proxy through RTK (e.g., "ls .", "git status", "cargo test")
|
|
19
|
-
--gain Show token savings statistics (rtk gain)
|
|
20
|
-
--version Show RTK version (rtk --version)
|
|
21
|
-
--init Initialize RTK for current project (rtk init -g)
|
|
22
|
-
--timeout <ms> Execution timeout (default: 120000, max: 600000)
|
|
23
|
-
--working-dir <dir> Working directory for command execution
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Workflow
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
1. Pre-checks
|
|
30
|
-
- Verify `rtk` binary is installed (which rtk)
|
|
31
|
-
- No authentication required
|
|
32
|
-
2. Build command
|
|
33
|
-
- Special: rtk gain | rtk --version | rtk init -g
|
|
34
|
-
- Proxy: rtk <command> [args...]
|
|
35
|
-
3. Execute
|
|
36
|
-
- Run via Bash tool with timeout (default 2min, max 10min)
|
|
37
|
-
- Or use helper script: node .claude/skills/rtk-exec/scripts/rtk-wrapper.cjs
|
|
38
|
-
4. Parse output
|
|
39
|
-
- RTK always returns plain text compressed output (no JSON modes)
|
|
40
|
-
- Capture stdout and stderr
|
|
41
|
-
5. Report results
|
|
42
|
-
- Format output with execution metadata and token savings info
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Supported Commands
|
|
46
|
-
|
|
47
|
-
RTK supports 100+ CLI commands across categories:
|
|
48
|
-
|
|
49
|
-
| Category | Commands |
|
|
50
|
-
|----------|----------|
|
|
51
|
-
| File ops | `ls`, `find`, `grep`, `cat`, `tree`, `du`, `diff` |
|
|
52
|
-
| Git | `git status`, `git log`, `git diff`, `git push`, `git pull`, `git branch` |
|
|
53
|
-
| Test runners | `cargo test`, `pytest`, `vitest`, `jest`, `go test`, `bun test` |
|
|
54
|
-
| Linters | `eslint`, `tsc`, `ruff`, `clippy`, `golangci-lint`, `rubocop` |
|
|
55
|
-
| Package managers | `pnpm install`, `pip install`, `cargo build`, `npm install` |
|
|
56
|
-
| Containers | `docker build`, `docker ps`, `kubectl get`, `kubectl logs` |
|
|
57
|
-
| Build tools | `make`, `cmake`, `gradle`, `mvn` |
|
|
58
|
-
| System | `ps`, `top`, `df`, `netstat`, `env` |
|
|
59
|
-
|
|
60
|
-
## Output Format
|
|
61
|
-
|
|
62
|
-
### Success
|
|
63
|
-
```
|
|
64
|
-
[RTK Exec] Completed
|
|
65
|
-
|
|
66
|
-
Command: rtk git status
|
|
67
|
-
Duration: 0.3s
|
|
68
|
-
Working Dir: /path/to/project
|
|
69
|
-
|
|
70
|
-
--- Output ---
|
|
71
|
-
{rtk compressed output}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Success (--gain)
|
|
75
|
-
```
|
|
76
|
-
[RTK Exec] Token Savings
|
|
77
|
-
|
|
78
|
-
--- Gain Report ---
|
|
79
|
-
{rtk gain statistics showing tokens saved per command}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### Failure
|
|
83
|
-
```
|
|
84
|
-
[RTK Exec] Failed
|
|
85
|
-
|
|
86
|
-
Command: rtk cargo test
|
|
87
|
-
Error: {error_message}
|
|
88
|
-
Exit Code: {code}
|
|
89
|
-
Stderr: {stderr}
|
|
90
|
-
Suggested Fix: {suggestion}
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## Helper Script
|
|
94
|
-
|
|
95
|
-
For complex executions or programmatic use:
|
|
96
|
-
```bash
|
|
97
|
-
node .claude/skills/rtk-exec/scripts/rtk-wrapper.cjs --command "cargo test" [options]
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
The wrapper provides:
|
|
101
|
-
- Binary availability check
|
|
102
|
-
- Safe command construction
|
|
103
|
-
- Timeout handling with graceful SIGTERM → SIGKILL escalation
|
|
104
|
-
- Structured JSON output for programmatic consumption
|
|
105
|
-
|
|
106
|
-
## Examples
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
|
-
# List files with compression
|
|
110
|
-
/rtk-exec "ls -la src/"
|
|
111
|
-
|
|
112
|
-
# Git status (often 70%+ token reduction)
|
|
113
|
-
/rtk-exec "git status"
|
|
114
|
-
|
|
115
|
-
# Run Rust tests
|
|
116
|
-
/rtk-exec "cargo test"
|
|
117
|
-
|
|
118
|
-
# Run Python tests
|
|
119
|
-
/rtk-exec "pytest tests/ -v"
|
|
120
|
-
|
|
121
|
-
# TypeScript type check
|
|
122
|
-
/rtk-exec "tsc --noEmit"
|
|
123
|
-
|
|
124
|
-
# Show token savings stats
|
|
125
|
-
/rtk-exec --gain
|
|
126
|
-
|
|
127
|
-
# Initialize RTK for project
|
|
128
|
-
/rtk-exec --init
|
|
129
|
-
|
|
130
|
-
# With timeout override
|
|
131
|
-
/rtk-exec "cargo build --release" --timeout 300000
|
|
132
|
-
|
|
133
|
-
# Specify working directory
|
|
134
|
-
/rtk-exec "git log --oneline -20" --working-dir /path/to/repo
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## Integration
|
|
138
|
-
|
|
139
|
-
Works with the orchestrator pattern:
|
|
140
|
-
- Main conversation delegates CLI execution via this skill
|
|
141
|
-
- Results are returned to the main conversation for further processing
|
|
142
|
-
- Particularly effective for test runs, lint checks, and git operations where output is verbose
|
|
143
|
-
- Can be chained: rtk-exec for output collection → Claude expert for analysis
|
|
144
|
-
|
|
145
|
-
## Availability Check
|
|
146
|
-
|
|
147
|
-
rtk-exec requires the RTK binary to be installed. The skill is only usable when:
|
|
148
|
-
|
|
149
|
-
1. `rtk` binary is found in PATH (`which rtk` succeeds)
|
|
150
|
-
2. No authentication or API keys required
|
|
151
|
-
|
|
152
|
-
If the binary check fails, this skill cannot be used. Fall back to direct Bash tool execution.
|
|
153
|
-
|
|
154
|
-
> **Note**: This skill is invoked via `/rtk-exec` command or delegated by the orchestrator. It is most useful for any task that produces verbose CLI output that would otherwise consume large amounts of context tokens.
|
|
155
|
-
|
|
156
|
-
## Agent Teams Integration
|
|
157
|
-
|
|
158
|
-
When used within Agent Teams:
|
|
159
|
-
|
|
160
|
-
1. **As delegated task**: orchestrator explicitly delegates CLI execution for token-efficient output
|
|
161
|
-
2. **Hybrid workflow**: Claude team member plans → rtk-exec runs commands → Claude analyzes compressed output
|
|
162
|
-
3. **Batch execution**: Multiple rtk-exec invocations in parallel for different commands
|
|
163
|
-
|
|
164
|
-
```
|
|
165
|
-
Orchestrator delegates CLI task
|
|
166
|
-
→ /rtk-exec invoked with command
|
|
167
|
-
→ Compressed output returned to orchestrator
|
|
168
|
-
→ Analyst processes compressed result
|
|
169
|
-
→ Iterate if needed
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## Token Savings
|
|
173
|
-
|
|
174
|
-
RTK uses four compression strategies:
|
|
175
|
-
|
|
176
|
-
| Strategy | Description | Typical Savings |
|
|
177
|
-
|----------|-------------|-----------------|
|
|
178
|
-
| Smart Filtering | Removes redundant/noise lines based on command type | 30-50% |
|
|
179
|
-
| Grouping | Collapses repeated patterns into summary counts | 20-40% |
|
|
180
|
-
| Truncation | Clips excessively long lines with ellipsis | 10-20% |
|
|
181
|
-
| Deduplication | Removes identical repeated output blocks | 15-30% |
|
|
182
|
-
|
|
183
|
-
Combined effect: **60-90% token reduction** on typical CLI output (git log, test results, lint reports).
|
|
184
|
-
|
|
185
|
-
## Installation
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
# macOS via Homebrew
|
|
189
|
-
brew install rtk
|
|
190
|
-
|
|
191
|
-
# Universal install script
|
|
192
|
-
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
|
|
193
|
-
|
|
194
|
-
# From source via Cargo
|
|
195
|
-
cargo install --git https://github.com/rtk-ai/rtk
|
|
196
|
-
|
|
197
|
-
# Verify installation
|
|
198
|
-
rtk --version
|
|
199
|
-
```
|