devtronic 1.2.5 → 1.3.0
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/README.md +3 -3
- package/dist/{chunk-V4QEAL7Y.js → chunk-YBT2XOOQ.js} +38 -38
- package/dist/index.js +352 -120
- package/dist/{plugin-SGSFVXPA.js → plugin-XSNKI5VI.js} +5 -1
- package/package.json +1 -1
- package/templates/addons/auto-devtronic/agents/afk-task-validator.md +78 -0
- package/templates/addons/auto-devtronic/agents/{quality-runner.md → quality-executor.md} +1 -1
- package/templates/addons/auto-devtronic/manifest.json +2 -1
- package/templates/addons/auto-devtronic/skills/auto-devtronic/SKILL.md +14 -14
- package/templates/addons/design-best-practices/manifest.json +2 -2
- package/templates/addons/design-best-practices/skills/{design-review → design-critique}/SKILL.md +2 -1
- package/templates/addons/design-best-practices/skills/design-harden/SKILL.md +1 -0
- package/templates/addons/design-best-practices/skills/design-init/SKILL.md +1 -0
- package/templates/addons/design-best-practices/skills/design-refine/SKILL.md +2 -0
- package/templates/addons/design-best-practices/skills/{design-system → design-tokens}/SKILL.md +3 -1
- package/templates/claude-code/.claude/rules/quality.md +4 -0
- package/templates/claude-code/.claude/skills/audit/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/backlog/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/brief/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/briefing/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/checkpoint/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/create-plan/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/create-skill/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/design/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/design-audit/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/design-define/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/design-ia/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/design-research/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/design-review/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/design-spec/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/design-system/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/design-system-audit/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/design-system-define/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/design-system-sync/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/design-wireframe/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/devtronic-help/SKILL.md +338 -0
- package/templates/claude-code/.claude/skills/execute-plan/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/generate-tests/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/handoff/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/investigate/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/learn/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/opensrc/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/post-review/SKILL.md +2 -2
- package/templates/claude-code/.claude/skills/quick/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/recap/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/research/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/scaffold/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/setup/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/spec/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/summary/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/worktree/SKILL.md +1 -1
- package/templates/marketplace/auto-lint.sh +26 -0
- package/templates/marketplace/checkpoint.sh +39 -0
- package/templates/marketplace/hooks.json +75 -0
- package/templates/marketplace/stop-guard.sh +54 -0
package/README.md
CHANGED
|
@@ -35,8 +35,8 @@ 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** (
|
|
39
|
-
- **Agents** (15) — Specialized subagents (code-reviewer, quality-runner, etc.)
|
|
38
|
+
- **Skills** (20 core + 12 design + 9 addon) — Reusable workflows (`/brief`, `/spec`, `/create-plan`, `/summary`, `/audit`, `/devtronic-help`, etc.)
|
|
39
|
+
- **Agents** (15 + 4 addon) — 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
|
|
|
@@ -55,7 +55,7 @@ npx devtronic addon remove <name> # Uninstall
|
|
|
55
55
|
| Addon | Skills | Description |
|
|
56
56
|
|-------|--------|-------------|
|
|
57
57
|
| `orchestration` | `briefing`, `recap`, `handoff` | Pre-planning alignment, session recaps, context rotation for multi-session work |
|
|
58
|
-
| `design-best-practices` | `design-init`, `design-
|
|
58
|
+
| `design-best-practices` | `design-init`, `design-critique`, `design-refine`, `design-tokens`, `design-harden` | Frontend design quality: typography, color, layout, accessibility, motion, UX writing |
|
|
59
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
60
|
|
|
61
61
|
During `npx devtronic init` (Claude Code only), a multiselect prompt lets you enable any combination of addons upfront.
|
|
@@ -14,7 +14,7 @@ var ADDONS = {
|
|
|
14
14
|
name: "design-best-practices",
|
|
15
15
|
label: "Design Best Practices",
|
|
16
16
|
description: "Frontend design quality skills: typography, color, layout, accessibility, motion, and UX writing.",
|
|
17
|
-
skills: ["design-init", "design-
|
|
17
|
+
skills: ["design-init", "design-critique", "design-refine", "design-tokens", "design-harden"],
|
|
18
18
|
agents: []
|
|
19
19
|
},
|
|
20
20
|
"auto-devtronic": {
|
|
@@ -22,7 +22,7 @@ var ADDONS = {
|
|
|
22
22
|
label: "auto-devtronic \u2014 Autonomous Engineering Loop",
|
|
23
23
|
description: "Runs the full spec\u2192test\u2192plan\u2192execute\u2192PR pipeline autonomously. Self-corrects via failing tests. HITL and AFK modes.",
|
|
24
24
|
skills: ["auto-devtronic"],
|
|
25
|
-
agents: ["issue-parser", "failure-analyst", "quality-
|
|
25
|
+
agents: ["issue-parser", "failure-analyst", "quality-executor", "afk-task-validator"]
|
|
26
26
|
}
|
|
27
27
|
};
|
|
28
28
|
var PRESETS = {
|
|
@@ -79,7 +79,7 @@ var PRESETS = {
|
|
|
79
79
|
|
|
80
80
|
// src/utils/files.ts
|
|
81
81
|
import { createHash } from "crypto";
|
|
82
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync, cpSync, readdirSync } from "fs";
|
|
82
|
+
import { existsSync, lstatSync, readFileSync, writeFileSync, mkdirSync, unlinkSync, cpSync, readdirSync } from "fs";
|
|
83
83
|
import { dirname, join, relative } from "path";
|
|
84
84
|
var MANIFEST_DIR = ".ai-template";
|
|
85
85
|
var MANIFEST_FILE = "manifest.json";
|
|
@@ -91,13 +91,15 @@ function readFile(path) {
|
|
|
91
91
|
}
|
|
92
92
|
function writeFile(path, content) {
|
|
93
93
|
const dir = dirname(path);
|
|
94
|
-
|
|
95
|
-
mkdirSync(dir, { recursive: true });
|
|
96
|
-
}
|
|
94
|
+
ensureDir(dir);
|
|
97
95
|
writeFileSync(path, content, "utf-8");
|
|
98
96
|
}
|
|
99
97
|
function ensureDir(path) {
|
|
100
98
|
if (!existsSync(path)) {
|
|
99
|
+
try {
|
|
100
|
+
if (lstatSync(path).isSymbolicLink()) unlinkSync(path);
|
|
101
|
+
} catch {
|
|
102
|
+
}
|
|
101
103
|
mkdirSync(path, { recursive: true });
|
|
102
104
|
}
|
|
103
105
|
}
|
|
@@ -564,25 +566,26 @@ ${skillsSection}
|
|
|
564
566
|
`;
|
|
565
567
|
}
|
|
566
568
|
var CORE_SKILLS = [
|
|
567
|
-
{ name: "
|
|
568
|
-
{ name: "
|
|
569
|
-
{ name: "
|
|
570
|
-
{ name: "
|
|
571
|
-
{ name: "
|
|
572
|
-
{ name: "
|
|
573
|
-
{ name: "
|
|
574
|
-
{ name: "
|
|
575
|
-
{ name: "
|
|
576
|
-
{ name: "
|
|
577
|
-
{ name: "
|
|
578
|
-
{ name: "
|
|
579
|
-
{ name: "
|
|
580
|
-
{ name: "
|
|
581
|
-
{ name: "
|
|
582
|
-
{ name: "
|
|
583
|
-
{ name: "
|
|
584
|
-
{ name: "
|
|
585
|
-
{ name: "
|
|
569
|
+
{ name: "brief", desc: "Session orientation with pre-flight checks" },
|
|
570
|
+
{ name: "spec", desc: "Product specification interview (PRD)" },
|
|
571
|
+
{ name: "research", desc: "Codebase investigation (--deep, --external)" },
|
|
572
|
+
{ name: "create-plan", desc: "Phased implementation plan with task dependencies" },
|
|
573
|
+
{ name: "execute-plan", desc: "Parallel phase execution of plans" },
|
|
574
|
+
{ name: "quick", desc: "Fast ad-hoc tasks: implement, verify, commit" },
|
|
575
|
+
{ name: "generate-tests", desc: "Failing tests from spec (Tests-as-DoD)" },
|
|
576
|
+
{ name: "post-review", desc: "Pre-PR review (architecture, quality, requirements)" },
|
|
577
|
+
{ name: "audit", desc: "Codebase audit (security, complexity, architecture)" },
|
|
578
|
+
{ name: "summary", desc: "Post-change documentation" },
|
|
579
|
+
{ name: "checkpoint", desc: "Save session progress for resumption" },
|
|
580
|
+
{ name: "backlog", desc: "Issue management with BACK-### IDs" },
|
|
581
|
+
{ name: "investigate", desc: "Deep error and bug analysis" },
|
|
582
|
+
{ name: "learn", desc: "Post-task teaching breakdown" },
|
|
583
|
+
{ name: "scaffold", desc: "Create new projects from scratch" },
|
|
584
|
+
{ name: "setup", desc: "Interactive project configuration" },
|
|
585
|
+
{ name: "worktree", desc: "Git worktree management" },
|
|
586
|
+
{ name: "opensrc", desc: "Fetch npm/GitHub source for full context" },
|
|
587
|
+
{ name: "create-skill", desc: "Generate new custom skills" },
|
|
588
|
+
{ name: "devtronic-help", desc: "Discover skills, agents, addons, and workflows from the IDE" }
|
|
586
589
|
];
|
|
587
590
|
var ADDON_SKILLS = {
|
|
588
591
|
orchestration: [
|
|
@@ -592,9 +595,9 @@ var ADDON_SKILLS = {
|
|
|
592
595
|
],
|
|
593
596
|
"design-best-practices": [
|
|
594
597
|
{ name: "design-init", desc: "One-time project design context setup" },
|
|
595
|
-
{ name: "design-
|
|
598
|
+
{ name: "design-critique", desc: "Design critique with AI slop detection" },
|
|
596
599
|
{ name: "design-refine", desc: "Directional design refinement" },
|
|
597
|
-
{ name: "design-
|
|
600
|
+
{ name: "design-tokens", desc: "Design system extraction and normalization" },
|
|
598
601
|
{ name: "design-harden", desc: "Production hardening for edge cases" }
|
|
599
602
|
],
|
|
600
603
|
"auto-devtronic": [
|
|
@@ -619,6 +622,8 @@ function generateSkillsSection(enabledAddons) {
|
|
|
619
622
|
var PLUGIN_NAME = "devtronic";
|
|
620
623
|
var MARKETPLACE_NAME = "devtronic-local";
|
|
621
624
|
var PLUGIN_DIR = ".claude-plugins";
|
|
625
|
+
var GITHUB_MARKETPLACE_REPO = "r-bart/devtronic-plugin";
|
|
626
|
+
var GITHUB_MARKETPLACE_NAME = "devtronic";
|
|
622
627
|
var BASE_SKILL_COUNT = CORE_SKILLS.length;
|
|
623
628
|
var DESIGN_SKILL_COUNT = 12;
|
|
624
629
|
var BASE_AGENT_COUNT = 15;
|
|
@@ -628,18 +633,11 @@ function generatePluginJson(cliVersion, addonSkillCount = 0) {
|
|
|
628
633
|
return JSON.stringify(
|
|
629
634
|
{
|
|
630
635
|
name: PLUGIN_NAME,
|
|
636
|
+
description: `Agentic development toolkit \u2014 ${skillLabel}, ${BASE_AGENT_COUNT} agents, workflow hooks`,
|
|
631
637
|
version: cliVersion,
|
|
632
|
-
description: `devtronic \u2014 ${skillLabel}, ${BASE_AGENT_COUNT} agents, full workflow hooks`,
|
|
633
638
|
author: {
|
|
634
|
-
name: "r-bart"
|
|
635
|
-
|
|
636
|
-
},
|
|
637
|
-
repository: "https://github.com/r-bart/devtronic",
|
|
638
|
-
license: "MIT",
|
|
639
|
-
keywords: ["agentic", "architecture", "clean-architecture", "ddd", "workflow", "skills"],
|
|
640
|
-
skills: "./skills/",
|
|
641
|
-
agents: "./agents/",
|
|
642
|
-
hooks: "./hooks/hooks.json"
|
|
639
|
+
name: "r-bart"
|
|
640
|
+
}
|
|
643
641
|
},
|
|
644
642
|
null,
|
|
645
643
|
2
|
|
@@ -658,7 +656,7 @@ function generateMarketplaceJson(addonSkillCount = 0) {
|
|
|
658
656
|
plugins: [
|
|
659
657
|
{
|
|
660
658
|
name: PLUGIN_NAME,
|
|
661
|
-
source:
|
|
659
|
+
source: `./plugins/${PLUGIN_NAME}`,
|
|
662
660
|
description: `devtronic \u2014 ${skillLabel}, ${BASE_AGENT_COUNT} agents, full workflow hooks`
|
|
663
661
|
}
|
|
664
662
|
]
|
|
@@ -749,6 +747,8 @@ export {
|
|
|
749
747
|
PLUGIN_NAME,
|
|
750
748
|
MARKETPLACE_NAME,
|
|
751
749
|
PLUGIN_DIR,
|
|
750
|
+
GITHUB_MARKETPLACE_REPO,
|
|
751
|
+
GITHUB_MARKETPLACE_NAME,
|
|
752
752
|
BASE_SKILL_COUNT,
|
|
753
753
|
DESIGN_SKILL_COUNT,
|
|
754
754
|
BASE_AGENT_COUNT,
|