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.
- package/CHANGELOG.md +24 -6
- package/CLAUDE.md +56 -15
- package/README.md +5 -6
- package/bin/prjct +59 -42
- package/bin/prjct.ts +60 -0
- package/core/__tests__/agentic/memory-system.test.ts +18 -3
- package/core/__tests__/agentic/plan-mode.test.ts +55 -26
- package/core/__tests__/agentic/prompt-builder.test.ts +6 -6
- package/core/__tests__/utils/project-commands.test.ts +72 -0
- package/core/agentic/agent-router.ts +3 -12
- package/core/agentic/command-executor.ts +372 -3
- package/core/agentic/context-builder.ts +7 -27
- package/core/agentic/ground-truth.ts +604 -5
- package/core/agentic/index.ts +180 -0
- package/core/agentic/loop-detector.ts +418 -4
- package/core/agentic/memory-system.ts +857 -3
- package/core/agentic/plan-mode.ts +491 -4
- package/core/agentic/prompt-builder.ts +44 -65
- package/core/agentic/services.ts +13 -5
- package/core/agentic/skill-loader.ts +112 -0
- package/core/agentic/smart-context.ts +37 -122
- package/core/agentic/template-loader.ts +79 -122
- package/core/agentic/tool-registry.ts +5 -11
- package/core/agents/index.ts +1 -1
- package/core/agents/performance.ts +4 -2
- package/core/bus/bus.ts +262 -0
- package/core/bus/index.ts +3 -313
- package/core/commands/analysis.ts +5 -5
- package/core/commands/analytics.ts +11 -11
- package/core/commands/base.ts +33 -209
- package/core/commands/cleanup.ts +148 -0
- package/core/commands/command-data.ts +346 -0
- package/core/commands/commands.ts +216 -0
- package/core/commands/design.ts +83 -0
- package/core/commands/index.ts +13 -207
- package/core/commands/maintenance.ts +52 -473
- package/core/commands/planning.ts +3 -3
- package/core/commands/register.ts +104 -0
- package/core/commands/registry.ts +441 -0
- package/core/commands/setup.ts +25 -9
- package/core/commands/shipping.ts +48 -11
- package/core/commands/snapshots.ts +299 -0
- package/core/commands/workflow.ts +2 -2
- package/core/constants/index.ts +254 -4
- package/core/domain/agent-loader.ts +5 -6
- package/core/domain/task-stack.ts +555 -4
- package/core/errors.ts +127 -1
- package/core/events/events.ts +87 -0
- package/core/events/index.ts +4 -138
- package/core/index.ts +15 -23
- package/core/infrastructure/agent-detector.ts +126 -201
- package/core/infrastructure/author-detector.ts +99 -171
- package/core/infrastructure/command-installer.ts +476 -4
- package/core/infrastructure/config-manager.ts +41 -37
- package/core/infrastructure/path-manager.ts +59 -9
- package/core/infrastructure/permission-manager.ts +286 -0
- package/core/outcomes/analyzer.ts +7 -41
- package/core/outcomes/index.ts +1 -1
- package/core/outcomes/recorder.ts +1 -1
- package/core/{plugins → plugin/builtin}/webhook.ts +6 -22
- package/core/plugin/loader.ts +5 -5
- package/core/plugin/registry.ts +2 -2
- package/core/schemas/ideas.ts +85 -54
- package/core/schemas/index.ts +14 -33
- package/core/schemas/permissions.ts +177 -0
- package/core/schemas/project.ts +39 -12
- package/core/schemas/roadmap.ts +94 -59
- package/core/schemas/schemas.ts +39 -0
- package/core/schemas/shipped.ts +87 -60
- package/core/schemas/state.ts +110 -70
- package/core/server/index.ts +21 -0
- package/core/server/routes.ts +165 -0
- package/core/server/server.ts +136 -0
- package/core/server/sse.ts +135 -0
- package/core/services/agent-service.ts +170 -0
- package/core/services/breakdown-service.ts +126 -0
- package/core/services/index.ts +21 -0
- package/core/services/memory-service.ts +108 -0
- package/core/services/project-service.ts +146 -0
- package/core/services/skill-service.ts +253 -0
- package/core/session/compaction.ts +257 -0
- package/core/session/index.ts +20 -8
- package/core/{infrastructure/session-manager/migration.ts → session/log-migration.ts} +9 -9
- package/core/{infrastructure/session-manager/session-manager.ts → session/session-log-manager.ts} +27 -26
- package/core/session/{session-manager.ts → task-session-manager.ts} +7 -4
- package/core/session/utils.ts +1 -1
- package/core/storage/ideas-storage.ts +10 -26
- package/core/storage/index.ts +14 -162
- package/core/storage/queue-storage.ts +13 -11
- package/core/storage/shipped-storage.ts +4 -17
- package/core/storage/state-storage.ts +35 -43
- package/core/storage/storage-manager.ts +42 -52
- package/core/storage/storage.ts +160 -0
- package/core/sync/auth-config.ts +1 -8
- package/core/sync/index.ts +17 -10
- package/core/sync/oauth-handler.ts +1 -6
- package/core/sync/sync-client.ts +6 -34
- package/core/sync/sync-manager.ts +11 -40
- package/core/types/agentic.ts +577 -0
- package/core/types/agents.ts +145 -0
- package/core/types/bus.ts +82 -0
- package/core/types/commands.ts +366 -0
- package/core/types/config.ts +66 -0
- package/core/types/core.ts +96 -0
- package/core/types/domain.ts +71 -0
- package/core/types/events.ts +42 -0
- package/core/types/fs.ts +56 -0
- package/core/types/index.ts +387 -500
- package/core/types/infrastructure.ts +196 -0
- package/core/{agentic/memory-system/types.ts → types/memory.ts} +33 -8
- package/core/{outcomes/types.ts → types/outcomes.ts} +53 -8
- package/core/types/plugin.ts +25 -0
- package/core/types/server.ts +54 -0
- package/core/types/services.ts +65 -0
- package/core/types/session.ts +135 -0
- package/core/types/storage.ts +148 -0
- package/core/types/sync.ts +121 -0
- package/core/types/task.ts +72 -0
- package/core/types/template.ts +24 -0
- package/core/types/utils.ts +90 -0
- package/core/utils/cache.ts +195 -0
- package/core/utils/collection-filters.ts +245 -0
- package/core/utils/date-helper.ts +1 -5
- package/core/utils/file-helper.ts +20 -10
- package/core/utils/jsonl-helper.ts +5 -8
- package/core/utils/markdown-builder.ts +277 -0
- package/core/utils/project-commands.ts +132 -0
- package/core/utils/runtime.ts +119 -0
- package/dist/bin/prjct.mjs +12568 -0
- package/package.json +13 -8
- package/scripts/build.js +106 -0
- package/scripts/postinstall.js +50 -8
- package/templates/agentic/subagent-generation.md +1 -1
- package/templates/commands/serve.md +118 -0
- package/templates/commands/ship.md +13 -2
- package/templates/commands/skill.md +110 -0
- package/templates/commands/sync.md +1 -1
- package/templates/commands/test.md +23 -4
- package/templates/permissions/default.jsonc +60 -0
- package/templates/permissions/permissive.jsonc +49 -0
- package/templates/permissions/strict.jsonc +62 -0
- package/templates/skills/code-review.md +47 -0
- package/templates/skills/debug.md +61 -0
- package/templates/skills/refactor.md +47 -0
- package/templates/subagents/domain/devops.md +1 -1
- package/templates/subagents/domain/testing.md +6 -10
- package/templates/subagents/workflow/prjct-shipper.md +16 -7
- package/templates/tools/bash.txt +22 -0
- package/templates/tools/edit.txt +18 -0
- package/templates/tools/glob.txt +19 -0
- package/templates/tools/grep.txt +21 -0
- package/templates/tools/read.txt +14 -0
- package/templates/tools/task.txt +20 -0
- package/templates/tools/webfetch.txt +16 -0
- package/templates/tools/websearch.txt +18 -0
- package/templates/tools/write.txt +17 -0
- package/core/agentic/command-executor/command-executor.ts +0 -312
- package/core/agentic/command-executor/index.ts +0 -16
- package/core/agentic/command-executor/status-signal.ts +0 -38
- package/core/agentic/command-executor/types.ts +0 -79
- package/core/agentic/ground-truth/index.ts +0 -76
- package/core/agentic/ground-truth/types.ts +0 -33
- package/core/agentic/ground-truth/utils.ts +0 -48
- package/core/agentic/ground-truth/verifiers/analyze.ts +0 -54
- package/core/agentic/ground-truth/verifiers/done.ts +0 -75
- package/core/agentic/ground-truth/verifiers/feature.ts +0 -70
- package/core/agentic/ground-truth/verifiers/index.ts +0 -37
- package/core/agentic/ground-truth/verifiers/init.ts +0 -52
- package/core/agentic/ground-truth/verifiers/now.ts +0 -57
- package/core/agentic/ground-truth/verifiers/ship.ts +0 -85
- package/core/agentic/ground-truth/verifiers/spec.ts +0 -45
- package/core/agentic/ground-truth/verifiers/sync.ts +0 -47
- package/core/agentic/ground-truth/verifiers.ts +0 -6
- package/core/agentic/loop-detector/error-analysis.ts +0 -97
- package/core/agentic/loop-detector/hallucination.ts +0 -71
- package/core/agentic/loop-detector/index.ts +0 -41
- package/core/agentic/loop-detector/loop-detector.ts +0 -222
- package/core/agentic/loop-detector/types.ts +0 -66
- package/core/agentic/memory-system/history.ts +0 -53
- package/core/agentic/memory-system/index.ts +0 -192
- package/core/agentic/memory-system/patterns.ts +0 -156
- package/core/agentic/memory-system/semantic-memories.ts +0 -278
- package/core/agentic/memory-system/session.ts +0 -21
- package/core/agentic/plan-mode/approval.ts +0 -57
- package/core/agentic/plan-mode/constants.ts +0 -44
- package/core/agentic/plan-mode/index.ts +0 -28
- package/core/agentic/plan-mode/plan-mode.ts +0 -407
- package/core/agentic/plan-mode/types.ts +0 -193
- package/core/agents/types.ts +0 -126
- package/core/command-registry/categories.ts +0 -23
- package/core/command-registry/commands.ts +0 -15
- package/core/command-registry/core-commands.ts +0 -344
- package/core/command-registry/index.ts +0 -158
- package/core/command-registry/optional-commands.ts +0 -163
- package/core/command-registry/setup-commands.ts +0 -83
- package/core/command-registry/types.ts +0 -59
- package/core/command-registry.ts +0 -9
- package/core/commands/types.ts +0 -185
- package/core/commands.ts +0 -11
- package/core/constants/formats.ts +0 -187
- package/core/context-sync.ts +0 -18
- package/core/data/index.ts +0 -27
- package/core/data/md-base-manager.ts +0 -203
- package/core/data/md-ideas-manager.ts +0 -155
- package/core/data/md-queue-manager.ts +0 -180
- package/core/data/md-shipped-manager.ts +0 -90
- package/core/data/md-state-manager.ts +0 -137
- package/core/domain/task-stack/index.ts +0 -19
- package/core/domain/task-stack/parser.ts +0 -86
- package/core/domain/task-stack/storage.ts +0 -123
- package/core/domain/task-stack/task-stack.ts +0 -340
- package/core/domain/task-stack/types.ts +0 -51
- package/core/infrastructure/command-installer/command-installer.ts +0 -327
- package/core/infrastructure/command-installer/global-config.ts +0 -136
- package/core/infrastructure/command-installer/index.ts +0 -25
- package/core/infrastructure/command-installer/types.ts +0 -41
- package/core/infrastructure/session-manager/index.ts +0 -23
- package/core/infrastructure/session-manager/types.ts +0 -45
- package/core/infrastructure/session-manager.ts +0 -8
- package/core/serializers/ideas-serializer.ts +0 -187
- package/core/serializers/index.ts +0 -36
- package/core/serializers/queue-serializer.ts +0 -210
- package/core/serializers/shipped-serializer.ts +0 -108
- package/core/serializers/state-serializer.ts +0 -136
- package/core/session/types.ts +0 -29
- /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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: testing
|
|
3
|
-
description: Testing specialist for
|
|
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**:
|
|
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 (
|
|
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
|
-
###
|
|
27
|
+
### Bun (Unit)
|
|
28
28
|
```typescript
|
|
29
|
-
import { describe, it, expect,
|
|
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 =
|
|
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
|
-
|
|
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
|
|
36
|
-
npm run typecheck
|
|
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
|
-
|
|
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": "
|
|
129
|
-
"lintCommand": "
|
|
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
|