devtronic 1.2.0 → 1.2.2

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 (3) hide show
  1. package/README.md +22 -2
  2. package/dist/index.js +19 -21
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -35,11 +35,31 @@ The CLI analyzes your project (framework, architecture, stack) and generates per
35
35
 
36
36
  - **AGENTS.md** — Universal AI context personalized to your stack
37
37
  - **Architecture rules** — IDE-specific format (`.claude/rules/`, `.cursor/rules/`, etc.)
38
- - **Skills** (19 core + 9 addon skills) — Reusable workflows (`/devtronic:brief`, `/devtronic:spec`, `/devtronic:create-plan`, `/devtronic:summary`, `/devtronic:audit`, etc.)
39
- - **Agents** (8) — Specialized subagents (code-reviewer, quality-runner, etc.)
38
+ - **Skills** (19 core + 12 design + 9 addon) — Reusable workflows (`/devtronic:brief`, `/devtronic:spec`, `/devtronic:create-plan`, `/devtronic:summary`, `/devtronic:audit`, etc.)
39
+ - **Agents** (15) — Specialized subagents (code-reviewer, quality-runner, etc.)
40
40
  - **Hooks** (5) — Automated workflow (lint-on-save, checkpoint, etc.)
41
41
  - **thoughts/** — Structured directory for AI working documents
42
42
 
43
+ ## Addons
44
+
45
+ Three optional addon packs extend the core toolkit. Select them during `init` or manage them at any time:
46
+
47
+ ```bash
48
+ npx devtronic addon list # See available addons and status
49
+ npx devtronic addon enable orchestration # Install
50
+ npx devtronic addon enable design-best-practices
51
+ npx devtronic addon enable auto-devtronic
52
+ npx devtronic addon disable <name> # Uninstall
53
+ ```
54
+
55
+ | Addon | Skills | Description |
56
+ |-------|--------|-------------|
57
+ | `orchestration` | `briefing`, `recap`, `handoff` | Pre-planning alignment, session recaps, context rotation for multi-session work |
58
+ | `design-best-practices` | `design-init`, `design-review`, `design-refine`, `design-system`, `design-harden` | Frontend design quality: typography, color, layout, accessibility, motion, UX writing |
59
+ | `auto-devtronic` | `auto-devtronic`, `validate-task-afk` | Autonomous engineering loop — takes a GitHub issue, runs spec → tests → plan → implement → PR, self-corrects via failing tests |
60
+
61
+ During `npx devtronic init` (Claude Code only), a multiselect prompt lets you enable any combination of addons upfront.
62
+
43
63
  ## Supported IDEs
44
64
 
45
65
  | IDE | Config Format | Features |
package/dist/index.js CHANGED
@@ -453,10 +453,16 @@ async function promptForAgentsMd() {
453
453
  initialValue: true
454
454
  });
455
455
  }
456
- async function promptForOrchestration() {
457
- return p.confirm({
458
- message: "Enable orchestration workflow? (briefing \u2192 execute-plan \u2192 recap \u2192 handoff)",
459
- initialValue: false
456
+ async function promptForAddons() {
457
+ const options = Object.values(ADDONS).map((addon) => ({
458
+ value: addon.name,
459
+ label: addon.label,
460
+ hint: addon.description
461
+ }));
462
+ return p.multiselect({
463
+ message: "Enable optional addon packs? (space to toggle, enter to confirm)",
464
+ options,
465
+ required: false
460
466
  });
461
467
  }
462
468
 
@@ -1368,25 +1374,12 @@ Valid addons: ${validAddons.join(", ")}`);
1368
1374
  }
1369
1375
  }
1370
1376
  if (selectedIDEs.includes("claude-code") && !options.addon && !options.yes && !options.preset && !options.preview) {
1371
- const wantOrchestration = await promptForOrchestration();
1372
- if (p3.isCancel(wantOrchestration)) {
1373
- p3.cancel("Operation cancelled");
1374
- process.exit(0);
1375
- }
1376
- if (wantOrchestration) {
1377
- enabledAddons.push("orchestration");
1378
- }
1379
- const wantDesign = await p3.confirm({
1380
- message: "Enable design best practices? (design-init \u2192 design-review \u2192 design-refine \u2192 design-harden)",
1381
- initialValue: false
1382
- });
1383
- if (p3.isCancel(wantDesign)) {
1377
+ const selectedAddons = await promptForAddons();
1378
+ if (p3.isCancel(selectedAddons)) {
1384
1379
  p3.cancel("Operation cancelled");
1385
1380
  process.exit(0);
1386
1381
  }
1387
- if (wantDesign) {
1388
- enabledAddons.push("design-best-practices");
1389
- }
1382
+ enabledAddons = selectedAddons;
1390
1383
  }
1391
1384
  if (enabledAddons.length > 0) {
1392
1385
  projectConfig.enabledAddons = enabledAddons;
@@ -2393,8 +2386,11 @@ async function updateCommand(options) {
2393
2386
  }
2394
2387
  }
2395
2388
  const removedFromTemplate = [];
2389
+ const pluginPathPrefix = manifest.pluginPath ? manifest.pluginPath + "/" : null;
2396
2390
  for (const [relativePath, fileInfo] of Object.entries(manifest.files)) {
2397
2391
  if (fileInfo.ignored) continue;
2392
+ if (pluginPathPrefix && relativePath.startsWith(pluginPathPrefix)) continue;
2393
+ if (manifest.pluginPath && relativePath.startsWith(".claude-plugins/") && relativePath.endsWith("marketplace.json")) continue;
2398
2394
  let foundInAnyTemplate = false;
2399
2395
  for (const ide of manifest.selectedIDEs) {
2400
2396
  const templateDir = join11(TEMPLATES_DIR, IDE_TEMPLATE_MAP[ide]);
@@ -4678,11 +4674,13 @@ async function removeFileBasedAddon(targetDir, addonName, _options) {
4678
4674
  }
4679
4675
  function getAddonListInfo(targetDir) {
4680
4676
  const config = readAddonConfig(targetDir);
4677
+ const manifest = readManifest(targetDir);
4678
+ const manifestAddons = manifest?.projectConfig?.enabledAddons ?? [];
4681
4679
  return getAvailableAddons().map((addon) => ({
4682
4680
  name: addon.name,
4683
4681
  label: addon.label,
4684
4682
  description: addon.description,
4685
- installed: !!config.installed[addon.name],
4683
+ installed: !!config.installed[addon.name] || manifestAddons.includes(addon.name),
4686
4684
  agents: config.installed[addon.name] ? config.agents : void 0
4687
4685
  }));
4688
4686
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devtronic",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "AI-assisted development toolkit — skills, agents, quality gates, and rules for Claude Code, Cursor, Copilot, and Antigravity",
5
5
  "type": "module",
6
6
  "bin": {