# SLDS Quality Report Format Guidelines for generating quality reports. **Default to the compact format** and expand sections when the user requests detail. --- ## Default: Compact Report Always start with this format. It gives the user the full picture in a glanceable summary. ````markdown # SLDS Quality Scorecard: `{component-name}` **Path:** `{component-path}` | **Complexity:** {small|medium|large} ({n} files, {n} lines) **Generated:** {date} ## Automated Grade: {grade} ({score}/100) {grade-description} **Manual Review Gate:** {Pass|Advisory|Blocking} **Final Recommendation:** {Ready for production|Ready with follow-ups|Needs work|Failing} | Category | Score | Grade | |----------|-------|-------| | Linter Compliance | {score}/100 | {status-emoji} {grade} | | Theming | {score}/100 | {status-emoji} {grade} | | Accessibility | {score}/100 | {status-emoji} {grade} | | Code Quality | {score}/100 | {status-emoji} {grade} | | Component Usage | {score}/100 | {status-emoji} {grade} | **Issues:** {n} critical | {n} warnings | {n} info ### Top Issues 1. **{issue}** — `{file}:{line}` — {recommendation} 2. **{issue}** — `{file}:{line}` — {recommendation} 3. **{issue}** — `{file}:{line}` — {recommendation} > Automated score reflects linter + script findings only. Manual review can still block ship. > > {accessibility-disclaimer-if-scored} *Ask for the full report to see all findings, code examples, and action items.* ```` ### When to Show Compact - First response to a quality audit request - Quick validation mode - Auditing multiple components (show compact for each) --- ## Expanded: Full Report Show this when the user asks to "expand", "show details", "full report", or "show all findings". Build on top of the compact report — don't repeat the summary, just add the detail sections below it. ````markdown --- ## Critical Issues ({count}) Issues that **must be fixed** before deployment. ### {issue-category} | # | File | Line | Issue | Recommendation | |---|------|------|-------|----------------| | 1 | `{file}` | {line} | {description} | {fix} | | 2 | `{file}` | {line} | {description} | {fix} | **Example fix:** ```css /* Before */ {problematic-code} /* After */ {fixed-code} ``` --- ## Warnings ({count}) Issues that **should be fixed** but are not blocking. | # | File | Line | Issue | Impact | |---|------|------|-------|--------| | 1 | `{file}` | {line} | {description} | {impact} | --- ## Info ({count}) Suggestions for improvement. | # | Category | Finding | Suggestion | |---|----------|---------|------------| | 1 | {category} | {finding} | {suggestion} | --- ## Detailed Findings ### Manual Review Gate **Gate:** {Pass|Advisory|Blocking} | Review Area | Outcome | Notes | |-------------|---------|-------| | Loading states | {Pass|Advisory|Blocking} | {notes} | | Error states | {Pass|Advisory|Blocking} | {notes} | | Empty states | {Pass|Advisory|Blocking} | {notes} | | Disabled states | {Pass|Advisory|Blocking} | {notes} | | Semantic HTML | {Pass|Advisory|Blocking} | {notes} | | Blueprint compliance | {Pass|Advisory|Blocking} | {notes} | --- ### Linter Compliance **Violations Found:** {count} | Rule | Count | Files Affected | |------|-------|----------------| | `slds/class-override` | {count} | {files} | | `slds/lwc-token-to-slds-hook` | {count} | {files} | | `slds/no-hardcoded-values` | {count} | {files} |
Full Linter Output ``` {linter-output} ```
--- ### Theming **Hooks Usage Summary:** | Hook Type | Used | Missing Fallback | Issues | |-----------|------|------------------|--------| | Color Hooks | {count} | {count} | {count} | | Spacing Hooks | {count} | {count} | {count} | | Typography Hooks | {count} | {count} | {count} | **Hook Pairing Analysis:** | Background Hook | Paired Text Hook | Status | |-----------------|------------------|--------| | `--slds-g-color-surface-1` | `--slds-g-color-on-surface-2` | {status} | --- ### Accessibility > This section checks attribute presence only. It does not validate contrast ratios, keyboard flows, or screen reader behavior. Passing here does not guarantee WCAG compliance. | Check | Status | Details | |-------|--------|---------| | Lightning input labels | {status} | {count} inputs, {count} labeled | | Icon alternative text | {status} | {count} icons, {count} with alt | | Image alt attributes | {status} | {count} images, {count} with alt | | Heading hierarchy | {status} | {sequence} | | Focus indicators | {status} | {findings} | --- ### Code Quality | Metric | Value | Status | |--------|-------|--------| | Total CSS lines | {count} | {status} | | !important usage | {count} | {status} | | Inline styles | {count} | {status} | | High z-index values | {count} | {status} | --- ### Component Usage | Element Type | Native Count | LBC Alternative | Recommendation | |--------------|-------------|-----------------|----------------| | Inputs | {count} | `` | {recommendation} | | Buttons | {count} | `` | {recommendation} | | Selects | {count} | `` | {recommendation} | --- ## Action Items ### Must Fix (Critical) - [ ] {action-item} ### Should Fix (Warnings) - [ ] {action-item} ### Nice to Have (Info) - [ ] {action-item} --- ## Next Steps 1. Address all **{count} critical issues** immediately 2. Review and fix **{count} warnings** before code review 3. Consider **{count} suggestions** for future improvements 4. Re-run validation to confirm fixes **Estimated Effort:** {estimate} ```` --- ## JSON Output For programmatic consumption (e.g., CI integration or tracking over time). Produce this only when explicitly requested or when auditing multiple components for comparison. ```json { "component": "{component-name}", "path": "{component-path}", "timestamp": "{iso-date}", "complexity": { "classification": "medium", "totalFiles": 4, "totalLines": 280 }, "scores": { "automatedOverall": 85, "automatedGrade": "B", "categories": { "linter": { "score": 100, "grade": "A" }, "theming": { "score": 80, "grade": "B" }, "accessibility": { "score": 75, "grade": "C" }, "codeQuality": { "score": 90, "grade": "A" }, "componentUsage": { "score": 85, "grade": "B" } } }, "manualReview": { "gate": "Advisory", "findings": [] }, "finalRecommendation": "Ready with follow-ups", "findings": { "critical": [], "warnings": [], "info": [] }, "summary": { "filesAnalyzed": 4, "totalLines": 280, "critical": 0, "warnings": 2, "info": 3 } } ``` --- ## Status Indicators | Score Range | Emoji | Meaning | |-------------|-------|---------| | 90-100 | ✅ | Excellent | | 80-89 | 🟢 | Good | | 70-79 | 🟡 | Acceptable | | 60-69 | 🟠 | Needs Work | | 0-59 | 🔴 | Critical | --- ## Grade Descriptions | Grade | Description | |-------|-------------| | A | **Excellent** - Strong automated result. Requires a passing manual review gate before calling it production-ready. | | B | **Good** - Solid automated result. Requires manual review before a production recommendation. | | C | **Acceptable** - Automated issues should be addressed before production. | | D | **Needs Work** - Significant automated issues require attention before code review. | | F | **Critical** - Automated checks found blocking issues. Not suitable for deployment. | --- ## Report Delivery Guidelines 1. **Always default to compact** — show the scorecard first, expand on request 2. **Separate automated grade from final recommendation** — manual review can override ship readiness 3. **Group by severity** — critical issues first, then warnings, then info 4. **Include actionable recommendations** — every finding should have a clear fix 5. **Provide code examples** — show before/after for complex fixes in the expanded report 6. **Note complexity** — a "B" on a large component means something different than a "B" on a small one 7. **Add accessibility disclaimer** — when the accessibility score is included, note it checks attribute presence only