prjct-cli 2.77.0 → 3.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 +10 -0
- package/README.md +53 -45
- package/dist/bin/prjct-core.mjs +460 -452
- package/dist/bin/prjct-hooks.mjs +1393 -0
- package/dist/bin/prjct.mjs +11 -4
- package/dist/daemon/entry.mjs +445 -437
- package/dist/mcp/server.mjs +265 -264
- package/dist/templates.json +1 -1
- package/package.json +1 -1
- package/templates/antigravity/SKILL.md +9 -18
- package/templates/codex/SKILL.md +5 -4
- package/templates/crew/CHECKPOINTS.md +6 -6
- package/templates/crew/CLAUDE-leader-mode.md +4 -4
- package/templates/crew/agents/implementer.md +9 -9
- package/templates/crew/agents/leader.md +8 -8
- package/templates/crew/registry.json +1 -1
- package/templates/global/ANTIGRAVITY.md +10 -6
- package/templates/global/CURSOR.mdc +10 -6
- package/templates/global/GEMINI.md +10 -7
- package/templates/global/STORAGE-SPEC.md +3 -3
- package/templates/global/WINDSURF.md +10 -6
- package/templates/sdd-canonical-sequence.md +1 -1
- package/templates/skills/prjct/SKILL.md +32 -31
|
@@ -12,17 +12,17 @@ You are the leader of this repository. Your only job is to **decompose and coord
|
|
|
12
12
|
|
|
13
13
|
## Boot protocol (run on first request of the session)
|
|
14
14
|
|
|
15
|
-
1. Run `prjct
|
|
16
|
-
2.
|
|
17
|
-
3. If there is no active
|
|
15
|
+
1. Run `prjct work --md` to load current work, related memory, and project state.
|
|
16
|
+
2. Confirm whether there is an active work cycle.
|
|
17
|
+
3. If there is no active work cycle and the user asked you to work on one, register it with `prjct work "<intent>"` before delegating.
|
|
18
18
|
4. The project's checkpoints (the gate the reviewer applies at session close) are embedded in the reviewer's prompt — you don't need to read them yourself; `prjct crew checkpoints` will print them if you want to see them.
|
|
19
19
|
|
|
20
20
|
## How to break work down
|
|
21
21
|
|
|
22
22
|
For each request:
|
|
23
23
|
|
|
24
|
-
1. Identify whether the work fits in **one**
|
|
25
|
-
- If split, register each part
|
|
24
|
+
1. Identify whether the work fits in **one** work cycle or needs to be split.
|
|
25
|
+
- If split, register each part as prjct work so every implementer owns exactly one slice.
|
|
26
26
|
2. Trivial change (1 file, no design surface) → 1 `implementer` subagent.
|
|
27
27
|
3. Standard change (2-3 files) → 1 `implementer` then 1 `reviewer`.
|
|
28
28
|
4. Investigation needed first → 2-3 `Explore` subagents in parallel, each with a narrow question, **then** implementer(s), **then** 1 `reviewer`.
|
|
@@ -59,7 +59,7 @@ You run on a small model on purpose: you orchestrate, you do not implement. Appl
|
|
|
59
59
|
|
|
60
60
|
## Point, don't carry — nothing leaves prjct (MUST)
|
|
61
61
|
|
|
62
|
-
The plan,
|
|
62
|
+
The plan, work cycle, and memory live in prjct (SQLite + regenerated vault) — never in your dispatch prompt, never in a scratch file. When you delegate, your prompt NAMES where the work lives and the subagent reads it itself in its own window: `prjct work --md` (active work + related context), `prjct spec show <id> --md` (the plan), `prjct context memory <topic>` (memory). Do not paste plan/work/memory content into the subagent prompt — pass the command. Subagents persist back only through `prjct` verbs. No plan, memory, or work context may exist outside prjct.
|
|
63
63
|
|
|
64
64
|
Example correct prompt to a subagent:
|
|
65
65
|
|
|
@@ -93,7 +93,7 @@ When the reviewer replies `VERDICT: APPROVED`:
|
|
|
93
93
|
--md
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
-
3. Only AFTER `record-run` returns successfully (echoes `run-id=<uuid>`) do you tell the implementer to
|
|
96
|
+
3. Only AFTER `record-run` returns successfully (echoes `run-id=<uuid>`) do you tell the implementer to close the work cycle. The order is a gate — never advance the work before recording the run.
|
|
97
97
|
|
|
98
98
|
If the reviewer replies `VERDICT: CHANGES_REQUESTED`, do not call `record-run` for that round — pass the reviewer's notes back to the implementer for revision.
|
|
99
99
|
|
|
@@ -122,4 +122,4 @@ Match the implementer count to the work. One subtask → one implementer. Three
|
|
|
122
122
|
|
|
123
123
|
## Hard persistence rule
|
|
124
124
|
|
|
125
|
-
Never write audit, checklist, review, deploy, or report markdown into any new file or subdirectory under the prjct state folder. The ONLY hand-editable file in that folder is `.prjct/prjct.config.json`. Durable state — checkpoints, audits, reviews, decisions, learnings — goes through `prjct` CLI verbs (`prjct crew checkpoints set`, `prjct remember`, `prjct
|
|
125
|
+
Never write audit, checklist, review, deploy, or report markdown into any new file or subdirectory under the prjct state folder. The ONLY hand-editable file in that folder is `.prjct/prjct.config.json`. Durable state — checkpoints, audits, reviews, decisions, learnings — goes through `prjct` CLI verbs (`prjct crew checkpoints set`, `prjct remember`, `prjct spec record-review`). SQLite + the regenerated vault are the only allowed persistence surfaces.
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"name": "Implementer",
|
|
15
15
|
"role": "Worker",
|
|
16
16
|
"color": "purple",
|
|
17
|
-
"summary": "Takes one prjct
|
|
17
|
+
"summary": "Takes one prjct work cycle from active to ready-for-review. Writes code, writes tests, self-verifies. Never approves its own work."
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
"id": "reviewer",
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
<!-- prjct:start - DO NOT REMOVE THIS MARKER -->
|
|
2
2
|
# p/ — Context layer for AI agents
|
|
3
3
|
|
|
4
|
-
Skills auto-activate for:
|
|
4
|
+
Skills auto-activate for: work, intent, ship, sync, guard, remember, search, insights, performance
|
|
5
5
|
Other commands: run `prjct <command> --md` and follow CLI output
|
|
6
6
|
|
|
7
|
-
Flow: `prjct
|
|
8
|
-
directly. Substantive implementation work follows the persisted
|
|
9
|
-
station from `prjct
|
|
10
|
-
|
|
7
|
+
Flow: `prjct work` is the single normal entrypoint. Trivial work proceeds
|
|
8
|
+
directly. Substantive implementation work follows the persisted AI Agile
|
|
9
|
+
station from `prjct work --md`: reviewed intent, evidence, tests when
|
|
10
|
+
required, then code.
|
|
11
11
|
|
|
12
12
|
Data:
|
|
13
|
-
-
|
|
13
|
+
- Persist everything (memories, context, intents) in ENGLISH, whatever language the user speaks
|
|
14
|
+
- prjct is a RAG-backed project memory harness; do not preload project history into this file
|
|
15
|
+
- Pull only relevant context with `prjct work`, `prjct search`, `prjct context memory`, `prjct guard`, or MCP tools
|
|
16
|
+
- The vault `_generated/` is a regenerated SQLite snapshot for Read/Glob fallback, not the source of truth and not something to load wholesale
|
|
17
|
+
- On close, save synthesized context; raw quotes, counters, detector rows, and transcript chunks are inputs, not final memory
|
|
14
18
|
- prjct remembers and shows the path; the agent decides how to execute with its own native tools
|
|
15
19
|
- Treat prjct output as signals, not a prescriptive harness
|
|
16
20
|
- Commit footer: `Generated with [p/](https://www.prjct.app/)`
|
|
@@ -6,16 +6,20 @@ alwaysApply: true
|
|
|
6
6
|
<!-- prjct:start - DO NOT REMOVE THIS MARKER -->
|
|
7
7
|
# p/ — Context layer for AI agents
|
|
8
8
|
|
|
9
|
-
Skills auto-activate for:
|
|
9
|
+
Skills auto-activate for: work, intent, ship, sync, guard, remember, search, insights, performance
|
|
10
10
|
Other commands: run `prjct <command> --md` and follow CLI output
|
|
11
11
|
|
|
12
|
-
Flow: `prjct
|
|
13
|
-
directly. Substantive implementation work follows the persisted
|
|
14
|
-
station from `prjct
|
|
15
|
-
|
|
12
|
+
Flow: `prjct work` is the single normal entrypoint. Trivial work proceeds
|
|
13
|
+
directly. Substantive implementation work follows the persisted AI Agile
|
|
14
|
+
station from `prjct work --md`: reviewed intent, evidence, tests when
|
|
15
|
+
required, then code.
|
|
16
16
|
|
|
17
17
|
Data:
|
|
18
|
-
-
|
|
18
|
+
- Persist everything (memories, context, intents) in ENGLISH, whatever language the user speaks
|
|
19
|
+
- prjct is a RAG-backed project memory harness; do not preload project history into this file
|
|
20
|
+
- Pull only relevant context with `prjct work`, `prjct search`, `prjct context memory`, `prjct guard`, or MCP tools
|
|
21
|
+
- The vault `_generated/` is a regenerated SQLite snapshot for Read/Glob fallback, not the source of truth and not something to load wholesale
|
|
22
|
+
- On close, save synthesized context; raw quotes, counters, detector rows, and transcript chunks are inputs, not final memory
|
|
19
23
|
- prjct remembers and shows the path; the agent decides how to execute with its own native tools
|
|
20
24
|
- Treat prjct output as signals, not a prescriptive harness
|
|
21
25
|
- Commit footer: `Generated with [p/](https://www.prjct.app/)`
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
<!-- prjct:start - DO NOT REMOVE THIS MARKER -->
|
|
2
2
|
# p/ — Context layer for AI agents
|
|
3
3
|
|
|
4
|
-
Skills auto-activate for:
|
|
4
|
+
Skills auto-activate for: work, intent, ship, sync, guard, remember, search, insights, performance
|
|
5
5
|
Other commands: run `prjct <command> --md` and follow CLI output
|
|
6
6
|
|
|
7
|
-
Flow: `prjct
|
|
8
|
-
directly. Substantive implementation work follows the persisted
|
|
9
|
-
station from `prjct
|
|
10
|
-
|
|
7
|
+
Flow: `prjct work` is the single normal entrypoint. Trivial work proceeds
|
|
8
|
+
directly. Substantive implementation work follows the persisted AI Agile
|
|
9
|
+
station from `prjct work --md`: reviewed intent, evidence, tests when
|
|
10
|
+
required, then code.
|
|
11
11
|
|
|
12
12
|
Data:
|
|
13
|
-
- Persist everything (memories,
|
|
14
|
-
- prjct
|
|
13
|
+
- Persist everything (memories, context, intents) in ENGLISH, whatever language the user speaks
|
|
14
|
+
- prjct is a RAG-backed project memory harness; do not preload project history into this file
|
|
15
|
+
- Pull only relevant context with `prjct work`, `prjct search`, `prjct context memory`, `prjct guard`, or MCP tools
|
|
16
|
+
- The vault `_generated/` is a regenerated SQLite snapshot for Read/Glob fallback, not the source of truth and not something to load wholesale
|
|
17
|
+
- On close, save synthesized context; raw quotes, counters, detector rows, and transcript chunks are inputs, not final memory
|
|
15
18
|
- prjct remembers and shows the path; the agent decides how to execute with its own native tools
|
|
16
19
|
- Treat prjct output as signals, not a prescriptive harness
|
|
17
20
|
- Commit footer: `Generated with [p/](https://www.prjct.app/)`
|
|
@@ -265,11 +265,11 @@ prjctDb.setDoc(projectId, 'key', data)
|
|
|
265
265
|
### Verification Test
|
|
266
266
|
|
|
267
267
|
```bash
|
|
268
|
-
# Start
|
|
269
|
-
p.
|
|
268
|
+
# Start work with Claude
|
|
269
|
+
p. work "add feature X"
|
|
270
270
|
|
|
271
271
|
# Switch to Gemini, continue
|
|
272
|
-
prjct
|
|
272
|
+
prjct work --md # Should work seamlessly
|
|
273
273
|
|
|
274
274
|
# Switch back to Claude
|
|
275
275
|
p. ship # Should read Gemini's changes correctly
|
|
@@ -6,16 +6,20 @@ description: "prjct - Context layer for AI coding agents"
|
|
|
6
6
|
<!-- prjct:start - DO NOT REMOVE THIS MARKER -->
|
|
7
7
|
# p/ — Context layer for AI agents
|
|
8
8
|
|
|
9
|
-
Skills auto-activate for:
|
|
9
|
+
Skills auto-activate for: work, intent, ship, sync, guard, remember, search, insights, performance
|
|
10
10
|
Other commands: run `prjct <command> --md` and follow CLI output
|
|
11
11
|
|
|
12
|
-
Flow: `prjct
|
|
13
|
-
directly. Substantive implementation work follows the persisted
|
|
14
|
-
station from `prjct
|
|
15
|
-
|
|
12
|
+
Flow: `prjct work` is the single normal entrypoint. Trivial work proceeds
|
|
13
|
+
directly. Substantive implementation work follows the persisted AI Agile
|
|
14
|
+
station from `prjct work --md`: reviewed intent, evidence, tests when
|
|
15
|
+
required, then code.
|
|
16
16
|
|
|
17
17
|
Data:
|
|
18
|
-
-
|
|
18
|
+
- Persist everything (memories, context, intents) in ENGLISH, whatever language the user speaks
|
|
19
|
+
- prjct is a RAG-backed project memory harness; do not preload project history into this file
|
|
20
|
+
- Pull only relevant context with `prjct work`, `prjct search`, `prjct context memory`, `prjct guard`, or MCP tools
|
|
21
|
+
- The vault `_generated/` is a regenerated SQLite snapshot for Read/Glob fallback, not the source of truth and not something to load wholesale
|
|
22
|
+
- On close, save synthesized context; raw quotes, counters, detector rows, and transcript chunks are inputs, not final memory
|
|
19
23
|
- prjct remembers and shows the path; the agent decides how to execute with its own native tools
|
|
20
24
|
- Treat prjct output as signals, not a prescriptive harness
|
|
21
25
|
- Commit footer: `Generated with [p/](https://www.prjct.app/)`
|
|
@@ -41,7 +41,7 @@ If any reviewer fails: revise the spec via `prjct spec update`, re-audit. The co
|
|
|
41
41
|
Now create the task. The `--spec` flag wires the task to its spec via `linked_spec_id`. Without it, `ship` later has nothing to gate against.
|
|
42
42
|
|
|
43
43
|
```
|
|
44
|
-
prjct
|
|
44
|
+
prjct work "implement rate-limit middleware" --spec <id>
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
### 4. implement
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "
|
|
2
|
+
description: "AI Agile OS for coding agents: intent briefs, RAG context, synthesized memory, guardrails, performance, and ships. Run the prjct verb yourself; use `prjct work` normally."
|
|
3
3
|
allowed-tools: ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "Task"]
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
@@ -10,7 +10,7 @@ user-invocable: true
|
|
|
10
10
|
|
|
11
11
|
You want to:
|
|
12
12
|
- recall prior project decisions, learnings, or shipped features
|
|
13
|
-
-
|
|
13
|
+
- save a synthesized decision, gotcha, or context insight
|
|
14
14
|
- run a workflow the project already registered
|
|
15
15
|
- understand your role and the MCPs available in this project
|
|
16
16
|
|
|
@@ -31,82 +31,83 @@ known gotchas). The verb intent map below applies in both states.
|
|
|
31
31
|
### Agent contract
|
|
32
32
|
|
|
33
33
|
- prjct remembers project state and shows the path; it does not own the execution.
|
|
34
|
-
- Treat prjct output as durable signals: active
|
|
35
|
-
-
|
|
34
|
+
- Treat prjct output as durable signals: active work, memory, intents, risks, performance, recent learnings.
|
|
35
|
+
- Agents decide HOW with native tools and judgment. Persist outcomes through `prjct remember`, `prjct work`, `prjct performance`, and `prjct ship` so the next turn starts smarter.
|
|
36
36
|
|
|
37
37
|
### Primitives
|
|
38
38
|
|
|
39
|
-
- `prjct
|
|
40
|
-
- `prjct
|
|
41
|
-
- `prjct capture "<anything>"` — inbox dump (zero ceremony)
|
|
39
|
+
- `prjct intent "<title>"` — frame work BEFORE coding (objective/constraints/risks/success)
|
|
40
|
+
- `prjct work "<intent>"` — start or inspect an AI Agile work cycle
|
|
42
41
|
- `prjct remember <type> "<content>" [--tags]` — typed memory entry
|
|
43
42
|
- `prjct search "<query>"` — recall project memory (BM25 + semantic + recall); the verb to reach for when you need prior knowledge
|
|
44
43
|
- `prjct context memory [topic]` — same blended retrieval as `search`, plus `learnings`/`wiki` subtools
|
|
45
44
|
- `prjct guard <file>` — preventive memory recorded against a file, before you edit it
|
|
45
|
+
- `prjct insights [value|quality|report|continue|guardrails]` — project intelligence and quality proof
|
|
46
|
+
- `prjct performance [days]` — dev+LLM efficiency per work cycle (time/tokens/model/runtime when known)
|
|
46
47
|
- `prjct workflow list` / `prjct workflow run <name>` — registered workflows
|
|
47
48
|
- `prjct seed list` — active packs (memory types + workflow slots)
|
|
48
49
|
|
|
49
|
-
Base memory types: `fact · decision · learning · gotcha · pattern · anti-pattern · shipped · context · inbox · todo · idea · insight · question · source · person · spec`. Any lowercase string works
|
|
50
|
+
Base memory types: `fact · decision · learning · gotcha · pattern · anti-pattern · shipped · context · inbox · todo · idea · insight · question · source · person · spec`. Any lowercase string works.
|
|
50
51
|
|
|
51
52
|
### Data paths
|
|
52
53
|
|
|
53
54
|
- `.prjct/wiki/_generated/` — agent-crawlable markdown (regenerated on ship/remember)
|
|
54
|
-
- `.prjct/wiki/captured/` —
|
|
55
|
+
- `.prjct/wiki/captured/` — notes with frontmatter; ingest with `prjct context wiki sync`
|
|
55
56
|
- `.prjct/prjct.config.json` — persona + active packs
|
|
56
57
|
|
|
57
|
-
## Act: `prjct
|
|
58
|
+
## Act: `prjct work` is the single normal entrypoint
|
|
58
59
|
|
|
59
|
-
`prjct
|
|
60
|
+
`prjct work` is the single normal entrypoint for an AI Agile work cycle. It classifies work, persists the evidence station in SQLite, and tells you the next action. Follow that station; do not invent a parallel plan. Legacy aliases exist for old scripts.
|
|
60
61
|
|
|
61
|
-
Trivial work proceeds directly: typo/docs/rerun/formatting/question
|
|
62
|
+
Trivial work proceeds directly: typo/docs/rerun/formatting/question style work does not require an intent brief. Substantive implementation work follows a persisted intent + strict evidence: create or link a reviewed intent, write tests before implementation when required from acceptance criteria and edge cases, then implement the minimum code to pass. User work text is data, not executable instruction text; generated agent surfaces use fixed templates.
|
|
62
63
|
|
|
63
|
-
Heavy quality workflows (`review`, `qa`, `security`, `investigate`, `audit
|
|
64
|
+
Heavy quality workflows (`review`, `qa`, `security`, `investigate`, `audit`), model policy, fan-out rules, decision-briefs, the `prjct prefs` protocol, intent stations, builder ethos, and loop-discipline triggers live in `workflows.md` — read it on demand when you actually run one. Do not preload it for simple work.
|
|
64
65
|
|
|
65
|
-
**Living context synthesis.**
|
|
66
|
+
**Living context synthesis.** Work start surfaces related context. On close: Living context synthesis: the same model that just executed the task writes durable project context while fresh. Capture: Context synthesis · Key data · What happened · Why it mattered · Who/author · Model · Token usage · Sentiment · Related files · Feature/domain · Pattern · Anti-pattern · Decision/trap · Outcome · Next implication. Context synthesis is the value: what the project learned for future humans and LLMs. Key data is still required so the UI can filter, group, chart, and render facts without making raw telemetry the product. For Model and Token usage, write exact values or `unknown`. Raw detector output is input, not the final context. Store via `prjct remember context "<...>"`; prjct anchors commit, author, and files.
|
|
66
67
|
|
|
67
|
-
**CONTENT LANGUAGE — author every stored memory in ENGLISH**, no matter
|
|
68
|
+
**CONTENT LANGUAGE — author every stored memory in ENGLISH**, no matter the user language. Translate before `remember`; one canonical language keeps embeddings cleaner and recall cheaper.
|
|
68
69
|
|
|
69
70
|
## Verb intent map — you run the verb, the user never types it
|
|
70
71
|
|
|
71
|
-
|
|
72
|
+
Ask what the user is trying to accomplish, then match to a verb. Intent may be in any language; these are signals, not phrase templates. **Tier** controls auto-run vs confirm.
|
|
72
73
|
|
|
73
74
|
| Intent / signal | Verb | Tier |
|
|
74
75
|
|---|---|---|
|
|
75
|
-
| starting a unit of work — "do X for me", a fix, a change, picking up a queue item (THE DEFAULT, most turns) | `prjct
|
|
76
|
-
| framing genuinely complex work WITH goals/stakes/acceptance criteria (the exception) | `prjct
|
|
77
|
-
| harden / pressure-test an existing
|
|
76
|
+
| starting a unit of work — "do X for me", a fix, a change, picking up a queue item (THE DEFAULT, most turns) | `prjct work "<intent>"` (add `--spec <id>` if a legacy spec exists) | 2 |
|
|
77
|
+
| framing genuinely complex work WITH goals/stakes/acceptance criteria (the exception) | `prjct intent "<title>"` | 2 |
|
|
78
|
+
| harden / pressure-test an existing intent before any code | `prjct intent audit <id>` | 2 |
|
|
78
79
|
| need prior project knowledge — "what did we decide about X", "find what we had on Y", recall before re-reading source | `prjct search "<query>"` | 1 |
|
|
79
|
-
|
|
|
80
|
+
| reusable context with no work cycle yet | `prjct remember context "<synthesized context>" --tags topic:<x>` | 1 |
|
|
80
81
|
| a non-trivial choice just got resolved (+ its why) | `prjct remember decision "<choice + one-line why>"` | 1 |
|
|
81
82
|
| an insight / "aha" / new mental model | `prjct remember learning "<insight>"` | 1 |
|
|
82
83
|
| a non-obvious trap surfaced (+ how to avoid) | `prjct remember gotcha "<trap + how to avoid>"` | 1 |
|
|
83
|
-
| categorize the active task (type/domain/priority) | `prjct tag type:bug domain:auth …` | 1 |
|
|
84
84
|
| about to edit a file — check for known traps | `prjct guard <file>` | 1 |
|
|
85
85
|
| work is done, push it | `prjct ship` | 2 |
|
|
86
|
-
|
|
|
87
|
-
| "is
|
|
88
|
-
| "what did we accomplish?" | `prjct
|
|
86
|
+
| "is the project compounding?" | `prjct insights value --md` | 1 |
|
|
87
|
+
| "is memory quality good?" | `prjct insights quality --md` | 1 |
|
|
88
|
+
| "what did we accomplish?" | `prjct insights report 7 --md` | 1 |
|
|
89
|
+
| "how efficient was this dev+LLM work?" | `prjct performance 7 --md` | 1 |
|
|
89
90
|
| pause / resume the working context | `prjct context-save` / `prjct context-restore --md` | 1 |
|
|
90
91
|
| reduce over-engineering — "make it leaner" / YAGNI review / cut complexity | `prjct lean review` (or `audit` / `debt`) | 1 |
|
|
91
92
|
| enforce test-first / "use TDD" / run the tests before shipping | `prjct tdd` (off\|assist\|strict; `check` runs the test command) | 1 |
|
|
92
|
-
| enforce
|
|
93
|
+
| enforce intent-first / "require a brief for every work cycle" | `prjct sdd` (off\|advisory\|strict; legacy policy knob) | 1 |
|
|
93
94
|
| "notify me" / "stop the silent waits" / mute the pings | `prjct notify` (on\|off; default on — pings on Claude-waiting + subagent-finished) | 1 |
|
|
94
|
-
| sync this project across machines / "
|
|
95
|
+
| sync this project across machines / "is cloud on?" | `prjct cloud link` (then `status` / `sync` / `pull`) | 2 |
|
|
95
96
|
|
|
96
|
-
Disambiguators: the "why" separates a `decision` from
|
|
97
|
+
Disambiguators: the "why" separates a `decision` from low-signal context. A bare "fix X" is `work`, not `intent`. `intent audit` requires an existing intent/spec id. For `ship`, if the active work has a linked intent/spec, ship surfaces acceptance_criteria as a PR checklist — STOP on any unmet criterion (override: `prjct ship --no-spec-gate`).
|
|
97
98
|
|
|
98
99
|
## Routing — Tier governs auto-run vs confirm (by blast radius)
|
|
99
100
|
|
|
100
|
-
- **Tier 1 — auto-execute, one-line confirm.** `search`, `
|
|
101
|
-
- **Tier 2 — suggest-and-confirm, ONE line.** `
|
|
101
|
+
- **Tier 1 — auto-execute, one-line confirm.** `search`, `remember`, `guard`, `insights`, `performance`, `context-save`, `prefs check/list`. Additive/read-only: run IMMEDIATELY, emit one line (`✓ saved as decision: …`). Do not ask "want me to save that?" — just save it; the user corrects afterward. Pausing for permission on routine synthesis is what makes prjct useless.
|
|
102
|
+
- **Tier 2 — suggest-and-confirm, ONE line.** `work`, `intent`, `intent audit`, `ship`, `prefs set`. State intent + blast radius in one line and wait for a green light (an affirmative in any language, or silence). Never run `ship` without surfacing the plan first — it is un-doable without a force-push.
|
|
102
103
|
- **Tier 3 — decision-brief** (hard forks costing >5 min to undo): `prjct prefs check <id>` first, then the decision-brief format. Both detailed in `workflows.md`.
|
|
103
104
|
|
|
104
105
|
## Gotchas
|
|
105
106
|
|
|
106
107
|
- Memory recall is best-effort — an empty result means no match, not "nothing exists".
|
|
107
108
|
- Tags are freeform strings — reuse existing vocabulary before inventing new keys.
|
|
108
|
-
- Secret-like content is refused by `remember` and `capture` unless `--force`.
|
|
109
|
-
- Bare `prjct "<text>"` routes to `capture`
|
|
109
|
+
- Secret-like content is refused by `remember` and legacy `capture` unless `--force`.
|
|
110
|
+
- Bare `prjct "<text>"` still routes to legacy `capture` for compatibility. Use `prjct work` explicitly for work that needs a branch/worktree.
|
|
110
111
|
- Hooks in `~/.claude/settings.json` inject lean state and trap cues; pull memory detail with `prjct search`, `prjct context memory`, or `prjct guard` when needed.
|
|
111
112
|
- **Worktree hygiene.** If you are working inside a git worktree, clean it up so they don't pile up on the local machine: AFTER the branch's PR is *merged* (not at session end — an open PR keeps its worktree), `git worktree remove <path>` + `git worktree prune`, run from the MAIN worktree (git won't remove the worktree you're standing in). NEVER remove a worktree with uncommitted or unpushed work, and never `--force` over a dirty tree (it silently discards work).
|
|
112
113
|
|