@softspark/ai-toolkit 2.3.0 → 2.3.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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,14 @@ Versioning follows [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ---
9
9
 
10
+ ## v2.3.1 — Release Quality Gate (2026-04-14)
11
+
12
+ ### Fixed
13
+ - **README "What's New" section** — was stuck at v2.1.3, now auto-validated by `validate.py --strict`
14
+ - **Release SOP** — added mandatory "Update README What's New" step to Phase 3 checklist
15
+
16
+ ---
17
+
10
18
  ## v2.3.0 — Jira MCP Template & Cross-Editor Sync (2026-04-14)
11
19
 
12
20
  ### Added
package/README.md CHANGED
@@ -10,12 +10,13 @@
10
10
 
11
11
  ---
12
12
 
13
- ## What's New in v2.1.3
13
+ ## What's New in v2.3.1
14
14
 
15
- - **Idempotent update** — `ai-toolkit update` no longer dirties git with extra blank lines in generated files
16
- - **Custom rules in generators** — `generate:all` preserves registered rules from other repos across all platforms
17
- - **README restructured** — 951 292 lines with TOC, links to KB docs
18
- - **3 new KB docs** — CLI Reference, Unique Features, Ecosystem Comparison
15
+ - **URL rule registration** — `ai-toolkit add-rule https://...` with auto-refresh on every update
16
+ - **Jira MCP template** — `ai-toolkit mcp add jira` with `postInstall` setup hints
17
+ - **MCP template tracking** — globally installed templates saved in `state.json`, auto-synced on `update`
18
+ - **Race condition fix** — parallel project updates no longer drop registry entries (fcntl.flock + atomic writes)
19
+ - **Claude MCP paths fixed** — now uses `~/.claude.json` (global) and `.mcp.json` (project) per official docs
19
20
 
20
21
  See [CHANGELOG.md](CHANGELOG.md) for full history.
21
22
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ai-toolkit",
3
3
  "description": "Professional-grade Claude Code toolkit with persona presets, skill security auditor, expanded lifecycle hooks, experimental opt-in plugin packs, benchmark harvesting, and multi-tool support.",
4
- "version": "2.3.0",
4
+ "version": "2.3.1",
5
5
  "author": {
6
6
  "name": "SoftSpark",
7
7
  "url": "https://github.com/softspark"
@@ -157,6 +157,18 @@ Add entry at the top of `CHANGELOG.md` (after the header, before previous releas
157
157
  - Date format: `YYYY-MM-DD`
158
158
  - Title: short, descriptive, no version number repetition
159
159
 
160
+ ### Update README "What's New" section
161
+
162
+ **MANDATORY on every release.** Update the `## What's New in vX.Y.Z` section in `README.md`:
163
+
164
+ 1. Change the heading version: `## What's New in vX.Y.Z`
165
+ 2. Replace bullet points with 3-5 highlights from this release
166
+ 3. Keep the `See [CHANGELOG.md](CHANGELOG.md) for full history.` link
167
+
168
+ > **Warning:** This section is the first thing users see after the badges.
169
+ > A stale version here (e.g., "What's New in v2.1.3" when shipping v2.3.0)
170
+ > signals an unmaintained project. Do NOT skip this step.
171
+
160
172
  ---
161
173
 
162
174
  ## Phase 4: Regenerate Artifacts
package/llms-full.txt CHANGED
@@ -3669,6 +3669,18 @@ Add entry at the top of `CHANGELOG.md` (after the header, before previous releas
3669
3669
  - Date format: `YYYY-MM-DD`
3670
3670
  - Title: short, descriptive, no version number repetition
3671
3671
 
3672
+ ### Update README "What's New" section
3673
+
3674
+ **MANDATORY on every release.** Update the `## What's New in vX.Y.Z` section in `README.md`:
3675
+
3676
+ 1. Change the heading version: `## What's New in vX.Y.Z`
3677
+ 2. Replace bullet points with 3-5 highlights from this release
3678
+ 3. Keep the `See [CHANGELOG.md](CHANGELOG.md) for full history.` link
3679
+
3680
+ > **Warning:** This section is the first thing users see after the badges.
3681
+ > A stale version here (e.g., "What's New in v2.1.3" when shipping v2.3.0)
3682
+ > signals an unmaintained project. Do NOT skip this step.
3683
+
3672
3684
  ---
3673
3685
 
3674
3686
  ## Phase 4: Regenerate Artifacts
package/manifest.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.3.0",
2
+ "version": "2.3.1",
3
3
  "components": {
4
4
  "agents": {
5
5
  "description": "44 specialized agents (orchestrator, backend, frontend, security, devops, etc.)",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softspark/ai-toolkit",
3
- "version": "2.3.0",
3
+ "version": "2.3.1",
4
4
  "description": "Professional-grade AI coding toolkit: 92 skills, 44 agents, multi-platform support (Claude, Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, Aider, Augment, Google Antigravity, Codex CLI), machine-enforced safety constitution, persona presets, skill security auditor, expanded lifecycle hooks, 11 plugin packs, and benchmark tooling.",
5
5
  "keywords": [
6
6
  "claude",
@@ -646,6 +646,23 @@ def _validate_version_sync(tk_dir: Path, vr: ValidationResult) -> None:
646
646
  detail = ", ".join(f"{k}={v}" for k, v in versions.items())
647
647
  vr.error(f"Version mismatch across files: {detail}")
648
648
 
649
+ # Check README "What's New" section matches current version
650
+ pkg_version = versions.get("package.json", "")
651
+ if pkg_version:
652
+ readme = tk_dir / "README.md"
653
+ if readme.is_file():
654
+ content = readme.read_text(encoding="utf-8")
655
+ m = re.search(r"## What's New in v([\d.]+)", content)
656
+ if m:
657
+ whats_new_ver = m.group(1)
658
+ if whats_new_ver == pkg_version:
659
+ print(f" OK: README \"What's New\" (v{whats_new_ver})")
660
+ else:
661
+ vr.error(
662
+ f"README \"What's New in v{whats_new_ver}\" "
663
+ f"is stale (package.json is v{pkg_version})"
664
+ )
665
+
649
666
 
650
667
  def validate_content_quality(tk_dir: Path, vr: ValidationResult) -> None:
651
668
  """Check content quality: name matches directory, non-empty body."""