create-qa-architect 5.0.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/.editorconfig +12 -0
- package/.github/CLAUDE_MD_AUTOMATION.md +248 -0
- package/.github/PROGRESSIVE_QUALITY_IMPLEMENTATION.md +408 -0
- package/.github/PROGRESSIVE_QUALITY_PROPOSAL.md +443 -0
- package/.github/RELEASE_CHECKLIST.md +100 -0
- package/.github/dependabot.yml +50 -0
- package/.github/git-sync.sh +48 -0
- package/.github/workflows/claude-md-validation.yml +82 -0
- package/.github/workflows/nightly-gitleaks-verification.yml +176 -0
- package/.github/workflows/pnpm-ci.yml.example +53 -0
- package/.github/workflows/python-ci.yml.example +69 -0
- package/.github/workflows/quality-legacy.yml.backup +165 -0
- package/.github/workflows/quality-progressive.yml.example +291 -0
- package/.github/workflows/quality.yml +436 -0
- package/.github/workflows/release.yml +53 -0
- package/.nvmrc +1 -0
- package/.prettierignore +14 -0
- package/.prettierrc +9 -0
- package/.stylelintrc.json +5 -0
- package/README.md +212 -0
- package/config/.lighthouserc.js +45 -0
- package/config/.pre-commit-config.yaml +66 -0
- package/config/constants.js +128 -0
- package/config/defaults.js +124 -0
- package/config/pyproject.toml +124 -0
- package/config/quality-config.schema.json +97 -0
- package/config/quality-python.yml +89 -0
- package/config/requirements-dev.txt +15 -0
- package/create-saas-monetization.js +1465 -0
- package/eslint.config.cjs +117 -0
- package/eslint.config.ts.cjs +99 -0
- package/legal/README.md +106 -0
- package/legal/copyright.md +76 -0
- package/legal/disclaimer.md +146 -0
- package/legal/privacy-policy.html +324 -0
- package/legal/privacy-policy.md +196 -0
- package/legal/terms-of-service.md +224 -0
- package/lib/billing-dashboard.html +645 -0
- package/lib/config-validator.js +163 -0
- package/lib/dependency-monitoring-basic.js +185 -0
- package/lib/dependency-monitoring-premium.js +1490 -0
- package/lib/error-reporter.js +444 -0
- package/lib/interactive/prompt.js +128 -0
- package/lib/interactive/questions.js +146 -0
- package/lib/license-validator.js +403 -0
- package/lib/licensing.js +989 -0
- package/lib/package-utils.js +187 -0
- package/lib/project-maturity.js +516 -0
- package/lib/security-enhancements.js +340 -0
- package/lib/setup-enhancements.js +317 -0
- package/lib/smart-strategy-generator.js +344 -0
- package/lib/telemetry.js +323 -0
- package/lib/template-loader.js +252 -0
- package/lib/typescript-config-generator.js +210 -0
- package/lib/ui-helpers.js +74 -0
- package/lib/validation/base-validator.js +174 -0
- package/lib/validation/cache-manager.js +158 -0
- package/lib/validation/config-security.js +741 -0
- package/lib/validation/documentation.js +326 -0
- package/lib/validation/index.js +186 -0
- package/lib/validation/validation-factory.js +153 -0
- package/lib/validation/workflow-validation.js +172 -0
- package/lib/yaml-utils.js +120 -0
- package/marketing/beta-user-email-campaign.md +372 -0
- package/marketing/landing-page.html +721 -0
- package/package.json +165 -0
- package/setup.js +2076 -0
package/.editorconfig
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# CLAUDE.md Maintenance Automation
|
|
2
|
+
|
|
3
|
+
This document describes the automated CLAUDE.md validation and maintenance system implemented for this project.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The CLAUDE.md file is critical for Claude Code's understanding of project context, commands, and conventions. To ensure it stays current and accurate, we've implemented a multi-layered automation system that validates CLAUDE.md consistency across multiple checkpoints.
|
|
8
|
+
|
|
9
|
+
## Components
|
|
10
|
+
|
|
11
|
+
### 1. Validation Script
|
|
12
|
+
|
|
13
|
+
**Location**: `scripts/validate-claude-md.js`
|
|
14
|
+
|
|
15
|
+
**Purpose**: Core validation logic that checks CLAUDE.md for:
|
|
16
|
+
|
|
17
|
+
- Required sections (Project Information, Commands, Features, etc.)
|
|
18
|
+
- Package name and CLI command references
|
|
19
|
+
- Script documentation completeness
|
|
20
|
+
- Outdated patterns (old version references)
|
|
21
|
+
- Node.js version alignment with package.json
|
|
22
|
+
|
|
23
|
+
**Usage**:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm run validate:claude
|
|
27
|
+
# or directly:
|
|
28
|
+
node scripts/validate-claude-md.js
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 2. GitHub Actions Workflow
|
|
32
|
+
|
|
33
|
+
**Location**: `.github/workflows/claude-md-validation.yml`
|
|
34
|
+
|
|
35
|
+
**Triggers**:
|
|
36
|
+
|
|
37
|
+
- Push to main/master/develop branches
|
|
38
|
+
- Pull requests to main/master/develop branches
|
|
39
|
+
- Changes to CLAUDE.md, package.json, or validation scripts
|
|
40
|
+
- Manual workflow dispatch
|
|
41
|
+
|
|
42
|
+
**Checks**:
|
|
43
|
+
|
|
44
|
+
- ✅ Structure and required sections
|
|
45
|
+
- ✅ Package references accuracy
|
|
46
|
+
- ✅ Script documentation
|
|
47
|
+
- ✅ Prettier formatting
|
|
48
|
+
- ✅ No TODO markers
|
|
49
|
+
- ✅ Cross-validation with package.json
|
|
50
|
+
|
|
51
|
+
**View**: [GitHub Actions](../../actions/workflows/claude-md-validation.yml)
|
|
52
|
+
|
|
53
|
+
### 3. Pre-commit Hook
|
|
54
|
+
|
|
55
|
+
**Location**: `package.json` (lint-staged configuration)
|
|
56
|
+
|
|
57
|
+
**Behavior**: When CLAUDE.md is staged for commit:
|
|
58
|
+
|
|
59
|
+
1. Runs validation script to check consistency
|
|
60
|
+
2. Runs Prettier to ensure proper formatting
|
|
61
|
+
3. Blocks commit if validation fails
|
|
62
|
+
|
|
63
|
+
**Configuration**:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
"lint-staged": {
|
|
67
|
+
"CLAUDE.md": [
|
|
68
|
+
"node scripts/validate-claude-md.js",
|
|
69
|
+
"prettier --write"
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 4. Integration with Quality Checks
|
|
75
|
+
|
|
76
|
+
**Location**: `package.json` scripts
|
|
77
|
+
|
|
78
|
+
**Integration Points**:
|
|
79
|
+
|
|
80
|
+
- `npm run validate:claude` - Manual validation
|
|
81
|
+
- `npm run validate:all` - Includes CLAUDE.md in comprehensive validation
|
|
82
|
+
- Pre-commit hooks via Husky + lint-staged
|
|
83
|
+
|
|
84
|
+
## Validation Rules
|
|
85
|
+
|
|
86
|
+
### Required Sections
|
|
87
|
+
|
|
88
|
+
The following sections MUST be present in CLAUDE.md:
|
|
89
|
+
|
|
90
|
+
1. **Project Information** - Package name, CLI command, purpose
|
|
91
|
+
2. **Project-Specific Commands** - npm scripts for linting, formatting, etc.
|
|
92
|
+
3. **Development Workflow** - Setup, prepare, and development commands
|
|
93
|
+
4. **Quality Automation Features** - ESLint, Prettier, Stylelint, Husky, etc.
|
|
94
|
+
5. **Development Notes** - Important context for development
|
|
95
|
+
|
|
96
|
+
### Package Reference Checks
|
|
97
|
+
|
|
98
|
+
- ✅ Package name from package.json mentioned
|
|
99
|
+
- ✅ CLI command (if exists) documented
|
|
100
|
+
- ✅ Critical npm scripts documented (lint, format, test, setup)
|
|
101
|
+
|
|
102
|
+
### Pattern Detection
|
|
103
|
+
|
|
104
|
+
Outdated patterns that trigger warnings:
|
|
105
|
+
|
|
106
|
+
- ❌ References to ESLint 8 (should be ESLint 9)
|
|
107
|
+
- ❌ References to Husky 8 (should be Husky 9)
|
|
108
|
+
- ❌ Outdated Node.js version formats
|
|
109
|
+
- ❌ TODO/FIXME markers
|
|
110
|
+
|
|
111
|
+
## Workflow
|
|
112
|
+
|
|
113
|
+
### Development Workflow
|
|
114
|
+
|
|
115
|
+
```mermaid
|
|
116
|
+
graph LR
|
|
117
|
+
A[Edit CLAUDE.md] --> B[Stage Changes]
|
|
118
|
+
B --> C[Pre-commit Hook]
|
|
119
|
+
C --> D{Validation}
|
|
120
|
+
D -->|Pass| E[Commit]
|
|
121
|
+
D -->|Fail| F[Fix Issues]
|
|
122
|
+
F --> A
|
|
123
|
+
E --> G[Push]
|
|
124
|
+
G --> H[GitHub Actions]
|
|
125
|
+
H --> I{CI Validation}
|
|
126
|
+
I -->|Pass| J[Merge]
|
|
127
|
+
I -->|Fail| K[Review & Fix]
|
|
128
|
+
K --> A
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Manual Validation
|
|
132
|
+
|
|
133
|
+
For manual checks or CI integration:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# Validate CLAUDE.md only
|
|
137
|
+
npm run validate:claude
|
|
138
|
+
|
|
139
|
+
# Comprehensive validation (includes CLAUDE.md)
|
|
140
|
+
npm run validate:all
|
|
141
|
+
|
|
142
|
+
# Pre-release validation (includes everything)
|
|
143
|
+
npm run prerelease
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Maintenance
|
|
147
|
+
|
|
148
|
+
### When to Update CLAUDE.md
|
|
149
|
+
|
|
150
|
+
Update CLAUDE.md whenever:
|
|
151
|
+
|
|
152
|
+
1. **Package metadata changes**: Name, version, CLI command
|
|
153
|
+
2. **New npm scripts added**: Especially critical workflows
|
|
154
|
+
3. **Dependencies upgraded**: ESLint, Husky, Node.js versions
|
|
155
|
+
4. **Project structure changes**: New directories, workflows
|
|
156
|
+
5. **Development practices change**: New conventions, patterns
|
|
157
|
+
|
|
158
|
+
### Keeping Validation Current
|
|
159
|
+
|
|
160
|
+
The validation script should be updated when:
|
|
161
|
+
|
|
162
|
+
1. **New required sections identified**: Add to `REQUIRED_SECTIONS`
|
|
163
|
+
2. **New outdated patterns emerge**: Add to `OUTDATED_PATTERNS`
|
|
164
|
+
3. **New critical scripts**: Add to `criticalScripts` array
|
|
165
|
+
4. **Validation rules evolve**: Update check functions
|
|
166
|
+
|
|
167
|
+
### Best Practices
|
|
168
|
+
|
|
169
|
+
1. **Always validate before committing**: Let pre-commit hooks catch issues
|
|
170
|
+
2. **Review warnings**: Even non-blocking warnings indicate maintenance needs
|
|
171
|
+
3. **Keep sections updated**: Don't let documentation drift from reality
|
|
172
|
+
4. **Remove TODO markers**: Resolve them before committing
|
|
173
|
+
5. **Test after package.json changes**: Ensure references stay accurate
|
|
174
|
+
|
|
175
|
+
## Troubleshooting
|
|
176
|
+
|
|
177
|
+
### Validation Fails on Commit
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# See what failed
|
|
181
|
+
npm run validate:claude
|
|
182
|
+
|
|
183
|
+
# Common issues:
|
|
184
|
+
# 1. Missing sections - Add required sections to CLAUDE.md
|
|
185
|
+
# 2. Package name mismatch - Update references in CLAUDE.md
|
|
186
|
+
# 3. TODO markers - Resolve or remove TODOs
|
|
187
|
+
# 4. Formatting - Run: prettier --write CLAUDE.md
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### GitHub Actions Failing
|
|
191
|
+
|
|
192
|
+
1. Check workflow runs in Actions tab
|
|
193
|
+
2. Review validation errors in job logs
|
|
194
|
+
3. Fix locally and test with `npm run validate:claude`
|
|
195
|
+
4. Commit and push fixes
|
|
196
|
+
|
|
197
|
+
### Pre-commit Hook Not Running
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Reinstall Husky hooks
|
|
201
|
+
npm run prepare
|
|
202
|
+
|
|
203
|
+
# Verify hook exists
|
|
204
|
+
ls -la .husky/pre-commit
|
|
205
|
+
|
|
206
|
+
# Test lint-staged
|
|
207
|
+
npx lint-staged
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Implementation Checklist
|
|
211
|
+
|
|
212
|
+
When setting up this automation in a new project:
|
|
213
|
+
|
|
214
|
+
- [ ] Copy `scripts/validate-claude-md.js`
|
|
215
|
+
- [ ] Copy `.github/workflows/claude-md-validation.yml`
|
|
216
|
+
- [ ] Add `validate:claude` script to package.json
|
|
217
|
+
- [ ] Add CLAUDE.md to lint-staged configuration
|
|
218
|
+
- [ ] Update `validate:all` to include `validate:claude`
|
|
219
|
+
- [ ] Test locally: `npm run validate:claude`
|
|
220
|
+
- [ ] Test pre-commit: Stage CLAUDE.md and commit
|
|
221
|
+
- [ ] Verify GitHub Actions runs on push
|
|
222
|
+
|
|
223
|
+
## Future Enhancements
|
|
224
|
+
|
|
225
|
+
Potential improvements to consider:
|
|
226
|
+
|
|
227
|
+
1. **Auto-fixing**: Automatically update some references from package.json
|
|
228
|
+
2. **Version sync**: Auto-update version references when package.json changes
|
|
229
|
+
3. **Link checking**: Validate internal and external links
|
|
230
|
+
4. **Schema validation**: JSON Schema for CLAUDE.md structure
|
|
231
|
+
5. **Diff analysis**: Suggest updates based on package.json changes
|
|
232
|
+
6. **Integration tests**: Ensure CLAUDE.md matches actual project state
|
|
233
|
+
|
|
234
|
+
## Related Documentation
|
|
235
|
+
|
|
236
|
+
- [RELEASE_CHECKLIST.md](RELEASE_CHECKLIST.md) - Pre-release validation steps
|
|
237
|
+
- [Quality Workflow](.github/workflows/quality.yml) - General quality checks
|
|
238
|
+
- [Main CLAUDE.md](../../CLAUDE.md) - The file being validated
|
|
239
|
+
|
|
240
|
+
## Support
|
|
241
|
+
|
|
242
|
+
For issues or questions about CLAUDE.md automation:
|
|
243
|
+
|
|
244
|
+
1. Check validation output for specific errors
|
|
245
|
+
2. Review this documentation
|
|
246
|
+
3. Test with `npm run validate:claude`
|
|
247
|
+
4. Check GitHub Actions logs
|
|
248
|
+
5. Open an issue if automation has bugs
|
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
# Progressive Quality Automation - Implementation Summary
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This implementation provides **adaptive quality checks** that automatically adjust based on project maturity, eliminating false failures in early-stage projects while maintaining strict quality standards for production-ready code.
|
|
6
|
+
|
|
7
|
+
## What Was Delivered
|
|
8
|
+
|
|
9
|
+
### 1. Project Maturity Detector (`lib/project-maturity.js`)
|
|
10
|
+
|
|
11
|
+
A comprehensive Node.js module that analyzes your project and determines its maturity level.
|
|
12
|
+
|
|
13
|
+
**Features:**
|
|
14
|
+
|
|
15
|
+
- Counts source files, test files, and CSS files
|
|
16
|
+
- Detects documentation presence
|
|
17
|
+
- Checks for dependencies
|
|
18
|
+
- Assigns maturity level: minimal → bootstrap → development → production-ready
|
|
19
|
+
- Outputs GitHub Actions-compatible format
|
|
20
|
+
- Provides human-readable reports
|
|
21
|
+
|
|
22
|
+
**Usage:**
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Human-readable report
|
|
26
|
+
node lib/project-maturity.js
|
|
27
|
+
|
|
28
|
+
# Verbose output with analysis details
|
|
29
|
+
node lib/project-maturity.js --verbose
|
|
30
|
+
|
|
31
|
+
# GitHub Actions output format
|
|
32
|
+
node lib/project-maturity.js --github-actions
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Example Output:**
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
📊 Project Maturity Report
|
|
39
|
+
|
|
40
|
+
Maturity Level: Production Ready
|
|
41
|
+
Description: Mature project - full quality automation
|
|
42
|
+
|
|
43
|
+
Project Statistics:
|
|
44
|
+
• Source files: 23
|
|
45
|
+
• Test files: 29
|
|
46
|
+
• Documentation: Yes
|
|
47
|
+
• Dependencies: Yes
|
|
48
|
+
• CSS files: No
|
|
49
|
+
|
|
50
|
+
Quality Checks:
|
|
51
|
+
✅ Required: prettier, eslint, stylelint, tests, coverage, security-audit, documentation
|
|
52
|
+
🔵 Optional: lighthouse
|
|
53
|
+
|
|
54
|
+
✅ Production-ready project - all quality checks enabled.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 2. Progressive Workflow Example (`.github/workflows/quality-progressive.yml.example`)
|
|
58
|
+
|
|
59
|
+
A complete GitHub Actions workflow that demonstrates adaptive quality checks.
|
|
60
|
+
|
|
61
|
+
**Key Features:**
|
|
62
|
+
|
|
63
|
+
- **Maturity Detection Job**: Analyzes project and sets outputs for conditional checks
|
|
64
|
+
- **Core Checks**: Always run (Prettier) - even for minimal projects
|
|
65
|
+
- **Conditional Linting**: Only runs if source files exist
|
|
66
|
+
- **Conditional Security**: Only runs if dependencies exist
|
|
67
|
+
- **Conditional Tests**: Only runs if test files exist
|
|
68
|
+
- **Conditional Documentation**: Only runs for production-ready projects
|
|
69
|
+
- **Summary Job**: Reports what checks ran and why
|
|
70
|
+
|
|
71
|
+
**How It Works:**
|
|
72
|
+
|
|
73
|
+
```yaml
|
|
74
|
+
# Step 1: Detect maturity
|
|
75
|
+
detect-maturity:
|
|
76
|
+
outputs:
|
|
77
|
+
maturity: production-ready
|
|
78
|
+
source-count: 23
|
|
79
|
+
test-count: 29
|
|
80
|
+
has-deps: true
|
|
81
|
+
|
|
82
|
+
# Step 2: Conditional checks
|
|
83
|
+
linting:
|
|
84
|
+
if: needs.detect-maturity.outputs.source-count > 0
|
|
85
|
+
# Only runs if source files exist ✅
|
|
86
|
+
|
|
87
|
+
tests:
|
|
88
|
+
if: needs.detect-maturity.outputs.test-count > 0
|
|
89
|
+
# Only runs if test files exist ✅
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 3. Configuration Schema (`.qualityrc.json.example`)
|
|
93
|
+
|
|
94
|
+
A JSON configuration file for manual overrides and progressive enablement tracking.
|
|
95
|
+
|
|
96
|
+
**Features:**
|
|
97
|
+
|
|
98
|
+
- `maturity: "auto"` - Auto-detect (default)
|
|
99
|
+
- `maturity: "production-ready"` - Force all checks
|
|
100
|
+
- `maturity: "minimal"` - Force minimal checks only
|
|
101
|
+
- Per-check `enabled: "auto"` - Auto-enable based on project state
|
|
102
|
+
- Per-check `required: true/false` - Mark as blocking or non-blocking
|
|
103
|
+
|
|
104
|
+
**Example Use Cases:**
|
|
105
|
+
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"maturity": "auto",
|
|
109
|
+
"checks": {
|
|
110
|
+
"prettier": { "enabled": true, "required": true },
|
|
111
|
+
"eslint": { "enabled": "auto", "required": false },
|
|
112
|
+
"coverage": { "enabled": false, "threshold": 80 }
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 4. Design Proposal (`.github/PROGRESSIVE_QUALITY_PROPOSAL.md`)
|
|
118
|
+
|
|
119
|
+
A comprehensive 200+ line design document explaining:
|
|
120
|
+
|
|
121
|
+
- Problem statement and user pain points
|
|
122
|
+
- 4 different solution strategies
|
|
123
|
+
- Maturity level definitions
|
|
124
|
+
- Implementation approach
|
|
125
|
+
- Benefits and trade-offs
|
|
126
|
+
- Alternative approaches considered
|
|
127
|
+
- Open questions for feedback
|
|
128
|
+
|
|
129
|
+
## Maturity Levels Explained
|
|
130
|
+
|
|
131
|
+
### Minimal (0 source files)
|
|
132
|
+
|
|
133
|
+
**What it means:** Project just created, only package.json exists
|
|
134
|
+
|
|
135
|
+
**Checks enabled:**
|
|
136
|
+
|
|
137
|
+
- ✅ Prettier (basic formatting)
|
|
138
|
+
|
|
139
|
+
**Checks disabled:**
|
|
140
|
+
|
|
141
|
+
- ⏭️ ESLint, Stylelint, Tests, Security, Documentation
|
|
142
|
+
|
|
143
|
+
**User experience:**
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
⚡ Minimal project - only basic formatting checks enabled.
|
|
147
|
+
Add source files to enable linting.
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Bootstrap (1-2 source files, no tests)
|
|
151
|
+
|
|
152
|
+
**What it means:** Early development, writing first components
|
|
153
|
+
|
|
154
|
+
**Checks enabled:**
|
|
155
|
+
|
|
156
|
+
- ✅ Prettier
|
|
157
|
+
- ✅ ESLint
|
|
158
|
+
|
|
159
|
+
**Checks disabled:**
|
|
160
|
+
|
|
161
|
+
- ⏭️ Tests, Coverage, Security (optional), Documentation
|
|
162
|
+
|
|
163
|
+
**User experience:**
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
🚀 Bootstrap project - linting enabled.
|
|
167
|
+
Add tests to enable test coverage checks.
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Development (3+ source files, has tests)
|
|
171
|
+
|
|
172
|
+
**What it means:** Active development with test infrastructure
|
|
173
|
+
|
|
174
|
+
**Checks enabled:**
|
|
175
|
+
|
|
176
|
+
- ✅ Prettier
|
|
177
|
+
- ✅ ESLint
|
|
178
|
+
- ✅ Stylelint (if CSS files exist)
|
|
179
|
+
- ✅ Tests
|
|
180
|
+
- 🔵 Security audit (optional)
|
|
181
|
+
- 🔵 Coverage (optional)
|
|
182
|
+
|
|
183
|
+
**Checks disabled:**
|
|
184
|
+
|
|
185
|
+
- ⏭️ Documentation validation
|
|
186
|
+
|
|
187
|
+
**User experience:**
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
🔨 Development project - most checks enabled.
|
|
191
|
+
Add documentation to enable doc validation.
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Production-Ready (10+ source files, 3+ tests, has docs)
|
|
195
|
+
|
|
196
|
+
**What it means:** Mature project ready for production
|
|
197
|
+
|
|
198
|
+
**Checks enabled:**
|
|
199
|
+
|
|
200
|
+
- ✅ All checks enabled
|
|
201
|
+
- ✅ Documentation validation
|
|
202
|
+
- ✅ Security audits
|
|
203
|
+
- ✅ Coverage requirements
|
|
204
|
+
- 🔵 Lighthouse CI (if configured)
|
|
205
|
+
|
|
206
|
+
**User experience:**
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
✅ Production-ready project - all quality checks enabled.
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Integration Guide
|
|
213
|
+
|
|
214
|
+
### Option 1: Test the Maturity Detector Now
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Run on this project
|
|
218
|
+
cd /home/user/create-qa-architect
|
|
219
|
+
node lib/project-maturity.js --verbose
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Option 2: Use the Example Workflow
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# Copy the example workflow
|
|
226
|
+
cp .github/workflows/quality-progressive.yml.example \
|
|
227
|
+
.github/workflows/quality-progressive.yml
|
|
228
|
+
|
|
229
|
+
# Test it locally (requires act or push to GitHub)
|
|
230
|
+
git add .
|
|
231
|
+
git commit -m "feat: add progressive quality automation"
|
|
232
|
+
git push
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Option 3: Integrate Into Existing Workflow
|
|
236
|
+
|
|
237
|
+
Replace your current `quality.yml` with the progressive version:
|
|
238
|
+
|
|
239
|
+
```diff
|
|
240
|
+
- name: ESLint
|
|
241
|
+
- run: npx eslint . --max-warnings=0
|
|
242
|
+
+ name: ESLint
|
|
243
|
+
+ if: needs.detect-maturity.outputs.source-count > 0
|
|
244
|
+
+ run: |
|
|
245
|
+
+ echo "🔍 Linting ${{ needs.detect-maturity.outputs.source-count }} source files..."
|
|
246
|
+
+ npx eslint . --max-warnings=0
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Testing Scenarios
|
|
250
|
+
|
|
251
|
+
### Scenario 1: Brand New Project
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
mkdir new-project && cd new-project
|
|
255
|
+
git init
|
|
256
|
+
echo '{"name":"new-project","version":"1.0.0"}' > package.json
|
|
257
|
+
|
|
258
|
+
# Run maturity detector
|
|
259
|
+
node /path/to/lib/project-maturity.js
|
|
260
|
+
# Output: "Minimal" - only Prettier runs ✅
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### Scenario 2: First Source File Added
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
echo 'console.log("hello")' > index.js
|
|
267
|
+
|
|
268
|
+
# Run maturity detector
|
|
269
|
+
node /path/to/lib/project-maturity.js
|
|
270
|
+
# Output: "Bootstrap" - ESLint now enabled ✅
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Scenario 3: Tests Added
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
mkdir __tests__
|
|
277
|
+
echo 'test("example", () => {})' > __tests__/index.test.js
|
|
278
|
+
|
|
279
|
+
# Run maturity detector
|
|
280
|
+
node /path/to/lib/project-maturity.js
|
|
281
|
+
# Output: "Development" - Test checks now enabled ✅
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Scenario 4: Production Ready
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
# Add 10+ source files, 3+ tests, documentation
|
|
288
|
+
# ...
|
|
289
|
+
|
|
290
|
+
node /path/to/lib/project-maturity.js
|
|
291
|
+
# Output: "Production Ready" - All checks enabled ✅
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
## Benefits Summary
|
|
295
|
+
|
|
296
|
+
### For New Projects ✨
|
|
297
|
+
|
|
298
|
+
- ✅ **No false failures** - CI stays green during early development
|
|
299
|
+
- ✅ **Clear progression** - See which checks activate as you add files
|
|
300
|
+
- ✅ **Reduced noise** - Only see failures that matter for your project stage
|
|
301
|
+
|
|
302
|
+
### For Existing Projects 🔄
|
|
303
|
+
|
|
304
|
+
- ✅ **Backward compatible** - Auto-detection means no config changes needed
|
|
305
|
+
- ✅ **Opt-in strictness** - Can force `production-ready` mode in config
|
|
306
|
+
- ✅ **Gradual adoption** - Enable checks one at a time
|
|
307
|
+
|
|
308
|
+
### For Maintainers 🛠️
|
|
309
|
+
|
|
310
|
+
- ✅ **Better UX** - Reduces confusion and support requests
|
|
311
|
+
- ✅ **Professional polish** - Shows thoughtful design
|
|
312
|
+
- ✅ **Competitive advantage** - Most quality tools don't have this
|
|
313
|
+
|
|
314
|
+
## Next Steps
|
|
315
|
+
|
|
316
|
+
### Immediate (Ready to Use)
|
|
317
|
+
|
|
318
|
+
1. **Test the detector:**
|
|
319
|
+
|
|
320
|
+
```bash
|
|
321
|
+
node lib/project-maturity.js --verbose
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
2. **Review the proposal:**
|
|
325
|
+
- Read `.github/PROGRESSIVE_QUALITY_PROPOSAL.md`
|
|
326
|
+
- Provide feedback on the approach
|
|
327
|
+
|
|
328
|
+
3. **Test the example workflow:**
|
|
329
|
+
- Copy `quality-progressive.yml.example` to test
|
|
330
|
+
|
|
331
|
+
### Short Term (Implementation)
|
|
332
|
+
|
|
333
|
+
4. **Integrate into setup.js:**
|
|
334
|
+
- Add `--check-maturity` CLI flag
|
|
335
|
+
- Auto-generate `.qualityrc.json` during setup
|
|
336
|
+
- Update workflow templates
|
|
337
|
+
|
|
338
|
+
5. **Update documentation:**
|
|
339
|
+
- Add PROGRESSIVE_QUALITY.md user guide
|
|
340
|
+
- Update README with new feature
|
|
341
|
+
- Update CLAUDE.md with new commands
|
|
342
|
+
|
|
343
|
+
6. **Add tests:**
|
|
344
|
+
- Unit tests for maturity detector
|
|
345
|
+
- Integration tests for each maturity level
|
|
346
|
+
- Test fixtures for all scenarios
|
|
347
|
+
|
|
348
|
+
### Medium Term (Polish)
|
|
349
|
+
|
|
350
|
+
7. **Add configuration support:**
|
|
351
|
+
- Read `.qualityrc.json` in maturity detector
|
|
352
|
+
- Support manual overrides
|
|
353
|
+
- Add validation for config file
|
|
354
|
+
|
|
355
|
+
8. **Enhance GitHub Actions integration:**
|
|
356
|
+
- Add PR check summaries with maturity level
|
|
357
|
+
- Add maturity badges
|
|
358
|
+
- Add upgrade suggestions in PR comments
|
|
359
|
+
|
|
360
|
+
9. **Community feedback:**
|
|
361
|
+
- Share with early adopters
|
|
362
|
+
- Gather feedback on maturity thresholds
|
|
363
|
+
- Iterate on auto-detection rules
|
|
364
|
+
|
|
365
|
+
## Files Delivered
|
|
366
|
+
|
|
367
|
+
```
|
|
368
|
+
.github/
|
|
369
|
+
├── PROGRESSIVE_QUALITY_PROPOSAL.md # Full design proposal
|
|
370
|
+
├── PROGRESSIVE_QUALITY_IMPLEMENTATION.md # This file
|
|
371
|
+
└── workflows/
|
|
372
|
+
└── quality-progressive.yml.example # Example workflow
|
|
373
|
+
|
|
374
|
+
lib/
|
|
375
|
+
└── project-maturity.js # Maturity detector (working code)
|
|
376
|
+
|
|
377
|
+
.qualityrc.json.example # Configuration schema
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
## Questions & Feedback
|
|
381
|
+
|
|
382
|
+
This is a **working prototype** ready for testing and feedback. Key questions:
|
|
383
|
+
|
|
384
|
+
1. **Are the maturity thresholds right?**
|
|
385
|
+
- Minimal: 0 source files
|
|
386
|
+
- Bootstrap: 1-2 source files
|
|
387
|
+
- Development: 3+ source files + tests
|
|
388
|
+
- Production-ready: 10+ source files + 3+ tests + docs
|
|
389
|
+
|
|
390
|
+
2. **Should we add more maturity levels?**
|
|
391
|
+
- E.g., "alpha", "beta", "stable"?
|
|
392
|
+
|
|
393
|
+
3. **Should checks be opt-in or opt-out by default?**
|
|
394
|
+
- Current: Auto-enable based on detection
|
|
395
|
+
- Alternative: Require manual enablement
|
|
396
|
+
|
|
397
|
+
4. **What other project characteristics should we detect?**
|
|
398
|
+
- Framework (React, Vue, Angular)?
|
|
399
|
+
- Package manager (npm, yarn, pnpm)?
|
|
400
|
+
- Monorepo vs single package?
|
|
401
|
+
|
|
402
|
+
5. **Should we integrate with existing tools?**
|
|
403
|
+
- Conventional commits for maturity detection?
|
|
404
|
+
- Semantic versioning (0.x = beta, 1.x = stable)?
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
**Ready to test?** Run `node lib/project-maturity.js --verbose` to see it in action! 🚀
|