create-qa-architect 5.0.6 → 5.0.7

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.
@@ -0,0 +1,32 @@
1
+ name: Dependabot Auto-Merge
2
+
3
+ on: pull_request
4
+
5
+ permissions:
6
+ contents: write
7
+ pull-requests: write
8
+
9
+ jobs:
10
+ dependabot:
11
+ runs-on: ubuntu-latest
12
+ if: github.actor == 'dependabot[bot]'
13
+ steps:
14
+ - name: Dependabot metadata
15
+ id: metadata
16
+ uses: dependabot/fetch-metadata@v2
17
+ with:
18
+ github-token: '${{ secrets.GITHUB_TOKEN }}'
19
+
20
+ - name: Enable auto-merge for patch and minor updates
21
+ if: steps.metadata.outputs.update-type == 'version-update:semver-patch' || steps.metadata.outputs.update-type == 'version-update:semver-minor'
22
+ run: gh pr merge --auto --squash "$PR_URL"
23
+ env:
24
+ PR_URL: ${{ github.event.pull_request.html_url }}
25
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26
+
27
+ - name: Approve PR
28
+ if: steps.metadata.outputs.update-type == 'version-update:semver-patch' || steps.metadata.outputs.update-type == 'version-update:semver-minor'
29
+ run: gh pr review --approve "$PR_URL"
30
+ env:
31
+ PR_URL: ${{ github.event.pull_request.html_url }}
32
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
package/LICENSE CHANGED
@@ -17,17 +17,17 @@ TERMS OF USE:
17
17
  - Standard pre-commit hooks
18
18
 
19
19
  2. PAID TIERS
20
- - Pro: $59/month or $590/year
20
+ - Pro: $19/month or $190/year
21
21
  - Security scanning (Gitleaks + ESLint security)
22
22
  - Smart Test Strategy
23
23
  - Multi-language support
24
24
  - Unlimited repos
25
- - Team: $15/user/month (5-seat minimum)
25
+ - Team: Contact us (coming soon)
26
26
  - All Pro features
27
27
  - RBAC and team policies
28
28
  - Slack alerts
29
29
  - Multi-repo dashboard
30
- - Enterprise: $249/month + $499 onboarding
30
+ - Enterprise: Contact us (coming soon)
31
31
  - All Team features
32
32
  - SSO/SAML integration
33
33
  - Custom policies
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Quality automation CLI for JavaScript/TypeScript and Python projects. One command adds ESLint, Prettier, Husky, lint-staged, and GitHub Actions. Pro tiers add security scanning (Gitleaks), Smart Test Strategy, and multi-language support.
4
4
 
5
- **This repo = the free CLI.** For the Pro dashboard with repo analytics, CI integration, and automation workflows, see [QA Architect Pro](https://vibebuildlab.com/tools/qa-architect) (included in VBL Starter Kit).
5
+ **This repo = the free CLI.** For the Pro dashboard with repo analytics, CI integration, and automation workflows, see [QA Architect Pro](https://vibebuildlab.com/qa-architect) (included in VBL Starter Kit).
6
6
 
7
7
  ---
8
8
 
@@ -41,12 +41,12 @@ npx create-qa-architect@latest
41
41
 
42
42
  ## Pricing
43
43
 
44
- | Tier | Price | What You Get |
45
- | -------------- | ------------------------- | -------------------------------------------------------------------------------------------------- |
46
- | **Free** | $0 | CLI tool, basic linting/formatting, npm audit (capped: 1 private repo, 50 runs/mo) |
47
- | **Pro** | $59/mo or $590/yr | **Security scanning (Gitleaks + ESLint security)**, Smart Test Strategy, multi-language, unlimited |
48
- | **Team** | $15/user/mo (5-seat min) | + RBAC, Slack alerts, multi-repo dashboard, team audit log |
49
- | **Enterprise** | $249/mo + $499 onboarding | + SSO/SAML, custom policies, compliance pack, dedicated TAM |
44
+ | Tier | Price | What You Get |
45
+ | -------------- | ----------------- | -------------------------------------------------------------------------------------------------- |
46
+ | **Free** | $0 | CLI tool, basic linting/formatting, npm audit (capped: 1 private repo, 50 runs/mo) |
47
+ | **Pro** | $19/mo or $190/yr | **Security scanning (Gitleaks + ESLint security)**, Smart Test Strategy, multi-language, unlimited |
48
+ | **Team** | Contact us | + RBAC, Slack alerts, multi-repo dashboard, team audit log _(coming soon)_ |
49
+ | **Enterprise** | Contact us | + SSO/SAML, custom policies, compliance pack, dedicated TAM _(coming soon)_ |
50
50
 
51
51
  > **Pro included in [VBL Starter Kit](https://vibebuildlab.com/starter-kit)** — Team/Enterprise are standalone purchases.
52
52
 
@@ -188,13 +188,7 @@ npm run validate:pre-push # Pre-push validation
188
188
 
189
189
  ## Roadmap
190
190
 
191
- - [x] ESLint 9 flat config support
192
- - [x] Progressive quality (maturity detection)
193
- - [x] Python toolchain support
194
- - [x] Smart test strategy (Pro)
195
- - [x] Monorepo support (Nx, Turborepo, Lerna, Rush, npm/pnpm/yarn workspaces)
196
- - [ ] Rust and Go support
197
- - [ ] VS Code extension
191
+ See [ROADMAP.md](ROADMAP.md) for planned features and strategic direction.
198
192
 
199
193
  ## Contributing
200
194
 
@@ -9,18 +9,18 @@ QA Architect is a CLI tool that bootstraps quality automation in JavaScript/Type
9
9
  ```
10
10
  create-qa-architect/
11
11
  ├── setup.js # Main CLI entry point
12
- ├── lib/
13
- │ ├── smart-strategy-generator.js # Smart test strategy (Pro)
14
- │ ├── dependency-monitoring-*.js # Dependency monitoring
15
- │ └── validation/ # Validation utilities
12
+ ├── lib/ # Core logic (validation, licensing, maturity, telemetry, dependency monitoring)
16
13
  ├── templates/ # Project templates
17
- │ ├── eslint.config.cjs
18
- │ ├── .prettierrc
19
- │ ├── .husky/
20
- └── scripts/
21
- └── config/ # Language-specific configs
22
- ├── pyproject.toml
23
- └── quality-python.yml
14
+ │ ├── ci/ # GitHub Actions + CircleCI/GitLab samples
15
+ │ ├── scripts/ # Helper scripts (smart test strategy, etc.)
16
+ │ ├── integration-tests/# Starter integration tests
17
+ ├── test-stubs/ # Unit/E2E placeholders
18
+ │ ├── python/ # Python quality config
19
+ │ └── QUALITY_TROUBLESHOOTING.md
20
+ ├── config/ # Defaults and language-specific configs
21
+ │ ├── pyproject.toml
22
+ │ └── quality-python.yml
23
+ └── docs/ # Architecture/testing/SLA/security docs
24
24
  ```
25
25
 
26
26
  ## Data Flow
@@ -50,4 +50,8 @@ Risk-based pre-push validation that adapts to change context:
50
50
  - `--deps` - Dependency monitoring only
51
51
  - `--security-config` - Security validation
52
52
  - `--check-maturity` - Project maturity report
53
- - `--comprehensive` - Full validation suite
53
+ - `--validate` / `--comprehensive` - Full validation suite
54
+ - `--validate-docs` - Documentation validation only
55
+ - `--validate-config` - Validate `.qualityrc.json`
56
+ - `--alerts-slack` / `--pr-comments` - Collaboration hooks
57
+ - `--license-status` - Show current tier/features
@@ -1,14 +1,14 @@
1
1
  # Preflight Review: QA Architect (create-qa-architect)
2
2
 
3
3
  **Depth**: standard
4
- **Date**: 2025-12-09
5
- **Version**: 5.0.2
4
+ **Date**: 2025-12-13
5
+ **Version**: 5.0.7
6
6
 
7
7
  ---
8
8
 
9
- ## Overall Status: ✅ PASS
9
+ ## Overall Status: ✅ PASS (prerelease suite)
10
10
 
11
- All critical launch blockers pass. Minor issues documented below are acceptable for npm package release.
11
+ Prerelease (`npm run prerelease`) executed for 5.0.7, including docs check, command patterns, full test suite, command tests, and e2e package validation.
12
12
 
13
13
  ---
14
14
 
@@ -22,44 +22,44 @@ All critical launch blockers pass. Minor issues documented below are acceptable
22
22
 
23
23
  ## Important Issues (P1) - Should Fix
24
24
 
25
- | Issue | Category | Location | Recommendation |
26
- | ------------------------ | -------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------ |
27
- | Gitleaks false positives | Security | tests/\*.test.js | Test fixtures use fake API key patterns (QAA-XXXX format); not real secrets. Consider adding `.gitleaksignore` for test files. |
28
- | npm version mismatch | Release | package.json | Local 5.0.2, npm shows 5.0.1. Publish pending or recently published. |
25
+ | Issue | Category | Location | Recommendation |
26
+ | ------------------------ | -------- | ---------------- | ------------------------------------------------------------------------------------------------------------ |
27
+ | Gitleaks false positives | Security | tests/\*.test.js | Test fixtures use fake API key patterns (QAA-XXXX format); consider a scoped `.gitleaksignore` for fixtures. |
28
+ | Publish verification | Release | package.json | Confirm npm shows 5.0.7 after publishing; update if propagation is pending. |
29
29
 
30
30
  ---
31
31
 
32
32
  ## P0 Functional Checks
33
33
 
34
- | Check | Status | Notes |
35
- | ----------------- | ------ | ---------------------- |
36
- | All tests passing | ✅ | Full test suite passes |
37
- | npm audit | | 0 vulnerabilities |
38
- | ESLint | | No errors |
39
- | Build/validation | ✅ | Core validation passes |
34
+ | Check | Status | Notes |
35
+ | ----------------- | ------ | ------------------------------------------------------------------ |
36
+ | All tests passing | ✅ | `npm run prerelease` (includes full test suite) |
37
+ | npm audit | ⚠️ | Not run in prerelease; run `npm run security:audit` before publish |
38
+ | ESLint | ⚠️ | Not run in prerelease; run `npm run lint` if desired |
39
+ | Build/validation | ✅ | Covered via prerelease command + e2e package test |
40
40
 
41
41
  ---
42
42
 
43
43
  ## P0 Security Checks
44
44
 
45
- | Check | Status | Notes |
46
- | ------------------------- | ------ | -------------------------------------------------------------------- |
47
- | npm audit (high/critical) | | 0 vulnerabilities found |
48
- | Hardcoded secrets scan | ⚠️ | 4 findings - all in test files with fake keys (QAA-1234-XXXX format) |
49
- | No production secrets | ✅ | No `.env` files, no real API keys |
45
+ | Check | Status | Notes |
46
+ | ------------------------- | ------ | ------------------------------------------------------------------------------------- |
47
+ | npm audit (high/critical) | ⚠️ | Not run in prerelease; run `npm run security:audit` |
48
+ | Hardcoded secrets scan | ⚠️ | Re-run gitleaks/`npm run security:secrets`; expect fixture false positives (QAA-XXXX) |
49
+ | No production secrets | ✅ | No `.env` files, no real API keys committed |
50
50
 
51
51
  ---
52
52
 
53
53
  ## Product Packaging
54
54
 
55
- | Item | Status | Notes |
56
- | ------------ | ------ | ----------------------- |
57
- | CHANGELOG.md | ✅ | Present |
58
- | LICENSE | ✅ | Present |
59
- | README.md | ✅ | Present |
60
- | .env.example | N/A | Not needed for CLI tool |
61
- | Version tags | | v4.3.0 - v5.0.2 |
62
- | Git status | | Clean working tree |
55
+ | Item | Status | Notes |
56
+ | ------------ | ------ | ------------------------------ |
57
+ | CHANGELOG.md | ✅ | Present |
58
+ | LICENSE | ✅ | Present |
59
+ | README.md | ✅ | Present |
60
+ | .env.example | N/A | Not needed for CLI tool |
61
+ | Version tags | ⚠️ | Confirm v5.0.7 tag pushed |
62
+ | Git status | ⚠️ | Verify clean before publishing |
63
63
 
64
64
  ---
65
65
 
@@ -87,22 +87,14 @@ All critical launch blockers pass. Minor issues documented below are acceptable
87
87
 
88
88
  ## Next Steps
89
89
 
90
- 1. **Optional**: Add `.gitleaksignore` to exclude test files with fake license keys
91
- 2. **Verify**: Confirm npm publish completed for 5.0.2 (may be propagating)
92
- 3. **Ready**: Proceed with launch/release announcement
90
+ 1. Run `npm run security:audit` (and optional gitleaks scan) before publish
91
+ 2. Confirm npm publish and tag for 5.0.7 are visible on npm/GitHub
92
+ 3. Add `.gitleaksignore` scoped to test fixtures if false positives remain
93
93
 
94
94
  ---
95
95
 
96
96
  ## Recommendation
97
97
 
98
- **✅ CLEARED FOR LAUNCH**
98
+ **✅ Cleared for launch (5.0.7)**
99
99
 
100
- This is an npm CLI package, not a web application. All critical checks pass:
101
-
102
- - Tests passing
103
- - No security vulnerabilities
104
- - No real secrets
105
- - Clean git state
106
- - Proper versioning and packaging
107
-
108
- The gitleaks findings are false positives on intentional test fixtures using fake license key formats.
100
+ Prerelease suite passed for 5.0.7. Run `npm run security:audit`, confirm publish/tag visibility, and handle fixture gitleaks ignores if needed; then proceed with release comms. This remains an npm CLI package (no web surface), so focus stays on docs/CI/security validation.
package/docs/TESTING.md CHANGED
@@ -2,14 +2,13 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- QA Architect uses Jest for testing with a focus on integration tests that validate real CLI workflows.
5
+ QA Architect uses plain Node-based test runners (no Jest) with a heavy focus on integration tests that validate real CLI workflows end to end.
6
6
 
7
7
  ## Running Tests
8
8
 
9
9
  ```bash
10
- npm test # Run all tests
11
- npm run test:coverage # Run with coverage report
12
- npm run test:watch # Watch mode for development
10
+ npm test # Run all tests (sequential Node scripts)
11
+ npm run test:coverage # Run with coverage report via c8
13
12
  ```
14
13
 
15
14
  ## Test Structure
@@ -311,9 +311,9 @@
311
311
  onclick="selectTier('pro')"
312
312
  >
313
313
  <div class="tier-name">Pro</div>
314
- <div class="tier-price">$59<span class="period">/month</span></div>
314
+ <div class="tier-price">$19<span class="period">/month</span></div>
315
315
  <div style="color: #22c55e; font-size: 0.9rem">
316
- or $590/year (save $118)
316
+ or $190/year (save $38)
317
317
  </div>
318
318
 
319
319
  <ul class="tier-features">
@@ -329,12 +329,8 @@
329
329
  <!-- Team Tier -->
330
330
  <div class="tier-card" data-tier="team" onclick="selectTier('team')">
331
331
  <div class="tier-name">Team</div>
332
- <div class="tier-price">
333
- $15<span class="period">/user/month</span>
334
- </div>
335
- <div style="color: #666; font-size: 0.9rem">
336
- 5-seat minimum ($75/mo)
337
- </div>
332
+ <div class="tier-price">Contact us</div>
333
+ <div style="color: #666; font-size: 0.9rem">Coming soon</div>
338
334
 
339
335
  <ul class="tier-features">
340
336
  <li>All PRO features included</li>
@@ -353,10 +349,8 @@
353
349
  onclick="selectTier('enterprise')"
354
350
  >
355
351
  <div class="tier-name">Enterprise</div>
356
- <div class="tier-price">$249<span class="period">/month</span></div>
357
- <div style="color: #666; font-size: 0.9rem">
358
- annual + $499 onboarding
359
- </div>
352
+ <div class="tier-price">Contact us</div>
353
+ <div style="color: #666; font-size: 0.9rem">Coming soon</div>
360
354
 
361
355
  <ul class="tier-features">
362
356
  <li>All TEAM features included</li>
package/lib/licensing.js CHANGED
@@ -36,11 +36,11 @@ Object.defineProperty(exports, 'LICENSE_FILE', {
36
36
  * Standardized to use SCREAMING_SNAKE_CASE for both keys and values
37
37
  * for consistency with ErrorCategory and other enums in the codebase.
38
38
  *
39
- * Pricing (effective Jan 15, 2026 - founder pricing retired):
39
+ * Pricing:
40
40
  * - FREE: $0 (Hobby/OSS - capped)
41
- * - PRO: $59/mo or $590/yr (Solo Devs/Small Teams)
42
- * - TEAM: $15/user/mo, 5-seat minimum (Organizations)
43
- * - ENTERPRISE: $249/mo annual + $499 onboarding (Large Orgs)
41
+ * - PRO: $19/mo or $190/yr (Solo Devs/Small Teams)
42
+ * - TEAM: Contact us (Organizations) - coming soon
43
+ * - ENTERPRISE: Contact us (Large Orgs) - coming soon
44
44
  */
45
45
  const LICENSE_TIERS = {
46
46
  FREE: 'FREE',
@@ -384,7 +384,7 @@ function showUpgradeMessage(feature) {
384
384
  if (license.tier === LICENSE_TIERS.FREE) {
385
385
  console.log('\n🚀 Upgrade to PRO')
386
386
  console.log('')
387
- console.log(' 💰 $59/month or $590/year (save $118)')
387
+ console.log(' 💰 $19/month or $190/year (save $38)')
388
388
  console.log('')
389
389
  console.log(' ✅ Unlimited repos, LOC, and runs')
390
390
  console.log(' ✅ Smart Test Strategy (70% faster pre-push)')
@@ -396,16 +396,14 @@ function showUpgradeMessage(feature) {
396
396
  console.log('')
397
397
  console.log(' 🎁 Start 14-day free trial - no credit card required')
398
398
  console.log('')
399
- console.log('🚀 Upgrade: https://vibebuildlab.com/tools/qa-architect')
399
+ console.log('🚀 Upgrade: https://vibebuildlab.com/qa-architect')
400
400
  console.log(
401
401
  '🔑 Activate: npx create-qa-architect@latest --activate-license'
402
402
  )
403
403
  } else if (license.tier === LICENSE_TIERS.PRO) {
404
404
  console.log('\n👥 Upgrade to TEAM')
405
405
  console.log('')
406
- console.log(
407
- ' 💰 $15/user/month (5-seat min) or $150/user/year (save $30/user)'
408
- )
406
+ console.log(' 💰 Contact us for Team pricing')
409
407
  console.log('')
410
408
  console.log(' ✅ All PRO features included')
411
409
  console.log(' ✅ Per-seat licensing for your org')
@@ -414,9 +412,9 @@ function showUpgradeMessage(feature) {
414
412
  console.log(' ✅ Slack/email alerts for failures')
415
413
  console.log(' ✅ Priority support (business hours)')
416
414
  console.log('')
417
- console.log('👥 Upgrade: https://vibebuildlab.com/tools/qa-architect')
415
+ console.log('👥 Upgrade: https://vibebuildlab.com/qa-architect')
418
416
  } else if (license.tier === LICENSE_TIERS.TEAM) {
419
- console.log('\n🏢 Upgrade to ENTERPRISE - $249/month (annual) + onboarding')
417
+ console.log('\n🏢 Upgrade to ENTERPRISE - Contact us for pricing')
420
418
  console.log('')
421
419
  console.log(' ✅ All TEAM features included')
422
420
  console.log(' ✅ SSO/SAML integration')
@@ -958,7 +956,7 @@ function showLicenseStatus() {
958
956
  // Show upgrade path
959
957
  if (license.tier === LICENSE_TIERS.FREE) {
960
958
  console.log('\n💡 Upgrade to PRO for unlimited access + security scanning')
961
- console.log(' → https://vibebuildlab.com/tools/qa-architect')
959
+ console.log(' → https://vibebuildlab.com/qa-architect')
962
960
  }
963
961
  }
964
962
 
@@ -15,6 +15,8 @@ const GITLEAKS_VERSION = '8.28.0'
15
15
  const GITLEAKS_CHECKSUMS = {
16
16
  'linux-x64':
17
17
  '5fd1b3b0073269484d40078662e921d07427340ab9e6ed526ccd215a565b3298',
18
+ 'linux-arm64':
19
+ '3770c7ebeb625e3e96c183525ca18285a01aedef2d75a2c41ceb3e141af2e8b7',
18
20
  'darwin-x64':
19
21
  'cf09ad7a85683d90221db8324f036f23c8c29107145e1fc4a0dffbfa9e89c09a',
20
22
  'darwin-arm64':
@@ -200,6 +202,7 @@ class ConfigSecurityScanner {
200
202
  'darwin-x64': 'darwin_x64',
201
203
  'darwin-arm64': 'darwin_arm64',
202
204
  'linux-x64': 'linux_x64',
205
+ 'linux-arm64': 'linux_arm64',
203
206
  'win32-x64': 'windows_x64',
204
207
  }
205
208
 
@@ -350,6 +353,7 @@ class ConfigSecurityScanner {
350
353
  timeout: 60000, // 60 second timeout for audit operations
351
354
  encoding: 'utf8',
352
355
  })
356
+ spinner.succeed('npm audit completed - no high/critical vulnerabilities')
353
357
  } catch (error) {
354
358
  if (error.signal === 'SIGTERM') {
355
359
  // Timeout occurred
@@ -2,7 +2,6 @@
2
2
 
3
3
  const fs = require('fs')
4
4
  const path = require('path')
5
- const { execSync } = require('child_process')
6
5
  const { showProgress } = require('../ui-helpers')
7
6
 
8
7
  /**
@@ -85,32 +84,38 @@ class WorkflowValidator {
85
84
  const spinner = showProgress('Running actionlint on workflow files...')
86
85
 
87
86
  try {
88
- // Run actionlint via npx (works with local and global installs, cross-platform)
89
- execSync('npx actionlint', { stdio: 'pipe', cwd: process.cwd() })
90
- spinner.succeed('actionlint validation passed')
91
- } catch (error) {
92
- if (error.stdout || error.stderr) {
93
- const output = error.stdout
94
- ? error.stdout.toString()
95
- : error.stderr.toString()
96
- const lines = output
97
- .trim()
98
- .split('\n')
99
- .filter(line => line.trim())
100
-
101
- if (lines.length > 0) {
102
- spinner.fail(`actionlint found ${lines.length} issue(s)`)
103
- lines.forEach(line => {
104
- if (line.trim()) {
105
- this.issues.push(`actionlint: ${line.trim()}`)
106
- }
87
+ const { createLinter } = require('actionlint')
88
+ const workflowFiles = fs
89
+ .readdirSync(workflowDir)
90
+ .filter(file => file.endsWith('.yml') || file.endsWith('.yaml'))
91
+
92
+ const linter = await createLinter()
93
+ let issueCount = 0
94
+
95
+ for (const file of workflowFiles) {
96
+ const filePath = path.join(workflowDir, file)
97
+ const content = fs.readFileSync(filePath, 'utf8')
98
+ const results = linter(content, filePath) || []
99
+
100
+ if (Array.isArray(results) && results.length > 0) {
101
+ issueCount += results.length
102
+ results.forEach(result => {
103
+ this.issues.push(
104
+ `actionlint: ${result.file}:${result.line}:${result.column} ${result.kind} - ${result.message}`
105
+ )
107
106
  })
108
- } else {
109
- spinner.succeed('actionlint validation passed')
110
107
  }
108
+ }
109
+
110
+ if (issueCount > 0) {
111
+ spinner.fail(`actionlint found ${issueCount} issue(s)`)
111
112
  } else {
112
113
  spinner.succeed('actionlint validation passed')
113
114
  }
115
+ } catch (error) {
116
+ spinner.fail('actionlint failed to run')
117
+ const reason = error?.message || 'Unknown error'
118
+ this.issues.push(`actionlint: Failed to run - ${reason}`)
114
119
  }
115
120
  }
116
121
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-qa-architect",
3
- "version": "5.0.6",
3
+ "version": "5.0.7",
4
4
  "description": "QA Architect - Bootstrap quality automation for JavaScript/TypeScript and Python projects with GitHub Actions, pre-commit hooks, linting, formatting, and smart test strategy",
5
5
  "main": "setup.js",
6
6
  "bin": {
@@ -91,7 +91,7 @@
91
91
  "bugs": {
92
92
  "url": "https://github.com/vibebuildlab/qa-architect/issues"
93
93
  },
94
- "homepage": "https://vibebuildlab.com/tools/qa-architect",
94
+ "homepage": "https://vibebuildlab.com/qa-architect",
95
95
  "engines": {
96
96
  "node": ">=20"
97
97
  },
@@ -110,13 +110,13 @@
110
110
  "actionlint": "^2.0.6",
111
111
  "typescript": "^5",
112
112
  "c8": "^10.1.2",
113
- "eslint": "^9.12.0",
113
+ "eslint": "^9.39.2",
114
114
  "eslint-plugin-security": "^3.0.1",
115
115
  "globals": "^15.9.0",
116
116
  "husky": "^9.1.4",
117
117
  "lint-staged": "^15.2.10",
118
- "prettier": "^3.3.3",
119
- "stylelint": "^16.8.0",
118
+ "prettier": "^3.7.4",
119
+ "stylelint": "^16.26.1",
120
120
  "stylelint-config-standard": "^37.0.0"
121
121
  },
122
122
  "volta": {
@@ -159,11 +159,11 @@
159
159
  ]
160
160
  },
161
161
  "dependencies": {
162
- "@npmcli/package-json": "^7.0.1",
162
+ "@npmcli/package-json": "^7.0.4",
163
163
  "ajv": "^8.17.1",
164
164
  "ajv-formats": "^3.0.1",
165
165
  "js-yaml": "^4.1.0",
166
- "markdownlint-cli2": "^0.19.0",
166
+ "markdownlint-cli2": "^0.20.0",
167
167
  "ora": "^8.1.1",
168
168
  "tar": "^7.4.3"
169
169
  }
package/setup.js CHANGED
@@ -355,6 +355,7 @@ function parseArguments(rawArgs) {
355
355
  const disableActionlint = sanitizedArgs.includes('--no-actionlint')
356
356
  const disableMarkdownlint = sanitizedArgs.includes('--no-markdownlint')
357
357
  const disableEslintSecurity = sanitizedArgs.includes('--no-eslint-security')
358
+ const allowLatestGitleaks = sanitizedArgs.includes('--allow-latest-gitleaks')
358
359
 
359
360
  return {
360
361
  sanitizedArgs,
@@ -381,6 +382,7 @@ function parseArguments(rawArgs) {
381
382
  disableActionlint,
382
383
  disableMarkdownlint,
383
384
  disableEslintSecurity,
385
+ allowLatestGitleaks,
384
386
  }
385
387
  }
386
388
 
@@ -418,6 +420,7 @@ function parseArguments(rawArgs) {
418
420
  disableActionlint,
419
421
  disableMarkdownlint,
420
422
  disableEslintSecurity,
423
+ allowLatestGitleaks,
421
424
  } = parsedConfig
422
425
 
423
426
  // Initialize telemetry session (opt-in only, fails silently)
@@ -490,6 +493,7 @@ function parseArguments(rawArgs) {
490
493
  disableActionlint,
491
494
  disableMarkdownlint,
492
495
  disableEslintSecurity,
496
+ allowLatestGitleaks,
493
497
  } = parsedConfig)
494
498
 
495
499
  console.log('📋 Configuration after interactive selections applied\n')
@@ -652,6 +656,7 @@ HELP:
652
656
  disableActionlint,
653
657
  disableMarkdownlint,
654
658
  disableEslintSecurity,
659
+ allowLatestGitleaks,
655
660
  }
656
661
  const validator = new ValidationRunner(validationOptions)
657
662
 
@@ -741,7 +746,7 @@ HELP:
741
746
  if (!capCheck.allowed) {
742
747
  console.error(`❌ ${capCheck.reason}`)
743
748
  console.error(
744
- ' Upgrade to Pro, Team, or Enterprise for unlimited runs: https://vibebuildlab.com/tools/qa-architect'
749
+ ' Upgrade to Pro, Team, or Enterprise for unlimited runs: https://vibebuildlab.com/qa-architect'
745
750
  )
746
751
  process.exit(1)
747
752
  }
@@ -1027,7 +1032,7 @@ HELP:
1027
1032
  if (!repoCheck.allowed) {
1028
1033
  console.error(`\n❌ ${repoCheck.reason}`)
1029
1034
  console.error(
1030
- ' Upgrade to Pro for unlimited repos: https://vibebuildlab.com/tools/qa-architect'
1035
+ ' Upgrade to Pro for unlimited repos: https://vibebuildlab.com/qa-architect'
1031
1036
  )
1032
1037
  process.exit(1)
1033
1038
  }
@@ -1714,7 +1719,7 @@ try {
1714
1719
  const CAP = 50
1715
1720
  if (usage.prePushRuns >= CAP) {
1716
1721
  console.error('❌ Free tier limit reached: ' + usage.prePushRuns + '/' + CAP + ' pre-push runs this month')
1717
- console.error(' Upgrade to Pro, Team, or Enterprise: https://vibebuildlab.com/tools/qa-architect')
1722
+ console.error(' Upgrade to Pro, Team, or Enterprise: https://vibebuildlab.com/qa-architect')
1718
1723
  process.exit(1)
1719
1724
  }
1720
1725
 
@@ -11,7 +11,7 @@
11
11
 
12
12
  ```bash
13
13
  # Check if tests are TypeScript validated
14
- npm run type-check:tests
14
+ npm run type-check:tests || npx tsc --noEmit --project tests/tsconfig.json
15
15
 
16
16
  # If command doesn't exist, add to package.json:
17
17
  {
@@ -29,13 +29,13 @@ npm run type-check:tests
29
29
  "compilerOptions": {
30
30
  "rootDir": "..",
31
31
  "noEmit": true,
32
- "types": ["vitest/globals", "node"]
32
+ "types": ["node"] // add your test runner types (jest/vitest) if used
33
33
  },
34
34
  "include": ["../src/**/*", "../tests/**/*"]
35
35
  }
36
36
  ```
37
37
 
38
- **Prevention**: Run `npm run quality:check` before commits
38
+ **Prevention**: Run `npm run lint && npm test` (or `npm run validate:pre-push` if available) before commits
39
39
 
40
40
  ### Pre-commit Hooks Too Narrow
41
41
 
@@ -47,7 +47,8 @@ npm run type-check:tests
47
47
  cat .husky/pre-commit
48
48
 
49
49
  # Should run comprehensive checks:
50
- npx lint-staged && npm run type-check:all && npm test
50
+ npx lint-staged && npm run lint && npm test
51
+ # If your project has TypeScript, add: npm run type-check || npm run type-check:all
51
52
  ```
52
53
 
53
54
  **Fix**: Enhance `.husky/pre-commit`:
@@ -55,8 +56,9 @@ npx lint-staged && npm run type-check:all && npm test
55
56
  ```bash
56
57
  #!/usr/bin/env sh
57
58
  npx lint-staged
58
- npm run type-check:all
59
- npm run test:fast
59
+ npm run lint
60
+ npm test
61
+ # Optional: npm run type-check || npm run type-check:all
60
62
  ```
61
63
 
62
64
  ## 🔍 Diagnostic Commands
@@ -64,15 +66,15 @@ npm run test:fast
64
66
  ### Quick Health Check
65
67
 
66
68
  ```bash
67
- # Run all quality gates (should complete without errors)
68
- npm run quality:check
69
-
70
- # If this fails, debug individual components:
71
- npm run type-check:all # TypeScript issues
72
- npm run lint # ESLint issues
73
- npm run format:check # Prettier issues
69
+ # Run core quality gates (should complete without errors)
70
+ npm run lint # ESLint/Stylelint
71
+ npm run format:check # Prettier
74
72
  npm test # Test failures
75
73
  npm run security:audit # Security vulnerabilities
74
+
75
+ # If you use TypeScript:
76
+ npm run type-check || npx tsc --noEmit
77
+ npm run type-check:all # when defined to cover src + tests
76
78
  ```
77
79
 
78
80
  ### TypeScript Troubleshooting
@@ -89,7 +91,7 @@ npx tsc --noEmit path/to/file.ts
89
91
 
90
92
  # Common issues:
91
93
  # 1. Missing type definitions: npm install --save-dev @types/package-name
92
- # 2. Test globals: Add "vitest/globals" to types in tsconfig
94
+ # 2. Test globals: Add your test runner types (e.g., jest or vitest) to tsconfig
93
95
  # 3. Node types: Add "node" to types array
94
96
  ```
95
97
 
@@ -99,10 +101,12 @@ npx tsc --noEmit path/to/file.ts
99
101
  # Run tests with verbose output
100
102
  npm test -- --reporter=verbose
101
103
 
102
- # Run specific test file
103
- npx vitest path/to/test.test.js
104
+ # Run specific test file (Node-based runner)
105
+ node path/to/test.test.js
104
106
 
105
- # Debug integration tests
107
+ # Debug integration tests (when scripts exist)
108
+ DEBUG=* npm test
109
+ # or
106
110
  DEBUG=* npm run test:integration
107
111
 
108
112
  # Common issues:
@@ -135,10 +139,10 @@ npx eslint . --ext .js,.ts --config eslint-security.config.js
135
139
 
136
140
  ```bash
137
141
  # Database connection tests
138
- npm run test:integration
142
+ npm run test:integration # if defined; otherwise run npm test
139
143
 
140
144
  # API endpoint tests
141
- npm run test:e2e
145
+ npm run test:e2e # if defined
142
146
 
143
147
  # Common issues:
144
148
  # 1. Database not running: docker-compose up db
@@ -150,13 +154,13 @@ npm run test:e2e
150
154
 
151
155
  ```bash
152
156
  # Component integration tests
153
- npm run test:component
157
+ npm run test:component # if defined
154
158
 
155
159
  # Browser E2E tests
156
- npm run test:e2e
160
+ npm run test:e2e # if defined
157
161
 
158
162
  # Accessibility checks
159
- npm run accessibility:check
163
+ npm run accessibility:check # if defined
160
164
 
161
165
  # Common issues:
162
166
  # 1. Build process: npm run build && npm run test:e2e
@@ -187,7 +191,7 @@ npm run type-check && tsc --noEmit --skipLibCheck
187
191
  # Profile test performance
188
192
  npm test -- --reporter=verbose --logHeapUsage
189
193
 
190
- # Run only fast tests for development
194
+ # Run only fast tests for development (if defined)
191
195
  npm run test:fast
192
196
 
193
197
  # Optimize strategies:
@@ -316,14 +320,9 @@ npm audit --package=package-name
316
320
  # Generate coverage report
317
321
  npm run test:coverage
318
322
 
319
- # Check coverage thresholds
320
- npx vitest run --coverage --reporter=verbose
321
-
322
323
  # Common targets:
323
- # - Lines: >80%
324
- # - Functions: >80%
325
- # - Branches: >70%
326
- # - Statements: >80%
324
+ # - Lines/Statements/Functions/Branches: >=75% overall
325
+ # - Critical files (e.g., setup.js): >=80%
327
326
  ```
328
327
 
329
328
  ### Code Quality Metrics
@@ -382,7 +381,6 @@ npm run type-check:all # Should pass
382
381
 
383
382
  - [ESLint Troubleshooting](https://eslint.org/docs/user-guide/troubleshooting)
384
383
  - [TypeScript Handbook](https://www.typescriptlang.org/docs/)
385
- - [Vitest Documentation](https://vitest.dev/guide/)
386
384
  - [Playwright Debugging](https://playwright.dev/docs/debug)
387
385
 
388
386
  ### Debug Environment Setup
@@ -392,10 +390,11 @@ npm run type-check:all # Should pass
392
390
  export DEBUG=quality-automation:*
393
391
 
394
392
  # Run with verbose output
395
- npm run quality:check -- --verbose
393
+ npm run lint -- --max-warnings=0
394
+ npm test -- --reporter=verbose
396
395
 
397
396
  # Generate debug report
398
- npm run validate:comprehensive > debug-report.txt 2>&1
397
+ npm run validate:pre-push > debug-report.txt 2>&1
399
398
  ```
400
399
 
401
400
  ---
@@ -1,7 +1,7 @@
1
1
  #!/bin/bash
2
2
  # Smart Test Strategy - {{PROJECT_NAME}}
3
3
  # Generated by create-qa-architect (Pro/Team/Enterprise feature)
4
- # https://vibebuildlab.com/tools/qa-architect
4
+ # https://vibebuildlab.com/qa-architect
5
5
  set -e
6
6
 
7
7
  echo "🧠 Analyzing changes for optimal test strategy..."