prjct-cli 1.45.5 → 1.45.7

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 (136) hide show
  1. package/CHANGELOG.md +30 -4
  2. package/dist/bin/prjct-core.mjs +124 -124
  3. package/dist/cli/jira.mjs +1 -1
  4. package/dist/cli/linear.mjs +1 -1
  5. package/dist/templates.json +1 -1
  6. package/package.json +2 -1
  7. package/templates/agentic/agent-routing.md +45 -0
  8. package/templates/agentic/agents/uxui.md +63 -0
  9. package/templates/agentic/checklist-routing.md +98 -0
  10. package/templates/agentic/orchestrator.md +68 -0
  11. package/templates/agentic/task-fragmentation.md +89 -0
  12. package/templates/agents/AGENTS.md +67 -0
  13. package/templates/analysis/analyze.md +84 -0
  14. package/templates/analysis/patterns.md +60 -0
  15. package/templates/antigravity/SKILL.md +39 -0
  16. package/templates/architect/discovery.md +67 -0
  17. package/templates/architect/phases.md +59 -0
  18. package/templates/baseline/anti-patterns/nextjs.json +18 -0
  19. package/templates/baseline/anti-patterns/react.json +18 -0
  20. package/templates/baseline/anti-patterns/typescript.json +18 -0
  21. package/templates/baseline/patterns/nextjs.json +18 -0
  22. package/templates/baseline/patterns/react.json +18 -0
  23. package/templates/baseline/patterns/typescript.json +18 -0
  24. package/templates/checklists/architecture.md +28 -0
  25. package/templates/checklists/code-quality.md +28 -0
  26. package/templates/checklists/data.md +33 -0
  27. package/templates/checklists/documentation.md +33 -0
  28. package/templates/checklists/infrastructure.md +33 -0
  29. package/templates/checklists/performance.md +33 -0
  30. package/templates/checklists/security.md +33 -0
  31. package/templates/checklists/testing.md +33 -0
  32. package/templates/checklists/ux-ui.md +37 -0
  33. package/templates/codex/SKILL.md +36 -0
  34. package/templates/commands/analyze.md +11 -0
  35. package/templates/commands/auth.md +15 -0
  36. package/templates/commands/bug.md +28 -0
  37. package/templates/commands/cleanup.md +11 -0
  38. package/templates/commands/dash.md +16 -0
  39. package/templates/commands/design.md +11 -0
  40. package/templates/commands/done.md +33 -0
  41. package/templates/commands/enrich.md +20 -0
  42. package/templates/commands/git.md +17 -0
  43. package/templates/commands/history.md +13 -0
  44. package/templates/commands/idea.md +13 -0
  45. package/templates/commands/impact.md +13 -0
  46. package/templates/commands/init.md +11 -0
  47. package/templates/commands/jira.md +88 -0
  48. package/templates/commands/learnings.md +11 -0
  49. package/templates/commands/linear.md +82 -0
  50. package/templates/commands/merge.md +25 -0
  51. package/templates/commands/next.md +12 -0
  52. package/templates/commands/p.md +62 -0
  53. package/templates/commands/p.toml +37 -0
  54. package/templates/commands/pause.md +16 -0
  55. package/templates/commands/plan.md +13 -0
  56. package/templates/commands/prd.md +21 -0
  57. package/templates/commands/resume.md +12 -0
  58. package/templates/commands/review.md +20 -0
  59. package/templates/commands/serve.md +11 -0
  60. package/templates/commands/sessions.md +13 -0
  61. package/templates/commands/setup.md +11 -0
  62. package/templates/commands/ship.md +46 -0
  63. package/templates/commands/skill.md +13 -0
  64. package/templates/commands/spec.md +20 -0
  65. package/templates/commands/status.md +11 -0
  66. package/templates/commands/sync.md +23 -0
  67. package/templates/commands/task.md +52 -0
  68. package/templates/commands/test.md +22 -0
  69. package/templates/commands/update.md +11 -0
  70. package/templates/commands/verify.md +11 -0
  71. package/templates/commands/workflow.md +69 -0
  72. package/templates/config/skill-mappings.json +82 -0
  73. package/templates/context/dashboard.md +251 -0
  74. package/templates/context/roadmap.md +221 -0
  75. package/templates/cursor/commands/bug.md +8 -0
  76. package/templates/cursor/commands/done.md +4 -0
  77. package/templates/cursor/commands/pause.md +6 -0
  78. package/templates/cursor/commands/resume.md +4 -0
  79. package/templates/cursor/commands/ship.md +8 -0
  80. package/templates/cursor/commands/sync.md +4 -0
  81. package/templates/cursor/commands/task.md +8 -0
  82. package/templates/cursor/p.md +29 -0
  83. package/templates/cursor/router.mdc +28 -0
  84. package/templates/design/api.md +95 -0
  85. package/templates/design/architecture.md +77 -0
  86. package/templates/design/component.md +89 -0
  87. package/templates/design/database.md +78 -0
  88. package/templates/design/flow.md +94 -0
  89. package/templates/global/ANTIGRAVITY.md +17 -0
  90. package/templates/global/CLAUDE.md +20 -0
  91. package/templates/global/CURSOR.mdc +20 -0
  92. package/templates/global/GEMINI.md +17 -0
  93. package/templates/global/STORAGE-SPEC.md +328 -0
  94. package/templates/global/WINDSURF.md +22 -0
  95. package/templates/global/modules/CLAUDE-commands.md +1 -0
  96. package/templates/global/modules/CLAUDE-core.md +16 -0
  97. package/templates/global/modules/CLAUDE-git.md +1 -0
  98. package/templates/global/modules/CLAUDE-intelligence.md +1 -0
  99. package/templates/global/modules/CLAUDE-storage.md +1 -0
  100. package/templates/global/modules/module-config.json +12 -0
  101. package/templates/mcp-config.json +29 -0
  102. package/templates/permissions/default.jsonc +60 -0
  103. package/templates/permissions/permissive.jsonc +49 -0
  104. package/templates/permissions/strict.jsonc +58 -0
  105. package/templates/planning-methodology.md +195 -0
  106. package/templates/skills/code-review.md +47 -0
  107. package/templates/skills/debug.md +61 -0
  108. package/templates/skills/refactor.md +47 -0
  109. package/templates/subagents/agent-base.md +21 -0
  110. package/templates/subagents/domain/backend.md +109 -0
  111. package/templates/subagents/domain/database.md +121 -0
  112. package/templates/subagents/domain/devops.md +152 -0
  113. package/templates/subagents/domain/frontend.md +103 -0
  114. package/templates/subagents/domain/testing.md +169 -0
  115. package/templates/subagents/pm-expert.md +366 -0
  116. package/templates/subagents/workflow/chief-architect.md +653 -0
  117. package/templates/subagents/workflow/prjct-planner.md +120 -0
  118. package/templates/subagents/workflow/prjct-shipper.md +175 -0
  119. package/templates/subagents/workflow/prjct-workflow.md +82 -0
  120. package/templates/tools/bash.txt +22 -0
  121. package/templates/tools/edit.txt +18 -0
  122. package/templates/tools/glob.txt +19 -0
  123. package/templates/tools/grep.txt +21 -0
  124. package/templates/tools/read.txt +14 -0
  125. package/templates/tools/task.txt +20 -0
  126. package/templates/tools/webfetch.txt +16 -0
  127. package/templates/tools/websearch.txt +18 -0
  128. package/templates/tools/write.txt +17 -0
  129. package/templates/windsurf/router.md +28 -0
  130. package/templates/windsurf/workflows/bug.md +8 -0
  131. package/templates/windsurf/workflows/done.md +4 -0
  132. package/templates/windsurf/workflows/pause.md +4 -0
  133. package/templates/windsurf/workflows/resume.md +4 -0
  134. package/templates/windsurf/workflows/ship.md +8 -0
  135. package/templates/windsurf/workflows/sync.md +4 -0
  136. package/templates/windsurf/workflows/task.md +8 -0
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: flow-design
3
+ description: Design user/data flow
4
+ allowed-tools: [Read, Glob, Grep]
5
+ ---
6
+
7
+ # Flow Design
8
+
9
+ Design the user or data flow for the given feature.
10
+
11
+ ## Input
12
+ - Target: {{target}}
13
+ - Requirements: {{requirements}}
14
+
15
+ ## Analysis Steps
16
+
17
+ 1. **Identify Actors**
18
+ - Who initiates the flow?
19
+ - What systems are involved?
20
+ - What are the touchpoints?
21
+
22
+ 2. **Map Steps**
23
+ - Start to end journey
24
+ - Decision points
25
+ - Error scenarios
26
+
27
+ 3. **Define States**
28
+ - Initial state
29
+ - Intermediate states
30
+ - Final state(s)
31
+
32
+ 4. **Plan Error Handling**
33
+ - What can go wrong?
34
+ - Recovery paths
35
+ - User feedback
36
+
37
+ ## Output Format
38
+
39
+ ```markdown
40
+ # Flow: {target}
41
+
42
+ ## Overview
43
+ Brief description of this flow.
44
+
45
+ ## Actors
46
+ - **User**: Primary actor
47
+ - **System**: Backend services
48
+ - **External**: Third-party APIs
49
+
50
+ ## Flow Diagram
51
+ ```
52
+ [Start] → [Step 1] → [Decision?]
53
+ ↓ Yes
54
+ [Step 2] → [End]
55
+ ↓ No
56
+ [Error] → [Recovery]
57
+ ```
58
+
59
+ ## Steps
60
+
61
+ ### 1. User Action
62
+ - User does X
63
+ - System validates Y
64
+ - **Success**: Continue to step 2
65
+ - **Error**: Show message, allow retry
66
+
67
+ ### 2. Processing
68
+ - System processes data
69
+ - Calls external API
70
+ - Updates database
71
+
72
+ ### 3. Completion
73
+ - Show success message
74
+ - Update UI state
75
+ - Log event
76
+
77
+ ## Error Scenarios
78
+ | Error | Cause | Recovery |
79
+ |-------|-------|----------|
80
+ | Invalid input | Bad data | Show validation |
81
+ | API timeout | Network | Retry with backoff |
82
+ | Auth failed | Token expired | Redirect to login |
83
+
84
+ ## States
85
+ - `idle`: Initial state
86
+ - `loading`: Processing
87
+ - `success`: Completed
88
+ - `error`: Failed
89
+ ```
90
+
91
+ ## Guidelines
92
+ - Cover happy path first
93
+ - Document all error cases
94
+ - Keep flows focused
@@ -0,0 +1,17 @@
1
+ <!-- prjct:start - DO NOT REMOVE THIS MARKER -->
2
+ # p/ — Context layer for AI agents
3
+
4
+ Commands: `p. sync` `p. task` `p. done` `p. ship` `p. pause` `p. resume` `p. bug` `p. dash` `p. next`
5
+
6
+ When user types a p command, execute the corresponding prjct CLI command with `--md` flag for context.
7
+
8
+ Rules:
9
+ - Never commit to main/master directly
10
+ - All commits include footer: `Generated with [p/](https://www.prjct.app/)`
11
+ - Path resolution: `.prjct/prjct.config.json` → `~/.prjct-cli/projects/{projectId}`
12
+ - All storage through `prjct` CLI (SQLite internally)
13
+ - For code tasks, always start with `p. task` and follow Context Contract from CLI output
14
+ - Context7 MCP is mandatory for framework/library API decisions
15
+
16
+ **Auto-managed by prjct-cli** | https://prjct.app
17
+ <!-- prjct:end - DO NOT REMOVE THIS MARKER -->
@@ -0,0 +1,20 @@
1
+ <!-- prjct:start - DO NOT REMOVE THIS MARKER -->
2
+ # p/ — Context layer for AI agents
3
+
4
+ Commands: `p. sync` `p. task` `p. done` `p. ship` `p. pause` `p. resume` `p. bug` `p. dash` `p. next`
5
+
6
+ When user types `p. <command>`, READ the template from `~/.claude/commands/p/{command}.md` and execute step by step.
7
+
8
+ Rules:
9
+ - Never commit to main/master directly
10
+ - All commits include footer: `Generated with [p/](https://www.prjct.app/)`
11
+ - Path resolution: `.prjct/prjct.config.json` → `~/.prjct-cli/projects/{projectId}`
12
+ - All storage through `prjct` CLI (SQLite internally)
13
+ - For code tasks, always start with `p. task` and follow Context Contract from CLI output
14
+ - Context7 MCP is mandatory for framework/library API decisions
15
+ - Templates are MANDATORY workflows — follow every step
16
+ - WORKFLOW IS MANDATORY: After completing work, ALWAYS run `p. ship`
17
+ - NEVER end a session without shipping or pausing
18
+
19
+ **Auto-managed by prjct-cli** | https://prjct.app
20
+ <!-- prjct:end - DO NOT REMOVE THIS MARKER -->
@@ -0,0 +1,20 @@
1
+ ---
2
+ description: "prjct - Context layer for AI coding agents"
3
+ alwaysApply: true
4
+ ---
5
+
6
+ <!-- prjct:start - DO NOT REMOVE THIS MARKER -->
7
+ # p/ — Context layer for AI agents
8
+
9
+ Commands: `/sync` `/task` `/done` `/ship` `/pause` `/resume` `/bug` `/dash` `/next`
10
+
11
+ When user triggers a command, execute the corresponding prjct CLI command with `--md` flag for context.
12
+
13
+ Rules:
14
+ - Never commit to main/master directly
15
+ - All commits include footer: `Generated with [p/](https://www.prjct.app/)`
16
+ - Path resolution: `.prjct/prjct.config.json` → `~/.prjct-cli/projects/{projectId}`
17
+ - All storage through `prjct` CLI (SQLite internally)
18
+
19
+ **Auto-managed by prjct-cli** | https://prjct.app
20
+ <!-- prjct:end - DO NOT REMOVE THIS MARKER -->
@@ -0,0 +1,17 @@
1
+ <!-- prjct:start - DO NOT REMOVE THIS MARKER -->
2
+ # p/ — Context layer for AI agents
3
+
4
+ Commands: `p sync` `p task` `p done` `p ship` `p pause` `p resume` `p bug` `p dash` `p next`
5
+
6
+ When user types a p command, execute the corresponding prjct CLI command with `--md` flag for context.
7
+
8
+ Rules:
9
+ - Never commit to main/master directly
10
+ - All commits include footer: `Generated with [p/](https://www.prjct.app/)`
11
+ - Path resolution: `.prjct/prjct.config.json` → `~/.prjct-cli/projects/{projectId}`
12
+ - All storage through `prjct` CLI (SQLite internally)
13
+ - For code tasks, always start with `p task` and follow Context Contract from CLI output
14
+ - Context7 MCP is mandatory for framework/library API decisions
15
+
16
+ **Auto-managed by prjct-cli** | https://prjct.app
17
+ <!-- prjct:end - DO NOT REMOVE THIS MARKER -->
@@ -0,0 +1,328 @@
1
+ # Storage Specification
2
+
3
+ **Canonical specification for prjct storage format.**
4
+
5
+ All storage is managed by the `prjct` CLI which uses SQLite (`prjct.db`) internally. **NEVER read or write JSON storage files directly. Use `prjct` CLI commands for all storage operations.**
6
+
7
+ ---
8
+
9
+ ## Current Storage: SQLite (prjct.db)
10
+
11
+ All reads and writes go through the `prjct` CLI, which manages a SQLite database (`prjct.db`) with WAL mode for safe concurrent access.
12
+
13
+ ```
14
+ ~/.prjct-cli/projects/{projectId}/
15
+ ├── prjct.db # SQLite database (SOURCE OF TRUTH for all storage)
16
+ ├── context/
17
+ │ ├── now.md # Current task (generated from prjct.db)
18
+ │ └── next.md # Queue (generated from prjct.db)
19
+ ├── config/
20
+ │ └── skills.json # Agent-to-skill mappings
21
+ ├── agents/ # Domain specialists (auto-generated)
22
+ └── sync/
23
+ └── pending.json # Events for backend sync
24
+ ```
25
+
26
+ ### How to interact with storage
27
+
28
+ - **Read state**: Use `prjct status`, `prjct dash`, `prjct next` CLI commands
29
+ - **Write state**: Use `prjct` CLI commands (task, done, pause, resume, etc.)
30
+ - **Issue tracker setup**: Use `prjct linear setup` or `prjct jira setup` (MCP/OAuth)
31
+ - **Never** read/write JSON files in `storage/` or `memory/` directories
32
+
33
+ ---
34
+
35
+ ## LEGACY JSON Schemas (for reference only)
36
+
37
+ > **WARNING**: These JSON schemas are LEGACY documentation only. The `storage/` and `memory/` directories are no longer used. All data lives in `prjct.db` (SQLite). Do NOT read or write these files.
38
+
39
+ ### state.json (LEGACY)
40
+
41
+ ```json
42
+ {
43
+ "task": {
44
+ "id": "uuid-v4",
45
+ "title": "string",
46
+ "type": "feature|bug|improvement|refactor|chore",
47
+ "status": "active|paused|done",
48
+ "branch": "string|null",
49
+ "subtasks": [
50
+ {
51
+ "id": "uuid-v4",
52
+ "title": "string",
53
+ "status": "pending|done"
54
+ }
55
+ ],
56
+ "currentSubtask": 0,
57
+ "createdAt": "2024-01-15T10:30:00.000Z",
58
+ "updatedAt": "2024-01-15T10:30:00.000Z"
59
+ }
60
+ }
61
+ ```
62
+
63
+ **Empty state (no active task):**
64
+ ```json
65
+ {
66
+ "task": null
67
+ }
68
+ ```
69
+
70
+ ### queue.json (LEGACY)
71
+
72
+ ```json
73
+ {
74
+ "tasks": [
75
+ {
76
+ "id": "uuid-v4",
77
+ "title": "string",
78
+ "type": "feature|bug|improvement|refactor|chore",
79
+ "priority": 1,
80
+ "createdAt": "2024-01-15T10:30:00.000Z"
81
+ }
82
+ ],
83
+ "updatedAt": "2024-01-15T10:30:00.000Z"
84
+ }
85
+ ```
86
+
87
+ ### shipped.json (LEGACY)
88
+
89
+ ```json
90
+ {
91
+ "features": [
92
+ {
93
+ "id": "uuid-v4",
94
+ "name": "string",
95
+ "version": "1.0.0",
96
+ "type": "feature|bug|improvement|refactor|chore",
97
+ "shippedAt": "2024-01-15T10:30:00.000Z"
98
+ }
99
+ ],
100
+ "updatedAt": "2024-01-15T10:30:00.000Z"
101
+ }
102
+ ```
103
+
104
+ ### events.jsonl (LEGACY - now stored in SQLite `events` table)
105
+
106
+ Previously append-only JSONL. Now stored in SQLite.
107
+
108
+ ```jsonl
109
+ {"type":"task.created","timestamp":"2024-01-15T10:30:00.000Z","data":{"taskId":"uuid","title":"string"}}
110
+ {"type":"task.started","timestamp":"2024-01-15T10:30:00.000Z","data":{"taskId":"uuid"}}
111
+ {"type":"subtask.completed","timestamp":"2024-01-15T10:35:00.000Z","data":{"taskId":"uuid","subtaskIndex":0}}
112
+ {"type":"task.completed","timestamp":"2024-01-15T10:40:00.000Z","data":{"taskId":"uuid"}}
113
+ {"type":"feature.shipped","timestamp":"2024-01-15T10:45:00.000Z","data":{"featureId":"uuid","name":"string","version":"1.0.0"}}
114
+ ```
115
+
116
+ **Event Types:**
117
+ - `task.created` - New task created
118
+ - `task.started` - Task activated
119
+ - `task.paused` - Task paused
120
+ - `task.resumed` - Task resumed
121
+ - `task.completed` - Task completed
122
+ - `subtask.completed` - Subtask completed
123
+ - `feature.shipped` - Feature shipped
124
+
125
+ ### learnings.jsonl (LEGACY - now stored in SQLite)
126
+
127
+ Previously used for LLM-to-LLM knowledge transfer. Now stored in SQLite.
128
+
129
+ ```jsonl
130
+ {"taskId":"uuid","linearId":"PRJ-123","timestamp":"2024-01-15T10:40:00.000Z","learnings":{"patterns":["Use NestedContextResolver for hierarchical discovery"],"approaches":["Mirror existing method structure when extending"],"decisions":["Extended class rather than wrapper for consistency"],"gotchas":["Must handle null parent case"]},"value":{"type":"feature","impact":"high","description":"Hierarchical AGENTS.md support for monorepos"},"filesChanged":["core/resolver.ts","core/types.ts"],"tags":["agents","hierarchy","monorepo"]}
131
+ ```
132
+
133
+ **Schema:**
134
+ ```json
135
+ {
136
+ "taskId": "uuid-v4",
137
+ "linearId": "string|null",
138
+ "timestamp": "2024-01-15T10:40:00.000Z",
139
+ "learnings": {
140
+ "patterns": ["string"],
141
+ "approaches": ["string"],
142
+ "decisions": ["string"],
143
+ "gotchas": ["string"]
144
+ },
145
+ "value": {
146
+ "type": "feature|bugfix|performance|dx|refactor|infrastructure",
147
+ "impact": "high|medium|low",
148
+ "description": "string"
149
+ },
150
+ "filesChanged": ["string"],
151
+ "tags": ["string"]
152
+ }
153
+ ```
154
+
155
+ **Why Local Cache**: Enables future semantic retrieval without API latency. Will feed into vector DB for cross-session knowledge transfer.
156
+
157
+ ### skills.json
158
+
159
+ ```json
160
+ {
161
+ "mappings": {
162
+ "frontend.md": ["frontend-design"],
163
+ "backend.md": ["javascript-typescript"],
164
+ "testing.md": ["developer-kit"]
165
+ },
166
+ "updatedAt": "2024-01-15T10:30:00.000Z"
167
+ }
168
+ ```
169
+
170
+ ### pending.json (sync queue)
171
+
172
+ ```json
173
+ {
174
+ "events": [
175
+ {
176
+ "id": "uuid-v4",
177
+ "type": "task.created",
178
+ "timestamp": "2024-01-15T10:30:00.000Z",
179
+ "data": {},
180
+ "synced": false
181
+ }
182
+ ],
183
+ "lastSync": "2024-01-15T10:30:00.000Z"
184
+ }
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Formatting Rules (MANDATORY)
190
+
191
+ All agents MUST follow these rules for cross-agent compatibility:
192
+
193
+ | Rule | Value |
194
+ |------|-------|
195
+ | JSON indentation | 2 spaces |
196
+ | Trailing commas | NEVER |
197
+ | Key ordering | Logical (as shown in schemas above) |
198
+ | Timestamps | ISO-8601 with milliseconds (`.000Z`) |
199
+ | UUIDs | v4 format (lowercase) |
200
+ | Line endings | LF (not CRLF) |
201
+ | File encoding | UTF-8 without BOM |
202
+ | Empty objects | `{}` |
203
+ | Empty arrays | `[]` |
204
+ | Null values | `null` (lowercase) |
205
+
206
+ ### Timestamp Generation
207
+
208
+ ```bash
209
+ # ALWAYS use dynamic timestamps, NEVER hardcode
210
+ bun -e "console.log(new Date().toISOString())" 2>/dev/null || node -e "console.log(new Date().toISOString())"
211
+ ```
212
+
213
+ ### UUID Generation
214
+
215
+ ```bash
216
+ # ALWAYS generate fresh UUIDs
217
+ bun -e "console.log(crypto.randomUUID())" 2>/dev/null || node -e "console.log(require('crypto').randomUUID())"
218
+ ```
219
+
220
+ ---
221
+
222
+ ## Write Rules (CRITICAL)
223
+
224
+ ### Direct Writes Only
225
+
226
+ **NEVER use temporary files** - Write directly to final destination:
227
+
228
+ ```
229
+ WRONG: Create `.tmp/file.json`, then `mv` to final path
230
+ CORRECT: Use prjctDb.setDoc() or StorageManager.write() to write to SQLite
231
+ ```
232
+
233
+ ### Atomic Updates
234
+
235
+ All writes go through SQLite which handles atomicity via WAL mode:
236
+ ```typescript
237
+ // StorageManager pattern (preferred):
238
+ await stateStorage.update(projectId, (state) => {
239
+ state.field = newValue
240
+ return state
241
+ })
242
+
243
+ // Direct kv_store pattern:
244
+ prjctDb.setDoc(projectId, 'key', data)
245
+ ```
246
+
247
+ ### NEVER Do These
248
+
249
+ - Read or write JSON files in `storage/` or `memory/` directories
250
+ - Use `.tmp/` directories
251
+ - Use `mv` or `rename` operations for storage files
252
+ - Create backup files like `*.bak` or `*.old`
253
+ - Bypass `prjct` CLI to write directly to `prjct.db`
254
+
255
+ ---
256
+
257
+ ## Cross-Agent Compatibility
258
+
259
+ ### Why This Matters
260
+
261
+ 1. **User freedom**: Switch between Claude and Gemini freely
262
+ 2. **Remote sync**: Storage will sync to prjct.app backend
263
+ 3. **Single truth**: Both agents produce identical output
264
+
265
+ ### Verification Test
266
+
267
+ ```bash
268
+ # Start task with Claude
269
+ p. task "add feature X"
270
+
271
+ # Switch to Gemini, continue
272
+ p. done # Should work seamlessly
273
+
274
+ # Switch back to Claude
275
+ p. ship # Should read Gemini's changes correctly
276
+
277
+ # All agents read from the same prjct.db via CLI commands
278
+ prjct status # Works from any agent
279
+ ```
280
+
281
+ ### Remote Sync Flow
282
+
283
+ ```
284
+ Local Storage: prjct.db (Claude/Gemini)
285
+
286
+ sync/pending.json (events queue)
287
+
288
+ prjct.app API
289
+
290
+ Global Remote Storage
291
+
292
+ Any device, any agent
293
+ ```
294
+
295
+ ---
296
+
297
+ ## MCP Issue Tracker Strategy
298
+
299
+ Issue tracker integrations are MCP-only.
300
+
301
+ ### Rules
302
+
303
+ - `prjct` CLI does not call Linear/Jira SDKs or REST APIs directly.
304
+ - Issue operations (`sync`, `list`, `get`, `start`, `done`, `update`, etc.) are delegated to MCP tools in the AI client.
305
+ - `p. sync` refreshes project context and agent artifacts, not issue tracker payloads.
306
+ - Local storage keeps task linkage metadata (for example `linearId`) and project workflow state in SQLite.
307
+
308
+ ### Setup
309
+
310
+ - `prjct linear setup`
311
+ - `prjct jira setup`
312
+
313
+ ### Operational Model
314
+
315
+ ```
316
+ AI client MCP tools <-> Linear/Jira
317
+ |
318
+ v
319
+ prjct workflow state (prjct.db)
320
+ ```
321
+
322
+ The CLI remains the source of truth for local project/task state.
323
+ Issue-system mutations happen through MCP operations in the active AI session.
324
+
325
+ ---
326
+
327
+ **Version**: 2.0.0
328
+ **Last Updated**: 2026-02-10
@@ -0,0 +1,22 @@
1
+ ---
2
+ trigger: always_on
3
+ description: "prjct - Context layer for AI coding agents"
4
+ ---
5
+
6
+ <!-- prjct:start - DO NOT REMOVE THIS MARKER -->
7
+ # p/ — Context layer for AI agents
8
+
9
+ Workflows: `/sync` `/task` `/done` `/ship` `/pause` `/resume` `/bug` `/dash` `/next`
10
+
11
+ When user triggers a workflow, execute the corresponding prjct CLI command with `--md` flag for context.
12
+
13
+ Rules:
14
+ - Never commit to main/master directly
15
+ - All commits include footer: `Generated with [p/](https://www.prjct.app/)`
16
+ - Path resolution: `.prjct/prjct.config.json` → `~/.prjct-cli/projects/{projectId}`
17
+ - All storage through `prjct` CLI (SQLite internally)
18
+ - For code tasks, always start with `/task` and follow Context Contract from CLI output
19
+ - Context7 MCP is mandatory for framework/library API decisions
20
+
21
+ **Auto-managed by prjct-cli** | https://prjct.app
22
+ <!-- prjct:end - DO NOT REMOVE THIS MARKER -->
@@ -0,0 +1 @@
1
+ <!-- Module deprecated: content moved to CLI --md output -->
@@ -0,0 +1,16 @@
1
+ # p/ — Context layer for AI agents
2
+
3
+ Commands: `p. sync` `p. task` `p. done` `p. ship` `p. pause` `p. resume` `p. bug` `p. dash` `p. next`
4
+
5
+ When user types `p. <command>`, READ the template from `~/.claude/commands/p/{command}.md` and execute step by step.
6
+
7
+ Rules:
8
+ - Never commit to main/master directly
9
+ - All commits include footer: `Generated with [p/](https://www.prjct.app/)`
10
+ - Path resolution: `.prjct/prjct.config.json` → `~/.prjct-cli/projects/{projectId}`
11
+ - All storage through `prjct` CLI (SQLite internally)
12
+ - For code tasks, always start with `p. task` and follow Context Contract from CLI output
13
+ - Context7 MCP is mandatory for framework/library API decisions
14
+ - Templates are MANDATORY workflows — follow every step
15
+
16
+ **Auto-managed by prjct-cli** | https://prjct.app
@@ -0,0 +1 @@
1
+ <!-- Module deprecated: content moved to CLI --md output -->
@@ -0,0 +1 @@
1
+ <!-- Module deprecated: content moved to CLI --md output -->
@@ -0,0 +1 @@
1
+ <!-- Module deprecated: content moved to CLI --md output -->
@@ -0,0 +1,12 @@
1
+ {
2
+ "description": "Configuration for modular CLAUDE.md composition",
3
+ "version": "2.0.0",
4
+ "profiles": {
5
+ "default": {
6
+ "description": "Ultra-thin — CLI provides context via --md flag",
7
+ "modules": ["CLAUDE-core.md"]
8
+ }
9
+ },
10
+ "default": "default",
11
+ "commandProfiles": {}
12
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "mcpServers": {
3
+ "context7": {
4
+ "command": "npx",
5
+ "args": ["-y", "@upstash/context7-mcp@latest"],
6
+ "description": "Library documentation lookup"
7
+ },
8
+ "linear": {
9
+ "command": "npx",
10
+ "args": ["-y", "mcp-remote", "https://mcp.linear.app/mcp"],
11
+ "description": "Linear MCP server (OAuth)"
12
+ },
13
+ "jira": {
14
+ "command": "npx",
15
+ "args": ["-y", "mcp-remote", "https://mcp.atlassian.com/v1/mcp"],
16
+ "description": "Atlassian MCP server for Jira (OAuth)"
17
+ }
18
+ },
19
+ "usage": {
20
+ "context7": {
21
+ "when": ["Looking up library/framework documentation", "Need current API docs"],
22
+ "tools": ["resolve-library-id", "get-library-docs"]
23
+ }
24
+ },
25
+ "integrations": {
26
+ "linear": "MCP - Run `prjct linear setup`",
27
+ "jira": "MCP - Run `prjct jira setup`"
28
+ }
29
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ // Default permissions preset for prjct-cli
3
+ // Safe defaults with protection against destructive operations
4
+
5
+ "bash": {
6
+ // Safe read-only commands - always allowed
7
+ "git status*": "allow",
8
+ "git log*": "allow",
9
+ "git diff*": "allow",
10
+ "git branch*": "allow",
11
+ "ls*": "allow",
12
+ "pwd": "allow",
13
+ "cat*": "allow",
14
+ "head*": "allow",
15
+ "tail*": "allow",
16
+ "grep*": "allow",
17
+ "find*": "allow",
18
+ "which*": "allow",
19
+ "node -e*": "allow",
20
+ "bun -e*": "allow",
21
+ "npm list*": "allow",
22
+ "npx tsc --noEmit*": "allow",
23
+
24
+ // Potentially destructive - ask first
25
+ "rm -rf*": "ask",
26
+ "rm -r*": "ask",
27
+ "git push*": "ask",
28
+ "git reset --hard*": "ask",
29
+ "npm publish*": "ask",
30
+ "chmod*": "ask",
31
+
32
+ // Always denied - too dangerous
33
+ "rm -rf /*": "deny",
34
+ "rm -rf ~/*": "deny",
35
+ "sudo*": "deny"
36
+ },
37
+
38
+ "files": {
39
+ "read": {
40
+ "**/*": "allow"
41
+ },
42
+ "write": {
43
+ "**/*": "allow"
44
+ },
45
+ "delete": {
46
+ "**/*": "ask"
47
+ }
48
+ },
49
+
50
+ "web": {
51
+ "enabled": true
52
+ },
53
+
54
+ "doomLoop": {
55
+ "enabled": true,
56
+ "maxRetries": 3
57
+ },
58
+
59
+ "externalDirectories": "ask"
60
+ }