prjct-cli 1.56.12 → 2.1.0
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 +377 -0
- package/README.md +179 -231
- package/assets/statusline/default-config.json +1 -14
- package/dist/bin/prjct-core.mjs +430 -993
- package/dist/bin/prjct.mjs +1 -1
- package/dist/daemon/entry.mjs +332 -870
- package/dist/mcp/server.mjs +90 -354
- package/dist/templates.json +1 -1
- package/package.json +9 -3
- package/assets/statusline/components/jira.sh +0 -108
- package/assets/statusline/components/linear.sh +0 -74
- package/dist/cli/jira.mjs +0 -38
- package/dist/cli/linear.mjs +0 -38
- package/templates/analysis/analyze.md +0 -84
- package/templates/analysis/patterns.md +0 -60
- package/templates/architect/discovery.md +0 -67
- package/templates/architect/phases.md +0 -59
- package/templates/cursor/commands/bug.md +0 -6
- package/templates/cursor/commands/done.md +0 -4
- package/templates/cursor/commands/pause.md +0 -6
- package/templates/cursor/commands/resume.md +0 -4
- package/templates/cursor/commands/sync.md +0 -4
- package/templates/design/api.md +0 -95
- package/templates/design/architecture.md +0 -77
- package/templates/design/component.md +0 -89
- package/templates/design/database.md +0 -78
- package/templates/design/flow.md +0 -94
- package/templates/windsurf/workflows/bug.md +0 -6
- package/templates/windsurf/workflows/done.md +0 -4
- package/templates/windsurf/workflows/pause.md +0 -6
- package/templates/windsurf/workflows/resume.md +0 -4
- package/templates/windsurf/workflows/sync.md +0 -4
package/README.md
CHANGED
|
@@ -1,328 +1,276 @@
|
|
|
1
1
|
# prjct
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Persona-aware context broker for AI coding agents.**
|
|
4
4
|
|
|
5
5
|
Works with Claude Code, Gemini CLI, OpenAI Codex, Antigravity, Cursor IDE, Windsurf, and more.
|
|
6
6
|
|
|
7
|
-
[](https://www.npmjs.com/package/prjct-cli)
|
|
8
|
+
[]()
|
|
8
9
|
[]()
|
|
9
10
|
[]()
|
|
10
|
-
[]()
|
|
11
11
|
[]()
|
|
12
12
|
[]()
|
|
13
|
-
|
|
13
|
+
|
|
14
|
+
> **v2.x is alpha.** Install with `npm install -g prjct-cli@alpha`. v1.56.x remains on `latest` while the v2 surface stabilizes.
|
|
14
15
|
|
|
15
16
|
## What is prjct?
|
|
16
17
|
|
|
17
|
-
prjct
|
|
18
|
+
prjct is a **context broker**, not a task manager. It declares **who your agent is in this project** (PM, founder, DEV, research…), routes the right MCPs + memory types + workflow slots for that persona, and feeds everything back to the LLM through native hooks — no skills to remember, no prescriptive pipelines.
|
|
19
|
+
|
|
20
|
+
The contract is simple: **prjct exposes the WHAT, the agent decides the HOW.**
|
|
18
21
|
|
|
19
22
|
```
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
Writes code with full context |
|
|
23
|
+
Claude Code / Gemini / Cursor prjct
|
|
24
|
+
| |
|
|
25
|
+
| SessionStart hook fires |
|
|
26
|
+
| -----------------------------------> | reads .prjct/prjct.config.json
|
|
27
|
+
| | resolves persona + memory + MCPs
|
|
28
|
+
| You are <role> for <project>. |
|
|
29
|
+
| MCPs: Linear, PostHog. |
|
|
30
|
+
| Recent insights: … |
|
|
31
|
+
| <----------------------------------- |
|
|
32
|
+
v |
|
|
33
|
+
Writes code / specs / updates |
|
|
34
|
+
with full project context |
|
|
33
35
|
```
|
|
34
36
|
|
|
35
37
|
## Install
|
|
36
38
|
|
|
37
39
|
```bash
|
|
40
|
+
# v2 alpha (recommended for early adopters)
|
|
41
|
+
npm install -g prjct-cli@alpha
|
|
42
|
+
|
|
43
|
+
# v1 stable (backwards-compatible)
|
|
38
44
|
npm install -g prjct-cli
|
|
39
45
|
```
|
|
40
46
|
|
|
41
47
|
## Quick Start
|
|
42
48
|
|
|
43
|
-
### Claude Code / Gemini CLI / OpenAI Codex
|
|
44
|
-
|
|
45
49
|
```bash
|
|
46
|
-
# 1. One-time global setup
|
|
50
|
+
# 1. One-time global setup (installs routers, MCP config, skills)
|
|
47
51
|
prjct start
|
|
48
52
|
|
|
49
|
-
# 2. Initialize your project
|
|
53
|
+
# 2. Initialize your project with a persona + pack
|
|
50
54
|
cd my-project
|
|
51
|
-
prjct init
|
|
55
|
+
prjct init --pack code,daily # DEV persona, default
|
|
56
|
+
prjct init --pack pm,research,daily # PM persona
|
|
57
|
+
prjct init --pack founder,daily # Founder persona
|
|
58
|
+
|
|
59
|
+
# 3. Install Claude Code hooks (7 passive hooks in ~/.claude/settings.json)
|
|
60
|
+
prjct install
|
|
52
61
|
|
|
53
|
-
#
|
|
54
|
-
p. sync # Analyze project
|
|
55
|
-
p. task "add user auth" # Start a task
|
|
56
|
-
p. done # Complete task
|
|
57
|
-
p. ship # Ship with PR
|
|
62
|
+
# 4. Open in your agent and work normally — hooks inject context automatically.
|
|
58
63
|
```
|
|
59
64
|
|
|
60
|
-
###
|
|
65
|
+
### Core verbs
|
|
61
66
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
prjct
|
|
67
|
+
| Verb | What it does |
|
|
68
|
+
|---|---|
|
|
69
|
+
| `prjct capture "<anything>"` | GTD-style universal inbox. Bare `prjct "<text>"` also routes here. |
|
|
70
|
+
| `prjct task "<desc>"` / `prjct task` | Register a task or show the active one. |
|
|
71
|
+
| `prjct tag <k:v>` | Tag the active task (`type:bug`, `domain:auth`, …). |
|
|
72
|
+
| `prjct status <value>` | Inline status change on the active task. |
|
|
73
|
+
| `prjct remember <type> "<content>"` | Persist a memory entry (fact, decision, learning, insight, …). |
|
|
74
|
+
| `prjct ship [name]` | Run the project's `ship` workflow (commit, push, PR, persist shipped). |
|
|
75
|
+
| `prjct workflow run <name>` | Run any registered workflow (`script`, `mcp`, `persona:context` steps). |
|
|
76
|
+
| `prjct seed <add\|list>` | Manage packs (persona, memory types, workflow slots). |
|
|
77
|
+
| `prjct sync` | Sync project state and regenerate skills / wiki. |
|
|
66
78
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
79
|
+
### Inside Claude Code / Gemini CLI
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
p. capture "llamar a Ana re: pricing"
|
|
83
|
+
p. task "add OAuth refresh"
|
|
84
|
+
p. remember decision "we chose JWT + refresh rotation"
|
|
85
|
+
p. ship "auth"
|
|
72
86
|
```
|
|
73
87
|
|
|
74
|
-
|
|
88
|
+
Cursor / Windsurf use the same commands with `/` prefix: `/capture`, `/task`, `/ship`.
|
|
75
89
|
|
|
76
|
-
|
|
90
|
+
## Personas & Packs
|
|
77
91
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
92
|
+
`.prjct/prjct.config.json` declares the persona. Hooks inject it every session.
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"projectId": "…",
|
|
97
|
+
"persona": {
|
|
98
|
+
"role": "PM",
|
|
99
|
+
"focus": "B2B SaaS onboarding optimization",
|
|
100
|
+
"mcps": ["linear", "posthog", "gmail"],
|
|
101
|
+
"packs": ["pm", "research", "daily"]
|
|
102
|
+
}
|
|
103
|
+
}
|
|
81
104
|
```
|
|
82
105
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
| Component | Claude Code | Gemini CLI | OpenAI Codex | Antigravity | Cursor IDE | Windsurf |
|
|
86
|
-
|-----------|-------------|------------|--------------|-------------|------------|----------|
|
|
87
|
-
| Router | `~/.claude/commands/p.md` | `~/.gemini/commands/p.toml` | `~/.codex/skills/prjct/SKILL.md` | Skill | `.cursor/commands/*.md` | `.windsurf/*.md` |
|
|
88
|
-
| Config | `~/.claude/CLAUDE.md` | `~/.gemini/GEMINI.md` | `AGENTS.md` | `~/.gemini/antigravity/skills/prjct/` | `.cursor/rules/prjct.mdc` | `.windsurf/` (YAML) |
|
|
89
|
-
| Storage | `~/.prjct-cli/projects/` | `~/.prjct-cli/projects/` | `~/.prjct-cli/projects/` | `~/.prjct-cli/projects/` | `~/.prjct-cli/projects/` | `~/.prjct-cli/projects/` |
|
|
90
|
-
| Syntax | `p. command` | `p. command` | `p. command` | `p. command` | `/command` | `/command` |
|
|
91
|
-
|
|
92
|
-
All agents share the same SQLite-backed project storage, so you can switch between them freely.
|
|
93
|
-
|
|
94
|
-
## Commands
|
|
95
|
-
|
|
96
|
-
### Core Workflow
|
|
97
|
-
|
|
98
|
-
| Claude/Gemini | Cursor/Windsurf | Description |
|
|
99
|
-
|---------------|-----------------|-------------|
|
|
100
|
-
| `p. sync` | `/sync` | Analyze project, build indexes, generate skills |
|
|
101
|
-
| `p. task "desc"` | `/task "desc"` | Start task with auto-classification |
|
|
102
|
-
| `p. done` | `/done` | Complete current task |
|
|
103
|
-
| `p. ship "name"` | `/ship "name"` | Ship feature with PR + version bump |
|
|
104
|
-
| `p. pause` | `/pause` | Pause current task |
|
|
105
|
-
| `p. resume` | `/resume` | Resume paused task |
|
|
106
|
-
| `p. next` | `/next` | Show priority queue or roadmap |
|
|
107
|
-
| `p. bug "desc"` | `/bug "desc"` | Report and track a bug |
|
|
108
|
-
| `p. idea "desc"` | `/idea "desc"` | Transform idea into technical architecture |
|
|
109
|
-
| `p. spec` | `/spec` | Create detailed spec for complex features |
|
|
110
|
-
| `p. dash` | `/dash` | Unified dashboard (status, progress, roadmap) |
|
|
111
|
-
| `p. suggest` | `/suggest` | Smart recommendations based on project state |
|
|
112
|
-
|
|
113
|
-
### Analysis & Performance
|
|
114
|
-
|
|
115
|
-
| Command | Description |
|
|
116
|
-
|---------|-------------|
|
|
117
|
-
| `p. status` | Check if context is stale |
|
|
118
|
-
| `p. perf` | Performance dashboard (startup, memory, context) |
|
|
119
|
-
| `p. velocity` | Sprint-based velocity with trend detection |
|
|
120
|
-
| `p. tokens <in> <out>` | Record token usage on active task |
|
|
121
|
-
| `p. stats` | Value dashboard (token savings, impact) |
|
|
122
|
-
| `p. sessions` | Show recent sessions across projects |
|
|
123
|
-
| `p. diff` | Diff between draft and sealed analysis |
|
|
124
|
-
| `p. seal` | Seal analysis with commit-hash signature |
|
|
125
|
-
| `p. verify` | Verify integrity (cryptographic or `--semantic`) |
|
|
126
|
-
| `p. rollback` | Rollback to previous sealed analysis |
|
|
127
|
-
|
|
128
|
-
### Advanced
|
|
129
|
-
|
|
130
|
-
| Command | Description |
|
|
131
|
-
|---------|-------------|
|
|
132
|
-
| `p. design` | Design system architecture, APIs, components |
|
|
133
|
-
| `p. enrich "issue"` | Build enrichment context for an issue |
|
|
134
|
-
| `p. workflow` | Configure workflow hooks via natural language |
|
|
135
|
-
| `p. git` | Smart git operations with context |
|
|
136
|
-
| `p. test` | Run tests with auto-fix |
|
|
137
|
-
| `p. undo` / `p. redo` | Snapshot-based undo/redo |
|
|
138
|
-
| `p. recover` | Recover abandoned session with context |
|
|
139
|
-
| `p. linear` | Linear integration via MCP |
|
|
140
|
-
| `p. jira` | Jira integration via MCP |
|
|
141
|
-
| `p. obsidian` | Obsidian vault integration (setup, export, status) |
|
|
142
|
-
|
|
143
|
-
### Parallel Agent Sessions
|
|
144
|
-
|
|
145
|
-
Run multiple AI agents on different tasks simultaneously, each in an isolated git worktree.
|
|
146
|
-
|
|
147
|
-
| Command | Description |
|
|
148
|
-
|---------|-------------|
|
|
149
|
-
| `p. parallel spawn "task"` | Spawn agent in isolated worktree |
|
|
150
|
-
| `p. parallel status` | Show all active agents |
|
|
151
|
-
| `p. parallel join` | Merge completed branches back |
|
|
152
|
-
| `p. worktree create` | Create worktree (auto-copies .env, installs deps) |
|
|
153
|
-
| `p. worktree list` | List active worktrees |
|
|
154
|
-
| `p. worktree remove` | Clean up completed worktrees |
|
|
155
|
-
| `p. conductor init` | Scaffold Conductor.build integration |
|
|
156
|
-
|
|
157
|
-
## CLI Commands
|
|
158
|
-
|
|
159
|
-
Commands you run directly in the terminal (outside your AI agent):
|
|
106
|
+
Five built-in packs (manifests, not bash pipelines):
|
|
160
107
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
prjct hooks # Manage git hooks for auto-sync
|
|
169
|
-
prjct context # Smart context filtering tools
|
|
170
|
-
prjct enrich # Prepare issue enrichment context
|
|
171
|
-
prjct linear # Linear MCP gateway
|
|
172
|
-
prjct jira # Jira MCP gateway
|
|
173
|
-
prjct obsidian setup # Link project to Obsidian vault
|
|
174
|
-
prjct obsidian export # Export board, queue, shipped, roadmap to vault
|
|
175
|
-
prjct obsidian status # Check Obsidian integration status
|
|
176
|
-
prjct login # Authenticate with prjct cloud (opens browser)
|
|
177
|
-
prjct logout # Sign out from prjct cloud
|
|
178
|
-
prjct update # Update CLI system-wide
|
|
179
|
-
prjct stop # Stop the background daemon
|
|
180
|
-
prjct restart # Restart the background daemon
|
|
181
|
-
prjct uninstall # Complete system removal
|
|
182
|
-
prjct --version # Show version + provider status
|
|
183
|
-
prjct --help # Show help
|
|
184
|
-
```
|
|
108
|
+
| Pack | Persona | Memory types enabled | Workflow slots |
|
|
109
|
+
|---|---|---|---|
|
|
110
|
+
| `code` | DEV | `fact`, `decision`, `learning`, `gotcha`, `pattern`, `anti-pattern`, `shipped` | `ship`, `review` |
|
|
111
|
+
| `daily` | — | `inbox`, `todo`, `idea` | `morning`, `clarify`, `review` |
|
|
112
|
+
| `pm` | PM | `decision`, `insight`, `question`, `stakeholder` | `spec`, `triage`, `update` |
|
|
113
|
+
| `founder` | Founder | `goal`, `okr`, `person`, `stakeholder`, `decision` | `ship`, `review` |
|
|
114
|
+
| `research` | Research | `source`, `claim`, `question`, `insight` | `research`, `review` |
|
|
185
115
|
|
|
186
|
-
|
|
116
|
+
Slots ship **empty** — the human or the agent authors the scripts on demand.
|
|
187
117
|
|
|
188
|
-
|
|
118
|
+
## Hooks (v2, opt-in)
|
|
189
119
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
|
193
|
-
|
|
194
|
-
|
|
|
120
|
+
`prjct install` writes 7 passive hooks to `~/.claude/settings.json`. They inject `additionalContext`; none of them block unless a hand-rolled workflow rule says so.
|
|
121
|
+
|
|
122
|
+
| Event | Injects |
|
|
123
|
+
|---|---|
|
|
124
|
+
| `SessionStart` | Persona + active task + last 3 learnings |
|
|
125
|
+
| `UserPromptSubmit` | Topical recall from memory (≤500 chars) |
|
|
126
|
+
| `PreToolUse` (Bash git commit) | Surfaces anti-patterns tagged with touched files |
|
|
127
|
+
| `PostToolUse` (Edit/Write) | Silently annotates `files_touched` on active task |
|
|
128
|
+
| `Stop` | Async prompt: "learned anything reusable?" |
|
|
129
|
+
| `SubagentStart` | Injects persona + memories for fresh-brain subagents |
|
|
130
|
+
| `CwdChanged` | Re-contextualizes on project switch |
|
|
195
131
|
|
|
196
|
-
|
|
132
|
+
`prjct uninstall` cleanly removes them.
|
|
197
133
|
|
|
198
134
|
## MCP Server
|
|
199
135
|
|
|
200
|
-
prjct exposes an MCP server with
|
|
136
|
+
prjct exposes an MCP server with 5 tool groups (was 9 in v1):
|
|
201
137
|
|
|
202
|
-
|
|
|
203
|
-
|
|
204
|
-
| **
|
|
205
|
-
| **
|
|
206
|
-
| **
|
|
207
|
-
| **
|
|
208
|
-
| **
|
|
209
|
-
| **Pattern** | 3 | Pattern extraction and matching |
|
|
210
|
-
| **Review** | 3 | Code review context |
|
|
211
|
-
| **Project** | 4 | Project-level operations |
|
|
212
|
-
| **Obsidian** | 8 | Read, write, search, list, export, import, stats, status |
|
|
138
|
+
| Group | Tools |
|
|
139
|
+
|---|---|
|
|
140
|
+
| **memory** | `prjct_mem_save`, `_list`, `_similar`, `_forget` |
|
|
141
|
+
| **project** | `prjct_patterns`, status, summary |
|
|
142
|
+
| **files** | `prjct_files`, `prjct_recent` |
|
|
143
|
+
| **workflow** | `prjct_workflow_list`, `_run`, `_log` |
|
|
144
|
+
| **code-intel** | `prjct_related`, `_impact`, `_stale` |
|
|
213
145
|
|
|
214
|
-
The
|
|
146
|
+
The broker model: if you already have `linear`, `jira`, `posthog`, `gmail` MCPs wired, prjct **does not duplicate them** — it just tells Claude they're available for the current persona and caches your insights locally.
|
|
215
147
|
|
|
216
|
-
##
|
|
148
|
+
## CLI
|
|
217
149
|
|
|
218
150
|
```bash
|
|
219
|
-
prjct
|
|
151
|
+
prjct start First-time setup wizard
|
|
152
|
+
prjct init [--pack …] Initialize project with persona + packs
|
|
153
|
+
prjct install Install Claude Code hooks
|
|
154
|
+
prjct uninstall Remove hooks / complete uninstall
|
|
155
|
+
prjct sync Sync project state + regenerate wiki
|
|
156
|
+
prjct serve Start web dashboard (port 3478)
|
|
157
|
+
prjct watch Auto-sync on file changes
|
|
158
|
+
prjct doctor Check system health
|
|
159
|
+
prjct hooks Manage git hooks for auto-sync
|
|
160
|
+
prjct context Smart context filtering for agents
|
|
161
|
+
prjct stop / restart Background daemon control
|
|
162
|
+
prjct update Update CLI system-wide
|
|
163
|
+
prjct --version / --help
|
|
220
164
|
```
|
|
221
165
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
- REST API for project state, task queue, ideas, roadmap, shipped features
|
|
225
|
-
- SSE (Server-Sent Events) for real-time updates
|
|
226
|
-
- Status bar endpoint for IDE integration (`/api/status-bar/compact`)
|
|
227
|
-
- Global statistics across all projects
|
|
166
|
+
## Memory
|
|
228
167
|
|
|
229
|
-
|
|
168
|
+
14 built-in types + user-defined lowercase identifiers:
|
|
230
169
|
|
|
231
|
-
|
|
170
|
+
`fact`, `decision`, `learning`, `gotcha`, `pattern`, `anti-pattern`, `shipped`, `inbox`, `todo`, `idea`, `insight`, `question`, `source`, `person` — plus anything you invent (`recipe`, `workout`, `interview`, …).
|
|
232
171
|
|
|
233
172
|
```bash
|
|
234
|
-
prjct
|
|
235
|
-
prjct
|
|
173
|
+
prjct remember decision "we chose SQLite because app is local"
|
|
174
|
+
prjct capture "check why webhook retries on 502"
|
|
175
|
+
prjct memory list --type insight --since 2026-04-01
|
|
176
|
+
prjct memory similar "auth refresh"
|
|
236
177
|
```
|
|
237
178
|
|
|
238
|
-
|
|
239
|
-
- Cross-device project state synchronization
|
|
240
|
-
- Event-sourced bidirectional push/pull
|
|
241
|
-
- Automatic sync on task completion
|
|
179
|
+
Memory is FTS5-backed (SQLite), persona-filtered by default, and regenerated into an Obsidian-compatible wiki at `.prjct/wiki/_generated/` on each `remember` / `ship` / `sync`.
|
|
242
180
|
|
|
243
|
-
##
|
|
181
|
+
## Workflows
|
|
244
182
|
|
|
245
|
-
|
|
183
|
+
Workflow slots declared by packs are **empty scripts**. You (or the agent) fill them:
|
|
246
184
|
|
|
247
185
|
```bash
|
|
248
|
-
prjct
|
|
249
|
-
prjct
|
|
250
|
-
|
|
186
|
+
prjct workflow list # shows `ship (unassigned)`, `review (unassigned)`, …
|
|
187
|
+
prjct workflow edit ship # opens in $EDITOR
|
|
188
|
+
|
|
189
|
+
# Or: ask the agent — "Claude, author me a ship.sh for investor updates"
|
|
190
|
+
# It reads the pack manifest + memory, authors the script, you approve.
|
|
251
191
|
```
|
|
252
192
|
|
|
253
|
-
|
|
254
|
-
- **Kanban board** with Obsidian Kanban plugin (per-project filtered views)
|
|
255
|
-
- **Dataview dashboards** (active sprint, backlog, stats, by project/priority)
|
|
256
|
-
- **Canvas roadmap** with dependency arrows between features
|
|
257
|
-
- **Daily standup notes** with task progress and queue
|
|
258
|
-
- **8 MCP tools** for AI agents to read, write, search, and import vault notes
|
|
259
|
-
- **`_insights.md`** generated by LLM on each `p. sync` (architecture, risks, progress)
|
|
260
|
-
- **Tags** for Graph View coloring (status, priority, labels, project)
|
|
261
|
-
- **Security**: path traversal prevention, extension whitelist, blocked directories
|
|
193
|
+
Three step types beyond plain bash actions:
|
|
262
194
|
|
|
263
|
-
|
|
195
|
+
- `script:<path>` — runs `.prjct/workflows/<path>.sh` with `PRJCT_BRANCH`, `PRJCT_FILES_CHANGED`, `PRJCT_TAGS` in env.
|
|
196
|
+
- `mcp:<server>:<tool>` — calls an MCP tool and passes the result to the next step.
|
|
197
|
+
- `persona:context` — re-injects the persona block mid-workflow.
|
|
264
198
|
|
|
265
|
-
|
|
199
|
+
Declarative `when_expr` filters (`tags:key=value`, `branch~main`, `files:*.ts`) survived the v2 sweep — the bilingual NL parser did not.
|
|
266
200
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
prjct
|
|
270
|
-
prjct linear status # Verify config
|
|
271
|
-
# Then use: p. linear sync|list|get|create|update|start|done|comment
|
|
272
|
-
|
|
273
|
-
# Jira
|
|
274
|
-
prjct jira setup # Configure Jira MCP server
|
|
275
|
-
prjct jira status # Verify config
|
|
276
|
-
# Then use: p. jira sync|list|get|create|update|start|done|transition|comment
|
|
277
|
-
```
|
|
201
|
+
## Code Intelligence
|
|
202
|
+
|
|
203
|
+
`prjct sync` builds three indexes:
|
|
278
204
|
|
|
279
|
-
|
|
205
|
+
| Index | Purpose |
|
|
206
|
+
|---|---|
|
|
207
|
+
| BM25 | Full-text search over names, symbols, comments |
|
|
208
|
+
| Import graph | Forward + reverse dependency edges |
|
|
209
|
+
| Git co-change | Files that change together |
|
|
210
|
+
|
|
211
|
+
These power `prjct_related`, `prjct_impact`, and `prjct_stale` in the MCP.
|
|
212
|
+
|
|
213
|
+
## Web Dashboard
|
|
280
214
|
|
|
281
215
|
```bash
|
|
282
|
-
prjct
|
|
283
|
-
prjct verify --semantic # Semantic: frameworks, languages, file counts match reality
|
|
216
|
+
prjct serve
|
|
284
217
|
```
|
|
285
218
|
|
|
286
|
-
|
|
219
|
+
Hono-based HTTP server on port 3478. REST API for tasks / ideas / roadmap / shipped, SSE for real-time updates, status bar endpoint for IDE integration.
|
|
220
|
+
|
|
221
|
+
## Issue Tracker Integration
|
|
222
|
+
|
|
223
|
+
Bring your own MCP — prjct doesn't duplicate trackers.
|
|
224
|
+
|
|
225
|
+
- **Linear**: configure the official Linear MCP in your agent, declare it in `persona.mcps`.
|
|
226
|
+
- **Jira**: same — use the official Atlassian MCP.
|
|
227
|
+
- The `linear` and `jira` CLI sub-commands are v1 helpers kept for backwards compat; MCP is the v2 path.
|
|
287
228
|
|
|
288
229
|
## Environment Variables
|
|
289
230
|
|
|
290
231
|
| Variable | Default | Description |
|
|
291
|
-
|
|
292
|
-
| `PRJCT_CLI_HOME` | `~/.prjct-cli` | Override global storage
|
|
293
|
-
| `PRJCT_DEBUG` |
|
|
294
|
-
| `
|
|
295
|
-
| `
|
|
232
|
+
|---|---|---|
|
|
233
|
+
| `PRJCT_CLI_HOME` | `~/.prjct-cli` | Override global storage |
|
|
234
|
+
| `PRJCT_DEBUG` | — | Enable debug logging (`1`, `true`, log level) |
|
|
235
|
+
| `PRJCT_NO_DAEMON` | — | Force non-daemon path (debugging) |
|
|
236
|
+
| `DEBUG` | — | Fallback debug flag |
|
|
237
|
+
| `CI` | — | Skips interactive prompts |
|
|
296
238
|
|
|
297
239
|
## Architecture
|
|
298
240
|
|
|
299
241
|
```
|
|
300
242
|
prjct-cli/
|
|
243
|
+
bin/prjct Thin JS shim (daemon-first)
|
|
301
244
|
core/
|
|
302
|
-
commands/
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
mcp/
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
245
|
+
commands/ CLI command handlers
|
|
246
|
+
hooks/ 7 passive Claude Code hook subcommands
|
|
247
|
+
packs/ Pack manifests + pack-manager
|
|
248
|
+
mcp/ MCP server (5 tool groups)
|
|
249
|
+
memory/ projectMemory (v2 unified surface)
|
|
250
|
+
workflow/ Engine + state-machine + when-evaluator
|
|
251
|
+
domain/ BM25, import-graph, git-cochange
|
|
252
|
+
services/ sync, skill-generator, wiki-generator
|
|
253
|
+
storage/ SQLite (one DB per project)
|
|
254
|
+
schemas/ Zod — source of truth
|
|
255
|
+
daemon/ Background daemon (file watching)
|
|
256
|
+
server/ Hono HTTP + SSE
|
|
257
|
+
sync/ Cloud sync client
|
|
258
|
+
templates/
|
|
259
|
+
packs/ JSON pack manifests
|
|
260
|
+
global/ Per-editor router templates
|
|
314
261
|
```
|
|
315
262
|
|
|
316
263
|
## Requirements
|
|
317
264
|
|
|
318
|
-
- Node.js
|
|
319
|
-
- One of: Claude Code, Gemini CLI, OpenAI Codex, Antigravity, Cursor IDE,
|
|
265
|
+
- Node.js 22.22.2+ or Bun 1.0+
|
|
266
|
+
- One of: Claude Code, Gemini CLI, OpenAI Codex, Antigravity, Cursor IDE, Windsurf
|
|
320
267
|
|
|
321
268
|
## Links
|
|
322
269
|
|
|
323
270
|
- [Website](https://prjct.app)
|
|
324
271
|
- [GitHub](https://github.com/jlopezlira/prjct-cli)
|
|
325
272
|
- [npm](https://www.npmjs.com/package/prjct-cli)
|
|
273
|
+
- [Changelog](CHANGELOG.md)
|
|
326
274
|
|
|
327
275
|
## License
|
|
328
276
|
|
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
"theme": "default",
|
|
4
4
|
"cacheTTL": {
|
|
5
5
|
"prjct": 30,
|
|
6
|
-
"git": 5
|
|
7
|
-
"linear": 60,
|
|
8
|
-
"jira": 60
|
|
6
|
+
"git": 5
|
|
9
7
|
},
|
|
10
8
|
"components": {
|
|
11
9
|
"prjct_icon": {
|
|
@@ -17,17 +15,6 @@
|
|
|
17
15
|
"position": 1,
|
|
18
16
|
"maxLength": 25
|
|
19
17
|
},
|
|
20
|
-
"linear": {
|
|
21
|
-
"enabled": true,
|
|
22
|
-
"position": 2,
|
|
23
|
-
"showPriority": true
|
|
24
|
-
},
|
|
25
|
-
"jira": {
|
|
26
|
-
"enabled": false,
|
|
27
|
-
"position": 2,
|
|
28
|
-
"showPriority": true,
|
|
29
|
-
"showStatus": false
|
|
30
|
-
},
|
|
31
18
|
"dir": {
|
|
32
19
|
"enabled": true,
|
|
33
20
|
"position": 3
|