prjct-cli 0.28.0 → 0.28.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +64 -12
- package/CLAUDE.md +48 -22
- package/core/agentic/agent-router.ts +15 -0
- package/core/agentic/command-executor.ts +53 -5
- package/core/agentic/prompt-builder.ts +83 -2
- package/core/agentic/template-loader.ts +107 -32
- package/core/commands/command-data.ts +0 -33
- package/core/commands/commands.ts +4 -12
- package/core/commands/registry.ts +0 -37
- package/core/domain/agent-loader.ts +7 -9
- package/core/domain/context-estimator.ts +15 -15
- package/core/index.ts +0 -2
- package/core/infrastructure/config-manager.ts +25 -4
- package/core/infrastructure/setup.ts +0 -99
- package/core/session/session-log-manager.ts +17 -0
- package/core/types/config.ts +1 -1
- package/core/types/index.ts +0 -2
- package/core/types/integrations.ts +2 -47
- package/core/types/storage.ts +0 -8
- package/core/types/task.ts +0 -4
- package/dist/bin/prjct.mjs +341 -316
- package/package.json +1 -1
- package/templates/agentic/subagent-generation.md +14 -1
- package/templates/commands/cleanup.md +15 -74
- package/templates/commands/init.md +1 -44
- package/templates/commands/ship.md +92 -12
- package/templates/commands/sync.md +25 -10
- package/templates/commands/task.md +41 -0
- package/templates/global/CLAUDE.md +196 -25
- package/templates/mcp-config.json +0 -28
- package/core/integrations/notion/client.ts +0 -413
- package/core/integrations/notion/index.ts +0 -46
- package/core/integrations/notion/setup.ts +0 -235
- package/core/integrations/notion/sync.ts +0 -818
- package/core/integrations/notion/templates.ts +0 -246
- package/core/plugin/builtin/notion.ts +0 -178
- package/templates/commands/feature.md +0 -46
- package/templates/commands/now.md +0 -53
- package/templates/hooks/prjct-session-start.sh +0 -50
- package/templates/skills/notion-push.md +0 -116
- package/templates/skills/notion-setup.md +0 -199
- package/templates/skills/notion-sync.md +0 -290
- package/templates/skills/prjct-done/SKILL.md +0 -97
- package/templates/skills/prjct-ship/SKILL.md +0 -150
- package/templates/skills/prjct-sync/SKILL.md +0 -108
- package/templates/skills/prjct-task/SKILL.md +0 -101
package/package.json
CHANGED
|
@@ -18,16 +18,29 @@ Write sub-agents to: `{globalPath}/agents/` (global storage, NOT local project)
|
|
|
18
18
|
```markdown
|
|
19
19
|
---
|
|
20
20
|
name: agent-name
|
|
21
|
+
agentId: p.agent.{name}
|
|
21
22
|
description: When to use this agent. Include "Use PROACTIVELY" for auto-invocation.
|
|
22
23
|
tools: Read, Write, Glob, Grep, Bash
|
|
23
24
|
model: sonnet
|
|
24
25
|
skills: [skill-name]
|
|
26
|
+
projectId: {projectId}
|
|
27
|
+
projectPath: {projectPath}
|
|
25
28
|
---
|
|
26
29
|
|
|
27
30
|
Agent system prompt here...
|
|
28
31
|
```
|
|
29
32
|
|
|
30
|
-
**
|
|
33
|
+
**Required fields:**
|
|
34
|
+
- `agentId`: Unique identifier for mentions. Format: `p.agent.{name}` (e.g., `p.agent.backend`, `p.agent.frontend`)
|
|
35
|
+
- `skills`: Links the agent to Claude Code skills from claude-plugins.dev
|
|
36
|
+
- `projectId`: Links agent to specific project
|
|
37
|
+
- `projectPath`: Path to project root
|
|
38
|
+
|
|
39
|
+
**Agent ID Convention:**
|
|
40
|
+
- All prjct agents use prefix `p.agent.`
|
|
41
|
+
- The `{name}` is derived from the agent filename without `.md`
|
|
42
|
+
- Examples: `p.agent.backend`, `p.agent.frontend`, `p.agent.workflow`, `p.agent.planner`
|
|
43
|
+
- Users can mention agents in prompts using this ID
|
|
31
44
|
|
|
32
45
|
## Generation Rules
|
|
33
46
|
|
|
@@ -1,83 +1,24 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools: [Read, Edit,
|
|
3
|
-
description: '
|
|
2
|
+
allowed-tools: [Read, Edit, Bash]
|
|
3
|
+
description: 'Code cleanup'
|
|
4
|
+
tool-permissions:
|
|
5
|
+
bash:
|
|
6
|
+
allow: ["git status", "find . -type f", "wc -l"]
|
|
7
|
+
ask: ["rm *", "git clean"]
|
|
8
|
+
deny: ["rm -rf /", "rm -rf ~", "rm -rf .", "git reset --hard"]
|
|
4
9
|
---
|
|
5
10
|
|
|
6
11
|
# /p:cleanup
|
|
7
12
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
- Variables declaradas sin usar
|
|
15
|
-
- Imports no utilizados
|
|
16
|
-
- Exports sin consumidores
|
|
17
|
-
- Código comentado (bloques `// old code...`)
|
|
18
|
-
- Condicionales siempre true/false
|
|
19
|
-
|
|
20
|
-
### 2. Comentarios Inútiles
|
|
21
|
-
- `// TODO` sin contexto útil
|
|
22
|
-
- `// fix this` genéricos
|
|
23
|
-
- Comentarios obvios (`// increment i`)
|
|
24
|
-
- Comentarios desactualizados vs código
|
|
25
|
-
- Console.log de debug olvidados
|
|
26
|
-
|
|
27
|
-
### 3. Documentación
|
|
28
|
-
- Actualizar README si hay cambios estructurales
|
|
29
|
-
- Sincronizar JSDoc/TSDoc con firmas actuales
|
|
30
|
-
- Limpiar docs de funciones eliminadas
|
|
13
|
+
## Types
|
|
14
|
+
- **code**: Remove logs, dead code
|
|
15
|
+
- **imports**: Clean unused
|
|
16
|
+
- **files**: Remove temp/empty
|
|
17
|
+
- **deps**: Find unused
|
|
18
|
+
- **all**: Everything
|
|
31
19
|
|
|
32
20
|
## Flow
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
1. ANALYZE: Escanear codebase con Task(Explore)
|
|
36
|
-
- Buscar dead code patterns
|
|
37
|
-
- Identificar comentarios verbose
|
|
38
|
-
|
|
39
|
-
2. REPORT: Mostrar hallazgos al usuario
|
|
40
|
-
- Listar archivos afectados
|
|
41
|
-
- Mostrar qué se eliminará
|
|
42
|
-
|
|
43
|
-
3. CONFIRM: Pedir confirmación antes de cambios destructivos
|
|
44
|
-
|
|
45
|
-
4. CLEAN: Aplicar limpieza
|
|
46
|
-
- Editar archivos uno por uno
|
|
47
|
-
- Mantener formato/estilo existente
|
|
48
|
-
|
|
49
|
-
5. VALIDATE: Verificar que el código compila/funciona
|
|
50
|
-
- Run build si existe
|
|
51
|
-
- Run tests si existen
|
|
52
|
-
|
|
53
|
-
6. UPDATE DOCS: Si hay cambios significativos
|
|
54
|
-
- Actualizar README
|
|
55
|
-
- Actualizar CHANGELOG si existe
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Comandos
|
|
59
|
-
|
|
60
|
-
| Variante | Acción |
|
|
61
|
-
|----------|--------|
|
|
62
|
-
| `p. cleanup` | Análisis + reporte (sin cambios) |
|
|
63
|
-
| `p. cleanup fix` | Aplicar limpieza con confirmación |
|
|
64
|
-
| `p. cleanup --force` | Aplicar sin confirmación |
|
|
21
|
+
Parse type → Backup → Clean → Validate → Log
|
|
65
22
|
|
|
66
23
|
## Response
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
🧹 Cleanup Analysis
|
|
70
|
-
|
|
71
|
-
Dead Code:
|
|
72
|
-
- {file}: {N} unused functions
|
|
73
|
-
- {file}: {N} unused imports
|
|
74
|
-
|
|
75
|
-
Comments:
|
|
76
|
-
- {file}: {N} debug logs
|
|
77
|
-
- {file}: {N} TODO sin contexto
|
|
78
|
-
|
|
79
|
-
Docs:
|
|
80
|
-
- README.md: {status}
|
|
81
|
-
|
|
82
|
-
Total: {N} issues | Run `p. cleanup fix` to apply
|
|
83
|
-
```
|
|
24
|
+
`🧹 Cleaned: {N} logs, {N} dead code, {N} imports | Freed: {X}MB`
|
|
@@ -136,45 +136,6 @@ WRITE: `.prjct/prjct.config.json`
|
|
|
136
136
|
}
|
|
137
137
|
```
|
|
138
138
|
|
|
139
|
-
## Step: Optional Integrations
|
|
140
|
-
|
|
141
|
-
After core setup, offer optional integrations.
|
|
142
|
-
|
|
143
|
-
### Notion Integration (Optional)
|
|
144
|
-
|
|
145
|
-
Ask: "Would you like to connect with Notion for dashboards and progress tracking?"
|
|
146
|
-
|
|
147
|
-
If yes:
|
|
148
|
-
1. Guide user to create Notion integration at https://www.notion.so/my-integrations
|
|
149
|
-
2. Ask for API token (starts with `ntn_`)
|
|
150
|
-
3. Ask for parent page ID (where to create databases)
|
|
151
|
-
4. Create 4 databases:
|
|
152
|
-
- prjct: Shipped Features
|
|
153
|
-
- prjct: Roadmap
|
|
154
|
-
- prjct: Ideas
|
|
155
|
-
- prjct: Active Tasks
|
|
156
|
-
5. Store config in `project.json`:
|
|
157
|
-
|
|
158
|
-
```json
|
|
159
|
-
{
|
|
160
|
-
"integrations": {
|
|
161
|
-
"notion": {
|
|
162
|
-
"enabled": true,
|
|
163
|
-
"workspaceName": "{workspace}",
|
|
164
|
-
"databases": {
|
|
165
|
-
"shipped": "{dbId}",
|
|
166
|
-
"roadmap": "{dbId}",
|
|
167
|
-
"ideas": "{dbId}",
|
|
168
|
-
"tasks": "{dbId}"
|
|
169
|
-
},
|
|
170
|
-
"syncOn": { "ship": true, "idea": true }
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
If no: Skip and continue (integration can be added later with `/p:notion setup`).
|
|
177
|
-
|
|
178
139
|
## Response
|
|
179
140
|
|
|
180
141
|
```
|
|
@@ -189,13 +150,9 @@ Structure:
|
|
|
189
150
|
├── sync/ # Backend events
|
|
190
151
|
└── agents/ # Specialists
|
|
191
152
|
|
|
192
|
-
Integrations:
|
|
193
|
-
• Notion: {enabled|disabled}
|
|
194
|
-
|
|
195
153
|
Next:
|
|
196
154
|
• /p:sync - Analyze project and generate agents
|
|
197
|
-
• /p:
|
|
198
|
-
• /p:notion setup - Connect Notion (if skipped)
|
|
155
|
+
• /p:task "{first_task}" - Start first task
|
|
199
156
|
• /p:help - See all commands
|
|
200
157
|
```
|
|
201
158
|
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
allowed-tools: [Read, Write, Bash, Glob, Grep, AskUserQuestion]
|
|
3
3
|
description: 'Ship feature with automated PR workflow'
|
|
4
|
+
tool-permissions:
|
|
5
|
+
bash:
|
|
6
|
+
allow: ["git status", "git log", "git diff", "git add", "git commit", "git push", "gh pr create", "gh pr view", "npm test", "npm run", "bun test", "bun run"]
|
|
7
|
+
ask: ["npm publish", "npm version", "git tag"]
|
|
8
|
+
deny: ["git push --force", "git reset --hard", "git clean -fd", "rm -rf"]
|
|
4
9
|
---
|
|
5
10
|
|
|
6
11
|
# /p:ship - Ship Feature
|
|
@@ -214,21 +219,96 @@ IF {issues}.length > 0:
|
|
|
214
219
|
ELSE:
|
|
215
220
|
OUTPUT: "Code review passed. No high-confidence issues found."
|
|
216
221
|
|
|
217
|
-
### Step 5: Version Bump
|
|
218
|
-
READ: `package.json` (or Cargo.toml, pyproject.toml)
|
|
219
|
-
EXTRACT: current version
|
|
222
|
+
### Step 5: Version Bump (REQUIRED)
|
|
220
223
|
|
|
221
|
-
|
|
222
|
-
Determine bump type:
|
|
223
|
-
- "BREAKING" or "major:" → major
|
|
224
|
-
- "feat:" or "feature:" → minor
|
|
225
|
-
- else → patch
|
|
224
|
+
**CRITICAL: Version MUST be bumped before creating PR.**
|
|
226
225
|
|
|
227
|
-
|
|
226
|
+
#### 5.1 Read current version
|
|
227
|
+
READ: `package.json` (or Cargo.toml, pyproject.toml, version.txt)
|
|
228
|
+
EXTRACT: {currentVersion}
|
|
228
229
|
|
|
229
|
-
|
|
230
|
-
BASH: `git log --oneline
|
|
231
|
-
|
|
230
|
+
#### 5.2 Determine bump type from commits
|
|
231
|
+
BASH: `git log --oneline $(git describe --tags --abbrev=0 2>/dev/null || echo "HEAD~20")..HEAD`
|
|
232
|
+
ANALYZE commits:
|
|
233
|
+
- "BREAKING" or "major:" → major bump
|
|
234
|
+
- "feat:" or "feature:" → minor bump
|
|
235
|
+
- else → patch bump
|
|
236
|
+
|
|
237
|
+
SET: {bumpType} = detected type
|
|
238
|
+
SET: {newVersion} = calculated version
|
|
239
|
+
|
|
240
|
+
#### 5.3 Update version file
|
|
241
|
+
UPDATE version in package.json (or equivalent):
|
|
242
|
+
```bash
|
|
243
|
+
# For Node.js projects
|
|
244
|
+
npm version {bumpType} --no-git-tag-version
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
IF version update fails:
|
|
248
|
+
OUTPUT: "❌ Failed to update version. Fix manually and retry."
|
|
249
|
+
STOP
|
|
250
|
+
|
|
251
|
+
OUTPUT: "📦 Version: {currentVersion} → {newVersion}"
|
|
252
|
+
|
|
253
|
+
### Step 6: Update CHANGELOG (REQUIRED)
|
|
254
|
+
|
|
255
|
+
**CRITICAL: CHANGELOG.md MUST be updated before creating PR.**
|
|
256
|
+
|
|
257
|
+
#### 6.1 Check if CHANGELOG exists
|
|
258
|
+
BASH: `test -f CHANGELOG.md && echo "exists" || echo "missing"`
|
|
259
|
+
|
|
260
|
+
IF missing:
|
|
261
|
+
CREATE `CHANGELOG.md` with header:
|
|
262
|
+
```markdown
|
|
263
|
+
# Changelog
|
|
264
|
+
|
|
265
|
+
All notable changes to this project will be documented in this file.
|
|
266
|
+
|
|
267
|
+
## [Unreleased]
|
|
268
|
+
|
|
269
|
+
## [{newVersion}] - {date}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
#### 6.2 Get commits since last tag
|
|
273
|
+
BASH: `git log --oneline --pretty=format:"- %s" $(git describe --tags --abbrev=0 2>/dev/null || echo "HEAD~20")..HEAD`
|
|
274
|
+
SET: {commits} = result
|
|
275
|
+
|
|
276
|
+
#### 6.3 Categorize changes
|
|
277
|
+
PARSE commits and categorize:
|
|
278
|
+
- `feat:` → ### Added
|
|
279
|
+
- `fix:` → ### Fixed
|
|
280
|
+
- `refactor:` → ### Changed
|
|
281
|
+
- `docs:` → ### Documentation
|
|
282
|
+
- `perf:` → ### Performance
|
|
283
|
+
- `BREAKING:` → ### Breaking Changes
|
|
284
|
+
|
|
285
|
+
#### 6.4 Insert changelog entry
|
|
286
|
+
GET date: `date +%Y-%m-%d`
|
|
287
|
+
SET: {today} = result
|
|
288
|
+
|
|
289
|
+
INSERT after `## [Unreleased]` in CHANGELOG.md:
|
|
290
|
+
```markdown
|
|
291
|
+
|
|
292
|
+
## [{newVersion}] - {today}
|
|
293
|
+
|
|
294
|
+
### Added
|
|
295
|
+
{feat commits}
|
|
296
|
+
|
|
297
|
+
### Fixed
|
|
298
|
+
{fix commits}
|
|
299
|
+
|
|
300
|
+
### Changed
|
|
301
|
+
{other commits}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
OUTPUT: "📝 CHANGELOG.md updated for v{newVersion}"
|
|
305
|
+
|
|
306
|
+
#### 6.5 Verify changes are staged
|
|
307
|
+
BASH: `git add package.json CHANGELOG.md`
|
|
308
|
+
|
|
309
|
+
IF no changes staged:
|
|
310
|
+
OUTPUT: "❌ Version or CHANGELOG not updated. Cannot ship."
|
|
311
|
+
STOP
|
|
232
312
|
|
|
233
313
|
### Step 7: Create Pull Request
|
|
234
314
|
|
|
@@ -675,40 +675,48 @@ This template contains:
|
|
|
675
675
|
|
|
676
676
|
### 7.3 Generate Workflow Agents (ALWAYS)
|
|
677
677
|
|
|
678
|
-
These 3 agents are ALWAYS created for every prjct project
|
|
678
|
+
These 3 agents are ALWAYS created for every prjct project.
|
|
679
|
+
|
|
680
|
+
**CRITICAL: Each agent MUST include `agentId` in frontmatter.**
|
|
681
|
+
|
|
682
|
+
The `agentId` format is: `p.agent.{name}` where `{name}` is derived from filename without `.md`.
|
|
679
683
|
|
|
680
684
|
**prjct-workflow.md** - Handles: /p:now, /p:done, /p:next, /p:pause, /p:resume
|
|
681
685
|
READ template: `templates/subagents/workflow/prjct-workflow.md`
|
|
682
686
|
ADAPT with: projectId, projectPath
|
|
687
|
+
ADD to frontmatter: `agentId: p.agent.workflow`
|
|
683
688
|
WRITE to: `{globalPath}/agents/prjct-workflow.md`
|
|
684
689
|
|
|
685
690
|
**prjct-planner.md** - Handles: /p:feature, /p:idea, /p:spec, /p:bug
|
|
686
691
|
READ template: `templates/subagents/workflow/prjct-planner.md`
|
|
687
692
|
ADAPT with: projectId, projectPath
|
|
693
|
+
ADD to frontmatter: `agentId: p.agent.planner`
|
|
688
694
|
WRITE to: `{globalPath}/agents/prjct-planner.md`
|
|
689
695
|
|
|
690
696
|
**prjct-shipper.md** - Handles: /p:ship
|
|
691
697
|
READ template: `templates/subagents/workflow/prjct-shipper.md`
|
|
692
698
|
ADAPT with: projectId, projectPath, detected test/lint commands
|
|
699
|
+
ADD to frontmatter: `agentId: p.agent.shipper`
|
|
693
700
|
WRITE to: `{globalPath}/agents/prjct-shipper.md`
|
|
694
701
|
|
|
695
702
|
### 7.4 Generate Domain Agents (Based on Stack)
|
|
696
703
|
|
|
697
704
|
Analyze `{techStack}` from Step 3 and generate ONLY relevant domain agents:
|
|
698
705
|
|
|
699
|
-
| If Detected | Generate | Template |
|
|
700
|
-
|
|
701
|
-
| React, Vue, Angular, Svelte, CSS | `frontend.md` | `templates/subagents/domain/frontend.md` |
|
|
702
|
-
| Node.js, Express, Go, Python API | `backend.md` | `templates/subagents/domain/backend.md` |
|
|
703
|
-
| PostgreSQL, MySQL, MongoDB, Prisma | `database.md` | `templates/subagents/domain/database.md` |
|
|
704
|
-
| Docker, Kubernetes, GitHub Actions | `devops.md` | `templates/subagents/domain/devops.md` |
|
|
705
|
-
| Bun test, Jest, Pytest, testing | `testing.md` | `templates/subagents/domain/testing.md` |
|
|
706
|
-
| **{hasFrontendUI} = true** | `uxui.md` | `templates/agentic/agents/uxui.md` |
|
|
706
|
+
| If Detected | Generate | Template | agentId |
|
|
707
|
+
|-------------|----------|----------|---------|
|
|
708
|
+
| React, Vue, Angular, Svelte, CSS | `frontend.md` | `templates/subagents/domain/frontend.md` | `p.agent.frontend` |
|
|
709
|
+
| Node.js, Express, Go, Python API | `backend.md` | `templates/subagents/domain/backend.md` | `p.agent.backend` |
|
|
710
|
+
| PostgreSQL, MySQL, MongoDB, Prisma | `database.md` | `templates/subagents/domain/database.md` | `p.agent.database` |
|
|
711
|
+
| Docker, Kubernetes, GitHub Actions | `devops.md` | `templates/subagents/domain/devops.md` | `p.agent.devops` |
|
|
712
|
+
| Bun test, Jest, Pytest, testing | `testing.md` | `templates/subagents/domain/testing.md` | `p.agent.testing` |
|
|
713
|
+
| **{hasFrontendUI} = true** | `uxui.md` | `templates/agentic/agents/uxui.md` | `p.agent.uxui` |
|
|
707
714
|
|
|
708
715
|
For EACH detected stack:
|
|
709
716
|
1. READ template from `templates/subagents/domain/{name}.md`
|
|
710
717
|
2. ADAPT description with detected frameworks (e.g., "React specialist" not just "frontend")
|
|
711
|
-
3.
|
|
718
|
+
3. ADD to frontmatter: `agentId: p.agent.{name}` (e.g., `p.agent.backend`)
|
|
719
|
+
4. WRITE to `{globalPath}/agents/{name}.md`
|
|
712
720
|
|
|
713
721
|
### 7.5 Generate UX/UI Agent (CRITICAL for Frontend Projects)
|
|
714
722
|
|
|
@@ -990,6 +998,13 @@ IF cloudSync AND no syncError:
|
|
|
990
998
|
└── 🎨 UX/UI: uxui.md (Priority: UX > UI)
|
|
991
999
|
{ENDIF}
|
|
992
1000
|
|
|
1001
|
+
🏷️ Agent Mentions (use in prompts)
|
|
1002
|
+
├── p.agent.workflow, p.agent.planner, p.agent.shipper
|
|
1003
|
+
{IF domainAgents.length > 0}
|
|
1004
|
+
├── {domainAgents.map(a => 'p.agent.' + a).join(', ')}
|
|
1005
|
+
{ENDIF}
|
|
1006
|
+
└── Example: "p.agent.backend help me create an API endpoint"
|
|
1007
|
+
|
|
993
1008
|
📦 Skills ({totalSkills})
|
|
994
1009
|
├── Installed: {skillsInstalled.length ? skillsInstalled.join(', ') : 'none'}
|
|
995
1010
|
├── Verified: {skillsVerified.length ? skillsVerified.join(', ') : 'none'}
|
|
@@ -7,6 +7,47 @@ description: 'Unified task workflow with intelligent classification'
|
|
|
7
7
|
|
|
8
8
|
Start any work with automatic classification and intelligent breakdown.
|
|
9
9
|
|
|
10
|
+
## @ Agent Mentions
|
|
11
|
+
|
|
12
|
+
Invoke specific agents directly in your task using @ notation:
|
|
13
|
+
|
|
14
|
+
| Mention | Agent | Use Case |
|
|
15
|
+
|---------|-------|----------|
|
|
16
|
+
| `@frontend` | frontend.md | UI components, React/Vue |
|
|
17
|
+
| `@backend` | backend.md | APIs, server logic |
|
|
18
|
+
| `@database` | database.md | Schema, queries |
|
|
19
|
+
| `@uxui` | uxui.md | UX patterns, design |
|
|
20
|
+
| `@testing` | testing.md | Tests, coverage |
|
|
21
|
+
| `@devops` | devops.md | CI/CD, Docker |
|
|
22
|
+
|
|
23
|
+
**Examples:**
|
|
24
|
+
- `p. task @frontend add button` - Loads frontend specialist
|
|
25
|
+
- `p. task @frontend @uxui dark mode` - Loads both agents
|
|
26
|
+
- `p. task @backend optimize API` - Loads backend specialist
|
|
27
|
+
|
|
28
|
+
**Note:** If no @ mention, agents are auto-assigned based on task analysis.
|
|
29
|
+
|
|
30
|
+
## Claude Code Subagents
|
|
31
|
+
|
|
32
|
+
Special @ mentions invoke Claude Code's native subagents:
|
|
33
|
+
|
|
34
|
+
| Mention | Subagent | Use Case |
|
|
35
|
+
|---------|----------|----------|
|
|
36
|
+
| `@explore` | Explore | Fast codebase search, find patterns |
|
|
37
|
+
| `@general` | General | Complex multi-step research |
|
|
38
|
+
| `@plan` | Plan | Architecture design, implementation planning |
|
|
39
|
+
|
|
40
|
+
**Examples:**
|
|
41
|
+
- `p. task @explore find all API endpoints`
|
|
42
|
+
- `p. task @general research caching strategies`
|
|
43
|
+
- `p. task @plan design authentication system`
|
|
44
|
+
|
|
45
|
+
**Combined:**
|
|
46
|
+
- `p. task @frontend @explore add button like existing ones`
|
|
47
|
+
→ Loads frontend agent + uses Explore subagent to find similar buttons
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
10
51
|
## Context Variables
|
|
11
52
|
|
|
12
53
|
- `{projectId}`: From `.prjct/prjct.config.json`
|