@healflow/classification
v0.1.3
Published
HealFlow failure classification engine
Readme
@healflow/classification
Rule-based failure classification engine for Playwright and CI test failures.
Overview
Classifies failures into 26 FailureCategory values (selector, timing, overlay, iframe, shadow DOM, auth, navigation, product bug, etc.), computes confidence scores, fingerprints root causes, and clusters duplicate failures. Matrix sub-failure matching is enriched in @healflow/shared via enrichClassificationWithMatrix.
Published to npm as a transitive dependency. Used by @healflow/playwright at runtime and @healflow/ingestion during report parsing.
Installation
npm install @healflow/classificationUsage
import { classifyFailure, fingerprintFailure, clusterFailures } from '@healflow/classification';
import { FailureSource } from '@healflow/shared';
const result = classifyFailure({
errorMessage: 'locator.click: Timeout 30000ms exceeded',
errorStack: '...',
testFile: 'tests/login.spec.ts',
testTitle: 'user can log in',
source: FailureSource.REPORT,
});
console.log(result.category); // e.g. SELECTOR
console.log(result.confidence); // 0–1
console.log(result.isAutomationFixable);Deduplication
import { fingerprintFailure, clusterFailures } from '@healflow/classification';
const fingerprint = fingerprintFailure(errorMessage, errorStack);
const clusters = clusterFailures(failures);Flakiness scoring
import { computeFlakinessScore } from '@healflow/classification';
const score = computeFlakinessScore(history);API
| Export | Description |
| ----------------------- | ------------------------------------- |
| classifyFailure | Classify a single failure event |
| FailureClassifier | Stateful classifier with custom rules |
| CLASSIFICATION_RULES | Built-in rule definitions |
| fingerprintFailure | Stable hash for root-cause grouping |
| clusterFailures | Group failures by fingerprint |
| computeFlakinessScore | Score flaky test history |
Development
pnpm --filter @healflow/classification build
pnpm --filter @healflow/classification testRelated packages
- @healflow/shared — domain types and enums
- @healflow/ingestion — parses reports then classifies
License
MIT
