prjct-cli 0.36.1 → 0.37.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 +64 -0
- package/README.md +68 -41
- package/bin/prjct.ts +13 -1
- package/core/agentic/template-executor.ts +14 -4
- package/core/cli/start.ts +14 -4
- package/core/commands/analysis.ts +6 -3
- package/core/commands/setup.ts +27 -17
- package/core/index.ts +45 -26
- package/core/infrastructure/ai-provider.ts +114 -12
- package/core/infrastructure/command-installer.ts +70 -37
- package/core/infrastructure/path-manager.ts +18 -9
- package/core/infrastructure/setup.ts +146 -3
- package/core/types/provider.ts +44 -20
- package/package.json +1 -1
- package/templates/_bases/tracker-base.md +7 -5
- package/templates/commands/github.md +7 -5
- package/templates/commands/init.md +16 -0
- package/templates/commands/jira.md +8 -6
- package/templates/commands/linear.md +8 -6
- package/templates/commands/monday.md +8 -6
- package/templates/commands/sync.md +11 -1
- package/templates/cursor/commands/bug.md +8 -0
- package/templates/cursor/commands/done.md +4 -0
- package/templates/cursor/commands/pause.md +6 -0
- package/templates/cursor/commands/resume.md +4 -0
- package/templates/cursor/commands/ship.md +8 -0
- package/templates/cursor/commands/sync.md +4 -0
- package/templates/cursor/commands/task.md +8 -0
- package/templates/cursor/p.md +29 -0
- package/templates/cursor/router.mdc +28 -0
- package/templates/global/CURSOR.mdc +238 -0
package/core/types/provider.ts
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AI Provider Types
|
|
3
3
|
*
|
|
4
|
-
* Abstractions for supporting multiple AI
|
|
5
|
-
*
|
|
4
|
+
* Abstractions for supporting multiple AI coding agents:
|
|
5
|
+
* - Claude Code (CLI)
|
|
6
|
+
* - Gemini CLI (CLI)
|
|
7
|
+
* - Cursor IDE (GUI, project-level config)
|
|
6
8
|
*
|
|
7
|
-
* Key discovery: Skills use identical SKILL.md format for
|
|
9
|
+
* Key discovery: Skills use identical SKILL.md format for CLI providers.
|
|
10
|
+
* Cursor uses .mdc files with frontmatter for rules.
|
|
8
11
|
*
|
|
9
12
|
* @see https://geminicli.com/docs/cli/gemini-md/
|
|
10
13
|
* @see https://geminicli.com/docs/cli/skills/
|
|
14
|
+
* @see https://cursor.com/docs/context/rules
|
|
11
15
|
*/
|
|
12
16
|
|
|
13
17
|
/**
|
|
14
18
|
* Supported AI provider names
|
|
15
19
|
*/
|
|
16
|
-
export type AIProviderName = 'claude' | 'gemini'
|
|
20
|
+
export type AIProviderName = 'claude' | 'gemini' | 'cursor'
|
|
17
21
|
|
|
18
22
|
/**
|
|
19
23
|
* Command format for each provider
|
|
@@ -24,7 +28,7 @@ export type CommandFormat = 'md' | 'toml'
|
|
|
24
28
|
|
|
25
29
|
/**
|
|
26
30
|
* AI Provider configuration
|
|
27
|
-
* Defines paths and formats for each AI
|
|
31
|
+
* Defines paths and formats for each AI coding agent
|
|
28
32
|
*/
|
|
29
33
|
export interface AIProviderConfig {
|
|
30
34
|
/** Provider identifier */
|
|
@@ -33,33 +37,39 @@ export interface AIProviderConfig {
|
|
|
33
37
|
/** Display name for UI/logs */
|
|
34
38
|
displayName: string
|
|
35
39
|
|
|
36
|
-
/** CLI command name (e.g., 'claude', 'gemini') */
|
|
37
|
-
cliCommand: string
|
|
40
|
+
/** CLI command name (e.g., 'claude', 'gemini'). Null for GUI apps like Cursor */
|
|
41
|
+
cliCommand: string | null
|
|
38
42
|
|
|
39
|
-
/** Global config directory (e.g., ~/.claude, ~/.gemini) */
|
|
40
|
-
configDir: string
|
|
43
|
+
/** Global config directory (e.g., ~/.claude, ~/.gemini). Null for project-level only (Cursor) */
|
|
44
|
+
configDir: string | null
|
|
41
45
|
|
|
42
|
-
/** Context file name (CLAUDE.md or
|
|
46
|
+
/** Context file name (CLAUDE.md, GEMINI.md, or prjct.mdc for Cursor) */
|
|
43
47
|
contextFile: string
|
|
44
48
|
|
|
45
|
-
/** Skills directory (e.g., ~/.claude/skills
|
|
46
|
-
skillsDir: string
|
|
49
|
+
/** Skills directory (e.g., ~/.claude/skills). Null for providers without skill support */
|
|
50
|
+
skillsDir: string | null
|
|
47
51
|
|
|
48
|
-
/** Commands directory relative to project (e.g., .claude/commands, .
|
|
52
|
+
/** Commands directory relative to project (e.g., .claude/commands, .cursor/commands) */
|
|
49
53
|
commandsDir: string
|
|
50
54
|
|
|
55
|
+
/** Rules directory for project-level config (e.g., .cursor/rules). Only used by Cursor */
|
|
56
|
+
rulesDir?: string
|
|
57
|
+
|
|
51
58
|
/** Command file format */
|
|
52
59
|
commandFormat: CommandFormat
|
|
53
60
|
|
|
54
|
-
/** Settings file name (settings.json
|
|
55
|
-
settingsFile: string
|
|
61
|
+
/** Settings file name (settings.json). Null if not applicable */
|
|
62
|
+
settingsFile: string | null
|
|
56
63
|
|
|
57
|
-
/** Project settings file (e.g., settings.local.json
|
|
58
|
-
projectSettingsFile: string
|
|
64
|
+
/** Project settings file (e.g., settings.local.json). Null if not applicable */
|
|
65
|
+
projectSettingsFile: string | null
|
|
59
66
|
|
|
60
|
-
/** Ignore file name (.claudeignore, .geminiignore) */
|
|
67
|
+
/** Ignore file name (.claudeignore, .geminiignore, .cursorignore) */
|
|
61
68
|
ignoreFile: string
|
|
62
69
|
|
|
70
|
+
/** Whether config is project-level only (no global config directory) */
|
|
71
|
+
isProjectLevel?: boolean
|
|
72
|
+
|
|
63
73
|
/** URL for provider website */
|
|
64
74
|
websiteUrl: string
|
|
65
75
|
|
|
@@ -88,16 +98,30 @@ export interface ProviderSelectionResult {
|
|
|
88
98
|
/** Selected provider */
|
|
89
99
|
provider: AIProviderName
|
|
90
100
|
|
|
91
|
-
/** Whether user was prompted to choose (
|
|
101
|
+
/** Whether user was prompted to choose (multiple installed) */
|
|
92
102
|
userSelected: boolean
|
|
93
103
|
|
|
94
|
-
/** Detection details */
|
|
104
|
+
/** Detection details for CLI-based providers */
|
|
95
105
|
detection: {
|
|
96
106
|
claude: ProviderDetectionResult
|
|
97
107
|
gemini: ProviderDetectionResult
|
|
98
108
|
}
|
|
99
109
|
}
|
|
100
110
|
|
|
111
|
+
/**
|
|
112
|
+
* Result of Cursor project detection
|
|
113
|
+
*/
|
|
114
|
+
export interface CursorProjectDetection {
|
|
115
|
+
/** Whether .cursor/ directory exists in project */
|
|
116
|
+
detected: boolean
|
|
117
|
+
|
|
118
|
+
/** Whether prjct router is installed */
|
|
119
|
+
routerInstalled: boolean
|
|
120
|
+
|
|
121
|
+
/** Project root path */
|
|
122
|
+
projectRoot?: string
|
|
123
|
+
}
|
|
124
|
+
|
|
101
125
|
/**
|
|
102
126
|
* Provider-aware branding configuration
|
|
103
127
|
*/
|
package/package.json
CHANGED
|
@@ -15,6 +15,8 @@ All issue tracker integrations (Linear, JIRA, GitHub Issues, Monday.com) inherit
|
|
|
15
15
|
|
|
16
16
|
- `{projectId}`: From `.prjct/prjct.config.json`
|
|
17
17
|
- `{globalPath}`: `~/.prjct-cli/projects/{projectId}`
|
|
18
|
+
- `{agentName}`: Name of the AI agent (Claude Code, Gemini CLI)
|
|
19
|
+
- `{agentSettingsPath}`: Path to agent settings (settings.json)
|
|
18
20
|
- `{args}`: User-provided arguments (subcommand)
|
|
19
21
|
- `{tracker}`: The tracker name (linear, jira, github, monday)
|
|
20
22
|
- `{mcpPrefix}`: MCP tool prefix (e.g., `mcp__linear__`, `mcp__atlassian__jira_`)
|
|
@@ -75,7 +77,7 @@ ELSE:
|
|
|
75
77
|
## Step 3: Install MCP Server (COMMON)
|
|
76
78
|
|
|
77
79
|
```
|
|
78
|
-
READ:
|
|
80
|
+
READ: {agentSettingsPath} (create {} if not exists)
|
|
79
81
|
CHECK: Does mcpServers.{mcpServerName} exist?
|
|
80
82
|
|
|
81
83
|
IF not exists:
|
|
@@ -86,11 +88,11 @@ IF not exists:
|
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
90
|
|
|
89
|
-
WRITE:
|
|
91
|
+
WRITE: {agentSettingsPath}
|
|
90
92
|
|
|
91
93
|
OUTPUT: "✅ Installed {TRACKER} MCP server"
|
|
92
94
|
OUTPUT: ""
|
|
93
|
-
OUTPUT: "⚠️ Restart
|
|
95
|
+
OUTPUT: "⚠️ Restart your AI agent ({agentName}) to activate the MCP server."
|
|
94
96
|
OUTPUT: "Then run `p. {tracker} setup` again to complete configuration."
|
|
95
97
|
STOP
|
|
96
98
|
```
|
|
@@ -104,7 +106,7 @@ CHECK: Are {mcpPrefix}* tools available?
|
|
|
104
106
|
|
|
105
107
|
IF not available:
|
|
106
108
|
OUTPUT: "{TRACKER} MCP is installed but not yet active."
|
|
107
|
-
OUTPUT: "Restart
|
|
109
|
+
OUTPUT: "Restart {agentName}, then run `p. {tracker} setup` again."
|
|
108
110
|
STOP
|
|
109
111
|
```
|
|
110
112
|
|
|
@@ -238,7 +240,7 @@ Comment added to {ID}
|
|
|
238
240
|
|-------|--------|
|
|
239
241
|
| No project | "Run `p. init` first" |
|
|
240
242
|
| Auth not configured | "Run `p. {tracker} setup` first" |
|
|
241
|
-
| MCP tools not found | "Restart
|
|
243
|
+
| MCP tools not found | "Restart {agentName} after setup" |
|
|
242
244
|
| Auth failed | Re-authenticate message |
|
|
243
245
|
| Issue not found | "Issue {ID} not found in {TRACKER}" |
|
|
244
246
|
| Rate limited | "Rate limited. Try again later" |
|
|
@@ -22,6 +22,8 @@ Manage GitHub Issues directly from prjct using MCP.
|
|
|
22
22
|
|
|
23
23
|
- `{projectId}`: From `.prjct/prjct.config.json`
|
|
24
24
|
- `{globalPath}`: `~/.prjct-cli/projects/{projectId}`
|
|
25
|
+
- `{agentName}`: Name of the AI agent (Claude Code, Gemini CLI)
|
|
26
|
+
- `{agentSettingsPath}`: Path to agent settings (settings.json)
|
|
25
27
|
- `{args}`: User-provided arguments (subcommand)
|
|
26
28
|
|
|
27
29
|
---
|
|
@@ -81,14 +83,14 @@ IF not set:
|
|
|
81
83
|
## Step 3: Install MCP Server (if needed)
|
|
82
84
|
|
|
83
85
|
```
|
|
84
|
-
READ:
|
|
86
|
+
READ: {agentSettingsPath} (create {} if not exists)
|
|
85
87
|
CHECK: Does mcpServers.github exist?
|
|
86
88
|
|
|
87
89
|
IF not exists:
|
|
88
90
|
READ: templates/mcp-config.json
|
|
89
91
|
EXTRACT: mcpServers.github
|
|
90
92
|
|
|
91
|
-
MERGE into
|
|
93
|
+
MERGE into {agentSettingsPath}:
|
|
92
94
|
{
|
|
93
95
|
"mcpServers": {
|
|
94
96
|
"github": {
|
|
@@ -101,11 +103,11 @@ IF not exists:
|
|
|
101
103
|
}
|
|
102
104
|
}
|
|
103
105
|
|
|
104
|
-
WRITE:
|
|
106
|
+
WRITE: {agentSettingsPath}
|
|
105
107
|
|
|
106
108
|
OUTPUT: "✅ Installed GitHub MCP server"
|
|
107
109
|
OUTPUT: ""
|
|
108
|
-
OUTPUT: "⚠️ Restart
|
|
110
|
+
OUTPUT: "⚠️ Restart {agentName} to activate the MCP server."
|
|
109
111
|
OUTPUT: "Then run `p. github setup` again to complete configuration."
|
|
110
112
|
STOP
|
|
111
113
|
```
|
|
@@ -119,7 +121,7 @@ CHECK: Are mcp__github__* tools available?
|
|
|
119
121
|
|
|
120
122
|
IF not available:
|
|
121
123
|
OUTPUT: "GitHub MCP is installed but not yet active."
|
|
122
|
-
OUTPUT: "Restart
|
|
124
|
+
OUTPUT: "Restart {agentName}, then run `p. github setup` again."
|
|
123
125
|
STOP
|
|
124
126
|
```
|
|
125
127
|
|
|
@@ -22,6 +22,21 @@ Create `.prjct/prjct.config.json`:
|
|
|
22
22
|
|
|
23
23
|
Create `{globalPath}/project.json` with project name from package.json
|
|
24
24
|
|
|
25
|
+
## Cursor IDE Detection
|
|
26
|
+
|
|
27
|
+
If `.cursor/` directory exists in project:
|
|
28
|
+
1. Ask: "Cursor IDE detected. Configure prjct for Cursor?"
|
|
29
|
+
2. If yes:
|
|
30
|
+
- Get npm root: `npm root -g`
|
|
31
|
+
- Copy router: `{npmRoot}/prjct-cli/templates/cursor/router.mdc` → `.cursor/rules/prjct.mdc`
|
|
32
|
+
- Copy commands: `{npmRoot}/prjct-cli/templates/cursor/p.md` → `.cursor/commands/p.md`
|
|
33
|
+
- Add to `.gitignore`:
|
|
34
|
+
```
|
|
35
|
+
# prjct Cursor routers (regenerated per-developer)
|
|
36
|
+
.cursor/rules/prjct.mdc
|
|
37
|
+
.cursor/commands/p.md
|
|
38
|
+
```
|
|
39
|
+
|
|
25
40
|
Optional: Ask about JIRA/Linear integration
|
|
26
41
|
|
|
27
42
|
**Output**:
|
|
@@ -30,6 +45,7 @@ Optional: Ask about JIRA/Linear integration
|
|
|
30
45
|
|
|
31
46
|
Project ID: {uuid}
|
|
32
47
|
Data: ~/.prjct-cli/projects/{uuid}/
|
|
48
|
+
Cursor: {configured/not detected}
|
|
33
49
|
|
|
34
50
|
Next:
|
|
35
51
|
- Analyze project → `p. sync`
|
|
@@ -22,6 +22,8 @@ Manage JIRA issues directly from prjct.
|
|
|
22
22
|
|
|
23
23
|
- `{projectId}`: From `.prjct/prjct.config.json`
|
|
24
24
|
- `{globalPath}`: `~/.prjct-cli/projects/{projectId}`
|
|
25
|
+
- `{agentName}`: Name of the AI agent (Claude Code, Gemini CLI)
|
|
26
|
+
- `{agentSettingsPath}`: Path to agent settings (settings.json)
|
|
25
27
|
- `{args}`: User-provided arguments (subcommand)
|
|
26
28
|
|
|
27
29
|
---
|
|
@@ -82,14 +84,14 @@ IF file not found:
|
|
|
82
84
|
## Step 2: Install MCP Server (if needed)
|
|
83
85
|
|
|
84
86
|
```
|
|
85
|
-
READ:
|
|
87
|
+
READ: {agentSettingsPath} (create {} if not exists)
|
|
86
88
|
CHECK: Does mcpServers.Atlassian exist?
|
|
87
89
|
|
|
88
90
|
IF not exists:
|
|
89
91
|
READ: templates/mcp-config.json
|
|
90
92
|
EXTRACT: mcpServers.Atlassian
|
|
91
93
|
|
|
92
|
-
MERGE into
|
|
94
|
+
MERGE into {agentSettingsPath}:
|
|
93
95
|
{
|
|
94
96
|
"mcpServers": {
|
|
95
97
|
"Atlassian": {
|
|
@@ -99,11 +101,11 @@ IF not exists:
|
|
|
99
101
|
}
|
|
100
102
|
}
|
|
101
103
|
|
|
102
|
-
WRITE:
|
|
104
|
+
WRITE: {agentSettingsPath}
|
|
103
105
|
|
|
104
106
|
OUTPUT: "✅ Installed Atlassian MCP server"
|
|
105
107
|
OUTPUT: ""
|
|
106
|
-
OUTPUT: "⚠️ Restart
|
|
108
|
+
OUTPUT: "⚠️ Restart {agentName} to activate the MCP server."
|
|
107
109
|
OUTPUT: "Then run `p. jira setup` again to complete configuration."
|
|
108
110
|
STOP
|
|
109
111
|
```
|
|
@@ -122,9 +124,9 @@ ELSE IF mcp__atlassian__jira_* tools available:
|
|
|
122
124
|
SET: authMode = "mcp"
|
|
123
125
|
|
|
124
126
|
# MCP installed but not active
|
|
125
|
-
ELSE IF mcpServers.Atlassian exists in
|
|
127
|
+
ELSE IF mcpServers.Atlassian exists in {agentSettingsPath}:
|
|
126
128
|
OUTPUT: "Atlassian MCP is installed but not yet active."
|
|
127
|
-
OUTPUT: "Restart
|
|
129
|
+
OUTPUT: "Restart {agentName}, then run `p. jira setup` again."
|
|
128
130
|
STOP
|
|
129
131
|
|
|
130
132
|
# Neither available
|
|
@@ -22,6 +22,8 @@ Manage Linear issues directly from prjct using MCP (no SDK needed).
|
|
|
22
22
|
|
|
23
23
|
- `{projectId}`: From `.prjct/prjct.config.json`
|
|
24
24
|
- `{globalPath}`: `~/.prjct-cli/projects/{projectId}`
|
|
25
|
+
- `{agentName}`: Name of the AI agent (Claude Code, Gemini CLI)
|
|
26
|
+
- `{agentSettingsPath}`: Path to agent settings (settings.json)
|
|
25
27
|
- `{args}`: User-provided arguments (subcommand)
|
|
26
28
|
|
|
27
29
|
---
|
|
@@ -64,14 +66,14 @@ IF file not found:
|
|
|
64
66
|
## Step 2: Install MCP Server (if needed)
|
|
65
67
|
|
|
66
68
|
```
|
|
67
|
-
READ:
|
|
69
|
+
READ: {agentSettingsPath} (create {} if not exists)
|
|
68
70
|
CHECK: Does mcpServers.linear exist?
|
|
69
71
|
|
|
70
72
|
IF not exists:
|
|
71
73
|
READ: templates/mcp-config.json
|
|
72
74
|
EXTRACT: mcpServers.linear
|
|
73
75
|
|
|
74
|
-
MERGE into
|
|
76
|
+
MERGE into {agentSettingsPath}:
|
|
75
77
|
{
|
|
76
78
|
"mcpServers": {
|
|
77
79
|
"linear": {
|
|
@@ -81,11 +83,11 @@ IF not exists:
|
|
|
81
83
|
}
|
|
82
84
|
}
|
|
83
85
|
|
|
84
|
-
WRITE:
|
|
86
|
+
WRITE: {agentSettingsPath}
|
|
85
87
|
|
|
86
88
|
OUTPUT: "✅ Installed Linear MCP server"
|
|
87
89
|
OUTPUT: ""
|
|
88
|
-
OUTPUT: "⚠️ Restart
|
|
90
|
+
OUTPUT: "⚠️ Restart {agentName} to activate the MCP server."
|
|
89
91
|
OUTPUT: "Then run `p. linear setup` again to complete configuration."
|
|
90
92
|
STOP
|
|
91
93
|
```
|
|
@@ -99,7 +101,7 @@ CHECK: Are mcp__linear__* tools available?
|
|
|
99
101
|
|
|
100
102
|
IF not available:
|
|
101
103
|
OUTPUT: "Linear MCP is installed but not yet active."
|
|
102
|
-
OUTPUT: "Restart
|
|
104
|
+
OUTPUT: "Restart {agentName}, then run `p. linear setup` again."
|
|
103
105
|
STOP
|
|
104
106
|
```
|
|
105
107
|
|
|
@@ -293,7 +295,7 @@ PARAMS:
|
|
|
293
295
|
|
|
294
296
|
| Error | Action |
|
|
295
297
|
|-------|--------|
|
|
296
|
-
| MCP tools not found | "Add Linear MCP to settings, restart
|
|
298
|
+
| MCP tools not found | "Add Linear MCP to settings, restart {agentName}" |
|
|
297
299
|
| OAuth failed | "Re-authenticate via browser" |
|
|
298
300
|
| Issue not found | "Issue {ID} not found in Linear" |
|
|
299
301
|
|
|
@@ -22,6 +22,8 @@ Manage Monday.com boards directly from prjct using MCP.
|
|
|
22
22
|
|
|
23
23
|
- `{projectId}`: From `.prjct/prjct.config.json`
|
|
24
24
|
- `{globalPath}`: `~/.prjct-cli/projects/{projectId}`
|
|
25
|
+
- `{agentName}`: Name of the AI agent (Claude Code, Gemini CLI)
|
|
26
|
+
- `{agentSettingsPath}`: Path to agent settings (settings.json)
|
|
25
27
|
- `{args}`: User-provided arguments (subcommand)
|
|
26
28
|
|
|
27
29
|
---
|
|
@@ -63,14 +65,14 @@ IF file not found:
|
|
|
63
65
|
## Step 2: Install MCP Server (if needed)
|
|
64
66
|
|
|
65
67
|
```
|
|
66
|
-
READ:
|
|
68
|
+
READ: {agentSettingsPath} (create {} if not exists)
|
|
67
69
|
CHECK: Does mcpServers.monday exist?
|
|
68
70
|
|
|
69
71
|
IF not exists:
|
|
70
72
|
READ: templates/mcp-config.json
|
|
71
73
|
EXTRACT: mcpServers.monday
|
|
72
74
|
|
|
73
|
-
MERGE into
|
|
75
|
+
MERGE into {agentSettingsPath}:
|
|
74
76
|
{
|
|
75
77
|
"mcpServers": {
|
|
76
78
|
"monday": {
|
|
@@ -80,11 +82,11 @@ IF not exists:
|
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
84
|
|
|
83
|
-
WRITE:
|
|
85
|
+
WRITE: {agentSettingsPath}
|
|
84
86
|
|
|
85
87
|
OUTPUT: "✅ Installed Monday.com MCP server"
|
|
86
88
|
OUTPUT: ""
|
|
87
|
-
OUTPUT: "⚠️ Restart
|
|
89
|
+
OUTPUT: "⚠️ Restart {agentName} to activate the MCP server."
|
|
88
90
|
OUTPUT: "Then run `p. monday setup` again to complete configuration."
|
|
89
91
|
STOP
|
|
90
92
|
```
|
|
@@ -98,7 +100,7 @@ CHECK: Are mcp__monday__* tools available?
|
|
|
98
100
|
|
|
99
101
|
IF not available:
|
|
100
102
|
OUTPUT: "Monday MCP is installed but not yet active."
|
|
101
|
-
OUTPUT: "Restart
|
|
103
|
+
OUTPUT: "Restart {agentName}, then run `p. monday setup` again."
|
|
102
104
|
STOP
|
|
103
105
|
```
|
|
104
106
|
|
|
@@ -224,7 +226,7 @@ Next: Work on the task, then `p. done`
|
|
|
224
226
|
|
|
225
227
|
| Error | Action |
|
|
226
228
|
|-------|--------|
|
|
227
|
-
| MCP tools not found | "Add Monday MCP to settings, restart
|
|
229
|
+
| MCP tools not found | "Add Monday MCP to settings, restart {agentName}" |
|
|
228
230
|
| OAuth failed | "Re-authenticate via browser" |
|
|
229
231
|
| Item not found | "Item not found in board" |
|
|
230
232
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools: [Bash]
|
|
2
|
+
allowed-tools: [Bash, Read, Write]
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# p. sync
|
|
@@ -10,12 +10,22 @@ prjct sync
|
|
|
10
10
|
|
|
11
11
|
CLI handles: git analysis, context generation, agents, skills.
|
|
12
12
|
|
|
13
|
+
## Cursor Router Regeneration
|
|
14
|
+
|
|
15
|
+
If `.cursor/` exists but `.cursor/rules/prjct.mdc` is missing:
|
|
16
|
+
1. Get npm root: `npm root -g`
|
|
17
|
+
2. Create `.cursor/rules/` directory if needed
|
|
18
|
+
3. Copy router: `{npmRoot}/prjct-cli/templates/cursor/router.mdc` → `.cursor/rules/prjct.mdc`
|
|
19
|
+
4. Copy commands: `{npmRoot}/prjct-cli/templates/cursor/p.md` → `.cursor/commands/p.md`
|
|
20
|
+
5. Report: "Cursor routers regenerated"
|
|
21
|
+
|
|
13
22
|
**Output**:
|
|
14
23
|
```
|
|
15
24
|
✅ Synced: {projectName}
|
|
16
25
|
|
|
17
26
|
Ecosystem: {ecosystem}
|
|
18
27
|
Agents: {count} generated
|
|
28
|
+
Cursor: {regenerated/ready/not detected}
|
|
19
29
|
|
|
20
30
|
Next:
|
|
21
31
|
- Start work → `p. task "description"`
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# p. Command Router for Cursor IDE
|
|
2
|
+
|
|
3
|
+
**ARGUMENTS**: {{args}}
|
|
4
|
+
|
|
5
|
+
## Instructions
|
|
6
|
+
|
|
7
|
+
1. **Get npm root**: Run `npm root -g`
|
|
8
|
+
2. **Parse arguments**: First word = `command`, rest = `commandArgs`
|
|
9
|
+
3. **Read template**: `{npmRoot}/prjct-cli/templates/commands/{command}.md`
|
|
10
|
+
4. **Execute**: Follow the template with `commandArgs` as input
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
If arguments = `task fix the login bug`:
|
|
15
|
+
- command = `task`
|
|
16
|
+
- commandArgs = `fix the login bug`
|
|
17
|
+
- npm root → `/opt/homebrew/lib/node_modules`
|
|
18
|
+
- Read: `/opt/homebrew/lib/node_modules/prjct-cli/templates/commands/task.md`
|
|
19
|
+
- Execute template with: `fix the login bug`
|
|
20
|
+
|
|
21
|
+
## Available Commands
|
|
22
|
+
|
|
23
|
+
task, done, ship, sync, init, idea, dash, next, pause, resume, bug,
|
|
24
|
+
linear, github, jira, monday, enrich, feature, prd, plan, review,
|
|
25
|
+
merge, git, test, cleanup, design, analyze, history, update, spec
|
|
26
|
+
|
|
27
|
+
## Action
|
|
28
|
+
|
|
29
|
+
NOW run `npm root -g` and read the appropriate command template.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "prjct - Context layer for AI coding agents"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# prjct
|
|
7
|
+
|
|
8
|
+
You are using **prjct**, a context layer for AI coding agents.
|
|
9
|
+
|
|
10
|
+
## Load Full Instructions
|
|
11
|
+
|
|
12
|
+
1. Run: `npm root -g` to get the npm global root
|
|
13
|
+
2. Read: `{npmRoot}/prjct-cli/templates/global/CURSOR.mdc`
|
|
14
|
+
3. Follow those instructions for ALL `/command` requests
|
|
15
|
+
|
|
16
|
+
## Quick Reference
|
|
17
|
+
|
|
18
|
+
| Command | Action |
|
|
19
|
+
|---------|--------|
|
|
20
|
+
| `/sync` | Analyze project, generate agents |
|
|
21
|
+
| `/task "..."` | Start a task |
|
|
22
|
+
| `/done` | Complete subtask |
|
|
23
|
+
| `/ship` | Ship with PR + version |
|
|
24
|
+
|
|
25
|
+
## Note
|
|
26
|
+
|
|
27
|
+
This router auto-regenerates with `/sync` if deleted.
|
|
28
|
+
Full instructions are in the npm package (always up-to-date).
|