From 7a505eca25e83b69b2c761d0b42469318e76d03a Mon Sep 17 00:00:00 2001 From: raw-brt Date: Thu, 20 Aug 2026 06:39:24 +0200 Subject: [PATCH] chore(release): cut as 1.5.0 Renumbers the release from 2.0.0. `REMOVED_FILES` now names 1.5.0 as the version that renamed `/loop`, `/recap` and `/design-system-sync`, so `devtronic update` tells the user the right release, and the sample manifest versions in the docs are refreshed to match. The changelog leads the upgrade section with what the number does not say: the release moves three skill names, two runtime paths and the Node floor. Note: the merge commits on main from #50 and #51 carry "Release v2.0.0" in their subjects. They are published history and are left as they are. --- CHANGELOG.md | 7 ++++++- docs/cli-reference.md | 4 ++-- docs/existing-projects.md | 2 +- docs/plugins.md | 2 +- packages/cli/package-lock.json | 4 ++-- packages/cli/package.json | 2 +- packages/cli/src/data/removals.ts | 6 +++--- .../generators/__tests__/skill-cross-references.test.ts | 6 +++--- 8 files changed, 19 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f430c99..38c16c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [2.0.0] - 2026-08-20 +## [1.5.0] - 2026-08-20 Skills were pre-approving tools they had no business holding, three of them answered to names Claude Code had since taken, and two runtimes were being written to paths they never read. This @@ -14,6 +14,11 @@ installs the new locations. ### Upgrading +**Read this before upgrading.** The version number is a minor, but three things change under +you: three skills answer to new names, two runtimes read new paths, and Node 18 is no longer +supported. `devtronic update` handles the files; the skill names are yours to update in any +notes or scripts that call them. + | Was | Now | Why | |-----|-----|-----| | `/loop` | `/converge` | Claude Code ships a built-in `/loop`; the short form always resolved to it | diff --git a/docs/cli-reference.md b/docs/cli-reference.md index 63c807a..0e4ffdd 100644 --- a/docs/cli-reference.md +++ b/docs/cli-reference.md @@ -443,7 +443,7 @@ npx devtronic doctor --fix ◆ devtronic Doctor Health Check - ✓ Manifest is valid (v1.0.0) + ✓ Manifest is valid (v1.5.0) ✓ 42/42 manifest files exist ✓ Scripts have executable permissions ✓ Plugin registered in .claude/settings.json @@ -683,7 +683,7 @@ After installation, a manifest is created at `.ai-template/manifest.json`: ```json { - "version": "1.0.0", + "version": "1.5.0", "implantedAt": "2026-02-01", "selectedIDEs": ["claude-code", "cursor"], "projectConfig": { diff --git a/docs/existing-projects.md b/docs/existing-projects.md index 10e03bd..4b488b6 100644 --- a/docs/existing-projects.md +++ b/docs/existing-projects.md @@ -211,7 +211,7 @@ After installation, a manifest is created at `.ai-template/manifest.json`: ```json { - "version": "1.8.0", + "version": "1.5.0", "implantedAt": "2026-02-01", "selectedIDEs": ["claude-code", "cursor"], "projectConfig": { diff --git a/docs/plugins.md b/docs/plugins.md index 77158eb..8d15f56 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -393,7 +393,7 @@ The installation manifest at `.ai-template/manifest.json` includes: ```json { - "version": "1.2.6", + "version": "1.5.0", "installMode": "marketplace", "files": { "CLAUDE.md": { diff --git a/packages/cli/package-lock.json b/packages/cli/package-lock.json index 43d6b31..b35bdd0 100644 --- a/packages/cli/package-lock.json +++ b/packages/cli/package-lock.json @@ -1,12 +1,12 @@ { "name": "devtronic", - "version": "2.0.0", + "version": "1.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "devtronic", - "version": "2.0.0", + "version": "1.5.0", "license": "MIT", "dependencies": { "@clack/prompts": "^1.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index f4e23d9..966acfa 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "devtronic", - "version": "2.0.0", + "version": "1.5.0", "description": "AI-assisted development toolkit — skills, agents, quality gates, and rules for Claude Code, Cursor, Copilot, and Antigravity", "type": "module", "bin": { diff --git a/packages/cli/src/data/removals.ts b/packages/cli/src/data/removals.ts index 178b2bd..193a2fa 100644 --- a/packages/cli/src/data/removals.ts +++ b/packages/cli/src/data/removals.ts @@ -41,17 +41,17 @@ export const REMOVED_FILES: Record = { }, '.claude/skills/loop/SKILL.md': { reason: 'Renamed to /converge — /loop now belongs to a bundled Claude Code skill', - version: '2.0.0', + version: '1.5.0', alternative: 'Use /converge (or /devtronic:converge). The CLI command stays `devtronic loop`', }, '.claude/skills/recap/SKILL.md': { reason: 'Folded into /summary --quick — /recap is a built-in Claude Code command', - version: '2.0.0', + version: '1.5.0', alternative: 'Use /summary --quick. It writes the same thoughts/RECAP.md', }, '.claude/skills/design-system-sync/SKILL.md': { reason: 'Renamed to /design-tokens-sync — too close to the bundled /design-sync skill', - version: '2.0.0', + version: '1.5.0', alternative: 'Use /design-tokens-sync (also reachable via /design-system --sync)', }, '.claude/skills/scaffold.md': { diff --git a/packages/cli/src/generators/__tests__/skill-cross-references.test.ts b/packages/cli/src/generators/__tests__/skill-cross-references.test.ts index 6c3ac9e..2fec2b9 100644 --- a/packages/cli/src/generators/__tests__/skill-cross-references.test.ts +++ b/packages/cli/src/generators/__tests__/skill-cross-references.test.ts @@ -3,7 +3,7 @@ * indexes, prose points at the next step. Nothing checked those names against * the skills that actually ship. * - * The v2 renames made the cost visible. `/design-system --sync` still routed to + * The 1.5.0 renames made the cost visible. `/design-system --sync` still routed to * `/design:system-sync` — a name that never existed under that form and, after * the rename to `design-tokens-sync`, was wrong twice over. `devtronic-help` * still listed `/recap`, removed in the same release, and had never listed @@ -116,7 +116,7 @@ describe('devtronic-help lists every shipped skill', () => { // ─── Retired names stay retired ─────────────────────────────────────────────── describe('renamed skills are not invoked under their old names', () => { - /** Renamed in v2.0.0 to clear Claude Code built-ins. */ + /** Renamed in v1.5.0 to clear Claude Code built-ins. */ const RETIRED = ['loop', 'recap', 'design-system-sync']; /** Prose that documents the rename is the one legitimate mention. */ @@ -143,7 +143,7 @@ describe('renamed skills are not invoked under their old names', () => { .filter(({ line }) => pattern.test(line) && !EXPLAINS_THE_RENAME.test(line)) .map(({ n, line }) => `${path}:${n}: ${line.trim()}`) ); - expect(offenders, `/${name} was renamed in v2.0.0`).toEqual([]); + expect(offenders, `/${name} was renamed in v1.5.0`).toEqual([]); }); } });