tracerkit 1.9.2 → 1.9.3

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/README.md CHANGED
@@ -30,7 +30,7 @@ TracerKit takes a different approach: **tracer-bullet vertical slices**. Each ph
30
30
  npx tracerkit init
31
31
  ```
32
32
 
33
- Skills are installed globally to `~/.claude/skills/`, available in every project. No per-project setup needed.
33
+ Skills are installed globally to `~/.claude/skills/`, available in every project. No per-project setup needed. Safe to re-run — adds any missing skills without overwriting ones you've modified.
34
34
 
35
35
  ### Workflow
36
36
 
package/dist/bin.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { c as e, i as t, n, o as r, r as i, t as a } from "./uninstall-CyVs_ZgH.js";
2
+ import { c as e, i as t, n, o as r, r as i, t as a } from "./uninstall-C4dWMK0k.js";
3
3
  import { existsSync as o, mkdirSync as s, readFileSync as c, readdirSync as l, rmSync as u, unlinkSync as d, writeFileSync as f } from "node:fs";
4
4
  import { dirname as p, join as m, resolve as h } from "node:path";
5
5
  import { fileURLToPath as g } from "node:url";
@@ -172,9 +172,9 @@ function L(e) {
172
172
  let t = e[0], o = e.slice(1);
173
173
  switch (t) {
174
174
  case "brief": return A(F(o, process.cwd()));
175
- case "init": return i(F(o));
175
+ case "init": return n(F(o));
176
176
  case "update": {
177
- let e = o.includes(r.force), t = n(F(o.filter((e) => e !== r.force)), { force: e });
177
+ let e = o.includes(r.force), t = i(F(o.filter((e) => e !== r.force)), { force: e });
178
178
  return t.push("", "Updated to the latest TracerKit."), t.push("If using Claude Code, restart your session to load changes."), t;
179
179
  }
180
180
  case "uninstall": return a(F(o));
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, r, s as i, t as a } from "./uninstall-CyVs_ZgH.js";
2
- export { t as COMMANDS, e as DEPRECATED_SKILLS, i as SKILL_NAMES, r as init, a as uninstall, n as update };
1
+ import { a as e, i as t, n, r, s as i, t as a } from "./uninstall-C4dWMK0k.js";
2
+ export { t as COMMANDS, e as DEPRECATED_SKILLS, i as SKILL_NAMES, n as init, a as uninstall, r as update };
@@ -104,15 +104,8 @@ function x(t, r) {
104
104
  };
105
105
  }
106
106
  //#endregion
107
- //#region src/commands/init.ts
108
- function S(t) {
109
- for (let n of f) if (e(s(t, ".claude", "skills", n))) throw Error(`.claude/skills/${n}/ already exists — run \`tracerkit update\` to add new skills, or \`tracerkit update --force\` to replace all skills`);
110
- let { copied: n } = y(t, d(t));
111
- return n.map((e) => `✓ ${e}`);
112
- }
113
- //#endregion
114
107
  //#region src/commands/update.ts
115
- function C(t, n) {
108
+ function S(t, n) {
116
109
  if (!f.some((n) => e(s(t, ".claude", "skills", n)))) throw Error("TracerKit not initialized — run `tracerkit init` first");
117
110
  let r = d(t), { unchanged: a, modified: o, missing: c } = x(t, r), l = [];
118
111
  for (let n of p) {
@@ -140,6 +133,13 @@ function C(t, n) {
140
133
  return l;
141
134
  }
142
135
  //#endregion
136
+ //#region src/commands/init.ts
137
+ function C(t) {
138
+ if (f.some((n) => e(s(t, ".claude", "skills", n)))) return S(t);
139
+ let { copied: n } = y(t, d(t));
140
+ return n.map((e) => `✓ ${e}`);
141
+ }
142
+ //#endregion
143
143
  //#region src/commands/uninstall.ts
144
144
  function w(t) {
145
145
  if (!f.some((n) => e(s(t, ".claude", "skills", n)))) throw Error("TracerKit not initialized — nothing to uninstall");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tracerkit",
3
- "version": "1.9.2",
3
+ "version": "1.9.3",
4
4
  "description": "Spec-driven workflow for Claude Code: replace ad-hoc prompts with PRD → plan → verify.",
5
5
  "license": "MIT",
6
6
  "author": {