prjct-cli 2.14.2 → 2.15.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 +34 -1
- package/bin/prjct +15 -0
- package/dist/bin/prjct-core.mjs +638 -594
- package/dist/bin/prjct.mjs +1 -1
- package/dist/daemon/entry.mjs +509 -465
- package/dist/mcp/server.mjs +323 -275
- package/dist/templates.json +1 -1
- package/package.json +1 -1
- package/templates/sdd-canonical-sequence.md +85 -0
- package/templates/skills/prjct/SKILL.md +416 -0
- package/templates/spec-reviewer-rubrics/architecture.md +47 -0
- package/templates/spec-reviewer-rubrics/design.md +38 -0
- package/templates/spec-reviewer-rubrics/strategic.md +32 -0
- package/templates/spec-template.md +94 -0
- /package/templates/{planning-methodology.md → planning-methodology-deep.md} +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Spec template — `prjct spec`
|
|
2
|
+
|
|
3
|
+
A spec frames a piece of work BEFORE implementation. Cheap to write, cheap to revise; un-doing implementation isn't.
|
|
4
|
+
|
|
5
|
+
The fields below match `core/types/spec.ts`. Validation is enforced by Zod at write time.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Title (one line)
|
|
10
|
+
|
|
11
|
+
What you'd say to a coworker walking by your desk.
|
|
12
|
+
|
|
13
|
+
## Goal (1–3 sentences)
|
|
14
|
+
|
|
15
|
+
What success looks like. Concrete. Observable.
|
|
16
|
+
|
|
17
|
+
## ELI10 (2–4 sentences)
|
|
18
|
+
|
|
19
|
+
Plain English a 16-year-old could follow. Forces you to articulate why this matters without jargon.
|
|
20
|
+
|
|
21
|
+
## Stakes if we ship the wrong thing (1 sentence)
|
|
22
|
+
|
|
23
|
+
What breaks. Who notices. How fast.
|
|
24
|
+
|
|
25
|
+
## Acceptance criteria (testable, observable list)
|
|
26
|
+
|
|
27
|
+
Each line is a sentence ending in a verifiable claim:
|
|
28
|
+
|
|
29
|
+
- the new endpoint returns 429 after the 11th request in a minute from the same IP
|
|
30
|
+
- the dashboard widget renders within 200ms p95 on a synthetic 4G profile
|
|
31
|
+
- `prjct spec audit <id>` blocks if any reviewer returns `fail`
|
|
32
|
+
|
|
33
|
+
Anti-patterns:
|
|
34
|
+
|
|
35
|
+
- "the system should be fast" — what threshold, measured how?
|
|
36
|
+
- "users will love it" — not testable
|
|
37
|
+
- "follow industry best practices" — what specifically?
|
|
38
|
+
|
|
39
|
+
## Scope (what's IN)
|
|
40
|
+
|
|
41
|
+
The pieces this spec commits to. Be specific about file paths, surfaces, modules.
|
|
42
|
+
|
|
43
|
+
## Out of scope (what's OUT)
|
|
44
|
+
|
|
45
|
+
The pieces this spec explicitly DOES NOT cover. This is your anti-creep shield mid-implementation.
|
|
46
|
+
|
|
47
|
+
## Risks
|
|
48
|
+
|
|
49
|
+
Each risk has a mitigation. A risk without a mitigation is just a complaint.
|
|
50
|
+
|
|
51
|
+
- **risk:** legacy endpoints rely on the same rate-limit middleware → **mitigation:** scope key separates `/auth` from `/api`
|
|
52
|
+
- **risk:** Redis dependency raises ops cost → **mitigation:** start with in-memory token bucket; swap to Redis only above 5 RPS
|
|
53
|
+
|
|
54
|
+
## Test plan
|
|
55
|
+
|
|
56
|
+
How you'll prove the acceptance criteria. Includes the unhappy path.
|
|
57
|
+
|
|
58
|
+
- unit tests for the token bucket math
|
|
59
|
+
- integration test: 11 requests, 11th returns 429
|
|
60
|
+
- load test: 100 RPS sustained for 60s, no memory growth
|
|
61
|
+
- manual: trigger via `curl` and inspect response headers
|
|
62
|
+
|
|
63
|
+
## Notes (optional)
|
|
64
|
+
|
|
65
|
+
Things that don't fit anywhere else but matter for context.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Lifecycle
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
draft → reviewed → in_progress → shipped
|
|
73
|
+
→ archived
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
- `draft` — created, not yet audited.
|
|
77
|
+
- `reviewed` — `prjct audit-spec` returned pass on all three reviewers.
|
|
78
|
+
- `in_progress` — at least one task with `linked_spec_id` exists.
|
|
79
|
+
- `shipped` — code merged, criteria met (or override accepted).
|
|
80
|
+
- `archived` — superseded or abandoned.
|
|
81
|
+
|
|
82
|
+
## Verb cheatsheet
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
prjct spec "<title>" # draft
|
|
86
|
+
prjct spec list [--status <s>]
|
|
87
|
+
prjct spec show <id>
|
|
88
|
+
prjct spec update <id> --json '{...}' # replace content
|
|
89
|
+
prjct spec audit <id> # emit subagent dispatch
|
|
90
|
+
prjct spec record-review <id> --reviewer <name> --verdict <pass|fail> --notes "..."
|
|
91
|
+
prjct spec link-task <id> --task-id <task>
|
|
92
|
+
prjct spec ship <id> [--pr <n>]
|
|
93
|
+
prjct spec set-status <id> --status archived
|
|
94
|
+
```
|
|
File without changes
|