prjct-cli 2.22.1 → 2.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/dist/bin/prjct-core.mjs +247 -246
- package/dist/daemon/entry.mjs +150 -150
- package/dist/mcp/server.mjs +31 -31
- package/dist/templates.json +1 -1
- package/package.json +1 -1
- package/templates/skills/prjct/SKILL.md +16 -16
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "
|
|
2
|
+
description: "Project-memory + spec-driven runtime. TRIAGE FIRST, every turn — is this simple or complex? MOST work is SIMPLE (≈1 file, known cause, bug/config/copy/doc, reversible, or the user says fix/hoy/rápido/directo): go DIRECT — `prjct task` → implement → `qa`/`review` → `ship`. NO spec, NO audit-spec, NO reviewer subagents. Spec is the EXCEPTION, ONLY for genuinely complex / high-stakes work (multi-file + new behavior, ambiguous scope, irreversible, or the user frames goals/acceptance/risks): then `spec` → `audit-spec` → `task --spec` → `ship`. Over-routing simple work through spec+reviewers is THE failure mode (burns time/tokens, zero protection on a one-file fix) — when unsure prefer DIRECT and ask one line; never default to spec. Recognize intent in any language (es/en) and run the verb yourself — never make the user type commands. Routine captures (capture/remember/tag) auto-execute, one-line confirm; destructive verbs (ship, status done) suggest-and-confirm; heavy reviews (audit/review/security/investigate) dispatch parallel subagents ONLY when the diff/scope warrants. Lookup-first: vault before re-reading source."
|
|
3
3
|
allowed-tools: ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "Task"]
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
@@ -46,19 +46,19 @@ Base memory types: `fact · decision · learning · gotcha · pattern · anti-pa
|
|
|
46
46
|
- `.prjct/wiki/captured/` — drop notes with frontmatter, run `prjct context wiki sync` to ingest
|
|
47
47
|
- `.prjct/prjct.config.json` — persona + active packs
|
|
48
48
|
|
|
49
|
-
##
|
|
49
|
+
## TRIAGE FIRST — the gate before ANY verb
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
STOP. Before any verb, one beat: **is this simple or complex?** This gate runs on EVERY turn and is non-negotiable — skipping it (defaulting to spec) is the single worst failure mode: it burns time + tokens + drowns subagents in context for ZERO protection on routine work. Most work is SIMPLE.
|
|
52
52
|
|
|
53
|
-
- **
|
|
54
|
-
- **
|
|
53
|
+
- **SIMPLE → go DIRECT (the default, the common case):** ≈1 file, known root cause, bug/config/copy/doc, reversible, clear scope, OR the user says "fix"/"hoy"/"rápido"/"directo". → `prjct task` → implement → `qa`/`review` → `ship`. **NO spec. NO audit-spec. NO reviewer subagents. No ceremony.** If you are even slightly unsure, this path is the safe default — ask ONE line, do not escalate to spec.
|
|
54
|
+
- **COMPLEX → the EXCEPTION (rare):** ONLY multi-file + new behavior AND ambiguous scope AND real/irreversible stakes, OR the user explicitly frames goals/acceptance/risks. Then — and only then — the six stations:
|
|
55
55
|
|
|
56
56
|
```
|
|
57
57
|
spec ─→ audit-spec ─→ task (--spec <id>) ─→ implement ─→ ship (acceptance gate)
|
|
58
58
|
└─→ remember learning
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
The trap that actually keeps happening: forcing SIMPLE work (a fix, a one-file change, anything the user said "hoy"/"rápido") through spec + audit-spec + parallel reviewers. That is the perf-killer — every action ballooning into multiple specs and subagent dispatches with bloated context. Default to DIRECT; reach for a spec only when the complexity test above is unambiguously met.
|
|
62
62
|
|
|
63
63
|
- **spec** — user describes a feature, fix, initiative *with goals or stakes*. Anything that would be wasted as inbox AND wasted as a free-running task. Forcing questions: goal? eli10? stakes if wrong? acceptance criteria (testable, observable)? what's in scope? what's OUT? risks?
|
|
64
64
|
- **audit-spec** — spec exists, before any code. Dispatch three review subagents in PARALLEL (strategic / architecture / design). Each returns pass|fail + notes. All three pass → spec auto-promotes draft → reviewed → safe to start `task`.
|
|
@@ -75,25 +75,25 @@ The user does NOT type prjct commands. You do. On every turn, ask: "what is the
|
|
|
75
75
|
|
|
76
76
|
These are *signals*, not phrase templates. Read them as descriptions of moments in the user's flow.
|
|
77
77
|
|
|
78
|
-
### `
|
|
78
|
+
### `task` — "I'm starting a piece of work" (THE DEFAULT — try this first)
|
|
79
79
|
|
|
80
|
-
Signals: the user
|
|
80
|
+
Signals: the user is describing a unit of work to execute — a fix, a change, picking up a queue item, "haceme X", "arreglá Y". This is where the VAST MAJORITY of turns land.
|
|
81
81
|
|
|
82
|
-
What to do:
|
|
82
|
+
What to do: this is the DEFAULT path. Triage said simple (the common case) → run `prjct task "<concise description>"` and go straight to implement → `qa`/`review` → `ship`. NO confirmation gate; starting a task is reversible. Escalate to `spec` ONLY if the complexity test is unambiguously met (multi-file + new behavior + real/irreversible stakes, or the user explicitly framed goals/acceptance/risks). If a relevant spec already exists, link it: `prjct task "<desc>" --spec <id>`.
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
### `spec` — "we're framing genuinely complex work BEFORE coding" (the EXCEPTION)
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
Signals: the user describes a feature/initiative WITH goals/stakes attached AND it is genuinely complex (multi-file, new behavior, ambiguous scope, irreversible) — "we need to add rate limiting", "the onboarding is broken", "let's build SDD into prjct". Distinguishing tell vs `task`: the user frames WHAT SUCCESS LOOKS LIKE / WHY IT MATTERS / ACCEPTANCE CRITERIA, not just naming a unit of work. A bare "fix X" / "hoy" is NOT this — that is `task`.
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
What to do: SUGGEST `prjct spec "<title>"` in one line ("I'll draft a spec — Goal/Acceptance/Scope/Risks. ~30 sec, then we audit and start the task. Ok?"). On green light, create the spec and walk the forcing questions: goal, eli10, stakes, acceptance criteria, scope, out_of_scope, risks, test_plan. Persist via `prjct spec update <id> --json '{...}'`. Then suggest `prjct audit-spec <id>`.
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
Anti-pattern (the common one): forcing a one-file "fix"/"hoy" change through `spec` + `audit-spec`. If it is simple, `task` direct + `qa` is correct; spec there is pure ceremony tax that degrades performance.
|
|
91
91
|
|
|
92
|
-
### `
|
|
92
|
+
### `audit-spec` — "lock the spec before we ship code against it" (only after a spec exists)
|
|
93
93
|
|
|
94
|
-
Signals:
|
|
94
|
+
Signals: a spec ALREADY exists, no implementation yet, user wants to harden / pressure-test. Phrases: "is this spec good?" / "can we start building?" / "what's missing?". Never run this without an existing spec.
|
|
95
95
|
|
|
96
|
-
What to do:
|
|
96
|
+
What to do: run `prjct audit-spec <id>` — it emits a dispatch prompt. Then dispatch three Agent subagents IN PARALLEL (one tool-use block per reviewer in the SAME message — strategic / architecture / design — see Quality workflows below for the dispatch shape). Each returns a structured verdict. Persist each via `prjct spec record-review <id> --reviewer <name> --verdict <pass|fail> --notes "..."`. When all three pass the spec auto-promotes to `reviewed`.
|
|
97
97
|
|
|
98
98
|
### `capture` — "save this thought, don't decide anything yet"
|
|
99
99
|
|