UML — cat-harness/vendors
Generated by cat-harness-tools/scripts/gen-uml-overview.ts — do not edit. The vendors sub-graph of cat-harness (cat-harness/skills/voices/vendors), with every attribute read from its node schema.
Sources (same model): PlantUML · Mermaid · Graphviz DOT
The interactive view lays this diagram out in your browser with Graphviz, and needs JavaScript. Without it, pick Portrait or Landscape, or read the DOT source.
| sub-graph | directory | graph typologies | node schema | nodes | cohesion | in | out |
|---|---|---|---|---|---|---|---|
cat-harness/vendors | cat-harness/skills/voices/vendors | voice-vendors | VoiceProfileSchema | not measured |
Nodes, cohesion, in and out are the detangler’s pinned measurements for the same directory (bun run cat kg:detangle; skill graph-detanglement). Not measured means the detangler does not scan that directory, not that it has no edges.
Sub-graphs
The same model, drawn by Mermaid
Kept so the page renders even where the PlantUML image is missing, and because Mermaid nodes carry the CSS class that colours them from uml.css.
classDiagram
direction TB
namespace cat_harness__vendors {
class cat_harness_vendors_Source["Source"] {
<<json: VoiceProfileSchema>>
title [1] string
instance [0..1] string
libraryId [0..1] string
path [0..1] string
url [0..1] string~uri~
year [0..1] integer
}
class cat_harness_vendors_Pattern["Pattern"] {
<<json: VoiceProfileSchema>>
regex [1] string
caseSensitive [0..1] boolean
message [1] string
}
class cat_harness_vendors_Terminology["Terminology"] {
<<json: VoiceProfileSchema>>
correct [1] string
incorrect [1] string | string[]
context [0..1] string
}
class cat_harness_vendors_Rule["Rule"] {
<<json: VoiceProfileSchema>>
id [1] string
title [1] string
description [1] string
category [1] enum(13)
severity [1] critical | major | minor
source [1] object
patterns [0..*] Pattern[]
terminology [0..*] Terminology[]
judgementOnly [0..1] boolean
}
class cat_harness_vendors_VoiceProfile["VoiceProfile"] {
<<json: VoiceProfileSchema>>
$schema [1] 'folio-voice/v1' | 'folio-voice-skill/v1'
id [1] string
title [1] string
description [1] string
sources [1..*] Source[]
rules [1..*] Rule[]
overlaySeverity [0..1] critical | major | minor
appliesTo [0..*] list~enum(17) | docs | skill | readme | specification | code~
provenance [1] assertion | evidence | house
extends [0..1] object
activeIn [0..1] object
superseded [0..1] object
}
}
cat_harness_vendors_VoiceProfile *-- "1..*" cat_harness_vendors_Source : sources
cat_harness_vendors_Rule *-- "0..*" cat_harness_vendors_Pattern : patterns
cat_harness_vendors_Rule *-- "0..*" cat_harness_vendors_Terminology : terminology
cat_harness_vendors_VoiceProfile *-- "1..*" cat_harness_vendors_Rule : rules
cssClass "cat_harness_vendors_Source" fa_uml_kind_voice_vendors
cssClass "cat_harness_vendors_Pattern" fa_uml_kind_voice_vendors
cssClass "cat_harness_vendors_Terminology" fa_uml_kind_voice_vendors
cssClass "cat_harness_vendors_Rule" fa_uml_kind_voice_vendors
cssClass "cat_harness_vendors_VoiceProfile" fa_uml_kind_voice_vendors