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 CHANGED
@@ -1,12 +1,45 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.15.0] - 2026-05-03
4
+
5
+ ### Features
6
+
7
+ - prjct as a Spec-Driven Development system (#318)
8
+ - self-heal prjct SKILL.md on every CLI invocation (#317)
9
+
10
+
11
+ ## [Unreleased]
12
+
13
+ ### Features — SDD: Spec-Driven Development
14
+
15
+ prjct now ships an end-to-end SDD primitive. The canonical sequence is `spec → audit-spec → task --spec → implement → ship (acceptance gate) → remember learning`.
16
+
17
+ - **`prjct spec "<title>"`** — first-class verb. Drafts a spec with structured fields (goal, eli10, stakes, acceptance_criteria, scope, out_of_scope, risks, test_plan). Persists to a new `specs` SQLite table and mirrors a memory event so `prjct context memory spec` finds it.
18
+ - **Sub-verbs:** `prjct spec list | show | update | set-status | record-review | link-task | ship | audit`.
19
+ - **`prjct audit-spec <id>`** — emits a parallel-subagent dispatch prompt. Three reviewers (strategic / architecture / design) run in parallel via the Agent tool and write verdicts back via `prjct spec record-review`. All three pass → spec auto-promotes `draft → reviewed`.
20
+ - **`prjct task --spec <id>`** — links a task to its spec (`tasks.linked_spec_id`). Without it, `ship` has nothing to gate against.
21
+ - **`prjct ship` acceptance gate** — when the active task has a linked spec, ship surfaces the spec's `acceptance_criteria` as a checklist before proceeding. Override with `--no-spec-gate`.
22
+ - **Vault rendering** — specs auto-render to `~/Documents/prjct/<slug>/_generated/specs/<slug>.md` on every regen, with a status-grouped index at `_generated/specs/_index.md`.
23
+ - **Skill body** — Claude is taught the SDD canonical sequence and the `spec` / `audit-spec` verbs in the intent map. The skill body's verb intent map now leads with `spec` for substantive work; `task` is the right call for routine work that doesn't deserve a spec.
24
+ - **Templates** — `templates/spec-template.md`, `templates/spec-reviewer-rubrics/{strategic,architecture,design}.md`, `templates/sdd-canonical-sequence.md`. Old `templates/planning-methodology.md` renamed to `planning-methodology-deep.md` (retained but de-defaulted).
25
+
26
+ ### Schema
27
+
28
+ - Migration 16 adds the `specs` table and the `tasks.linked_spec_id` column. Additive — existing memory and tasks unaffected.
29
+ - `'spec'` added to `BASE_MEMORY_TYPES`.
30
+
31
+ ## [2.14.3] - 2026-05-02
32
+
33
+ ### Refactoring
34
+
35
+ - split 19 files >500 LOC into SRP modules (#316)
36
+
3
37
  ## [2.14.2] - 2026-05-03
4
38
 
5
39
  ### Refactoring
6
40
 
7
41
  - DRY pass + analysis/sync-service splits (consolidates #312-#314) (#315)
8
42
 
9
-
10
43
  ## [2.14.1] - 2026-05-03
11
44
 
12
45
  ### Refactoring
package/bin/prjct CHANGED
@@ -86,6 +86,21 @@ ensure_setup() {
86
86
  chmod +x "$CLAUDE_STATUSLINE" 2>/dev/null
87
87
  fi
88
88
  fi
89
+
90
+ # Ensure prjct skill is installed where Claude / Codex can see it.
91
+ # postinstall is unreliable (--ignore-scripts, npm policies), so the
92
+ # bin shim self-heals on every invocation. mtime-based: source newer
93
+ # than dest → overwrite. Common case (skill up-to-date) = two stats.
94
+ SKILL_SRC="$ROOT_DIR/templates/skills/prjct/SKILL.md"
95
+ if [ -f "$SKILL_SRC" ]; then
96
+ for SKILL_DEST in "$HOME/.claude/skills/prjct/SKILL.md" "$HOME/.codex/skills/prjct/SKILL.md"; do
97
+ SKILL_DIR=$(dirname "$SKILL_DEST")
98
+ if [ ! -f "$SKILL_DEST" ] || [ "$SKILL_SRC" -nt "$SKILL_DEST" ]; then
99
+ mkdir -p "$SKILL_DIR" 2>/dev/null
100
+ cp "$SKILL_SRC" "$SKILL_DEST" 2>/dev/null
101
+ fi
102
+ done
103
+ fi
89
104
  }
90
105
 
91
106
  # Check if bun is available