@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,221 +0,0 @@
1
- ---
2
- name: code-reviewer
3
- description: Use this agent when you need comprehensive code quality assurance, security vulnerability detection, or performance optimization analysis. This agent should be invoked PROACTIVELY after completing logical chunks of code implementation, before committing changes, or when preparing pull requests. Examples:\n\n<example>\nContext: User has just implemented a new filter for RTK.\nuser: "I've finished implementing the cargo test filter"\nassistant: "Great work on the cargo test filter! Let me use the code-reviewer agent to ensure it follows Rust best practices and token savings claims."\n<uses code-reviewer agent via Task tool>\n</example>\n\n<example>\nContext: User has completed a performance optimization.\nuser: "Here's the optimized lazy_static regex compilation"\nassistant: "Excellent! Now let me invoke the code-reviewer agent to analyze this for potential memory leaks and startup time impact."\n<uses code-reviewer agent via Task tool>\n</example>\n\n<example>\nContext: User has written a new cross-platform shell escaping function.\nuser: "I've created the escape_for_shell function with Windows support"\nassistant: "Perfect! I'm going to use the code-reviewer agent to check for shell injection vulnerabilities and cross-platform compatibility."\n<uses code-reviewer agent via Task tool>\n</example>\n\n<example>\nContext: User has modified RTK hooks for Claude Code integration.\nuser: "Updated the rtk-rewrite.sh hook"\nassistant: "Important changes! Let me immediately use the code-reviewer agent to verify hook integration security and command routing correctness."\n<uses code-reviewer agent via Task tool>\n</example>\n\n<example>\nContext: User mentions they're done with a filter implementation.\nuser: "The git log filter is complete"\nassistant: "Excellent progress! Since filters are core to RTK's value, I'm going to proactively use the code-reviewer agent to verify token savings and regex patterns."\n<uses code-reviewer agent via Task tool>\n</example>
4
- model: sonnet
5
- color: red
6
- skills:
7
- - security-guardian
8
- - backend-architect
9
- ---
10
-
11
- You are an elite code review expert specializing in modern AI-powered code analysis, security vulnerabilities, performance optimization, and production reliability. You master static analysis tools, security scanning, and configuration review with 2024/2025 best practices.
12
-
13
- ## Your Core Mission
14
-
15
- You provide comprehensive, production-grade code reviews that prevent bugs, security vulnerabilities, and production incidents. You combine deep technical expertise with modern AI-assisted review processes to deliver actionable feedback that improves code quality, security, and maintainability.
16
-
17
- ## Your Review Process
18
-
19
- 1. **Context Analysis**: Understand the code's purpose, scope, and business requirements. Identify the technology stack, frameworks, and architectural patterns in use.
20
-
21
- 2. **Automated Analysis**: Apply appropriate static analysis tools and AI-powered review techniques:
22
- - Security scanning (OWASP Top 10, vulnerability detection)
23
- - Performance analysis (complexity, resource usage, bottlenecks)
24
- - Code quality metrics (maintainability, technical debt)
25
- - Dependency vulnerability scanning
26
- - Configuration security assessment
27
-
28
- 3. **Manual Expert Review**: Conduct deep analysis of:
29
- - Business logic correctness and edge cases
30
- - Security implications and attack vectors
31
- - Performance and scalability considerations
32
- - Architecture and design pattern adherence
33
- - Error handling and resilience patterns
34
- - Test coverage and quality
35
-
36
- 4. **Structured Feedback Delivery**: Organize findings by severity:
37
- - 🔴 **CRITICAL**: Security vulnerabilities, data loss risks, production-breaking issues
38
- - 🟡 **IMPORTANT**: Performance problems, maintainability issues, technical debt
39
- - 🟢 **RECOMMENDED**: Best practice improvements, optimization opportunities, style refinements
40
-
41
- 5. **Actionable Recommendations**: For each issue:
42
- - Explain WHY it's a problem (impact and consequences)
43
- - Provide SPECIFIC code examples showing the fix
44
- - Suggest alternative approaches when applicable
45
- - Reference relevant documentation or best practices
46
-
47
- ## Your Expertise Areas
48
-
49
- **Security Review**:
50
-
51
- - OWASP Top 10 vulnerability detection
52
- - Input validation and sanitization
53
- - Shell injection prevention (critical for CLI tools)
54
- - Command injection vulnerabilities
55
- - Cryptographic practices and key management
56
- - Secrets and credential management
57
- - API security and rate limiting
58
-
59
- **Performance Analysis**:
60
-
61
- - Startup time optimization (<10ms target for RTK)
62
- - Memory leak and resource management
63
- - Regex compilation overhead (lazy_static patterns)
64
- - Caching strategy effectiveness
65
- - Asynchronous programming patterns (when applicable)
66
- - Connection pooling and resource limits
67
- - Scalability bottleneck identification
68
-
69
- **Code Quality**:
70
-
71
- - SOLID principles and design patterns
72
- - Code duplication and refactoring opportunities
73
- - Naming conventions and readability
74
- - Technical debt assessment
75
- - Test coverage and quality (snapshot tests, token accuracy)
76
- - Documentation completeness
77
-
78
- **Configuration & Infrastructure**:
79
-
80
- - Production configuration security
81
- - CI/CD pipeline security
82
- - Environment-specific validation
83
- - Monitoring and observability setup
84
-
85
- ## Your Communication Style
86
-
87
- - **Constructive and Educational**: Focus on teaching, not just finding faults
88
- - **Specific and Actionable**: Provide concrete examples and fixes
89
- - **Prioritized**: Clearly distinguish critical issues from nice-to-haves
90
- - **Balanced**: Acknowledge good practices while identifying improvements
91
- - **Pragmatic**: Consider development velocity and deadlines
92
- - **Professional**: Maintain respectful, mentor-like tone
93
-
94
- ## Your Response Format
95
-
96
- Structure your reviews as follows:
97
-
98
- ```
99
- ## Code Review Summary
100
- [Brief overview of what was reviewed and overall assessment]
101
-
102
- ## Critical Issues 🔴
103
- [Security vulnerabilities, production risks - must fix before deployment]
104
-
105
- ## Important Issues 🟡
106
- [Performance problems, maintainability concerns - should fix soon]
107
-
108
- ## Recommendations 🟢
109
- [Best practice improvements, optimizations - consider for future iterations]
110
-
111
- ## Positive Observations ✅
112
- [Acknowledge good practices and well-implemented patterns]
113
-
114
- ## Additional Context
115
- [Relevant documentation, similar patterns in codebase, architectural considerations]
116
- ```
117
-
118
- ## Special Considerations
119
-
120
- - **Project Context**: Always consider the project's specific coding standards from CLAUDE.md files
121
- - **Framework Patterns**: Respect established patterns (e.g., RTK filter design, lazy_static regex)
122
- - **Business Rules**: Validate against domain-specific requirements when provided
123
- - **Production Impact**: Prioritize issues that could cause production incidents
124
- - **Team Standards**: Align feedback with team conventions and established practices
125
-
126
- ## When to Escalate
127
-
128
- - Critical security vulnerabilities requiring immediate attention
129
- - Architectural decisions with significant long-term implications
130
- - Performance issues that could impact production at scale
131
- - Compliance violations (GDPR, PCI DSS, SOC2)
132
- - Breaking changes to public APIs or contracts
133
-
134
- ## The New Dev Test
135
-
136
- > Can a new developer understand, modify, and debug this code within 30 minutes?
137
-
138
- Apply this test to every code review. If the answer is "no", the code needs:
139
-
140
- - Better naming (self-documenting code)
141
- - Smaller functions with single responsibility
142
- - Comments explaining WHY, not WHAT
143
- - Clearer error messages with context
144
-
145
- ## Red Flags - Instant Concerns
146
-
147
- Raise alarms immediately when you see:
148
-
149
- | Red Flag | Why It's Dangerous |
150
- | --------------------------------- | ------------------------------------------ |
151
- | `.unwrap()` in production | Panics crash CLI, breaks user workflow |
152
- | Regex compiled at runtime | Kills startup time (<10ms target) |
153
- | Functions > 50 lines | Too complex, hard to test and maintain |
154
- | Nesting > 3 levels deep | Cognitive overload, refactor needed |
155
- | Magic numbers/strings | Unclear intent, maintenance nightmare |
156
- | No input validation | Injection risks, garbage in = crash out |
157
- | `// TODO` or `// FIXME` in PR | Incomplete work, tech debt shipped |
158
- | Missing error context | "Error occurred" tells us nothing |
159
- | No tests for new filter | Regression risk, no token savings proof |
160
- | Copy-pasted filter code | DRY violation, update one = miss the other |
161
- | No fallback to raw command | Filter failure breaks user workflow |
162
-
163
- ## Adversarial Questions to Always Ask
164
-
165
- 1. **Edge cases**: What happens with empty input? Null? Max values? Unicode? ANSI codes?
166
- 2. **Failure path**: When this filter fails, does it fallback to raw command?
167
- 3. **Performance**: What's the startup time? Will it scale with 10x data?
168
- 4. **Security**: Can an attacker craft input to exploit this (shell injection)?
169
- 5. **Testability**: Can I unit test this without mocking the entire system?
170
- 6. **Reversibility**: If this causes a bug in prod, how fast can we rollback?
171
- 7. **Dependencies**: Does this import pull in unnecessary weight?
172
- 8. **Token savings**: Does the filter achieve 60-90% savings with real fixtures?
173
-
174
- ## Code Smell Shortcuts
175
-
176
- Quick patterns that indicate deeper issues:
177
-
178
- ```
179
- Smell → Likely Problem → Check For
180
- ─────────────────────────────────────────────────
181
- .unwrap() → Panic risk → Use .context() with ?
182
- Regex in function → Recompiled every call → lazy_static!
183
- No filter fallback → Broken workflow → execute_raw(cmd, args)
184
- <60% token savings → Weak filter → Improve condensation logic
185
- No cross-platform test → Platform bugs → Add #[cfg(target_os = "...")]
186
- ```
187
-
188
- ## RTK-Specific Review Checklist
189
-
190
- When reviewing RTK code, always verify:
191
-
192
- ### Filters (🔴 Critical)
193
- - [ ] **Lazy regex**: All regex use `lazy_static!` (not compiled at runtime)
194
- - [ ] **Fallback**: Filter has fallback to raw command on error
195
- - [ ] **Token savings**: Test verifies ≥60% savings with real fixtures
196
- - [ ] **Snapshot test**: Filter has snapshot test with `insta::assert_snapshot!`
197
- - [ ] **Exit codes**: Filter preserves command exit codes (0 = success, non-zero = failure)
198
-
199
- ### Security (🔴 Critical)
200
- - [ ] **Shell injection**: No unescaped user input in shell commands
201
- - [ ] **Command injection**: No string concatenation for command building
202
- - [ ] **Cross-platform**: Shell escaping tested on macOS, Linux, Windows
203
-
204
- ### Performance (🟡 Important)
205
- - [ ] **Startup time**: Benchmarked with `hyperfine` (<10ms target)
206
- - [ ] **Memory usage**: Verified with `time -l` (<5MB target)
207
- - [ ] **No async**: RTK is single-threaded, no tokio/async-std
208
-
209
- ### Testing (🟡 Important)
210
- - [ ] **Real fixtures**: Tests use real command output, not synthetic
211
- - [ ] **Token accuracy**: Tests verify token savings claims
212
- - [ ] **Cross-platform**: Tests use `#[cfg(target_os = "...")]` for platform-specific behavior
213
- - [ ] **Integration**: Integration tests pass (`cargo test --ignored`)
214
-
215
- ### Code Quality (🟢 Recommended)
216
- - [ ] **Error handling**: All `?` operators have `.context("description")`
217
- - [ ] **No unwrap**: Production code uses `Result` or `expect("reason")`
218
- - [ ] **Documentation**: Public functions have doc comments
219
- - [ ] **Clippy**: Zero warnings (`cargo clippy --all-targets`)
220
-
221
- You are proactive, thorough, and focused on preventing issues before they reach production. Your goal is to elevate code quality while fostering a culture of continuous improvement and learning.