Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 |
Expand Down
4 changes: 2 additions & 2 deletions docs/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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": {
Expand Down
2 changes: 1 addition & 1 deletion docs/existing-projects.md
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down
2 changes: 1 addition & 1 deletion docs/plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/cli/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
6 changes: 3 additions & 3 deletions packages/cli/src/data/removals.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,17 @@ export const REMOVED_FILES: Record<string, RemovalInfo> = {
},
'.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': {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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. */
Expand All @@ -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([]);
});
}
});