@kud/ai-conventional-commit-cli 0.10.0 → 0.11.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.
Files changed (2) hide show
  1. package/dist/index.js +10 -6
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -195,13 +195,15 @@ var buildGenerationMessages = (opts) => {
195
195
  'Output JSON Schema: { "commits": [ { "title": string, "body": string, "score": 0-100, "reasons": string[], "files"?: string[] } ], "meta": { "splitRecommended": boolean } }'
196
196
  );
197
197
  specLines.push("Primary Output Field: commits[ ].title");
198
- specLines.push("Title Format: <type>(<optional-scope>): <subject>");
198
+ specLines.push("Title Format (REQUIRED): <type>(<scope>): <subject>");
199
199
  specLines.push(
200
200
  "Title Length Guidance: Aim for <=50 chars ideal; absolute max 72 (do not exceed)."
201
201
  );
202
202
  specLines.push("Types (JSON mapping follows on next line)");
203
203
  specLines.push("TypeMap: " + JSON.stringify(TYPE_MAP));
204
- specLines.push("Scope Rules: optional; if present, lowercase kebab-case; omit when unclear.");
204
+ specLines.push(
205
+ "Scope Rules: ALWAYS include a concise lowercase kebab-case scope (derive from dominant directory, package, or feature); never omit."
206
+ );
205
207
  specLines.push(
206
208
  "Subject Rules: imperative mood, present tense, no leading capital unless proper noun, no trailing period."
207
209
  );
@@ -255,12 +257,14 @@ var buildRefineMessages = (opts) => {
255
257
  spec.push(
256
258
  'Output JSON Schema: { "commits": [ { "title": string, "body": string, "score": 0-100, "reasons": string[] } ] }'
257
259
  );
258
- spec.push("Title Format: <type>(<optional-scope>): <subject> (<=72 chars)");
260
+ spec.push("Title Format (REQUIRED): <type>(<scope>): <subject> (<=72 chars)");
259
261
  spec.push("Subject: imperative, present tense, no trailing period.");
260
262
  spec.push(
261
263
  "Emoji Rule: " + (config.style === "gitmoji" || config.style === "gitmoji-pure" ? "OPTIONAL single leading gitmoji BEFORE type if it adds clarity; omit if unsure." : "Disallow all emojis; start directly with the type.")
262
264
  );
263
- spec.push("Preserve semantic meaning; only improve clarity, scope, brevity, conformity.");
265
+ spec.push(
266
+ "Preserve semantic meaning; ensure a scope is present (infer one if missing); only improve clarity, brevity, conformity."
267
+ );
264
268
  spec.push("If instructions request scope or emoji, incorporate only if justified by content.");
265
269
  spec.push("Return ONLY JSON (commits array length=1).");
266
270
  return [
@@ -1186,7 +1190,7 @@ async function runRefine(config, options) {
1186
1190
  // package.json
1187
1191
  var package_default = {
1188
1192
  name: "@kud/ai-conventional-commit-cli",
1189
- version: "0.10.0",
1193
+ version: "0.11.1",
1190
1194
  type: "module",
1191
1195
  description: "Opinionated, style-aware AI assistant for crafting and splitting git commits (opencode-based, provider-agnostic).",
1192
1196
  bin: {
@@ -1242,7 +1246,7 @@ var package_default = {
1242
1246
  }
1243
1247
  },
1244
1248
  engines: {
1245
- node: ">=18.17"
1249
+ node: ">=20.0.0"
1246
1250
  },
1247
1251
  license: "MIT",
1248
1252
  repository: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kud/ai-conventional-commit-cli",
3
- "version": "0.10.0",
3
+ "version": "0.11.1",
4
4
  "type": "module",
5
5
  "description": "Opinionated, style-aware AI assistant for crafting and splitting git commits (opencode-based, provider-agnostic).",
6
6
  "bin": {
@@ -56,7 +56,7 @@
56
56
  }
57
57
  },
58
58
  "engines": {
59
- "node": ">=18.17"
59
+ "node": ">=20.0.0"
60
60
  },
61
61
  "license": "MIT",
62
62
  "repository": {