@@ -910,7 +910,7 @@ def _generate_html(self, web_results: Dict[str, Any]) -> str:
910910 font-size: 0.75rem;
911911 color: #64748b;
912912 }}
913- .requirement-count, .passed-count {{
913+ .requirement-count, .passed-count, .failed-count {{
914914 font-size: 0.75rem;
915915 color: #64748b;
916916 }}
@@ -1684,7 +1684,8 @@ def _generate_html(self, web_results: Dict[str, Any]) -> str:
16841684 <div class="column-name">${{column.name}}</div>
16851685 <div class="column-summary">
16861686 <span class="requirement-count">${{column.requirements.length}} requirements</span>
1687- <span class="passed-count">${{column.requirements.filter(req => req.passed).length}} passed</span>
1687+ <span class="passed-count">${{column.requirements.filter(req => req.passed || req.status === 'skipped').length}} passed</span>
1688+ <span class="failed-count">${{column.requirements.filter(req => !req.passed && req.status !== 'skipped').length}} failed</span>
16881689 </div>
16891690 </div>
16901691 <div class="column-meta">
@@ -1772,7 +1773,8 @@ def _generate_html(self, web_results: Dict[str, Any]) -> str:
17721773 <div class="column-name">${{entity.name}}</div>
17731774 <div class="column-summary">
17741775 <span class="requirement-count">${{entity.requirements.length}} requirements</span>
1775- <span class="passed-count">${{entity.requirements.filter(req => req.passed).length}} passed</span>
1776+ <span class="passed-count">${{entity.requirements.filter(req => req.passed || req.status === 'skipped').length}} passed</span>
1777+ <span class="failed-count">${{entity.requirements.filter(req => !req.passed && req.status !== 'skipped').length}} failed</span>
17761778 </div>
17771779 </div>
17781780 <div class="column-meta">
@@ -2270,6 +2272,32 @@ def _generate_html(self, web_results: Dict[str, Any]) -> str:
22702272 }}
22712273 }});
22722274
2275+ const visibleRequirements = Array.from(requirements).filter(
2276+ req => req.style.display !== 'none'
2277+ );
2278+ const visiblePassedCount = visibleRequirements.filter(req => {{
2279+ const icon = req.querySelector('.requirement-icon');
2280+ return icon && (icon.classList.contains('passed') || icon.classList.contains('skipped'));
2281+ }}).length;
2282+ const visibleFailedCount = visibleRequirements.filter(req => {{
2283+ const icon = req.querySelector('.requirement-icon');
2284+ return icon && icon.classList.contains('failed');
2285+ }}).length;
2286+
2287+ const requirementCount = card.querySelector('.requirement-count');
2288+ const passedCount = card.querySelector('.passed-count');
2289+ const failedCount = card.querySelector('.failed-count');
2290+
2291+ if (requirementCount) {{
2292+ requirementCount.textContent = `${{visibleRequirements.length}} requirements`;
2293+ }}
2294+ if (passedCount) {{
2295+ passedCount.textContent = `${{visiblePassedCount}} passed`;
2296+ }}
2297+ if (failedCount) {{
2298+ failedCount.textContent = `${{visibleFailedCount}} failed`;
2299+ }}
2300+
22732301 // Only recalculate entity status when requirement filters change
22742302 // When status filter changes, use the existing card.dataset.status
22752303 let entityStatus = card.dataset.status || 'not';
0 commit comments