create-qa-architect 5.6.1 → 5.9.1

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.
@@ -69,8 +69,12 @@ jobs:
69
69
  - name: Detect Project Maturity
70
70
  id: detect
71
71
  run: |
72
- # Use the project maturity detector
73
- node node_modules/create-qa-architect/lib/project-maturity.js --github-actions >> $GITHUB_OUTPUT
72
+ # Use the project maturity detector (local for qa-architect itself, node_modules for other projects)
73
+ if [ -f lib/project-maturity.js ]; then
74
+ node lib/project-maturity.js --github-actions >> $GITHUB_OUTPUT
75
+ else
76
+ node node_modules/create-qa-architect/lib/project-maturity.js --github-actions >> $GITHUB_OUTPUT
77
+ fi
74
78
 
75
79
  - name: Display Detection Report
76
80
  run: |
@@ -245,7 +249,11 @@ jobs:
245
249
  echo "🔍 Running gitleaks secret scanning..."
246
250
  # Use setup.js security scan which manages gitleaks binary internally
247
251
  # This avoids the commercial license requirement of the gitleaks-action
248
- node setup.js --security-config
252
+ if [ -f setup.js ]; then
253
+ node setup.js --security-config
254
+ else
255
+ node node_modules/create-qa-architect/setup.js --security-config
256
+ fi
249
257
 
250
258
  - name: Security pattern detection
251
259
  uses: semgrep/semgrep-action@713efdd345f3035192eaa63f56867b88e63e4e5d # v1
@@ -348,18 +356,30 @@ jobs:
348
356
  - name: Configuration security check
349
357
  run: |
350
358
  echo "🔍 Running configuration security validation..."
351
- node setup.js --security-config
359
+ if [ -f setup.js ]; then
360
+ node setup.js --security-config
361
+ else
362
+ node node_modules/create-qa-architect/setup.js --security-config
363
+ fi
352
364
 
353
365
  - name: Documentation validation
354
366
  run: |
355
367
  echo "📖 Running documentation validation..."
356
- node setup.js --validate-docs
368
+ if [ -f setup.js ]; then
369
+ node setup.js --validate-docs
370
+ else
371
+ node node_modules/create-qa-architect/setup.js --validate-docs
372
+ fi
357
373
 
358
374
  - name: Documentation consistency and security audit freshness
359
375
  run: |
360
376
  echo "🔐 Running comprehensive documentation validation..."
361
377
  # This includes security audit freshness check with proper git-based validation
362
- bash scripts/check-docs.sh
378
+ if [ -f scripts/check-docs.sh ]; then
379
+ bash scripts/check-docs.sh
380
+ else
381
+ bash node_modules/create-qa-architect/scripts/check-docs.sh
382
+ fi
363
383
 
364
384
  - name: Package size and contents validation
365
385
  if: hashFiles('package.json') != ''
@@ -402,11 +422,33 @@ jobs:
402
422
 
403
423
  - name: Lighthouse CI
404
424
  if: hashFiles('.lighthouserc.js', '.lighthouserc.json', 'lighthouserc.js') != ''
425
+ id: lighthouse
405
426
  run: |
406
427
  echo "🚢 Running Lighthouse CI..."
407
428
  npx lhci autorun
408
429
  continue-on-error: true
409
430
 
431
+ - name: Report Lighthouse Failures
432
+ if: steps.lighthouse.outcome == 'failure'
433
+ env:
434
+ MATURITY: ${{ needs.detect-maturity.outputs.maturity }}
435
+ run: |
436
+ echo "::error::Lighthouse CI failed - performance budgets or quality thresholds violated"
437
+ echo "Review the Lighthouse report to see which metrics failed."
438
+ echo "Common failures: performance score, accessibility issues, SEO problems"
439
+
440
+ # Add to job summary for visibility
441
+ echo "## ⚠️ Lighthouse CI Failed" >> $GITHUB_STEP_SUMMARY
442
+ echo "Performance budgets or quality thresholds were violated." >> $GITHUB_STEP_SUMMARY
443
+ echo "This is currently a soft failure (continue-on-error: true)." >> $GITHUB_STEP_SUMMARY
444
+ echo "Review the Lighthouse report in the Actions logs above." >> $GITHUB_STEP_SUMMARY
445
+
446
+ # Fail build for production-ready projects
447
+ if [ "$MATURITY" == "production-ready" ]; then
448
+ echo "::error::Production-ready projects must pass Lighthouse CI checks"
449
+ exit 1
450
+ fi
451
+
410
452
  # Step 7: Summary - report what checks ran
411
453
  summary:
412
454
  runs-on: ubuntu-latest
@@ -421,6 +463,12 @@ jobs:
421
463
 
422
464
  steps:
423
465
  - name: Generate Check Summary
466
+ env:
467
+ CORE_RESULT: ${{ needs.core-checks.result }}
468
+ LINTING_RESULT: ${{ needs.linting.result }}
469
+ SECURITY_RESULT: ${{ needs.security.result }}
470
+ TESTS_RESULT: ${{ needs.tests.result }}
471
+ DOCS_RESULT: ${{ needs.documentation.result }}
424
472
  run: |
425
473
  echo "## Quality Checks Summary 📊" >> $GITHUB_STEP_SUMMARY
426
474
  echo "" >> $GITHUB_STEP_SUMMARY
@@ -433,11 +481,59 @@ jobs:
433
481
  echo "- Has documentation: ${{ needs.detect-maturity.outputs.has-docs }}" >> $GITHUB_STEP_SUMMARY
434
482
  echo "" >> $GITHUB_STEP_SUMMARY
435
483
  echo "### Checks Executed" >> $GITHUB_STEP_SUMMARY
436
- echo "- ✅ Core checks: Always run" >> $GITHUB_STEP_SUMMARY
437
- echo "- ${{ needs.detect-maturity.outputs.source-count > 0 && '✅' || '⏭️' }} Linting: ${{ needs.detect-maturity.outputs.source-count > 0 && 'Enabled' || 'Skipped (no source files)' }}" >> $GITHUB_STEP_SUMMARY
438
- echo "- ${{ needs.detect-maturity.outputs.has-deps == 'true' && '✅' || '⏭️' }} Security: ${{ needs.detect-maturity.outputs.has-deps == 'true' && 'Enabled' || 'Skipped (no dependencies)' }}" >> $GITHUB_STEP_SUMMARY
439
- echo "- ${{ needs.detect-maturity.outputs.test-count > 0 && '' || '⏭️' }} Tests: ${{ needs.detect-maturity.outputs.test-count > 0 && 'Enabled' || 'Skipped (no test files)' }}" >> $GITHUB_STEP_SUMMARY
440
- echo "- ${{ needs.detect-maturity.outputs.maturity == 'production-ready' && '✅' || '⏭️' }} Documentation: ${{ needs.detect-maturity.outputs.maturity == 'production-ready' && 'Enabled' || 'Skipped (not production-ready)' }}" >> $GITHUB_STEP_SUMMARY
484
+
485
+ # Core checks
486
+ if [ "$CORE_RESULT" == "success" ]; then
487
+ echo "- ✅ Core checks: Passed" >> $GITHUB_STEP_SUMMARY
488
+ elif [ "$CORE_RESULT" == "failure" ]; then
489
+ echo "- ❌ Core checks: Failed" >> $GITHUB_STEP_SUMMARY
490
+ else
491
+ echo "- ⚠️ Core checks: $CORE_RESULT" >> $GITHUB_STEP_SUMMARY
492
+ fi
493
+
494
+ # Linting
495
+ if [ "$LINTING_RESULT" == "success" ]; then
496
+ echo "- ✅ Linting: Passed" >> $GITHUB_STEP_SUMMARY
497
+ elif [ "$LINTING_RESULT" == "failure" ]; then
498
+ echo "- ❌ Linting: Failed" >> $GITHUB_STEP_SUMMARY
499
+ elif [ "$LINTING_RESULT" == "skipped" ]; then
500
+ echo "- ⏭️ Linting: Skipped (no source files)" >> $GITHUB_STEP_SUMMARY
501
+ else
502
+ echo "- ⚠️ Linting: $LINTING_RESULT" >> $GITHUB_STEP_SUMMARY
503
+ fi
504
+
505
+ # Security
506
+ if [ "$SECURITY_RESULT" == "success" ]; then
507
+ echo "- ✅ Security: Passed" >> $GITHUB_STEP_SUMMARY
508
+ elif [ "$SECURITY_RESULT" == "failure" ]; then
509
+ echo "- ❌ Security: Failed" >> $GITHUB_STEP_SUMMARY
510
+ elif [ "$SECURITY_RESULT" == "skipped" ]; then
511
+ echo "- ⏭️ Security: Skipped (no dependencies)" >> $GITHUB_STEP_SUMMARY
512
+ else
513
+ echo "- ⚠️ Security: $SECURITY_RESULT" >> $GITHUB_STEP_SUMMARY
514
+ fi
515
+
516
+ # Tests
517
+ if [ "$TESTS_RESULT" == "success" ]; then
518
+ echo "- ✅ Tests: Passed" >> $GITHUB_STEP_SUMMARY
519
+ elif [ "$TESTS_RESULT" == "failure" ]; then
520
+ echo "- ❌ Tests: Failed" >> $GITHUB_STEP_SUMMARY
521
+ elif [ "$TESTS_RESULT" == "skipped" ]; then
522
+ echo "- ⏭️ Tests: Skipped (no test files)" >> $GITHUB_STEP_SUMMARY
523
+ else
524
+ echo "- ⚠️ Tests: $TESTS_RESULT" >> $GITHUB_STEP_SUMMARY
525
+ fi
526
+
527
+ # Documentation
528
+ if [ "$DOCS_RESULT" == "success" ]; then
529
+ echo "- ✅ Documentation: Passed" >> $GITHUB_STEP_SUMMARY
530
+ elif [ "$DOCS_RESULT" == "failure" ]; then
531
+ echo "- ❌ Documentation: Failed" >> $GITHUB_STEP_SUMMARY
532
+ elif [ "$DOCS_RESULT" == "skipped" ]; then
533
+ echo "- ⏭️ Documentation: Skipped (not production-ready)" >> $GITHUB_STEP_SUMMARY
534
+ else
535
+ echo "- ⚠️ Documentation: $DOCS_RESULT" >> $GITHUB_STEP_SUMMARY
536
+ fi
441
537
  # PR_COMMENTS_PLACEHOLDER
442
538
 
443
539
  # ALERTS_PLACEHOLDER
package/README.md CHANGED
@@ -58,14 +58,12 @@ npx create-qa-architect@latest
58
58
 
59
59
  ## Pricing
60
60
 
61
- | Tier | Price | What You Get |
62
- | -------------- | ----------------- | -------------------------------------------------------------------------------------------------- |
63
- | **Free** | $0 | CLI tool, basic linting/formatting, npm audit (capped: 1 private repo, 50 runs/mo) |
64
- | **Pro** | $19/mo or $190/yr | **Security scanning (Gitleaks + ESLint security)**, Smart Test Strategy, multi-language, unlimited |
65
- | **Team** | Contact us | + RBAC, Slack alerts, multi-repo dashboard, team audit log _(coming soon)_ |
66
- | **Enterprise** | Contact us | + SSO/SAML, custom policies, compliance pack, dedicated TAM _(coming soon)_ |
61
+ | Tier | Price | What You Get |
62
+ | -------- | ----------------- | -------------------------------------------------------------------------------------------------- |
63
+ | **Free** | $0 | CLI tool, basic linting/formatting, npm audit (capped: 1 private repo, 50 runs/mo) |
64
+ | **Pro** | $19/mo or $190/yr | **Security scanning (Gitleaks + ESLint security)**, Smart Test Strategy, multi-language, unlimited |
67
65
 
68
- > **Pro included in [VBL Starter Kit](https://vibebuildlab.com/starter-kit)** — Team/Enterprise are standalone purchases.
66
+ > **Pro included in [VBL Starter Kit](https://vibebuildlab.com/starter-kit)**
69
67
 
70
68
  ### Security Features by Tier
71
69
 
@@ -138,7 +136,7 @@ npx create-qa-architect@latest --workflow-standard
138
136
 
139
137
  ### Comprehensive - $100-350/month
140
138
 
141
- **Best for:** Enterprise teams, high-compliance projects, large teams
139
+ **Best for:** High-compliance projects, large teams
142
140
 
143
141
  - Matrix testing (Node 20 + 22) on **every commit**
144
142
  - Security scans inline (every commit)
@@ -188,7 +186,7 @@ Shows estimated GitHub Actions usage and provides optimization recommendations.
188
186
 
189
187
  ### License
190
188
 
191
- **Commercial License (freemium)** — free tier covers the basic CLI; Pro/Team/Enterprise features require a paid subscription. See [LICENSE](LICENSE).
189
+ **Commercial License (freemium)** — free tier covers the basic CLI; Pro features require a paid subscription. See [LICENSE](LICENSE).
192
190
 
193
191
  ## Tech Stack
194
192
 
@@ -381,7 +379,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
381
379
 
382
380
  ## License
383
381
 
384
- Commercial freemium license — the base CLI is free to use; Pro/Team/Enterprise features require a paid subscription. See [LICENSE](LICENSE) for details.
382
+ Commercial freemium license — the base CLI is free to use; Pro features require a paid subscription. See [LICENSE](LICENSE) for details.
385
383
 
386
384
  ## Legal
387
385
 
@@ -113,7 +113,7 @@ CLI (setup.js) → Commands → Business Logic → Utilities
113
113
  - ✅ config/constants.js for all magic numbers
114
114
  - ✅ config/defaults.js for default scripts/dependencies
115
115
  - ✅ Environment variables: QAA_LICENSE_DIR, QAA_ERROR_DIR, QAA_TELEMETRY_DIR
116
- - ✅ Feature flags via tier system (FREE/PRO/TEAM/ENTERPRISE)
116
+ - ✅ Feature flags via tier system (FREE/PRO)
117
117
 
118
118
  #### Upgrade/Migration Path
119
119
 
@@ -402,7 +402,7 @@ Remaining low-priority items in BACKLOG.md:
402
402
  - Extensible linter/formatter support
403
403
  - Community plugins for new languages
404
404
 
405
- 2. **Cloud Sync (Team/Enterprise)**
405
+ 2. **Cloud Sync (Future)**
406
406
  - Shared policies across teams
407
407
  - Centralized dashboard
408
408
 
@@ -255,7 +255,7 @@ if: github.event.pull_request.draft == false
255
255
 
256
256
  **Current Default** (what qa-architect creates):
257
257
 
258
- - ❌ Enterprise-grade CI for solo devs
258
+ - ❌ Comprehensive CI for solo devs
259
259
  - ❌ Costs $100-350/mo for typical projects
260
260
  - ❌ Over-engineering: Gitleaks + Semgrep on every commit
261
261
 
@@ -0,0 +1,157 @@
1
+ # Migration Guide: v5.8.0
2
+
3
+ ## Overview
4
+
5
+ Version 5.8.0 fixes critical silent failure bugs in the GitHub Actions workflow template that could allow broken code to merge:
6
+
7
+ 1. **Lighthouse CI failures** were silently ignored (now fails production builds)
8
+ 2. **Job summaries** always showed ✅ even when checks failed (now shows actual results)
9
+
10
+ ## Who Should Upgrade?
11
+
12
+ **All projects using qa-architect** - especially production-ready projects that rely on Lighthouse CI for performance gates.
13
+
14
+ ## Quick Migration (Recommended)
15
+
16
+ Update your workflow in one command:
17
+
18
+ ```bash
19
+ npx create-qa-architect@latest
20
+ ```
21
+
22
+ This will:
23
+
24
+ - Detect your existing workflow mode (minimal/standard/comprehensive)
25
+ - Preserve your current configuration
26
+ - Apply the bug fixes to `.github/workflows/quality.yml`
27
+
28
+ ## What Changes?
29
+
30
+ ### 1. Lighthouse CI - Now Fails Production Builds
31
+
32
+ **Before (v5.7.0):**
33
+
34
+ ```yaml
35
+ - name: Lighthouse CI
36
+ run: npx lhci autorun
37
+ continue-on-error: true # ⚠️ Failures silently ignored
38
+ ```
39
+
40
+ **After (v5.8.0):**
41
+
42
+ ```yaml
43
+ - name: Lighthouse CI
44
+ id: lighthouse
45
+ run: npx lhci autorun
46
+ continue-on-error: true
47
+
48
+ - name: Report Lighthouse Failures
49
+ if: steps.lighthouse.outcome == 'failure'
50
+ env:
51
+ MATURITY: ${{ needs.detect-maturity.outputs.maturity }}
52
+ run: |
53
+ echo "::error::Lighthouse CI failed"
54
+ # Fail build for production-ready projects
55
+ if [ "$MATURITY" == "production-ready" ]; then
56
+ exit 1
57
+ fi
58
+ ```
59
+
60
+ **Impact:**
61
+
62
+ - **Production-ready projects**: Lighthouse failures now block merges (hard gate)
63
+ - **Other projects**: Lighthouse failures show warnings but don't block (soft gate)
64
+
65
+ ### 2. Job Summary - Shows Actual Results
66
+
67
+ **Before (v5.7.0):**
68
+
69
+ ```yaml
70
+ # Always showed ✅ if enabled, regardless of pass/fail
71
+ echo "- ✅ Tests: Enabled" >> $GITHUB_STEP_SUMMARY
72
+ ```
73
+
74
+ **After (v5.8.0):**
75
+
76
+ ```yaml
77
+ # Shows actual result: ✅ success, ❌ failure, ⏭️ skipped
78
+ if [ "$TESTS_RESULT" == "success" ]; then
79
+ echo "- ✅ Tests: Passed" >> $GITHUB_STEP_SUMMARY
80
+ elif [ "$TESTS_RESULT" == "failure" ]; then
81
+ echo "- ❌ Tests: Failed" >> $GITHUB_STEP_SUMMARY
82
+ fi
83
+ ```
84
+
85
+ **Impact:**
86
+
87
+ - Summaries now accurately reflect job outcomes
88
+ - Failures are immediately visible in PR checks
89
+
90
+ ## Verification
91
+
92
+ After upgrading, verify the changes:
93
+
94
+ ```bash
95
+ # Check workflow mode marker
96
+ grep "WORKFLOW_MODE:" .github/workflows/quality.yml
97
+
98
+ # Verify Lighthouse failure handler exists
99
+ grep -A 10 "Report Lighthouse Failures" .github/workflows/quality.yml
100
+
101
+ # Verify summary uses actual results
102
+ grep "CORE_RESULT" .github/workflows/quality.yml
103
+ ```
104
+
105
+ ## Rollback (If Needed)
106
+
107
+ If you need to rollback to v5.7.0:
108
+
109
+ ```bash
110
+ npx create-qa-architect@5.7.0
111
+ ```
112
+
113
+ ## Breaking Changes
114
+
115
+ None - these are backwards-compatible bug fixes.
116
+
117
+ **Exception:** If you have production-ready maturity and currently have Lighthouse failures that are being ignored, they will now block your builds. This is the intended behavior to prevent quality regressions.
118
+
119
+ ## FAQ
120
+
121
+ ### Q: Will this affect my CI minutes?
122
+
123
+ No - the changes only add a conditional failure reporting step. No new jobs or scans.
124
+
125
+ ### Q: What if I want to keep Lighthouse as a soft failure?
126
+
127
+ Remove the production-ready check from the "Report Lighthouse Failures" step:
128
+
129
+ ```yaml
130
+ # Remove this block:
131
+ if [ "$MATURITY" == "production-ready" ]; then
132
+ exit 1
133
+ fi
134
+ ```
135
+
136
+ ### Q: How do I know my maturity level?
137
+
138
+ Check your workflow or run:
139
+
140
+ ```bash
141
+ npx create-qa-architect --check-maturity
142
+ ```
143
+
144
+ Maturity levels: minimal → bootstrap → development → production-ready
145
+
146
+ ### Q: Can I update manually instead of re-running the tool?
147
+
148
+ Yes, but not recommended. The template changes are extensive. If you must:
149
+
150
+ 1. Copy the new steps from `.github/workflows/quality.yml` in this repo
151
+ 2. Add Lighthouse failure handler (lines 411-430)
152
+ 3. Update summary step to use `needs.<job>.result` (lines 445-516)
153
+
154
+ ## Support
155
+
156
+ - Issues: https://github.com/anthropics/qa-architect/issues
157
+ - Docs: https://github.com/anthropics/qa-architect/blob/main/README.md