Skip to main content

Duplication checkpoints

Components that repeat each other: the same props, the same tokens, the same structure, or near copies in different feature modules.

Each checkpoint reports pass, warning, fail or skipped. A finding for a checkpoint links its section on this page.

Prop fingerprints

No identical prop signatures

duplication.prop_fingerprint.no_identical

Components whose props, names and values, are exactly the same, in groups of at least the minimum group size (2 by default, set with minGroupSize). The score is the share of components not in such a group.

ResultWhen
PassA score of 80 or more, or fewer than 2 components.
WarningBetween 50 and 80.
FailBelow 50.
SkippedNot reported by this checkpoint.

How to improve. Merge components with identical props into one component with presets.

Low prop overlap

duplication.prop_fingerprint.overlap_ratio

Pairs of components whose prop names overlap by at least the similarity threshold (80% by default, set with similarityThreshold). The score is the share of pairs below it.

ResultWhen
PassA score of 80 or more, or fewer than 2 components.
WarningBetween 50 and 80.
FailBelow 50.
SkippedNot reported by this checkpoint.

How to improve. Review the high-overlap pairs for consolidation.

Unique prop signatures

duplication.prop_fingerprint.unique_coverage

The number of distinct prop signatures divided by the number of components.

ResultWhen
PassA score of 80 or more, or no components.
WarningBetween 50 and 80.
FailBelow 50.
SkippedNot reported by this checkpoint.

How to improve. Differentiate components that share a prop signature, or merge them.

Style similarity

No identical token sets

duplication.style_similarity.no_duplicate_tokens

Components, among those that use tokens, that apply exactly the same set of tokens, in groups of at least the minimum group size (2 by default, set with minGroupSize). The score is the share not in such a group.

ResultWhen
PassA score of 80 or more, or fewer than 2 components use tokens.
WarningBetween 50 and 80.
FailBelow 50.
SkippedNot reported by this checkpoint.

How to improve. Extract shared token sets into reusable style presets.

Unique token combinations

duplication.style_similarity.token_uniqueness

The number of distinct token sets divided by the number of components that use tokens.

ResultWhen
PassA score of 80 or more, or no component uses tokens.
WarningBetween 50 and 80.
FailBelow 50.
SkippedNot reported by this checkpoint.

How to improve. Differentiate component styling, or merge components that look the same.

Style variants are distinct

duplication.style_similarity.variant_differentiation

Pairs of components whose token sets are alike by at least the similarity threshold (80% by default). The score is the share of pairs below it.

ResultWhen
PassA score of 80 or more, or fewer than 2 components use tokens.
WarningBetween 50 and 80.
FailBelow 50.
SkippedNot reported by this checkpoint.

How to improve. Give each variant a distinct combination of tokens.

Structural similarity

No structurally identical components

duplication.structural.no_identical

Components with structure data whose ordered child structure is exactly the same, in groups of at least the minimum group size (2 by default, set with minGroupSize). The score is the share not in such a group.

ResultWhen
PassA score of 80 or more, or fewer than 2 components have structure data.
WarningBetween 50 and 80.
FailBelow 50.
SkippedNot reported by this checkpoint.

How to improve. Merge structurally identical components into one component with variants.

Unique structures

duplication.structural.fingerprint_uniqueness

The number of distinct structures divided by the number of components with structure data.

ResultWhen
PassA score of 80 or more, or no component has structure data.
WarningBetween 50 and 80.
FailBelow 50.
SkippedNot reported by this checkpoint.

How to improve. Differentiate the compositions of components that share a structure, or merge them.

Names reflect structure

duplication.structural.naming_reflects_structure

Pairs of components that are structurally similar (at least the threshold, 80% by default) but whose names are less than 30% similar: often the same component built twice under different names. The score is the share of pairs not flagged.

ResultWhen
PassA score of 80 or more, or fewer than 2 components have structure data.
WarningBetween 50 and 80.
FailBelow 50.
SkippedNot reported by this checkpoint.

How to improve. Rename or merge them so shared structure shows in the names.

Cross-module

No duplicates across modules

duplication.cross_module.no_duplicate_intent

Pairs of components in different feature modules whose combined similarity, across props, tokens and structure, reaches the threshold (80% by default). The score is the share of cross-module pairs below it.

ResultWhen
PassA score of 80 or more, or there are fewer than 2 modules.
WarningBetween 50 and 80.
FailBelow 50.
SkippedNot reported by this checkpoint.

How to improve. Move shared components into a common module.

Module-level deduplication

duplication.cross_module.deduplication

The share of components, among those assigned to a module, that have no near duplicate in another module: no component there with a combined similarity (props, tokens and structure) at or above the threshold, 80% by default.

ResultWhen
PassA score of 80 or more, or there are fewer than 2 modules.
WarningBetween 50 and 80.
FailBelow 50.
SkippedNot reported by this checkpoint.

How to improve. Move duplicated components to a shared package or module.

Shared extraction opportunities

duplication.cross_module.shared_extraction

Clusters of components whose combined similarity reaches the threshold (80% by default) and that span more than one module, so they could be extracted into a shared library. The score is the share of components not in such a cluster.

ResultWhen
PassA score of 80 or more, or fewer than 2 components are assigned to a module.
WarningBetween 50 and 80.
FailBelow 50.
SkippedNot reported by this checkpoint.

How to improve. Extract each cluster into a common library.

Was this page helpful?

Last reviewed by @jschuyler
All systems operationalDocsDevelopersPlatformPricing
PrivacyTerms© 2026 fndd, LLC