mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-14 02:42:04 +08:00
- Implemented main render function for the issue discovery view. - Added data loading functions to fetch discoveries, details, findings, and progress. - Created rendering functions for discovery list and detail sections. - Introduced filtering and searching capabilities for findings. - Implemented actions for exporting and dismissing findings. - Added polling mechanism to track discovery progress. - Included utility functions for HTML escaping and cleanup.
254 lines
6.5 KiB
Markdown
254 lines
6.5 KiB
Markdown
# Quality Standards
|
||
|
||
Quality gates and standards for software manual generation.
|
||
|
||
## Quality Dimensions
|
||
|
||
### 1. Completeness (25%)
|
||
|
||
All required sections present and adequately covered.
|
||
|
||
| Requirement | Weight | Criteria |
|
||
|-------------|--------|----------|
|
||
| Overview section | 5 | Product intro, features, quick start |
|
||
| UI Guide | 5 | All major screens documented |
|
||
| API Reference | 5 | All public APIs documented |
|
||
| Configuration | 4 | All config options explained |
|
||
| Troubleshooting | 3 | Common issues addressed |
|
||
| Examples | 3 | Multi-level examples provided |
|
||
|
||
**Scoring**:
|
||
- 100%: All sections present with adequate depth
|
||
- 80%: All sections present, some lacking depth
|
||
- 60%: Missing 1-2 sections
|
||
- 40%: Missing 3+ sections
|
||
- 0%: Critical sections missing (overview, UI guide)
|
||
|
||
### 2. Consistency (25%)
|
||
|
||
Terminology, style, and structure uniform across sections.
|
||
|
||
| Aspect | Check |
|
||
|--------|-------|
|
||
| Terminology | Same term for same concept throughout |
|
||
| Formatting | Consistent heading levels, code block styles |
|
||
| Tone | Consistent formality level |
|
||
| Cross-references | All internal links valid |
|
||
| Screenshot naming | Follow `ss-{feature}-{action}` pattern |
|
||
|
||
**Scoring**:
|
||
- 100%: Zero inconsistencies
|
||
- 80%: 1-3 minor inconsistencies
|
||
- 60%: 4-6 inconsistencies
|
||
- 40%: 7-10 inconsistencies
|
||
- 0%: Pervasive inconsistencies
|
||
|
||
### 3. Depth (25%)
|
||
|
||
Content provides sufficient detail for target audience.
|
||
|
||
| Level | Criteria |
|
||
|-------|----------|
|
||
| Shallow | Basic descriptions only |
|
||
| Standard | Descriptions + usage examples |
|
||
| Deep | Descriptions + examples + edge cases + best practices |
|
||
|
||
**Per-Section Depth Check**:
|
||
- [ ] Explains "what" (definition)
|
||
- [ ] Explains "why" (rationale)
|
||
- [ ] Explains "how" (procedure)
|
||
- [ ] Provides examples
|
||
- [ ] Covers edge cases
|
||
- [ ] Includes tips/best practices
|
||
|
||
**Scoring**:
|
||
- 100%: Deep coverage on all critical sections
|
||
- 80%: Standard coverage on all sections
|
||
- 60%: Shallow coverage on some sections
|
||
- 40%: Missing depth in critical areas
|
||
- 0%: Superficial throughout
|
||
|
||
### 4. Readability (25%)
|
||
|
||
Clear, user-friendly writing that's easy to follow.
|
||
|
||
| Metric | Target |
|
||
|--------|--------|
|
||
| Sentence length | Average < 20 words |
|
||
| Paragraph length | Average < 5 sentences |
|
||
| Heading hierarchy | Proper H1 > H2 > H3 nesting |
|
||
| Code blocks | Language specified |
|
||
| Lists | Used for 3+ items |
|
||
| Screenshots | Placed near relevant text |
|
||
|
||
**Structural Elements**:
|
||
- [ ] Clear section headers
|
||
- [ ] Numbered steps for procedures
|
||
- [ ] Bullet lists for options/features
|
||
- [ ] Tables for comparisons
|
||
- [ ] Code blocks with syntax highlighting
|
||
- [ ] Screenshots with captions
|
||
|
||
**Scoring**:
|
||
- 100%: All readability criteria met
|
||
- 80%: Minor structural issues
|
||
- 60%: Some sections hard to follow
|
||
- 40%: Significant readability problems
|
||
- 0%: Unclear, poorly structured
|
||
|
||
## Overall Quality Score
|
||
|
||
```
|
||
Overall = (Completeness × 0.25) + (Consistency × 0.25) +
|
||
(Depth × 0.25) + (Readability × 0.25)
|
||
```
|
||
|
||
**Quality Gates**:
|
||
|
||
| Gate | Threshold | Action |
|
||
|------|-----------|--------|
|
||
| Pass | ≥ 80% | Proceed to HTML generation |
|
||
| Review | 60-79% | Address warnings, proceed with caution |
|
||
| Fail | < 60% | Must address errors before continuing |
|
||
|
||
## Issue Classification
|
||
|
||
### Errors (Must Fix)
|
||
|
||
- Missing required sections
|
||
- Invalid cross-references
|
||
- Broken screenshot markers
|
||
- Code blocks without language
|
||
- Incomplete procedures (missing steps)
|
||
|
||
### Warnings (Should Fix)
|
||
|
||
- Terminology inconsistencies
|
||
- Sections lacking depth
|
||
- Missing examples
|
||
- Long paragraphs (> 7 sentences)
|
||
- Screenshots missing captions
|
||
|
||
### Info (Nice to Have)
|
||
|
||
- Optimization suggestions
|
||
- Additional example opportunities
|
||
- Alternative explanations
|
||
- Enhancement ideas
|
||
|
||
## Quality Checklist
|
||
|
||
### Pre-Generation
|
||
|
||
- [ ] All agents completed successfully
|
||
- [ ] No errors in consolidation report
|
||
- [ ] Overall score ≥ 60%
|
||
|
||
### Post-Generation
|
||
|
||
- [ ] HTML renders correctly
|
||
- [ ] Search returns relevant results
|
||
- [ ] All screenshots display
|
||
- [ ] Theme toggle works
|
||
- [ ] Print preview looks good
|
||
|
||
### Final Review
|
||
|
||
- [ ] User previewed and approved
|
||
- [ ] File size reasonable (< 10MB)
|
||
- [ ] No console errors in browser
|
||
- [ ] Accessible (keyboard navigation works)
|
||
|
||
## Automated Checks
|
||
|
||
```javascript
|
||
function runQualityChecks(workDir) {
|
||
const results = {
|
||
completeness: checkCompleteness(workDir),
|
||
consistency: checkConsistency(workDir),
|
||
depth: checkDepth(workDir),
|
||
readability: checkReadability(workDir)
|
||
};
|
||
|
||
results.overall = (
|
||
results.completeness * 0.25 +
|
||
results.consistency * 0.25 +
|
||
results.depth * 0.25 +
|
||
results.readability * 0.25
|
||
);
|
||
|
||
return results;
|
||
}
|
||
|
||
function checkCompleteness(workDir) {
|
||
const requiredSections = [
|
||
'section-overview.md',
|
||
'section-ui-guide.md',
|
||
'section-api-reference.md',
|
||
'section-configuration.md',
|
||
'section-troubleshooting.md',
|
||
'section-examples.md'
|
||
];
|
||
|
||
const existing = Glob(`${workDir}/sections/section-*.md`);
|
||
const found = requiredSections.filter(s =>
|
||
existing.some(e => e.endsWith(s))
|
||
);
|
||
|
||
return (found.length / requiredSections.length) * 100;
|
||
}
|
||
|
||
function checkConsistency(workDir) {
|
||
// Check terminology, cross-references, naming conventions
|
||
const issues = [];
|
||
|
||
// ... implementation ...
|
||
|
||
return Math.max(0, 100 - issues.length * 10);
|
||
}
|
||
|
||
function checkDepth(workDir) {
|
||
// Check content length, examples, edge cases
|
||
const sections = Glob(`${workDir}/sections/section-*.md`);
|
||
let totalScore = 0;
|
||
|
||
for (const section of sections) {
|
||
const content = Read(section);
|
||
let sectionScore = 0;
|
||
|
||
if (content.length > 500) sectionScore += 20;
|
||
if (content.includes('```')) sectionScore += 20;
|
||
if (content.includes('Example')) sectionScore += 20;
|
||
if (content.match(/\d+\./g)?.length > 3) sectionScore += 20;
|
||
if (content.includes('Note:') || content.includes('Tip:')) sectionScore += 20;
|
||
|
||
totalScore += sectionScore;
|
||
}
|
||
|
||
return totalScore / sections.length;
|
||
}
|
||
|
||
function checkReadability(workDir) {
|
||
// Check structure, formatting, organization
|
||
const sections = Glob(`${workDir}/sections/section-*.md`);
|
||
let issues = 0;
|
||
|
||
for (const section of sections) {
|
||
const content = Read(section);
|
||
|
||
// Check heading hierarchy
|
||
if (!content.startsWith('# ')) issues++;
|
||
|
||
// Check code block languages
|
||
const codeBlocks = content.match(/```\w*/g);
|
||
if (codeBlocks?.some(b => b === '```')) issues++;
|
||
|
||
// Check paragraph length
|
||
const paragraphs = content.split('\n\n');
|
||
if (paragraphs.some(p => p.split('. ').length > 7)) issues++;
|
||
}
|
||
|
||
return Math.max(0, 100 - issues * 10);
|
||
}
|
||
```
|