set-prompt 0.5.3 → 0.6.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
@@ -4,6 +4,38 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ---
6
6
 
7
+ ## [0.6.0] - 2026-04-14
8
+
9
+ ### Added
10
+ - `set-prompt repo status` — VCS status: current branch, upstream + ahead/behind, colored list of changed files (separate from `set-prompt status`, which shows linked agents)
11
+ - `set-prompt repo pull` — git fetch + pull (replaces `set-prompt update`)
12
+ - `set-prompt repo commit [-m <msg>]` — stage all + commit locally; auto-generates a subject+body message when `-m` omitted (subject: `update N files`, body: bullet list of repo-relative paths)
13
+ - `set-prompt repo push` — push local commits to remote
14
+ - `set-prompt repo save [-m <msg>]` — one-step macro: commit + push (also auto-generates message)
15
+ - `set-prompt repo path` — prints the installed repo path to stdout (designed for `cd $(sppt repo path)`); errors go to stderr so piping stays clean
16
+ - `set-prompt repo open` — opens the repo in the OS file manager (`explorer` / `open` / `xdg-open`); `--code` opens in VSCode (`code` CLI), `--stree` opens in Sourcetree (auto-detects `SourceTree.exe` at `%LOCALAPPDATA%\SourceTree` on Windows where the `stree` wrapper isn't shipped)
17
+
18
+ ### Changed
19
+ - `scaffold` and `install`: when the resulting working tree is dirty, print a hint guiding the user to run `sppt repo save`. Non-interactive — the user stays in control (earlier design had auto-prompted to run `save`, which risked failing pushes during `install`).
20
+ - `scaffold`: plugin manifests (`.claude-plugin/plugin.json`, `.codex-plugin/plugin.json`) are no longer overwritten when they already exist. Existing files are validated against required fields (`name` for Claude; `name` + `skills` + `mcpServers` + `apps` for Codex — the latter three are pointers Codex uses to load each integration) and preserved as-is — custom values like `version`, `description`, or non-default `name` survive re-runs. Invalid files trigger a warning but stay untouched (status: `+` created / `✓` valid / `⚠` invalid).
21
+
22
+ ### Changed (Breaking)
23
+ - `set-prompt update` removed. Use `set-prompt repo pull` instead.
24
+ - Rationale: VCS-grouped commands read more clearly and leave room for future operations; `pull` is already the cross-VCS norm (Hg/JJ/Fossil all use it). `commit` and `push` stay pure git semantics; `save` is the convenience macro for the common case. `path` / `open` close the "where is my repo?" UX gap since the default install location (`~/.set-prompt/repo/`) felt distant.
25
+
26
+ ### Migration
27
+ - Replace any `set-prompt update` / `sppt update` calls with `set-prompt repo pull` / `sppt repo pull`
28
+
29
+ ---
30
+
31
+ ## [0.5.4] - 2026-04-13
32
+
33
+ ### Changed
34
+ - `SET_PROMPT_GUIDE` template: Structure section updated to include `.mcp.json`, `.app.json`, `.claude-plugin/`, `.codex-plugin/`
35
+ - Plugin manifest templates (`ensureClaudePluginManifest`, `ensureCodexPluginManifest`) — removed local repo path from `description` field to prevent leaking machine-specific paths into git history
36
+
37
+ ---
38
+
7
39
  ## [0.5.3] - 2026-04-13
8
40
 
9
41
  ### Added
package/README.md CHANGED
@@ -42,7 +42,8 @@ npx set-prompt <command>
42
42
  ```bash
43
43
  sppt install <url> # connect an existing repo
44
44
  sppt link # link to AI agents
45
- sppt update # pull latest changes
45
+ sppt repo pull # pull latest changes
46
+ sppt repo save -m "…" # commit + push local edits
46
47
  ```
47
48
 
48
49
  ## Workflow
@@ -78,6 +79,8 @@ my-prompts/
78
79
  └── SET_PROMPT_GUIDE.md (optional reference doc)
79
80
  ```
80
81
 
82
+ > **Re-run safety**: `scaffold` never overwrites existing plugin manifests. On re-run, it validates them against required fields and preserves your customizations (custom `name`, `version`, `description`, etc.). Invalid files trigger a warning but stay untouched.
83
+
81
84
  ---
82
85
 
83
86
  ### Step 2 — Link to AI agents
@@ -113,8 +116,22 @@ The interactive mode shows all agents with their current state. **Check to link,
113
116
 
114
117
  ### Step 3 — Keep in sync
115
118
 
119
+ Primary flow — pull incoming, save outgoing:
120
+
121
+ ```bash
122
+ set-prompt repo pull # fetch + pull latest changes from remote
123
+ set-prompt repo save -m "message" # stage + commit + push in one step
124
+ set-prompt repo save # same, but auto-generates message from changed files
125
+ ```
126
+
127
+ Additional commands:
128
+
116
129
  ```bash
117
- set-prompt update # git pull latest changes from remote
130
+ set-prompt repo status # show branch, ahead/behind, changed files
131
+ set-prompt repo commit -m "message" # commit locally without pushing
132
+ set-prompt repo push # push existing local commits
133
+ set-prompt repo path # print repo location (e.g. cd "$(sppt repo path)")
134
+ set-prompt repo open # open repo in OS file manager (--code VSCode, --stree Sourcetree)
118
135
  ```
119
136
 
120
137
  Symlink-based agents (Claude Code, Codex, RooCode, OpenClaw, Antigravity) reflect changes immediately after pull. Cursor's `mcp.json` is a hardlink to repo's `.mcp.json`, so edits to either side are reflected automatically.
@@ -135,9 +152,15 @@ set-prompt uninstall
135
152
  |---------|-------------|
136
153
  | `install <url>` | Clone remote git repo and register as prompt source |
137
154
  | `link [agent]` | Link/unlink agents interactively, or target one directly |
138
- | `update` | Fetch and pull latest changes from remote repo |
155
+ | `repo status` | Show VCS status: branch, ahead/behind, changed files |
156
+ | `repo pull` | Fetch and pull latest changes from remote repo |
157
+ | `repo commit [-m <msg>]` | Stage all changes and commit locally (auto-generates message from changed files if omitted) |
158
+ | `repo push` | Push local commits to remote |
159
+ | `repo save [-m <msg>]` | Stage + commit + push in one step (macro) |
160
+ | `repo path` | Print the repo path to stdout (e.g. `cd $(sppt repo path)`) |
161
+ | `repo open` | Open the repo in the OS file manager (`--code` for VSCode, `--stree` for Sourcetree) |
139
162
  | `status` | Show current repo and linked agents |
140
- | `scaffold [path]` | Create directories and plugin manifests in a prompt repo |
163
+ | `scaffold [path]` | Create or validate directories and plugin manifests (existing files are preserved) |
141
164
  | `uninstall` | Remove all set-prompt data and restore backups |
142
165
 
143
166
  ## What Gets Created