prjct-cli 0.20.0 → 0.20.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 (226) hide show
  1. package/CHANGELOG.md +24 -6
  2. package/CLAUDE.md +56 -15
  3. package/README.md +5 -6
  4. package/bin/prjct +59 -42
  5. package/bin/prjct.ts +60 -0
  6. package/core/__tests__/agentic/memory-system.test.ts +18 -3
  7. package/core/__tests__/agentic/plan-mode.test.ts +55 -26
  8. package/core/__tests__/agentic/prompt-builder.test.ts +6 -6
  9. package/core/__tests__/utils/project-commands.test.ts +72 -0
  10. package/core/agentic/agent-router.ts +3 -12
  11. package/core/agentic/command-executor.ts +372 -3
  12. package/core/agentic/context-builder.ts +7 -27
  13. package/core/agentic/ground-truth.ts +604 -5
  14. package/core/agentic/index.ts +180 -0
  15. package/core/agentic/loop-detector.ts +418 -4
  16. package/core/agentic/memory-system.ts +857 -3
  17. package/core/agentic/plan-mode.ts +491 -4
  18. package/core/agentic/prompt-builder.ts +44 -65
  19. package/core/agentic/services.ts +13 -5
  20. package/core/agentic/skill-loader.ts +112 -0
  21. package/core/agentic/smart-context.ts +37 -122
  22. package/core/agentic/template-loader.ts +79 -122
  23. package/core/agentic/tool-registry.ts +5 -11
  24. package/core/agents/index.ts +1 -1
  25. package/core/agents/performance.ts +4 -2
  26. package/core/bus/bus.ts +262 -0
  27. package/core/bus/index.ts +3 -313
  28. package/core/commands/analysis.ts +5 -5
  29. package/core/commands/analytics.ts +11 -11
  30. package/core/commands/base.ts +33 -209
  31. package/core/commands/cleanup.ts +148 -0
  32. package/core/commands/command-data.ts +346 -0
  33. package/core/commands/commands.ts +216 -0
  34. package/core/commands/design.ts +83 -0
  35. package/core/commands/index.ts +13 -207
  36. package/core/commands/maintenance.ts +52 -473
  37. package/core/commands/planning.ts +3 -3
  38. package/core/commands/register.ts +104 -0
  39. package/core/commands/registry.ts +441 -0
  40. package/core/commands/setup.ts +25 -9
  41. package/core/commands/shipping.ts +48 -11
  42. package/core/commands/snapshots.ts +299 -0
  43. package/core/commands/workflow.ts +2 -2
  44. package/core/constants/index.ts +254 -4
  45. package/core/domain/agent-loader.ts +5 -6
  46. package/core/domain/task-stack.ts +555 -4
  47. package/core/errors.ts +127 -1
  48. package/core/events/events.ts +87 -0
  49. package/core/events/index.ts +4 -138
  50. package/core/index.ts +15 -23
  51. package/core/infrastructure/agent-detector.ts +126 -201
  52. package/core/infrastructure/author-detector.ts +99 -171
  53. package/core/infrastructure/command-installer.ts +476 -4
  54. package/core/infrastructure/config-manager.ts +41 -37
  55. package/core/infrastructure/path-manager.ts +59 -9
  56. package/core/infrastructure/permission-manager.ts +286 -0
  57. package/core/outcomes/analyzer.ts +7 -41
  58. package/core/outcomes/index.ts +1 -1
  59. package/core/outcomes/recorder.ts +1 -1
  60. package/core/{plugins → plugin/builtin}/webhook.ts +6 -22
  61. package/core/plugin/loader.ts +5 -5
  62. package/core/plugin/registry.ts +2 -2
  63. package/core/schemas/ideas.ts +85 -54
  64. package/core/schemas/index.ts +14 -33
  65. package/core/schemas/permissions.ts +177 -0
  66. package/core/schemas/project.ts +39 -12
  67. package/core/schemas/roadmap.ts +94 -59
  68. package/core/schemas/schemas.ts +39 -0
  69. package/core/schemas/shipped.ts +87 -60
  70. package/core/schemas/state.ts +110 -70
  71. package/core/server/index.ts +21 -0
  72. package/core/server/routes.ts +165 -0
  73. package/core/server/server.ts +136 -0
  74. package/core/server/sse.ts +135 -0
  75. package/core/services/agent-service.ts +170 -0
  76. package/core/services/breakdown-service.ts +126 -0
  77. package/core/services/index.ts +21 -0
  78. package/core/services/memory-service.ts +108 -0
  79. package/core/services/project-service.ts +146 -0
  80. package/core/services/skill-service.ts +253 -0
  81. package/core/session/compaction.ts +257 -0
  82. package/core/session/index.ts +20 -8
  83. package/core/{infrastructure/session-manager/migration.ts → session/log-migration.ts} +9 -9
  84. package/core/{infrastructure/session-manager/session-manager.ts → session/session-log-manager.ts} +27 -26
  85. package/core/session/{session-manager.ts → task-session-manager.ts} +7 -4
  86. package/core/session/utils.ts +1 -1
  87. package/core/storage/ideas-storage.ts +10 -26
  88. package/core/storage/index.ts +14 -162
  89. package/core/storage/queue-storage.ts +13 -11
  90. package/core/storage/shipped-storage.ts +4 -17
  91. package/core/storage/state-storage.ts +35 -43
  92. package/core/storage/storage-manager.ts +42 -52
  93. package/core/storage/storage.ts +160 -0
  94. package/core/sync/auth-config.ts +1 -8
  95. package/core/sync/index.ts +17 -10
  96. package/core/sync/oauth-handler.ts +1 -6
  97. package/core/sync/sync-client.ts +6 -34
  98. package/core/sync/sync-manager.ts +11 -40
  99. package/core/types/agentic.ts +577 -0
  100. package/core/types/agents.ts +145 -0
  101. package/core/types/bus.ts +82 -0
  102. package/core/types/commands.ts +366 -0
  103. package/core/types/config.ts +66 -0
  104. package/core/types/core.ts +96 -0
  105. package/core/types/domain.ts +71 -0
  106. package/core/types/events.ts +42 -0
  107. package/core/types/fs.ts +56 -0
  108. package/core/types/index.ts +387 -500
  109. package/core/types/infrastructure.ts +196 -0
  110. package/core/{agentic/memory-system/types.ts → types/memory.ts} +33 -8
  111. package/core/{outcomes/types.ts → types/outcomes.ts} +53 -8
  112. package/core/types/plugin.ts +25 -0
  113. package/core/types/server.ts +54 -0
  114. package/core/types/services.ts +65 -0
  115. package/core/types/session.ts +135 -0
  116. package/core/types/storage.ts +148 -0
  117. package/core/types/sync.ts +121 -0
  118. package/core/types/task.ts +72 -0
  119. package/core/types/template.ts +24 -0
  120. package/core/types/utils.ts +90 -0
  121. package/core/utils/cache.ts +195 -0
  122. package/core/utils/collection-filters.ts +245 -0
  123. package/core/utils/date-helper.ts +1 -5
  124. package/core/utils/file-helper.ts +20 -10
  125. package/core/utils/jsonl-helper.ts +5 -8
  126. package/core/utils/markdown-builder.ts +277 -0
  127. package/core/utils/project-commands.ts +132 -0
  128. package/core/utils/runtime.ts +119 -0
  129. package/dist/bin/prjct.mjs +12568 -0
  130. package/package.json +13 -8
  131. package/scripts/build.js +106 -0
  132. package/scripts/postinstall.js +50 -8
  133. package/templates/agentic/subagent-generation.md +1 -1
  134. package/templates/commands/serve.md +118 -0
  135. package/templates/commands/ship.md +13 -2
  136. package/templates/commands/skill.md +110 -0
  137. package/templates/commands/sync.md +1 -1
  138. package/templates/commands/test.md +23 -4
  139. package/templates/permissions/default.jsonc +60 -0
  140. package/templates/permissions/permissive.jsonc +49 -0
  141. package/templates/permissions/strict.jsonc +62 -0
  142. package/templates/skills/code-review.md +47 -0
  143. package/templates/skills/debug.md +61 -0
  144. package/templates/skills/refactor.md +47 -0
  145. package/templates/subagents/domain/devops.md +1 -1
  146. package/templates/subagents/domain/testing.md +6 -10
  147. package/templates/subagents/workflow/prjct-shipper.md +16 -7
  148. package/templates/tools/bash.txt +22 -0
  149. package/templates/tools/edit.txt +18 -0
  150. package/templates/tools/glob.txt +19 -0
  151. package/templates/tools/grep.txt +21 -0
  152. package/templates/tools/read.txt +14 -0
  153. package/templates/tools/task.txt +20 -0
  154. package/templates/tools/webfetch.txt +16 -0
  155. package/templates/tools/websearch.txt +18 -0
  156. package/templates/tools/write.txt +17 -0
  157. package/core/agentic/command-executor/command-executor.ts +0 -312
  158. package/core/agentic/command-executor/index.ts +0 -16
  159. package/core/agentic/command-executor/status-signal.ts +0 -38
  160. package/core/agentic/command-executor/types.ts +0 -79
  161. package/core/agentic/ground-truth/index.ts +0 -76
  162. package/core/agentic/ground-truth/types.ts +0 -33
  163. package/core/agentic/ground-truth/utils.ts +0 -48
  164. package/core/agentic/ground-truth/verifiers/analyze.ts +0 -54
  165. package/core/agentic/ground-truth/verifiers/done.ts +0 -75
  166. package/core/agentic/ground-truth/verifiers/feature.ts +0 -70
  167. package/core/agentic/ground-truth/verifiers/index.ts +0 -37
  168. package/core/agentic/ground-truth/verifiers/init.ts +0 -52
  169. package/core/agentic/ground-truth/verifiers/now.ts +0 -57
  170. package/core/agentic/ground-truth/verifiers/ship.ts +0 -85
  171. package/core/agentic/ground-truth/verifiers/spec.ts +0 -45
  172. package/core/agentic/ground-truth/verifiers/sync.ts +0 -47
  173. package/core/agentic/ground-truth/verifiers.ts +0 -6
  174. package/core/agentic/loop-detector/error-analysis.ts +0 -97
  175. package/core/agentic/loop-detector/hallucination.ts +0 -71
  176. package/core/agentic/loop-detector/index.ts +0 -41
  177. package/core/agentic/loop-detector/loop-detector.ts +0 -222
  178. package/core/agentic/loop-detector/types.ts +0 -66
  179. package/core/agentic/memory-system/history.ts +0 -53
  180. package/core/agentic/memory-system/index.ts +0 -192
  181. package/core/agentic/memory-system/patterns.ts +0 -156
  182. package/core/agentic/memory-system/semantic-memories.ts +0 -278
  183. package/core/agentic/memory-system/session.ts +0 -21
  184. package/core/agentic/plan-mode/approval.ts +0 -57
  185. package/core/agentic/plan-mode/constants.ts +0 -44
  186. package/core/agentic/plan-mode/index.ts +0 -28
  187. package/core/agentic/plan-mode/plan-mode.ts +0 -407
  188. package/core/agentic/plan-mode/types.ts +0 -193
  189. package/core/agents/types.ts +0 -126
  190. package/core/command-registry/categories.ts +0 -23
  191. package/core/command-registry/commands.ts +0 -15
  192. package/core/command-registry/core-commands.ts +0 -344
  193. package/core/command-registry/index.ts +0 -158
  194. package/core/command-registry/optional-commands.ts +0 -163
  195. package/core/command-registry/setup-commands.ts +0 -83
  196. package/core/command-registry/types.ts +0 -59
  197. package/core/command-registry.ts +0 -9
  198. package/core/commands/types.ts +0 -185
  199. package/core/commands.ts +0 -11
  200. package/core/constants/formats.ts +0 -187
  201. package/core/context-sync.ts +0 -18
  202. package/core/data/index.ts +0 -27
  203. package/core/data/md-base-manager.ts +0 -203
  204. package/core/data/md-ideas-manager.ts +0 -155
  205. package/core/data/md-queue-manager.ts +0 -180
  206. package/core/data/md-shipped-manager.ts +0 -90
  207. package/core/data/md-state-manager.ts +0 -137
  208. package/core/domain/task-stack/index.ts +0 -19
  209. package/core/domain/task-stack/parser.ts +0 -86
  210. package/core/domain/task-stack/storage.ts +0 -123
  211. package/core/domain/task-stack/task-stack.ts +0 -340
  212. package/core/domain/task-stack/types.ts +0 -51
  213. package/core/infrastructure/command-installer/command-installer.ts +0 -327
  214. package/core/infrastructure/command-installer/global-config.ts +0 -136
  215. package/core/infrastructure/command-installer/index.ts +0 -25
  216. package/core/infrastructure/command-installer/types.ts +0 -41
  217. package/core/infrastructure/session-manager/index.ts +0 -23
  218. package/core/infrastructure/session-manager/types.ts +0 -45
  219. package/core/infrastructure/session-manager.ts +0 -8
  220. package/core/serializers/ideas-serializer.ts +0 -187
  221. package/core/serializers/index.ts +0 -36
  222. package/core/serializers/queue-serializer.ts +0 -210
  223. package/core/serializers/shipped-serializer.ts +0 -108
  224. package/core/serializers/state-serializer.ts +0 -136
  225. package/core/session/types.ts +0 -29
  226. /package/core/infrastructure/{agents/claude-agent.ts → claude-agent.ts} +0 -0
@@ -0,0 +1,62 @@
1
+ {
2
+ // Strict permissions preset for prjct-cli
3
+ // Maximum safety - requires approval for most operations
4
+
5
+ "bash": {
6
+ // Only read-only commands allowed
7
+ "git status": "allow",
8
+ "git log*": "allow",
9
+ "git diff*": "allow",
10
+ "ls*": "allow",
11
+ "pwd": "allow",
12
+ "cat*": "allow",
13
+ "head*": "allow",
14
+ "tail*": "allow",
15
+ "which*": "allow",
16
+
17
+ // Everything else requires approval
18
+ "git*": "ask",
19
+ "npm*": "ask",
20
+ "bun*": "ask",
21
+ "node*": "ask",
22
+ "rm*": "ask",
23
+ "mv*": "ask",
24
+ "cp*": "ask",
25
+ "mkdir*": "ask",
26
+
27
+ // Always denied
28
+ "rm -rf*": "deny",
29
+ "sudo*": "deny",
30
+ "chmod 777*": "deny"
31
+ },
32
+
33
+ "files": {
34
+ "read": {
35
+ "**/*": "allow",
36
+ "**/.*": "ask", // Hidden files need approval
37
+ "**/.env*": "deny" // Never read env files
38
+ },
39
+ "write": {
40
+ "**/*": "ask" // All writes need approval
41
+ },
42
+ "delete": {
43
+ "**/*": "deny" // No deletions without explicit override
44
+ }
45
+ },
46
+
47
+ "web": {
48
+ "enabled": true,
49
+ "blockedDomains": [
50
+ "localhost",
51
+ "127.0.0.1",
52
+ "internal"
53
+ ]
54
+ },
55
+
56
+ "doomLoop": {
57
+ "enabled": true,
58
+ "maxRetries": 2
59
+ },
60
+
61
+ "externalDirectories": "deny"
62
+ }
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: Code Review
3
+ description: Review code changes for quality, security, and best practices
4
+ agent: general
5
+ tags: [review, quality, security]
6
+ version: 1.0.0
7
+ ---
8
+
9
+ # Code Review Skill
10
+
11
+ Review the provided code changes with focus on:
12
+
13
+ ## Quality Checks
14
+ - Code readability and clarity
15
+ - Naming conventions
16
+ - Function/method length
17
+ - Code duplication
18
+ - Error handling
19
+
20
+ ## Security Checks
21
+ - Input validation
22
+ - SQL injection risks
23
+ - XSS vulnerabilities
24
+ - Sensitive data exposure
25
+ - Authentication/authorization issues
26
+
27
+ ## Best Practices
28
+ - SOLID principles
29
+ - DRY (Don't Repeat Yourself)
30
+ - Single responsibility
31
+ - Proper typing (TypeScript)
32
+ - Documentation where needed
33
+
34
+ ## Output Format
35
+
36
+ Provide feedback in this structure:
37
+
38
+ ### Summary
39
+ Brief overview of the changes
40
+
41
+ ### Issues Found
42
+ - 🔴 **Critical**: Must fix before merge
43
+ - 🟡 **Warning**: Should fix, but not blocking
44
+ - 🔵 **Suggestion**: Nice to have improvements
45
+
46
+ ### Recommendations
47
+ Specific actionable items to improve the code
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: Debug
3
+ description: Systematic debugging to find and fix issues
4
+ agent: general
5
+ tags: [debug, fix, troubleshoot]
6
+ version: 1.0.0
7
+ ---
8
+
9
+ # Debug Skill
10
+
11
+ Systematically debug the reported issue.
12
+
13
+ ## Process
14
+
15
+ ### Step 1: Understand the Problem
16
+ - What is the expected behavior?
17
+ - What is the actual behavior?
18
+ - When did it start happening?
19
+ - Can it be reproduced consistently?
20
+
21
+ ### Step 2: Gather Information
22
+ - Read relevant error messages
23
+ - Check logs
24
+ - Review recent changes
25
+ - Identify affected code paths
26
+
27
+ ### Step 3: Form Hypothesis
28
+ - What could cause this behavior?
29
+ - List possible causes in order of likelihood
30
+ - Identify the most likely root cause
31
+
32
+ ### Step 4: Test Hypothesis
33
+ - Add logging if needed
34
+ - Isolate the problematic code
35
+ - Verify the root cause
36
+
37
+ ### Step 5: Fix
38
+ - Implement the minimal fix
39
+ - Ensure no side effects
40
+ - Add tests if applicable
41
+
42
+ ### Step 6: Verify
43
+ - Confirm the issue is resolved
44
+ - Check for regressions
45
+ - Document the fix
46
+
47
+ ## Output Format
48
+
49
+ ```
50
+ ## Issue
51
+ [Description of the problem]
52
+
53
+ ## Root Cause
54
+ [What was causing the issue]
55
+
56
+ ## Fix
57
+ [What was changed to fix it]
58
+
59
+ ## Prevention
60
+ [How to prevent similar issues]
61
+ ```
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: Refactor
3
+ description: Refactor code for better structure, readability, and maintainability
4
+ agent: general
5
+ tags: [refactor, cleanup, improvement]
6
+ version: 1.0.0
7
+ ---
8
+
9
+ # Refactor Skill
10
+
11
+ Refactor the specified code with these goals:
12
+
13
+ ## Objectives
14
+ 1. **Improve Readability** - Clear naming, logical structure
15
+ 2. **Reduce Complexity** - Simplify nested logic, extract functions
16
+ 3. **Enhance Maintainability** - Make future changes easier
17
+ 4. **Preserve Behavior** - No functional changes unless requested
18
+
19
+ ## Approach
20
+
21
+ ### Step 1: Analyze Current Code
22
+ - Identify pain points
23
+ - Note code smells
24
+ - Understand dependencies
25
+
26
+ ### Step 2: Plan Changes
27
+ - List specific refactoring operations
28
+ - Prioritize by impact
29
+ - Consider breaking changes
30
+
31
+ ### Step 3: Execute
32
+ - Make incremental changes
33
+ - Test after each change
34
+ - Document decisions
35
+
36
+ ## Common Refactorings
37
+ - Extract function/method
38
+ - Rename for clarity
39
+ - Remove duplication
40
+ - Simplify conditionals
41
+ - Replace magic numbers with constants
42
+ - Add type annotations
43
+
44
+ ## Output
45
+ - Modified code
46
+ - Brief explanation of changes
47
+ - Any trade-offs made
@@ -59,7 +59,7 @@ jobs:
59
59
  with:
60
60
  node-version: '20'
61
61
  - run: npm ci
62
- - run: npm test
62
+ - run: npm test # or pnpm test / yarn test / bun test depending on the repo
63
63
  ```
64
64
 
65
65
  ### docker-compose
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: testing
3
- description: Testing specialist for Jest, Vitest, Pytest, and testing libraries. Use PROACTIVELY when user works on tests, coverage, or test infrastructure.
3
+ description: Testing specialist for Bun test, Jest, Pytest, and testing libraries. Use PROACTIVELY when user works on tests, coverage, or test infrastructure.
4
4
  tools: Read, Write, Bash
5
5
  model: sonnet
6
6
  ---
@@ -9,7 +9,7 @@ You are a testing specialist agent for this project.
9
9
 
10
10
  ## Your Expertise
11
11
 
12
- - **JS/TS**: Jest, Vitest, Mocha, Bun test
12
+ - **JS/TS**: Bun test, Jest, Mocha
13
13
  - **React**: Testing Library, Enzyme
14
14
  - **Python**: Pytest, unittest
15
15
  - **Go**: testing package, testify
@@ -18,15 +18,15 @@ You are a testing specialist agent for this project.
18
18
  ## Project Context
19
19
 
20
20
  When invoked, analyze the project's testing setup:
21
- 1. Check for test config (jest.config.js, vitest.config.ts, pytest.ini)
21
+ 1. Check for test config (bunfig.toml, jest.config.js, pytest.ini)
22
22
  2. Identify test file patterns
23
23
  3. Check for existing test utilities
24
24
 
25
25
  ## Code Patterns
26
26
 
27
- ### Vitest/Jest (Unit)
27
+ ### Bun (Unit)
28
28
  ```typescript
29
- import { describe, it, expect, vi } from 'vitest'
29
+ import { describe, it, expect, mock } from 'bun:test'
30
30
  import { calculateTotal } from './cart'
31
31
 
32
32
  describe('calculateTotal', () => {
@@ -48,7 +48,7 @@ import { Button } from './Button'
48
48
 
49
49
  describe('Button', () => {
50
50
  it('calls onClick when clicked', () => {
51
- const onClick = vi.fn()
51
+ const onClick = mock(() => {})
52
52
  render(<Button onClick={onClick}>Click me</Button>)
53
53
 
54
54
  fireEvent.click(screen.getByRole('button'))
@@ -118,7 +118,6 @@ func TestCalculateTotal(t *testing.T) {
118
118
  # JavaScript
119
119
  npm test
120
120
  bun test
121
- vitest run
122
121
 
123
122
  # Python
124
123
  pytest
@@ -131,9 +130,6 @@ go test -cover ./...
131
130
 
132
131
  ### Coverage
133
132
  ```bash
134
- # Vitest
135
- vitest run --coverage
136
-
137
133
  # Jest
138
134
  jest --coverage
139
135
 
@@ -30,13 +30,22 @@ Run in sequence, stop on failure:
30
30
 
31
31
  ```bash
32
32
  # 1. Lint (if configured)
33
- npm run lint || bun run lint
33
+ # Use the project's own tooling (do not assume JS/Bun).
34
+ # Examples:
35
+ # - JS: pnpm run lint / yarn lint / npm run lint / bun run lint
36
+ # - Python: ruff/flake8 (only if project already uses it)
34
37
 
35
- # 2. Type check (if TypeScript)
36
- npm run typecheck || tsc --noEmit
38
+ # 2. Type check (if configured)
39
+ # - TS: pnpm run typecheck / yarn typecheck / npm run typecheck / bun run typecheck
37
40
 
38
41
  # 3. Tests (if configured)
39
- npm test || bun test
42
+ # Use the project's own test runner:
43
+ # - JS: {packageManager} test (e.g. pnpm test, yarn test, npm test, bun test)
44
+ # - Python: pytest
45
+ # - Go: go test ./...
46
+ # - Rust: cargo test
47
+ # - .NET: dotnet test
48
+ # - Java: mvn test / ./gradlew test
40
49
  ```
41
50
 
42
51
  If any fail:
@@ -125,12 +134,12 @@ Read from `.prjct/ship.config.json` if exists:
125
134
  "typecheck": true,
126
135
  "test": true
127
136
  },
128
- "testCommand": "bun test",
129
- "lintCommand": "bun run lint"
137
+ "testCommand": "pytest",
138
+ "lintCommand": "npm run lint"
130
139
  }
131
140
  ```
132
141
 
133
- If no config, auto-detect from package.json scripts.
142
+ If no config, auto-detect from the repository (package.json scripts, pytest.ini, Cargo.toml, go.mod, etc.).
134
143
 
135
144
  ## Dry Run Mode
136
145
 
@@ -0,0 +1,22 @@
1
+ Execute shell commands in a persistent bash session.
2
+
3
+ Use this tool for terminal operations like git, npm, docker, build commands, and system utilities. NOT for file operations (use Read, Write, Edit instead).
4
+
5
+ Capabilities:
6
+ - Run any shell command
7
+ - Persistent session (environment persists between calls)
8
+ - Support for background execution
9
+ - Configurable timeout (up to 10 minutes)
10
+
11
+ Best practices:
12
+ - Quote paths with spaces using double quotes
13
+ - Use absolute paths to avoid cd
14
+ - Chain dependent commands with &&
15
+ - Run independent commands in parallel (multiple tool calls)
16
+ - Never use for file reading (use Read tool)
17
+ - Never use echo/printf to communicate (output text directly)
18
+
19
+ Git operations:
20
+ - Never update git config
21
+ - Never use destructive commands without explicit request
22
+ - Always use HEREDOC for commit messages
@@ -0,0 +1,18 @@
1
+ Edit files using exact string replacement.
2
+
3
+ Use this tool to make precise changes to existing files. Requires reading the file first to ensure accurate matching.
4
+
5
+ Capabilities:
6
+ - Replace exact string matches in files
7
+ - Support for replace_all to change all occurrences
8
+ - Preserves file formatting and indentation
9
+
10
+ Requirements:
11
+ - Must read the file first (tool will error otherwise)
12
+ - old_string must be unique in the file (or use replace_all)
13
+ - Preserve exact indentation from the original
14
+
15
+ Best practices:
16
+ - Include enough context to make old_string unique
17
+ - Use replace_all for renaming variables/functions
18
+ - Never include line numbers in old_string or new_string
@@ -0,0 +1,19 @@
1
+ Find files by pattern matching.
2
+
3
+ Use this tool to locate files using glob patterns. Fast and efficient for any codebase size.
4
+
5
+ Capabilities:
6
+ - Match files using glob patterns (e.g., "**/*.ts", "src/**/*.tsx")
7
+ - Returns paths sorted by modification time
8
+ - Works with any codebase size
9
+
10
+ Pattern examples:
11
+ - "**/*.ts" - all TypeScript files
12
+ - "src/**/*.tsx" - React components in src
13
+ - "**/test*.ts" - test files anywhere
14
+ - "core/**/*" - all files in core directory
15
+
16
+ Best practices:
17
+ - Use specific patterns to narrow results
18
+ - Prefer glob over bash find command
19
+ - Run multiple patterns in parallel if needed
@@ -0,0 +1,21 @@
1
+ Search file contents using regex patterns.
2
+
3
+ Use this tool to search for code patterns, function definitions, imports, and text across the codebase. Built on ripgrep for speed.
4
+
5
+ Capabilities:
6
+ - Full regex syntax support
7
+ - Filter by file type or glob pattern
8
+ - Multiple output modes: files_with_matches, content, count
9
+ - Context lines before/after matches (-A, -B, -C)
10
+ - Multiline matching support
11
+
12
+ Output modes:
13
+ - files_with_matches (default): just file paths
14
+ - content: matching lines with context
15
+ - count: match counts per file
16
+
17
+ Best practices:
18
+ - Use specific patterns to reduce noise
19
+ - Filter by file type when possible (type: "ts")
20
+ - Use content mode with context for understanding matches
21
+ - Never use bash grep/rg directly (use this tool)
@@ -0,0 +1,14 @@
1
+ Read files from the filesystem.
2
+
3
+ Use this tool to read file contents before making edits. Always read a file before attempting to modify it to understand the current state and structure.
4
+
5
+ Capabilities:
6
+ - Read any text file by absolute path
7
+ - Supports line offset and limit for large files
8
+ - Returns content with line numbers for easy reference
9
+ - Can read images, PDFs, and Jupyter notebooks
10
+
11
+ Best practices:
12
+ - Always read before editing
13
+ - Use offset/limit for files > 2000 lines
14
+ - Read multiple related files in parallel when exploring
@@ -0,0 +1,20 @@
1
+ Launch specialized agents for complex tasks.
2
+
3
+ Use this tool to delegate multi-step tasks to autonomous agents. Each agent type has specific capabilities and tools.
4
+
5
+ Agent types:
6
+ - Explore: Fast codebase exploration, file search, pattern finding
7
+ - Plan: Software architecture, implementation planning
8
+ - general-purpose: Research, code search, multi-step tasks
9
+
10
+ When to use:
11
+ - Complex multi-step tasks
12
+ - Open-ended exploration
13
+ - When multiple search rounds may be needed
14
+ - Tasks matching agent descriptions
15
+
16
+ Best practices:
17
+ - Provide clear, detailed prompts
18
+ - Launch multiple agents in parallel when independent
19
+ - Use Explore for codebase questions
20
+ - Use Plan for implementation design
@@ -0,0 +1,16 @@
1
+ Fetch and analyze web content.
2
+
3
+ Use this tool to retrieve content from URLs and process it with AI. Useful for documentation, API references, and external resources.
4
+
5
+ Capabilities:
6
+ - Fetch any URL content
7
+ - Automatic HTML to markdown conversion
8
+ - AI-powered content extraction based on prompt
9
+ - 15-minute cache for repeated requests
10
+ - Automatic HTTP to HTTPS upgrade
11
+
12
+ Best practices:
13
+ - Provide specific prompts for extraction
14
+ - Handle redirects by following the provided URL
15
+ - Use for documentation and reference lookup
16
+ - Results may be summarized for large content
@@ -0,0 +1,18 @@
1
+ Search the web for current information.
2
+
3
+ Use this tool to find up-to-date information beyond the knowledge cutoff. Returns search results with links.
4
+
5
+ Capabilities:
6
+ - Real-time web search
7
+ - Domain filtering (allow/block specific sites)
8
+ - Returns formatted results with URLs
9
+
10
+ Requirements:
11
+ - MUST include Sources section with URLs after answering
12
+ - Use current year in queries for recent info
13
+
14
+ Best practices:
15
+ - Be specific in search queries
16
+ - Include year for time-sensitive searches
17
+ - Always cite sources in response
18
+ - Filter domains when targeting specific sites
@@ -0,0 +1,17 @@
1
+ Write or create files on the filesystem.
2
+
3
+ Use this tool to create new files or completely overwrite existing ones. For modifications to existing files, prefer the Edit tool instead.
4
+
5
+ Capabilities:
6
+ - Create new files with specified content
7
+ - Overwrite existing files completely
8
+ - Create parent directories automatically
9
+
10
+ Requirements:
11
+ - Must read existing file first before overwriting
12
+ - Use absolute paths only
13
+
14
+ Best practices:
15
+ - Prefer Edit for modifications to existing files
16
+ - Only create new files when truly necessary
17
+ - Never create documentation files unless explicitly requested