@hasna/terminal 2.3.0 → 2.3.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.
Files changed (202) hide show
  1. package/dist/cli.js +64 -16
  2. package/package.json +1 -1
  3. package/src/ai.ts +8 -0
  4. package/src/cli.tsx +57 -18
  5. package/src/output-processor.ts +6 -1
  6. package/src/output-store.ts +58 -12
  7. package/src/tool-profiles.ts +139 -0
  8. package/temp/rtk/.claude/agents/code-reviewer.md +0 -221
  9. package/temp/rtk/.claude/agents/debugger.md +0 -519
  10. package/temp/rtk/.claude/agents/rtk-testing-specialist.md +0 -461
  11. package/temp/rtk/.claude/agents/rust-rtk.md +0 -511
  12. package/temp/rtk/.claude/agents/technical-writer.md +0 -355
  13. package/temp/rtk/.claude/commands/diagnose.md +0 -352
  14. package/temp/rtk/.claude/commands/test-routing.md +0 -362
  15. package/temp/rtk/.claude/hooks/bash/pre-commit-format.sh +0 -16
  16. package/temp/rtk/.claude/hooks/rtk-rewrite.sh +0 -70
  17. package/temp/rtk/.claude/hooks/rtk-suggest.sh +0 -152
  18. package/temp/rtk/.claude/rules/cli-testing.md +0 -526
  19. package/temp/rtk/.claude/skills/issue-triage/SKILL.md +0 -348
  20. package/temp/rtk/.claude/skills/issue-triage/templates/issue-comment.md +0 -134
  21. package/temp/rtk/.claude/skills/performance.md +0 -435
  22. package/temp/rtk/.claude/skills/pr-triage/SKILL.md +0 -315
  23. package/temp/rtk/.claude/skills/pr-triage/templates/review-comment.md +0 -71
  24. package/temp/rtk/.claude/skills/repo-recap.md +0 -206
  25. package/temp/rtk/.claude/skills/rtk-tdd/SKILL.md +0 -78
  26. package/temp/rtk/.claude/skills/rtk-tdd/references/testing-patterns.md +0 -124
  27. package/temp/rtk/.claude/skills/security-guardian.md +0 -503
  28. package/temp/rtk/.claude/skills/ship.md +0 -404
  29. package/temp/rtk/.github/workflows/benchmark.yml +0 -34
  30. package/temp/rtk/.github/workflows/dco-check.yaml +0 -12
  31. package/temp/rtk/.github/workflows/release-please.yml +0 -51
  32. package/temp/rtk/.github/workflows/release.yml +0 -343
  33. package/temp/rtk/.github/workflows/security-check.yml +0 -135
  34. package/temp/rtk/.github/workflows/validate-docs.yml +0 -78
  35. package/temp/rtk/.release-please-manifest.json +0 -3
  36. package/temp/rtk/ARCHITECTURE.md +0 -1491
  37. package/temp/rtk/CHANGELOG.md +0 -640
  38. package/temp/rtk/CLAUDE.md +0 -605
  39. package/temp/rtk/CONTRIBUTING.md +0 -199
  40. package/temp/rtk/Cargo.lock +0 -1668
  41. package/temp/rtk/Cargo.toml +0 -64
  42. package/temp/rtk/Formula/rtk.rb +0 -43
  43. package/temp/rtk/INSTALL.md +0 -390
  44. package/temp/rtk/LICENSE +0 -21
  45. package/temp/rtk/README.md +0 -386
  46. package/temp/rtk/README_es.md +0 -159
  47. package/temp/rtk/README_fr.md +0 -197
  48. package/temp/rtk/README_ja.md +0 -159
  49. package/temp/rtk/README_ko.md +0 -159
  50. package/temp/rtk/README_zh.md +0 -167
  51. package/temp/rtk/ROADMAP.md +0 -15
  52. package/temp/rtk/SECURITY.md +0 -217
  53. package/temp/rtk/TEST_EXEC_TIME.md +0 -102
  54. package/temp/rtk/build.rs +0 -57
  55. package/temp/rtk/docs/AUDIT_GUIDE.md +0 -432
  56. package/temp/rtk/docs/FEATURES.md +0 -1410
  57. package/temp/rtk/docs/TROUBLESHOOTING.md +0 -309
  58. package/temp/rtk/docs/filter-workflow.md +0 -102
  59. package/temp/rtk/docs/images/gain-dashboard.jpg +0 -0
  60. package/temp/rtk/docs/tracking.md +0 -583
  61. package/temp/rtk/hooks/opencode-rtk.ts +0 -39
  62. package/temp/rtk/hooks/rtk-awareness.md +0 -29
  63. package/temp/rtk/hooks/rtk-rewrite.sh +0 -61
  64. package/temp/rtk/hooks/test-rtk-rewrite.sh +0 -442
  65. package/temp/rtk/install.sh +0 -124
  66. package/temp/rtk/release-please-config.json +0 -10
  67. package/temp/rtk/scripts/benchmark.sh +0 -592
  68. package/temp/rtk/scripts/check-installation.sh +0 -162
  69. package/temp/rtk/scripts/install-local.sh +0 -37
  70. package/temp/rtk/scripts/rtk-economics.sh +0 -137
  71. package/temp/rtk/scripts/test-all.sh +0 -561
  72. package/temp/rtk/scripts/test-aristote.sh +0 -227
  73. package/temp/rtk/scripts/test-tracking.sh +0 -79
  74. package/temp/rtk/scripts/update-readme-metrics.sh +0 -32
  75. package/temp/rtk/scripts/validate-docs.sh +0 -73
  76. package/temp/rtk/src/aws_cmd.rs +0 -880
  77. package/temp/rtk/src/binlog.rs +0 -1645
  78. package/temp/rtk/src/cargo_cmd.rs +0 -1727
  79. package/temp/rtk/src/cc_economics.rs +0 -1157
  80. package/temp/rtk/src/ccusage.rs +0 -340
  81. package/temp/rtk/src/config.rs +0 -187
  82. package/temp/rtk/src/container.rs +0 -855
  83. package/temp/rtk/src/curl_cmd.rs +0 -134
  84. package/temp/rtk/src/deps.rs +0 -268
  85. package/temp/rtk/src/diff_cmd.rs +0 -367
  86. package/temp/rtk/src/discover/mod.rs +0 -274
  87. package/temp/rtk/src/discover/provider.rs +0 -388
  88. package/temp/rtk/src/discover/registry.rs +0 -2022
  89. package/temp/rtk/src/discover/report.rs +0 -202
  90. package/temp/rtk/src/discover/rules.rs +0 -667
  91. package/temp/rtk/src/display_helpers.rs +0 -402
  92. package/temp/rtk/src/dotnet_cmd.rs +0 -1771
  93. package/temp/rtk/src/dotnet_format_report.rs +0 -133
  94. package/temp/rtk/src/dotnet_trx.rs +0 -593
  95. package/temp/rtk/src/env_cmd.rs +0 -204
  96. package/temp/rtk/src/filter.rs +0 -462
  97. package/temp/rtk/src/filters/README.md +0 -52
  98. package/temp/rtk/src/filters/ansible-playbook.toml +0 -34
  99. package/temp/rtk/src/filters/basedpyright.toml +0 -47
  100. package/temp/rtk/src/filters/biome.toml +0 -45
  101. package/temp/rtk/src/filters/brew-install.toml +0 -37
  102. package/temp/rtk/src/filters/composer-install.toml +0 -40
  103. package/temp/rtk/src/filters/df.toml +0 -16
  104. package/temp/rtk/src/filters/dotnet-build.toml +0 -64
  105. package/temp/rtk/src/filters/du.toml +0 -16
  106. package/temp/rtk/src/filters/fail2ban-client.toml +0 -15
  107. package/temp/rtk/src/filters/gcc.toml +0 -49
  108. package/temp/rtk/src/filters/gcloud.toml +0 -22
  109. package/temp/rtk/src/filters/hadolint.toml +0 -24
  110. package/temp/rtk/src/filters/helm.toml +0 -29
  111. package/temp/rtk/src/filters/iptables.toml +0 -27
  112. package/temp/rtk/src/filters/jj.toml +0 -28
  113. package/temp/rtk/src/filters/jq.toml +0 -24
  114. package/temp/rtk/src/filters/make.toml +0 -41
  115. package/temp/rtk/src/filters/markdownlint.toml +0 -24
  116. package/temp/rtk/src/filters/mix-compile.toml +0 -27
  117. package/temp/rtk/src/filters/mix-format.toml +0 -15
  118. package/temp/rtk/src/filters/mvn-build.toml +0 -44
  119. package/temp/rtk/src/filters/oxlint.toml +0 -43
  120. package/temp/rtk/src/filters/ping.toml +0 -63
  121. package/temp/rtk/src/filters/pio-run.toml +0 -40
  122. package/temp/rtk/src/filters/poetry-install.toml +0 -50
  123. package/temp/rtk/src/filters/pre-commit.toml +0 -35
  124. package/temp/rtk/src/filters/ps.toml +0 -16
  125. package/temp/rtk/src/filters/quarto-render.toml +0 -41
  126. package/temp/rtk/src/filters/rsync.toml +0 -48
  127. package/temp/rtk/src/filters/shellcheck.toml +0 -27
  128. package/temp/rtk/src/filters/shopify-theme.toml +0 -29
  129. package/temp/rtk/src/filters/skopeo.toml +0 -45
  130. package/temp/rtk/src/filters/sops.toml +0 -16
  131. package/temp/rtk/src/filters/ssh.toml +0 -44
  132. package/temp/rtk/src/filters/stat.toml +0 -34
  133. package/temp/rtk/src/filters/swift-build.toml +0 -41
  134. package/temp/rtk/src/filters/systemctl-status.toml +0 -33
  135. package/temp/rtk/src/filters/terraform-plan.toml +0 -35
  136. package/temp/rtk/src/filters/tofu-fmt.toml +0 -16
  137. package/temp/rtk/src/filters/tofu-init.toml +0 -38
  138. package/temp/rtk/src/filters/tofu-plan.toml +0 -35
  139. package/temp/rtk/src/filters/tofu-validate.toml +0 -17
  140. package/temp/rtk/src/filters/trunk-build.toml +0 -39
  141. package/temp/rtk/src/filters/ty.toml +0 -50
  142. package/temp/rtk/src/filters/uv-sync.toml +0 -37
  143. package/temp/rtk/src/filters/xcodebuild.toml +0 -99
  144. package/temp/rtk/src/filters/yamllint.toml +0 -25
  145. package/temp/rtk/src/find_cmd.rs +0 -598
  146. package/temp/rtk/src/format_cmd.rs +0 -386
  147. package/temp/rtk/src/gain.rs +0 -723
  148. package/temp/rtk/src/gh_cmd.rs +0 -1651
  149. package/temp/rtk/src/git.rs +0 -2012
  150. package/temp/rtk/src/go_cmd.rs +0 -592
  151. package/temp/rtk/src/golangci_cmd.rs +0 -254
  152. package/temp/rtk/src/grep_cmd.rs +0 -288
  153. package/temp/rtk/src/gt_cmd.rs +0 -810
  154. package/temp/rtk/src/hook_audit_cmd.rs +0 -283
  155. package/temp/rtk/src/hook_check.rs +0 -171
  156. package/temp/rtk/src/init.rs +0 -1859
  157. package/temp/rtk/src/integrity.rs +0 -537
  158. package/temp/rtk/src/json_cmd.rs +0 -231
  159. package/temp/rtk/src/learn/detector.rs +0 -628
  160. package/temp/rtk/src/learn/mod.rs +0 -119
  161. package/temp/rtk/src/learn/report.rs +0 -184
  162. package/temp/rtk/src/lint_cmd.rs +0 -694
  163. package/temp/rtk/src/local_llm.rs +0 -316
  164. package/temp/rtk/src/log_cmd.rs +0 -248
  165. package/temp/rtk/src/ls.rs +0 -324
  166. package/temp/rtk/src/main.rs +0 -2482
  167. package/temp/rtk/src/mypy_cmd.rs +0 -389
  168. package/temp/rtk/src/next_cmd.rs +0 -241
  169. package/temp/rtk/src/npm_cmd.rs +0 -236
  170. package/temp/rtk/src/parser/README.md +0 -267
  171. package/temp/rtk/src/parser/error.rs +0 -46
  172. package/temp/rtk/src/parser/formatter.rs +0 -336
  173. package/temp/rtk/src/parser/mod.rs +0 -311
  174. package/temp/rtk/src/parser/types.rs +0 -119
  175. package/temp/rtk/src/pip_cmd.rs +0 -302
  176. package/temp/rtk/src/playwright_cmd.rs +0 -479
  177. package/temp/rtk/src/pnpm_cmd.rs +0 -573
  178. package/temp/rtk/src/prettier_cmd.rs +0 -221
  179. package/temp/rtk/src/prisma_cmd.rs +0 -482
  180. package/temp/rtk/src/psql_cmd.rs +0 -382
  181. package/temp/rtk/src/pytest_cmd.rs +0 -384
  182. package/temp/rtk/src/read.rs +0 -217
  183. package/temp/rtk/src/rewrite_cmd.rs +0 -50
  184. package/temp/rtk/src/ruff_cmd.rs +0 -402
  185. package/temp/rtk/src/runner.rs +0 -271
  186. package/temp/rtk/src/summary.rs +0 -297
  187. package/temp/rtk/src/tee.rs +0 -405
  188. package/temp/rtk/src/telemetry.rs +0 -248
  189. package/temp/rtk/src/toml_filter.rs +0 -1655
  190. package/temp/rtk/src/tracking.rs +0 -1416
  191. package/temp/rtk/src/tree.rs +0 -209
  192. package/temp/rtk/src/tsc_cmd.rs +0 -259
  193. package/temp/rtk/src/utils.rs +0 -432
  194. package/temp/rtk/src/verify_cmd.rs +0 -47
  195. package/temp/rtk/src/vitest_cmd.rs +0 -385
  196. package/temp/rtk/src/wc_cmd.rs +0 -401
  197. package/temp/rtk/src/wget_cmd.rs +0 -260
  198. package/temp/rtk/tests/fixtures/dotnet/build_failed.txt +0 -11
  199. package/temp/rtk/tests/fixtures/dotnet/format_changes.json +0 -31
  200. package/temp/rtk/tests/fixtures/dotnet/format_empty.json +0 -1
  201. package/temp/rtk/tests/fixtures/dotnet/format_success.json +0 -12
  202. package/temp/rtk/tests/fixtures/dotnet/test_failed.txt +0 -18
@@ -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
- ```