@vyuhlabs/dxkit 0.3.0 → 0.4.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 CHANGED
@@ -58,8 +58,8 @@ CLAUDE.md # Main context file for Claude Code
58
58
 
59
59
  | Language | Detection | Linters | Tests | Coverage |
60
60
  |---|---|---|---|---|
61
- | Node.js / TypeScript | `package.json` | ESLint, Prettier, tsc | Jest | jest --coverage |
62
- | Python | `pyproject.toml`, `setup.py` | ruff, mypy | pytest | pytest-cov |
61
+ | Node.js / TypeScript | `package.json` | ESLint, Prettier, tsc | Auto-detected (Jest, Mocha, Vitest, Ava) | framework-specific |
62
+ | Python | `pyproject.toml`, `setup.py`, `*.py` | ruff, mypy | pytest | pytest-cov |
63
63
  | Go | `go.mod` | golangci-lint, go vet | go test | go cover |
64
64
  | C# | `*.csproj`, `*.sln` | dotnet format, Roslyn | dotnet test | coverlet |
65
65
  | Rust | `Cargo.toml` | clippy, rustfmt | cargo test | tarpaulin |
@@ -73,6 +73,16 @@ Auto-detected and integrated when present:
73
73
  - **Pulumi** — IaC with preview-before-apply safety
74
74
  - **Docker** — Container commands
75
75
 
76
+ ## Supported Frameworks
77
+
78
+ Auto-detected with framework-specific rules:
79
+
80
+ - **LoopBack** — Controller/model/repository patterns, decorator conventions
81
+ - **Express** — Middleware/routing conventions, error handling patterns
82
+ - **NestJS**, **Fastify**, **Koa**, **Hapi** — Detected (rules coming soon)
83
+ - **FastAPI**, **Django**, **Flask** — Detected (rules coming soon)
84
+ - **Gin**, **Echo**, **Fiber** — Detected (rules coming soon)
85
+
76
86
  ## Commands
77
87
 
78
88
  After init, these slash commands are available in Claude Code:
@@ -88,23 +98,27 @@ After init, these slash commands are available in Claude Code:
88
98
  ### Quality & Testing
89
99
  | Command | Description |
90
100
  |---|---|
91
- | `/quality` | Run language-specific linters and type checks |
92
- | `/test` | Run tests with coverage enforcement |
101
+ | `/quality` | Run language-specific linters + AI review |
102
+ | `/test` | Run tests (auto-detected runner: Jest, Mocha, Vitest, etc.) |
93
103
  | `/check` | Full pre-commit validation (quality + tests + AI review) |
94
104
  | `/fix` | Auto-fix formatting and lint issues |
105
+ | `/build` | Build the project |
95
106
  | `/setup-hooks` | Install git pre-commit/pre-push hooks |
107
+ | `/test-gaps` | Find critical untested code paths |
96
108
 
97
109
  ### Exploration & Onboarding
98
110
  | Command | Description |
99
111
  |---|---|
100
112
  | `/onboarding` | Interactive onboarding for new developers |
101
113
  | `/explore-codebase` | Deep architecture exploration |
114
+ | `/deps` | Map dependencies ("what breaks if I change X?") |
102
115
  | `/help` | List all commands and agents |
103
116
 
104
117
  ### Operations
105
118
  | Command | Description |
106
119
  |---|---|
107
120
  | `/fix-issue <number>` | Investigate and fix a GitHub issue |
121
+ | `/setup-pr-review` | Set up automated PR review GitHub Action |
108
122
  | `/doctor` | Diagnose environment issues |
109
123
  | `/enable-agent <name>` | Activate a dormant agent |
110
124
 
@@ -121,6 +135,8 @@ These agents auto-trigger when Claude detects a matching question:
121
135
  - **codebase-explorer** — Deep architecture analysis, generates documentation
122
136
  - **code-reviewer** — PR review and security audit (read-only)
123
137
  - **test-writer** — Writes tests for existing code
138
+ - **test-gap-finder** — Identifies critical untested code paths, prioritized by risk
139
+ - **dependency-mapper** — Maps import chains and blast radius of changes
124
140
  - **debugger** — Systematic root cause analysis
125
141
 
126
142
  ## Learning System
@@ -135,9 +151,23 @@ DXKit includes a continuous learning system that improves over time:
135
151
  - `.claude/skills/learned/references/conventions.md`
136
152
  - `.claude/skills/learned/references/deny-recommendations.md`
137
153
 
138
- ## Coverage Enforcement
154
+ ## PR Review Automation
155
+
156
+ DXKit generates a GitHub Action (`.github/workflows/pr-review.yml`) that automatically reviews PRs using Claude Code. Enable it by:
157
+
158
+ 1. Set `ENABLE_AI_REVIEW=true` as a GitHub Actions variable
159
+ 2. Add `ANTHROPIC_API_KEY` to repo secrets
160
+
161
+ Reviews appear as PR comments with issues rated as critical/warning/suggestion.
162
+
163
+ ## Smart Detection
164
+
165
+ DXKit goes beyond language detection:
139
166
 
140
- Tests run with a minimum coverage threshold (default: 80%). Configure at init time or in `.vyuh-dxkit.json`.
167
+ - **Test runner** Detects Jest, Mocha, Vitest, Ava, Tap, pytest, go test from package.json scripts and dependencies
168
+ - **Framework** — Detects LoopBack, Express, NestJS, FastAPI, Gin, etc. and generates framework-specific rules
169
+ - **Test presence** — Counts test files vs source files and warns about minimal test coverage
170
+ - **Multi-language** — Detects Python from `.py` files even without `pyproject.toml` (common in mixed repos)
141
171
 
142
172
  ## CLI Reference
143
173
 
@@ -183,10 +213,11 @@ npx @vyuhlabs/dxkit init --detect --yes
183
213
  This generates:
184
214
  - `CLAUDE.md` with Node.js-specific context
185
215
  - `.claude/commands/quality.md` with `npx eslint .` and `npx tsc --noEmit`
186
- - `.claude/commands/test.md` with `npx jest --coverage` (80% threshold)
187
- - `.claude/rules/` with Node.js conventions
216
+ - `.claude/commands/test.md` with auto-detected test runner and framework
217
+ - `.claude/rules/` with Node.js + framework-specific conventions
188
218
  - `.claude/skills/codebase/SKILL.md` with auto-scanned architecture overview
189
- - 3 active agents + 4 dormant agents
219
+ - `.github/workflows/pr-review.yml` for automated PR review
220
+ - 3 active agents + 7 dormant agents
190
221
 
191
222
  Then in Claude Code:
192
223
  ```
@@ -1,5 +1,5 @@
1
1
  import { ResolvedConfig } from './types';
2
- export declare const VERSION = "0.3.0";
2
+ export declare const VERSION = "0.4.0";
3
3
  export declare const DEFAULT_VERSIONS: {
4
4
  python: string;
5
5
  go: string;
package/dist/constants.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EVOLVING_FILES = exports.DEFAULT_COVERAGE = exports.DEFAULT_VERSIONS = exports.VERSION = void 0;
4
4
  exports.buildVariables = buildVariables;
5
5
  exports.buildConditions = buildConditions;
6
- exports.VERSION = '0.3.0';
6
+ exports.VERSION = '0.4.0';
7
7
  exports.DEFAULT_VERSIONS = {
8
8
  python: '3.12',
9
9
  go: '1.24.0',
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AA+D9E,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,OAAO,EACd,MAAM,UAAQ,GACb,OAAO,CAAC,cAAc,CAAC,CAwQzB"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AA+D9E,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,OAAO,EACd,MAAM,UAAQ,GACb,OAAO,CAAC,cAAc,CAAC,CA+QzB"}
package/dist/generator.js CHANGED
@@ -242,6 +242,12 @@ async function generate(targetDir, config, mode, force, noScan = false) {
242
242
  }
243
243
  }
244
244
  logger.success('.claude/agents/');
245
+ // 6b. PR review workflow (dx-only mode — always copy if GitHub Actions dir doesn't conflict)
246
+ const prReviewSrc = path.join(templatesDir, '.github', 'workflows', 'pr-review.yml');
247
+ if (fs.existsSync(prReviewSrc)) {
248
+ copyStatic('.github/workflows/pr-review.yml', '.github/workflows/pr-review.yml');
249
+ logger.success('.github/workflows/pr-review.yml');
250
+ }
245
251
  // 7. Codebase scan
246
252
  if (!noScan) {
247
253
  logger.info('Scanning codebase...');
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vyuhlabs/dxkit",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "AI-native developer experience toolkit for any repository",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: dependency-mapper
3
+ description: Maps internal dependencies and import chains. Use when asked "what depends on this?", "what breaks if I change X?", or "show me the dependency graph". Read-only — cannot modify files.
4
+ model: sonnet
5
+ tools: Read, Grep, Glob
6
+ ---
7
+
8
+ You are a dependency analysis specialist. Your job is to trace import chains and map how code modules depend on each other.
9
+
10
+ ## Strategy
11
+
12
+ ### Phase 1: Map Imports
13
+ 1. Find all source files using Glob
14
+ 2. For each file, extract imports:
15
+ - TypeScript/JS: `import ... from '...'`, `require('...')`
16
+ - Python: `import ...`, `from ... import ...`
17
+ - Go: `import "..."` blocks
18
+ - C#: `using ...;`
19
+ 3. Build a dependency graph: file → [files it imports]
20
+
21
+ ### Phase 2: Identify Key Nodes
22
+ Find files that are:
23
+ - **Most depended on** (many files import them) — changing these is high risk
24
+ - **Most dependencies** (import many files) — these are complex/fragile
25
+ - **Circular dependencies** — these cause maintenance problems
26
+
27
+ ### Phase 3: Impact Analysis
28
+ If the user asks about a specific file:
29
+ 1. Find everything that imports it (direct dependents)
30
+ 2. Find everything that depends on those (transitive dependents)
31
+ 3. Estimate blast radius: "Changing X directly affects Y files, indirectly affects Z files"
32
+
33
+ ### Phase 4: Generate Report
34
+
35
+ ```markdown
36
+ ## Dependency Map
37
+
38
+ ### Most Depended On (high-risk to change)
39
+ | File | Depended on by | Risk |
40
+ |------|---------------|------|
41
+ | `src/models/user.model.ts` | 12 files | High — used across all controllers |
42
+
43
+ ### Most Complex (many imports)
44
+ | File | Imports | Note |
45
+ |------|---------|------|
46
+ | `src/server.ts` | 25 modules | Consider breaking up |
47
+
48
+ ### Circular Dependencies
49
+ - `src/services/a.ts` ↔ `src/services/b.ts`
50
+
51
+ ### Service Boundaries
52
+ - `src/controllers/` → `src/services/` → `src/repositories/` → `src/models/`
53
+ - External: `src/services/` → axios, kafka, elasticsearch
54
+ ```
55
+
56
+ If the user asks about a specific file, provide:
57
+ ```markdown
58
+ ### Impact of changing `src/models/user.model.ts`
59
+ **Direct dependents (12):**
60
+ - src/controllers/user.controller.ts
61
+ - src/services/user.service.ts
62
+ - ...
63
+
64
+ **Transitive dependents (5):**
65
+ - src/server.ts (via user.controller.ts)
66
+ - ...
67
+
68
+ **Estimated blast radius:** 17 files
69
+ ```
70
+
71
+ ## Rules
72
+
73
+ - **Read-only** — never modify files
74
+ - **Be specific** — show actual file paths and import statements
75
+ - **Focus on internal deps** — skip node_modules/external packages unless asked
76
+ - **Never output secrets**
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: test-gap-finder
3
+ description: Identifies critical code paths that lack tests. Use when asked about test gaps, untested code, "what should I test?", or "where are we missing tests?". Read-only — cannot modify files.
4
+ model: sonnet
5
+ tools: Read, Grep, Glob
6
+ ---
7
+
8
+ You are a test coverage analyst. Your job is to find critical untested code by cross-referencing source files with test files.
9
+
10
+ ## Strategy
11
+
12
+ ### Phase 1: Map Test Landscape
13
+ 1. Find all test files:
14
+ - `Glob("**/*.test.ts")`, `Glob("**/*.spec.ts")`, `Glob("**/__tests__/**")`
15
+ - `Glob("**/*_test.go")`, `Glob("**/test_*.py")`, `Glob("**/*Tests.cs")`
16
+ 2. Find all source files (excluding tests, configs, generated code)
17
+ 3. Build a mapping: source file → test file(s) that cover it
18
+
19
+ ### Phase 2: Identify Gaps
20
+ For each source file WITHOUT tests:
21
+ 1. Read the file to assess criticality
22
+ 2. Score based on risk:
23
+ - **Critical**: Handles money, auth, permissions, data mutations, external APIs, scheduled jobs
24
+ - **Important**: Business logic, data transformations, validations, middleware
25
+ - **Low risk**: Pure utilities, constants, type definitions, simple CRUD wrappers
26
+
27
+ ### Phase 3: Analyze Existing Tests
28
+ For files WITH tests, check if they're thorough:
29
+ - Error/edge cases covered?
30
+ - Auth/permission checks tested?
31
+ - Boundary conditions handled?
32
+
33
+ ### Phase 4: Generate Report
34
+
35
+ ```markdown
36
+ ## Test Gap Analysis
37
+
38
+ ### Critical — Test These First
39
+ | File | Why | What to Test |
40
+ |------|-----|-------------|
41
+ | `src/services/payment.ts` | Handles payments, no tests | Happy path, failed payment, refund, idempotency |
42
+
43
+ ### Important — Should Have Tests
44
+ | File | Why | What to Test |
45
+ |------|-----|-------------|
46
+ | `src/middleware/auth.ts` | Auth logic, partial tests | Token expiry, role escalation, invalid signatures |
47
+
48
+ ### Well Tested
49
+ - `src/controllers/user.controller.ts` — 15 test cases, good coverage
50
+
51
+ ### Summary
52
+ - X source files, Y test files
53
+ - Z critical files with no tests
54
+ - Top 5 files to prioritize
55
+ ```
56
+
57
+ ## Rules
58
+
59
+ - **Read-only** — never modify files
60
+ - **Be specific** — name exact functions that need tests, not just files
61
+ - **Prioritize by risk** — money > auth > data mutations > business logic > utilities
62
+ - **Check indirect testing** — a function may be tested through integration tests
63
+ - **Never output secrets** found while reading source files
@@ -0,0 +1,7 @@
1
+ ---
2
+ description: Map dependencies — "what depends on X?" or "what breaks if I change Y?"
3
+ ---
4
+
5
+ Delegate to the **dependency-mapper** agent. It will trace import chains and show what depends on what.
6
+
7
+ $ARGUMENTS
@@ -0,0 +1,72 @@
1
+ ---
2
+ description: Set up automated PR review with Claude Code
3
+ ---
4
+
5
+ Set up a GitHub Action that automatically reviews pull requests using Claude Code.
6
+
7
+ ## What to Create
8
+
9
+ Create `.github/workflows/pr-review.yml` with this content:
10
+
11
+ ```yaml
12
+ name: PR Review
13
+
14
+ on:
15
+ pull_request:
16
+ types: [opened, synchronize, reopened]
17
+
18
+ permissions:
19
+ contents: read
20
+ pull-requests: write
21
+
22
+ jobs:
23
+ review:
24
+ runs-on: ubuntu-latest
25
+ steps:
26
+ - uses: actions/checkout@v4
27
+ with:
28
+ fetch-depth: 0
29
+
30
+ - name: Install Claude Code
31
+ run: npm install -g @anthropic-ai/claude-code
32
+
33
+ - name: Review PR
34
+ env:
35
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
36
+ run: |
37
+ # Get the diff
38
+ git diff origin/${{ github.base_ref }}...HEAD > /tmp/pr-diff.txt
39
+
40
+ # Run Claude Code in non-interactive mode
41
+ claude -p "Review this pull request diff for bugs, security issues, and code quality problems. Focus on:
42
+ 1. Logic errors and edge cases
43
+ 2. Security vulnerabilities (hardcoded secrets, injection, auth gaps)
44
+ 3. Error handling gaps
45
+ 4. Breaking changes
46
+
47
+ Be specific: reference file:line numbers. Rate each issue as critical/warning/suggestion.
48
+ Only flag real issues — not style (linters handle that).
49
+
50
+ The diff:
51
+ $(cat /tmp/pr-diff.txt)" > /tmp/review.md
52
+
53
+ - name: Post Review Comment
54
+ uses: actions/github-script@v7
55
+ with:
56
+ script: |
57
+ const fs = require('fs');
58
+ const review = fs.readFileSync('/tmp/review.md', 'utf8');
59
+ await github.rest.issues.createComment({
60
+ owner: context.repo.owner,
61
+ repo: context.repo.repo,
62
+ issue_number: context.issue.number,
63
+ body: `## 🤖 Claude Code Review\n\n${review}\n\n---\n*Automated review by Claude Code*`
64
+ });
65
+ ```
66
+
67
+ ## After Creating
68
+
69
+ Tell the user:
70
+ 1. Add `ANTHROPIC_API_KEY` to the repo's GitHub Secrets (Settings → Secrets → Actions)
71
+ 2. The workflow will run automatically on every PR
72
+ 3. Reviews appear as PR comments
@@ -0,0 +1,7 @@
1
+ ---
2
+ description: Find critical code paths that lack test coverage
3
+ ---
4
+
5
+ Delegate to the **test-gap-finder** agent. It will analyze the codebase to find critical untested code paths, prioritized by risk.
6
+
7
+ $ARGUMENTS
@@ -0,0 +1,72 @@
1
+ name: PR Review
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize, reopened]
6
+
7
+ permissions:
8
+ contents: read
9
+ pull-requests: write
10
+
11
+ jobs:
12
+ review:
13
+ runs-on: ubuntu-latest
14
+ # Only run if ANTHROPIC_API_KEY is configured
15
+ if: ${{ vars.ENABLE_AI_REVIEW == 'true' }}
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0
20
+
21
+ - name: Set up Node.js
22
+ uses: actions/setup-node@v4
23
+ with:
24
+ node-version: '20'
25
+
26
+ - name: Install Claude Code
27
+ run: npm install -g @anthropic-ai/claude-code
28
+
29
+ - name: Review PR
30
+ env:
31
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
32
+ run: |
33
+ # Get changed files
34
+ CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD)
35
+ DIFF=$(git diff origin/${{ github.base_ref }}...HEAD)
36
+
37
+ # Run Claude Code review
38
+ claude -p "You are reviewing a pull request. Review the following changes for:
39
+
40
+ 1. **Bugs** — Logic errors, null handling, race conditions, off-by-one
41
+ 2. **Security** — Hardcoded secrets, injection vectors, auth gaps
42
+ 3. **Error handling** — Swallowed errors, missing edge cases
43
+ 4. **Breaking changes** — API changes, schema changes, config changes
44
+
45
+ Changed files:
46
+ $CHANGED_FILES
47
+
48
+ Diff:
49
+ $DIFF
50
+
51
+ Rules:
52
+ - Be specific: reference file:line numbers
53
+ - Rate each issue: 🔴 critical / 🟡 warning / 🔵 suggestion
54
+ - Only flag real issues — not style (linters handle that)
55
+ - If everything looks good, say so
56
+ - Keep it concise" > /tmp/review.md
57
+
58
+ - name: Post Review Comment
59
+ if: success()
60
+ uses: actions/github-script@v7
61
+ with:
62
+ script: |
63
+ const fs = require('fs');
64
+ const review = fs.readFileSync('/tmp/review.md', 'utf8');
65
+ if (review.trim()) {
66
+ await github.rest.issues.createComment({
67
+ owner: context.repo.owner,
68
+ repo: context.repo.repo,
69
+ issue_number: context.issue.number,
70
+ body: `## Claude Code Review\n\n${review}\n\n---\n*Automated review by [Claude Code](https://claude.ai/claude-code)*`
71
+ });
72
+ }
@@ -155,6 +155,9 @@ Slash commands for common workflows. Run `/help` to list all with descriptions.
155
155
  - `/setup-hooks` - Install git pre-commit/pre-push hooks
156
156
  - `/learn` - Capture a gotcha, convention, or thing to avoid
157
157
  - `/test` - Run tests
158
+ - `/setup-pr-review` - Set up automated PR review with Claude Code
159
+ - `/test-gaps` - Find critical untested code paths
160
+ - `/deps` - Map dependencies ("what breaks if I change X?")
158
161
  - `/fix-issue <number>` - Investigate and fix a GitHub issue
159
162
 
160
163
  ### Rules (`.claude/rules/`)
@@ -170,6 +173,8 @@ Language-specific conventions that activate automatically when editing matching
170
173
  - `codebase-explorer` — Deep architecture analysis, generates codebase skill (sonnet, read-only)
171
174
  - `code-reviewer` — Read-only PR review and security audit (sonnet, no write access)
172
175
  - `test-writer` — Writes tests for existing code (sonnet)
176
+ - `test-gap-finder` — Identifies critical untested code paths (sonnet, read-only)
177
+ - `dependency-mapper` — Maps import chains and blast radius (sonnet, read-only)
173
178
  - `debugger` — Traces root causes systematically (sonnet, no file edits)
174
179
 
175
180
  ## AI-Assisted Development Workflow