create-qa-architect 5.0.7 → 5.4.3

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 (45) hide show
  1. package/.github/workflows/auto-release.yml +49 -0
  2. package/.github/workflows/quality.yml +11 -11
  3. package/.github/workflows/shell-ci.yml.example +82 -0
  4. package/.github/workflows/shell-quality.yml.example +148 -0
  5. package/README.md +165 -12
  6. package/config/shell-ci.yml +82 -0
  7. package/config/shell-quality.yml +148 -0
  8. package/docs/ADOPTION-SUMMARY.md +41 -0
  9. package/docs/ARCHITECTURE-REVIEW.md +67 -0
  10. package/docs/ARCHITECTURE.md +29 -45
  11. package/docs/CI-COST-ANALYSIS.md +323 -0
  12. package/docs/CODE-REVIEW.md +100 -0
  13. package/docs/REQUIREMENTS.md +148 -0
  14. package/docs/SECURITY-AUDIT.md +68 -0
  15. package/docs/test-trace-matrix.md +28 -0
  16. package/eslint.config.cjs +2 -0
  17. package/lib/commands/analyze-ci.js +616 -0
  18. package/lib/commands/deps.js +293 -0
  19. package/lib/commands/index.js +29 -0
  20. package/lib/commands/validate.js +85 -0
  21. package/lib/config-validator.js +28 -45
  22. package/lib/error-reporter.js +14 -2
  23. package/lib/github-api.js +138 -13
  24. package/lib/license-signing.js +125 -0
  25. package/lib/license-validator.js +359 -71
  26. package/lib/licensing.js +434 -106
  27. package/lib/package-utils.js +9 -9
  28. package/lib/prelaunch-validator.js +828 -0
  29. package/lib/project-maturity.js +58 -6
  30. package/lib/quality-tools-generator.js +495 -0
  31. package/lib/result-types.js +112 -0
  32. package/lib/security-enhancements.js +1 -1
  33. package/lib/smart-strategy-generator.js +46 -10
  34. package/lib/telemetry.js +1 -1
  35. package/lib/template-loader.js +52 -19
  36. package/lib/ui-helpers.js +1 -1
  37. package/lib/validation/cache-manager.js +36 -6
  38. package/lib/validation/config-security.js +100 -33
  39. package/lib/validation/index.js +68 -97
  40. package/lib/validation/workflow-validation.js +28 -7
  41. package/package.json +4 -6
  42. package/scripts/check-test-coverage.sh +46 -0
  43. package/scripts/validate-claude-md.js +80 -0
  44. package/setup.js +923 -301
  45. package/create-saas-monetization.js +0 -1513
@@ -0,0 +1,148 @@
1
+ name: Shell Script Quality Checks
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master, develop]
6
+ pull_request:
7
+ branches: [main, master, develop]
8
+
9
+ jobs:
10
+ documentation:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - name: Checkout code
15
+ uses: actions/checkout@v4
16
+
17
+ - name: Check README exists
18
+ run: |
19
+ if [ ! -f "README.md" ]; then
20
+ echo "❌ README.md is missing"
21
+ exit 1
22
+ fi
23
+ echo "✅ README.md exists"
24
+
25
+ - name: Validate README content
26
+ run: |
27
+ readme_lines=$(wc -l < README.md)
28
+ if [ "$readme_lines" -lt 10 ]; then
29
+ echo "⚠️ README.md is very short (< 10 lines)"
30
+ echo " Consider adding: description, usage examples, installation"
31
+ else
32
+ echo "✅ README.md has adequate content ($readme_lines lines)"
33
+ fi
34
+
35
+ - name: Check for usage documentation
36
+ run: |
37
+ if grep -q -i "usage\|example\|how to" README.md; then
38
+ echo "✅ README includes usage documentation"
39
+ else
40
+ echo "⚠️ README should include usage examples"
41
+ fi
42
+
43
+ script-analysis:
44
+ runs-on: ubuntu-latest
45
+
46
+ steps:
47
+ - name: Checkout code
48
+ uses: actions/checkout@v4
49
+
50
+ - name: Count shell scripts
51
+ id: count
52
+ run: |
53
+ script_count=$(find . -type f -name "*.sh" ! -path "*/node_modules/*" ! -path "*/.git/*" | wc -l)
54
+ echo "count=$script_count" >> $GITHUB_OUTPUT
55
+ echo "Found $script_count shell script(s)"
56
+
57
+ - name: Analyze script complexity
58
+ if: steps.count.outputs.count > 0
59
+ run: |
60
+ echo "Analyzing shell script complexity..."
61
+ find . -type f -name "*.sh" ! -path "*/node_modules/*" ! -path "*/.git/*" | while read -r script; do
62
+ lines=$(wc -l < "$script")
63
+ functions=$(grep -c "^[[:space:]]*function\|^[[:space:]]*[a-zA-Z_][a-zA-Z0-9_]*[[:space:]]*()[[:space:]]*{" "$script" || echo 0)
64
+ echo " $script: $lines lines, $functions functions"
65
+
66
+ if [ "$lines" -gt 500 ]; then
67
+ echo " ⚠️ Large script (>500 lines) - consider splitting"
68
+ fi
69
+ done
70
+
71
+ best-practices:
72
+ runs-on: ubuntu-latest
73
+
74
+ steps:
75
+ - name: Checkout code
76
+ uses: actions/checkout@v4
77
+
78
+ - name: Check for shebang
79
+ run: |
80
+ echo "Checking for proper shebang in shell scripts..."
81
+ missing_shebang=0
82
+ find . -type f -name "*.sh" ! -path "*/node_modules/*" ! -path "*/.git/*" | while read -r script; do
83
+ if ! head -n 1 "$script" | grep -q "^#!/"; then
84
+ echo "⚠️ Missing shebang: $script"
85
+ missing_shebang=$((missing_shebang + 1))
86
+ fi
87
+ done
88
+
89
+ if [ "$missing_shebang" -eq 0 ]; then
90
+ echo "✅ All scripts have proper shebang"
91
+ fi
92
+
93
+ - name: Check for set -e or set -euo pipefail
94
+ run: |
95
+ echo "Checking for error handling (set -e / set -euo pipefail)..."
96
+ missing_set_e=0
97
+ find . -type f -name "*.sh" ! -path "*/node_modules/*" ! -path "*/.git/*" | while read -r script; do
98
+ if ! grep -q "set -e\|set -euo pipefail" "$script"; then
99
+ echo "⚠️ Missing error handling: $script"
100
+ echo " Recommendation: Add 'set -euo pipefail' after shebang"
101
+ missing_set_e=$((missing_set_e + 1))
102
+ fi
103
+ done
104
+
105
+ if [ "$missing_set_e" -eq 0 ]; then
106
+ echo "✅ All scripts use error handling"
107
+ fi
108
+
109
+ security:
110
+ runs-on: ubuntu-latest
111
+
112
+ steps:
113
+ - name: Checkout code
114
+ uses: actions/checkout@v4
115
+
116
+ - name: Check for hardcoded secrets
117
+ run: |
118
+ echo "Scanning for potential hardcoded secrets..."
119
+ found_issues=0
120
+
121
+ # Check for common secret patterns
122
+ if grep -r -i "password\s*=\|api_key\s*=\|secret\s*=" --include="*.sh" .; then
123
+ echo "⚠️ Found potential hardcoded secrets"
124
+ echo " Use environment variables instead: \${VARIABLE_NAME}"
125
+ found_issues=1
126
+ fi
127
+
128
+ # Check for AWS keys
129
+ if grep -r "AKIA[0-9A-Z]{16}" --include="*.sh" .; then
130
+ echo "❌ Found AWS access key pattern"
131
+ found_issues=1
132
+ fi
133
+
134
+ if [ "$found_issues" -eq 0 ]; then
135
+ echo "✅ No obvious hardcoded secrets found"
136
+ fi
137
+
138
+ - name: Check for unsafe practices
139
+ run: |
140
+ echo "Checking for unsafe shell practices..."
141
+
142
+ # Check for eval usage
143
+ if grep -r "eval " --include="*.sh" . | grep -v "^#"; then
144
+ echo "⚠️ Found 'eval' usage - potential security risk"
145
+ fi
146
+
147
+ # Check for unquoted variables
148
+ echo " (ShellCheck will provide detailed analysis)"
@@ -0,0 +1,41 @@
1
+ # qa-architect - Adoption Summary
2
+
3
+ **Adopted:** 2025-12-29
4
+ **Value Score:** 95/100
5
+
6
+ ## Metrics
7
+
8
+ | Metric | Count |
9
+ | --------------------- | ----- |
10
+ | Total Requirements | 104 |
11
+ | API Endpoints | 0 |
12
+ | UI Pages | 0 |
13
+ | Test Coverage Items | 104 |
14
+ | Integrations Detected | 0 |
15
+
16
+ ## Value Breakdown
17
+
18
+ | Component | Score | Description |
19
+ | -------------- | ---------- | ------------------------------------- |
20
+ | Documentation | 20/25 | Requirements extracted and documented |
21
+ | Traceability | 25/25 | Test-to-requirement mappings |
22
+ | Architecture | 25/25 | Architecture documentation |
23
+ | Quality Config | 25/25 | Quality thresholds configured |
24
+ | **Total** | **95/100** | - |
25
+
26
+ ## Files Adopted
27
+
28
+ - ✅ docs/ARCHITECTURE-REVIEW.md
29
+ - ✅ docs/CODE-REVIEW.md
30
+ - ✅ docs/SECURITY-AUDIT.md
31
+
32
+ ## Files Skipped (already existed)
33
+
34
+ - ⏭️ .qualityrc.json
35
+ - ⏭️ docs/REQUIREMENTS.md
36
+ - ⏭️ docs/test-trace-matrix.md
37
+ - ⏭️ docs/ARCHITECTURE.md
38
+
39
+ ---
40
+
41
+ _Generated by VBL Adopt_
@@ -0,0 +1,67 @@
1
+ Based on the limited documentation provided, I'll conduct an architecture review with the available information. However, I must note that this review is constrained by insufficient architectural details in the documentation.
2
+
3
+ ## Architecture Review: qa-architect
4
+
5
+ **Verdict: NEEDS REVISION**
6
+ **Overall Score: 45/100**
7
+
8
+ ### Dimension Scores
9
+
10
+ | Dimension | Score | Assessment |
11
+ | --------------------- | ------ | --------------------------------------------------------- |
12
+ | Pattern Selection | 40/100 | CLI pattern unclear, no architectural patterns documented |
13
+ | Scalability | 30/100 | No scalability considerations documented |
14
+ | Security Architecture | 60/100 | Security features mentioned but implementation unclear |
15
+ | Simplicity | 50/100 | Dependencies suggest complexity but design not documented |
16
+ | API Design | 35/100 | CLI interface not documented, no API specifications |
17
+
18
+ ### Strengths
19
+
20
+ 1. **Clear Product Vision** - Well-defined target users and pricing tiers
21
+ 2. **Multi-language Support** - Supports both JavaScript/TypeScript and Python ecosystems
22
+ 3. **Progressive Enhancement** - Free tier with Pro upgrades shows thoughtful monetization
23
+ 4. **Quality Focus** - Integrates multiple quality tools (ESLint, Prettier, Husky, etc.)
24
+
25
+ ### Concerns
26
+
27
+ 1. **Insufficient Documentation** → Complete architectural documentation showing components, data flow, and patterns
28
+ 2. **Missing Security Architecture** → Document how Gitleaks, ESLint security, and other security features are architected
29
+ 3. **No API Design** → Document CLI interface, command structure, configuration schemas
30
+ 4. **Unclear Scalability** → Document how the system handles different project sizes and team requirements
31
+ 5. **Missing Data Architecture** → Document configuration management, state handling, and data persistence
32
+ 6. **No Error Handling Strategy** → Document error handling, recovery, and user feedback patterns
33
+ 7. **Dependency Justification Missing** → Explain rationale for 13 production dependencies
34
+
35
+ ### Required Changes (NEEDS REVISION)
36
+
37
+ - [ ] **Document Core Architecture** - Create detailed architecture diagrams showing components, modules, and data flow
38
+ - [ ] **Define CLI API Design** - Document command structure, options, configuration schemas, and interfaces
39
+ - [ ] **Security Architecture Documentation** - Detail how security scanning, audit features, and Pro tier security work
40
+ - [ ] **Scalability Design** - Document performance considerations, memory usage, and scaling patterns
41
+ - [ ] **Error Handling Strategy** - Define error handling patterns, user feedback, and recovery mechanisms
42
+ - [ ] **Configuration Management** - Document how different project types are detected and configured
43
+ - [ ] **Testing Architecture** - With 104 tests, document testing strategy and patterns
44
+
45
+ ### Alternative Approaches Considered
46
+
47
+ The documentation doesn't indicate consideration of alternatives. Should have evaluated:
48
+
49
+ - **CLI Frameworks**: Why not use Commander.js, Yargs, or Oclif for CLI structure?
50
+ - **Configuration Management**: JSON vs YAML vs TypeScript configs
51
+ - **Plugin Architecture**: Extensible vs monolithic design for different languages/tools
52
+ - **Distribution Strategy**: npm package vs standalone binary vs Docker
53
+
54
+ ### Approval
55
+
56
+ **NEEDS REVISION**: The architecture documentation is insufficient for proper review. While the product concept is solid and the README shows clear market positioning, the actual architectural design is not documented. The auto-generated architecture document provides no meaningful architectural insight.
57
+
58
+ **Critical Missing Elements:**
59
+
60
+ 1. Component architecture and module organization
61
+ 2. CLI command structure and API design
62
+ 3. Configuration and state management patterns
63
+ 4. Security implementation architecture
64
+ 5. Multi-language support architecture
65
+ 6. Testing and quality assurance patterns
66
+
67
+ **Recommendation**: Before implementation proceeds, create comprehensive architecture documentation showing how the system is designed to handle its stated requirements. The gap between the feature-rich product description and the minimal architecture documentation suggests the architecture design phase was incomplete.
@@ -1,57 +1,41 @@
1
- # Architecture
1
+ # qa-architect - Architecture
2
2
 
3
- ## Overview
3
+ **Generated:** 2025-12-27
4
+ **Framework:** Node.js
5
+ **Maturity:** minimal
4
6
 
5
- QA Architect is a CLI tool that bootstraps quality automation in JavaScript/TypeScript and Python projects.
7
+ ## Overview
6
8
 
7
- ## Core Components
9
+ This is a Node.js application.
8
10
 
9
- ```
10
- create-qa-architect/
11
- ├── setup.js # Main CLI entry point
12
- ├── lib/ # Core logic (validation, licensing, maturity, telemetry, dependency monitoring)
13
- ├── templates/ # Project templates
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
- ```
11
+ ## Tech Stack
25
12
 
26
- ## Data Flow
13
+ | Layer | Technology |
14
+ | --------------- | ---------------- |
15
+ | Framework | Node.js |
16
+ | Language | TypeScript |
17
+ | Package Manager | npm |
18
+ | Testing | Jest/Node assert |
27
19
 
28
- 1. **Detection Phase**: Detect project type (JS/TS/Python/mixed)
29
- 2. **Configuration Phase**: Generate appropriate configs
30
- 3. **Installation Phase**: Copy templates, update package.json
31
- 4. **Validation Phase**: Verify setup is complete
20
+ ## Project Structure
32
21
 
33
- ## Extension Points
34
-
35
- - Custom templates via `--template` flag
36
- - Language detection can be extended in `setup.js`
37
- - New quality checks via template files
22
+ ```
23
+ ├── src/ # Source code
24
+ ├── lib/ # Libraries
25
+ ├── tests/ # Test files (104 test items)
26
+ └── docs/ # Documentation
27
+ ```
38
28
 
39
- ## Smart Test Strategy (Pro)
29
+ ## Key Components
40
30
 
41
- Risk-based pre-push validation that adapts to change context:
31
+ ## Quality Standards
42
32
 
43
- 1. Calculate risk score (0-10) based on files changed
44
- 2. Select appropriate test tier (minimal → comprehensive)
45
- 3. Run tests with appropriate depth
33
+ | Metric | Target |
34
+ | -------------- | ------- |
35
+ | Test Coverage | 50% |
36
+ | Maturity Level | minimal |
46
37
 
47
- ## CLI Flags
38
+ ---
48
39
 
49
- - `--update` - Update existing setup
50
- - `--deps` - Dependency monitoring only
51
- - `--security-config` - Security validation
52
- - `--check-maturity` - Project maturity report
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
40
+ _Auto-generated by VBL Adopt - 2025-12-27_
41
+ _Run `vbl docs` for detailed architecture documentation_
@@ -0,0 +1,323 @@
1
+ # GitHub Actions Cost Analysis: Is qa-architect Over-Engineering CI/CD?
2
+
3
+ **Date**: 2026-01-06
4
+ **Finding**: YES - qa-architect's default setup is 3-5x more expensive than industry standards for solo/small projects.
5
+
6
+ ---
7
+
8
+ ## The Problem
9
+
10
+ Your projects are costing **$469/month** in GitHub Actions CI when they should cost **$0-50/month**.
11
+
12
+ | Project | Commits/Day | Minutes/Month | Cost/Month | Status |
13
+ | -------------------------- | ----------- | ------------- | ---------- | ----------- |
14
+ | vibebuildlab | 7.4 | 46,852 min | $358 | 🔴 CRITICAL |
15
+ | qa-architect | 1.7 | 15,810 min | $110 | 🔴 HIGH |
16
+ | stark-program-intelligence | 1.6 | 2,160 min | $1.28 | 🟢 OK |
17
+ | vibelab-claude-setup | 2.0 | 531 min | $0 | ✅ OPTIMAL |
18
+
19
+ ---
20
+
21
+ ## Root Cause Analysis
22
+
23
+ ### What qa-architect Is Doing (vibebuildlab example)
24
+
25
+ **Current quality.yml**: 161 minutes per commit, runs 221 times/month
26
+
27
+ ```yaml
28
+ Jobs running on EVERY push:
29
+ 1. detect-maturity (1 job) ~ 2 min
30
+ 2. core-checks (2 jobs) ~ 10 min # Node 20 + 22 matrix
31
+ 3. linting (1 job) ~ 8 min
32
+ 4. security (1 job) ~ 25 min # Gitleaks + Semgrep + 3× npm audit
33
+ 5. tests (2 jobs) ~ 30 min # Node 20 + 22 matrix
34
+ 6. documentation (1 job) ~ 15 min # Only if production-ready
35
+ 7. summary (1 job) ~ 1 min
36
+
37
+ TOTAL: ~90-100 minutes per push (when all jobs run)
38
+ ```
39
+
40
+ **Problems identified**:
41
+
42
+ 1. ❌ **No path filters** - Runs full CI on docs/README commits
43
+ 2. ❌ **Duplicate matrix testing** - Both core-checks AND tests run Node 20/22
44
+ 3. ❌ **Security overkill** - Gitleaks + Semgrep + npm audit (3 variants) on EVERY push
45
+ 4. ❌ **No job concurrency limits** - Rapid commits queue up expensive builds
46
+ 5. ❌ **Production checks on every commit** - Documentation validation should be release-only
47
+
48
+ ---
49
+
50
+ ## Industry Standards (Successful Projects)
51
+
52
+ ### Vite (Major Framework, 1000+ contributors)
53
+
54
+ - **Runtime**: 50-60 min/commit
55
+ - **Path filters**: ✅ Skips tests on docs-only changes
56
+ - **Matrix**: Node 20, 22, 24 (3 versions)
57
+ - **Cross-platform**: Only on latest Node, not all versions
58
+ - **Security**: Runs on schedule, not every commit
59
+
60
+ ### Ky (Popular Library, Sindre Sorhus)
61
+
62
+ - **Runtime**: 10-15 min/commit
63
+ - **Matrix**: Node 20, 22, 24, latest (4 versions)
64
+ - **Platform**: macOS only (assumes Linux/Windows compatibility)
65
+ - **Security**: Separate workflow
66
+
67
+ ### Common Patterns
68
+
69
+ 1. **Minimal on push** - Lint + test current Node only
70
+ 2. **Matrix testing** - Only on main branch or scheduled
71
+ 3. **Security scans** - Weekly/nightly, not per commit
72
+ 4. **Documentation** - Only on release branches
73
+ 5. **Path filters** - Skip CI for docs/README/LICENSE changes
74
+
75
+ **Sources**:
76
+
77
+ - [GitHub Actions alternatives for modern CI/CD](https://northflank.com/blog/github-actions-alternatives)
78
+ - [Ultimate free CI/CD for open-source projects](https://dev.to/itnext/the-ultimate-free-ci-cd-for-your-open-source-projects-3bkd)
79
+
80
+ ---
81
+
82
+ ## Recommended Changes
83
+
84
+ ### Phase 1: Quick Wins (Reduce by 60-70%)
85
+
86
+ #### 1. Add Path Filters
87
+
88
+ ```yaml
89
+ on:
90
+ push:
91
+ paths-ignore:
92
+ - '**.md'
93
+ - 'docs/**'
94
+ - 'LICENSE'
95
+ - '.gitignore'
96
+ - '.editorconfig'
97
+ ```
98
+
99
+ **Savings**: ~20% of commits are docs-only
100
+ **vibebuildlab**: 7,117 min/month saved ($57/mo)
101
+
102
+ #### 2. Reduce Matrix Redundancy
103
+
104
+ ```yaml
105
+ # BEFORE: 2 matrix jobs (core-checks + tests)
106
+ core-checks:
107
+ matrix:
108
+ node-version: [20, 22] # Runs twice
109
+
110
+ tests:
111
+ matrix:
112
+ node-version: [20, 22] # Runs twice again!
113
+
114
+ # AFTER: 1 matrix job only
115
+ tests:
116
+ matrix:
117
+ node-version: [20, 22] # Runs once
118
+ ```
119
+
120
+ **Savings**: 50% reduction in matrix jobs
121
+ **vibebuildlab**: ~18,000 min/month saved ($144/mo)
122
+
123
+ #### 3. Move Security to Scheduled Workflow
124
+
125
+ ```yaml
126
+ # New file: .github/workflows/security-weekly.yml
127
+ on:
128
+ schedule:
129
+ - cron: '0 0 * * 0' # Weekly on Sunday
130
+ workflow_dispatch: # Manual trigger
131
+
132
+ jobs:
133
+ security:
134
+ runs-on: ubuntu-latest
135
+ steps:
136
+ - name: Gitleaks
137
+ - name: Semgrep
138
+ - name: npm audit
139
+ ```
140
+
141
+ **Savings**: From 221 runs/month → 4 runs/month
142
+ **vibebuildlab**: ~5,400 min/month saved ($43/mo)
143
+
144
+ ### Phase 2: Industry-Standard Setup (Get under $50/mo total)
145
+
146
+ ```yaml
147
+ # .github/workflows/ci.yml
148
+ name: CI
149
+
150
+ on:
151
+ push:
152
+ branches: [main, develop]
153
+ paths-ignore:
154
+ - '**.md'
155
+ - 'docs/**'
156
+ - 'LICENSE'
157
+ pull_request:
158
+
159
+ concurrency:
160
+ group: ${{ github.workflow }}-${{ github.ref }}
161
+ cancel-in-progress: true # Cancel old runs
162
+
163
+ jobs:
164
+ # Quick checks on every commit (current Node only)
165
+ quick-check:
166
+ runs-on: ubuntu-latest
167
+ steps:
168
+ - uses: actions/checkout@v5
169
+ - uses: actions/setup-node@v6
170
+ with:
171
+ node-version: 22
172
+ cache: npm
173
+ - run: npm ci
174
+ - run: npm run lint
175
+ - run: npm run format:check
176
+ - run: npm test
177
+
178
+ # Matrix testing only on main branch
179
+ cross-version:
180
+ if: github.ref == 'refs/heads/main'
181
+ runs-on: ubuntu-latest
182
+ strategy:
183
+ matrix:
184
+ node-version: [20, 22]
185
+ steps:
186
+ - uses: actions/checkout@v5
187
+ - uses: actions/setup-node@v6
188
+ with:
189
+ node-version: ${{ matrix.node-version }}
190
+ cache: npm
191
+ - run: npm ci
192
+ - run: npm test
193
+ ```
194
+
195
+ **Estimated runtime**:
196
+
197
+ - Pull requests: 5-10 min (quick-check only)
198
+ - Main branch: 15-20 min (quick-check + cross-version)
199
+
200
+ **Estimated cost for vibebuildlab**:
201
+
202
+ - Current: 46,852 min/month ($358/mo)
203
+ - After changes: ~3,500 min/month ($12/mo)
204
+ - **Savings: $346/month (97% reduction)**
205
+
206
+ ---
207
+
208
+ ## Strategic Recommendations
209
+
210
+ ### For Solo Developers / Small Teams
211
+
212
+ **Make all repos public** → GitHub Actions is FREE
213
+
214
+ - If code can be public, this is the best option
215
+ - vibebuildlab, qa-architect could potentially be public
216
+
217
+ ### For Private Repos
218
+
219
+ **Option A: Minimal CI** (Recommended)
220
+
221
+ ```
222
+ ✅ Lint + format on every commit (5 min)
223
+ ✅ Test on current Node only (10 min)
224
+ ✅ Matrix testing on main branch only
225
+ ✅ Security scans weekly, not per commit
226
+ ✅ Documentation checks on releases only
227
+
228
+ Total: ~500-1,000 min/month ($0-8/mo)
229
+ ```
230
+
231
+ **Option B: Self-Hosted Runner**
232
+
233
+ - Rent $10-20/mo VPS (Hetzner, DigitalOcean)
234
+ - Install GitHub self-hosted runner
235
+ - Total cost: $20/mo for UNLIMITED minutes
236
+ - **Best if you have 5+ active private repos**
237
+
238
+ **Option C: Strategic Testing**
239
+
240
+ ```yaml
241
+ # Only test what matters
242
+ on:
243
+ pull_request: # Test on PRs
244
+ push:
245
+ branches: [main] # Test on main
246
+ paths-ignore:
247
+ - '**.md'
248
+ - 'docs/**'
249
+
250
+ # Skip matrix on draft PRs
251
+ if: github.event.pull_request.draft == false
252
+ ```
253
+
254
+ ### For qa-architect Product
255
+
256
+ **Current Default** (what qa-architect creates):
257
+
258
+ - ❌ Enterprise-grade CI for solo devs
259
+ - ❌ Costs $100-350/mo for typical projects
260
+ - ❌ Over-engineering: Gitleaks + Semgrep on every commit
261
+
262
+ **Recommended Default**:
263
+
264
+ ```yaml
265
+ Basic (Free tier friendly):
266
+ ✅ Lint + format + test (current Node only)
267
+ ✅ Security scans weekly
268
+ ✅ Matrix testing opt-in only
269
+ ✅ Path filters enabled by default
270
+
271
+ Pro tier enhancements:
272
+ ✅ Add matrix testing (if needed)
273
+ ✅ Add cross-platform testing (if needed)
274
+ ✅ Add comprehensive security (scheduled)
275
+ ```
276
+
277
+ ---
278
+
279
+ ## Action Items
280
+
281
+ ### Immediate (This Week)
282
+
283
+ 1. Add path filters to all repos → Save 20% instantly
284
+ 2. Move security scans to weekly schedule → Save 95% of security costs
285
+ 3. Remove duplicate matrix jobs → Save 50% of test costs
286
+
287
+ ### Short Term (This Month)
288
+
289
+ 1. Redesign qa-architect default template (minimal-first approach)
290
+ 2. Create three tiers:
291
+ - `--minimal`: Lint + test (current Node), FREE tier friendly
292
+ - `--standard`: + matrix testing (main branch only)
293
+ - `--comprehensive`: Current setup (for large teams)
294
+ 3. Add `--public` flag that optimizes for unlimited minutes
295
+
296
+ ### Long Term (Q1 2026)
297
+
298
+ 1. Add cost analyzer to `npx create-qa-architect` (show estimated costs)
299
+ 2. Default to minimal setup, prompt for upgrades
300
+ 3. Document self-hosted runner setup guide
301
+ 4. Create cost monitoring dashboard (track actual usage)
302
+
303
+ ---
304
+
305
+ ## Conclusion
306
+
307
+ **YES, you're right to question this.**
308
+
309
+ qa-architect is creating **enterprise-grade CI for solo developers**, resulting in:
310
+
311
+ - 3-5x longer CI times than industry standards
312
+ - 10-20x higher costs than necessary
313
+ - Excessive testing that doesn't add proportional value
314
+
315
+ **The fix**: Shift to "minimal by default, comprehensive on demand."
316
+
317
+ For your specific projects:
318
+
319
+ - **vibebuildlab**: $358/mo → $12/mo (implement Phase 1 + 2)
320
+ - **qa-architect**: $110/mo → $5/mo (same changes)
321
+ - **Total savings**: $451/month ($5,412/year)
322
+
323
+ Or just make repos public → **$0/month**.