@hasna/terminal 2.3.0 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/dist/App.js +404 -0
  2. package/dist/Browse.js +79 -0
  3. package/dist/FuzzyPicker.js +47 -0
  4. package/dist/Onboarding.js +51 -0
  5. package/dist/Spinner.js +12 -0
  6. package/dist/StatusBar.js +49 -0
  7. package/dist/ai.js +322 -0
  8. package/dist/cache.js +41 -0
  9. package/dist/cli.js +64 -16
  10. package/dist/command-rewriter.js +64 -0
  11. package/dist/command-validator.js +86 -0
  12. package/dist/compression.js +107 -0
  13. package/dist/context-hints.js +275 -0
  14. package/dist/diff-cache.js +107 -0
  15. package/dist/discover.js +212 -0
  16. package/dist/economy.js +123 -0
  17. package/dist/expand-store.js +38 -0
  18. package/dist/file-cache.js +72 -0
  19. package/dist/file-index.js +62 -0
  20. package/dist/history.js +62 -0
  21. package/dist/lazy-executor.js +54 -0
  22. package/dist/line-dedup.js +59 -0
  23. package/dist/loop-detector.js +75 -0
  24. package/dist/mcp/install.js +98 -0
  25. package/dist/mcp/server.js +569 -0
  26. package/dist/noise-filter.js +86 -0
  27. package/dist/output-processor.js +129 -0
  28. package/dist/output-router.js +41 -0
  29. package/dist/output-store.js +111 -0
  30. package/dist/parsers/base.js +2 -0
  31. package/dist/parsers/build.js +64 -0
  32. package/dist/parsers/errors.js +101 -0
  33. package/dist/parsers/files.js +78 -0
  34. package/dist/parsers/git.js +99 -0
  35. package/dist/parsers/index.js +48 -0
  36. package/dist/parsers/tests.js +89 -0
  37. package/dist/providers/anthropic.js +39 -0
  38. package/dist/providers/base.js +4 -0
  39. package/dist/providers/cerebras.js +95 -0
  40. package/dist/providers/groq.js +95 -0
  41. package/dist/providers/index.js +73 -0
  42. package/dist/providers/xai.js +95 -0
  43. package/dist/recipes/model.js +20 -0
  44. package/dist/recipes/storage.js +136 -0
  45. package/dist/search/content-search.js +68 -0
  46. package/dist/search/file-search.js +61 -0
  47. package/dist/search/filters.js +34 -0
  48. package/dist/search/index.js +5 -0
  49. package/dist/search/semantic.js +320 -0
  50. package/dist/session-boot.js +59 -0
  51. package/dist/session-context.js +55 -0
  52. package/dist/sessions-db.js +173 -0
  53. package/dist/smart-display.js +286 -0
  54. package/dist/snapshots.js +51 -0
  55. package/dist/supervisor.js +112 -0
  56. package/dist/test-watchlist.js +131 -0
  57. package/dist/tool-profiles.js +122 -0
  58. package/dist/tree.js +94 -0
  59. package/dist/usage-cache.js +65 -0
  60. package/package.json +8 -1
  61. package/src/ai.ts +8 -0
  62. package/src/cli.tsx +57 -18
  63. package/src/output-processor.ts +6 -1
  64. package/src/output-store.ts +58 -12
  65. package/src/tool-profiles.ts +139 -0
  66. package/.claude/scheduled_tasks.lock +0 -1
  67. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -20
  68. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
  69. package/CONTRIBUTING.md +0 -80
  70. package/benchmarks/benchmark.mjs +0 -115
  71. package/imported_modules.txt +0 -0
  72. package/temp/rtk/.claude/agents/code-reviewer.md +0 -221
  73. package/temp/rtk/.claude/agents/debugger.md +0 -519
  74. package/temp/rtk/.claude/agents/rtk-testing-specialist.md +0 -461
  75. package/temp/rtk/.claude/agents/rust-rtk.md +0 -511
  76. package/temp/rtk/.claude/agents/technical-writer.md +0 -355
  77. package/temp/rtk/.claude/commands/diagnose.md +0 -352
  78. package/temp/rtk/.claude/commands/test-routing.md +0 -362
  79. package/temp/rtk/.claude/hooks/bash/pre-commit-format.sh +0 -16
  80. package/temp/rtk/.claude/hooks/rtk-rewrite.sh +0 -70
  81. package/temp/rtk/.claude/hooks/rtk-suggest.sh +0 -152
  82. package/temp/rtk/.claude/rules/cli-testing.md +0 -526
  83. package/temp/rtk/.claude/skills/issue-triage/SKILL.md +0 -348
  84. package/temp/rtk/.claude/skills/issue-triage/templates/issue-comment.md +0 -134
  85. package/temp/rtk/.claude/skills/performance.md +0 -435
  86. package/temp/rtk/.claude/skills/pr-triage/SKILL.md +0 -315
  87. package/temp/rtk/.claude/skills/pr-triage/templates/review-comment.md +0 -71
  88. package/temp/rtk/.claude/skills/repo-recap.md +0 -206
  89. package/temp/rtk/.claude/skills/rtk-tdd/SKILL.md +0 -78
  90. package/temp/rtk/.claude/skills/rtk-tdd/references/testing-patterns.md +0 -124
  91. package/temp/rtk/.claude/skills/security-guardian.md +0 -503
  92. package/temp/rtk/.claude/skills/ship.md +0 -404
  93. package/temp/rtk/.github/workflows/benchmark.yml +0 -34
  94. package/temp/rtk/.github/workflows/dco-check.yaml +0 -12
  95. package/temp/rtk/.github/workflows/release-please.yml +0 -51
  96. package/temp/rtk/.github/workflows/release.yml +0 -343
  97. package/temp/rtk/.github/workflows/security-check.yml +0 -135
  98. package/temp/rtk/.github/workflows/validate-docs.yml +0 -78
  99. package/temp/rtk/.release-please-manifest.json +0 -3
  100. package/temp/rtk/ARCHITECTURE.md +0 -1491
  101. package/temp/rtk/CHANGELOG.md +0 -640
  102. package/temp/rtk/CLAUDE.md +0 -605
  103. package/temp/rtk/CONTRIBUTING.md +0 -199
  104. package/temp/rtk/Cargo.lock +0 -1668
  105. package/temp/rtk/Cargo.toml +0 -64
  106. package/temp/rtk/Formula/rtk.rb +0 -43
  107. package/temp/rtk/INSTALL.md +0 -390
  108. package/temp/rtk/LICENSE +0 -21
  109. package/temp/rtk/README.md +0 -386
  110. package/temp/rtk/README_es.md +0 -159
  111. package/temp/rtk/README_fr.md +0 -197
  112. package/temp/rtk/README_ja.md +0 -159
  113. package/temp/rtk/README_ko.md +0 -159
  114. package/temp/rtk/README_zh.md +0 -167
  115. package/temp/rtk/ROADMAP.md +0 -15
  116. package/temp/rtk/SECURITY.md +0 -217
  117. package/temp/rtk/TEST_EXEC_TIME.md +0 -102
  118. package/temp/rtk/build.rs +0 -57
  119. package/temp/rtk/docs/AUDIT_GUIDE.md +0 -432
  120. package/temp/rtk/docs/FEATURES.md +0 -1410
  121. package/temp/rtk/docs/TROUBLESHOOTING.md +0 -309
  122. package/temp/rtk/docs/filter-workflow.md +0 -102
  123. package/temp/rtk/docs/images/gain-dashboard.jpg +0 -0
  124. package/temp/rtk/docs/tracking.md +0 -583
  125. package/temp/rtk/hooks/opencode-rtk.ts +0 -39
  126. package/temp/rtk/hooks/rtk-awareness.md +0 -29
  127. package/temp/rtk/hooks/rtk-rewrite.sh +0 -61
  128. package/temp/rtk/hooks/test-rtk-rewrite.sh +0 -442
  129. package/temp/rtk/install.sh +0 -124
  130. package/temp/rtk/release-please-config.json +0 -10
  131. package/temp/rtk/scripts/benchmark.sh +0 -592
  132. package/temp/rtk/scripts/check-installation.sh +0 -162
  133. package/temp/rtk/scripts/install-local.sh +0 -37
  134. package/temp/rtk/scripts/rtk-economics.sh +0 -137
  135. package/temp/rtk/scripts/test-all.sh +0 -561
  136. package/temp/rtk/scripts/test-aristote.sh +0 -227
  137. package/temp/rtk/scripts/test-tracking.sh +0 -79
  138. package/temp/rtk/scripts/update-readme-metrics.sh +0 -32
  139. package/temp/rtk/scripts/validate-docs.sh +0 -73
  140. package/temp/rtk/src/aws_cmd.rs +0 -880
  141. package/temp/rtk/src/binlog.rs +0 -1645
  142. package/temp/rtk/src/cargo_cmd.rs +0 -1727
  143. package/temp/rtk/src/cc_economics.rs +0 -1157
  144. package/temp/rtk/src/ccusage.rs +0 -340
  145. package/temp/rtk/src/config.rs +0 -187
  146. package/temp/rtk/src/container.rs +0 -855
  147. package/temp/rtk/src/curl_cmd.rs +0 -134
  148. package/temp/rtk/src/deps.rs +0 -268
  149. package/temp/rtk/src/diff_cmd.rs +0 -367
  150. package/temp/rtk/src/discover/mod.rs +0 -274
  151. package/temp/rtk/src/discover/provider.rs +0 -388
  152. package/temp/rtk/src/discover/registry.rs +0 -2022
  153. package/temp/rtk/src/discover/report.rs +0 -202
  154. package/temp/rtk/src/discover/rules.rs +0 -667
  155. package/temp/rtk/src/display_helpers.rs +0 -402
  156. package/temp/rtk/src/dotnet_cmd.rs +0 -1771
  157. package/temp/rtk/src/dotnet_format_report.rs +0 -133
  158. package/temp/rtk/src/dotnet_trx.rs +0 -593
  159. package/temp/rtk/src/env_cmd.rs +0 -204
  160. package/temp/rtk/src/filter.rs +0 -462
  161. package/temp/rtk/src/filters/README.md +0 -52
  162. package/temp/rtk/src/filters/ansible-playbook.toml +0 -34
  163. package/temp/rtk/src/filters/basedpyright.toml +0 -47
  164. package/temp/rtk/src/filters/biome.toml +0 -45
  165. package/temp/rtk/src/filters/brew-install.toml +0 -37
  166. package/temp/rtk/src/filters/composer-install.toml +0 -40
  167. package/temp/rtk/src/filters/df.toml +0 -16
  168. package/temp/rtk/src/filters/dotnet-build.toml +0 -64
  169. package/temp/rtk/src/filters/du.toml +0 -16
  170. package/temp/rtk/src/filters/fail2ban-client.toml +0 -15
  171. package/temp/rtk/src/filters/gcc.toml +0 -49
  172. package/temp/rtk/src/filters/gcloud.toml +0 -22
  173. package/temp/rtk/src/filters/hadolint.toml +0 -24
  174. package/temp/rtk/src/filters/helm.toml +0 -29
  175. package/temp/rtk/src/filters/iptables.toml +0 -27
  176. package/temp/rtk/src/filters/jj.toml +0 -28
  177. package/temp/rtk/src/filters/jq.toml +0 -24
  178. package/temp/rtk/src/filters/make.toml +0 -41
  179. package/temp/rtk/src/filters/markdownlint.toml +0 -24
  180. package/temp/rtk/src/filters/mix-compile.toml +0 -27
  181. package/temp/rtk/src/filters/mix-format.toml +0 -15
  182. package/temp/rtk/src/filters/mvn-build.toml +0 -44
  183. package/temp/rtk/src/filters/oxlint.toml +0 -43
  184. package/temp/rtk/src/filters/ping.toml +0 -63
  185. package/temp/rtk/src/filters/pio-run.toml +0 -40
  186. package/temp/rtk/src/filters/poetry-install.toml +0 -50
  187. package/temp/rtk/src/filters/pre-commit.toml +0 -35
  188. package/temp/rtk/src/filters/ps.toml +0 -16
  189. package/temp/rtk/src/filters/quarto-render.toml +0 -41
  190. package/temp/rtk/src/filters/rsync.toml +0 -48
  191. package/temp/rtk/src/filters/shellcheck.toml +0 -27
  192. package/temp/rtk/src/filters/shopify-theme.toml +0 -29
  193. package/temp/rtk/src/filters/skopeo.toml +0 -45
  194. package/temp/rtk/src/filters/sops.toml +0 -16
  195. package/temp/rtk/src/filters/ssh.toml +0 -44
  196. package/temp/rtk/src/filters/stat.toml +0 -34
  197. package/temp/rtk/src/filters/swift-build.toml +0 -41
  198. package/temp/rtk/src/filters/systemctl-status.toml +0 -33
  199. package/temp/rtk/src/filters/terraform-plan.toml +0 -35
  200. package/temp/rtk/src/filters/tofu-fmt.toml +0 -16
  201. package/temp/rtk/src/filters/tofu-init.toml +0 -38
  202. package/temp/rtk/src/filters/tofu-plan.toml +0 -35
  203. package/temp/rtk/src/filters/tofu-validate.toml +0 -17
  204. package/temp/rtk/src/filters/trunk-build.toml +0 -39
  205. package/temp/rtk/src/filters/ty.toml +0 -50
  206. package/temp/rtk/src/filters/uv-sync.toml +0 -37
  207. package/temp/rtk/src/filters/xcodebuild.toml +0 -99
  208. package/temp/rtk/src/filters/yamllint.toml +0 -25
  209. package/temp/rtk/src/find_cmd.rs +0 -598
  210. package/temp/rtk/src/format_cmd.rs +0 -386
  211. package/temp/rtk/src/gain.rs +0 -723
  212. package/temp/rtk/src/gh_cmd.rs +0 -1651
  213. package/temp/rtk/src/git.rs +0 -2012
  214. package/temp/rtk/src/go_cmd.rs +0 -592
  215. package/temp/rtk/src/golangci_cmd.rs +0 -254
  216. package/temp/rtk/src/grep_cmd.rs +0 -288
  217. package/temp/rtk/src/gt_cmd.rs +0 -810
  218. package/temp/rtk/src/hook_audit_cmd.rs +0 -283
  219. package/temp/rtk/src/hook_check.rs +0 -171
  220. package/temp/rtk/src/init.rs +0 -1859
  221. package/temp/rtk/src/integrity.rs +0 -537
  222. package/temp/rtk/src/json_cmd.rs +0 -231
  223. package/temp/rtk/src/learn/detector.rs +0 -628
  224. package/temp/rtk/src/learn/mod.rs +0 -119
  225. package/temp/rtk/src/learn/report.rs +0 -184
  226. package/temp/rtk/src/lint_cmd.rs +0 -694
  227. package/temp/rtk/src/local_llm.rs +0 -316
  228. package/temp/rtk/src/log_cmd.rs +0 -248
  229. package/temp/rtk/src/ls.rs +0 -324
  230. package/temp/rtk/src/main.rs +0 -2482
  231. package/temp/rtk/src/mypy_cmd.rs +0 -389
  232. package/temp/rtk/src/next_cmd.rs +0 -241
  233. package/temp/rtk/src/npm_cmd.rs +0 -236
  234. package/temp/rtk/src/parser/README.md +0 -267
  235. package/temp/rtk/src/parser/error.rs +0 -46
  236. package/temp/rtk/src/parser/formatter.rs +0 -336
  237. package/temp/rtk/src/parser/mod.rs +0 -311
  238. package/temp/rtk/src/parser/types.rs +0 -119
  239. package/temp/rtk/src/pip_cmd.rs +0 -302
  240. package/temp/rtk/src/playwright_cmd.rs +0 -479
  241. package/temp/rtk/src/pnpm_cmd.rs +0 -573
  242. package/temp/rtk/src/prettier_cmd.rs +0 -221
  243. package/temp/rtk/src/prisma_cmd.rs +0 -482
  244. package/temp/rtk/src/psql_cmd.rs +0 -382
  245. package/temp/rtk/src/pytest_cmd.rs +0 -384
  246. package/temp/rtk/src/read.rs +0 -217
  247. package/temp/rtk/src/rewrite_cmd.rs +0 -50
  248. package/temp/rtk/src/ruff_cmd.rs +0 -402
  249. package/temp/rtk/src/runner.rs +0 -271
  250. package/temp/rtk/src/summary.rs +0 -297
  251. package/temp/rtk/src/tee.rs +0 -405
  252. package/temp/rtk/src/telemetry.rs +0 -248
  253. package/temp/rtk/src/toml_filter.rs +0 -1655
  254. package/temp/rtk/src/tracking.rs +0 -1416
  255. package/temp/rtk/src/tree.rs +0 -209
  256. package/temp/rtk/src/tsc_cmd.rs +0 -259
  257. package/temp/rtk/src/utils.rs +0 -432
  258. package/temp/rtk/src/verify_cmd.rs +0 -47
  259. package/temp/rtk/src/vitest_cmd.rs +0 -385
  260. package/temp/rtk/src/wc_cmd.rs +0 -401
  261. package/temp/rtk/src/wget_cmd.rs +0 -260
  262. package/temp/rtk/tests/fixtures/dotnet/build_failed.txt +0 -11
  263. package/temp/rtk/tests/fixtures/dotnet/format_changes.json +0 -31
  264. package/temp/rtk/tests/fixtures/dotnet/format_empty.json +0 -1
  265. package/temp/rtk/tests/fixtures/dotnet/format_success.json +0 -12
  266. package/temp/rtk/tests/fixtures/dotnet/test_failed.txt +0 -18
  267. package/tsconfig.json +0 -15
@@ -1,355 +0,0 @@
1
- ---
2
- name: technical-writer
3
- description: Create clear, comprehensive CLI documentation for RTK with focus on usability, performance claims, and practical examples
4
- category: communication
5
- model: sonnet
6
- tools: Read, Write, Edit, Bash
7
- ---
8
-
9
- # Technical Writer for RTK
10
-
11
- ## Triggers
12
- - CLI usage documentation and command reference creation
13
- - Performance claims documentation with evidence (benchmarks, token savings)
14
- - Installation and troubleshooting guide development
15
- - Hook integration documentation for Claude Code
16
- - Filter development guides and contribution documentation
17
-
18
- ## Behavioral Mindset
19
- Write for developers using RTK, not for yourself. Prioritize clarity with working examples. Structure content for quick reference and task completion. Always include verification steps and expected output.
20
-
21
- ## Focus Areas
22
- - **CLI Usage Documentation**: Command syntax, examples, expected output
23
- - **Performance Claims**: Evidence-based benchmarks (hyperfine, token counts, memory usage)
24
- - **Installation Guides**: Multi-platform setup (macOS, Linux, Windows), troubleshooting
25
- - **Hook Integration**: Claude Code integration, command routing, configuration
26
- - **Filter Development**: Contributing new filters, testing patterns, performance targets
27
-
28
- ## Key Actions RTK
29
-
30
- 1. **Document CLI Commands**: Clear syntax, flags, examples with real output
31
- 2. **Evidence Performance Claims**: Benchmark data supporting 60-90% token savings
32
- 3. **Write Installation Procedures**: Platform-specific steps with verification
33
- 4. **Explain Hook Integration**: Claude Code setup, command routing mechanics
34
- 5. **Guide Filter Development**: Contribution workflow, testing patterns, quality standards
35
-
36
- ## Outputs
37
-
38
- ### CLI Usage Guides
39
- ```markdown
40
- # rtk git log
41
-
42
- Condenses `git log` output for token efficiency.
43
-
44
- **Syntax**:
45
- ```bash
46
- rtk git log [git-flags]
47
- ```
48
-
49
- **Examples**:
50
- ```bash
51
- # Show last 10 commits (condensed)
52
- rtk git log -10
53
-
54
- # With specific format
55
- rtk git log --oneline --graph -20
56
- ```
57
-
58
- **Token Savings**: 80% (verified with fixtures)
59
- **Performance**: <10ms startup
60
-
61
- **Expected Output**:
62
- ```
63
- commit abc1234 Add feature X
64
- commit def5678 Fix bug Y
65
- ...
66
- ```
67
- ```
68
-
69
- ### Performance Claims Documentation
70
- ```markdown
71
- ## Token Savings Evidence
72
-
73
- **Methodology**:
74
- - Fixtures: Real command output from production environments
75
- - Measurement: Whitespace-based tokenization (`count_tokens()`)
76
- - Verification: Tests enforce ≥60% savings threshold
77
-
78
- **Results by Filter**:
79
-
80
- | Filter | Input Tokens | Output Tokens | Savings | Fixture |
81
- |--------|--------------|---------------|---------|---------|
82
- | `git log` | 2,450 | 489 | 80.0% | tests/fixtures/git_log_raw.txt |
83
- | `cargo test` | 8,120 | 812 | 90.0% | tests/fixtures/cargo_test_raw.txt |
84
- | `gh pr view` | 3,200 | 416 | 87.0% | tests/fixtures/gh_pr_view_raw.txt |
85
-
86
- **Performance Benchmarks**:
87
- ```bash
88
- hyperfine 'rtk git status' --warmup 3
89
-
90
- # Output:
91
- Time (mean ± σ): 6.2 ms ± 0.3 ms [User: 4.1 ms, System: 1.8 ms]
92
- Range (min … max): 5.8 ms … 7.1 ms 100 runs
93
- ```
94
-
95
- **Verification**:
96
- ```bash
97
- # Run token accuracy tests
98
- cargo test test_token_savings
99
-
100
- # All tests should pass, enforcing ≥60% savings
101
- ```
102
- ```
103
-
104
- ### Installation Documentation
105
- ```markdown
106
- # Installing RTK
107
-
108
- ## macOS
109
-
110
- **Option 1: Homebrew**
111
- ```bash
112
- brew install rtk-ai/tap/rtk
113
- rtk --version # Should show rtk X.Y.Z
114
- ```
115
-
116
- **Option 2: From Source**
117
- ```bash
118
- git clone https://github.com/rtk-ai/rtk.git
119
- cd rtk
120
- cargo install --path .
121
- rtk --version # Verify installation
122
- ```
123
-
124
- **Verification**:
125
- ```bash
126
- rtk gain # Should show token savings analytics
127
- ```
128
-
129
- ## Linux
130
-
131
- **From Source** (Cargo required):
132
- ```bash
133
- git clone https://github.com/rtk-ai/rtk.git
134
- cd rtk
135
- cargo install --path .
136
-
137
- # Verify installation
138
- which rtk
139
- rtk --version
140
- ```
141
-
142
- **Binary Download** (faster):
143
- ```bash
144
- curl -sSL https://github.com/rtk-ai/rtk/releases/download/v0.16.0/rtk-linux-x86_64 -o rtk
145
- chmod +x rtk
146
- sudo mv rtk /usr/local/bin/
147
- rtk --version
148
- ```
149
-
150
- ## Windows
151
-
152
- **Binary Download**:
153
- ```powershell
154
- # Download rtk-windows-x86_64.exe
155
- # Add to PATH
156
- # Verify
157
- rtk --version
158
- ```
159
-
160
- ## Troubleshooting
161
-
162
- **Issue: `rtk: command not found`**
163
- - **Cause**: Binary not in PATH
164
- - **Fix**: Add `~/.cargo/bin` to PATH
165
- ```bash
166
- echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrc
167
- source ~/.zshrc
168
- ```
169
-
170
- **Issue: `rtk gain` fails**
171
- - **Cause**: Wrong RTK installed (reachingforthejack/rtk name collision)
172
- - **Fix**: Uninstall and reinstall correct RTK
173
- ```bash
174
- cargo uninstall rtk
175
- cargo install --path . # From rtk-ai/rtk repo
176
- rtk gain --help # Should work
177
- ```
178
- ```
179
-
180
- ### Hook Integration Guide
181
- ```markdown
182
- # Claude Code Integration
183
-
184
- RTK integrates with Claude Code via bash hooks for transparent command rewriting.
185
-
186
- ## How It Works
187
-
188
- 1. User types command in Claude Code: `git status`
189
- 2. Hook (`rtk-rewrite.sh`) intercepts command
190
- 3. Rewrites to: `rtk git status`
191
- 4. RTK applies filter, returns condensed output
192
- 5. Claude sees token-optimized result (80% savings)
193
-
194
- ## Hook Files
195
-
196
- - `.claude/hooks/rtk-rewrite.sh` - Command rewriting (DO NOT MODIFY)
197
- - `.claude/hooks/rtk-suggest.sh` - Suggestion when filter available
198
-
199
- ## Verification
200
-
201
- **Check hooks are active**:
202
- ```bash
203
- ls -la .claude/hooks/*.sh
204
- # Should show -rwxr-xr-x (executable)
205
- ```
206
-
207
- **Test hook integration** (in Claude Code session):
208
- ```bash
209
- # Type in Claude Code
210
- git status
211
-
212
- # Verify hook rewrote to rtk
213
- echo $LAST_COMMAND # Should show "rtk git status"
214
- ```
215
-
216
- **Expected behavior**:
217
- - Commands with RTK filters → Auto-rewritten
218
- - Commands without filters → Executed raw (no change)
219
- ```
220
-
221
- ### Filter Development Guide
222
- ```markdown
223
- # Contributing a New Filter
224
-
225
- ## Steps
226
-
227
- ### 1. Create Filter Module
228
-
229
- ```bash
230
- touch src/newcmd_cmd.rs
231
- ```
232
-
233
- ```rust
234
- // src/newcmd_cmd.rs
235
- use anyhow::{Context, Result};
236
- use lazy_static::lazy_static;
237
- use regex::Regex;
238
-
239
- lazy_static! {
240
- static ref PATTERN: Regex = Regex::new(r"pattern").unwrap();
241
- }
242
-
243
- pub fn filter_newcmd(input: &str) -> Result<String> {
244
- // Filter logic
245
- Ok(condensed_output)
246
- }
247
-
248
- #[cfg(test)]
249
- mod tests {
250
- use super::*;
251
-
252
- #[test]
253
- fn test_token_savings() {
254
- let input = include_str!("../tests/fixtures/newcmd_raw.txt");
255
- let output = filter_newcmd(input).unwrap();
256
-
257
- let savings = calculate_savings(input, &output);
258
- assert!(savings >= 60.0);
259
- }
260
- }
261
- ```
262
-
263
- ### 2. Add to main.rs
264
-
265
- ```rust
266
- // src/main.rs
267
- #[derive(Subcommand)]
268
- enum Commands {
269
- Newcmd {
270
- #[arg(trailing_var_arg = true)]
271
- args: Vec<String>,
272
- },
273
- }
274
- ```
275
-
276
- ### 3. Write Tests
277
-
278
- ```bash
279
- # Create fixture
280
- newcmd --args > tests/fixtures/newcmd_raw.txt
281
-
282
- # Run tests
283
- cargo test
284
- ```
285
-
286
- ### 4. Document Token Savings
287
-
288
- Update README.md:
289
- ```markdown
290
- | `rtk newcmd` | 75% | Condenses newcmd output |
291
- ```
292
-
293
- ### 5. Quality Checks
294
-
295
- ```bash
296
- cargo fmt --all && cargo clippy --all-targets && cargo test --all
297
- ```
298
-
299
- ## Filter Quality Standards
300
-
301
- - **Token savings**: ≥60% verified in tests
302
- - **Startup time**: <10ms with `hyperfine`
303
- - **Lazy regex**: All patterns in `lazy_static!`
304
- - **Error handling**: Fallback to raw command on failure
305
- - **Cross-platform**: Tested on macOS + Linux
306
- ```
307
-
308
- ## Boundaries
309
-
310
- **Will**:
311
- - Create comprehensive CLI documentation with working examples
312
- - Document performance claims with evidence (benchmarks, fixtures)
313
- - Write installation guides with platform-specific troubleshooting
314
- - Explain hook integration and command routing mechanics
315
- - Guide filter development with testing patterns
316
-
317
- **Will Not**:
318
- - Implement new filters or production code (use rust-rtk agent)
319
- - Make architectural decisions on filter design
320
- - Create marketing content without evidence
321
-
322
- ## Documentation Principles
323
-
324
- 1. **Show, Don't Tell**: Include working examples with expected output
325
- 2. **Evidence-Based**: Performance claims backed by benchmarks/tests
326
- 3. **Platform-Aware**: macOS/Linux/Windows differences documented
327
- 4. **Verification Steps**: Every procedure has "verify it worked" step
328
- 5. **Troubleshooting**: Anticipate common issues, provide fixes
329
-
330
- ## Style Guide
331
-
332
- **Command examples**:
333
- ```bash
334
- # ✅ Good: Shows command + expected output
335
- rtk git status
336
-
337
- # Output:
338
- M src/main.rs
339
- A tests/new_test.rs
340
- ```
341
-
342
- **Performance claims**:
343
- ```markdown
344
- # ✅ Good: Evidence with fixture
345
- Token savings: 80% (2,450 → 489 tokens)
346
- Fixture: tests/fixtures/git_log_raw.txt
347
- Verification: cargo test test_git_log_savings
348
- ```
349
-
350
- **Installation steps**:
351
- ```bash
352
- # ✅ Good: Install + verify
353
- cargo install --path .
354
- rtk --version # Verify shows rtk X.Y.Z
355
- ```
@@ -1,352 +0,0 @@
1
- ---
2
- model: haiku
3
- description: RTK environment diagnostics - Checks installation, hooks, version, command routing
4
- ---
5
-
6
- # /diagnose
7
-
8
- Vérifie l'état de l'environnement RTK et suggère des corrections.
9
-
10
- ## Quand utiliser
11
-
12
- - **Automatiquement suggéré** quand Claude détecte ces patterns d'erreur :
13
- - `rtk: command not found` → RTK non installé ou pas dans PATH
14
- - Hook errors in Claude Code → Hooks mal configurés ou non exécutables
15
- - `Unknown command` dans RTK → Version incompatible ou commande non supportée
16
- - Token savings reports missing → `rtk gain` not working
17
- - Command routing errors → Hook integration broken
18
-
19
- - **Manuellement** après installation, mise à jour RTK, ou si comportement suspect
20
-
21
- ## Exécution
22
-
23
- ### 1. Vérifications parallèles
24
-
25
- Lancer ces commandes en parallèle :
26
-
27
- ```bash
28
- # RTK installation check
29
- which rtk && rtk --version || echo "❌ RTK not found in PATH"
30
- ```
31
-
32
- ```bash
33
- # Git status (verify working directory)
34
- git status --short && git branch --show-current
35
- ```
36
-
37
- ```bash
38
- # Hook configuration check
39
- if [ -f ".claude/hooks/rtk-rewrite.sh" ]; then
40
- echo "✅ OK: rtk-rewrite.sh hook present"
41
- # Check if hook is executable
42
- if [ -x ".claude/hooks/rtk-rewrite.sh" ]; then
43
- echo "✅ OK: hook is executable"
44
- else
45
- echo "⚠️ WARNING: hook not executable (chmod +x needed)"
46
- fi
47
- else
48
- echo "❌ MISSING: rtk-rewrite.sh hook"
49
- fi
50
- ```
51
-
52
- ```bash
53
- # Hook rtk-suggest.sh check
54
- if [ -f ".claude/hooks/rtk-suggest.sh" ]; then
55
- echo "✅ OK: rtk-suggest.sh hook present"
56
- if [ -x ".claude/hooks/rtk-suggest.sh" ]; then
57
- echo "✅ OK: hook is executable"
58
- else
59
- echo "⚠️ WARNING: hook not executable (chmod +x needed)"
60
- fi
61
- else
62
- echo "❌ MISSING: rtk-suggest.sh hook"
63
- fi
64
- ```
65
-
66
- ```bash
67
- # Claude Code context check
68
- if [ -n "$CLAUDE_CODE_HOOK_BASH_TEMPLATE" ]; then
69
- echo "✅ OK: Running in Claude Code context"
70
- echo " Hook env var set: CLAUDE_CODE_HOOK_BASH_TEMPLATE"
71
- else
72
- echo "⚠️ WARNING: Not running in Claude Code (hooks won't activate)"
73
- echo " CLAUDE_CODE_HOOK_BASH_TEMPLATE not set"
74
- fi
75
- ```
76
-
77
- ```bash
78
- # Test command routing (dry-run)
79
- if command -v rtk >/dev/null 2>&1; then
80
- # Test if rtk gain works (validates install)
81
- if rtk --help | grep -q "gain"; then
82
- echo "✅ OK: rtk gain available"
83
- else
84
- echo "❌ MISSING: rtk gain command (old version or wrong binary)"
85
- fi
86
- else
87
- echo "❌ RTK binary not found"
88
- fi
89
- ```
90
-
91
- ### 2. Validate token analytics
92
-
93
- ```bash
94
- # Run rtk gain to verify analytics work
95
- if command -v rtk >/dev/null 2>&1; then
96
- echo ""
97
- echo "📊 Token Savings (last 5 commands):"
98
- rtk gain --history 2>&1 | head -8 || echo "⚠️ rtk gain failed"
99
- else
100
- echo "⚠️ Cannot test rtk gain (binary not installed)"
101
- fi
102
- ```
103
-
104
- ### 3. Quality checks (if in RTK repo)
105
-
106
- ```bash
107
- # Only run if we're in RTK repository
108
- if [ -f "Cargo.toml" ] && grep -q 'name = "rtk"' Cargo.toml 2>/dev/null; then
109
- echo ""
110
- echo "🦀 RTK Repository Quality Checks:"
111
-
112
- # Check if cargo fmt passes
113
- if cargo fmt --all --check >/dev/null 2>&1; then
114
- echo "✅ OK: cargo fmt (code formatted)"
115
- else
116
- echo "⚠️ WARNING: cargo fmt needed"
117
- fi
118
-
119
- # Check if cargo clippy would pass (don't run full check, just verify binary)
120
- if command -v cargo-clippy >/dev/null 2>&1 || cargo clippy --version >/dev/null 2>&1; then
121
- echo "✅ OK: cargo clippy available"
122
- else
123
- echo "⚠️ WARNING: cargo clippy not installed"
124
- fi
125
- else
126
- echo "ℹ️ Not in RTK repository (skipping quality checks)"
127
- fi
128
- ```
129
-
130
- ## Format de sortie
131
-
132
- ```
133
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
134
- 🔍 RTK Environment Diagnostic
135
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
136
-
137
- 📦 RTK Binary: ✅ OK (v0.16.0) | ❌ NOT FOUND
138
- 🔗 Hooks: ✅ OK (rtk-rewrite.sh + rtk-suggest.sh executable)
139
- ❌ MISSING or ⚠️ WARNING (not executable)
140
- 📊 Token Analytics: ✅ OK (rtk gain working)
141
- ❌ FAILED (command not available)
142
- 🎯 Claude Context: ✅ OK (hook environment detected)
143
- ⚠️ WARNING (not in Claude Code)
144
- 🦀 Code Quality: ✅ OK (fmt + clippy ready) [if in RTK repo]
145
- ⚠️ WARNING (needs formatting/clippy)
146
-
147
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
148
- ```
149
-
150
- ## Actions suggérées
151
-
152
- Utiliser `AskUserQuestion` si problèmes détectés :
153
-
154
- ```
155
- question: "Problèmes détectés. Quelles corrections appliquer ?"
156
- header: "Fixes"
157
- multiSelect: true
158
- options:
159
- - label: "cargo install --path ."
160
- description: "Installer RTK localement depuis le repo"
161
- - label: "chmod +x .claude/hooks/bash/*.sh"
162
- description: "Rendre les hooks exécutables"
163
- - label: "Tout corriger (recommandé)"
164
- description: "Install RTK + fix hooks permissions"
165
- ```
166
-
167
- **Adaptations selon contexte** :
168
-
169
- ### Si RTK non installé
170
- ```
171
- options:
172
- - label: "cargo install --path ."
173
- description: "Installer RTK localement (si dans le repo)"
174
- - label: "cargo install rtk"
175
- description: "Installer RTK depuis crates.io (dernière release)"
176
- - label: "brew install rtk-ai/tap/rtk"
177
- description: "Installer RTK via Homebrew (macOS/Linux)"
178
- ```
179
-
180
- ### Si hooks manquants/non exécutables
181
- ```
182
- options:
183
- - label: "chmod +x .claude/hooks/*.sh"
184
- description: "Rendre tous les hooks exécutables"
185
- - label: "Copier hooks depuis template"
186
- description: "Si hooks manquants, copier depuis repository principal"
187
- ```
188
-
189
- ### Si rtk gain échoue
190
- ```
191
- options:
192
- - label: "Réinstaller RTK"
193
- description: "cargo install --path . --force (version outdated?)"
194
- - label: "Vérifier version"
195
- description: "rtk --version (besoin v0.16.0+ pour rtk gain)"
196
- ```
197
-
198
- ## Exécution des fixes
199
-
200
- ### Fix 1 : Installer RTK localement
201
- ```bash
202
- cd /Users/florianbruniaux/Sites/rtk-ai/rtk
203
- cargo install --path .
204
- # Vérifier installation
205
- which rtk && rtk --version
206
- ```
207
-
208
- ### Fix 2 : Rendre hooks exécutables
209
- ```bash
210
- chmod +x .claude/hooks/*.sh
211
- # Vérifier permissions
212
- ls -la .claude/hooks/*.sh
213
- ```
214
-
215
- ### Fix 3 : Tout corriger (recommandé)
216
- ```bash
217
- # Install RTK
218
- cargo install --path .
219
-
220
- # Fix hooks permissions
221
- chmod +x .claude/hooks/*.sh
222
-
223
- # Verify
224
- which rtk && rtk --version && rtk gain --history | head -3
225
- ```
226
-
227
- ## Détection automatique
228
-
229
- **IMPORTANT** : Claude doit suggérer `/diagnose` automatiquement quand il voit :
230
-
231
- | Erreur | Pattern | Cause probable |
232
- |--------|---------|----------------|
233
- | RTK not found | `rtk: command not found` | Pas installé ou pas dans PATH |
234
- | Hook error | Hook execution failed, permission denied | Hooks non exécutables (`chmod +x` needed) |
235
- | Version mismatch | `Unknown command` in RTK output | Version RTK incompatible (upgrade needed) |
236
- | No analytics | `rtk gain` fails or command not found | RTK install incomplete or old version |
237
- | Command not rewritten | Commands not proxied via RTK | Hook integration broken (check `CLAUDE_CODE_HOOK_BASH_TEMPLATE`) |
238
-
239
- ### Exemples de suggestion automatique
240
-
241
- **Cas 1 : RTK command not found**
242
- ```
243
- Cette erreur "rtk: command not found" indique que RTK n'est pas installé
244
- ou pas dans le PATH. Je suggère de lancer `/diagnose` pour vérifier
245
- l'installation et obtenir les commandes de fix.
246
- ```
247
-
248
- **Cas 2 : Hook permission denied**
249
- ```
250
- L'erreur "Permission denied" sur le hook rtk-rewrite.sh indique que
251
- les hooks ne sont pas exécutables. Lance `/diagnose` pour identifier
252
- le problème et corriger les permissions avec `chmod +x`.
253
- ```
254
-
255
- **Cas 3 : rtk gain unavailable**
256
- ```
257
- La commande `rtk gain` échoue, ce qui suggère une version RTK obsolète
258
- ou une installation incomplète. `/diagnose` va vérifier la version et
259
- suggérer une réinstallation si nécessaire.
260
- ```
261
-
262
- ## Troubleshooting Common Issues
263
-
264
- ### Issue : RTK installed but not in PATH
265
-
266
- **Symptom**: `cargo install --path .` succeeds but `which rtk` fails
267
-
268
- **Diagnosis**:
269
- ```bash
270
- # Check if binary installed in Cargo bin
271
- ls -la ~/.cargo/bin/rtk
272
-
273
- # Check if ~/.cargo/bin in PATH
274
- echo $PATH | grep -q .cargo/bin && echo "✅ In PATH" || echo "❌ Not in PATH"
275
- ```
276
-
277
- **Fix**:
278
- ```bash
279
- # Add to ~/.zshrc or ~/.bashrc
280
- export PATH="$HOME/.cargo/bin:$PATH"
281
-
282
- # Reload shell
283
- source ~/.zshrc # or source ~/.bashrc
284
- ```
285
-
286
- ### Issue : Multiple RTK binaries (name collision)
287
-
288
- **Symptom**: `rtk gain` fails with "command not found" even though `rtk --version` works
289
-
290
- **Diagnosis**:
291
- ```bash
292
- # Check if wrong RTK installed (reachingforthejack/rtk)
293
- rtk --version
294
- # Should show "rtk X.Y.Z", NOT "Rust Type Kit"
295
-
296
- rtk --help | grep gain
297
- # Should show "gain" command - if missing, wrong binary
298
- ```
299
-
300
- **Fix**:
301
- ```bash
302
- # Uninstall wrong RTK
303
- cargo uninstall rtk
304
-
305
- # Install correct RTK (this repo)
306
- cargo install --path .
307
-
308
- # Verify
309
- rtk gain --help # Should work
310
- ```
311
-
312
- ### Issue : Hooks not triggering in Claude Code
313
-
314
- **Symptom**: Commands not rewritten to `rtk <cmd>` automatically
315
-
316
- **Diagnosis**:
317
- ```bash
318
- # Check if in Claude Code context
319
- echo $CLAUDE_CODE_HOOK_BASH_TEMPLATE
320
- # Should print hook template path - if empty, not in Claude Code
321
-
322
- # Check hooks exist and executable
323
- ls -la .claude/hooks/*.sh
324
- # Should show -rwxr-xr-x (executable)
325
- ```
326
-
327
- **Fix**:
328
- ```bash
329
- # Make hooks executable
330
- chmod +x .claude/hooks/*.sh
331
-
332
- # Verify hooks load in new Claude Code session
333
- # (restart Claude Code session after chmod)
334
- ```
335
-
336
- ## Version Compatibility Matrix
337
-
338
- | RTK Version | rtk gain | rtk discover | Python/Go support | Notes |
339
- |-------------|----------|--------------|-------------------|-------|
340
- | v0.14.x | ❌ No | ❌ No | ❌ No | Outdated, upgrade |
341
- | v0.15.x | ✅ Yes | ❌ No | ❌ No | Missing discover |
342
- | v0.16.x | ✅ Yes | ✅ Yes | ✅ Yes | **Recommended** |
343
- | main branch | ✅ Yes | ✅ Yes | ✅ Yes | Latest features |
344
-
345
- **Upgrade recommendation**: If running v0.15.x or older, upgrade to v0.16.x:
346
-
347
- ```bash
348
- cd /Users/florianbruniaux/Sites/rtk-ai/rtk
349
- git pull origin main
350
- cargo install --path . --force
351
- rtk --version # Should show 0.16.x or newer
352
- ```